function Wordler_mzip
%   MATLAB zip file, a self-extracting MATLAB archive.
%   Usage: Run this file to recreate the original directory.

    fname = mfilename;
    fin = fopen([fname '.m'],'r');
    dname = fname(1:find(fname=='_',1,'last')-1);
    mkdir(dname);
    mkdir([dname filesep 'lib'])
    addpath(dname)
    addpath([dname filesep 'lib'])    
    
    L = fgetl(fin);
    while length(L) < 2 || ~isequal(L(1:2),'%%')
        L = fgetl(fin);
    end
    while ~isequal(L,'%% EOF')
        F = [dname filesep L(4:end)];
        disp(F)
        fout = fopen(F,'w');
        L = fgetl(fin);
        while length(L) < 2 || ~isequal(L(1:2),'%%')
            fprintf(fout,'%s\n',L);
            L = fgetl(fin);
        end
        fclose(fout);
    end
    fclose(fin);
end
%% Wordie.m
function Wordie(W,R)
    % Wordie.  Wordie(W,R) adds word W to the Wordler Window.
    %    W(j) is green, gold, gray as R(j) = '2', '1' or '0'. 
   
    %    Copyright 2021-2023 Cleve Moler

    if nargin == 0 || isempty(get(gcf,'userdata'))
        K = winit;
        set(gcf,'userdata',K)
        if nargin == 0
           return
        end
    end
    if nargin < 2
        R = '00000';
    end
    K = get(gcf,'userdata');
    f = find([K(:,1).String],1,'last');
    if isempty(f)
        f = 0;
    end
    f = f+1;
    
    wgg = [wgray; wgold; wgreen];
    %fs = 12;
    fs = 18;
    for j = 1:length(W)
        set(K(7-f,j),'string',upper(W(j)), ...
            'fontsize',fs, ...
            'fontweight','bold', ...
            'backgroundcolor',wgg(str2double(R(j))+1,:));
    end
end
%% Wordler.m
function Wordler(W,X)
    % Wordler(W,X).  W = starting guess, X = target.
    % Defaults: W = 'RATIO', X = random choice from vocabulary.
    %
    % https://blogs.mathworks.com/cleve/2023/03/27/three-wordle-assistants/ 

    %   April 4, 2023
    %   Copyright 2023 Cleve Moler

    if nargin < 1 || (nargin == 2 && ~ischar(W))
        W = 'RATIO'; 
    end
    if nargin < 2 || (nargin == 2 && ~ischar(X))
        targets = vocabulary('targets');
        k = randi(length(targets));
        X = char(targets(k));
    end

    figure(1)
    clf
    X = upper(X);
    W = upper(W);
    R = '     ';
    figure(2)
    clf
    keybored(R)
    vocab = vocabulary;
    Wordie

    for t = 1:6
        figure(1)
        shg
        if ~any(string(W) == vocab)
            warning([ W ' is not in my vocabulary.'])
        else
            for k = 1:5
                notk = [1:k-1 k+1:5];
                if W(k) == X(k)
                    R(k) = '2';
                elseif any(W(k) == X(notk))
                    R(k) = '1'; 
                else
                    R(k) = '0';
                end
            end
            Wordie(W,R)
        end

        figure(2)
        set(gca,'UserData',W)
        keybored(R)
        waiter = uicontrol('position',[0 0 0 0],'tag','waiter');
        waitfor(waiter)
        if isequal(R,'22222')
            figure(1)
            R = [];
            break
        end
        W = get(gca,'userdata');
        W = upper(W); 
    end
    if ~isempty(R)
        disp(['The target was ' X])
    end
end
%% Words.m
function Words(~,~)
    % Words is the callback for the Words button on the Wordler Window.
    % Words generates calls to the Wordspq functions in Wordler/lib.
    % Wordspq finds words with p green and q gold letters and displays
    % them in the command window.
 
    %   Copyright 2023 Cleve Moler

    fud = get(gcf,'userdata');
    K = flipud(reshape([fud.String],[],5));
    f = size(K,1);
    C = reshape([fud(end+1-f,:).BackgroundColor],[],5)';
    R = 2-ceil(2*C(:,3))';
    p = nnz(R==2);
    q = nnz(R==1);
    Gray = unique(char(K(:)))';
    Gray(Gray == ' ') = [];
    Green = '';
    Gold = '';
    GreenLoc = {};
    GoldLoc = {};
    for j = 1:5
        ch = char(K(f,j));
        switch R(j)
            case 2
                Green = [Green ch];
                GreenLoc{end+1} = j;
                Gray(Gray == ch) = [];
            case 1
                Gold = [Gold ch];
                GoldLoc{end+1} = j;
                Gray(Gray == ch) = [];
            case 0
        end
    end
    for j = 1:length(GoldLoc)
        GoldLoc{j} = setdiff(1:5,GoldLoc{j});
    end
    p = num2str(p);
    q = num2str(q);
    Blue = setdiff('A':'Z',Gray);
    feval(['Words' p q],Gray,Green,GreenLoc,Gold,GoldLoc)
end
%% keybored.m
function keybored(arg,~)
    % keybored: Wordler keyboard. Not to be confused builtin "keyboard".
    % keybored(key,~): Callback for key press.
    %
    % https://blogs.mathworks.com/cleve/2023/03/27/three-wordle-assistants/ 

    %   Copyright 2023 Cleve Moler

    figure(2)
    pos = get(0,'defaultfigureposition');
    set(gcf,'position',[pos(1)+pos(3)/2+5 pos(2:4)])
    if nargin == 2
        K = get(gcf,'userdata')';
        aud = get(gca,'userdata');
        set(K(arg.String==[K.String]),'background',2/3*wgray)
        if arg.String == '>'
            delete(findobj('tag','waiter'))
        elseif arg.String == '<'
            aud(end) = [];  
        else
            aud(end+1) = arg.String;
        end
        set(gca,'userdata',aud)
    else
        aud = ['QWERTYUIOP';'ASDFGHJKL ';'>ZXCVBNM< '];
        set(gca,'position',[.10 .35 .80 .50])
        set(gca,'xtick',[],'ytick',[])
        set(gca,'color','k')
        box on
        u = 22;
        x = 8.5; 
        s = .9;  
        %fs = 10;
        fs = 16;
        K = repmat(uicontrol('vis','off'),10,3);
        for j = 1:3
            im = 9+(j==3);
            y = 2.0-0.5*(j==3);  
            for i = 1:im
                K(i,j) = uicontrol( ...
                    'style','push', ...
                    'string',aud(4-j,i), ...
                    'FontSize',fs, ...
                    'FontWeight','bold', ...
                    'units','normal', ...
                    'position', ...
                        [3/2*(i+y) 2*j+x 3/2*s 2*s]/u, ...
                    'callback',@keybored); 
            end
        end
        pos = get(K(1,1),'pos');
        set(K(1,1),'pos',[pos(1)-s/2/u pos(2) 2*s/u pos(4)])
        pos = get(K(9,1),'pos');
        set(K(9,1),'pos',[pos(1) pos(2) 2*s/u pos(4)])

        K9 = K(9,1);
        K(9,1) = K(10,3);
        K(10,3) = K9;
        set(gcf,"UserData",K)
        set(gca,"UserData",'')
    end
end
%% vocabulary.m
function vocab = vocabulary(~)
    % vocabulary is 4665 words that may be guesses.
    % vocabulary('t') is 2315 words that are targets.

    if nargin == 0

    vocab = [ ...  
    "ABEAM" "ABETS" "ABHOR" "ABIDE" "ABLED" "ABLER" "ABODE" "ABORT" ...
    "ABOUT" "ABOVE" "ABUSE" "ABUTS" "ABUZZ" "ABYSS" "ACHED" "ACHES" ...
    "ACHOO" "ACIDS" "ACING" "ACMES" "ACORN" "ACRES" "ACRID" "ACTED" ...
    "ACTOR" "ACUTE" "ADAGE" "ADAPT" "ADDED" "ADDER" "ADDLE" "ADEPT" ...
    "ADIEU" "ADMAN" "ADMEN" "ADMIN" "ADMIT" "ADOBE" "ADOPT" "ADORE" ...
    "ADORN" "ADULT" "ADZES" "AEGIS" "AEONS" "AERIE" "AFFIX" "AFIRE" ...
    "AFOOT" "AFOUL" "AFTER" "AGAIN" "AGAPE" "AGATE" "AGAVE" "AGENT" ...
    "AGILE" "AGING" "AGISM" "AGLOW" "AGONY" "AGORA" "AGREE" "AHEAD" ...
    "AIDED" "AIDER" "AIDES" "AILED" "AIMED" "AIRED" "AISLE" "ALARM" ...
    "ALBUM" "ALDER" "ALERT" "ALGAE" "ALIAS" "ALIBI" "ALIEN" "ALIGN" ...
    "ALIKE" "ALINE" "ALIVE" "ALLAY" "ALLEY" "ALLOT" "ALLOW" "ALLOY" ...
    "ALOES" "ALOFT" "ALOHA" "ALONE" "ALONG" "ALOOF" "ALOUD" "ALPHA" ...
    "ALTAR" "ALTER" "ALTHO" "ALTOS" "ALUMS" "AMASS" "AMAZE" "AMBER" ...
    "AMBLE" "AMEBA" "AMEER" "AMEND" "AMIGO" "AMIRS" "AMISS" "AMITY" ...
    "AMONG" "AMOUR" "AMPLE" "AMPLY" "AMPUL" "AMUCK" "AMUSE" "ANGEL" ...
    "ANGER" "ANGLE" "ANGRY" "ANGST" "ANIME" "ANION" "ANISE" "ANKHS" ...
    "ANKLE" "ANNEX" "ANNOY" "ANNUL" "ANODE" "ANONS" "ANTED" "ANTES" ...
    "ANTIC" "ANTIS" "ANVIL" "AORTA" "APACE" "APART" "APHID" "APING" ...
    "APNEA" "APPAL" "APPLE" "APPLY" "APRON" "APSES" "APTER" "APTLY" ...
    "AQUAE" "AQUAS" "ARBOR" "ARCED" "ARDOR" "AREAS" "ARENA" "ARGON" ...
    "ARGOT" "ARGUE" "ARIAS" "ARISE" "ARMED" "ARMOR" "AROMA" "AROSE" ...
    "ARRAY" "ARROW" "ARSON" "ARTSY" "ASCOT" "ASHED" "ASHEN" "ASHES" ...
    "ASIDE" "ASKED" "ASKEW" "ASPEN" "ASPIC" "ASSAY" "ASSES" "ASSET" ...
    "ASTER" "ASTIR" "ATLAS" "ATOLL" "ATOMS" "ATONE" "ATRIA" "ATTAR" ...
    "ATTIC" "AUDIO" "AUDIT" "AUGER" "AUGHT" "AUGUR" "AUNTS" "AUNTY" ...
    "AURAE" "AURAL" "AURAS" "AUTOS" "AVAIL" "AVAST" "AVERS" "AVERT" ...
    "AVIAN" "AVOID" "AVOWS" "AWAIT" "AWAKE" "AWARD" "AWARE" "AWASH" ...
    "AWFUL" "AWING" "AWOKE" "AXIAL" "AXING" "AXIOM" "AXION" "AXLES" ...
    "AXONS" "AZURE" "BAAED" "BABEL" "BABES" "BACKS" "BACON" "BADGE" ...
    "BADLY" "BAGEL" "BAGGY" "BAILS" "BAITS" "BAIZE" "BAKED" "BAKER" ...
    "BAKES" "BALDS" "BALED" "BALER" "BALES" "BALKS" "BALKY" "BALLS" ...
    "BALMS" "BALMY" "BALSA" "BANAL" "BANDS" "BANDY" "BANES" "BANGS" ...
    "BANJO" "BANKS" "BANNS" "BARBS" "BARDS" "BARED" "BARER" "BARES" ...
    "BARFS" "BARGE" "BARKS" "BARNS" "BARON" "BASAL" "BASED" "BASER" ...
    "BASES" "BASIC" "BASIL" "BASIN" "BASIS" "BASKS" "BASSI" "BASSO" ...
    "BASTE" "BATCH" "BATED" "BATES" "BATHE" "BATHS" "BATIK" "BATON" ...
    "BATTY" "BAUDS" "BAWDY" "BAWLS" "BAYED" "BAYOU" "BEACH" "BEADS" ...
    "BEADY" "BEAKS" "BEAMS" "BEANS" "BEARD" "BEARS" "BEAST" "BEATS" ...
    "BEAUS" "BEAUX" "BEBOP" "BECKS" "BEECH" "BEEFS" "BEEFY" "BEEPS" ...
    "BEERS" "BEETS" "BEFIT" "BEFOG" "BEGAN" "BEGAT" "BEGET" "BEGIN" ...
    "BEGOT" "BEGUN" "BEIGE" "BEING" "BELAY" "BELCH" "BELIE" "BELLE" ...
    "BELLS" "BELLY" "BELOW" "BELTS" "BENCH" "BENDS" "BENTS" "BERET" ...
    "BERGS" "BERMS" "BERRY" "BERTH" "BERYL" "BESET" "BESOM" "BESOT" ...
    "BESTS" "BETAS" "BETEL" "BEVEL" "BEZEL" "BIBLE" "BICEP" "BIDDY" ...
    "BIDED" "BIDES" "BIDET" "BIERS" "BIGHT" "BIGOT" "BIKED" "BIKER" ...
    "BIKES" "BILGE" "BILKS" "BILLS" "BILLY" "BIMBO" "BINDS" "BINGE" ...
    "BINGO" "BIOME" "BIPED" "BIRCH" "BIRDS" "BIRTH" "BISON" "BITCH" ...
    "BITES" "BITTY" "BLABS" "BLACK" "BLADE" "BLAME" "BLAND" "BLANK" ...
    "BLARE" "BLAST" "BLAZE" "BLEAK" "BLEAT" "BLEED" "BLEEP" "BLEND" ...
    "BLENT" "BLESS" "BLEST" "BLIMP" "BLIND" "BLINK" "BLIPS" "BLISS" ...
    "BLITZ" "BLOAT" "BLOBS" "BLOCK" "BLOCS" "BLOGS" "BLOKE" "BLOND" ...
    "BLOOD" "BLOOM" "BLOTS" "BLOWN" "BLOWS" "BLUED" "BLUER" "BLUES" ...
    "BLUFF" "BLUNT" "BLURB" "BLURS" "BLURT" "BLUSH" "BOARD" "BOARS" ...
    "BOAST" "BOATS" "BOBBY" "BODED" "BODES" "BOGEY" "BOGGY" "BOGIE" ...
    "BOGUS" "BOILS" "BOLAS" "BOLES" "BOLLS" "BOLTS" "BOMBS" "BONDS" ...
    "BONED" "BONER" "BONES" "BONEY" "BONGO" "BONGS" "BONNY" "BONUS" ...
    "BOOBS" "BOOBY" "BOOED" "BOOKS" "BOOMS" "BOONS" "BOORS" "BOOST" ...
    "BOOTH" "BOOTS" "BOOTY" "BOOZE" "BOOZY" "BORAX" "BORED" "BORER" ...
    "BORES" "BORNE" "BORON" "BOSOM" "BOSSY" "BOSUN" "BOTCH" "BOUGH" ...
    "BOULE" "BOUND" "BOUTS" "BOWED" "BOWEL" "BOWER" "BOWLS" "BOXED" ...
    "BOXER" "BOXES" "BOZOS" "BRACE" "BRACT" "BRADS" "BRAGS" "BRAID" ...
    "BRAIN" "BRAKE" "BRAND" "BRASH" "BRASS" "BRATS" "BRAVE" "BRAVO" ...
    "BRAWL" "BRAWN" "BRAYS" "BREAD" "BREAK" "BREED" "BREWS" "BRIAR" ...
    "BRIBE" "BRICK" "BRIDE" "BRIEF" "BRIER" "BRIGS" "BRIMS" "BRINE" ...
    "BRING" "BRINK" "BRINY" "BRISK" "BROAD" "BROIL" "BROKE" "BROOD" ...
    "BROOK" "BROOM" "BROTH" "BROWN" "BROWS" "BRUIN" "BRUNT" "BRUSH" ...
    "BRUSK" "BRUTE" "BUCKS" "BUDDY" "BUDGE" "BUFFS" "BUGGY" "BUGLE" ...
    "BUILD" "BUILT" "BULBS" "BULGE" "BULGY" "BULKS" "BULKY" "BULLS" ...
    "BULLY" "BUMPS" "BUMPY" "BUNCH" "BUNGS" "BUNKS" "BUNNY" "BUNTS" ...
    "BUOYS" "BURGS" "BURLY" "BURNS" "BURNT" "BURPS" "BURRO" "BURRS" ...
    "BURST" "BUSBY" "BUSED" "BUSES" "BUSHY" "BUSTS" "BUTCH" "BUTTE" ...
    "BUTTS" "BUXOM" "BUYER" "BYLAW" "BYTES" "BYWAY" "CABAL" "CABBY" ...
    "CABIN" "CABLE" "CACAO" "CACHE" "CACTI" "CADDY" "CADET" "CADGE" ...
    "CADRE" "CAGED" "CAGES" "CAGEY" "CAIRN" "CAKED" "CAKES" "CALFS" ...
    "CALIF" "CALKS" "CALLS" "CALMS" "CALVE" "CALYX" "CAMEL" "CAMEO" ...
    "CAMPS" "CAMPY" "CANAL" "CANDY" "CANED" "CANES" "CANNY" "CANOE" ...
    "CANON" "CANTO" "CANTS" "CAPED" "CAPER" "CAPES" "CAPON" "CAPUT" ...
    "CARAT" "CARDS" "CARED" "CARES" "CARET" "CARGO" "CAROL" "CAROM" ...
    "CARPI" "CARPS" "CARRY" "CARTS" "CARVE" "CASED" "CASES" "CASKS" ...
    "CASTE" "CASTS" "CATCH" "CATER" "CATTY" "CAULK" "CAUSE" "CAVED" ...
    "CAVES" "CAVIL" "CAWED" "CEASE" "CEDAR" "CEDED" "CEDES" "CELLI" ...
    "CELLO" "CELLS" "CENTS" "CHAFE" "CHAFF" "CHAIN" "CHAIR" "CHALK" ...
    "CHAMP" "CHANT" "CHAOS" "CHAPS" "CHAPT" "CHARD" "CHARM" "CHARS" ...
    "CHART" "CHARY" "CHASE" "CHASM" "CHATS" "CHEAP" "CHEAT" "CHECK" ...
    "CHEEK" "CHEEP" "CHEER" "CHEFS" "CHESS" "CHEST" "CHEWS" "CHEWY" ...
    "CHICK" "CHIDE" "CHIEF" "CHILD" "CHILE" "CHILI" "CHILL" "CHIME" ...
    "CHIMP" "CHINA" "CHINK" "CHINO" "CHINS" "CHIPS" "CHIRP" "CHITS" ...
    "CHIVE" "CHOCK" "CHOIR" "CHOKE" "CHOMP" "CHOPS" "CHORD" "CHORE" ...
    "CHOSE" "CHOWS" "CHUCK" "CHUGS" "CHUMP" "CHUMS" "CHUNK" "CHURL" ...
    "CHURN" "CHUTE" "CIDER" "CIGAR" "CILIA" "CINCH" "CIRCA" "CITED" ...
    "CITES" "CIVET" "CIVIC" "CIVIL" "CLACK" "CLAIM" "CLAMP" "CLAMS" ...
    "CLANG" "CLANK" "CLANS" "CLAPS" "CLASH" "CLASP" "CLASS" "CLAWS" ...
    "CLEAN" "CLEAR" "CLEAT" "CLEFS" "CLEFT" "CLERK" "CLEWS" "CLICK" ...
    "CLIFF" "CLIMB" "CLIME" "CLING" "CLINK" "CLIPS" "CLIPT" "CLOAK" ...
    "CLOCK" "CLODS" "CLOGS" "CLOMP" "CLONE" "CLOPS" "CLOSE" "CLOTH" ...
    "CLOTS" "CLOUD" "CLOUT" "CLOVE" "CLOWN" "CLOYS" "CLUBS" "CLUCK" ...
    "CLUED" "CLUES" "CLUMP" "CLUNG" "CLUNK" "COACH" "COALS" "COAST" ...
    "COATS" "COBRA" "COCCI" "COCKS" "COCKY" "COCOA" "CODAS" "CODED" ...
    "CODES" "CODEX" "COEDS" "COIFS" "COILS" "COINS" "COKED" "COKES" ...
    "COLAS" "COLDS" "COLIC" "COLON" "COLOR" "COLTS" "COMAS" "COMBO" ...
    "COMBS" "COMER" "COMES" "COMET" "COMFY" "COMIC" "COMMA" "CONCH" ...
    "CONDO" "CONES" "CONGA" "CONIC" "CONKS" "COOED" "COOKS" "COOKY" ...
    "COOLS" "COONS" "COOPS" "COOTS" "COPED" "COPES" "COPRA" "COPSE" ...
    "CORAL" "CORDS" "CORED" "CORER" "CORES" "CORKS" "CORMS" "CORNS" ...
    "CORNY" "CORPS" "COSTS" "COTES" "COUCH" "COUGH" "COULD" "COUNT" ...
    "COUPE" "COUPS" "COURT" "COVEN" "COVER" "COVES" "COVET" "COVEY" ...
    "COWED" "COWER" "COWLS" "COYER" "COYLY" "COZEN" "CRABS" "CRACK" ...
    "CRAFT" "CRAGS" "CRAMP" "CRAMS" "CRANE" "CRANK" "CRAPE" "CRAPS" ...
    "CRASH" "CRASS" "CRATE" "CRAVE" "CRAWL" "CRAWS" "CRAZE" "CRAZY" ...
    "CREAK" "CREAM" "CREDO" "CREED" "CREEK" "CREEL" "CREEP" "CREME" ...
    "CREPE" "CREPT" "CRESS" "CREST" "CREWS" "CRIBS" "CRICK" "CRIED" ...
    "CRIER" "CRIES" "CRIME" "CRIMP" "CRISP" "CROAK" "CROCI" "CROCK" ...
    "CRONE" "CRONY" "CROOK" "CROON" "CROPS" "CROSS" "CROUP" "CROWD" ...
    "CROWN" "CROWS" "CRUDE" "CRUEL" "CRUET" "CRUMB" "CRUMP" "CRUSH" ...
    "CRUST" "CRYPT" "CUBED" "CUBES" "CUBIC" "CUBIT" "CUFFS" "CUING" ...
    "CULLS" "CULTS" "CUMIN" "CUNTS" "CURBS" "CURDS" "CURED" "CURER" ...
    "CURES" "CURIE" "CURIO" "CURLS" "CURLY" "CURRY" "CURSE" "CURST" ...
    "CURVE" "CURVY" "CUSHY" "CUSPS" "CUTER" "CUTIE" "CUTUP" "CYBER" ...
    "CYCLE" "CYNIC" "CYSTS" "CZARS" "DACHA" "DADDY" "DADOS" "DAFFY" ...
    "DAILY" "DAIRY" "DAISY" "DALES" "DALLY" "DAMES" "DAMNS" "DAMPS" ...
    "DANCE" "DANDY" "DARED" "DARES" "DARNS" "DARTS" "DATED" "DATES" ...
    "DATUM" "DAUBS" "DAUNT" "DAVIT" "DAWNS" "DAZED" "DAZES" "DEALS" ...
    "DEALT" "DEANS" "DEARS" "DEATH" "DEBAR" "DEBIT" "DEBTS" "DEBUG" ...
    "DEBUT" "DECAF" "DECAL" "DECAY" "DECKS" "DECOR" "DECOY" "DECRY" ...
    "DEEDS" "DEEMS" "DEEPS" "DEERS" "DEFER" "DEICE" "DEIFY" "DEIGN" ...
    "DEISM" "DEITY" "DELAY" "DELIS" "DELLS" "DELTA" "DELVE" "DEMON" ...
    "DEMOS" "DEMUR" "DENIM" "DENSE" "DENTS" "DEPOT" "DEPTH" "DERBY" ...
    "DESKS" "DETER" "DETOX" "DEUCE" "DEVIL" "DHOTI" "DIALS" "DIARY" ...
    "DICED" "DICES" "DICEY" "DICKS" "DICKY" "DICTA" "DIETS" "DIGIT" ...
    "DIKED" "DIKES" "DILLS" "DILLY" "DIMER" "DIMES" "DIMLY" "DINED" ...
    "DINER" "DINES" "DINGO" "DINGS" "DINGY" "DINKY" "DIODE" "DIRER" ...
    "DIRGE" "DIRKS" "DIRTY" "DISCO" "DISCS" "DISKS" "DITCH" "DITTO" ...
    "DITTY" "DIVAN" "DIVAS" "DIVED" "DIVER" "DIVES" "DIVOT" "DIVVY" ...
    "DIZZY" "DJINN" "DOCKS" "DODGE" "DODGY" "DODOS" "DOERS" "DOFFS" ...
    "DOGGY" "DOGIE" "DOGMA" "DOILY" "DOING" "DOLED" "DOLES" "DOLLS" ...
    "DOLLY" "DOLTS" "DOMED" "DOMES" "DONOR" "DONUT" "DOOMS" "DOORS" ...
    "DOPED" "DOPES" "DOPEY" "DORKS" "DORKY" "DORMS" "DOSED" "DOSES" ...
    "DOTED" "DOTES" "DOTTY" "DOUBT" "DOUGH" "DOUSE" "DOVES" "DOWDY" ...
    "DOWEL" "DOWNS" "DOWNY" "DOWRY" "DOWSE" "DOYEN" "DOZED" "DOZEN" ...
    "DOZES" "DRABS" "DRAFT" "DRAGS" "DRAIN" "DRAKE" "DRAMA" "DRAMS" ...
    "DRANK" "DRAPE" "DRAWL" "DRAWN" "DRAWS" "DRAYS" "DREAD" "DREAM" ...
    "DREGS" "DRESS" "DRIED" "DRIER" "DRIES" "DRIFT" "DRILL" "DRILY" ...
    "DRINK" "DRIPS" "DRIVE" "DROIT" "DROLL" "DRONE" "DROOL" "DROOP" ...
    "DROPS" "DROSS" "DROVE" "DROWN" "DRUBS" "DRUGS" "DRUID" "DRUMS" ...
    "DRUNK" "DRYAD" "DRYER" "DRYLY" "DUCAL" "DUCAT" "DUCHY" "DUCKS" ...
    "DUCTS" "DUDED" "DUDES" "DUELS" "DUETS" "DUKES" "DULLS" "DULLY" ...
    "DUMMY" "DUMPS" "DUMPY" "DUNCE" "DUNES" "DUNGS" "DUNKS" "DUNNO" ...
    "DUPED" "DUPES" "DUSKY" "DUSTS" "DUSTY" "DUTCH" "DUVET" "DWARF" ...
    "DWEEB" "DWELL" "DWELT" "DYERS" "DYING" "DYKES" "EAGER" "EAGLE" ...
    "EARLS" "EARLY" "EARNS" "EARTH" "EASED" "EASEL" "EASES" "EATEN" ...
    "EATER" "EAVES" "EBBED" "EBONY" "ECHOS" "ECLAT" "EDEMA" "EDGED" ...
    "EDGER" "EDGES" "EDICT" "EDIFY" "EDITS" "EERIE" "EGGED" "EGRET" ...
    "EIDER" "EIGHT" "EJECT" "EKING" "ELATE" "ELBOW" "ELDER" "ELECT" ...
    "ELEGY" "ELFIN" "ELIDE" "ELITE" "ELOPE" "ELUDE" "ELVES" "EMAIL" ...
    "EMBED" "EMBER" "EMCEE" "EMEND" "EMERY" "EMIRS" "EMITS" "EMOTE" ...
    "EMPTY" "ENACT" "ENDED" "ENDOW" "ENDUE" "ENEMA" "ENEMY" "ENJOY" ...
    "ENNUI" "ENROL" "ENSUE" "ENTER" "ENTRY" "ENURE" "ENVOY" "EPICS" ...
    "EPOCH" "EPOXY" "EQUAL" "EQUIP" "ERASE" "ERECT" "ERODE" "ERRED" ...
    "ERROR" "ERUPT" "ESSAY" "ESTER" "ETHER" "ETHIC" "ETHOS" "ETUDE" ...
    "EUROS" "EVADE" "EVENS" "EVENT" "EVERY" "EVICT" "EVILS" "EVOKE" ...
    "EWERS" "EXACT" "EXALT" "EXAMS" "EXCEL" "EXECS" "EXERT" "EXILE" ...
    "EXIST" "EXITS" "EXPEL" "EXPOS" "EXTOL" "EXTRA" "EXUDE" "EXULT" ...
    "EYING" "EYRIE" "FABLE" "FACED" "FACES" "FACET" "FACTS" "FADED" ...
    "FADES" "FAGOT" "FAILS" "FAINT" "FAIRS" "FAIRY" "FAITH" "FAKED" ...
    "FAKER" "FAKES" "FAKIR" "FALLS" "FALSE" "FAMED" "FANCY" "FANGS" ...
    "FANNY" "FARCE" "FARED" "FARES" "FARMS" "FARTS" "FASTS" "FATAL" ...
    "FATED" "FATES" "FATTY" "FAULT" "FAUNA" "FAUNS" "FAVOR" "FAWNS" ...
    "FAXED" "FAXES" "FAZED" "FAZES" "FEARS" "FEAST" "FEATS" "FECAL" ...
    "FECES" "FEEDS" "FEELS" "FEIGN" "FEINT" "FELLA" "FELLS" "FELON" ...
    "FELTS" "FEMME" "FEMUR" "FENCE" "FENDS" "FERAL" "FERNS" "FERRY" ...
    "FESTS" "FETAL" "FETCH" "FETED" "FETID" "FETUS" "FEUDS" "FEVER" ...
    "FEWER" "FEZES" "FIATS" "FIBER" "FIBRE" "FICHE" "FICUS" "FIEFS" ...
    "FIELD" "FIEND" "FIERY" "FIFES" "FIFTH" "FIFTY" "FIGHT" "FILCH" ...
    "FILED" "FILER" "FILES" "FILET" "FILLS" "FILLY" "FILMS" "FILMY" ...
    "FILTH" "FINAL" "FINCH" "FINDS" "FINED" "FINER" "FINES" "FINIS" ...
    "FINKS" "FINNY" "FIORD" "FIRED" "FIRES" "FIRMS" "FIRST" "FIRTH" ...
    "FISHY" "FISTS" "FITLY" "FIVER" "FIVES" "FIXED" "FIXER" "FIXES" ...
    "FIZZY" "FJORD" "FLACK" "FLAGS" "FLAIL" "FLAIR" "FLAKE" "FLAKY" ...
    "FLAME" "FLANK" "FLAPS" "FLARE" "FLASH" "FLASK" "FLATS" "FLAWS" ...
    "FLAYS" "FLEAS" "FLECK" "FLEES" "FLEET" "FLESH" "FLICK" "FLIED" ...
    "FLIER" "FLIES" "FLING" "FLINT" "FLIPS" "FLIRT" "FLITS" "FLOAT" ...
    "FLOCK" "FLOES" "FLOGS" "FLOOD" "FLOOR" "FLOPS" "FLORA" "FLOSS" ...
    "FLOUR" "FLOUT" "FLOWN" "FLOWS" "FLUBS" "FLUES" "FLUFF" "FLUID" ...
    "FLUKE" "FLUKY" "FLUME" "FLUNG" "FLUNK" "FLUSH" "FLUTE" "FLYBY" ...
    "FLYER" "FOALS" "FOAMS" "FOAMY" "FOCAL" "FOCUS" "FOGEY" "FOGGY" ...
    "FOILS" "FOIST" "FOLDS" "FOLIO" "FOLKS" "FOLLY" "FONDU" "FONTS" ...
    "FOODS" "FOOLS" "FOOTS" "FORAY" "FORCE" "FORDS" "FORES" "FORGE" ...
    "FORGO" "FORKS" "FORMS" "FORTE" "FORTH" "FORTS" "FORTY" "FORUM" ...
    "FOULS" "FOUND" "FOUNT" "FOURS" "FOWLS" "FOXED" "FOXES" "FOYER" ...
    "FRAIL" "FRAME" "FRANC" "FRANK" "FRATS" "FRAUD" "FRAYS" "FREAK" ...
    "FREED" "FREER" "FREES" "FRESH" "FRETS" "FRIAR" "FRIED" "FRIER" ...
    "FRIES" "FRILL" "FRISK" "FRITZ" "FRIZZ" "FROCK" "FROGS" "FROND" ...
    "FRONT" "FROST" "FROTH" "FROWN" "FROZE" "FRUIT" "FRUMP" "FRYER" ...
    "FUCKS" "FUDGE" "FUELS" "FUGUE" "FULLS" "FULLY" "FUMED" "FUMES" ...
    "FUNDS" "FUNGI" "FUNKS" "FUNKY" "FUNNY" "FURLS" "FUROR" "FURRY" ...
    "FURZE" "FUSED" "FUSES" "FUSSY" "FUSTY" "FUTON" "FUZED" "FUZES" ...
    "FUZZY" "GABBY" "GABLE" "GAFFE" "GAFFS" "GAGED" "GAGES" "GAILY" ...
    "GAINS" "GAITS" "GALAS" "GALES" "GALLS" "GAMED" "GAMER" "GAMES" ...
    "GAMEY" "GAMIN" "GAMMA" "GAMUT" "GANGS" "GAPED" "GAPES" "GARBS" ...
    "GASES" "GASPS" "GASSY" "GATED" "GATES" "GAUDY" "GAUGE" "GAUNT" ...
    "GAUZE" "GAUZY" "GAVEL" "GAWKS" "GAWKY" "GAYER" "GAYLY" "GAZED" ...
    "GAZER" "GAZES" "GEARS" "GECKO" "GEEKS" "GEEKY" "GEESE" "GELDS" ...
    "GELID" "GENES" "GENIE" "GENII" "GENRE" "GENTS" "GENUS" "GEODE" ...
    "GERMS" "GETUP" "GHOST" "GHOUL" "GIANT" "GIBED" "GIBES" "GIDDY" ...
    "GIFTS" "GILDS" "GILLS" "GILTS" "GIMME" "GIMPY" "GIPSY" "GIRDS" ...
    "GIRLS" "GIRLY" "GIRTH" "GIRTS" "GISMO" "GIVEN" "GIVER" "GIVES" ...
    "GIZMO" "GLADE" "GLADS" "GLAND" "GLARE" "GLASS" "GLAZE" "GLEAM" ...
    "GLEAN" "GLENS" "GLIDE" "GLINT" "GLITZ" "GLOAT" "GLOBE" "GLOBS" ...
    "GLOOM" "GLORY" "GLOSS" "GLOVE" "GLOWS" "GLUED" "GLUES" "GLUEY" ...
    "GLUTS" "GLYPH" "GNARL" "GNASH" "GNATS" "GNAWN" "GNAWS" "GNOME" ...
    "GOADS" "GOALS" "GOATS" "GODLY" "GOFER" "GOING" "GOLDS" "GOLEM" ...
    "GOLFS" "GOLLY" "GONAD" "GONER" "GONGS" "GONNA" "GOODS" "GOODY" ...
    "GOOEY" "GOOFS" "GOOFY" "GOOKS" "GOONS" "GOOSE" "GORED" "GORES" ...
    "GORGE" "GORSE" "GOTTA" "GOUGE" "GOURD" "GOUTY" "GOWNS" "GRABS" ...
    "GRACE" "GRADE" "GRADS" "GRAFT" "GRAIL" "GRAIN" "GRAMS" "GRAND" ...
    "GRANT" "GRAPE" "GRAPH" "GRASP" "GRASS" "GRATE" "GRAVE" "GRAVY" ...
    "GRAYS" "GRAZE" "GREAT" "GREBE" "GREED" "GREEN" "GREET" "GREYS" ...
    "GRIDS" "GRIEF" "GRILL" "GRIME" "GRIMY" "GRIND" "GRINS" "GRIPE" ...
    "GRIPS" "GRIST" "GRITS" "GROAN" "GROIN" "GROOM" "GROPE" "GROSS" ...
    "GROUP" "GROUT" "GROVE" "GROWL" "GROWN" "GROWS" "GRUBS" "GRUEL" ...
    "GRUFF" "GRUNT" "GUANO" "GUARD" "GUAVA" "GUESS" "GUEST" "GUIDE" ...
    "GUILD" "GUILE" "GUILT" "GUISE" "GULAG" "GULCH" "GULFS" "GULLS" ...
    "GULLY" "GULPS" "GUMBO" "GUMMY" "GUNNY" "GUPPY" "GURUS" "GUSHY" ...
    "GUSTO" "GUSTS" "GUSTY" "GUTSY" "GUYED" "GYBED" "GYBES" "GYPSY" ...
    "GYROS" "HABIT" "HACKS" "HAFTS" "HAIKU" "HAILS" "HAIRS" "HAIRY" ...
    "HAKES" "HALED" "HALER" "HALES" "HALLS" "HALON" "HALOS" "HALTS" ...
    "HALVE" "HANDS" "HANDY" "HANGS" "HANKS" "HANKY" "HAPPY" "HARDY" ...
    "HARED" "HAREM" "HARES" "HARKS" "HARMS" "HARPS" "HARPY" "HARRY" ...
    "HARSH" "HARTS" "HASPS" "HASTE" "HASTY" "HATCH" "HATED" "HATER" ...
    "HATES" "HAULS" "HAUNT" "HAUTE" "HAVEN" "HAVES" "HAVOC" "HAWED" ...
    "HAWKS" "HAYED" "HAZED" "HAZEL" "HAZES" "HEADS" "HEADY" "HEALS" ...
    "HEAPS" "HEARD" "HEARS" "HEART" "HEATH" "HEATS" "HEAVE" "HEAVY" ...
    "HEDGE" "HEEDS" "HEELS" "HEFTS" "HEFTY" "HEIRS" "HEIST" "HELIX" ...
    "HELLO" "HELMS" "HELOT" "HELPS" "HENCE" "HENNA" "HERBS" "HERDS" ...
    "HERON" "HEROS" "HERTZ" "HEWED" "HEWER" "HEXED" "HEXES" "HICKS" ...
    "HIDED" "HIDES" "HIGHS" "HIKED" "HIKER" "HIKES" "HILLS" "HILLY" ...
    "HILTS" "HINDS" "HINGE" "HINTS" "HIPPO" "HIPPY" "HIRED" "HIRES" ...
    "HITCH" "HIVED" "HIVES" "HOAGY" "HOARD" "HOARY" "HOBBY" "HOBOS" ...
    "HOCKS" "HOGAN" "HOIST" "HOKEY" "HOKUM" "HOLDS" "HOLED" "HOLES" ...
    "HOLLY" "HOMED" "HOMER" "HOMES" "HOMEY" "HOMIE" "HONED" "HONES" ...
    "HONEY" "HONKS" "HONOR" "HOOCH" "HOODS" "HOOEY" "HOOFS" "HOOKS" ...
    "HOOKY" "HOOPS" "HOOTS" "HOPED" "HOPES" "HORDE" "HORNS" "HORNY" ...
    "HORSE" "HORSY" "HOSED" "HOSES" "HOSTS" "HOTEL" "HOTLY" "HOUND" ...
    "HOURS" "HOUSE" "HOVEL" "HOVER" "HOWDY" "HOWLS" "HUBBY" "HUFFS" ...
    "HUFFY" "HUGER" "HULAS" "HULKS" "HULLS" "HUMAN" "HUMID" "HUMOR" ...
    "HUMPH" "HUMPS" "HUMUS" "HUNCH" "HUNKS" "HUNKY" "HUNTS" "HURLS" ...
    "HURRY" "HURTS" "HUSKS" "HUSKY" "HUSSY" "HUTCH" "HYDRA" "HYDRO" ...
    "HYENA" "HYING" "HYMEN" "HYMNS" "HYPED" "HYPER" "HYPES" "HYPOS" ...
    "IAMBS" "ICIER" "ICILY" "ICING" "ICONS" "IDEAL" "IDEAS" "IDIOM" ...
    "IDIOT" "IDLED" "IDLER" "IDLES" "IDOLS" "IDYLL" "IDYLS" "IGLOO" ...
    "IKONS" "ILIAC" "IMAGE" "IMAMS" "IMBED" "IMBUE" "IMPEL" "IMPLY" ...
    "INANE" "INAPT" "INBOX" "INCUR" "INDEX" "INDUE" "INEPT" "INERT" ...
    "INFER" "INFIX" "INGOT" "INKED" "INLAY" "INLET" "INNER" "INPUT" ...
    "INSET" "INTER" "INTRO" "INURE" "IONIC" "IOTAS" "IRATE" "IRKED" ...
    "IRONS" "IRONY" "ISLES" "ISLET" "ISSUE" "ITCHY" "ITEMS" "IVIES" ...
    "IVORY" "JABOT" "JACKS" "JADED" "JADES" "JAILS" "JAMBS" "JAPAN" ...
    "JAPED" "JAPES" "JAUNT" "JAWED" "JAZZY" "JEANS" "JEEPS" "JEERS" ...
    "JEHAD" "JELLO" "JELLS" "JELLY" "JERKS" "JERKY" "JESTS" "JETTY" ...
    "JEWEL" "JIBED" "JIBES" "JIFFY" "JIHAD" "JILTS" "JIMMY" "JINNI" ...
    "JINNS" "JIVED" "JIVES" "JOCKS" "JOHNS" "JOINS" "JOINT" "JOIST" ...
    "JOKED" "JOKER" "JOKES" "JOLLY" "JOLTS" "JOULE" "JOUST" "JOWLS" ...
    "JOYED" "JUDGE" "JUICE" "JUICY" "JULEP" "JUMBO" "JUMPS" "JUMPY" ...
    "JUNCO" "JUNKS" "JUNKY" "JUNTA" "JUNTO" "JUROR" "KABOB" "KAPOK" ...
    "KAPPA" "KAPUT" "KARAT" "KARMA" "KAYAK" "KAZOO" "KEBAB" "KEBOB" ...
    "KEELS" "KEENS" "KEEPS" "KETCH" "KEYED" "KHAKI" "KHANS" "KICKS" ...
    "KICKY" "KIDDO" "KIDDY" "KILLS" "KILNS" "KILOS" "KILTS" "KINDA" ...
    "KINDS" "KINGS" "KINKS" "KINKY" "KIOSK" "KITED" "KITES" "KITTY" ...
    "KIWIS" "KLUTZ" "KNACK" "KNAVE" "KNEAD" "KNEED" "KNEEL" "KNEES" ...
    "KNELL" "KNELT" "KNIFE" "KNITS" "KNOBS" "KNOCK" "KNOLL" "KNOTS" ...
    "KNOWN" "KNOWS" "KOALA" "KOOKS" "KOOKY" "KOPEK" "KRILL" "KRONE" ...
    "KUDOS" "KUDZU" "LABEL" "LABIA" "LABOR" "LACED" "LACES" "LACKS" ...
    "LADED" "LADEN" "LADES" "LADLE" "LAGER" "LAIRS" "LAITY" "LAKES" ...
    "LAMAS" "LAMBS" "LAMED" "LAMER" "LAMES" "LAMPS" "LANCE" "LANDS" ...
    "LANES" "LANKY" "LAPEL" "LAPSE" "LARCH" "LARDS" "LARGE" "LARGO" ...
    "LARKS" "LARVA" "LASER" "LASSO" "LASTS" "LATCH" "LATER" "LATEX" ...
    "LATHE" "LATHS" "LATTE" "LAUDS" "LAUGH" "LAWNS" "LAXER" "LAXLY" ...
    "LAYER" "LAZED" "LAZES" "LEACH" "LEADS" "LEAFS" "LEAFY" "LEAKS" ...
    "LEAKY" "LEANS" "LEANT" "LEAPS" "LEAPT" "LEARN" "LEASE" "LEASH" ...
    "LEAST" "LEAVE" "LEDGE" "LEECH" "LEEKS" "LEERS" "LEERY" "LEFTS" ...
    "LEFTY" "LEGAL" "LEGGY" "LEGIT" "LEMMA" "LEMME" "LEMON" "LEMUR" ...
    "LENDS" "LEPER" "LETUP" "LEVEE" "LEVEL" "LEVER" "LIARS" "LIBEL" ...
    "LICIT" "LICKS" "LIEGE" "LIENS" "LIFER" "LIFTS" "LIGHT" "LIKED" ...
    "LIKEN" "LIKER" "LIKES" "LILAC" "LILTS" "LIMBO" "LIMBS" "LIMED" ...
    "LIMES" "LIMIT" "LIMNS" "LIMOS" "LIMPS" "LINED" "LINEN" "LINER" ...
    "LINES" "LINGO" "LINKS" "LIONS" "LIPID" "LIRAS" "LISLE" "LISPS" ...
    "LISTS" "LITER" "LITHE" "LIVED" "LIVEN" "LIVER" "LIVES" "LIVID" ...
    "LLAMA" "LLANO" "LOADS" "LOAFS" "LOAMY" "LOANS" "LOATH" "LOBBY" ...
    "LOBED" "LOBES" "LOCAL" "LOCKS" "LOCUS" "LODES" "LODGE" "LOFTS" ...
    "LOFTY" "LOGES" "LOGIC" "LOGIN" "LOGOS" "LOINS" "LOLLS" "LONER" ...
    "LONGS" "LOOKS" "LOOMS" "LOONS" "LOONY" "LOOPS" "LOOPY" "LOOSE" ...
    "LOOTS" "LOPED" "LOPES" "LORDS" "LORRY" "LOSER" "LOSES" "LOTTO" ...
    "LOTUS" "LOUSE" "LOUSY" "LOUTS" "LOVED" "LOVER" "LOVES" "LOWED" ...
    "LOWER" "LOWLY" "LOXES" "LOYAL" "LUAUS" "LUBED" "LUBES" "LUCID" ...
    "LUCKS" "LUCKY" "LUCRE" "LULLS" "LUMEN" "LUMPS" "LUMPY" "LUNAR" ...
    "LUNCH" "LUNGE" "LUNGS" "LUPIN" "LUPUS" "LURCH" "LURED" "LURES" ...
    "LURID" "LURKS" "LUSTS" "LUSTY" "LUTES" "LYING" "LYMPH" "LYNCH" ...
    "LYRES" "LYRIC" "MACAW" "MACED" "MACES" "MACHO" "MACRO" "MADAM" ...
    "MADLY" "MAFIA" "MAGIC" "MAGMA" "MAIDS" "MAILS" "MAIMS" "MAINS" ...
    "MAIZE" "MAJOR" "MAKER" "MAKES" "MALES" "MALLS" "MALTS" "MAMAS" ...
    "MAMBO" "MAMMA" "MAMMY" "MANES" "MANGA" "MANGE" "MANGO" "MANGY" ...
    "MANIA" "MANIC" "MANLY" "MANNA" "MANOR" "MANSE" "MAPLE" "MARCH" ...
    "MARES" "MARIA" "MARKS" "MARRY" "MARSH" "MARTS" "MASKS" "MASON" ...
    "MASSE" "MASTS" "MATCH" "MATED" "MATES" "MATEY" "MATTE" "MATTS" ...
    "MATZO" "MAULS" "MAUVE" "MAVEN" "MAVIN" "MAXED" "MAXES" "MAXIM" ...
    "MAYBE" "MAYOR" "MAZES" "MEALS" "MEALY" "MEANS" "MEANT" "MEATS" ...
    "MEATY" "MECCA" "MEDAL" "MEDIA" "MEDIC" "MEETS" "MELDS" "MELEE" ...
    "MELON" "MELTS" "MEMOS" "MENDS" "MENUS" "MEOWS" "MERCY" "MERES" ...
    "MERGE" "MERIT" "MERRY" "MESAS" "MESSY" "METAL" "METED" "METER" ...
    "METES" "METRO" "MEWED" "MEWLS" "MIAOW" "MICRA" "MICRO" "MIDDY" ...
    "MIDGE" "MIDST" "MIENS" "MIFFS" "MIGHT" "MIKED" "MIKES" "MILCH" ...
    "MILER" "MILES" "MILKS" "MILKY" "MILLS" "MIMED" "MIMES" "MIMIC" ...
    "MINCE" "MINDS" "MINED" "MINER" "MINES" "MINIM" "MINIS" "MINKS" ...
    "MINOR" "MINTS" "MINTY" "MINUS" "MIRED" "MIRES" "MIRTH" "MISDO" ...
    "MISER" "MISSY" "MISTS" "MISTY" "MITER" "MITES" "MITTS" "MIXED" ...
    "MIXER" "MIXES" "MOANS" "MOATS" "MOCHA" "MOCKS" "MODAL" "MODEL" ...
    "MODEM" "MODES" "MOGUL" "MOIRE" "MOIST" "MOLAR" "MOLDS" "MOLDY" ...
    "MOLES" "MOLLS" "MOLTS" "MOMMA" "MOMMY" "MONEY" "MONKS" "MONTH" ...
    "MOOCH" "MOODS" "MOODY" "MOOED" "MOONS" "MOORS" "MOOSE" "MOOTS" ...
    "MOPED" "MOPES" "MORAL" "MORAY" "MORES" "MORNS" "MORON" "MORPH" ...
    "MOSEY" "MOSSY" "MOTEL" "MOTES" "MOTHS" "MOTIF" "MOTOR" "MOTTO" ...
    "MOULT" "MOUND" "MOUNT" "MOURN" "MOUSE" "MOUSY" "MOUTH" "MOVED" ...
    "MOVER" "MOVES" "MOVIE" "MOWED" "MOWER" "MUCKS" "MUCKY" "MUCUS" ...
    "MUDDY" "MUFFS" "MUFTI" "MUGGY" "MULCH" "MULES" "MULLS" "MUMMY" ...
    "MUMPS" "MUNCH" "MURAL" "MURKS" "MURKY" "MUSED" "MUSES" "MUSHY" ...
    "MUSIC" "MUSKY" "MUSSY" "MUSTS" "MUSTY" "MUTED" "MUTER" "MUTES" ...
    "MUTTS" "MYNAH" "MYNAS" "MYRRH" "MYTHS" "NABOB" "NACHO" "NACRE" ...
    "NADIR" "NAIAD" "NAILS" "NAIVE" "NAKED" "NAMED" "NAMES" "NANNY" ...
    "NAPES" "NAPPY" "NARCS" "NARKS" "NASAL" "NASTY" "NATAL" "NATTY" ...
    "NAVAL" "NAVEL" "NAVES" "NEARS" "NEATH" "NECKS" "NEEDS" "NEEDY" ...
    "NEIGH" "NERDS" "NERDY" "NERVE" "NERVY" "NESTS" "NEVER" "NEWEL" ...
    "NEWER" "NEWLY" "NEWSY" "NEWTS" "NEXUS" "NICER" "NICHE" "NICKS" ...
    "NIECE" "NIFTY" "NIGHT" "NIMBI" "NINES" "NINJA" "NINNY" "NINTH" ...
    "NIPPY" "NITER" "NITES" "NIXED" "NIXES" "NOBLE" "NOBLY" "NODAL" ...
    "NODDY" "NODES" "NOELS" "NOISE" "NOISY" "NOMAD" "NONCE" "NOOKS" ...
    "NOOSE" "NORMS" "NORTH" "NOSED" "NOSES" "NOSEY" "NOTCH" "NOTED" ...
    "NOTES" "NOUNS" "NOVAE" "NOVAS" "NOVEL" "NOWAY" "NUDER" "NUDES" ...
    "NUDGE" "NUKED" "NUKES" "NULLS" "NUMBS" "NURSE" "NUTTY" "NYLON" ...
    "NYMPH" "OAKEN" "OAKUM" "OARED" "OASES" "OASIS" "OATEN" "OATHS" ...
    "OBESE" "OBEYS" "OBITS" "OBOES" "OCCUR" "OCEAN" "OCHER" "OCHRE" ...
    "OCTAL" "OCTET" "ODDER" "ODDLY" "ODIUM" "ODORS" "OFFAL" "OFFED" ...
    "OFFER" "OFTEN" "OGLED" "OGLES" "OGRES" "OILED" "OINKS" "OKAYS" ...
    "OKRAS" "OLDEN" "OLDER" "OLDIE" "OLIVE" "OMBRE" "OMEGA" "OMENS" ...
    "OMITS" "ONION" "ONSET" "OOZED" "OOZES" "OPALS" "OPENS" "OPERA" ...
    "OPINE" "OPIUM" "OPTED" "OPTIC" "ORALS" "ORATE" "ORBIT" "ORDER" ...
    "ORGAN" "OSIER" "OTHER" "OTTER" "OUGHT" "OUNCE" "OUSTS" "OUTDO" ...
    "OUTED" "OUTER" "OUTGO" "OVALS" "OVARY" "OVATE" "OVENS" "OVERS" ...
    "OVERT" "OVINE" "OVOID" "OVULE" "OWING" "OWLET" "OWNED" "OWNER" ...
    "OXBOW" "OXIDE" "OZONE" "PACED" "PACES" "PACKS" "PACTS" "PADDY" ...
    "PADRE" "PAEAN" "PAGAN" "PAGED" "PAGER" "PAGES" "PAILS" "PAINS" ...
    "PAINT" "PAIRS" "PALED" "PALER" "PALES" "PALLS" "PALMS" "PALMY" ...
    "PALSY" "PANDA" "PANEL" "PANES" "PANGS" "PANIC" "PANSY" "PANTS" ...
    "PANTY" "PAPAL" "PAPAS" "PAPAW" "PAPER" "PARCH" "PARED" "PARER" ...
    "PARES" "PARKA" "PARKS" "PARRY" "PARSE" "PARTS" "PARTY" "PASHA" ...
    "PASTA" "PASTE" "PASTS" "PASTY" "PATCH" "PATES" "PATHS" "PATIO" ...
    "PATSY" "PATTY" "PAUSE" "PAVED" "PAVES" "PAWED" "PAWLS" "PAWNS" ...
    "PAYED" "PAYEE" "PAYER" "PEACE" "PEACH" "PEAKS" "PEALS" "PEARL" ...
    "PEARS" "PEASE" "PECAN" "PECKS" "PEDAL" "PEEKS" "PEELS" "PEEPS" ...
    "PEERS" "PEEVE" "PEKOE" "PELTS" "PENAL" "PENCE" "PENDS" "PENES" ...
    "PENIS" "PENNE" "PENNY" "PEONS" "PEONY" "PEPPY" "PERCH" "PERIL" ...
    "PERKS" "PERKY" "PERMS" "PESKY" "PESOS" "PESTO" "PESTS" "PETAL" ...
    "PETER" "PETTY" "PEWEE" "PHASE" "PHIAL" "PHISH" "PHLOX" "PHONE" ...
    "PHONY" "PHOTO" "PHYLA" "PIANO" "PICKS" "PICKY" "PIECE" "PIERS" ...
    "PIETY" "PIGGY" "PIGMY" "PIING" "PIKED" "PIKER" "PIKES" "PILAF" ...
    "PILAU" "PILAW" "PILED" "PILES" "PILLS" "PILOT" "PIMPS" "PINCH" ...
    "PINED" "PINES" "PINEY" "PINGS" "PINKS" "PINKY" "PINTO" "PINTS" ...
    "PINUP" "PIOUS" "PIPED" "PIPER" "PIPES" "PIPIT" "PIQUE" "PITCH" ...
    "PITHY" "PITON" "PIVOT" "PIXEL" "PIXIE" "PIZZA" "PLACE" "PLAID" ...
    "PLAIN" "PLAIT" "PLANE" "PLANK" "PLANS" "PLANT" "PLATE" "PLAYS" ...
    "PLAZA" "PLEAD" "PLEAS" "PLEAT" "PLIED" "PLIER" "PLIES" "PLODS" ...
    "PLOPS" "PLOTS" "PLOWS" "PLOYS" "PLUCK" "PLUGS" "PLUMB" "PLUME" ...
    "PLUMP" "PLUMS" "PLUNK" "PLUSH" "POACH" "POCKS" "PODIA" "POEMS" ...
    "POESY" "POETS" "POINT" "POISE" "POKED" "POKER" "POKES" "POKEY" ...
    "POLAR" "POLED" "POLES" "POLIO" "POLKA" "POLLS" "POLYP" "PONDS" ...
    "PONES" "POOCH" "POOHS" "POOLS" "POOPS" "POPES" "POPPA" "POPPY" ...
    "PORCH" "PORED" "PORES" "PORNO" "PORTS" "POSED" "POSER" "POSES" ...
    "POSIT" "POSSE" "POSTS" "POTTY" "POUCH" "POUND" "POURS" "POUTS" ...
    "POUTY" "POWER" "POXES" "PRANK" "PRATE" "PRAWN" "PRAYS" "PREEN" ...
    "PREPS" "PRESS" "PREYS" "PRICE" "PRICK" "PRICY" "PRIDE" "PRIED" ...
    "PRIES" "PRIGS" "PRIME" "PRIMO" "PRIMP" "PRINT" "PRIOR" "PRISM" ...
    "PRIVY" "PRIZE" "PROBE" "PRODS" "PROFS" "PROMO" "PROMS" "PRONE" ...
    "PRONG" "PROOF" "PROPS" "PROSE" "PROSY" "PROUD" "PROVE" "PROWL" ...
    "PROWS" "PROXY" "PRUDE" "PRUNE" "PSALM" "PSHAW" "PSYCH" "PUBIC" ...
    "PUCKS" "PUDGY" "PUFFS" "PUFFY" "PUKED" "PUKES" "PULLS" "PULPS" ...
    "PULPY" "PULSE" "PUMAS" "PUMPS" "PUNCH" "PUNKS" "PUNTS" "PUPAE" ...
    "PUPAL" "PUPAS" "PUPIL" "PUPPY" "PUREE" "PURER" "PURGE" "PURLS" ...
    "PURRS" "PURSE" "PUSHY" "PUSSY" "PUTTS" "PUTTY" "PYGMY" "PYLON" ...
    "PYRES" "PYXES" "QUACK" "QUADS" "QUAFF" "QUAIL" "QUAKE" "QUALM" ...
    "QUARK" "QUART" "QUASH" "QUASI" "QUAYS" "QUEEN" "QUEER" "QUELL" ...
    "QUERY" "QUEST" "QUEUE" "QUICK" "QUIDS" "QUIET" "QUILL" "QUILT" ...
    "QUIPS" "QUIRE" "QUIRK" "QUITE" "QUITS" "QUOIT" "QUOTA" "QUOTE" ...
    "QUOTH" "RABBI" "RABID" "RACED" "RACER" "RACES" "RACKS" "RADAR" ...
    "RADII" "RADIO" "RADON" "RAFTS" "RAGAS" "RAGED" "RAGES" "RAIDS" ...
    "RAILS" "RAINS" "RAINY" "RAISE" "RAJAH" "RAJAS" "RAKED" "RAKES" ...
    "RALLY" "RALPH" "RAMEN" "RAMPS" "RANCH" "RANDY" "RANGE" "RANGY" ...
    "RANKS" "RANTS" "RAPED" "RAPES" "RAPID" "RARED" "RARER" "RARES" ...
    "RASPS" "RASPY" "RATED" "RATES" "RATIO" "RATTY" "RAVED" "RAVEL" ...
    "RAVEN" "RAVES" "RAWER" "RAYON" "RAZED" "RAZES" "RAZOR" "REACH" ...
    "REACT" "READS" "READY" "REALM" "REALS" "REAMS" "REAPS" "REARM" ...
    "REARS" "REBAR" "REBEL" "REBUS" "REBUT" "RECAP" "RECTA" "RECUR" ...
    "RECUT" "REDID" "REEDS" "REEDY" "REEFS" "REEKS" "REELS" "REEVE" ...
    "REFER" "REFIT" "REGAL" "REHAB" "REIGN" "REINS" "RELAX" "RELAY" ...
    "RELIC" "REMIT" "RENAL" "RENDS" "RENEW" "RENTS" "REPAY" "REPEL" ...
    "REPLY" "RERAN" "RERUN" "RESET" "RESIN" "RESTS" "RETCH" "RETRO" ...
    "RETRY" "REUSE" "REVEL" "REVUE" "RHEAS" "RHEUM" "RHINO" "RHYME" ...
    "RICED" "RICES" "RICKS" "RIDER" "RIDES" "RIDGE" "RIFER" "RIFFS" ...
    "RIFLE" "RIFTS" "RIGHT" "RIGID" "RIGOR" "RILED" "RILES" "RILLS" ...
    "RIMED" "RIMES" "RINDS" "RINGS" "RINKS" "RINSE" "RIOTS" "RIPEN" ...
    "RIPER" "RISEN" "RISER" "RISES" "RISKS" "RISKY" "RITES" "RITZY" ...
    "RIVAL" "RIVEN" "RIVER" "RIVET" "ROACH" "ROADS" "ROAMS" "ROANS" ...
    "ROARS" "ROAST" "ROBED" "ROBES" "ROBIN" "ROBOT" "ROCKS" "ROCKY" ...
    "RODEO" "ROGER" "ROGUE" "ROILS" "ROLES" "ROLLS" "ROMAN" "ROMPS" ...
    "ROODS" "ROOFS" "ROOKS" "ROOMS" "ROOMY" "ROOST" "ROOTS" "ROPED" ...
    "ROPES" "ROSES" "ROSIN" "ROTOR" "ROUGE" "ROUGH" "ROUND" "ROUSE" ...
    "ROUTE" "ROUTS" "ROVED" "ROVER" "ROVES" "ROWDY" "ROWED" "ROWEL" ...
    "ROWER" "ROYAL" "RUBES" "RUBLE" "RUDDY" "RUDER" "RUFFS" "RUGBY" ...
    "RUING" "RUINS" "RULED" "RULER" "RULES" "RUMBA" "RUMMY" "RUMOR" ...
    "RUMPS" "RUNES" "RUNGS" "RUNNY" "RUNTS" "RUPEE" "RURAL" "RUSES" ...
    "RUSKS" "RUSTS" "RUSTY" "SABER" "SABLE" "SABRE" "SACKS" "SADES" ...
    "SADLY" "SAFER" "SAFES" "SAGAS" "SAGER" "SAGES" "SAHIB" "SAILS" ...
    "SAINT" "SAITH" "SALAD" "SALES" "SALLY" "SALON" "SALSA" "SALTS" ...
    "SALTY" "SALVE" "SALVO" "SAMBA" "SAMES" "SANDS" "SANDY" "SANER" ...
    "SANGS" "SAPPY" "SAREE" "SARIS" "SASSY" "SATED" "SATES" "SATIN" ...
    "SATYR" "SAUCE" "SAUCY" "SAUNA" "SAUTE" "SAVED" "SAVER" "SAVES" ...
    "SAVOR" "SAVOY" "SAVVY" "SAWED" "SAXES" "SCABS" "SCADS" "SCALD" ...
    "SCALE" "SCALP" "SCALY" "SCAMP" "SCAMS" "SCANS" "SCANT" "SCARE" ...
    "SCARF" "SCARS" "SCARY" "SCATS" "SCENE" "SCENT" "SCHWA" "SCION" ...
    "SCOFF" "SCOLD" "SCONE" "SCOOP" "SCOOT" "SCOPE" "SCORE" "SCORN" ...
    "SCOUR" "SCOUT" "SCOWL" "SCOWS" "SCRAM" "SCRAP" "SCREE" "SCREW" ...
    "SCRIP" "SCROD" "SCRUB" "SCRUM" "SCUBA" "SCUDS" "SCUFF" "SCULL" ...
    "SCUMS" "SCURF" "SEALS" "SEAMS" "SEAMY" "SEARS" "SEATS" "SECTS" ...
    "SEDAN" "SEDGE" "SEEDS" "SEEDY" "SEEKS" "SEEMS" "SEEPS" "SEERS" ...
    "SEGUE" "SEIZE" "SELLS" "SEMEN" "SEMIS" "SENDS" "SENNA" "SENSE" ...
    "SEPAL" "SEPIA" "SEPTA" "SERER" "SERFS" "SERGE" "SERIF" "SERUM" ...
    "SERVE" "SERVO" "SETUP" "SEVEN" "SEVER" "SEWED" "SEWER" "SEXED" ...
    "SEXES" "SHACK" "SHADE" "SHADS" "SHADY" "SHAFT" "SHAGS" "SHAHS" ...
    "SHAKE" "SHAKY" "SHALE" "SHALL" "SHALT" "SHAME" "SHAMS" "SHANK" ...
    "SHAPE" "SHARD" "SHARE" "SHARK" "SHARP" "SHAVE" "SHAWL" "SHEAF" ...
    "SHEAR" "SHEDS" "SHEEN" "SHEEP" "SHEER" "SHEET" "SHEIK" "SHELF" ...
    "SHELL" "SHERD" "SHIED" "SHIES" "SHIFT" "SHILL" "SHIMS" "SHINE" ...
    "SHINS" "SHINY" "SHIPS" "SHIRE" "SHIRK" "SHIRR" "SHIRT" "SHITS" ...
    "SHLEP" "SHOAL" "SHOCK" "SHOED" "SHOES" "SHONE" "SHOOK" "SHOON" ...
    "SHOOS" "SHOOT" "SHOPS" "SHORE" "SHORN" "SHORT" "SHOTS" "SHOUT" ...
    "SHOVE" "SHOWN" "SHOWS" "SHOWY" "SHRED" "SHREW" "SHRUB" "SHRUG" ...
    "SHTIK" "SHUCK" "SHUNS" "SHUNT" "SHUSH" "SHUTS" "SHYER" "SHYLY" ...
    "SIBYL" "SICKS" "SIDED" "SIDES" "SIDLE" "SIEGE" "SIEVE" "SIFTS" ...
    "SIGHS" "SIGHT" "SIGMA" "SIGNS" "SILKS" "SILKY" "SILLS" "SILLY" ...
    "SILOS" "SILTS" "SINCE" "SINEW" "SINGE" "SINGS" "SINKS" "SINUS" ...
    "SIRED" "SIREN" "SIRES" "SIRUP" "SISAL" "SISES" "SISSY" "SITAR" ...
    "SITED" "SITES" "SIXES" "SIXTH" "SIXTY" "SIZED" "SIZER" "SIZES" ...
    "SKATE" "SKEET" "SKEIN" "SKEWS" "SKIDS" "SKIED" "SKIER" "SKIES" ...
    "SKIFF" "SKILL" "SKIMP" "SKIMS" "SKINS" "SKIPS" "SKIRT" "SKITS" ...
    "SKULK" "SKULL" "SKUNK" "SKYED" "SLABS" "SLACK" "SLAGS" "SLAIN" ...
    "SLAKE" "SLAMS" "SLANG" "SLANT" "SLAPS" "SLASH" "SLATE" "SLATS" ...
    "SLAVE" "SLAYS" "SLEDS" "SLEEK" "SLEEP" "SLEET" "SLEPT" "SLEWS" ...
    "SLICE" "SLICK" "SLIDE" "SLIER" "SLILY" "SLIME" "SLIMS" "SLIMY" ...
    "SLING" "SLINK" "SLIPS" "SLITS" "SLOBS" "SLOES" "SLOGS" "SLOOP" ...
    "SLOPE" "SLOPS" "SLOSH" "SLOTH" "SLOTS" "SLOWS" "SLUED" "SLUES" ...
    "SLUGS" "SLUMP" "SLUMS" "SLUNG" "SLUNK" "SLURP" "SLURS" "SLUSH" ...
    "SLUTS" "SLYER" "SLYLY" "SMACK" "SMALL" "SMART" "SMASH" "SMEAR" ...
    "SMELL" "SMELT" "SMILE" "SMIRK" "SMITE" "SMITH" "SMOCK" "SMOKE" ...
    "SMOKY" "SMOTE" "SMUTS" "SNACK" "SNAFU" "SNAGS" "SNAIL" "SNAKE" ...
    "SNAKY" "SNAPS" "SNARE" "SNARL" "SNEAK" "SNEER" "SNIDE" "SNIFF" ...
    "SNIPE" "SNIPS" "SNITS" "SNOBS" "SNOOP" "SNOOT" "SNORE" "SNORT" ...
    "SNOTS" "SNOUT" "SNOWS" "SNOWY" "SNUBS" "SNUCK" "SNUFF" "SNUGS" ...
    "SOAKS" "SOAPS" "SOAPY" "SOARS" "SOBER" "SOCKS" "SODAS" "SOFAS" ...
    "SOFTY" "SOGGY" "SOILS" "SOLAR" "SOLED" "SOLES" "SOLID" "SOLOS" ...
    "SOLVE" "SONAR" "SONGS" "SONIC" "SONNY" "SOOTH" "SOOTY" "SOPPY" ...
    "SORER" "SORES" "SORRY" "SORTA" "SORTS" "SOUGH" "SOULS" "SOUND" ...
    "SOUPS" "SOUPY" "SOURS" "SOUSE" "SOUTH" "SOWED" "SOWER" "SPACE" ...
    "SPACY" "SPADE" "SPAKE" "SPANK" "SPANS" "SPARE" "SPARK" "SPARS" ...
    "SPASM" "SPATE" "SPATS" "SPAWN" "SPAYS" "SPEAK" "SPEAR" "SPECK" ...
    "SPECS" "SPEED" "SPELL" "SPELT" "SPEND" "SPENT" "SPERM" "SPEWS" ...
    "SPICE" "SPICY" "SPIED" "SPIEL" "SPIES" "SPIKE" "SPIKY" "SPILL" ...
    "SPILT" "SPINE" "SPINS" "SPINY" "SPIRE" "SPITE" "SPITS" "SPLAT" ...
    "SPLAY" "SPLIT" "SPOIL" "SPOKE" "SPOOF" "SPOOK" "SPOOL" "SPOON" ...
    "SPOOR" "SPORE" "SPORT" "SPOTS" "SPOUT" "SPRAT" "SPRAY" "SPREE" ...
    "SPRIG" "SPUDS" "SPUME" "SPUNK" "SPURN" "SPURS" "SPURT" "SQUAB" ...
    "SQUAD" "SQUAT" "SQUAW" "SQUIB" "SQUID" "STABS" "STACK" "STAFF" ...
    "STAGE" "STAGS" "STAID" "STAIN" "STAIR" "STAKE" "STALE" "STALK" ...
    "STALL" "STAMP" "STAND" "STANK" "STAPH" "STARE" "STARK" "STARS" ...
    "START" "STASH" "STATE" "STATS" "STAVE" "STAYS" "STEAD" "STEAK" ...
    "STEAL" "STEAM" "STEED" "STEEL" "STEEP" "STEER" "STEIN" "STEMS" ...
    "STEPS" "STERN" "STEWS" "STICK" "STIES" "STIFF" "STILE" "STILL" ...
    "STILT" "STING" "STINK" "STINT" "STIRS" "STOAT" "STOCK" "STOIC" ...
    "STOKE" "STOLE" "STOMP" "STONE" "STONY" "STOOD" "STOOL" "STOOP" ...
    "STOPS" "STORE" "STORK" "STORM" "STORY" "STOUT" "STOVE" "STOWS" ...
    "STRAP" "STRAW" "STRAY" "STREP" "STREW" "STRIP" "STROP" "STRUM" ...
    "STRUT" "STUBS" "STUCK" "STUDS" "STUDY" "STUFF" "STUMP" "STUNG" ...
    "STUNK" "STUNS" "STUNT" "STYES" "STYLE" "STYLI" "SUAVE" "SUCKS" ...
    "SUDSY" "SUEDE" "SUGAR" "SUING" "SUITE" "SUITS" "SULKS" "SULKY" ...
    "SULLY" "SUMAC" "SUMPS" "SUNNY" "SUNUP" "SUPER" "SURER" "SURFS" ...
    "SURGE" "SURLY" "SUSHI" "SWABS" "SWAGS" "SWAIN" "SWAMI" "SWAMP" ...
    "SWANK" "SWANS" "SWAPS" "SWARD" "SWARM" "SWASH" "SWATH" "SWATS" ...
    "SWAYS" "SWEAR" "SWEAT" "SWEEP" "SWEET" "SWELL" "SWEPT" "SWIFT" ...
    "SWIGS" "SWILL" "SWIMS" "SWINE" "SWING" "SWIPE" "SWIRL" "SWISH" ...
    "SWOON" "SWOOP" "SWOPS" "SWORD" "SWORE" "SWORN" "SWUNG" "SYLPH" ...
    "SYNCH" "SYNCS" "SYNOD" "SYRUP" "TABBY" "TABLE" "TABOO" "TABUS" ...
    "TACIT" "TACKS" "TACKY" "TACOS" "TAFFY" "TAILS" "TAINT" "TAKEN" ...
    "TAKER" "TAKES" "TALES" "TALKS" "TALLY" "TALON" "TAMED" "TAMER" ...
    "TAMES" "TAMPS" "TANGO" "TANGS" "TANGY" "TANKS" "TANSY" "TAPED" ...
    "TAPER" "TAPES" "TAPIR" "TARDY" "TARED" "TARES" "TAROS" "TAROT" ...
    "TARPS" "TARRY" "TARTS" "TASKS" "TASTE" "TASTY" "TATTY" "TAUNT" ...
    "TAUPE" "TAWNY" "TAXED" "TAXES" "TAXIS" "TEACH" "TEAKS" "TEALS" ...
    "TEAMS" "TEARS" "TEARY" "TEASE" "TEATS" "TECHS" "TEDDY" "TEEMS" ...
    "TEENS" "TEENY" "TEETH" "TELEX" "TELLS" "TEMPI" "TEMPO" "TEMPS" ...
    "TEMPT" "TENDS" "TENET" "TENON" "TENOR" "TENSE" "TENTH" "TENTS" ...
    "TEPEE" "TEPID" "TERMS" "TERNS" "TERRA" "TERRY" "TERSE" "TESTS" ...
    "TESTY" "TEXTS" "THANK" "THAWS" "THEES" "THEFT" "THEIR" "THEME" ...
    "THERE" "THESE" "THETA" "THICK" "THIEF" "THIGH" "THINE" "THING" ...
    "THINK" "THINS" "THIRD" "THONG" "THORN" "THOSE" "THOUS" "THREE" ...
    "THREW" "THROB" "THROE" "THROW" "THRUM" "THUDS" "THUGS" "THUMB" ...
    "THUMP" "THYME" "THYMI" "TIARA" "TIBIA" "TICKS" "TIDAL" "TIDED" ...
    "TIDES" "TIERS" "TIFFS" "TIGER" "TIGHT" "TIKES" "TILDE" "TILED" ...
    "TILES" "TILLS" "TILTS" "TIMED" "TIMER" "TIMES" "TIMID" "TINES" ...
    "TINGE" "TINGS" "TINNY" "TINTS" "TIPIS" "TIPSY" "TIRED" "TIRES" ...
    "TIROS" "TITAN" "TITHE" "TITLE" "TIZZY" "TOADS" "TOADY" "TOAST" ...
    "TODAY" "TODDY" "TOFFY" "TOGAE" "TOGAS" "TOILS" "TOKED" "TOKEN" ...
    "TOKES" "TOLLS" "TOMBS" "TOMES" "TONAL" "TONED" "TONER" "TONES" ...
    "TONGA" "TONGS" "TONIC" "TONNE" "TOOLS" "TOOTH" "TOOTS" "TOPAZ" ...
    "TOPIC" "TOQUE" "TORCH" "TORSI" "TORSO" "TORTE" "TORTS" "TORUS" ...
    "TOTAL" "TOTED" "TOTEM" "TOTES" "TOUCH" "TOUGH" "TOURS" "TOUTS" ...
    "TOWED" "TOWEL" "TOWER" "TOWNS" "TOXIC" "TOXIN" "TOYED" "TRACE" ...
    "TRACK" "TRACT" "TRADE" "TRAIL" "TRAIN" "TRAIT" "TRAMP" "TRAMS" ...
    "TRAPS" "TRASH" "TRAWL" "TRAYS" "TREAD" "TREAT" "TREED" "TREES" ...
    "TREKS" "TREND" "TRESS" "TRIAD" "TRIAL" "TRIBE" "TRICE" "TRICK" ...
    "TRIED" "TRIES" "TRIKE" "TRILL" "TRIMS" "TRIOS" "TRIPE" "TRIPS" ...
    "TRITE" "TROLL" "TROMP" "TROOP" "TROPE" "TROTH" "TROTS" "TROUT" ...
    "TROVE" "TROYS" "TRUCE" "TRUCK" "TRUED" "TRUER" "TRUES" "TRULY" ...
    "TRUMP" "TRUNK" "TRUSS" "TRUST" "TRUTH" "TRYST" "TSARS" "TUBAL" ...
    "TUBAS" "TUBBY" "TUBED" "TUBER" "TUBES" "TUCKS" "TUFTS" "TULIP" ...
    "TULLE" "TUMID" "TUMMY" "TUMOR" "TUNAS" "TUNED" "TUNER" "TUNES" ...
    "TUNIC" "TUNNY" "TURBO" "TURDS" "TURFS" "TURNS" "TUSKS" "TUTOR" ...
    "TUTUS" "TUXES" "TWAIN" "TWANG" "TWEAK" "TWEED" "TWEET" "TWERP" ...
    "TWICE" "TWIGS" "TWILL" "TWINE" "TWINS" "TWIRL" "TWIST" "TWITS" ...
    "TWIXT" "TYING" "TYKES" "TYPED" "TYPES" "TYPOS" "TYROS" "TZARS" ...
    "UDDER" "ULCER" "ULNAE" "ULNAS" "ULTRA" "UMBEL" "UMBER" "UMBRA" ...
    "UMIAK" "UMPED" "UNBAR" "UNCLE" "UNCUT" "UNDER" "UNDID" "UNDUE" ...
    "UNFED" "UNFIT" "UNIFY" "UNION" "UNITE" "UNITS" "UNITY" "UNLIT" ...
    "UNMAN" "UNMET" "UNPIN" "UNSAY" "UNSET" "UNTIE" "UNTIL" "UNWED" ...
    "UNZIP" "UPEND" "UPPED" "UPPER" "UPSET" "URBAN" "URGED" "URGES" ...
    "URINE" "USAGE" "USERS" "USHER" "USING" "USUAL" "USURP" "USURY" ...
    "UTERI" "UTILE" "UTTER" "UVULA" "VACUA" "VAGUE" "VALES" "VALET" ...
    "VALID" "VALOR" "VALUE" "VALVE" "VAMPS" "VANES" "VAPID" "VAPOR" ...
    "VASES" "VASTS" "VAULT" "VAUNT" "VEEPS" "VEERS" "VEGAN" "VEILS" ...
    "VEINS" "VELDS" "VELDT" "VENAL" "VENDS" "VENOM" "VENTS" "VENUE" ...
    "VERBS" "VERGE" "VERSE" "VERSO" "VERVE" "VESTS" "VETCH" "VEXED" ...
    "VEXES" "VIALS" "VIAND" "VIBES" "VICAR" "VICED" "VICES" "VIDEO" ...
    "VIEWS" "VIGIL" "VIGOR" "VILER" "VILLA" "VINES" "VINYL" "VIOLA" ...
    "VIOLS" "VIPER" "VIRAL" "VIREO" "VIRUS" "VISAS" "VISED" "VISES" ...
    "VISIT" "VISOR" "VISTA" "VITAL" "VIVAS" "VIVID" "VIXEN" "VIZOR" ...
    "VOCAL" "VODKA" "VOGUE" "VOICE" "VOIDS" "VOILA" "VOILE" "VOLES" ...
    "VOLTS" "VOMIT" "VOTED" "VOTER" "VOTES" "VOUCH" "VOWED" "VOWEL" ...
    "VULVA" "VYING" "WACKO" "WACKY" "WADED" "WADER" "WADES" "WADIS" ...
    "WAFER" "WAFTS" "WAGED" "WAGER" "WAGES" "WAGON" "WAIFS" "WAILS" ...
    "WAIST" "WAITS" "WAIVE" "WAKED" "WAKEN" "WAKES" "WALED" "WALES" ...
    "WALKS" "WALLS" "WALTZ" "WANDS" "WANED" "WANES" "WANLY" "WANNA" ...
    "WANTS" "WARDS" "WARES" "WARMS" "WARNS" "WARPS" "WARTS" "WARTY" ...
    "WASPS" "WASTE" "WATCH" "WATER" "WATTS" "WAVED" "WAVER" "WAVES" ...
    "WAXED" "WAXEN" "WAXES" "WEALS" "WEANS" "WEARS" "WEARY" "WEAVE" ...
    "WEDGE" "WEEDS" "WEEDY" "WEEKS" "WEEPS" "WEEPY" "WEEST" "WEFTS" ...
    "WEIGH" "WEIRD" "WEIRS" "WELCH" "WELDS" "WELLS" "WELSH" "WELTS" ...
    "WENCH" "WENDS" "WETLY" "WHACK" "WHALE" "WHAMS" "WHARF" "WHATS" ...
    "WHEAL" "WHEAT" "WHEEL" "WHELK" "WHELP" "WHENS" "WHERE" "WHETS" ...
    "WHICH" "WHIFF" "WHILE" "WHIMS" "WHINE" "WHINY" "WHIPS" "WHIRL" ...
    "WHIRR" "WHIRS" "WHISK" "WHIST" "WHITE" "WHITS" "WHIZZ" "WHOLE" ...
    "WHOOP" "WHORE" "WHORL" "WHOSE" "WICKS" "WIDEN" "WIDER" "WIDOW" ...
    "WIDTH" "WIELD" "WIGHT" "WIKIS" "WILDS" "WILED" "WILES" "WILLS" ...
    "WILLY" "WILTS" "WIMPS" "WIMPY" "WINCE" "WINCH" "WINDS" "WINDY" ...
    "WINED" "WINES" "WINGS" "WINKS" "WINOS" "WIPED" "WIPER" "WIPES" ...
    "WIRED" "WIRES" "WISER" "WISES" "WISPS" "WISPY" "WITCH" "WITTY" ...
    "WIVES" "WIZES" "WOKEN" "WOLFS" "WOMAN" "WOMBS" "WOMEN" "WOODS" ...
    "WOODY" "WOOED" "WOOER" "WOOFS" "WOOLY" "WOOZY" "WORDS" "WORDY" ...
    "WORKS" "WORLD" "WORMS" "WORMY" "WORRY" "WORSE" "WORST" "WORTH" ...
    "WOULD" "WOUND" "WOVEN" "WOWED" "WRACK" "WRAPS" "WRAPT" "WRATH" ...
    "WREAK" "WRECK" "WRENS" "WREST" "WRIER" "WRING" "WRIST" "WRITE" ...
    "WRITS" "WRONG" "WROTE" "WROTH" "WRUNG" "WRYER" "WRYLY" "XENON" ...
    "XYLEM" "YACHT" "YACKS" "YAHOO" "YANKS" "YARDS" "YARNS" "YAWED" ...
    "YAWLS" "YAWNS" "YEAHS" "YEARN" "YEARS" "YEAST" "YELLS" "YELPS" ...
    "YESES" "YIELD" "YOCKS" "YODEL" "YOGIN" "YOGIS" "YOKED" "YOKEL" ...
    "YOKES" "YOLKS" "YOUNG" "YOURS" "YOUTH" "YOWLS" "YUCCA" "YUCKS" ...
    "YUCKY" "YUMMY" "YUPPY" "ZEBRA" "ZEBUS" "ZEROS" "ZESTS" "ZESTY" ...
    "ZILCH" "ZINCS" "ZINGS" "ZIPPY" "ZOMBI" "ZONAL" "ZONED" "ZONES" ...
    "ZOOMS" ]; 

    else % nargin > 0

    vocab = [ ... 
    "ABACK" "ABASE" "ABATE" "ABBEY" "ABBOT" "ABHOR" "ABIDE" "ABLED" ...
    "ABODE" "ABORT" "ABOUT" "ABOVE" "ABUSE" "ABYSS" "ACORN" "ACRID" ...
    "ACTOR" "ACUTE" "ADAGE" "ADAPT" "ADEPT" "ADMIN" "ADMIT" "ADOBE" ...
    "ADOPT" "ADORE" "ADORN" "ADULT" "AFFIX" "AFIRE" "AFOOT" "AFOUL" ...
    "AFTER" "AGAIN" "AGAPE" "AGATE" "AGENT" "AGILE" "AGING" "AGLOW" ...
    "AGONY" "AGORA" "AGREE" "AHEAD" "AIDER" "AISLE" "ALARM" "ALBUM" ...
    "ALERT" "ALGAE" "ALIBI" "ALIEN" "ALIGN" "ALIKE" "ALIVE" "ALLAY" ...
    "ALLEY" "ALLOT" "ALLOW" "ALLOY" "ALOFT" "ALONE" "ALONG" "ALOOF" ...
    "ALOUD" "ALPHA" "ALTAR" "ALTER" "AMASS" "AMAZE" "AMBER" "AMBLE" ...
    "AMEND" "AMISS" "AMITY" "AMONG" "AMPLE" "AMPLY" "AMUSE" "ANGEL" ...
    "ANGER" "ANGLE" "ANGRY" "ANGST" "ANIME" "ANKLE" "ANNEX" "ANNOY" ...
    "ANNUL" "ANODE" "ANTIC" "ANVIL" "AORTA" "APART" "APHID" "APING" ...
    "APNEA" "APPLE" "APPLY" "APRON" "APTLY" "ARBOR" "ARDOR" "ARENA" ...
    "ARGUE" "ARISE" "ARMOR" "AROMA" "AROSE" "ARRAY" "ARROW" "ARSON" ...
    "ARTSY" "ASCOT" "ASHEN" "ASIDE" "ASKEW" "ASSAY" "ASSET" "ATOLL" ...
    "ATONE" "ATTIC" "AUDIO" "AUDIT" "AUGUR" "AUNTY" "AVAIL" "AVERT" ...
    "AVIAN" "AVOID" "AWAIT" "AWAKE" "AWARD" "AWARE" "AWASH" "AWFUL" ...
    "AWOKE" "AXIAL" "AXIOM" "AXION" "AZURE" "BACON" "BADGE" "BADLY" ...
    "BAGEL" "BAGGY" "BAKER" "BALER" "BALMY" "BANAL" "BANJO" "BARGE" ...
    "BARON" "BASAL" "BASIC" "BASIL" "BASIN" "BASIS" "BASTE" "BATCH" ...
    "BATHE" "BATON" "BATTY" "BAWDY" "BAYOU" "BEACH" "BEADY" "BEARD" ...
    "BEAST" "BEECH" "BEEFY" "BEFIT" "BEGAN" "BEGAT" "BEGET" "BEGIN" ...
    "BEGUN" "BEING" "BELCH" "BELIE" "BELLE" "BELLY" "BELOW" "BENCH" ...
    "BERET" "BERRY" "BERTH" "BESET" "BETEL" "BEVEL" "BEZEL" "BIBLE" ...
    "BICEP" "BIDDY" "BIGOT" "BILGE" "BILLY" "BINGE" "BINGO" "BIOME" ...
    "BIRCH" "BIRTH" "BISON" "BITTY" "BLACK" "BLADE" "BLAME" "BLAND" ...
    "BLANK" "BLARE" "BLAST" "BLAZE" "BLEAK" "BLEAT" "BLEED" "BLEEP" ...
    "BLEND" "BLESS" "BLIMP" "BLIND" "BLINK" "BLISS" "BLITZ" "BLOAT" ...
    "BLOCK" "BLOKE" "BLOND" "BLOOD" "BLOOM" "BLOWN" "BLUER" "BLUFF" ...
    "BLUNT" "BLURB" "BLURT" "BLUSH" "BOARD" "BOAST" "BOBBY" "BONEY" ...
    "BONGO" "BONUS" "BOOBY" "BOOST" "BOOTH" "BOOTY" "BOOZE" "BOOZY" ...
    "BORAX" "BORNE" "BOSOM" "BOSSY" "BOTCH" "BOUGH" "BOULE" "BOUND" ...
    "BOWEL" "BOXER" "BRACE" "BRAID" "BRAIN" "BRAKE" "BRAND" "BRASH" ...
    "BRASS" "BRAVE" "BRAVO" "BRAWL" "BRAWN" "BREAD" "BREAK" "BREED" ...
    "BRIAR" "BRIBE" "BRICK" "BRIDE" "BRIEF" "BRINE" "BRING" "BRINK" ...
    "BRINY" "BRISK" "BROAD" "BROIL" "BROKE" "BROOD" "BROOK" "BROOM" ...
    "BROTH" "BROWN" "BRUNT" "BRUSH" "BRUTE" "BUDDY" "BUDGE" "BUGGY" ...
    "BUGLE" "BUILD" "BUILT" "BULGE" "BULKY" "BULLY" "BUNCH" "BUNNY" ...
    "BURLY" "BURNT" "BURST" "BUSED" "BUSHY" "BUTCH" "BUTTE" "BUXOM" ...
    "BUYER" "BYLAW" "CABAL" "CABBY" "CABIN" "CABLE" "CACAO" "CACHE" ...
    "CACTI" "CADDY" "CADET" "CAGEY" "CAIRN" "CAMEL" "CAMEO" "CANAL" ...
    "CANDY" "CANNY" "CANOE" "CANON" "CAPER" "CAPUT" "CARAT" "CARGO" ...
    "CAROL" "CARRY" "CARVE" "CASTE" "CATCH" "CATER" "CATTY" "CAULK" ...
    "CAUSE" "CAVIL" "CEASE" "CEDAR" "CELLO" "CHAFE" "CHAFF" "CHAIN" ...
    "CHAIR" "CHALK" "CHAMP" "CHANT" "CHAOS" "CHARD" "CHARM" "CHART" ...
    "CHASE" "CHASM" "CHEAP" "CHEAT" "CHECK" "CHEEK" "CHEER" "CHESS" ...
    "CHEST" "CHICK" "CHIDE" "CHIEF" "CHILD" "CHILI" "CHILL" "CHIME" ...
    "CHINA" "CHIRP" "CHOCK" "CHOIR" "CHOKE" "CHORD" "CHORE" "CHOSE" ...
    "CHUCK" "CHUMP" "CHUNK" "CHURN" "CHUTE" "CIDER" "CIGAR" "CINCH" ...
    "CIRCA" "CIVIC" "CIVIL" "CLACK" "CLAIM" "CLAMP" "CLANG" "CLANK" ...
    "CLASH" "CLASP" "CLASS" "CLEAN" "CLEAR" "CLEAT" "CLEFT" "CLERK" ...
    "CLICK" "CLIFF" "CLIMB" "CLING" "CLINK" "CLOAK" "CLOCK" "CLONE" ...
    "CLOSE" "CLOTH" "CLOUD" "CLOUT" "CLOVE" "CLOWN" "CLUCK" "CLUED" ...
    "CLUMP" "CLUNG" "COACH" "COAST" "COBRA" "COCOA" "COLON" "COLOR" ...
    "COMET" "COMFY" "COMIC" "COMMA" "CONCH" "CONDO" "CONIC" "COPSE" ...
    "CORAL" "CORER" "CORNY" "COUCH" "COUGH" "COULD" "COUNT" "COUPE" ...
    "COURT" "COVEN" "COVER" "COVET" "COVEY" "COWER" "COYLY" "CRACK" ...
    "CRAFT" "CRAMP" "CRANE" "CRANK" "CRASH" "CRASS" "CRATE" "CRAVE" ...
    "CRAWL" "CRAZE" "CRAZY" "CREAK" "CREAM" "CREDO" "CREED" "CREEK" ...
    "CREEP" "CREME" "CREPE" "CREPT" "CRESS" "CREST" "CRICK" "CRIED" ...
    "CRIER" "CRIME" "CRIMP" "CRISP" "CROAK" "CROCK" "CRONE" "CRONY" ...
    "CROOK" "CROSS" "CROUP" "CROWD" "CROWN" "CRUDE" "CRUEL" "CRUMB" ...
    "CRUMP" "CRUSH" "CRUST" "CRYPT" "CUBIC" "CUMIN" "CURIO" "CURLY" ...
    "CURRY" "CURSE" "CURVE" "CURVY" "CUTIE" "CYBER" "CYCLE" "CYNIC" ...
    "DADDY" "DAILY" "DAIRY" "DAISY" "DALLY" "DANCE" "DANDY" "DATUM" ...
    "DAUNT" "DEALT" "DEATH" "DEBAR" "DEBIT" "DEBUG" "DEBUT" "DECAL" ...
    "DECAY" "DECOR" "DECOY" "DECRY" "DEFER" "DEIGN" "DEITY" "DELAY" ...
    "DELTA" "DELVE" "DEMON" "DEMUR" "DENIM" "DENSE" "DEPOT" "DEPTH" ...
    "DERBY" "DETER" "DETOX" "DEUCE" "DEVIL" "DIARY" "DICEY" "DIGIT" ...
    "DILLY" "DIMLY" "DINER" "DINGO" "DINGY" "DIODE" "DIRGE" "DIRTY" ...
    "DISCO" "DITCH" "DITTO" "DITTY" "DIVER" "DIZZY" "DODGE" "DODGY" ...
    "DOGMA" "DOING" "DOLLY" "DONOR" "DONUT" "DOPEY" "DOUBT" "DOUGH" ...
    "DOWDY" "DOWEL" "DOWNY" "DOWRY" "DOZEN" "DRAFT" "DRAIN" "DRAKE" ...
    "DRAMA" "DRANK" "DRAPE" "DRAWL" "DRAWN" "DREAD" "DREAM" "DRESS" ...
    "DRIED" "DRIER" "DRIFT" "DRILL" "DRINK" "DRIVE" "DROIT" "DROLL" ...
    "DRONE" "DROOL" "DROOP" "DROSS" "DROVE" "DROWN" "DRUID" "DRUNK" ...
    "DRYER" "DRYLY" "DUCHY" "DULLY" "DUMMY" "DUMPY" "DUNCE" "DUSKY" ...
    "DUSTY" "DUTCH" "DUVET" "DWARF" "DWELL" "DWELT" "DYING" "EAGER" ...
    "EAGLE" "EARLY" "EARTH" "EASEL" "EATEN" "EATER" "EBONY" "ECLAT" ...
    "EDICT" "EDIFY" "EERIE" "EGRET" "EIGHT" "EJECT" "EKING" "ELATE" ...
    "ELBOW" "ELDER" "ELECT" "ELEGY" "ELFIN" "ELIDE" "ELITE" "ELOPE" ...
    "ELUDE" "EMAIL" "EMBED" "EMBER" "EMCEE" "EMPTY" "ENACT" "ENDOW" ...
    "ENEMA" "ENEMY" "ENJOY" "ENNUI" "ENSUE" "ENTER" "ENTRY" "ENVOY" ...
    "EPOCH" "EPOXY" "EQUAL" "EQUIP" "ERASE" "ERECT" "ERODE" "ERROR" ...
    "ERUPT" "ESSAY" "ESTER" "ETHER" "ETHIC" "ETHOS" "ETUDE" "EVADE" ...
    "EVENT" "EVERY" "EVICT" "EVOKE" "EXACT" "EXALT" "EXCEL" "EXERT" ...
    "EXILE" "EXIST" "EXPEL" "EXTOL" "EXTRA" "EXULT" "EYING" "FABLE" ...
    "FACET" "FAINT" "FAIRY" "FAITH" "FALSE" "FANCY" "FANNY" "FARCE" ...
    "FATAL" "FATTY" "FAULT" "FAUNA" "FAVOR" "FEAST" "FECAL" "FEIGN" ...
    "FELLA" "FELON" "FEMME" "FEMUR" "FENCE" "FERAL" "FERRY" "FETAL" ...
    "FETCH" "FETID" "FETUS" "FEVER" "FEWER" "FIBER" "FIBRE" "FICUS" ...
    "FIELD" "FIEND" "FIERY" "FIFTH" "FIFTY" "FIGHT" "FILER" "FILET" ...
    "FILLY" "FILMY" "FILTH" "FINAL" "FINCH" "FINER" "FIRST" "FISHY" ...
    "FIXER" "FIZZY" "FJORD" "FLACK" "FLAIL" "FLAIR" "FLAKE" "FLAKY" ...
    "FLAME" "FLANK" "FLARE" "FLASH" "FLASK" "FLECK" "FLEET" "FLESH" ...
    "FLICK" "FLIER" "FLING" "FLINT" "FLIRT" "FLOAT" "FLOCK" "FLOOD" ...
    "FLOOR" "FLORA" "FLOSS" "FLOUR" "FLOUT" "FLOWN" "FLUFF" "FLUID" ...
    "FLUKE" "FLUME" "FLUNG" "FLUNK" "FLUSH" "FLUTE" "FLYER" "FOAMY" ...
    "FOCAL" "FOCUS" "FOGGY" "FOIST" "FOLIO" "FOLLY" "FORAY" "FORCE" ...
    "FORGE" "FORGO" "FORTE" "FORTH" "FORTY" "FORUM" "FOUND" "FOYER" ...
    "FRAIL" "FRAME" "FRANK" "FRAUD" "FREAK" "FREED" "FREER" "FRESH" ...
    "FRIAR" "FRIED" "FRILL" "FRISK" "FRITZ" "FROCK" "FROND" "FRONT" ...
    "FROST" "FROTH" "FROWN" "FROZE" "FRUIT" "FUDGE" "FUGUE" "FULLY" ...
    "FUNGI" "FUNKY" "FUNNY" "FUROR" "FURRY" "FUSSY" "FUZZY" "GAFFE" ...
    "GAILY" "GAMER" "GAMMA" "GAMUT" "GASSY" "GAUDY" "GAUGE" "GAUNT" ...
    "GAUZE" "GAVEL" "GAWKY" "GAYER" "GAYLY" "GAZER" "GECKO" "GEEKY" ...
    "GEESE" "GENIE" "GENRE" "GHOST" "GHOUL" "GIANT" "GIDDY" "GIPSY" ...
    "GIRLY" "GIRTH" "GIVEN" "GIVER" "GLADE" "GLAND" "GLARE" "GLASS" ...
    "GLAZE" "GLEAM" "GLEAN" "GLIDE" "GLINT" "GLOAT" "GLOBE" "GLOOM" ...
    "GLORY" "GLOSS" "GLOVE" "GLYPH" "GNASH" "GNOME" "GODLY" "GOING" ...
    "GOLEM" "GOLLY" "GONAD" "GONER" "GOODY" "GOOEY" "GOOFY" "GOOSE" ...
    "GORGE" "GOUGE" "GOURD" "GRACE" "GRADE" "GRAFT" "GRAIL" "GRAIN" ...
    "GRAND" "GRANT" "GRAPE" "GRAPH" "GRASP" "GRASS" "GRATE" "GRAVE" ...
    "GRAVY" "GRAZE" "GREAT" "GREED" "GREEN" "GREET" "GRIEF" "GRILL" ...
    "GRIME" "GRIMY" "GRIND" "GRIPE" "GROAN" "GROIN" "GROOM" "GROPE" ...
    "GROSS" "GROUP" "GROUT" "GROVE" "GROWL" "GROWN" "GRUEL" "GRUFF" ...
    "GRUNT" "GUARD" "GUAVA" "GUESS" "GUEST" "GUIDE" "GUILD" "GUILE" ...
    "GUILT" "GUISE" "GULCH" "GULLY" "GUMBO" "GUMMY" "GUPPY" "GUSTO" ...
    "GUSTY" "GYPSY" "HABIT" "HAIRY" "HALVE" "HANDY" "HAPPY" "HARDY" ...
    "HAREM" "HARPY" "HARRY" "HARSH" "HASTE" "HASTY" "HATCH" "HATER" ...
    "HAUNT" "HAUTE" "HAVEN" "HAVOC" "HAZEL" "HEADY" "HEARD" "HEART" ...
    "HEATH" "HEAVE" "HEAVY" "HEDGE" "HEFTY" "HEIST" "HELIX" "HELLO" ...
    "HENCE" "HERON" "HILLY" "HINGE" "HIPPO" "HIPPY" "HITCH" "HOARD" ...
    "HOBBY" "HOIST" "HOLLY" "HOMER" "HONEY" "HONOR" "HORDE" "HORNY" ...
    "HORSE" "HOTEL" "HOTLY" "HOUND" "HOUSE" "HOVEL" "HOVER" "HOWDY" ...
    "HUMAN" "HUMID" "HUMOR" "HUMPH" "HUMUS" "HUNCH" "HUNKY" "HURRY" ...
    "HUSKY" "HUSSY" "HUTCH" "HYDRO" "HYENA" "HYMEN" "HYPER" "ICILY" ...
    "ICING" "IDEAL" "IDIOM" "IDIOT" "IDLER" "IDYLL" "IGLOO" "ILIAC" ...
    "IMAGE" "IMBUE" "IMPEL" "IMPLY" "INANE" "INBOX" "INCUR" "INDEX" ...
    "INEPT" "INERT" "INFER" "INGOT" "INLAY" "INLET" "INNER" "INPUT" ...
    "INTER" "INTRO" "IONIC" "IRATE" "IRONY" "ISLET" "ISSUE" "ITCHY" ...
    "IVORY" "JAUNT" "JAZZY" "JELLY" "JERKY" "JETTY" "JEWEL" "JIFFY" ...
    "JOINT" "JOIST" "JOKER" "JOLLY" "JOUST" "JUDGE" "JUICE" "JUICY" ...
    "JUMBO" "JUMPY" "JUNTA" "JUNTO" "JUROR" "KAPPA" "KARMA" "KAYAK" ...
    "KEBAB" "KHAKI" "KINKY" "KIOSK" "KITTY" "KNACK" "KNAVE" "KNEAD" ...
    "KNEED" "KNEEL" "KNELT" "KNIFE" "KNOCK" "KNOLL" "KNOWN" "KOALA" ...
    "KRILL" "LABEL" "LABOR" "LADEN" "LADLE" "LAGER" "LANCE" "LANKY" ...
    "LAPEL" "LAPSE" "LARGE" "LARVA" "LASSO" "LATCH" "LATER" "LATHE" ...
    "LATTE" "LAUGH" "LAYER" "LEACH" "LEAFY" "LEAKY" "LEANT" "LEAPT" ...
    "LEARN" "LEASE" "LEASH" "LEAST" "LEAVE" "LEDGE" "LEECH" "LEERY" ...
    "LEFTY" "LEGAL" "LEGGY" "LEMON" "LEMUR" "LEPER" "LEVEL" "LEVER" ...
    "LIBEL" "LIEGE" "LIGHT" "LIKEN" "LILAC" "LIMBO" "LIMIT" "LINEN" ...
    "LINER" "LINGO" "LIPID" "LITHE" "LIVER" "LIVID" "LLAMA" "LOAMY" ...
    "LOATH" "LOBBY" "LOCAL" "LOCUS" "LODGE" "LOFTY" "LOGIC" "LOGIN" ...
    "LOOPY" "LOOSE" "LORRY" "LOSER" "LOUSE" "LOUSY" "LOVER" "LOWER" ...
    "LOWLY" "LOYAL" "LUCID" "LUCKY" "LUMEN" "LUMPY" "LUNAR" "LUNCH" ...
    "LUNGE" "LUPUS" "LURCH" "LURID" "LUSTY" "LYING" "LYMPH" "LYNCH" ...
    "LYRIC" "MACAW" "MACHO" "MACRO" "MADAM" "MADLY" "MAFIA" "MAGIC" ...
    "MAGMA" "MAIZE" "MAJOR" "MAKER" "MAMBO" "MAMMA" "MAMMY" "MANGA" ...
    "MANGE" "MANGO" "MANGY" "MANIA" "MANIC" "MANLY" "MANOR" "MAPLE" ...
    "MARCH" "MARRY" "MARSH" "MASON" "MASSE" "MATCH" "MATEY" "MAUVE" ...
    "MAXIM" "MAYBE" "MAYOR" "MEALY" "MEANT" "MEATY" "MECCA" "MEDAL" ...
    "MEDIA" "MEDIC" "MELEE" "MELON" "MERCY" "MERGE" "MERIT" "MERRY" ...
    "METAL" "METER" "METRO" "MICRO" "MIDGE" "MIDST" "MIGHT" "MILKY" ...
    "MIMIC" "MINCE" "MINER" "MINIM" "MINOR" "MINTY" "MINUS" "MIRTH" ...
    "MISER" "MISSY" "MOCHA" "MODAL" "MODEL" "MODEM" "MOGUL" "MOIST" ...
    "MOLAR" "MOLDY" "MONEY" "MONTH" "MOODY" "MOOSE" "MORAL" "MORON" ...
    "MORPH" "MOSSY" "MOTEL" "MOTIF" "MOTOR" "MOTTO" "MOULT" "MOUND" ...
    "MOUNT" "MOURN" "MOUSE" "MOUTH" "MOVER" "MOVIE" "MOWER" "MUCKY" ...
    "MUCUS" "MUDDY" "MULCH" "MUMMY" "MUNCH" "MURAL" "MURKY" "MUSHY" ...
    "MUSIC" "MUSKY" "MUSTY" "MYRRH" "NADIR" "NAIVE" "NANNY" "NASAL" ...
    "NASTY" "NATAL" "NAVAL" "NAVEL" "NEEDY" "NEIGH" "NERDY" "NERVE" ...
    "NEVER" "NEWER" "NEWLY" "NICER" "NICHE" "NIECE" "NIGHT" "NINJA" ...
    "NINNY" "NINTH" "NOBLE" "NOBLY" "NOISE" "NOISY" "NOMAD" "NOOSE" ...
    "NORTH" "NOSEY" "NOTCH" "NOVEL" "NUDGE" "NURSE" "NUTTY" "NYLON" ...
    "NYMPH" "OAKEN" "OBESE" "OCCUR" "OCEAN" "OCTAL" "OCTET" "ODDER" ...
    "ODDLY" "OFFAL" "OFFER" "OFTEN" "OLDEN" "OLDER" "OLIVE" "OMBRE" ...
    "OMEGA" "ONION" "ONSET" "OPERA" "OPINE" "OPIUM" "OPTIC" "ORBIT" ...
    "ORDER" "ORGAN" "OTHER" "OTTER" "OUGHT" "OUNCE" "OUTDO" "OUTER" ...
    "OUTGO" "OVARY" "OVATE" "OVERT" "OVINE" "OVOID" "OWING" "OWNER" ...
    "OXIDE" "OZONE" "PADDY" "PAGAN" "PAINT" "PALER" "PALSY" "PANEL" ...
    "PANIC" "PANSY" "PAPAL" "PAPER" "PARER" "PARKA" "PARRY" "PARSE" ...
    "PARTY" "PASTA" "PASTE" "PASTY" "PATCH" "PATIO" "PATSY" "PATTY" ...
    "PAUSE" "PAYEE" "PAYER" "PEACE" "PEACH" "PEARL" "PECAN" "PEDAL" ...
    "PENAL" "PENCE" "PENNE" "PENNY" "PERCH" "PERIL" "PERKY" "PESKY" ...
    "PESTO" "PETAL" "PETTY" "PHASE" "PHONE" "PHONY" "PHOTO" "PIANO" ...
    "PICKY" "PIECE" "PIETY" "PIGGY" "PILOT" "PINCH" "PINEY" "PINKY" ...
    "PINTO" "PIPER" "PIQUE" "PITCH" "PITHY" "PIVOT" "PIXEL" "PIXIE" ...
    "PIZZA" "PLACE" "PLAID" "PLAIN" "PLAIT" "PLANE" "PLANK" "PLANT" ...
    "PLATE" "PLAZA" "PLEAD" "PLEAT" "PLIED" "PLIER" "PLUCK" "PLUMB" ...
    "PLUME" "PLUMP" "PLUNK" "PLUSH" "POESY" "POINT" "POISE" "POKER" ...
    "POLAR" "POLKA" "POLYP" "POOCH" "POPPY" "PORCH" "POSER" "POSIT" ...
    "POSSE" "POUCH" "POUND" "POUTY" "POWER" "PRANK" "PRAWN" "PREEN" ...
    "PRESS" "PRICE" "PRICK" "PRIDE" "PRIED" "PRIME" "PRIMO" "PRINT" ...
    "PRIOR" "PRISM" "PRIVY" "PRIZE" "PROBE" "PRONE" "PRONG" "PROOF" ...
    "PROSE" "PROUD" "PROVE" "PROWL" "PROXY" "PRUDE" "PRUNE" "PSALM" ...
    "PUBIC" "PUDGY" "PUFFY" "PULPY" "PULSE" "PUNCH" "PUPAL" "PUPIL" ...
    "PUPPY" "PUREE" "PURER" "PURGE" "PURSE" "PUSHY" "PUTTY" "PYGMY" ...
    "QUACK" "QUAIL" "QUAKE" "QUALM" "QUARK" "QUART" "QUASH" "QUASI" ...
    "QUEEN" "QUEER" "QUELL" "QUERY" "QUEST" "QUEUE" "QUICK" "QUIET" ...
    "QUILL" "QUILT" "QUIRK" "QUITE" "QUOTA" "QUOTE" "QUOTH" "RABBI" ...
    "RABID" "RACER" "RADAR" "RADII" "RADIO" "RAINY" "RAISE" "RAJAH" ...
    "RALLY" "RALPH" "RAMEN" "RANCH" "RANDY" "RANGE" "RAPID" "RARER" ...
    "RASPY" "RATIO" "RATTY" "RAVEN" "RAYON" "RAZOR" "REACH" "REACT" ...
    "READY" "REALM" "REARM" "REBAR" "REBEL" "REBUS" "REBUT" "RECAP" ...
    "RECUR" "RECUT" "REEDY" "REFER" "REFIT" "REGAL" "REHAB" "REIGN" ...
    "RELAX" "RELAY" "RELIC" "REMIT" "RENAL" "RENEW" "REPAY" "REPEL" ...
    "REPLY" "RERUN" "RESET" "RESIN" "RETCH" "RETRO" "RETRY" "REUSE" ...
    "REVEL" "REVUE" "RHINO" "RHYME" "RIDER" "RIDGE" "RIFLE" "RIGHT" ...
    "RIGID" "RIGOR" "RINSE" "RIPEN" "RIPER" "RISEN" "RISER" "RISKY" ...
    "RIVAL" "RIVER" "RIVET" "ROACH" "ROAST" "ROBIN" "ROBOT" "ROCKY" ...
    "RODEO" "ROGER" "ROGUE" "ROOMY" "ROOST" "ROTOR" "ROUGE" "ROUGH" ...
    "ROUND" "ROUSE" "ROUTE" "ROVER" "ROWDY" "ROWER" "ROYAL" "RUDDY" ...
    "RUDER" "RUGBY" "RULER" "RUMBA" "RUMOR" "RUPEE" "RURAL" "RUSTY" ...
    "SADLY" "SAFER" "SAINT" "SALAD" "SALLY" "SALON" "SALSA" "SALTY" ...
    "SALVE" "SALVO" "SANDY" "SANER" "SAPPY" "SASSY" "SATIN" "SATYR" ...
    "SAUCE" "SAUCY" "SAUNA" "SAUTE" "SAVOR" "SAVOY" "SAVVY" "SCALD" ...
    "SCALE" "SCALP" "SCALY" "SCAMP" "SCANT" "SCARE" "SCARF" "SCARY" ...
    "SCENE" "SCENT" "SCION" "SCOFF" "SCOLD" "SCONE" "SCOOP" "SCOPE" ...
    "SCORE" "SCORN" "SCOUR" "SCOUT" "SCOWL" "SCRAM" "SCRAP" "SCREE" ...
    "SCREW" "SCRUB" "SCRUM" "SCUBA" "SEDAN" "SEEDY" "SEGUE" "SEIZE" ...
    "SEMEN" "SENSE" "SEPIA" "SERIF" "SERUM" "SERVE" "SETUP" "SEVEN" ...
    "SEVER" "SEWER" "SHACK" "SHADE" "SHADY" "SHAFT" "SHAKE" "SHAKY" ...
    "SHALE" "SHALL" "SHALT" "SHAME" "SHANK" "SHAPE" "SHARD" "SHARE" ...
    "SHARK" "SHARP" "SHAVE" "SHAWL" "SHEAR" "SHEEN" "SHEEP" "SHEER" ...
    "SHEET" "SHEIK" "SHELF" "SHELL" "SHIED" "SHIFT" "SHINE" "SHINY" ...
    "SHIRE" "SHIRK" "SHIRT" "SHOAL" "SHOCK" "SHONE" "SHOOK" "SHOOT" ...
    "SHORE" "SHORN" "SHORT" "SHOUT" "SHOVE" "SHOWN" "SHOWY" "SHREW" ...
    "SHRUB" "SHRUG" "SHUCK" "SHUNT" "SHUSH" "SHYLY" "SIEGE" "SIEVE" ...
    "SIGHT" "SIGMA" "SILKY" "SILLY" "SINCE" "SINEW" "SINGE" "SIREN" ...
    "SISSY" "SIXTH" "SIXTY" "SKATE" "SKIER" "SKIFF" "SKILL" "SKIMP" ...
    "SKIRT" "SKULK" "SKULL" "SKUNK" "SLACK" "SLAIN" "SLANG" "SLANT" ...
    "SLASH" "SLATE" "SLAVE" "SLEEK" "SLEEP" "SLEET" "SLEPT" "SLICE" ...
    "SLICK" "SLIDE" "SLIME" "SLIMY" "SLING" "SLINK" "SLOOP" "SLOPE" ...
    "SLOSH" "SLOTH" "SLUMP" "SLUNG" "SLUNK" "SLURP" "SLUSH" "SLYLY" ...
    "SMACK" "SMALL" "SMART" "SMASH" "SMEAR" "SMELL" "SMELT" "SMILE" ...
    "SMIRK" "SMITE" "SMITH" "SMOCK" "SMOKE" "SMOKY" "SMOTE" "SNACK" ...
    "SNAIL" "SNAKE" "SNAKY" "SNARE" "SNARL" "SNEAK" "SNEER" "SNIDE" ...
    "SNIFF" "SNIPE" "SNOOP" "SNORE" "SNORT" "SNOUT" "SNOWY" "SNUCK" ...
    "SNUFF" "SOAPY" "SOBER" "SOGGY" "SOLAR" "SOLID" "SOLVE" "SONAR" ...
    "SONIC" "SOOTH" "SOOTY" "SORRY" "SOUND" "SOUTH" "SOWER" "SPACE" ...
    "SPADE" "SPANK" "SPARE" "SPARK" "SPASM" "SPAWN" "SPEAK" "SPEAR" ...
    "SPECK" "SPEED" "SPELL" "SPELT" "SPEND" "SPENT" "SPERM" "SPICE" ...
    "SPICY" "SPIED" "SPIEL" "SPIKE" "SPIKY" "SPILL" "SPILT" "SPINE" ...
    "SPINY" "SPIRE" "SPITE" "SPLAT" "SPLIT" "SPOIL" "SPOKE" "SPOOF" ...
    "SPOOK" "SPOOL" "SPOON" "SPORE" "SPORT" "SPOUT" "SPRAY" "SPREE" ...
    "SPRIG" "SPUNK" "SPURN" "SPURT" "SQUAD" "SQUAT" "SQUIB" "STACK" ...
    "STAFF" "STAGE" "STAID" "STAIN" "STAIR" "STAKE" "STALE" "STALK" ...
    "STALL" "STAMP" "STAND" "STANK" "STARE" "STARK" "START" "STASH" ...
    "STATE" "STAVE" "STEAD" "STEAK" "STEAL" "STEAM" "STEED" "STEEL" ...
    "STEEP" "STEER" "STEIN" "STERN" "STICK" "STIFF" "STILL" "STILT" ...
    "STING" "STINK" "STINT" "STOCK" "STOIC" "STOKE" "STOLE" "STOMP" ...
    "STONE" "STONY" "STOOD" "STOOL" "STOOP" "STORE" "STORK" "STORM" ...
    "STORY" "STOUT" "STOVE" "STRAP" "STRAW" "STRAY" "STRIP" "STRUT" ...
    "STUCK" "STUDY" "STUFF" "STUMP" "STUNG" "STUNK" "STUNT" "STYLE" ...
    "SUAVE" "SUGAR" "SUING" "SUITE" "SULKY" "SULLY" "SUMAC" "SUNNY" ...
    "SUPER" "SURER" "SURGE" "SURLY" "SUSHI" "SWAMI" "SWAMP" "SWARM" ...
    "SWASH" "SWATH" "SWEAR" "SWEAT" "SWEEP" "SWEET" "SWELL" "SWEPT" ...
    "SWIFT" "SWILL" "SWINE" "SWING" "SWIRL" "SWISH" "SWOON" "SWOOP" ...
    "SWORD" "SWORE" "SWORN" "SWUNG" "SYNOD" "SYRUP" "TABBY" "TABLE" ...
    "TABOO" "TACIT" "TACKY" "TAFFY" "TAINT" "TAKEN" "TAKER" "TALLY" ...
    "TALON" "TAMER" "TANGO" "TANGY" "TAPER" "TAPIR" "TARDY" "TAROT" ...
    "TASTE" "TASTY" "TATTY" "TAUNT" "TAWNY" "TEACH" "TEARY" "TEASE" ...
    "TEDDY" "TEETH" "TEMPO" "TENET" "TENOR" "TENSE" "TENTH" "TEPEE" ...
    "TEPID" "TERRA" "TERSE" "TESTY" "THANK" "THEFT" "THEIR" "THEME" ...
    "THERE" "THESE" "THETA" "THICK" "THIEF" "THIGH" "THING" "THINK" ...
    "THIRD" "THONG" "THORN" "THOSE" "THREE" "THREW" "THROB" "THROW" ...
    "THRUM" "THUMB" "THUMP" "THYME" "TIARA" "TIBIA" "TIDAL" "TIGER" ...
    "TIGHT" "TILDE" "TIMER" "TIMID" "TIPSY" "TITAN" "TITHE" "TITLE" ...
    "TOAST" "TODAY" "TODDY" "TOKEN" "TONAL" "TONGA" "TONIC" "TOOTH" ...
    "TOPAZ" "TOPIC" "TORCH" "TORSO" "TORUS" "TOTAL" "TOTEM" "TOUCH" ...
    "TOUGH" "TOWEL" "TOWER" "TOXIC" "TOXIN" "TRACE" "TRACK" "TRACT" ...
    "TRADE" "TRAIL" "TRAIN" "TRAIT" "TRAMP" "TRASH" "TRAWL" "TREAD" ...
    "TREAT" "TREND" "TRIAD" "TRIAL" "TRIBE" "TRICE" "TRICK" "TRIED" ...
    "TRIPE" "TRITE" "TROLL" "TROOP" "TROPE" "TROUT" "TROVE" "TRUCE" ...
    "TRUCK" "TRUER" "TRULY" "TRUMP" "TRUNK" "TRUSS" "TRUST" "TRUTH" ...
    "TRYST" "TUBAL" "TUBER" "TULIP" "TULLE" "TUMOR" "TUNIC" "TURBO" ...
    "TUTOR" "TWANG" "TWEAK" "TWEED" "TWEET" "TWICE" "TWINE" "TWIRL" ...
    "TWIST" "TWIXT" "TYING" "UDDER" "ULCER" "ULTRA" "UMBRA" "UNCLE" ...
    "UNCUT" "UNDER" "UNDID" "UNDUE" "UNFED" "UNFIT" "UNIFY" "UNION" ...
    "UNITE" "UNITY" "UNLIT" "UNMET" "UNSET" "UNTIE" "UNTIL" "UNWED" ...
    "UNZIP" "UPPER" "UPSET" "URBAN" "URINE" "USAGE" "USHER" "USING" ...
    "USUAL" "USURP" "UTILE" "UTTER" "VAGUE" "VALET" "VALID" "VALOR" ...
    "VALUE" "VALVE" "VAPID" "VAPOR" "VAULT" "VAUNT" "VEGAN" "VENOM" ...
    "VENUE" "VERGE" "VERSE" "VERSO" "VERVE" "VICAR" "VIDEO" "VIGIL" ...
    "VIGOR" "VILLA" "VINYL" "VIOLA" "VIPER" "VIRAL" "VIRUS" "VISIT" ...
    "VISOR" "VISTA" "VITAL" "VIVID" "VIXEN" "VOCAL" "VODKA" "VOGUE" ...
    "VOICE" "VOILA" "VOMIT" "VOTER" "VOUCH" "VOWEL" "VYING" "WACKY" ...
    "WAFER" "WAGER" "WAGON" "WAIST" "WAIVE" "WALTZ" "WARTY" "WASTE" ...
    "WATCH" "WATER" "WAVER" "WAXEN" "WEARY" "WEAVE" "WEDGE" "WEEDY" ...
    "WEIGH" "WEIRD" "WELCH" "WELSH" "WENCH" "WHACK" "WHALE" "WHARF" ...
    "WHEAT" "WHEEL" "WHELP" "WHERE" "WHICH" "WHIFF" "WHILE" "WHINE" ...
    "WHINY" "WHIRL" "WHISK" "WHITE" "WHOLE" "WHOOP" "WHOSE" "WIDEN" ...
    "WIDER" "WIDOW" "WIDTH" "WIELD" "WIGHT" "WILLY" "WIMPY" "WINCE" ...
    "WINCH" "WINDY" "WISER" "WISPY" "WITCH" "WITTY" "WOKEN" "WOMAN" ...
    "WOMEN" "WOODY" "WOOER" "WOOLY" "WOOZY" "WORDY" "WORLD" "WORRY" ...
    "WORSE" "WORST" "WORTH" "WOULD" "WOUND" "WOVEN" "WRACK" "WRATH" ...
    "WREAK" "WRECK" "WREST" "WRING" "WRIST" "WRITE" "WRONG" "WROTE" ...
    "WRUNG" "WRYLY" "YACHT" "YEARN" "YEAST" "YIELD" "YOUNG" "YOUTH" ...
    "ZEBRA" "ZESTY" "ZONAL" ];
    end
end
%% lib\WordGifer.m
function WordGifer
    clf
    Wordie
    gif_frame('word_gif42.gif',inf)
    gif_frame

    Wordie sneak 00200
    gif_frame
    Wordie prevu 22222
    trim_word(4)
    gif_frame(8)
    close

    %{
    Mon Mar 27 647 GUANO
    Tue Mar 28 648 HURRY
    Wed Mar 29 649 SHADE
    Thu Mar 30 650
    Fri Mar 31 651
    %}

    Wordie
    xlabel('Wednesday, March 29','FontSize',18)
    gif_frame(2)
    Wordie ratio 01000
    gif_frame
    Wordie study 11000
    gif_frame
    Wordie these 10111
    gif_frame
    Wordie beset 22222
    gif_frame
    trim_word(2)
    gif_frame(8)
    Wordie
    xlabel(' ')
    gif_frame(2)
    gif_frame wrap
    close

    function trim_word(c)
        H = get(gcf,'userdata');
        delete(H(1:c,:))
    end
end
%% lib\Words00.m
function Words00(Gray,~,~,~,~)
    C = char('A'+(0:25));
    Ok = C;
    for g = Gray
        Ok(Ok == g) = [];   
    end
    list = vocabulary;
    W = '*****';
    cnt =  0;
        
    for q = 1:26
        if any(C(q) == Ok)
            fq = find(W=='*',1,'first');
            W(fq) = C(q);
 
            for p = 1:26
                if any(C(p) == Ok)
                    fp = find(W=='*',1,'first');
                    W(fp) = C(p);

                    for r = 1:26
                        if any(C(r) == Ok)
                            fr = find(W=='*',1,'first');
                            W(fr) = C(r);
        
                            for s = 1:26
                                if any(C(s) == Ok)
                                    fs = find(W=='*',1,'first');
                                    W(fs) = C(s);
        
                                    for t = 1:26
                                        if any(C(t) == Ok)
                                            ft = find(W=='*',1,'first');
                                            W(ft) = C(t);
        
                                            if any(W==list)
                                                disp(W)
                                                cnt = cnt+1;
                                            end
        
                                            W(ft) = '*';
                                        end
                                    end
        
                                    W(fs) = '*';
                                end
                            end

                            W(fr) = '*';
                        end
                    end

                    W(fp) = '*';
                end
            end

            W(fq) = '*';
        end
    
    end
    disp(['cnt = ' int2str(cnt)])
end
%% lib\Words01.m
function Words01(Gray,~,~,Gold,GoldLoc)
    C = char('A'+(0:25));
    Ok = C;
    for g = Gray
        Ok(Ok == g) = [];   
    end
    list = vocabulary;
    W = '*****';
    cnt =  0;
        
    for q = GoldLoc{1}
        if W(q) == '*'
            fq = q;
            W(fq) = Gold(1);
 
            for p = 1:26
                if any(C(p) == Ok)
                    fp = find(W=='*',1,'first');
                    W(fp) = C(p);

                    for r = 1:26
                        if any(C(r) == Ok)
                            fr = find(W=='*',1,'first');
                            W(fr) = C(r);
        
                            for s = 1:26
                                if any(C(s) == Ok)
                                    fs = find(W=='*',1,'first');
                                    W(fs) = C(s);
        
                                    for t = 1:26
                                        if any(C(t) == Ok)
                                            ft = find(W=='*',1,'first');
                                            W(ft) = C(t);
        
                                            if any(W==list)
                                                disp(W)
                                                cnt = cnt+1;
                                            end
        
                                            W(ft) = '*';
                                        end
                                    end
        
                                    W(fs) = '*';
                                end
                            end

                            W(fr) = '*';
                        end
                    end

                    W(fp) = '*';
                end
            end

            W(fq) = '*';
        end
    
    end
    disp(['cnt = ' int2str(cnt)])
end
%% lib\Words02.m
function Words02(Gray,~,~,Gold,GoldLoc)
    C = char('A'+(0:25));
    Ok = C;
    for g = Gray
        Ok(Ok == g) = [];   
    end
    list = vocabulary;
    W = '*****';
    cnt =  0;
        
    for q = GoldLoc{1}
        if W(q) == '*'
            fq = q;
            W(fq) = Gold(1);
 
            for p = GoldLoc{2}
                if W(p) == '*'
                    fp = p;
                    W(fp) = Gold(2);
 
                    for r = 1:26
                        if any(C(r) == Ok)
                            fr = find(W=='*',1,'first');
                            W(fr) = C(r);
        
                            for s = 1:26
                                if any(C(s) == Ok)
                                    fs = find(W=='*',1,'first');
                                    W(fs) = C(s);
        
                                    for t = 1:26
                                        if any(C(t) == Ok)
                                            ft = find(W=='*',1,'first');
                                            W(ft) = C(t);
        
                                            if any(W==list)
                                                disp(W)
                                                cnt = cnt+1;
                                            end
        
                                            W(ft) = '*';
                                        end
                                    end
        
                                    W(fs) = '*';
                                end
                            end

                            W(fr) = '*';
                        end
                    end

                    W(fp) = '*';
                end
            end

            W(fq) = '*';
        end
    
    end
    disp(['cnt = ' int2str(cnt)])
end
%% lib\Words03.m
function Words03(Gray,~,~,Gold,GoldLoc)
    C = char('A'+(0:25));
    Ok = C;
    for g = Gray
        Ok(Ok == g) = [];   
    end
    list = vocabulary;
    W = '*****';
    cnt =  0;
        
    for q = GoldLoc{1}
        if W(q) == '*'
            fq = q;
            W(fq) = Gold(1);
 
            for p = GoldLoc{2}
                if W(p) == '*'
                    fp = p;
                    W(fp) = Gold(2);
 
                    for r = GoldLoc{3}
                        if W(r) == '*'
                            fr = r;
                            W(fr) = Gold(3);
         
                            for s = 1:26
                                if any(C(s) == Ok)
                                    fs = find(W=='*',1,'first');
                                    W(fs) = C(s);
        
                                    for t = 1:26
                                        if any(C(t) == Ok)
                                            ft = find(W=='*',1,'first');
                                            W(ft) = C(t);
        
                                            if any(W==list)
                                                disp(W)
                                                cnt = cnt+1;
                                            end
        
                                            W(ft) = '*';
                                        end
                                    end
        
                                    W(fs) = '*';
                                end
                            end

                            W(fr) = '*';
                        end
                    end

                    W(fp) = '*';
                end
            end

            W(fq) = '*';
        end
    
    end
    disp(['cnt = ' int2str(cnt)])
end
%% lib\Words04.m
function Words04(Gray,~,~,Gold,GoldLoc)
    C = char('A'+(0:25));
    Ok = C;
    for g = Gray
        Ok(Ok == g) = [];   
    end
    list = vocabulary;
    W = '*****';
    cnt =  0;
        
    for q = GoldLoc{1}
        if W(q) == '*'
            fq = q;
            W(fq) = Gold(1);
 
            for p = GoldLoc{2}
                if W(p) == '*'
                    fp = p;
                    W(fp) = Gold(2);
 
                    for r = GoldLoc{3}
                        if W(r) == '*'
                            fr = r;
                            W(fr) = Gold(3);
         
                            for s = GoldLoc{4}
                                if W(s) == '*'
                                    fs = s;
                                    W(fs) = Gold(4);
                 
                                    for t = 1:26
                                        if any(C(t) == Ok)
                                            ft = find(W=='*',1,'first');
                                            W(ft) = C(t);
        
                                            if any(W==list)
                                                disp(W)
                                                cnt = cnt+1;
                                            end
        
                                            W(ft) = '*';
                                        end
                                    end
        
                                    W(fs) = '*';
                                end
                            end

                            W(fr) = '*';
                        end
                    end

                    W(fp) = '*';
                end
            end

            W(fq) = '*';
        end
    
    end
    disp(['cnt = ' int2str(cnt)])
end
%% lib\Words05.m
function Words05(Gray,~,~,Gold,GoldLoc)
    C = char('A'+(0:25));
    Ok = C;
    for g = Gray
        Ok(Ok == g) = [];   
    end
    list = vocabulary;
    W = '*****';
    cnt =  0;
        
    for q = GoldLoc{1}
        if W(q) == '*'
            fq = q;
            W(fq) = Gold(1);
 
            for p = GoldLoc{2}
                if W(p) == '*'
                    fp = p;
                    W(fp) = Gold(2);
 
                    for r = GoldLoc{3}
                        if W(r) == '*'
                            fr = r;
                            W(fr) = Gold(3);
         
                            for s = GoldLoc{4}
                                if W(s) == '*'
                                    fs = s;
                                    W(fs) = Gold(4);
                 
                                    for t = GoldLoc{5}
                                        if W(t) == '*'
                                            ft = t;
                                            W(ft) = Gold(5);
                         
                                            if any(W==list)
                                                disp(W)
                                                cnt = cnt+1;
                                            end
        
                                            W(ft) = '*';
                                        end
                                    end
        
                                    W(fs) = '*';
                                end
                            end

                            W(fr) = '*';
                        end
                    end

                    W(fp) = '*';
                end
            end

            W(fq) = '*';
        end
    
    end
    disp(['cnt = ' int2str(cnt)])
end
%% lib\Words10.m
function Words10(Gray,Green,GreenLoc,~,~)
    C = char('A'+(0:25));
    Ok = C;
    for g = Gray
        Ok(Ok == g) = [];   
    end
    list = vocabulary;
    W = '*****';
    cnt =  0;
        
    for q = GreenLoc{1}
        if true
            fq = q;
            W(fq) = Green(1);
 
            for p = 1:26
                if any(C(p) == Ok)
                    fp = find(W=='*',1,'first');
                    W(fp) = C(p);

                    for r = 1:26
                        if any(C(r) == Ok)
                            fr = find(W=='*',1,'first');
                            W(fr) = C(r);
        
                            for s = 1:26
                                if any(C(s) == Ok)
                                    fs = find(W=='*',1,'first');
                                    W(fs) = C(s);
        
                                    for t = 1:26
                                        if any(C(t) == Ok)
                                            ft = find(W=='*',1,'first');
                                            W(ft) = C(t);
        
                                            if any(W==list)
                                                disp(W)
                                                cnt = cnt+1;
                                            end
        
                                            W(ft) = '*';
                                        end
                                    end
        
                                    W(fs) = '*';
                                end
                            end

                            W(fr) = '*';
                        end
                    end

                    W(fp) = '*';
                end
            end

            W(fq) = '*';
        end
    
    end
    disp(['cnt = ' int2str(cnt)])
end
%% lib\Words11.m
function Words11(Gray,Green,GreenLoc,Gold,GoldLoc)
    C = char('A'+(0:25));
    Ok = C;
    for g = Gray
        Ok(Ok == g) = [];   
    end
    list = vocabulary;
    W = '*****';
    cnt =  0;
        
    for q = GreenLoc{1}
        if true
            fq = q;
            W(fq) = Green(1);
 
            for p = GoldLoc{1}
                if W(p) == '*'
                    fp = p;
                    W(fp) = Gold(1);
 
                    for r = 1:26
                        if any(C(r) == Ok)
                            fr = find(W=='*',1,'first');
                            W(fr) = C(r);
        
                            for s = 1:26
                                if any(C(s) == Ok)
                                    fs = find(W=='*',1,'first');
                                    W(fs) = C(s);
        
                                    for t = 1:26
                                        if any(C(t) == Ok)
                                            ft = find(W=='*',1,'first');
                                            W(ft) = C(t);
        
                                            if any(W==list)
                                                disp(W)
                                                cnt = cnt+1;
                                            end
        
                                            W(ft) = '*';
                                        end
                                    end
        
                                    W(fs) = '*';
                                end
                            end

                            W(fr) = '*';
                        end
                    end

                    W(fp) = '*';
                end
            end

            W(fq) = '*';
        end
    
    end
    disp(['cnt = ' int2str(cnt)])
end
%% lib\Words12.m
function Words12(Gray,Green,GreenLoc,Gold,GoldLoc)
    C = char('A'+(0:25));
    Ok = C;
    for g = Gray
        Ok(Ok == g) = [];   
    end
    list = vocabulary;
    W = '*****';
    cnt =  0;
        
    for q = GreenLoc{1}
        if true
            fq = q;
            W(fq) = Green(1);
 
            for p = GoldLoc{1}
                if W(p) == '*'
                    fp = p;
                    W(fp) = Gold(1);
         
                    for r = GoldLoc{2}
                        if W(r) == '*'
                            fr = r;
                            W(fr) = Gold(2);
         
                            for s = 1:26
                                if any(C(s) == Ok)
                                    fs = find(W=='*',1,'first');
                                    W(fs) = C(s);
        
                                    for t = 1:26
                                        if any(C(t) == Ok)
                                            ft = find(W=='*',1,'first');
                                            W(ft) = C(t);
        
                                            if any(W==list)
                                                disp(W)
                                                cnt = cnt+1;
                                            end
        
                                            W(ft) = '*';
                                        end
                                    end
        
                                    W(fs) = '*';
                                end
                            end

                            W(fr) = '*';
                        end
                    end

                    W(fp) = '*';
                end
            end

            W(fq) = '*';
        end
    
    end
    disp(['cnt = ' int2str(cnt)])
end
%% lib\Words13.m
function Words13(Gray,Green,GreenLoc,Gold,GoldLoc)
    C = char('A'+(0:25));
    Ok = C;
    for g = Gray
        Ok(Ok == g) = [];   
    end
    list = vocabulary;
    W = '*****';
    cnt =  0;
        
    for q = GreenLoc{1}
        if true
            fq = q;
            W(fq) = Green(1);
 
            for p = GoldLoc{1}
                if W(p) == '*'
                    fp = p;
                    W(fp) = Gold(1);
         
                    for r = GoldLoc{2}
                        if W(r) == '*'
                            fr = r;
                            W(fr) = Gold(2);
         
                            for s = GoldLoc{3}
                                if W(s) == '*'
                                    fs = s;
                                    W(fs) = Gold(3);
                 
                                    for t = 1:26
                                        if any(C(t) == Ok)
                                            ft = find(W=='*',1,'first');
                                            W(ft) = C(t);
        
                                            if any(W==list)
                                                disp(W)
                                                cnt = cnt+1;
                                            end
        
                                            W(ft) = '*';
                                        end
                                    end
        
                                    W(fs) = '*';
                                end
                            end

                            W(fr) = '*';
                        end
                    end

                    W(fp) = '*';
                end
            end

            W(fq) = '*';
        end
    
    end
    disp(['cnt = ' int2str(cnt)])
end
%% lib\Words20.m
function Words20(Gray,Green,GreenLoc,~,~)
    C = char('A'+(0:25));
    Ok = C;
    for g = Gray
        Ok(Ok == g) = [];   
    end
    list = vocabulary;
    W = '*****';
    cnt =  0;
        
    for q = GreenLoc{1}
        if true
            fq = q;
            W(fq) = Green(1);
 
            for p = GreenLoc{2}
                if true
                    fp = p;
                    W(fp) = Green(2);
     
                    for r = 1:26
                        if any(C(r) == Ok)
                            fr = find(W=='*',1,'first');
                            W(fr) = C(r);
        
                            for s = 1:26
                                if any(C(s) == Ok)
                                    fs = find(W=='*',1,'first');
                                    W(fs) = C(s);
        
                                    for t = 1:26
                                        if any(C(t) == Ok)
                                            ft = find(W=='*',1,'first');
                                            W(ft) = C(t);
        
                                            if any(W==list)
                                                disp(W)
                                                cnt = cnt+1;
                                            end
        
                                            W(ft) = '*';
                                        end
                                    end
        
                                    W(fs) = '*';
                                end
                            end

                            W(fr) = '*';
                        end
                    end

                    W(fp) = '*';
                end
            end

            W(fq) = '*';
        end
    
    end
    disp(['cnt = ' int2str(cnt)])
end
%% lib\Words21.m
function Words21(Gray,Green,GreenLoc,Gold,GoldLoc)
    C = char('A'+(0:25));
    Ok = C;
    for g = Gray
        Ok(Ok == g) = [];   
    end
    list = vocabulary;
    W = '*****';
    cnt =  0;
        
    for q = GreenLoc{1}
        if true
            fq = q;
            W(fq) = Green(1);
 
            for p = GreenLoc{2}
                if true
                    fp = p;
                    W(fp) = Green(2);
         
                    for r = GoldLoc{1}
                        if W(r) == '*'
                            fr = r;
                            W(fr) = Gold(1);
         
                            for s = 1:26
                                if any(C(s) == Ok)
                                    fs = find(W=='*',1,'first');
                                    W(fs) = C(s);
        
                                    for t = 1:26
                                        if any(C(t) == Ok)
                                            ft = find(W=='*',1,'first');
                                            W(ft) = C(t);
        
                                            if any(W==list)
                                                disp(W)
                                                cnt = cnt+1;
                                            end
        
                                            W(ft) = '*';
                                        end
                                    end
        
                                    W(fs) = '*';
                                end
                            end

                            W(fr) = '*';
                            W(fr) = '*';
                        end
                    end

                    W(fp) = '*';
                end
            end

            W(fq) = '*';
        end
    
    end
    disp(['cnt = ' int2str(cnt)])
end
%% lib\Words22.m
function Words22(Gray,Green,GreenLoc,Gold,GoldLoc)
    C = char('A'+(0:25));
    Ok = C;
    for g = Gray
        Ok(Ok == g) = [];   
    end
    list = vocabulary;
    W = '*****';
    cnt =  0;
        
    for q = GreenLoc{1}
        if true
            fq = q;
            W(fq) = Green(1);
 
            for p = GreenLoc{2}
                if true
                    fp = p;
                    W(fp) = Green(2);
         
                    for r = GoldLoc{1}
                        if W(r) == '*'
                            fr = r;
                            W(fr) = Gold(1);
         
                            for s = GoldLoc{2}
                                if W(s) == '*'
                                    fs = s;
                                    W(fs) = Gold(2);
                 
                                    for t = 1:26
                                        if any(C(t) == Ok)
                                            ft = find(W=='*',1,'first');
                                            W(ft) = C(t);
        
                                            if any(W==list)
                                                disp(W)
                                                cnt = cnt+1;
                                            end
        
                                            W(ft) = '*';
                                        end
                                    end
        
                                    W(fs) = '*';
                                end
                            end

                            W(fr) = '*';
                        end
                    end

                    W(fp) = '*';
                end
            end

            W(fq) = '*';
        end
    
    end
    disp(['cnt = ' int2str(cnt)])
end
%% lib\Words30.m
function Words30(Gray,Green,GreenLoc,~,~)
    C = char('A'+(0:25));
    Ok = C;
    for g = Gray
        Ok(Ok == g) = [];   
    end
    list = vocabulary;
    W = '*****';
    cnt =  0;
        
    for q = GreenLoc{1}
        if true
            fq = q;
            W(fq) = Green(1);
 
            for p = GreenLoc{2}
                if true
                    fp = p;
                    W(fp) = Green(2);
         
                    for r = GreenLoc{3}
                        if true
                            fr = r;
                            W(fr) = Green(3);
                 
                            for s = 1:26
                                if any(C(s) == Ok)
                                    fs = find(W=='*',1,'first');
                                    W(fs) = C(s);
        
                                    for t = 1:26
                                        if any(C(t) == Ok)
                                            ft = find(W=='*',1,'first');
                                            W(ft) = C(t);
        
                                            if any(W==list)
                                                disp(W)
                                                cnt = cnt+1;
                                            end
        
                                            W(ft) = '*';
                                        end
                                    end
        
                                    W(fs) = '*';
                                end
                            end

                            W(fr) = '*';
                        end
                    end

                    W(fp) = '*';
                end
            end

            W(fq) = '*';
        end
    
    end
    disp(['cnt = ' int2str(cnt)])
end
%% lib\Words31.m
function Words31(Gray,Green,GreenLoc,Gold,GoldLoc)
    C = char('A'+(0:25));
    Ok = C;
    for g = Gray
        Ok(Ok == g) = [];   
    end
    list = vocabulary;
    W = '*****';
    cnt =  0;
        
    for q = GreenLoc{1}
        if true
            fq = q;
            W(fq) = Green(1);
 
            for p = GreenLoc{2}
                if true
                    fp = p;
                    W(fp) = Green(2);
         
                    for r = GreenLoc{3}
                        if true
                            fr = r;
                            W(fr) = Green(3);
         
                            for s = GoldLoc{1}
                                if W(s) == '*'
                                    fs = s;
                                    W(fs) = Gold(1);
                 
                                    for t = 1:26
                                        if any(C(t) == Ok)
                                            ft = find(W=='*',1,'first');
                                            W(ft) = C(t);
        
                                            if any(W==list)
                                                disp(W)
                                                cnt = cnt+1;
                                            end
        
                                            W(ft) = '*';
                                        end
                                    end
        
                                    W(fs) = '*';
                                end
                            end

                            W(fr) = '*';
                        end
                    end

                    W(fp) = '*';
                end
            end

            W(fq) = '*';
        end
    
    end
    disp(['cnt = ' int2str(cnt)])
end
%% lib\Words32.m
function Words32(Gray,Green,GreenLoc,Gold,GoldLoc)
    C = char('A'+(0:25));
    Ok = C;
    for g = Gray
        Ok(Ok == g) = [];   
    end
    list = vocabulary;
    W = '*****';
    cnt =  0;
        
    for q = GreenLoc{1}
        if true
            fq = q;
            W(fq) = Green(1);
 
            for p = GreenLoc{2}
                if true
                    fp = p;
                    W(fp) = Green(2);
         
                    for r = GreenLoc{3}
                        if true
                            fr = r;
                            W(fr) = Green(3);
                  
                            for s = GoldLoc{1}
                                if W(s) == '*'
                                    fs = s;
                                    W(fs) = Gold(1);
                 
                                    for t = GoldLoc{2}
                                        if W(t) == '*'
                                            ft = t;
                                            W(ft) = Gold(2);
                         
                                            if any(W==list)
                                                disp(W)
                                                cnt = cnt+1;
                                            end
        
                                            W(ft) = '*';
                                        end
                                    end
        
                                    W(fs) = '*';
                                end
                            end

                            W(fr) = '*';
                        end
                    end

                    W(fp) = '*';
                end
            end

            W(fq) = '*';
        end
    
    end
    disp(['cnt = ' int2str(cnt)])
end
%% lib\Words40.m
function Words40(Gray,Green,GreenLoc,~,~)
    C = char('A'+(0:25));
    Ok = C;
    for g = Gray
        Ok(Ok == g) = [];   
    end
    list = vocabulary;
    W = '*****';
    cnt =  0;
        
    for q = GreenLoc{1}
        if true
            fq = q;
            W(fq) = Green(1);
 
            for p = GreenLoc{2}
                if true
                    fp = p;
                    W(fp) = Green(2);
     
                    for r = GreenLoc{3}
                        if true
                            fr = r;
                            W(fr) = Green(3);
                 
                            for s = GreenLoc{4}
                                if true
                                    fs = s;
                                    W(fs) = Green(4);
        
                                    for t = 1:26
                                        if any(C(t) == Ok)
                                            ft = find(W=='*',1,'first');
                                            W(ft) = C(t);
        
                                            if any(W==list)
                                                disp(W)
                                                cnt = cnt+1;
                                            end
        
                                            W(ft) = '*';
                                        end
                                    end
        
                                    W(fs) = '*';
                                end
                            end

                            W(fr) = '*';
                        end
                    end

                    W(fp) = '*';
                end
            end

            W(fq) = '*';
        end
    
    end
    disp(['cnt = ' int2str(cnt)])
end
%% lib\Words41.m
function Words41(Gray,Green,GreenLoc,Gold,GoldLoc)
    C = char('A'+(0:25));
    Ok = C;
    for g = Gray
        Ok(Ok == g) = [];   
    end
    list = vocabulary;
    W = '*****';
    cnt =  0;
        
    for q = GreenLoc{1}
        if true
            fq = q;
            W(fq) = Green(1);
 
            for p = GreenLoc{2}
                if true
                    fp = p;
                    W(fp) = Green(2);
         
                    for r = GreenLoc{3}
                        if true
                            fr = r;
                            W(fr) = Green(3);
         
                            for s = GreenLoc{4}
                                if true
                                    fs = s;
                                    W(fs) = Green(4);
         
                                    for t = GoldLoc{1}
                                        if W(t) == '*'
                                            ft = t;
                                            W(ft) = Gold(1);
                         
                                            if any(W==list)
                                                disp(W)
                                                cnt = cnt+1;
                                            end
        
                                            W(ft) = '*';
                                        end
                                    end
        
                                    W(fs) = '*';
                                end
                            end

                            W(fr) = '*';
                        end
                    end

                    W(fp) = '*';
                end
            end

            W(fq) = '*';
        end
    
    end
    disp(['cnt = ' int2str(cnt)])
end
%% lib\Words50.m
function Words50(~,~,~,~,~)
    disp('I have no more suggestions.')
    disp(['cnt = ' int2str(0)])
end
%% lib\make_vocabulary.m
function make_vocabulary
    fid = fopen('vocabulary.txt','w');
    
    url = ['https://gist.githubusercontent.com/wchargin/8927565/raw/' ...
           'd9783627c731268fb2935a731a618aa8e95cf465/words'];
    rs = readlines(url);
    % keep only the entries that start with a lower case letter
    rs = rs(startsWith(rs,characterListPattern("a","z")));
    % get rid of entries with apostrophes, like contractions
    rs = rs(~contains(rs,"'"));
    % Wordle uses all upper case letters
    rs = upper(rs);
    % get the list of unique five letter words
    word5 = unique(rs(strlength(rs)==5));
    fmt = '"%5s" "%5s" "%5s" "%5s" "%5s" "%5s" "%5s" "%5s" ...\n';
    fprintf(fid,fmt,word5);
    fprintf(fid,'\n');
    fprintf(fid,'\n');
    fprintf(fid,'\n');
    
    % taken from the sheet's URL linked above
    mystery_id = "1-M0RIVVZqbeh0mZacdAsJyBrLuEmhKUhNaVAI-7pr2Y";
    mystery_url = sprintf("https://docs.google.com/spreadsheets/d/%s/gviz/tq?tqx=out:csv",mystery_id);
    mystery_words = readlines(mystery_url);
    % there's an extra set of double quotes included, so let's strip them out
    mystery_words = erase(mystery_words,"""");
    % also we're using upper case
    mystery_words = upper(mystery_words);
    fprintf(fid,fmt,mystery_words);
    fprintf(fid,'\n');
    
    fclose all;
end

%% lib\wgold.m
function g = wgold
    g = [212 175 55]/256;
end
%% lib\wgray.m
function g = wgray
    g = [.62 .62 .62];
end
%% lib\wgreen.m
function g = wgreen
    g = [0 .75 0];
end
%% lib\winit.m
    function K = winit
        figure(1)
        pos = get(0,'defaultfigureposition');
        set(gcf,'position',[pos(1)-pos(3)/2-5 pos(2:4)])
        rng shuffle
        shg
        clf
        axis square
        box on
        set(gca,'xtick',[],'ytick',[])
        set(gca,'color','k')
        K = get(gcf,'userdata');
        if ~isempty(K)
            delete(K)
        end
        u = 10;
        y = 1.7;
        x = 1.3; 
        s = .9;        
        K = repmat(uicontrol('vis','off'),6,5);
        for i = 1:6
            for j = 1:5
                K(i,j) = uicontrol( ...
                    'style','text', ...
                    'BackgroundColor','w', ...
                    'units','normal', ...
                    'position',[j+y i+x s s]/u); 
            end
        end        
        set(gcf,'userdata',K)
        %
        fs = 14;
        uicontrol( ...
            'String','Words', ...
            'Style','pushbutton', ...
            'Units','normalized', ...
            'Position',[.85 .60 .12 .07], ...
            'FontSize',fs, ...
            'FontWeight','bold', ...
            'BackgroundColor','w', ...
            'Callback',@Words)

        uicontrol( ...
            'String','Again', ...
            'Style','pushbutton', ...
            'Units','normalized', ...
            'Position',[.85 .50 .12 .07], ...
            'FontSize',fs, ...
            'FontWeight','bold', ...
            'BackgroundColor','w', ...
            'Callback',@Wordler)
        %
    end
%% EOF