diff --git a/local_data/test_words.txt b/local_data/test_words.txt index 32dd3b1b..2f45af85 100644 --- a/local_data/test_words.txt +++ b/local_data/test_words.txt @@ -4,4 +4,8282 @@ chat alo hey yeah -yes \ No newline at end of file +yes +abacus +abased +abases +abated +abates +abbess +abbeys +abbots +abbrev +abduct +abhors +abides +abject +abjure +ablate +ablaze +ablest +abloom +aboard +abodes +aborts +abound +abrade +abroad +abrupt +abseil +absent +absorb +absurd +abused +abuser +abuses +acacia +accede +accent +accept +access +accord +accost +accrue +accuse +acetic +acetyl +achene +achier +aching +acidic +acidly +acorns +acquit +across +acting +action +active +actors +actual +acuity +acumen +acuter +acutes +adages +adagio +adapts +addend +adders +addict +adding +addled +addles +adduce +adepts +adhere +adieus +adjoin +adjure +adjust +admins +admire +admits +adobes +adopts +adored +adorer +adores +adorns +adrift +adroit +adsorb +adults +advent +adverb +advert +advice +advise +adware +aerate +aerial +aeries +affair +affect +affirm +afford +affray +afghan +afield +aflame +afloat +afraid +afresh +afters +agates +ageing +ageism +ageist +agency +agenda +agents +aghast +agleam +agreed +agrees +ahchoo +aiding +ailing +aiming +airbag +airbed +airbus +airier +airily +airing +airman +airmen +airway +aisles +akimbo +alarms +albeit +albino +albums +alcove +alders +alerts +alibis +aliens +alight +aligns +aliyah +alkali +alkyds +allays +allege +allele +alleys +allied +allies +allots +allows +alloys +allude +allure +almond +almost +alohas +alpaca +alphas +alpine +altars +alters +alumna +alumni +always +amazed +amazes +amazon +ambled +ambler +ambles +ambush +amends +amerce +amides +amidst +amigos +amines +amnion +amoeba +amoral +amount +amours +ampere +ampler +ampule +amulet +amused +amuses +anally +anchor +angels +angers +angina +angled +angler +angles +angora +animal +animus +anions +ankles +anklet +annals +anneal +annoys +annual +annuls +anodes +anoint +anorak +answer +anthem +anther +antics +antler +antrum +anuses +anvils +anyhow +anyone +anyway +aortas +aortic +apathy +apexes +aphids +apiary +apical +apiece +aplomb +apogee +appals +appeal +appear +append +apples +applet +appose +approx +aprons +aptest +arable +arbour +arcade +arcane +arched +archer +arches +archly +arcing +arctic +ardent +ardour +arenas +argent +argosy +argots +argued +arguer +argues +argyle +aridly +aright +arisen +arises +armada +armful +armies +arming +armlet +armour +armpit +aromas +around +arouse +arrant +arrays +arrest +arrive +arrows +arroyo +arsing +artery +artful +artier +artist +ascend +ascent +ascots +ashcan +ashier +ashing +ashlar +ashore +ashram +asides +asking +aslant +asleep +aspect +aspens +aspics +aspire +assail +assays +assent +assert +assess +assets +assign +assist +assize +assort +assume +assure +astern +asters +asthma +astral +astray +astute +asylum +ataxia +ataxic +atolls +atomic +atonal +atoned +atones +atrial +atrium +attach +attack +attain +attend +attest +attics +attire +attune +auburn +audios +audits +augers +aughts +augurs +augury +august +auntie +aureus +aurora +author +autism +autumn +avails +avatar +avaunt +avenge +avenue +averse +averts +aviary +avidly +avoids +avouch +avowal +avowed +awaits +awaken +awakes +awards +aweigh +awhile +awning +awoken +axioms +azalea +azures +baaing +babble +babels +babied +babier +babies +baboon +backed +backer +backup +badder +baddie +badger +badges +badman +badmen +baffle +bagels +bagful +bagged +baggie +bailed +bailey +bairns +baited +bakers +bakery +baking +balboa +balded +balder +baldly +baleen +balers +baling +ballad +balled +ballet +ballot +ballsy +balsam +balsas +bamboo +banana +banded +bandit +banged +banger +bangle +banish +banjos +banked +banker +banned +banner +bantam +banter +banyan +banzai +baobab +barbed +barbel +barber +barbie +bardic +barely +barest +barfed +barfly +barged +barges +barhop +baring +barium +barked +barker +barley +barman +barmen +barney +barons +barony +barque +barred +barrel +barren +barres +barrio +barrow +barter +baryon +basalt +basely +basest +bashed +bashes +basics +basing +basins +basked +basket +basque +basses +basset +bassos +basted +baster +bastes +bathed +bather +bathes +bathos +batiks +bating +batman +batmen +batons +batted +batten +batter +battle +bauble +baulks +bawled +baying +bayous +bazaar +beacon +beaded +beadle +beagle +beaked +beaker +beamed +beaned +beanie +beards +bearer +beasts +beaten +beater +beauts +beauty +beaver +bebops +becalm +became +beckon +become +bedaub +bedbug +bedded +bedder +bedeck +bedims +bedlam +bedpan +bedsit +beefed +beeped +beeper +beetle +beeves +befall +befell +befits +befogs +before +befoul +begets +beggar +begged +begins +begone +begums +behalf +behave +behead +beheld +behest +behind +behold +behove +beings +belays +belfry +belied +belief +belies +belled +belles +bellow +belong +belted +beluga +bemire +bemoan +bemuse +bender +benign +benumb +benzyl +berate +bereft +berets +berths +beryls +beseem +besets +beside +besoms +besots +bested +bestir +bestow +betake +betcha +betide +betook +betray +better +bettor +bevels +bevies +bewail +beware +beyond +bezels +biased +biases +bibles +bicarb +biceps +bicker +bidden +bidder +bidets +biding +biffed +bigamy +bigger +biggie +bights +bigots +bigwig +bijoux +bikers +biking +bikini +bilges +bilked +bilker +billed +billet +billow +bimbos +binary +binder +binged +binges +binman +binmen +binned +bionic +biopic +biopsy +biotin +bipeds +birded +birder +birdie +births +bisect +bishop +bisque +bistro +bitchy +biters +biting +bitmap +bitten +bitter +blacks +bladed +blades +blamed +blamer +blames +blammo +blanch +blanks +blared +blares +blasts +blazed +blazer +blazes +blazon +bleach +bleary +bleats +bleeds +bleeps +blench +blends +bletch +blight +blimey +blimps +blinds +blinis +blinks +blintz +blithe +blivet +bloats +blocks +blokes +blonde +blonds +bloods +bloody +blooms +bloops +blotch +blotto +blouse +blower +blowsy +blowup +bluest +bluesy +bluets +bluffs +bluing +bluish +blunts +blurbs +blurry +blurts +boards +boasts +boated +boater +bobbed +bobbin +bobble +bobcat +boccie +bodega +bodged +bodges +bodice +bodied +bodies +bodily +boding +bodkin +boffin +bogeys +bogged +boggle +bogies +boiled +boiler +boinks +bolder +boldly +bolero +bollix +bolted +bombed +bomber +bonbon +bonces +bonded +boners +bonged +bongos +bonier +boning +bonito +bonked +bonnet +bonobo +bonsai +boobed +boodle +booger +boogie +boohoo +booing +booked +bookie +boomed +boomer +boosts +booted +bootee +booths +boozed +boozer +boozes +bopped +border +borers +boring +borrow +borzoi +bosoms +bosomy +bossed +bosses +botany +bother +botnet +bottle +bottom +boughs +bought +boules +bounce +bouncy +bounds +bounty +bovine +bovver +bowels +bowers +bowing +bowled +bowleg +bowler +bowman +bowmen +bowwow +boxcar +boxers +boxier +boxing +boyish +braced +bracer +braces +bracts +braids +brains +brainy +braise +braked +brakes +branch +brands +brandy +brassy +bratty +braved +braver +braves +bravos +brawls +brawny +brayed +brazed +brazen +brazer +brazes +breach +breads +breaks +breams +breast +breath +breech +breeds +breeze +breezy +breves +brevet +brewed +brewer +briars +bribed +briber +bribes +bricks +bridal +brides +bridge +bridle +briefs +bright +brings +brinks +brisks +broach +broads +brogan +brogue +broils +broken +broker +brolly +bronco +broncs +bronze +brooch +broods +broody +brooks +brooms +broths +browns +browse +bruins +bruise +bruits +brunch +brunet +brutal +brutes +bubble +bubbly +buboes +bucked +bucket +buckle +budded +budged +budges +budget +budgie +buffed +buffer +buffet +bugged +bugger +bugled +bugler +bugles +builds +bulged +bulges +bulked +bulled +bullet +bumbag +bumble +bummed +bummer +bumped +bumper +bunchy +buncos +bundle +bunged +bungee +bungle +bunion +bunked +bunker +bunkum +bunted +buoyed +burble +burden +bureau +burger +burghs +burgle +burial +buried +buries +burkas +burlap +burled +burned +burner +burped +burqas +burred +burros +burrow +bursae +bursar +bursts +busboy +bushed +bushel +bushes +busied +busier +busies +busily +busked +busker +buskin +bussed +busses +busted +buster +bustle +butane +butler +butted +butter +buttes +button +buyers +buying +buyout +buzzed +buzzer +buzzes +bygone +bylaws +byline +bypass +bypath +byplay +byroad +byways +byword +cabals +cabana +cabbed +cabers +cabins +cabled +cables +cacaos +cached +caches +cachet +cackle +cactus +caddie +cadets +cadged +cadger +cadges +cadres +cagier +cagily +caging +cahoot +caiman +cairns +cajole +caking +calico +caliph +callas +called +caller +callow +callus +calmed +calmer +calmly +calved +calves +camber +camels +cameos +camera +camped +camper +campus +canals +canape +canard +canary +cancan +cancel +cancer +candid +candle +caners +canine +caning +canker +canned +cannon +cannot +canoed +canoes +canola +canons +canopy +canted +canter +canton +cantor +cantos +canvas +canyon +capers +caplet +capons +capped +captor +carafe +carats +carbon +carboy +carded +carder +cardio +careen +career +carers +caress +carets +carhop +caries +caring +carnal +carobs +carols +caroms +carpal +carped +carpel +carper +carpet +carpus +carrel +carrot +carted +cartel +carter +carton +carved +carver +carves +casaba +casein +cashed +cashes +cashew +casing +casino +casket +cassia +caster +castes +castle +castor +casual +catchy +caters +catgut +cation +catkin +catnap +catnip +catted +cattle +caucus +caudal +caught +caulks +causal +caused +causer +causes +caveat +cavern +cavers +caviar +cavils +caving +cavity +cavort +cawing +cayuse +ceased +ceases +cedars +ceders +ceding +celebs +celery +cellar +celled +cellos +cement +censer +censor +census +centre +cereal +cerise +cerium +cermet +cervix +chafed +chafes +chaffs +chains +chairs +chaise +chalet +chalks +chalky +champs +chance +chancy +change +chants +chapel +chappy +charge +charms +charts +chased +chaser +chases +chasms +chaste +chatty +cheapo +cheats +checks +cheeks +cheeky +cheeps +cheers +cheery +cheese +cheesy +cheque +cherry +cherub +chests +chesty +chewed +chewer +chicer +chichi +chicks +chicle +chided +chides +chiefs +chilli +chills +chilly +chimed +chimer +chimes +chimps +chines +chinks +chinos +chintz +chippy +chirps +chirpy +chisel +chitin +chives +chocks +choice +choirs +choked +choker +chokes +choler +chomps +choose +choosy +choppy +choral +chords +chorea +chores +chorus +chosen +chowed +chrism +chrome +chubby +chucks +chukka +chummy +chumps +chunks +chunky +church +churls +churns +chutes +cicada +ciders +cigars +cilium +cinder +cinema +cipher +circle +circus +cirque +cirrus +cities +citing +citric +citron +citrus +civets +civics +clacks +claims +clammy +clamps +clangs +clanks +claque +claret +clasps +classy +clause +clawed +clayey +cleans +clears +cleats +cleave +clefts +clench +clergy +cleric +clerks +clever +clevis +clewed +cliche +clicks +client +cliffs +climax +climbs +climes +clinch +clings +clingy +clinic +clinks +clique +cloaca +cloaks +cloche +clocks +clomps +clonal +cloned +clones +clonks +closed +closer +closes +closet +clothe +cloths +clouds +cloudy +clouts +cloven +clover +cloves +clowns +cloyed +clucks +cluing +clumps +clumpy +clumsy +clunks +clunky +clutch +clxvii +coaled +coarse +coasts +coated +coaxed +coaxer +coaxes +cobalt +cobber +cobble +cobnut +cobras +cobweb +coccis +coccus +coccyx +cocked +cockle +cocoas +cocoon +codded +coddle +coders +codger +codify +coding +codons +coerce +coeval +coffee +coffer +coffin +cogent +cognac +coheir +cohere +cohort +coiled +coined +coiner +coital +coitus +coking +colder +coldly +coleus +coleys +collar +collie +colloq +colons +colony +colour +column +combat +combed +comber +combos +comedy +comely +comers +comets +comfit +comics +coming +comity +commas +commie +commit +common +comped +compel +comply +compos +conchs +concur +condom +condor +condos +coneys +confab +confer +congas +conger +conics +coning +conked +conker +conman +conned +consed +conses +consul +contra +convex +convey +convoy +cooing +cooked +cooker +cookie +cooled +cooler +coolie +coolly +cooped +cooper +cootie +copied +copier +copies +coping +copped +copper +copses +copter +copula +corals +corbel +corded +cordon +corers +corgis +coring +corked +corker +cornea +corned +corner +cornet +corona +corpse +corpus +corral +corrie +corset +cortex +coshed +coshes +cosier +cosies +cosign +cosily +cosine +cosmic +cosmos +cosset +costar +costed +costly +cottar +cotter +cotton +cougar +coughs +coulee +coulis +counts +county +coupes +couple +coupon +course +courts +cousin +covens +covers +covert +covets +coveys +coward +cowboy +cowers +cowing +cowman +cowmen +cowpat +cowpox +cowrie +coxing +coyest +coyote +coypus +cozens +crabby +cracks +cradle +crafts +crafty +craggy +cramps +craned +cranes +cranks +cranky +cranny +crapes +crappy +crated +crater +crates +cravat +craved +craven +craves +crawls +crawly +crayon +crazed +crazes +creaks +creaky +creams +creamy +crease +create +creche +credit +credos +creeds +creeks +creels +creeps +creepy +cremes +creole +crepes +crests +cretin +crewed +crewel +cricks +criers +crikey +crimes +crimps +cringe +cripes +crises +crisis +crisps +crispy +critic +croaks +croaky +crocks +crocus +crofts +crones +crooks +croons +crotch +crouch +croupy +crowds +crowed +crowns +cruddy +cruder +cruets +crufts +crufty +cruise +crumbs +crumby +crummy +crunch +cruses +crusts +crusty +crutch +cruxes +crying +crypts +cubers +cubing +cubism +cubist +cubits +cuboid +cuckoo +cuddle +cuddly +cudgel +cuffed +culled +cumber +cumuli +cupful +cupids +cupola +cuppas +cupped +cupric +curacy +curare +curate +curbed +curdle +curers +curfew +curiae +curies +curing +curios +curium +curled +curler +curlew +cursed +curses +cursor +curter +curtly +curtsy +curved +curves +cuspid +cussed +cusses +custom +cutely +cutest +cutesy +cuteys +cuties +cutler +cutlet +cutoff +cutout +cutter +cutups +cyborg +cycled +cycles +cyclic +cygnet +cymbal +cynics +cystic +dabbed +dabber +dabble +dachas +dactyl +dadoes +daemon +dafter +daftly +dagger +dagoes +dahlia +dainty +daises +damage +damask +dammed +dammit +damned +damped +dampen +damper +damply +damsel +damson +danced +dancer +dances +dander +dandle +danged +danger +dangle +danish +danker +dankly +dapper +dapple +darers +daring +darken +darker +darkie +darkly +darned +darner +darted +darter +dashed +dasher +dashes +daters +dating +dative +daubed +dauber +daunts +davits +dawdle +dawned +daybed +dazing +dazzle +deacon +deaden +deader +deadly +deafen +deafer +dealer +dearer +dearly +dearth +deaths +deaves +debark +debars +debase +debate +debits +debris +debtor +debugs +debunk +debuts +decade +decaff +decafs +decals +decamp +decant +decays +deceit +decent +decide +decked +deckle +declaw +decode +decors +decoys +decree +deduce +deduct +deeded +deejay +deemed +deepen +deeper +deeply +deface +defame +defeat +defect +defend +defers +deffer +defied +defies +defile +define +defogs +deform +defray +defter +deftly +defuse +degree +deiced +deicer +deices +deigns +deists +deject +delays +delete +delint +deltas +delude +deluge +deluxe +delved +delver +delves +demand +demean +demise +demist +demobs +demode +demoed +demons +demote +demure +demurs +dengue +denial +denied +denier +denies +denims +denote +denser +dental +dented +denude +depart +depend +depict +deploy +deport +depose +depots +depths +depute +deputy +derail +deride +derive +dermal +dermis +desalt +descry +desert +design +desire +desist +despot +detach +detail +detain +detect +deters +detest +detour +deuces +device +devils +devise +devoid +devote +devour +devout +dewier +dewlap +dharma +dhotis +diadem +dialog +diaper +diatom +dibble +dicier +dicing +dicker +dickey +dictum +diddle +diddly +didoes +diesel +dieted +dieter +diffed +differ +digest +digger +digits +diking +diktat +dilate +dildos +dilute +dimity +dimmed +dimmer +dimple +dimply +dimwit +dinars +diners +dinged +dinghy +dingle +dingus +dining +dinker +dinned +dinner +diodes +dioxin +dipole +dipped +dipper +dipsos +direct +direly +direst +dirges +dirndl +disarm +disbar +discos +discus +dished +dishes +dismal +dismay +disown +dispel +dissed +distal +distil +disuse +dither +dittos +ditzes +divans +divers +divert +divest +divide +divine +diving +divots +doable +dobbed +dobbin +docent +docile +docked +docker +docket +doctor +dodder +doddle +dodged +dodgem +dodger +dodges +doffed +dogged +dogies +dogleg +dogmas +doings +doling +dollar +dolled +dollop +dolmen +dolour +domain +doming +domino +donate +donged +dongle +donkey +donned +donors +donuts +doodad +doodah +doodle +doomed +dopers +dopier +doping +dories +dormer +dorsal +dosage +dosing +dossed +dosser +dosses +dotage +dotard +dotcom +doters +doting +dotted +double +doubly +doubts +douche +doughy +dourer +dourly +doused +douses +dovish +dowels +dowers +downed +downer +dowsed +dowser +dowses +doyens +dozens +dozier +dozily +dozing +drably +drafts +draggy +dragon +drains +drakes +dramas +draped +draper +drapes +drawer +drawls +dreads +dreams +dreamt +dreamy +dreary +dredge +drench +dressy +driers +driest +drifts +drills +drinks +drippy +drivel +driven +driver +drives +drogue +droids +drolly +droned +drones +drools +droops +droopy +dropsy +drover +droves +drowns +drowse +drowsy +drudge +druggy +druids +drunks +drupes +dryads +dryers +drying +dubbed +dubber +dubbin +ducats +ducked +duding +duenna +duffed +duffer +dugout +dulcet +dulled +duller +dumber +dumbly +dumbos +dumdum +dumped +dumper +dunces +dunged +dunked +dunned +dunner +dupers +duping +duplex +duress +during +dusted +duster +duties +duvets +dwarfs +dweebs +dwells +dyadic +dybbuk +dyeing +dynamo +eagles +eaglet +earbud +earful +earned +earner +earths +earthy +earwax +earwig +easels +easier +easily +easing +eaters +eatery +eating +ebbing +echoed +echoes +echoic +eclair +eczema +eddied +eddies +edgers +edgier +edgily +edging +edible +edicts +edited +editor +educed +educes +eerier +eerily +efface +effect +effete +effigy +effing +efflux +effort +effuse +eggcup +egging +eggnog +egoism +egoist +egress +egrets +eiders +eighth +eights +eighty +either +ejects +elands +elapse +elated +elates +elbows +elders +eldest +elects +eleven +elfish +elicit +elided +elides +elites +elixir +elodea +eloped +elopes +eluded +eludes +elvers +elvish +emails +embalm +embank +embark +embeds +embers +emblem +embody +emboss +embryo +emceed +emcees +emends +emerge +emetic +emigre +emojis +emoted +emotes +empire +employ +enable +enacts +enamel +encamp +encase +encode +encore +encyst +endear +ending +endive +endows +endued +endues +endure +enemas +energy +enfold +engage +engine +engram +engulf +enigma +enjoin +enjoys +enlist +enmesh +enmity +enough +enrage +enrich +enrols +ensign +ensued +ensues +ensure +entail +enters +entice +entire +entity +entomb +entrap +entree +envied +envies +envoys +enzyme +eolian +epochs +equals +equate +equine +equips +equity +erased +eraser +erases +erbium +erects +ermine +eroded +erodes +erotic +errand +errant +errata +erring +errors +ersatz +eructs +erupts +escape +eschew +escort +escrow +escudo +espied +espies +esprit +essays +estate +esteem +esters +etched +etcher +etches +ethane +ethics +ethnic +etudes +euchre +eulogy +eunuch +eureka +evaded +evader +evades +evened +evener +evenly +events +evicts +eviler +evilly +evince +evoked +evokes +evolve +exacts +exalts +exceed +excels +except +excess +excise +excite +excuse +exempt +exerts +exeunt +exhale +exhort +exhume +exiled +exiles +exilic +exists +exited +exodus +exotic +expand +expats +expect +expels +expend +expert +expire +expiry +export +expose +extant +extend +extent +extols +extort +extras +exuded +exudes +exults +exurbs +eyeful +eyeing +eyelet +eyelid +fabled +fables +fabric +facade +facets +facial +facile +facing +factor +fading +faecal +faeces +faerie +faffed +fagged +faggot +failed +faille +fainer +faints +fairer +fairly +faiths +fajita +fakers +faking +fakirs +falcon +fallen +fallow +falser +falsie +falter +family +famine +famish +famous +fanboy +fandom +fanged +fanned +farads +farces +farina +faring +farmed +farmer +farrow +farted +fascia +fasted +fasten +faster +father +fathom +fating +fatsos +fatten +fatter +fatwas +faucet +faults +faulty +faunas +favour +fawned +fawner +faxing +fayest +fazing +fealty +feared +feasts +fecund +fedora +feeble +feebly +feeder +feeler +feigns +feints +feisty +feline +fellas +felled +feller +fellow +felons +felony +felted +female +femurs +fenced +fencer +fences +fended +fender +fennel +ferret +ferric +ferule +fervid +fessed +fesses +festal +fester +feting +fetish +fetter +fettle +feudal +feuded +fevers +fewest +fezzes +fiance +fiasco +fibbed +fibber +fibres +fibril +fibrin +fibula +fiches +fichus +fickle +fiddle +fiddly +fidget +fields +fiends +fierce +fiesta +fifers +fifths +fights +figure +filers +filial +filing +filled +filler +fillet +fillip +filmed +filter +filthy +finale +finals +finder +finely +finery +finest +finger +finial +fining +finish +finite +finked +finned +firers +firing +firmed +firmer +firmly +firsts +firths +fiscal +fished +fisher +fishes +fitful +fitted +fitter +fivers +fixate +fixers +fixing +fixity +fizzed +fizzes +fizzle +fjords +flabby +flacks +flagon +flails +flairs +flaked +flakes +flambe +flamed +flamer +flames +flange +flanks +flared +flares +flashy +flasks +flatly +flatus +flaunt +flavor +flawed +flaxen +flayed +flecks +fleece +fleecy +fleets +fleshy +flexed +flexes +flicks +fliest +flight +flimsy +flinch +flings +flints +flinty +flippy +flirts +flirty +floats +flocks +floods +floors +floozy +floppy +floral +floras +floret +florid +florin +flossy +flours +floury +flouts +flowed +flower +fluent +fluffs +fluffy +fluids +flukes +flumes +flunks +flunky +flurry +fluted +flutes +fluxed +fluxes +flybys +flyers +flying +flyway +foaled +foamed +fobbed +fodder +fogeys +fogged +foible +foiled +foists +folded +folder +folios +folksy +follow +foment +fonder +fondle +fondly +fondue +foobar +foodie +fooled +footed +footer +footie +forage +forays +forbid +forced +forces +forded +forego +forest +forged +forger +forges +forget +forgot +forked +formal +format +formed +former +formic +fortes +forums +fossil +foster +fought +fouled +fouler +foully +founds +founts +fourth +fowled +foxier +foxily +foxing +foyers +fracas +fracks +framed +framer +frames +francs +franks +frappe +frauds +frayed +freaks +freaky +freely +freest +freeze +french +frenzy +fresco +friars +friary +fridge +friend +frieze +fright +frigid +frills +frilly +fringe +frisks +frisky +frizzy +frocks +frolic +fronds +fronts +frosts +frosty +froths +frothy +frowns +frowzy +frozen +frugal +fruits +fruity +frumps +frumpy +fryers +frying +ftpers +ftping +fucked +fucker +fuddle +fudged +fudges +fugues +fuhrer +fulfil +fulled +fuller +fumble +fumier +fuming +funded +fungal +fungus +funked +funnel +funner +furies +furled +furore +furred +furrow +fusees +fusing +fusion +fussed +fusses +futile +futons +future +futzed +futzes +fuzzed +fuzzes +gabbed +gabble +gabled +gables +gadded +gadder +gadfly +gadget +gaffed +gaffer +gaffes +gagged +gaggle +gaiety +gained +gainer +gaiter +galaxy +galena +galled +galley +gallon +gallop +galoot +galore +galosh +gambit +gamble +gambol +gamely +gamest +gamete +gamier +gamine +gaming +gamins +gammas +gammon +gamuts +gander +ganged +gannet +gantry +gaping +garage +garbed +garble +garcon +garden +gargle +garish +garlic +garner +garnet +garret +garter +gasbag +gashed +gashes +gasket +gasman +gasmen +gasped +gassed +gasses +gateau +gather +gating +gators +gauche +gaucho +gauged +gauges +gavels +gawked +gawped +gayest +gazebo +gazers +gazing +gazump +geared +geckos +geddit +geeing +geezer +geisha +gelcap +gelded +gelled +gender +genera +genial +genies +genius +genned +genome +genres +gentle +gently +gentry +geodes +gerbil +gerund +gewgaw +geyser +ghetto +ghosts +ghouls +giants +gibber +gibbet +gibbon +giblet +gifted +gigged +giggle +giggly +gigolo +gilded +gilder +gillie +gimlet +gimmes +gimped +ginger +ginkgo +ginned +girded +girder +girdle +girted +girths +givens +givers +giving +gizmos +glaces +glades +gladly +glance +glands +glared +glares +glassy +glazed +glazes +gleams +gleans +glibly +glided +glider +glides +glints +glitch +glitzy +gloats +global +globed +globes +gloomy +gloppy +glossy +gloved +gloves +glowed +glower +gluier +gluing +glumly +gluons +gluten +glycol +gnarls +gnarly +gnawed +gneiss +gnomes +gnomic +goaded +goalie +goatee +gobbed +gobbet +gobble +goblet +goblin +godson +gofers +goggle +goings +goitre +golden +golfed +golfer +gonads +goners +gonged +goober +goodly +goofed +google +googly +gooier +goosed +gooses +gopher +gorged +gorges +gorgon +gorier +gorily +goring +gospel +gossip +gotcha +gotten +gouged +gouger +gouges +gourde +gourds +govern +gowned +grabby +graced +graces +graded +grader +grades +grafts +graham +grains +grainy +grands +grange +granny +grants +grapes +graphs +grasps +grassy +grated +grater +grates +gratin +gratis +graved +gravel +graven +graver +graves +gravid +grazed +grazer +grazes +grease +greasy +greats +grebes +greedy +greens +greets +greyed +greyer +griefs +grieve +grille +grills +grimed +grimes +grimly +grinds +gringo +griped +griper +gripes +grippe +grisly +gritty +groans +groats +grocer +groggy +groins +grooms +groove +groovy +groped +groper +gropes +grotto +grotty +grouch +ground +groups +grouse +grouts +grovel +groves +grower +growls +growth +groyne +grubby +grudge +grumps +grumpy +grunge +grungy +grunts +guards +guavas +guests +guffaw +guided +guider +guides +guilds +guilty +guinea +guises +guitar +gulags +gulden +gulled +gullet +gulped +gulper +gumbos +gummed +gunman +gunmen +gunned +gunnel +gunner +gurgle +gurney +gushed +gusher +gushes +gusset +gusted +gutted +gutter +guvnor +guying +guzzle +gybing +gypped +gypper +gypsum +gyrate +gyving +habits +hacked +hacker +hackle +hadith +haggis +haggle +hailed +hairdo +haired +hajjes +hajjis +halest +haling +halite +halloo +hallow +haloed +halted +halter +halved +halves +hamlet +hammed +hammer +hamper +handed +handle +hangar +hanged +hanger +hangup +hanker +hansom +happen +haptic +harass +harden +harder +hardly +harems +haring +harked +harlot +harmed +harped +harrow +hashed +hashes +hassle +hasted +hasten +hastes +hatbox +haters +hating +hatpin +hatred +hatted +hatter +hauled +hauler +haunch +haunts +havens +having +hawing +hawked +hawker +hawser +haying +haymow +hazard +hazels +hazers +hazier +hazily +hazing +hazmat +headed +header +healed +healer +health +heaped +hearer +hearse +hearth +hearts +hearty +heated +heater +heaths +heaved +heaven +heaver +heaves +heckle +hectic +hector +hedged +hedger +hedges +heeded +heehaw +heeled +hefted +hegira +heifer +height +heists +helium +hellos +helmet +helots +helped +helper +helves +hemmed +hemmer +hempen +hennas +hepper +herald +herbal +herded +herder +hereby +herein +hereof +hereon +heresy +hereto +hermit +hernia +heroes +heroic +heroin +herons +herpes +hetero +hewers +hewing +hexing +heyday +hiatus +hiccup +hickey +hidden +hiders +hiding +hieing +higher +highly +hijabs +hijack +hikers +hiking +hinder +hinged +hinges +hinted +hinter +hipped +hipper +hippos +hiring +hissed +hisses +hither +hitter +hiving +hoagie +hoards +hoarse +hoaxed +hoaxer +hoaxes +hobbit +hobble +hobnob +hocked +hockey +hoeing +hogans +hogged +hogtie +hoicks +hoists +hokier +hoking +holder +holdup +holier +holing +holism +holler +hollow +homage +hombre +homely +homers +homeys +homier +homily +homing +hominy +honcho +honers +honest +honeys +honing +honked +honker +honour +hooded +hoodie +hoodoo +hoofed +hoofer +hookah +hooked +hooker +hookup +hooped +hoopla +hooray +hooted +hooter +hoover +hooves +hoping +hopped +hopper +horded +hordes +horned +hornet +horrid +horror +horsed +horses +horsey +hosier +hosing +hosted +hostel +hotbed +hotbox +hotels +hotkey +hotpot +hotted +hotter +hottie +hounds +houris +hourly +housed +houses +hovels +hovers +howdah +howled +howler +hoyden +hubbub +hubcap +hubris +huddle +huffed +hugely +hugest +hugged +hulled +huller +humane +humans +humble +humbly +humbug +humeri +hummed +hummer +hummus +humour +humped +humphs +hunger +hungry +hunker +hunted +hunter +hurdle +hurled +hurler +hurrah +hurtle +hushed +hushes +husked +husker +hussar +hustle +huzzah +hybrid +hydras +hyenas +hymens +hymnal +hymned +hyphen +hyping +hyssop +iambic +iambus +ibexes +ibidem +ibises +icebox +icecap +iceman +icemen +icicle +iciest +icings +ickier +iconic +ideals +idiocy +idioms +idiots +idlers +idlest +idling +idylls +iffier +igloos +ignite +ignore +iguana +imaged +images +imbibe +imbued +imbues +immune +immure +impact +impair +impala +impale +impart +impede +impels +impend +imperf +impish +import +impose +impost +impugn +impure +impute +inaner +inborn +inbred +incest +inched +inches +incing +incise +incite +income +incurs +indeed +indent +indict +indies +indigo +indite +indium +indoor +induce +induct +infamy +infant +infect +infers +infest +infill +infirm +inflow +influx +inform +infuse +ingest +ingots +inhale +inhere +inject +injure +injury +inkier +inking +inlaid +inland +inlays +inlets +inline +inmate +inmost +innate +inning +inputs +inroad +inrush +insane +inseam +insect +insert +insets +inside +insist +insole +instar +instep +instil +insula +insult +insure +intact +intake +intend +intent +interj +intern +inters +intone +intros +intuit +inured +inures +invade +invent +invert +invest +invite +invoke +inward +iodide +iodine +iodise +ionise +ipecac +ireful +irenic +irides +irises +irking +ironed +ironic +irrupt +island +islets +isobar +isomer +issued +issuer +issues +italic +itched +itches +itself +jabbed +jabber +jabots +jackal +jacked +jacket +jading +jagged +jaguar +jailed +jailer +jalopy +jammed +jangle +japans +japing +jarful +jargon +jarred +jasper +jaunts +jaunty +jawing +jazzed +jazzes +jeered +jejuna +jejune +jelled +jellos +jennet +jerked +jerkin +jersey +jested +jester +jetsam +jetted +jewels +jibbed +jibing +jigged +jigger +jiggle +jiggly +jigsaw +jihads +jilted +jingle +jingly +jinked +jinxed +jinxes +jitney +jiving +jobbed +jobber +jockey +jocose +jocund +jogged +jogger +joggle +johnny +joined +joiner +joints +joists +jojoba +jokers +jokier +joking +jolted +jolter +joshed +josher +joshes +jostle +jotted +jotter +joules +jounce +jouncy +journo +jousts +jovial +joyful +joying +joyous +judder +judged +judges +jugful +jugged +juggle +juiced +juicer +juices +jujube +juleps +jumble +jumbos +jumped +jumper +juncos +jungle +junior +junked +junker +junket +junkie +juntas +juries +jurist +jurors +juster +justly +jutted +kaboom +kabuki +kaftan +kahuna +kaiser +kaolin +kappas +karate +karats +karmic +kayaks +kayoed +kazoos +kebabs +keeled +keened +keener +keenly +keeper +kelvin +kenned +kennel +kerbed +kernel +ketone +kettle +keying +keypad +khakis +kibble +kibitz +kibosh +kicked +kicker +kidded +kidder +kiddie +kiddos +kidnap +kidney +killed +killer +kilned +kilted +kilter +kimono +kinase +kinder +kindle +kindly +kingly +kinked +kiosks +kipped +kipper +kirsch +kismet +kissed +kisser +kisses +kiting +kitsch +kitted +kitten +klaxon +kludge +kluged +kluges +klutzy +knacks +knaves +kneads +kneels +knells +knifed +knifes +knight +knives +knobby +knocks +knolls +knotty +knurls +koalas +kopeck +kosher +kowtow +kraals +krauts +kroner +kronor +kronur +kuchen +kudzus +kvetch +labels +labial +labile +labium +labour +lacier +lacing +lacked +lackey +lactic +lacuna +ladder +laddie +ladies +lading +ladled +ladles +lagers +lagged +lagoon +lairds +lambda +lambed +lamely +lament +lamers +lamest +lamina +laming +lammed +lanais +lanced +lancer +lances +lancet +landau +landed +lander +lanker +lankly +lapdog +lapels +lapins +lapped +lappet +lapsed +lapses +laptop +larded +larder +larger +larges +largos +lariat +larked +larvae +larval +larynx +lasers +lashed +lashes +lasing +lasses +lassie +lassos +lasted +lastly +lately +latent +latest +lathed +lather +lathes +latish +latter +lattes +lauded +laughs +launch +laurel +lavage +laving +lavish +lawful +lawman +lawmen +lawyer +laxest +laxity +layers +laying +layman +laymen +layoff +layout +layups +lazied +lazier +lazies +lazily +lazing +leaded +leaden +leader +leafed +league +leaked +leaned +leaner +leaper +learns +learnt +leased +leaser +leases +leaved +leaven +leaver +leaves +leched +lecher +leches +ledger +ledges +leered +leeway +lefter +legacy +legals +legate +legato +legend +legged +legion +legman +legmen +legume +lemmas +lemons +lemony +lemurs +lender +length +lenses +lentil +lepers +lepton +lesion +lessee +lessen +lesser +lesson +lessor +lethal +letter +letups +levees +levels +levers +levied +levier +levies +levity +lewder +lewdly +lexers +liable +liaise +libber +libels +libido +lichen +licked +lidded +lieder +liefer +lieges +lifers +lifted +lifter +ligate +lights +lignin +likely +likens +likest +liking +lilacs +lilies +lilted +limber +limbos +limeys +limier +liming +limits +limned +limped +limper +limpet +limpid +limply +linage +linden +lineal +linear +linens +liners +lineup +linger +lining +linked +linker +linkup +linnet +linted +lintel +lipids +lipped +liquid +liquor +lisped +lisper +lissom +listed +listen +litany +litchi +lither +litmus +litres +litter +little +lively +livens +livers +livery +livest +living +lizard +llamas +llanos +loaded +loader +loafed +loafer +loaned +loaner +loathe +loaves +lobbed +lobber +locale +locals +locate +locked +locker +locket +lockup +locums +locust +lodged +lodger +lodges +lofted +logged +logger +loggia +logier +logins +logjam +logoff +logons +logout +loiter +lolcat +lolled +lollop +lonely +loners +longed +longer +loofah +looked +looker +lookup +loomed +loonie +looped +loosed +loosen +looser +looses +looted +looter +loping +lopped +lorded +lordly +losers +losing +losses +lotion +louche +louder +loudly +loughs +lounge +loured +loused +louses +louvre +lovely +lovers +loveys +loving +lowboy +lowers +lowest +lowing +lowish +lubber +lubing +lucked +luffed +lugged +lugger +lulled +lumbar +lumber +lummox +lumped +lumpen +lunacy +lunged +lunges +lupine +lupins +luring +lurked +lurker +lusher +lushes +lushly +lusted +lustre +luxury +lyceum +lynxes +lyrics +macaws +macing +macron +macros +madame +madams +madcap +madden +madder +madman +madmen +madras +mafias +maggot +magics +magnet +magnon +magnum +magpie +mahout +maiden +mailed +mailer +maimed +mainly +maizes +majors +makers +makeup +making +malady +malice +malign +mallet +mallow +malted +mambas +mambos +mammal +mammon +manage +manana +manege +manful +manged +manger +mangle +maniac +manias +manics +manioc +manned +manner +manors +manque +manses +mantas +mantel +mantis +mantle +mantra +manual +manure +maples +mapped +mapper +maraca +maraud +marble +margin +marina +marine +marked +marker +market +markka +markup +marlin +marmot +maroon +marque +marred +marrow +marshy +marten +martin +martyr +marvel +mascot +masers +mashed +masher +mashes +mashup +masked +masker +masons +masque +massed +masses +massif +masted +master +mastic +mateys +mating +matins +matres +matrix +matron +matted +matter +mattes +mature +matzoh +matzos +matzot +mauled +mauler +mavens +maxima +maxims +maxing +maybes +mayday +mayfly +mayhem +mayors +meadow +meagre +meaner +meanie +meanly +measly +meccas +medals +meddle +medial +median +medias +medico +medics +medium +medley +medusa +meeker +meekly +meetup +melded +melees +mellow +melody +melons +melted +member +memoir +memory +menace +menage +mended +mender +menial +meninx +mensch +menses +mental +mentor +mercer +merely +merest +merged +merger +merges +merino +merits +merman +mermen +mescal +meshed +meshes +mesons +messed +messes +metals +meteor +meters +method +methyl +metier +meting +metres +metric +metros +mettle +mewing +mewled +mezzos +miaows +miasma +mickey +micron +micros +midair +midday +midden +middle +midges +midget +midrib +midway +miffed +mighty +mikado +miking +milady +milder +mildew +mildly +milers +milieu +milked +milker +milled +miller +millet +milted +mimics +miming +mimosa +minced +mincer +minces +minded +minder +miners +mingle +minima +minims +mining +minion +minnow +minors +minted +minter +minuet +minute +minxes +mirage +mirier +miring +mirror +miscue +misdid +misers +misery +misfit +mishap +mishit +mislay +misled +missal +missed +misses +missus +misted +mister +misuse +mitral +mitred +mitres +mitten +mixers +mixing +mizzen +moaned +moaner +moated +mobbed +mobile +mochas +mocked +mocker +modals +modded +models +modems +modern +modest +modify +modish +module +modulo +moggie +moguls +mohair +moiety +moiled +moires +molars +molest +molten +molter +moment +moneys +monger +mongol +monies +monism +monist +monkey +monody +months +mooing +mooned +moored +mooted +mopeds +mopers +mopier +moping +mopish +mopped +moppet +morale +morals +morass +morays +morbid +morels +morgue +morons +morose +morphs +morrow +morsel +mortal +mortar +mosaic +moseys +moshed +moshes +mosque +mosses +mostly +motels +motets +mother +motifs +motile +motion +motive +motley +motors +mottle +moulds +mouldy +moults +mounds +mounts +mourns +moused +mouser +mouses +mousse +mouths +mouthy +mouton +movers +movies +moving +mowers +mowing +mucked +mucous +muddle +muesli +muffed +muffin +muffle +muftis +mugful +mugged +mugger +muggle +mukluk +mulcts +mulish +mullah +mulled +mullet +mumble +mummer +munged +murals +murder +murmur +muscat +muscle +muscly +museum +mushed +musher +mushes +musics +musing +muskeg +musket +muskie +muskox +muslin +mussed +mussel +musses +muster +mutant +mutate +mutely +mutest +muting +mutiny +mutter +mutton +mutual +muumuu +muzzle +myopia +myopic +myriad +myrtle +myself +mystic +mythic +nabbed +nabobs +nachos +nadirs +naffer +nagged +nagger +naiads +nailed +naiver +namely +naming +napalm +napkin +napped +napper +narrow +nasals +nation +native +natter +nature +nausea +navels +navies +nearby +neared +nearer +nearly +neaten +neater +neatly +nebula +necked +nectar +needed +needle +negate +neighs +nelson +neocon +nephew +nerved +nerves +nested +nestle +nether +netted +netter +nettle +neural +neuron +neuter +newbie +newels +newest +newton +niacin +nibble +nicely +nicest +nicety +niches +nicked +nickel +nicker +nickle +nieces +niggas +niggaz +nigger +niggle +nigher +nights +nimble +nimbly +nimbus +nimrod +ninety +ninjas +ninths +nipped +nipper +nipple +nitric +nitwit +nixing +nobble +nobler +nobles +nobody +nodded +noddle +nodule +noggin +noised +noises +nomads +nonage +noncom +nonfat +noodle +nookie +nooses +normal +noshed +nosher +noshes +nosier +nosily +nosing +notary +notate +notice +notify +noting +notion +nougat +nought +novels +novena +novice +noways +nowise +nozzle +nuance +nubbin +nubile +nuclei +nudest +nudged +nudges +nudism +nudist +nudity +nugget +nuking +numbed +number +numbly +nuncio +nursed +nurser +nurses +nutmeg +nutria +nutted +nutter +nuzzle +nybble +nylons +nympho +nymphs +oafish +oaring +obeyed +object +oblate +oblige +oblong +oboist +obsess +obtain +obtuse +occult +occupy +occurs +oceans +ocelot +ockers +octane +octave +octavo +octets +ocular +oddest +oddity +odious +odours +oedema +oeuvre +offend +offers +office +offing +offish +offset +oglers +ogling +ogress +oilcan +oilier +oiling +oilman +oilmen +oinked +okapis +okayed +oldest +oldies +oldish +olives +omegas +onions +online +onrush +onsets +onside +onsite +onuses +onward +onyxes +oodles +oohing +oozier +oozing +opaque +opcode +opened +opener +openly +operas +opiate +opined +opines +oppose +optics +optima +opting +option +opuses +oracle +orally +orange +orated +orates +orator +orbits +orchid +ordain +ordeal +orders +ordure +organs +orgasm +orgies +oriels +orient +origin +oriole +orison +ormolu +ornate +ornery +orphan +osiers +osmium +osprey +ossify +ostler +others +otiose +otters +ounces +ousted +ouster +outage +outbid +outbox +outcry +outdid +outfit +outfox +outgun +outhit +outing +outlaw +outlay +outlet +output +outran +outrun +outset +outwit +overdo +overly +ovoids +ovular +ovules +owlets +owlish +owners +owning +oxbows +oxcart +oxford +oxides +oxtail +oxygen +oyster +pablum +pacers +pacier +pacify +pacing +packed +packer +packet +padded +paddle +padres +paeans +paella +pagans +pagers +paging +pagoda +pained +paints +paired +palace +palate +palely +palest +paling +palish +palled +pallet +pallid +pallor +palmed +paltry +pampas +pamper +panama +pandas +pander +panels +panics +panned +panted +pantie +pantos +pantry +papacy +papaya +papers +papery +papist +papyri +parade +parcel +pardon +parent +parers +pariah +paring +parish +parity +parkas +parked +parlay +parley +parody +parole +parred +parrot +parsec +parsed +parser +parses +parson +parted +partly +pascal +pashas +passed +passel +passer +passes +passim +pastas +pasted +pastel +pastes +pastie +pastor +pastry +patchy +patent +pathos +patina +patios +patois +patrol +patron +patted +patter +paunch +pauper +paused +pauses +paving +pawing +pawned +pawpaw +payday +payees +payers +paying +payoff +payola +payout +peaces +peachy +peahen +peaked +pealed +peanut +pearls +pearly +pebble +pebbly +pecans +pecked +pecker +pectic +pectin +pedalo +pedals +pedant +peddle +pedlar +peeing +peeked +peeled +peeler +peepbo +peeped +peeper +peered +peeved +peeves +peewee +peewit +pegged +pellet +pelmet +pelted +pelvic +pelvis +pencil +pended +penile +penman +penmen +penned +pennon +penury +people +pepped +pepper +pepsin +peptic +perils +period +perish +perked +permed +permit +person +perter +pertly +peruke +peruse +peseta +pester +pestle +petals +petard +peters +petite +petrel +petrol +petted +pewees +pewits +pewter +peyote +phages +phalli +phased +phases +phenol +phenom +phials +phlegm +phloem +phobia +phobic +phoebe +phoned +phones +phoney +phonic +phonon +phooey +photon +photos +phrase +phylum +physic +physio +pianos +piazza +pickax +picked +picker +picket +pickle +pickup +picnic +picots +piddle +piddly +pidgin +pieced +pieces +pieing +pierce +piffle +pigeon +pigged +piglet +pigpen +pigsty +pikers +piking +pilafs +pileup +pilfer +piling +pillar +pilled +pillow +pilots +pimped +pimple +pimply +pinata +pincer +pinged +pinier +pining +pinion +pinked +pinker +pinkie +pinkos +pinned +pinons +pintos +pinups +pinyin +pinyon +pipers +piping +pipits +pipped +pippin +piqued +piques +piracy +pirate +pirogi +pissed +pisser +pisses +pistes +pistil +pistol +piston +pitied +pities +pitons +pittas +pitted +pivots +pixels +pixies +pizzas +placed +placer +places +placid +plague +plaice +plaids +plains +plaint +plaits +planar +planed +planer +planes +planet +planks +plants +plaque +plasma +plated +platen +plates +platys +played +player +plazas +pleads +please +pleats +plebby +plebes +pledge +plenty +plenum +pleura +plexus +pliant +pliers +plight +plinth +plonks +plough +plover +plucks +plucky +plugin +plumbs +plumed +plumes +plummy +plumps +plunge +plunks +plural +pluses +plushy +plying +pocked +pocket +podded +podium +poetic +poetry +pogrom +points +pointy +poised +poises +poison +pokers +pokeys +pokier +poking +police +policy +poling +polios +polish +polite +polity +polkas +polled +pollen +polyps +pomade +pommel +pompom +ponced +ponces +poncho +ponder +ponged +pongee +ponied +ponies +poodle +poohed +pooing +pooled +pooped +poorer +poorly +popgun +poplar +poplin +poppas +popped +popper +poppet +popups +poring +porker +porous +portal +ported +porter +portly +posers +poseur +posher +posies +posing +posits +posses +possum +postal +posted +poster +postie +potash +potato +potent +potful +pother +potion +potpie +potted +potter +pouffe +pounce +pounds +poured +pouted +pouter +powder +powers +powwow +praise +prance +prangs +pranks +prated +prater +prates +prawns +prayed +prayer +preach +precis +preens +prefab +prefer +prefix +prelim +premed +premix +prenup +prepay +preppy +preset +presto +pretax +pretty +prewar +preyed +priced +prices +pricey +pricks +prided +prides +priers +priest +primal +primed +primer +primes +primly +primps +prince +prints +prions +priors +priory +prised +prises +prisms +prison +prissy +privet +prizes +probed +probes +profit +proles +prolix +promos +prompt +prongs +pronto +proofs +propel +proper +proton +proved +proven +proves +prowls +prudes +pruned +pruner +prunes +prying +psalms +pseudo +pseuds +pseudy +pshaws +psyche +psycho +psychs +public +pucker +puddle +pueblo +puffed +puffer +puffin +puking +puling +pulled +puller +pullet +pulley +pulped +pulpit +pulsar +pulsed +pulses +pumice +pummel +pumped +pumper +punchy +pundit +punier +punish +punker +punned +punnet +punted +punter +pupate +pupils +pupped +puppet +purdah +pureed +purees +purely +purest +purged +purger +purges +purify +purine +purism +purist +purity +purled +purple +purred +pursed +purser +purses +pursue +purvey +pushed +pusher +pushes +pusses +putout +putrid +putsch +putted +puttee +putter +putzes +puzzle +pwning +pyjama +pylons +pylori +pyrite +python +quacks +quaffs +quahog +quails +quaint +quaked +quakes +qualms +quango +quanta +quarks +quarry +quarto +quarts +quartz +quasar +quaver +queasy +queens +queers +quells +quench +quests +queued +queues +quiche +quiets +quiffs +quills +quilts +quince +quines +quinoa +quinsy +quints +quires +quirks +quirky +quirts +quiver +quoins +quoits +quorum +quotas +quoted +quotes +qwerty +rabbet +rabbis +rabbit +rabble +rabies +raceme +racers +racial +racier +racily +racing +racism +racist +racked +racket +radars +radial +radian +radios +radish +radium +radius +raffia +raffle +rafted +rafter +ragbag +ragged +raging +raglan +ragout +ragtag +raided +raider +railed +rained +raised +raiser +raises +raisin +rajahs +raking +rakish +ramble +ramify +ramjet +rammed +ramrod +rancid +random +ranees +ranged +ranger +ranges +ranked +ranker +rankle +rankly +ransom +ranted +ranter +rapers +rapids +rapier +rapine +raping +rapist +rapped +rappel +rapper +raptly +raptor +rarefy +rarely +rarest +raring +rarity +rascal +rasher +rashes +rashly +rasped +raster +ratbag +raters +rather +ratify +rating +ration +ratios +rattan +ratted +ratter +rattle +rattly +ravage +ravels +ravens +ravers +ravine +raving +ravish +rawest +razing +razors +razzed +razzes +reacts +reader +realer +really +realms +realty +reamed +reamer +reaped +reaper +reared +rearms +reason +rebate +rebels +rebids +rebind +reboil +reboot +reborn +rebuff +rebuke +rebury +rebuts +recall +recant +recaps +recast +recces +recede +recent +recess +recipe +recite +reckon +recoil +recons +recook +recopy +record +recoup +rectal +rector +rectos +rectum +recurs +recuse +redact +redcap +redden +redder +redeem +redial +redoes +redone +redraw +redrew +reduce +redyed +redyes +reecho +reedit +reefed +reefer +reeked +reeled +reeves +reface +refers +reffed +refile +refill +refine +refits +reflex +refold +reform +refuel +refuge +refund +refuse +refute +regain +regale +regard +regent +regexp +reggae +regime +region +regret +regrew +regrow +rehabs +rehang +rehash +rehear +reheat +rehire +rehung +reigns +reined +reject +rejigs +rejoin +relaid +relate +relays +relent +relics +relied +relief +relies +reline +relish +relist +relive +reload +remade +remain +remake +remand +remaps +remark +remedy +remelt +remind +remiss +remits +remote +remove +rename +render +renege +renews +rennet +rennin +renown +rental +rented +renter +reopen +reorgs +repack +repaid +repair +repast +repave +repays +repeal +repeat +repels +repent +repine +replay +report +repose +repute +reread +reruns +resale +rescue +reseal +reseed +resell +resend +resent +resets +resewn +resews +reship +reside +resign +resins +resist +resits +resize +resold +resole +resort +resown +resows +rested +result +resume +retail +retain +retake +retard +retell +retest +retied +reties +retina +retire +retold +retook +retool +retort +retrod +retros +return +retype +reused +reuses +revamp +reveal +revels +reverb +revere +revers +revert +review +revile +revise +revive +revoke +revolt +revues +revved +reward +rewarm +rewash +reweds +rewind +rewire +reword +rework +rewove +rezone +rhesus +rheumy +rhinos +rhymed +rhymer +rhymes +rhythm +ribald +ribbed +ribber +ribbon +ricers +richer +riches +richly +ricing +ricked +ridden +riddle +riders +ridged +ridges +riding +rifest +riffed +riffle +rifled +rifler +rifles +rifted +rigged +rigger +righto +rights +rigour +riling +riming +rimmed +ringed +ringer +rinsed +rinses +rioted +rioter +ripely +ripens +ripest +ripoff +ripped +ripper +ripple +ripply +ripsaw +risers +rising +risked +risque +ritual +rivals +rivers +rivets +riving +riyals +roadie +roamed +roamer +roared +roarer +roasts +robbed +robber +robing +robins +robots +robust +rocked +rocker +rocket +rococo +rodent +rodeos +rogers +rogues +roiled +rolled +roller +romeos +romped +romper +rondos +roofed +roofer +rooked +rookie +roomed +roomer +roosts +rooted +rooter +ropers +ropier +roping +rosary +rosier +rosily +rosins +roster +rotary +rotate +rotgut +rotors +rotted +rotten +rotter +rotund +rouble +rouged +rouges +roughs +rounds +roused +rouses +rousts +routed +router +routes +rovers +roving +rowans +rowels +rowers +rowing +royals +rubato +rubbed +rubber +rubble +rubier +rubies +rubric +ruched +rucked +ruckus +rudder +rudely +rudest +rueful +ruffed +ruffle +ruffly +rugged +rugger +rugrat +ruined +rulers +ruling +rumbas +rumble +rummer +rumour +rumple +rumply +rumpus +runlet +runnel +runner +runoff +runway +rupees +rupiah +rushed +rusher +rushes +russet +rusted +rustic +rustle +rutted +sables +sabots +sabras +sabres +sachem +sachet +sacked +sacker +sacred +sacrum +sadden +sadder +saddle +sadhus +sadism +sadist +safari +safely +safest +safety +sagely +sagest +sagged +sahibs +sailed +sailor +saints +salaam +salads +salami +salary +saline +saliva +sallow +salmon +salons +saloon +salsas +salted +salter +salute +salved +salver +salves +salvos +sambas +samosa +sampan +sample +sandal +sanded +sander +sanely +sanest +sanity +sapped +sapper +sarges +sarnie +sarong +sashay +sashes +sassed +sasses +sateen +sating +satiny +satire +satori +satrap +satyrs +sauced +saucer +sauces +saunas +sautes +savage +savant +savers +saving +savour +savoys +sawfly +sawing +sawyer +saying +scabby +scalar +scalds +scaled +scales +scalps +scampi +scamps +scants +scanty +scarab +scarce +scared +scares +scarfs +scarps +scatty +scenes +scenic +scents +schema +scheme +schism +schist +schizo +schlep +schnoz +school +schuss +schwas +scions +scoffs +scolds +sconce +scones +scoops +scoots +scoped +scopes +scorch +scored +scorer +scores +scorns +scotch +scours +scouts +scowls +scrags +scrams +scrape +scraps +scrawl +scream +screed +screen +screes +screws +screwy +scribe +scrimp +scrims +scrips +script +scrogs +scroll +scrota +scrubs +scruff +scrump +scrums +scubas +scuffs +sculls +sculpt +scummy +scurfy +scurry +scurvy +scuzzy +scythe +seabed +sealed +sealer +seaman +seamed +seamen +seance +search +seared +season +seated +seaway +secant +secede +second +secret +sector +secure +sedans +sedate +seduce +seeded +seeder +seeing +seeker +seemed +seemly +seeped +seesaw +seethe +segued +segues +seined +seiner +seines +seized +seizes +seldom +select +selfie +seller +selves +senate +sender +senile +senior +senora +senors +sensed +senses +sensor +sentry +sepals +sepsis +septal +septet +septic +septum +sequel +sequin +serape +seraph +serene +serest +serial +series +serifs +serine +sermon +serous +serums +served +server +serves +servos +sesame +settee +setter +settle +setups +sevens +severe +severs +sewage +sewers +sewing +sexier +sexily +sexing +sexism +sexist +sexpot +sextet +sexton +sexual +shabby +shacks +shaded +shades +shadow +shafts +shaggy +shaken +shaker +shakes +shalom +shaman +shamed +shames +shandy +shanks +shanty +shaped +shapes +shards +shared +sharer +shares +sharia +sharks +sharps +shaved +shaven +shaver +shaves +shawls +shears +sheath +sheave +sheeny +sheers +sheets +sheikh +sheila +shekel +shells +shelve +sherry +shewed +shield +shiest +shifts +shifty +shills +shimmy +shined +shiner +shines +shinny +shires +shirks +shirrs +shirts +shirty +shitty +shiver +shoals +shoats +shocks +shoddy +shogun +shooed +shoots +shoppe +shored +shores +shorts +shorty +should +shouts +shoved +shovel +shoves +showed +shower +shrank +shreds +shrewd +shrews +shriek +shrift +shrike +shrill +shrimp +shrine +shrink +shrive +shroud +shrubs +shrugs +shrunk +shtick +shucks +shunts +shyest +shying +sibyls +sicced +sicked +sicken +sicker +sickie +sickle +sickly +sickos +siding +sidled +sidles +sieges +sienna +sierra +siesta +sieved +sieves +sifted +sifter +sighed +sights +sigmas +signal +signed +signer +signet +signor +silage +silent +silica +silken +silted +silver +simian +simile +simmer +simony +simper +simple +simply +sinews +sinewy +sinful +singed +singer +singes +single +singly +sinker +sinned +sinner +siphon +sipped +sipper +sirens +siring +sirrah +sirree +sister +sitars +sitcom +siting +sitter +sixths +sizing +sizzle +skated +skater +skates +skeins +sketch +skewed +skewer +skibob +skiers +skiffs +skiing +skills +skimps +skimpy +skinny +skirts +skived +skiver +skives +skivvy +skoals +skulks +skulls +skunks +skycap +skying +slacks +slaked +slakes +slalom +slangy +slants +slated +slates +slaved +slaver +slaves +slayed +slayer +sleaze +sleazy +sledge +sleeks +sleeps +sleepy +sleets +sleety +sleeve +sleigh +sleuth +slewed +sliced +slicer +slices +slicks +slider +slides +slight +slings +slinks +slinky +slippy +sliver +slogan +sloops +sloped +slopes +sloppy +sloths +slouch +slough +sloven +slowed +slower +slowly +sludge +sludgy +sluice +sluing +slummy +slumps +slurps +slurry +slushy +slutty +slyest +smacks +smalls +smarmy +smarts +smarty +smears +smeary +smells +smelly +smelts +smilax +smiled +smiles +smiley +smirch +smirks +smites +smiths +smithy +smocks +smoggy +smoked +smoker +smokes +smokey +smooch +smooth +smudge +smudgy +smugly +smurfs +smutty +snacks +snafus +snails +snaked +snakes +snappy +snared +snares +snarfs +snarks +snarky +snarls +snarly +snatch +snazzy +sneaks +sneaky +sneers +sneeze +snicks +snider +sniffs +sniffy +sniped +sniper +snipes +snippy +snitch +snivel +snobby +snoods +snoops +snoopy +snoots +snooty +snooze +snored +snorer +snores +snorts +snotty +snouts +snowed +snuffs +snugly +soaked +soaped +soared +sobbed +sobers +soccer +social +socked +socket +sodded +sodden +sodium +sodomy +soever +soften +softer +softly +soigne +soiled +soiree +solace +solder +solely +solemn +solidi +solids +soling +soloed +solute +solved +solver +solves +sombre +sonars +sonata +sonnet +sooner +soothe +sopped +sorbet +sordid +sorely +sorest +sorrel +sorrow +sorted +sorter +sortie +soughs +sought +sounds +souped +source +soured +sourer +sourly +soused +souses +soviet +sowers +sowing +spaced +spacer +spaces +spacey +spaded +spades +spadix +spanks +spared +sparer +spares +sparks +sparky +sparse +spasms +spates +spathe +spavin +spawns +spayed +speaks +spears +specie +specif +specks +speech +speeds +speedy +spells +spends +sperms +spewed +spewer +sphere +sphinx +spiced +spices +spider +spiels +spiffs +spiffy +spigot +spiked +spikes +spills +spinal +spines +spinet +spiral +spires +spirit +spited +spites +splash +splats +splays +spleen +splice +spliff +spline +splint +splits +splosh +spoils +spoilt +spoken +spokes +sponge +spongy +spoofs +spooks +spooky +spools +spoons +spoors +spored +spores +sports +sporty +spotty +spouse +spouts +sprain +sprang +sprats +sprawl +sprays +spread +spreed +sprees +sprier +sprigs +spring +sprint +sprite +spritz +sprogs +sprout +spruce +sprung +spryly +spumed +spumes +spunks +spunky +spurge +spurns +spurts +sputum +spying +squabs +squads +squall +square +squash +squats +squawk +squaws +squeak +squeal +squibs +squids +squint +squire +squirm +squirt +squish +stable +stably +stacks +staffs +staged +stages +stains +stairs +staked +stakes +staled +staler +stales +stalks +stalls +stamen +stamps +stance +stanch +stands +stanza +staple +starch +stared +starer +stares +starry +starts +starve +stasis +stated +stater +states +static +statue +status +staved +staves +stayed +stayer +steads +steady +steaks +steals +steams +steamy +steeds +steels +steely +steeps +steers +steins +stench +stenos +stents +steppe +stereo +sterns +stewed +sticks +sticky +stiffs +stifle +stigma +stiles +stills +stilts +stings +stingy +stinks +stinky +stints +stitch +stoats +stocks +stocky +stodge +stodgy +stogie +stoics +stoked +stoker +stokes +stolen +stoles +stolid +stolon +stomps +stoned +stoner +stones +stooge +stools +stoops +stored +stores +storey +storks +storms +stormy +stoups +stouts +stoves +stowed +strafe +strain +strait +strand +straps +strata +strati +straws +strays +streak +stream +street +stress +strewn +strews +striae +strict +stride +strife +strike +string +stripe +strips +stripy +strive +strobe +strode +stroke +stroll +strong +strops +strove +struck +strums +strung +struts +stubby +stucco +studio +studly +stuffs +stuffy +stumps +stumpy +stunts +stupid +stupor +sturdy +styled +styles +stylus +stymie +suaver +subbed +subdue +sublet +submit +suborn +subpar +subset +subtle +subtly +suburb +subway +sucked +sucker +suckle +sudden +suffer +suffix +sugars +sugary +suited +suites +suitor +sulked +sullen +sultan +sultry +summat +summed +summer +summit +summon +sunbed +sundae +sunder +sundry +sunhat +sunken +sunlit +sunned +sunset +suntan +superb +supers +supine +supped +supper +supple +supply +surely +surest +surety +surfed +surfer +surged +surges +surrey +surtax +survey +sussed +susses +sutler +suttee +suture +svelte +swains +swamis +swamps +swampy +swanks +swanky +swards +swarms +swatch +swathe +swaths +swayed +swears +sweats +sweaty +swedes +sweeps +sweets +swells +swerve +swifts +swills +swines +swings +swiped +swipes +swirls +swirly +switch +swivel +swoons +swoops +swoosh +swords +sylphs +sylvan +symbol +synced +synods +syntax +synths +syrups +syrupy +sysops +system +tabbed +tablas +tabled +tables +tablet +taboos +tabors +tacked +tacker +tackle +tactic +tagged +tagger +taigas +tailed +tailor +taints +takers +taking +talcum +talent +talked +talker +talkie +taller +tallow +talons +tamale +tamely +tamers +tamest +taming +tamped +tamper +tampon +tandem +tangle +tangos +tanked +tanker +tanned +tanner +tannin +tantra +tapers +taping +tapirs +tapped +tapper +tappet +target +tariff +taring +tarmac +tarots +tarpon +tarred +tarsal +tarsus +tartan +tartar +tarted +tarter +tartly +tasers +tasked +tassel +tasted +taster +tastes +tatami +taters +tatted +tatter +tattie +tattle +tattoo +taught +taunts +tauten +tauter +tautly +tavern +tawdry +taxers +taxied +taxing +taxman +taxmen +teabag +teacup +teamed +teapot +teared +teased +teasel +teaser +teases +techie +techno +tedium +teeing +teemed +teeter +teethe +teller +telnet +temped +temper +temple +tempos +tempts +tenant +tended +tender +tendon +tenets +tenner +tennis +tenons +tenors +tenpin +tensed +tenser +tenses +tensor +tented +tenths +tenure +tepees +termed +termly +terror +terser +tested +tester +testes +testis +tetchy +tether +tetras +texted +thanes +thanks +thatch +thawed +thefts +theirs +theism +theist +themed +themes +thence +theory +therms +theses +thesis +thetas +thicko +thieve +thighs +things +thingy +thinks +thinly +thirds +thirst +thirty +tholes +thongs +thorax +thorns +thorny +though +thrall +thrash +thread +threat +threes +thresh +thrice +thrift +thrill +thrive +throat +throbs +throes +throne +throng +thrown +throws +thrums +thrush +thrust +thumbs +thumps +thunks +thwack +thwart +thymus +tiaras +tibiae +tibial +ticked +ticker +ticket +tickle +tiddly +tidied +tidier +tidies +tidily +tiding +tiepin +tiered +tiffed +tigers +tights +tildes +tilers +tiling +tilled +tiller +tilted +timber +timbre +timely +timers +timing +tinder +tinged +tinges +tingle +tingly +tinier +tinker +tinkle +tinned +tinpot +tinsel +tinted +tipped +tipper +tippet +tippex +tipple +tiptoe +tiptop +tirade +tiring +tissue +titans +titbit +titchy +tithed +tither +tithes +titian +titled +titles +titter +tittle +toasts +toasty +tocsin +toddle +toecap +toeing +toerag +toffee +togaed +togged +toggle +toiled +toiler +toilet +tokens +toking +tolled +tomato +tombed +tomboy +tomcat +tomtit +toners +tonged +tongue +tonics +tonier +toning +tonnes +tonsil +tooled +tooted +tooter +toothy +tootle +topees +topics +topped +topper +topple +toques +torpid +torpor +torque +torrid +torsos +tortes +tossed +tosser +tosses +tossup +totals +totems +toting +totted +totter +toucan +touche +touchy +toughs +toupee +toured +tousle +touted +toward +towels +towers +towhee +towing +townee +townie +toxins +toyboy +toying +traced +tracer +traces +tracks +tracts +traded +trader +trades +tragic +trails +trains +traits +tramps +trance +transl +trashy +trauma +travel +trawls +treads +treats +treaty +treble +tremor +trench +trends +trendy +triads +triage +trials +tribal +tribes +tricks +tricky +triers +trifle +trikes +trilby +trills +trimly +triple +triply +tripod +tripos +triter +trivet +trivia +troika +trolls +tromps +troops +tropes +trophy +tropic +trough +troupe +trouts +troves +trowed +trowel +truant +truces +trucks +trudge +truest +truing +truism +trumps +trunks +trusts +trusty +truths +trying +tryout +trysts +tsetse +tubers +tubful +tubing +tubule +tucked +tucker +tufted +tufter +tugged +tulips +tumble +tumour +tumult +tundra +tuners +tuneup +tunics +tuning +tunnel +tuples +tuques +turban +turbid +turbos +turbot +tureen +turfed +turgid +turkey +turned +turner +turnip +turret +turtle +tushes +tusked +tussle +tutors +tutted +tuttis +tuxedo +twangs +twangy +tweaks +tweeds +tweedy +tweets +twelve +twenty +twerks +twerps +twiggy +twilit +twined +twiner +twines +twinge +twinks +twirls +twirly +twists +twisty +twitch +twofer +tycoon +typhus +typify +typing +typist +tyrant +udders +uglier +ukases +ulcers +ulster +ultimo +ultras +umbels +umbras +umiaks +umlaut +umping +umpire +unable +unbars +unbend +unbent +unbind +unbolt +unborn +uncaps +uncial +unclad +uncles +unclog +uncoil +uncool +uncork +uncurl +undies +undoes +undone +unduly +unease +uneasy +uneven +unfair +unfits +unfold +unfurl +unhand +unholy +unhook +unhurt +unions +unique +unisex +unison +united +unites +unjust +unkind +unlace +unless +unlike +unload +unlock +unmade +unmake +unmans +unmask +unpack +unpaid +unpick +unpins +unplug +unread +unreal +unreel +unrest +unripe +unroll +unruly +unsafe +unsaid +unsays +unseal +unseat +unseen +unsent +unshod +unsnap +unsold +unstop +unsung +unsure +untidy +untied +unties +untold +untrod +untrue +unused +unveil +unwary +unwell +unwind +unwise +unworn +unwrap +unyoke +unzips +upbeat +update +upends +upheld +uphill +uphold +upkeep +upland +uplift +upload +upmost +uppers +upping +uppish +uppity +uprear +uproar +uproot +upsets +upshot +upside +uptake +uptick +uptown +upturn +upward +upwind +uracil +urbane +urchin +ureter +urgent +urging +urinal +ursine +usable +usages +useful +ushers +usurer +usurps +uterus +utmost +utopia +utters +uvular +uvulas +vacant +vacate +vacuum +vagary +vagina +vaguer +vainer +vainly +valets +valise +valley +valour +valued +valuer +values +valved +valves +vamped +vandal +vanish +vanity +vanned +vaping +vapour +varied +varies +varlet +vassal +vaster +vastly +vatted +vaults +vaunts +vector +veejay +veered +vegans +vegged +vegges +veggie +veiled +veined +velars +vellum +velour +velvet +vended +vendor +veneer +venial +venous +vented +venues +verbal +verged +verger +verges +verier +verify +verily +verity +vermin +vernal +versed +verses +versos +versus +vertex +vesper +vessel +vestal +vested +vestry +vetoed +vetoes +vetted +vexing +viable +viably +viands +vicars +vicing +victim +victor +vicuna +videos +viewed +viewer +vigils +vigour +viking +vilely +vilest +vilify +villas +villus +vinous +vinyls +violas +violet +violin +vipers +virago +vireos +virgin +virile +virtue +visaed +visage +viscid +viscus +vising +vision +visits +visors +vistas +visual +vitals +vivace +vivify +vixens +vizier +vocals +vodkas +vogues +voiced +voices +voided +volley +volume +volute +vomits +voodoo +vortex +votary +voters +voting +votive +vowels +vowing +voyage +voyeur +vulgar +vulvae +wabbit +wacker +wackos +wadded +waddle +waders +wadges +wading +wafers +waffle +wafted +wagers +wagged +waggle +waging +wagons +wailed +wailer +waists +waited +waiter +waived +waiver +waives +wakens +waking +waldos +waling +walked +walker +wallah +walled +wallet +wallop +wallow +walnut +walrus +wampum +wander +wangle +waning +wanked +wanker +wanner +wanted +wanton +wapiti +warble +warded +warden +warder +warier +warily +warmed +warmer +warmly +warmth +warned +warped +warred +warren +wasabi +washed +washer +washes +wasted +waster +wastes +waters +watery +wattle +wavers +wavier +waving +waxier +waxing +waylay +wazoos +weaken +weaker +weakly +wealth +weaned +weapon +wearer +weasel +weaved +weaver +weaves +webbed +webcam +weblog +wedded +wedder +wedged +wedges +wedgie +weeded +weeder +weeing +weekly +weened +weenie +weensy +weeper +weepie +weevil +weighs +weight +weirdo +welded +welder +welkin +welled +wellie +welted +welter +wended +wetter +whacks +whaled +whaler +whales +whammy +wheals +wheels +wheeze +wheezy +whelks +whelms +whelps +whence +wheres +wherry +whiffs +whiled +whiles +whilom +whilst +whimsy +whined +whiner +whines +whinge +whinny +whirls +whirrs +whisks +whisky +whited +whiten +whiter +whites +whitey +wholes +wholly +whoops +whoosh +whores +whorls +wicked +wicker +wicket +widely +widens +widest +widget +widows +widths +wields +wiener +wienie +wifely +wigeon +wigged +wiggle +wiggly +wights +wiglet +wigwag +wigwam +wilder +wildly +wilful +wilier +wiling +willed +willow +wilted +wimped +wimple +winced +winces +winded +winder +window +windup +winery +winged +winger +winier +wining +winked +winker +winkle +winner +winnow +winter +wintry +wipers +wiping +wireds +wirier +wiring +wisdom +wisely +wisest +wished +wisher +wishes +wising +withal +withed +wither +withes +within +witted +witter +wiving +wizard +wobble +wobbly +wodges +woeful +wolfed +wolves +wombat +womble +wonder +wonted +wooded +wooden +woodsy +wooers +woofed +woofer +wooing +woolly +worded +worked +worker +workup +worlds +wormed +worsen +worsts +worthy +wotcha +woulds +wounds +wowing +wracks +wraith +wrasse +wreaks +wreath +wrecks +wrench +wrests +wretch +wright +wrings +wrists +writer +writes +writhe +wrongs +wryest +wursts +wusses +xxviii +xxxiii +xxxvii +xylene +yachts +yahoos +yakked +yammer +yanked +yapped +yarrow +yawing +yawned +yawner +yearly +yearns +yeasts +yeasty +yelled +yellow +yelped +yeoman +yeomen +yessed +yields +yipped +yippee +yobbos +yodels +yogurt +yokels +yoking +yolked +yonder +youths +yowled +yuccas +yukked +yuppie +zanier +zanies +zapped +zapper +zealot +zebras +zenith +zenned +zephyr +zeroed +zeroes +zeroth +zigzag +zinged +zinger +zinnia +zipped +zipper +zircon +zither +zlotys +zodiac +zombie +zoning +zonked +zoomed +zoster +zounds +zydeco +zygote diff --git a/pytest.ini b/pytest.ini index 3d362baf..c0f5472c 100644 --- a/pytest.ini +++ b/pytest.ini @@ -1,5 +1,5 @@ [pytest] -addopts = +xaddopts = --cov --cov-config coverage.ini --cov-report=html:htmlcov diff --git a/tests/api/test_import_export.py b/tests/api/test_import_export.py index 54050a39..0a490a39 100644 --- a/tests/api/test_import_export.py +++ b/tests/api/test_import_export.py @@ -1,10 +1,12 @@ +import csv +from io import StringIO + from flask import url_for from app import alias_utils from app.db import Session from app.import_utils import import_from_csv from app.models import ( - User, CustomDomain, Mailbox, Alias, @@ -12,15 +14,13 @@ from app.models import ( BatchImport, File, ) -from tests.utils import login +from tests.utils import login, create_new_user, random_domain, random_token def test_export(flask_client): # Create users user1 = login(flask_client) - user2 = User.create( - email="x@y.z", password="password", name="Wrong user", activated=True - ) + user2 = create_new_user() Session.commit() # Remove onboarding aliases @@ -31,44 +31,44 @@ def test_export(flask_client): Session.commit() # Create domains - CustomDomain.create( - user_id=user1.id, domain="my-destination-domain.com", verified=True + ok_domain = CustomDomain.create( + user_id=user1.id, domain=random_domain(), verified=True ) - CustomDomain.create( - user_id=user2.id, domain="bad-destionation-domain.com", verified=True + bad_domain = CustomDomain.create( + user_id=user2.id, domain=random_domain(), verified=True ) Session.commit() # Create mailboxes mailbox1 = Mailbox.create( - user_id=user1.id, email="destination@my-destination-domain.com", verified=True + user_id=user1.id, email=f"{random_token()}@{ok_domain.domain}", verified=True ) mailbox2 = Mailbox.create( - user_id=user1.id, email="destination2@my-destination-domain.com", verified=True + user_id=user1.id, email=f"{random_token()}@{ok_domain.domain}", verified=True ) badmailbox1 = Mailbox.create( user_id=user2.id, - email="baddestination@bad-destination-domain.com", + email=f"{random_token()}@{bad_domain.domain}", verified=True, ) Session.commit() # Create aliases - Alias.create( + alias1 = Alias.create( user_id=user1.id, - email="ebay@my-domain.com", + email=f"{random_token()}@my-domain.com", note="Used on eBay", mailbox_id=mailbox1.id, ) alias2 = Alias.create( user_id=user1.id, - email="facebook@my-domain.com", + email=f"{random_token()}@my-domain.com", note="Used on Facebook, Instagram.", mailbox_id=mailbox1.id, ) Alias.create( user_id=user2.id, - email="notmine@my-domain.com", + email=f"{random_token()}@my-domain.com", note="Should not appear", mailbox_id=badmailbox1.id, ) @@ -85,15 +85,21 @@ def test_export(flask_client): r = flask_client.get(url_for("api.export_aliases")) assert r.status_code == 200 assert r.mimetype == "text/csv" - assert ( - r.data - == """alias,note,enabled,mailboxes -ebay@my-domain.com,Used on eBay,True,destination@my-destination-domain.com -facebook@my-domain.com,"Used on Facebook, Instagram.",True,destination@my-destination-domain.com destination2@my-destination-domain.com -""".replace( - "\n", "\r\n" - ).encode() - ) + csv_data = csv.DictReader(StringIO(r.data.decode("utf-8"))) + found_aliases = set() + for row in csv_data: + found_aliases.add(row["alias"]) + if row["alias"] == alias1.email: + assert alias1.note == row["note"] + assert "True" == row["enabled"] + assert mailbox1.email == row["mailboxes"] + elif row["alias"] == alias2.email: + assert alias2.note == row["note"] + assert "True" == row["enabled"] + assert f"{mailbox1.email} {mailbox2.email}" == row["mailboxes"] + else: + raise AssertionError("Unknown alias") + assert set((alias1.email, alias2.email)) == found_aliases def test_import_no_mailboxes_no_domains(flask_client): diff --git a/tests/dashboard/test_custom_alias.py b/tests/dashboard/test_custom_alias.py index 35f1841c..438cfd31 100644 --- a/tests/dashboard/test_custom_alias.py +++ b/tests/dashboard/test_custom_alias.py @@ -1,3 +1,5 @@ +from random import random + from flask import url_for, g from app.alias_utils import delete_alias @@ -19,7 +21,7 @@ from app.models import ( SLDomain, ) from app.utils import random_word -from tests.utils import login, random_domain +from tests.utils import login, random_domain, create_new_user def test_add_alias_success(flask_client): @@ -27,7 +29,7 @@ def test_add_alias_success(flask_client): alias_suffix = AliasSuffix( is_custom=False, - suffix=f".12345@{EMAIL_DOMAIN}", + suffix=f".{int(random()*100000)}@{EMAIL_DOMAIN}", is_premium=False, domain=EMAIL_DOMAIN, ) @@ -44,7 +46,7 @@ def test_add_alias_success(flask_client): follow_redirects=True, ) assert r.status_code == 200 - assert f"Alias prefix.12345@{EMAIL_DOMAIN} has been created" in str(r.data) + assert f"Alias prefix{alias_suffix.suffix} has been created" in str(r.data) alias = Alias.order_by(Alias.created_at.desc()).first() assert not alias._mailboxes @@ -56,7 +58,7 @@ def test_add_alias_multiple_mailboxes(flask_client): alias_suffix = AliasSuffix( is_custom=False, - suffix=f".12345@{EMAIL_DOMAIN}", + suffix=f".{int(random()*100000)}@{EMAIL_DOMAIN}", is_premium=False, domain=EMAIL_DOMAIN, ) @@ -76,7 +78,7 @@ def test_add_alias_multiple_mailboxes(flask_client): follow_redirects=True, ) assert r.status_code == 200 - assert f"Alias prefix.12345@{EMAIL_DOMAIN} has been created" in str(r.data) + assert f"Alias prefix{alias_suffix.suffix} has been created" in str(r.data) alias = Alias.order_by(Alias.created_at.desc()).first() assert alias._mailboxes @@ -214,13 +216,7 @@ def test_add_alias_in_global_trash(flask_client): user = login(flask_client) Session.commit() - another_user = User.create( - email="a2@b.c", - password="password", - name="Test User", - activated=True, - commit=True, - ) + another_user = create_new_user() word = random_word() suffix = f".{word}@{EMAIL_DOMAIN}" @@ -237,9 +233,9 @@ def test_add_alias_in_global_trash(flask_client): commit=True, ) - assert DeletedAlias.count() == 0 + prev_deleted = DeletedAlias.count() delete_alias(alias, another_user) - assert DeletedAlias.count() == 1 + assert prev_deleted + 1 == DeletedAlias.count() # create the same alias, should return error r = flask_client.post( diff --git a/tests/test_alias_utils.py b/tests/test_alias_utils.py index 4ac200bd..9795d352 100644 --- a/tests/test_alias_utils.py +++ b/tests/test_alias_utils.py @@ -22,35 +22,27 @@ from tests.utils import create_new_user, random_domain, random_token def test_delete_alias(flask_client): user = create_new_user() - alias = Alias.create( - user_id=user.id, - email="first@d1.test", - mailbox_id=user.default_mailbox_id, - commit=True, - ) - assert Alias.get_by(email="first@d1.test") + alias = Alias.create_new_random(user) + Session.commit() + assert Alias.get_by(email=alias.email) delete_alias(alias, user) - assert Alias.get_by(email="first@d1.test") is None + assert Alias.get_by(email=alias.email) is None assert DeletedAlias.get_by(email=alias.email) def test_delete_alias_already_in_trash(flask_client): """delete an alias that's already in alias trash""" user = create_new_user() - alias = Alias.create( - user_id=user.id, - email="first@d1.test", - mailbox_id=user.default_mailbox_id, - commit=True, - ) + alias = Alias.create_new_random(user) + Session.commit() # add the alias to global trash Session.add(DeletedAlias(email=alias.email)) Session.commit() delete_alias(alias, user) - assert Alias.get_by(email="first@d1.test") is None + assert Alias.get_by(email=alias.email) is None def test_check_alias_prefix(flask_client): diff --git a/tests/test_email_handler.py b/tests/test_email_handler.py index ab1877c8..c2a488f2 100644 --- a/tests/test_email_handler.py +++ b/tests/test_email_handler.py @@ -31,12 +31,8 @@ from tests.utils import load_eml_file, create_new_user def test_get_mailbox_from_mail_from(flask_client): user = create_new_user() - alias = Alias.create( - user_id=user.id, - email="first@d1.test", - mailbox_id=user.default_mailbox_id, - commit=True, - ) + alias = Alias.create_new_random(user) + Session.commit() mb = get_mailbox_from_mail_from(user.email, alias) assert mb.email == user.email