From 978aa4af1b4a8753d0cd04f7fcceaf6d899bca79 Mon Sep 17 00:00:00 2001 From: Neil Smith Date: Wed, 15 Jun 2022 11:44:00 +0100 Subject: [PATCH] General updates --- honeycomb-bits-unpartitioned.hs | 120 + honeycomb-bits.hs | 120 + honeycomb-unpartitioned.hs | 85 + honeycomb.hs | 67 +- honeycomb_puzzle.ipynb | 707 +- honeycomb_puzzle.py | 161 +- honeycomb_puzzle_bits.ipynb | 424 + honeycomb_puzzle_bits.py | 162 + pangaram_words.txt | 14741 ++++++++++++++++++++++++++++++ 9 files changed, 15872 insertions(+), 715 deletions(-) create mode 100644 honeycomb-bits-unpartitioned.hs create mode 100644 honeycomb-bits.hs create mode 100644 honeycomb-unpartitioned.hs create mode 100644 honeycomb_puzzle_bits.ipynb create mode 100644 honeycomb_puzzle_bits.py create mode 100644 pangaram_words.txt diff --git a/honeycomb-bits-unpartitioned.hs b/honeycomb-bits-unpartitioned.hs new file mode 100644 index 0000000..5bff91a --- /dev/null +++ b/honeycomb-bits-unpartitioned.hs @@ -0,0 +1,120 @@ +import qualified Data.Set as S +import qualified Data.Map.Strict as M +import Data.Map.Strict ((!)) +import Data.List +import Data.Word +import Data.Bits +-- import Data.Function + +type LetterSet = Word32 +type WordSet = M.Map LetterSet (S.Set String) +type ScoredSet = M.Map LetterSet Int +type PartitionedScoredSet = M.Map LetterSet ScoredSet + +data Honeycomb = Honeycomb LetterSet LetterSet + -- deriving (Show, Eq, Ord) + deriving (Eq, Ord) + +instance Show Honeycomb where + show (Honeycomb m ls) = "Honeycomb " ++ (show $ decode m) ++ " | " ++ (show $ decode ls) + +main = do + allWords <- readFile "enable1.txt" + let validWords = [w | w <- words allWords, + length w >= 4, + (S.size $ S.fromList w) <= 7, + 's' `notElem` w] + let wordSets = mkWordSets validWords + -- let scoredSets = M.mapWithKey (\ls _ -> scoreLetterSet wordSets ls) wordSets + let scoredSets = M.mapWithKey scoreLetterSet wordSets + let partScoredSets = mkPartitionedScoredSets scoredSets + -- let pangramSets = S.filter (\k -> (S.size k == 7) && (not ('s' `S.member` k))) $ M.keysSet scoredSets + let pangramSets = S.filter ((7 == ) . popCount) $ M.keysSet scoredSets + let plausibleHoneycombs = mkPlausibleHoneycombs pangramSets + -- this takes 6 minutes to execute + -- let bestHoneycomb = maximumBy (compare `on` (scoreHoneycombP partScoredSets)) + -- (S.toList plausibleHoneycombs) + + -- this takes 2 minutes to execute + let bestHoneycomb = findBestHoneycomb scoredSets plausibleHoneycombs + print bestHoneycomb + + +encode :: String -> LetterSet +encode letters = foldl' encodeLetter zeroBits ['a' .. 'z'] + where encodeLetter w l + | l `elem` letters = setBit (shift w 1) 0 + | otherwise = shift w 1 + +decode :: LetterSet -> S.Set Char +-- decode letterSet = S.filter present $ S.fromList ['a' .. 'z'] +-- where present l = (encode [l] .&. letterSet) > 0 +decode letterSet = S.fromList $ filter present ['a' .. 'z'] + where present c = testBit letterSet $ negate (fromEnum c - fromEnum 'z') + +(⊂) :: LetterSet -> LetterSet -> Bool +(⊂) this that = (this .&. that == this) + +mkWordSets :: [String] -> WordSet +mkWordSets = foldr addWord M.empty + where addWord w = M.insertWith S.union (encode w) (S.singleton w) + +present :: LetterSet -> Honeycomb -> Bool +present target (Honeycomb mandatory letters) = + -- (mandatory .&. target == mandatory) && (target .&. letters == target) + mandatory ⊂ target && target ⊂ letters + +-- scoreLetterSet :: WordSet -> LetterSet -> Int +-- scoreLetterSet wordSets letterSet = bonus + (sum $ fmap scoreAWord (S.toList scoringWords)) +-- where scoringWords = wordSets ! letterSet +-- scoreAWord w = if length w == 4 then 1 else length w +-- bonus = if (S.size letterSet) == 7 then (S.size scoringWords) * 7 else 0 +scoreLetterSet :: LetterSet -> S.Set String -> Int +-- scoreLetterSet letterSet scoringWords = bonus + (sum $ fmap scoreAWord (S.toAscList scoringWords)) +scoreLetterSet letterSet scoringWords = bonus + (S.foldr' (\w t -> t + scoreAWord w) 0 scoringWords) + where scoreAWord w + | length w == 4 = 1 + | otherwise = length w + bonus = if (popCount letterSet) == 7 then (S.size scoringWords) * 7 else 0 + +mkPartitionedScoredSets scoredSets = M.fromList [(encode [c], scoreSetWithLetter $ encode [c]) | c <- ['a'..'z']] + where scoreSetWithLetter c = M.filterWithKey (\k _ -> (c .&. k) == c) scoredSets + + +scoreHoneycombSeparate, scoreHoneycomb :: ScoredSet -> Honeycomb -> Int +scoreHoneycombSeparate scoredSets honeycomb = sum(validScores) + where inHoneycomb = M.filterWithKey (\k _ -> present k honeycomb) scoredSets + validScores = M.elems inHoneycomb +scoreHoneycomb scoredSets honeycomb = M.foldrWithKey scoreLetters 0 scoredSets + where scoreLetters letters score total + | present letters honeycomb = score + total + | otherwise = total + + + +scoreHoneycombP :: PartitionedScoredSet -> Honeycomb -> Int +-- scoreHoneycombP scoredSets (Honeycomb mandatory letters) = sum validScores +-- where hasMand = scoredSets ! mandatory +-- hasLetters = M.filterWithKey (\k _ -> k `S.⊂` letters) hasMand +-- validScores = M.elems hasLetters +scoreHoneycombP scoredSets (Honeycomb mandatory letters) = + M.foldrWithKey scoreLetters 0 (scoredSets ! mandatory) + where scoreLetters ls score total + -- | (ls .&. letters) == ls = score + total + | ls ⊂ letters = score + total + | otherwise = total + +mkPlausibleHoneycombs :: S.Set LetterSet -> S.Set Honeycomb +mkPlausibleHoneycombs pangramSets = S.foldr S.union S.empty honeycombSets + where honeycombSets = S.map honeycombsOfLetters pangramSets + honeycombsOfLetters ls = S.map (\l -> Honeycomb (encode [l]) ls) $ decode ls + + +findBestHoneycomb scoredSets honeycombs = + S.foldr (betterHc scoredSets) (0, initHc) honeycombs + where initHc = Honeycomb (encode "a") (encode "a") + +betterHc scoredSets hc (bestScore, bestHc) + | thisScore > bestScore = (thisScore, hc) + | otherwise = (bestScore, bestHc) + where thisScore = scoreHoneycomb scoredSets hc diff --git a/honeycomb-bits.hs b/honeycomb-bits.hs new file mode 100644 index 0000000..7e27dea --- /dev/null +++ b/honeycomb-bits.hs @@ -0,0 +1,120 @@ +import qualified Data.Set as S +import qualified Data.Map.Strict as M +import Data.Map.Strict ((!)) +import Data.List +import Data.Word +import Data.Bits +-- import Data.Function + +type LetterSet = Word32 +type WordSet = M.Map LetterSet (S.Set String) +type ScoredSet = M.Map LetterSet Int +type PartitionedScoredSet = M.Map LetterSet ScoredSet + +data Honeycomb = Honeycomb LetterSet LetterSet + -- deriving (Show, Eq, Ord) + deriving (Eq, Ord) + +instance Show Honeycomb where + show (Honeycomb m ls) = "Honeycomb " ++ (show $ decode m) ++ " | " ++ (show $ decode ls) + +main = do + allWords <- readFile "enable1.txt" + let validWords = [w | w <- words allWords, + length w >= 4, + (S.size $ S.fromList w) <= 7, + 's' `notElem` w] + let wordSets = mkWordSets validWords + -- let scoredSets = M.mapWithKey (\ls _ -> scoreLetterSet wordSets ls) wordSets + let scoredSets = M.mapWithKey scoreLetterSet wordSets + let partScoredSets = mkPartitionedScoredSets scoredSets + -- let pangramSets = S.filter (\k -> (S.size k == 7) && (not ('s' `S.member` k))) $ M.keysSet scoredSets + let pangramSets = S.filter ((7 == ) . popCount) $ M.keysSet scoredSets + let plausibleHoneycombs = mkPlausibleHoneycombs pangramSets + -- this takes 6 minutes to execute + -- let bestHoneycomb = maximumBy (compare `on` (scoreHoneycombP partScoredSets)) + -- (S.toList plausibleHoneycombs) + + -- this takes 2 minutes to execute + let bestHoneycomb = findBestHoneycomb partScoredSets plausibleHoneycombs + print bestHoneycomb + + +encode :: String -> LetterSet +encode letters = foldl' encodeLetter zeroBits ['a' .. 'z'] + where encodeLetter w l + | l `elem` letters = setBit (shift w 1) 0 + | otherwise = shift w 1 + +decode :: LetterSet -> S.Set Char +-- decode letterSet = S.filter present $ S.fromList ['a' .. 'z'] +-- where present l = (encode [l] .&. letterSet) > 0 +decode letterSet = S.fromList $ filter present ['a' .. 'z'] + where present c = testBit letterSet $ negate (fromEnum c - fromEnum 'z') + +(⊂) :: LetterSet -> LetterSet -> Bool +(⊂) this that = (this .&. that == this) + +mkWordSets :: [String] -> WordSet +mkWordSets = foldr addWord M.empty + where addWord w = M.insertWith S.union (encode w) (S.singleton w) + +present :: LetterSet -> Honeycomb -> Bool +present target (Honeycomb mandatory letters) = + -- (mandatory .&. target == mandatory) && (target .&. letters == target) + mandatory ⊂ target && target ⊂ letters + +-- scoreLetterSet :: WordSet -> LetterSet -> Int +-- scoreLetterSet wordSets letterSet = bonus + (sum $ fmap scoreAWord (S.toList scoringWords)) +-- where scoringWords = wordSets ! letterSet +-- scoreAWord w = if length w == 4 then 1 else length w +-- bonus = if (S.size letterSet) == 7 then (S.size scoringWords) * 7 else 0 +scoreLetterSet :: LetterSet -> S.Set String -> Int +-- scoreLetterSet letterSet scoringWords = bonus + (sum $ fmap scoreAWord (S.toAscList scoringWords)) +scoreLetterSet letterSet scoringWords = bonus + (S.foldr' (\w t -> t + scoreAWord w) 0 scoringWords) + where scoreAWord w + | length w == 4 = 1 + | otherwise = length w + bonus = if (popCount letterSet) == 7 then (S.size scoringWords) * 7 else 0 + +mkPartitionedScoredSets scoredSets = M.fromList [(encode [c], scoreSetWithLetter $ encode [c]) | c <- ['a'..'z']] + where scoreSetWithLetter c = M.filterWithKey (\k _ -> (c .&. k) == c) scoredSets + + +scoreHoneycombSeparate, scoreHoneycomb :: ScoredSet -> Honeycomb -> Int +scoreHoneycombSeparate scoredSets honeycomb = sum(validScores) + where inHoneycomb = M.filterWithKey (\k _ -> present k honeycomb) scoredSets + validScores = M.elems inHoneycomb +scoreHoneycomb scoredSets honeycomb = M.foldrWithKey scoreLetters 0 scoredSets + where scoreLetters letters score total + | present letters honeycomb = score + total + | otherwise = total + + + +scoreHoneycombP :: PartitionedScoredSet -> Honeycomb -> Int +-- scoreHoneycombP scoredSets (Honeycomb mandatory letters) = sum validScores +-- where hasMand = scoredSets ! mandatory +-- hasLetters = M.filterWithKey (\k _ -> k `S.isSubsetOf` letters) hasMand +-- validScores = M.elems hasLetters +scoreHoneycombP scoredSets (Honeycomb mandatory letters) = + M.foldrWithKey scoreLetters 0 (scoredSets ! mandatory) + where scoreLetters ls score total + -- | (ls .&. letters) == ls = score + total + | ls ⊂ letters = score + total + | otherwise = total + +mkPlausibleHoneycombs :: S.Set LetterSet -> S.Set Honeycomb +mkPlausibleHoneycombs pangramSets = S.foldr S.union S.empty honeycombSets + where honeycombSets = S.map honeycombsOfLetters pangramSets + honeycombsOfLetters ls = S.map (\l -> Honeycomb (encode [l]) ls) $ decode ls + + +findBestHoneycomb partScoredSets honeycombs = + S.foldr (betterHc partScoredSets) (0, initHc) honeycombs + where initHc = Honeycomb (encode "a") (encode "a") + +betterHc partScoredSets hc (bestScore, bestHc) + | thisScore > bestScore = (thisScore, hc) + | otherwise = (bestScore, bestHc) + where thisScore = scoreHoneycombP partScoredSets hc diff --git a/honeycomb-unpartitioned.hs b/honeycomb-unpartitioned.hs new file mode 100644 index 0000000..95f464d --- /dev/null +++ b/honeycomb-unpartitioned.hs @@ -0,0 +1,85 @@ +import qualified Data.Set as S +import qualified Data.Map.Strict as M +import Data.Map.Strict ((!)) +import Data.List +-- import Data.Function + +type LetterSet = S.Set Char +type WordSet = M.Map LetterSet (S.Set String) +type ScoredSet = M.Map LetterSet Int +type PartitionedScoredSet = M.Map Char ScoredSet + +data Honeycomb = Honeycomb Char LetterSet + deriving (Show, Eq, Ord) + +main = do + allWords <- readFile "enable1.txt" + let validWords = [w | w <- words allWords, + length w >= 4, + (S.size $ S.fromList w) <= 7, + 's' `notElem` w] + let wordSets = mkWordSets validWords + -- let scoredSets = M.mapWithKey (\ls _ -> scoreLetterSet wordSets ls) wordSets + let scoredSets = M.mapWithKey scoreLetterSet wordSets + let partScoredSets = mkPartitionedScoredSets scoredSets + -- let pangramSets = S.filter (\k -> (S.size k == 7) && (not ('s' `S.member` k))) $ M.keysSet scoredSets + let pangramSets = S.filter ((7 == ) . S.size) $ M.keysSet scoredSets + let plausibleHoneycombs = mkPlausibleHoneycombs pangramSets + -- this takes 6 minutes to execute + -- let bestHoneycomb = maximumBy (compare `on` (scoreHoneycombP partScoredSets)) + -- (S.toList plausibleHoneycombs) + + -- this takes 2 minutes to execute + let bestHoneycomb = findBestHoneycomb scoredSets plausibleHoneycombs + print bestHoneycomb + + +mkWordSets :: [String] -> WordSet +mkWordSets = foldr addWord M.empty + where addWord w = M.insertWith S.union (S.fromList w) (S.singleton w) + +present :: LetterSet -> Honeycomb -> Bool +present target (Honeycomb mandatory letters) = + (mandatory `S.member` target) && ({-# SCC "present_subset" #-} target `S.isSubsetOf` letters) + +-- scoreLetterSet :: WordSet -> LetterSet -> Int +-- scoreLetterSet wordSets letterSet = bonus + (sum $ fmap scoreAWord (S.toList scoringWords)) +-- where scoringWords = wordSets ! letterSet +-- scoreAWord w = if length w == 4 then 1 else length w +-- bonus = if (S.size letterSet) == 7 then (S.size scoringWords) * 7 else 0 +scoreLetterSet :: LetterSet -> S.Set String -> Int +-- scoreLetterSet letterSet scoringWords = bonus + (sum $ fmap scoreAWord (S.toAscList scoringWords)) +scoreLetterSet letterSet scoringWords = bonus + (S.foldr' (\w t -> t + scoreAWord w) 0 scoringWords) + where scoreAWord w + | length w == 4 = 1 + | otherwise = length w + bonus = if (S.size letterSet) == 7 then (S.size scoringWords) * 7 else 0 + +mkPartitionedScoredSets scoredSets = M.fromList [(c, scoreSetWithLetter c) | c <- ['a'..'z']] + where scoreSetWithLetter c = M.filterWithKey (\k _ -> c `S.member` k) scoredSets + + +scoreHoneycombSeparate, scoreHoneycomb :: ScoredSet -> Honeycomb -> Int +scoreHoneycombSeparate scoredSets honeycomb = sum(validScores) + where inHoneycomb = M.filterWithKey (\k _ -> present k honeycomb) scoredSets + validScores = M.elems inHoneycomb +scoreHoneycomb scoredSets honeycomb = M.foldrWithKey scoreLetters 0 scoredSets + where scoreLetters letters score total + | present letters honeycomb = score + total + | otherwise = total + + +mkPlausibleHoneycombs :: S.Set LetterSet -> S.Set Honeycomb +mkPlausibleHoneycombs pangramSets = S.foldr S.union S.empty honeycombSets + where honeycombSets = S.map honeycombsOfLetters pangramSets + honeycombsOfLetters ls = S.map (\l -> Honeycomb l ls) ls + + +findBestHoneycomb scoredSets honeycombs = + S.foldr (betterHc scoredSets) (0, initHc) honeycombs + where initHc = Honeycomb 'a' $ S.singleton 'a' + +betterHc scoredSets hc (bestScore, bestHc) + | thisScore > bestScore = (thisScore, hc) + | otherwise = (bestScore, bestHc) + where thisScore = scoreHoneycomb scoredSets hc diff --git a/honeycomb.hs b/honeycomb.hs index 84b6f0e..404fc57 100644 --- a/honeycomb.hs +++ b/honeycomb.hs @@ -2,7 +2,7 @@ import qualified Data.Set as S import qualified Data.Map.Strict as M import Data.Map.Strict ((!)) import Data.List -import Data.Function +-- import Data.Function type LetterSet = S.Set Char type WordSet = M.Map LetterSet (S.Set String) @@ -13,15 +13,17 @@ data Honeycomb = Honeycomb Char LetterSet deriving (Show, Eq, Ord) main = do - lines <- readFile "enable1.txt" - let allWords = [w | w <- words lines, + allWords <- readFile "enable1.txt" + let validWords = [w | w <- words allWords, length w >= 4, (S.size $ S.fromList w) <= 7, 's' `notElem` w] - let wordSets = mkWordSets allWords - let scoredSets = M.mapWithKey (\ls _ -> scoreLetterSet wordSets ls) wordSets + let wordSets = mkWordSets validWords + -- let scoredSets = M.mapWithKey (\ls _ -> scoreLetterSet wordSets ls) wordSets + let scoredSets = M.mapWithKey scoreLetterSet wordSets let partScoredSets = mkPartitionedScoredSets scoredSets - let pangramSets = S.filter (\k -> (S.size k == 7) && (not ('s' `S.member` k))) $ M.keysSet scoredSets + -- let pangramSets = S.filter (\k -> (S.size k == 7) && (not ('s' `S.member` k))) $ M.keysSet scoredSets + let pangramSets = S.filter ((7 == ) . S.size) $ M.keysSet scoredSets let plausibleHoneycombs = mkPlausibleHoneycombs pangramSets -- this takes 6 minutes to execute -- let bestHoneycomb = maximumBy (compare `on` (scoreHoneycombP partScoredSets)) @@ -33,33 +35,51 @@ main = do mkWordSets :: [String] -> WordSet -mkWordSets ws = foldr addWord M.empty ws +mkWordSets = foldr addWord M.empty where addWord w = M.insertWith S.union (S.fromList w) (S.singleton w) present :: LetterSet -> Honeycomb -> Bool present target (Honeycomb mandatory letters) = (mandatory `S.member` target) && (target `S.isSubsetOf` letters) -scoreLetterSet :: WordSet -> LetterSet -> Int -scoreLetterSet wordSets letterSet = bonus + (sum $ fmap scoreAWord (S.toList scoringWords)) - where scoringWords = wordSets ! letterSet - scoreAWord w = if length w == 4 then 1 else length w +-- scoreLetterSet :: WordSet -> LetterSet -> Int +-- scoreLetterSet wordSets letterSet = bonus + (sum $ fmap scoreAWord (S.toList scoringWords)) +-- where scoringWords = wordSets ! letterSet +-- scoreAWord w = if length w == 4 then 1 else length w +-- bonus = if (S.size letterSet) == 7 then (S.size scoringWords) * 7 else 0 +scoreLetterSet :: LetterSet -> S.Set String -> Int +-- scoreLetterSet letterSet scoringWords = bonus + (sum $ fmap scoreAWord (S.toAscList scoringWords)) +scoreLetterSet letterSet scoringWords = bonus + (S.foldr' (\w t -> t + scoreAWord w) 0 scoringWords) + where scoreAWord w + | length w == 4 = 1 + | otherwise = length w bonus = if (S.size letterSet) == 7 then (S.size scoringWords) * 7 else 0 mkPartitionedScoredSets scoredSets = M.fromList [(c, scoreSetWithLetter c) | c <- ['a'..'z']] where scoreSetWithLetter c = M.filterWithKey (\k _ -> c `S.member` k) scoredSets -scoreHoneycomb :: ScoredSet -> Honeycomb -> Int -scoreHoneycomb scoredSets (Honeycomb mandatory letters) = sum(validScores) - where hasMand = M.filterWithKey (\k _ -> mandatory `S.member` k) scoredSets - hasLetters = M.filterWithKey (\k _ -> k `S.isSubsetOf` letters) hasMand - validScores = M.elems hasLetters + +scoreHoneycombSeparate, scoreHoneycomb :: ScoredSet -> Honeycomb -> Int +scoreHoneycombSeparate scoredSets honeycomb = sum(validScores) + where inHoneycomb = M.filterWithKey (\k _ -> present k honeycomb) scoredSets + validScores = M.elems inHoneycomb +scoreHoneycomb scoredSets honeycomb = M.foldrWithKey scoreLetters 0 scoredSets + where scoreLetters letters score total + | present letters honeycomb = score + total + | otherwise = total + + scoreHoneycombP :: PartitionedScoredSet -> Honeycomb -> Int -scoreHoneycombP scoredSets (Honeycomb mandatory letters) = sum(validScores) - where hasMand = scoredSets ! mandatory - hasLetters = M.filterWithKey (\k _ -> k `S.isSubsetOf` letters) hasMand - validScores = M.elems hasLetters +-- scoreHoneycombP scoredSets (Honeycomb mandatory letters) = sum validScores +-- where hasMand = scoredSets ! mandatory +-- hasLetters = M.filterWithKey (\k _ -> k `S.isSubsetOf` letters) hasMand +-- validScores = M.elems hasLetters +scoreHoneycombP scoredSets (Honeycomb mandatory letters) = + M.foldrWithKey scoreLetters 0 (scoredSets ! mandatory) + where scoreLetters ls score total + | ls `S.isSubsetOf` letters = score + total + | otherwise = total mkPlausibleHoneycombs :: S.Set LetterSet -> S.Set Honeycomb mkPlausibleHoneycombs pangramSets = S.foldr S.union S.empty honeycombSets @@ -71,8 +91,7 @@ findBestHoneycomb partScoredSets honeycombs = S.foldr (betterHc partScoredSets) (0, initHc) honeycombs where initHc = Honeycomb 'a' $ S.singleton 'a' -betterHc partScoredSets hc (bestScore, bestHc) = - if thisScore > bestScore - then (thisScore, hc) - else (bestScore, bestHc) +betterHc partScoredSets hc (bestScore, bestHc) + | thisScore > bestScore = (thisScore, hc) + | otherwise = (bestScore, bestHc) where thisScore = scoreHoneycombP partScoredSets hc diff --git a/honeycomb_puzzle.ipynb b/honeycomb_puzzle.ipynb index 88e69cb..2daf2b2 100644 --- a/honeycomb_puzzle.ipynb +++ b/honeycomb_puzzle.ipynb @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 45, "id": "6f6fa3e7", "metadata": {}, "outputs": [], @@ -19,67 +19,13 @@ "import string\n", "import collections\n", "from dataclasses import dataclass\n", - "import itertools" + "import itertools\n", + "import cProfile" ] }, { "cell_type": "code", - "execution_count": 2, - "id": "7f00bc22", - "metadata": {}, - "outputs": [], - "source": [ - "def only_letters(text):\n", - " return ''.join([c.lower() for c in text if c in string.ascii_letters])" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "cb0b4230", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'hello'" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "only_letters('Hell!o')" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "9546868c", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "101924" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "with open('/usr/share/dict/british-english') as f:\n", - " words = [line.rstrip() for line in f]\n", - "len(words)" - ] - }, - { - "cell_type": "code", - "execution_count": 79, + "execution_count": 5, "id": "88f00e4c", "metadata": {}, "outputs": [ @@ -89,55 +35,32 @@ "172820" ] }, - "execution_count": 79, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "with open('enable1.txt') as f:\n", - " words = [line.rstrip() for line in f]\n", - "len(words)" + " words = [line.strip() for line in f]" ] }, { "cell_type": "code", - "execution_count": 80, + "execution_count": 6, "id": "1e75fba2", "metadata": {}, "outputs": [], "source": [ - "words = set(only_letters(w) \n", - " for w in words \n", - " if len(only_letters(w)) >= 4\n", - " if len(frozenset(only_letters(w))) <= 7\n", + "words = set(w for w in words \n", + " if len(w) >= 4\n", + " if len(frozenset(w)) <= 7\n", " if 's' not in w)" ] }, { "cell_type": "code", - "execution_count": 81, - "id": "49473123", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "44585" - ] - }, - "execution_count": 81, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "len(words)" - ] - }, - { - "cell_type": "code", - "execution_count": 82, + "execution_count": 8, "id": "e1f9b35e", "metadata": {}, "outputs": [ @@ -147,7 +70,7 @@ "21661" ] }, - "execution_count": 82, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -156,34 +79,12 @@ "word_sets = collections.defaultdict(set)\n", "for w in words:\n", " letters = frozenset(w)\n", - " word_sets[letters].add(w)\n", - "len(word_sets)" + " word_sets[letters].add(w)" ] }, { "cell_type": "code", - "execution_count": 86, - "id": "63121d2b", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'elephant', 'naphthalene', 'pentathlete'}" - ] - }, - "execution_count": 86, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "word_sets[frozenset('elephant')]" - ] - }, - { - "cell_type": "code", - "execution_count": 87, + "execution_count": 11, "id": "267130ba", "metadata": {}, "outputs": [], @@ -199,128 +100,20 @@ }, { "cell_type": "code", - "execution_count": 88, - "id": "0ca00165", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "g|aelmpx" - ] - }, - "execution_count": 88, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "honeycomb = Honeycomb(mandatory='g', letters=frozenset('apxmelg'))\n", - "honeycomb" - ] - }, - { - "cell_type": "code", - "execution_count": 89, + "execution_count": 13, "id": "bb848e88", "metadata": {}, "outputs": [], "source": [ - "def present(honeycomb, target):\n", - " return (honeycomb.mandatory in target) and target.issubset(honeycomb.letters)" - ] - }, - { - "cell_type": "code", - "execution_count": 90, - "id": "add4f445", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "14" - ] - }, - "execution_count": 90, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "present_sets = [s for s in word_sets if present(honeycomb, s)]\n", - "len(present_sets)" - ] - }, - { - "cell_type": "code", - "execution_count": 91, - "id": "3354f6d7", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[frozenset({'a', 'e', 'g', 'p'}),\n", - " frozenset({'a', 'e', 'g', 'm'}),\n", - " frozenset({'a', 'g', 'm'}),\n", - " frozenset({'a', 'e', 'g', 'l', 'p'}),\n", - " frozenset({'a', 'e', 'g', 'l'}),\n", - " frozenset({'a', 'e', 'g'}),\n", - " frozenset({'a', 'g', 'l'}),\n", - " frozenset({'a', 'g', 'l', 'm'}),\n", - " frozenset({'a', 'e', 'g', 'l', 'm'}),\n", - " frozenset({'a', 'g'}),\n", - " frozenset({'a', 'g', 'l', 'x'}),\n", - " frozenset({'e', 'g', 'l'}),\n", - " frozenset({'a', 'g', 'l', 'p'}),\n", - " frozenset({'a', 'g', 'm', 'p'})]" - ] - }, - "execution_count": 91, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "present_sets" + "def present(target, honeycomb):\n", + " return ( (honeycomb.mandatory in target) \n", + " and target.issubset(honeycomb.letters)\n", + " )" ] }, { "cell_type": "code", - "execution_count": 92, - "id": "2e85ce06", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'peag', 'agapae', 'peage', 'gape', 'agape', 'page'}\n", - "{'game', 'gemmae', 'mage', 'gemma'}\n", - "{'magma', 'agma', 'agama', 'gamma', 'gama'}\n", - "{'pelage', 'plage'}\n", - "{'eagle', 'algae', 'galeae', 'aglee', 'allege', 'legal', 'galea', 'gale', 'gaggle', 'egal'}\n", - "{'gage', 'agee'}\n", - "{'gala', 'gall', 'alga', 'algal'}\n", - "{'amalgam'}\n", - "{'agleam', 'gleam'}\n", - "{'gaga'}\n", - "{'galax'}\n", - "{'glee', 'gelee', 'gleg'}\n", - "{'plagal'}\n", - "{'gamp'}\n" - ] - } - ], - "source": [ - "for s in present_sets:\n", - " print(word_sets[s])" - ] - }, - { - "cell_type": "code", - "execution_count": 93, + "execution_count": 17, "id": "3c6f212e", "metadata": {}, "outputs": [], @@ -339,345 +132,81 @@ }, { "cell_type": "code", - "execution_count": 94, - "id": "01c3743c", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "153" - ] - }, - "execution_count": 94, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "sum(score(present_set) for present_set in present_sets)" - ] - }, - { - "cell_type": "code", - "execution_count": 95, - "id": "1f45f6f5", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "False" - ] - }, - "execution_count": 95, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "set('megaplex') in words" - ] - }, - { - "cell_type": "code", - "execution_count": 96, - "id": "979d9ed5", - "metadata": {}, - "outputs": [], - "source": [ - "scored_sets = {s: score(s) for s in word_sets}" - ] - }, - { - "cell_type": "code", - "execution_count": 97, - "id": "790b7303", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "frozenset({'e', 'a', 'p', 'g'}) {'peag', 'agapae', 'peage', 'gape', 'agape', 'page'} 19 19\n", - "frozenset({'m', 'a', 'e', 'g'}) {'game', 'gemmae', 'mage', 'gemma'} 13 13\n", - "frozenset({'m', 'a', 'g'}) {'magma', 'agma', 'agama', 'gamma', 'gama'} 17 17\n", - "frozenset({'p', 'l', 'a', 'g', 'e'}) {'pelage', 'plage'} 11 11\n", - "frozenset({'a', 'l', 'e', 'g'}) {'eagle', 'algae', 'galeae', 'aglee', 'allege', 'legal', 'galea', 'gale', 'gaggle', 'egal'} 45 45\n", - "frozenset({'a', 'e', 'g'}) {'gage', 'agee'} 2 2\n", - "frozenset({'a', 'l', 'g'}) {'gala', 'gall', 'alga', 'algal'} 8 8\n", - "frozenset({'m', 'a', 'l', 'g'}) {'amalgam'} 7 7\n", - "frozenset({'m', 'a', 'l', 'g', 'e'}) {'agleam', 'gleam'} 11 11\n", - "frozenset({'a', 'g'}) {'gaga'} 1 1\n", - "frozenset({'a', 'l', 'x', 'g'}) {'galax'} 5 5\n", - "frozenset({'l', 'e', 'g'}) {'glee', 'gelee', 'gleg'} 7 7\n", - "frozenset({'l', 'a', 'p', 'g'}) {'plagal'} 6 6\n", - "frozenset({'m', 'a', 'p', 'g'}) {'gamp'} 1 1\n" - ] - } - ], - "source": [ - "for s in present_sets:\n", - " print(s, word_sets[s], score(s), scored_sets[s])" - ] - }, - { - "cell_type": "code", - "execution_count": 98, + "execution_count": 22, "id": "78d423a5", "metadata": {}, "outputs": [], "source": [ "def score_honeycomb(honeycomb):\n", " return sum(sc for letters, sc in scored_sets.items() \n", - " if honeycomb.mandatory in letters\n", - " if letters.issubset(honeycomb.letters)\n", - "# if present(honeycomb, letters)\n", + " # if honeycomb.mandatory in letters\n", + " # if letters.issubset(honeycomb.letters)\n", + " if present(letters, honeycomb)\n", " )" ] }, { "cell_type": "code", - "execution_count": 99, - "id": "3c7c7a83", + "execution_count": 30, + "id": "febee1c1", "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "153" - ] - }, - "execution_count": 99, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + "pangram sets: 7986\n" + ] } ], "source": [ - "score_honeycomb(honeycomb)" - ] - }, - { - "cell_type": "code", - "execution_count": 100, - "id": "d53c4d64", - "metadata": {}, - "outputs": [], - "source": [ - "# hcs = []\n", - "\n", - "# for mand in 'abcde':\n", - "# remaining = set('abcde') - set(mand)\n", - "# for others in itertools.combinations(remaining, r=3):\n", - "# hcs.append(Honeycomb(mandatory=mand, letters=frozenset(others) | frozenset(mand)))\n", - "\n", - "# print(len(hcs))" - ] - }, - { - "cell_type": "code", - "execution_count": 101, - "id": "d967a3df", - "metadata": {}, - "outputs": [], - "source": [ - "# hcs" - ] - }, - { - "cell_type": "code", - "execution_count": 102, - "id": "4a07a6b7", - "metadata": {}, - "outputs": [], - "source": [ - "# honeycombs = []\n", - "\n", - "# for mand in string.ascii_lowercase:\n", - "# remaining = set(string.ascii_lowercase) - set(mand)\n", - "# for others in itertools.combinations(remaining, r=6):\n", - "# honeycombs.append(Honeycomb(mandatory=mand, letters=frozenset(others) | frozenset(mand)))\n", - "\n", - "# print(len(honeycombs))" - ] - }, - { - "cell_type": "code", - "execution_count": 103, - "id": "14c38054", - "metadata": {}, - "outputs": [], - "source": [ - "# honeycombs = []\n", - "\n", - "# candidate_letters = set(string.ascii_lowercase)\n", - "# candidate_letters.remove('s')\n", - "# candidate_letters = frozenset(candidate_letters)\n", - "\n", - "# for mand in candidate_letters:\n", - "# remaining = candidate_letters - set(mand)\n", - "# for others in itertools.combinations(remaining, r=6):\n", - "# honeycombs.append(Honeycomb(mandatory=mand, letters=frozenset(others) | frozenset(mand)))\n", - "\n", - "# print(len(honeycombs))" - ] - }, - { - "cell_type": "code", - "execution_count": 104, - "id": "f8ea5307", - "metadata": {}, - "outputs": [], - "source": [ - "# [(h, score_honeycomb(h)) for h in honeycombs[:5]]" + "pangram_sets = [s for s in word_sets.keys() if len(s) == 7 if 's' not in s]\n", + "print(\"pangram sets:\", len(pangram_sets))" ] }, { "cell_type": "code", - "execution_count": 105, - "id": "4f2118dc", + "execution_count": 31, + "id": "54a06bdf", "metadata": {}, "outputs": [], "source": [ - "# %%timeit\n", - "# max(honeycombs, key=score_honeycomb)" + "with open('pangaram_words.txt', 'w') as f:\n", + " for s in pangram_sets:\n", + " for w in word_sets[s]:\n", + " f.write(f'{w}\\n')" ] }, { "cell_type": "code", - "execution_count": 106, - "id": "febee1c1", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "7986" - ] - }, - "execution_count": 106, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pangram_sets = [s for s in word_sets.keys() if len(s) == 7 if 's' not in s]\n", - "len(pangram_sets)" - ] - }, - { - "cell_type": "code", - "execution_count": 107, - "id": "54a06bdf", + "execution_count": 32, + "id": "007d3404", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "55902\n" + "55902 honeycombs\n" ] } ], "source": [ - "ps_honeycombs = []\n", + "# ps_honeycombs = []\n", "\n", - "for ps in pangram_sets:\n", - " for mand in ps:\n", - " ps_honeycombs.append(Honeycomb(mandatory=mand, letters=ps))\n", + "# for ps in pangram_sets:\n", + "# for mand in ps:\n", + "# ps_honeycombs.append(Honeycomb(mandatory=mand, letters=ps))\n", "\n", - "print(len(ps_honeycombs))" + "ps_honeycombs = [Honeycomb(mandatory=mand, letters=ps) \n", + " for ps in pangram_sets\n", + " for mand in ps]\n", + "print(len(ps_honeycombs), \"honeycombs\")" ] }, { "cell_type": "code", - "execution_count": 108, - "id": "301b3cd0", - "metadata": {}, - "outputs": [], - "source": [ - "# %%timeit\n", - "# max(ps_honeycombs, key=score_honeycomb)" - ] - }, - { - "cell_type": "code", - "execution_count": 109, - "id": "653613ac", - "metadata": {}, - "outputs": [], - "source": [ - "## 1 a,e,g,i,n,r,t r 3898\n", - "## 2 a,e,g,i,n,r,t n 3782\n", - "## 3 a,e,g,i,n,r,t e 3769" - ] - }, - { - "cell_type": "code", - "execution_count": 110, - "id": "3cdbd956", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "3898" - ] - }, - "execution_count": 110, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "score_honeycomb(Honeycomb('r', frozenset('aeginrt')))" - ] - }, - { - "cell_type": "code", - "execution_count": 111, - "id": "5f06f87b", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "3782" - ] - }, - "execution_count": 111, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "score_honeycomb(Honeycomb('n', frozenset('aeginrtn')))" - ] - }, - { - "cell_type": "code", - "execution_count": 112, - "id": "ab6bc64e", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "3769" - ] - }, - "execution_count": 112, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "score_honeycomb(Honeycomb('e', frozenset('aeginrte')))" - ] - }, - { - "cell_type": "code", - "execution_count": 113, + "execution_count": 38, "id": "914fece8", "metadata": {}, "outputs": [ @@ -687,20 +216,19 @@ "26" ] }, - "execution_count": 113, + "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "partitioned_scored_sets = {l: {s: scored_sets[s] for s in scored_sets if l in s} \n", - " for l in string.ascii_lowercase}\n", - "len(partitioned_scored_sets)" + " for l in string.ascii_lowercase}" ] }, { "cell_type": "code", - "execution_count": 114, + "execution_count": 39, "id": "f1454ccd", "metadata": {}, "outputs": [], @@ -713,7 +241,7 @@ }, { "cell_type": "code", - "execution_count": 115, + "execution_count": 40, "id": "7380dbd6", "metadata": {}, "outputs": [ @@ -721,82 +249,127 @@ "name": "stdout", "output_type": "stream", "text": [ - "r|aegint\n" + "r|aegint 3898\n", + "r|aegint 3898\n", + "r|aegint 3898\n", + "r|aegint 3898\n", + "r|aegint 3898\n", + "r|aegint 3898\n", + "r|aegint 3898\n", + "r|aegint 3898\n", + "1min 25s ± 2.51 s per loop (mean ± std. dev. of 7 runs, 1 loop each)\n" ] } ], "source": [ - "# %%timeit\n", - "print(max(ps_honeycombs, key=partitioned_score_honeycomb))" + "# # %%timeit\n", + "# best_honyecomb = max(ps_honeycombs, key=partitioned_score_honeycomb)\n", + "# print(best_honyecomb, partitioned_score_honeycomb(best_honyecomb))" ] }, { "cell_type": "code", - "execution_count": 74, - "id": "51d0317c", + "execution_count": 44, + "id": "0239b444-1240-4744-8547-c41367527785", "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "13" - ] - }, - "execution_count": 74, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + "r|aegint 3898\n", + "r|aegint 3898\n", + "r|aegint 3898\n", + "r|aegint 3898\n", + "r|aegint 3898\n", + "r|aegint 3898\n", + "r|aegint 3898\n", + "r|aegint 3898\n", + "5min 38s ± 4.58 s per loop (mean ± std. dev. of 7 runs, 1 loop each)\n" + ] } ], "source": [ - "# partitioned_score_honeycomb(Honeycomb('a', 'abc'))" + "# %%timeit\n", + "best_honyecomb = max(ps_honeycombs, key=score_honeycomb)\n", + "print(best_honyecomb, partitioned_score_honeycomb(best_honyecomb))" ] }, { "cell_type": "code", - "execution_count": 76, - "id": "77d74a74-55e9-498b-abdf-b02c1f7f01a3", - "metadata": {}, + "execution_count": 46, + "id": "7e4173b4-26a9-4198-b572-d57db321fe94", + "metadata": { + "lines_to_next_cell": 2 + }, "outputs": [ { - "data": { - "text/plain": [ - "19941" - ] - }, - "execution_count": 76, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + " 1612136594 function calls in 589.284 seconds\n", + "\n", + " Ordered by: standard name\n", + "\n", + " ncalls tottime percall cumtime percall filename:lineno(function)\n", + " 55902 0.316 0.000 589.070 0.011 1101428662.py:1(score_honeycomb)\n", + " 1846420 257.034 0.000 588.167 0.000 1101428662.py:2()\n", + "1210893222 276.103 0.000 331.132 0.000 1250517269.py:1(present)\n", + " 1 0.000 0.000 589.284 589.284 :1()\n", + " 1 0.000 0.000 589.284 589.284 {built-in method builtins.exec}\n", + " 1 0.214 0.214 589.284 589.284 {built-in method builtins.max}\n", + " 55902 0.567 0.000 588.733 0.011 {built-in method builtins.sum}\n", + " 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}\n", + "399229242 55.030 0.000 55.030 0.000 {method 'issubset' of 'frozenset' objects}\n", + " 55902 0.021 0.000 0.021 0.000 {method 'items' of 'dict' objects}\n", + "\n", + "\n" + ] } ], "source": [ - "# max(len(partitioned_scored_sets[k]) for k in partitioned_scored_sets)" + "# cProfile.run('max(ps_honeycombs, key=score_honeycomb)')" ] }, { "cell_type": "code", - "execution_count": 77, - "id": "35b58dec-7138-4fdb-86cc-80f3eb6a555a", - "metadata": {}, + "execution_count": 47, + "id": "8f2de1b8-6a09-44eb-af7b-3e16c902859f", + "metadata": { + "lines_to_next_cell": 2 + }, "outputs": [ { - "data": { - "text/plain": [ - "37313" - ] - }, - "execution_count": 77, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + " 401243372 function calls in 150.954 seconds\n", + "\n", + " Ordered by: standard name\n", + "\n", + " ncalls tottime percall cumtime percall filename:lineno(function)\n", + " 55902 0.226 0.000 150.835 0.003 346452243.py:1(partitioned_score_honeycomb)\n", + " 1846420 86.829 0.000 150.189 0.000 346452243.py:2()\n", + " 1 0.000 0.000 150.954 150.954 :1()\n", + " 1 0.000 0.000 150.954 150.954 {built-in method builtins.exec}\n", + " 1 0.119 0.119 150.954 150.954 {built-in method builtins.max}\n", + " 55902 0.407 0.000 150.596 0.003 {built-in method builtins.sum}\n", + " 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}\n", + "399229242 63.360 0.000 63.360 0.000 {method 'issubset' of 'frozenset' objects}\n", + " 55902 0.013 0.000 0.013 0.000 {method 'items' of 'dict' objects}\n", + "\n", + "\n" + ] } ], "source": [ - "# len(scored_sets)" + "# cProfile.run('max(ps_honeycombs, key=partitioned_score_honeycomb)')" ] }, { "cell_type": "code", "execution_count": null, - "id": "7e4173b4-26a9-4198-b572-d57db321fe94", + "id": "4c3a5684-346b-4cf7-b238-391f9a6ba2dd", "metadata": {}, "outputs": [], "source": [] @@ -804,7 +377,7 @@ ], "metadata": { "jupytext": { - "formats": "ipynb,auto:light" + "formats": "ipynb,py:light" }, "kernelspec": { "display_name": "Python 3 (ipykernel)", diff --git a/honeycomb_puzzle.py b/honeycomb_puzzle.py index fcf190b..5c0b672 100644 --- a/honeycomb_puzzle.py +++ b/honeycomb_puzzle.py @@ -21,37 +21,20 @@ import string import collections from dataclasses import dataclass import itertools - - -def only_letters(text): - return ''.join([c.lower() for c in text if c in string.ascii_letters]) - - -only_letters('Hell!o') - -with open('/usr/share/dict/british-english') as f: - words = [line.rstrip() for line in f] -len(words) +import cProfile with open('enable1.txt') as f: - words = [line.rstrip() for line in f] -len(words) + words = [line.strip() for line in f] -words = set(only_letters(w) - for w in words - if len(only_letters(w)) >= 4 - if len(frozenset(only_letters(w))) <= 7 +words = set(w for w in words + if len(w) >= 4 + if len(frozenset(w)) <= 7 if 's' not in w) -len(words) - word_sets = collections.defaultdict(set) for w in words: letters = frozenset(w) word_sets[letters].add(w) -len(word_sets) - -word_sets[frozenset('elephant')] @dataclass(frozen=True) @@ -63,21 +46,10 @@ class Honeycomb(): return f'{self.mandatory}|{"".join(sorted(self.letters - set(self.mandatory)))}' -honeycomb = Honeycomb(mandatory='g', letters=frozenset('apxmelg')) -honeycomb - - -def present(honeycomb, target): - return (honeycomb.mandatory in target) and target.issubset(honeycomb.letters) - - -present_sets = [s for s in word_sets if present(honeycomb, s)] -len(present_sets) - -present_sets - -for s in present_sets: - print(word_sets[s]) +def present(target, honeycomb): + return ( (honeycomb.mandatory in target) + and target.issubset(honeycomb.letters) + ) def score(present_set): @@ -92,102 +64,37 @@ def score(present_set): return score -sum(score(present_set) for present_set in present_sets) - -set('megaplex') in words - -scored_sets = {s: score(s) for s in word_sets} - -for s in present_sets: - print(s, word_sets[s], score(s), scored_sets[s]) - - def score_honeycomb(honeycomb): return sum(sc for letters, sc in scored_sets.items() - if honeycomb.mandatory in letters - if letters.issubset(honeycomb.letters) -# if present(honeycomb, letters) + # if honeycomb.mandatory in letters + # if letters.issubset(honeycomb.letters) + if present(letters, honeycomb) ) -score_honeycomb(honeycomb) - -# + -# hcs = [] - -# for mand in 'abcde': -# remaining = set('abcde') - set(mand) -# for others in itertools.combinations(remaining, r=3): -# hcs.append(Honeycomb(mandatory=mand, letters=frozenset(others) | frozenset(mand))) - -# print(len(hcs)) - -# + -# hcs - -# + -# honeycombs = [] - -# for mand in string.ascii_lowercase: -# remaining = set(string.ascii_lowercase) - set(mand) -# for others in itertools.combinations(remaining, r=6): -# honeycombs.append(Honeycomb(mandatory=mand, letters=frozenset(others) | frozenset(mand))) - -# print(len(honeycombs)) - -# + -# honeycombs = [] - -# candidate_letters = set(string.ascii_lowercase) -# candidate_letters.remove('s') -# candidate_letters = frozenset(candidate_letters) - -# for mand in candidate_letters: -# remaining = candidate_letters - set(mand) -# for others in itertools.combinations(remaining, r=6): -# honeycombs.append(Honeycomb(mandatory=mand, letters=frozenset(others) | frozenset(mand))) - -# print(len(honeycombs)) - -# + -# [(h, score_honeycomb(h)) for h in honeycombs[:5]] - -# + -# # %%timeit -# max(honeycombs, key=score_honeycomb) -# - - pangram_sets = [s for s in word_sets.keys() if len(s) == 7 if 's' not in s] -len(pangram_sets) +print("pangram sets:", len(pangram_sets)) -# + -ps_honeycombs = [] - -for ps in pangram_sets: - for mand in ps: - ps_honeycombs.append(Honeycomb(mandatory=mand, letters=ps)) - -print(len(ps_honeycombs)) +with open('pangaram_words.txt', 'w') as f: + for s in pangram_sets: + for w in word_sets[s]: + f.write(f'{w}\n') # + -# # %%timeit -# max(ps_honeycombs, key=score_honeycomb) - -# + -## 1 a,e,g,i,n,r,t r 3898 -## 2 a,e,g,i,n,r,t n 3782 -## 3 a,e,g,i,n,r,t e 3769 -# - - -score_honeycomb(Honeycomb('r', frozenset('aeginrt'))) +# ps_honeycombs = [] -score_honeycomb(Honeycomb('n', frozenset('aeginrtn'))) +# for ps in pangram_sets: +# for mand in ps: +# ps_honeycombs.append(Honeycomb(mandatory=mand, letters=ps)) -score_honeycomb(Honeycomb('e', frozenset('aeginrte'))) +ps_honeycombs = [Honeycomb(mandatory=mand, letters=ps) + for ps in pangram_sets + for mand in ps] +print(len(ps_honeycombs), "honeycombs") +# - partitioned_scored_sets = {l: {s: scored_sets[s] for s in scored_sets if l in s} for l in string.ascii_lowercase} -len(partitioned_scored_sets) def partitioned_score_honeycomb(honeycomb): @@ -196,17 +103,23 @@ def partitioned_score_honeycomb(honeycomb): ) +# + +# # # %%timeit +best_honyecomb = max(ps_honeycombs, key=partitioned_score_honeycomb) +print(best_honyecomb, partitioned_score_honeycomb(best_honyecomb)) +# - + # # %%timeit -print(max(ps_honeycombs, key=partitioned_score_honeycomb)) +# best_honyecomb = max(ps_honeycombs, key=score_honeycomb) +# print(best_honyecomb, partitioned_score_honeycomb(best_honyecomb)) # + -# partitioned_score_honeycomb(Honeycomb('a', 'abc')) +# cProfile.run('max(ps_honeycombs, key=score_honeycomb)') -# + -# max(len(partitioned_scored_sets[k]) for k in partitioned_scored_sets) # + -# len(scored_sets) +# cProfile.run('max(ps_honeycombs, key=partitioned_score_honeycomb)') # - + diff --git a/honeycomb_puzzle_bits.ipynb b/honeycomb_puzzle_bits.ipynb new file mode 100644 index 0000000..8f4a1a0 --- /dev/null +++ b/honeycomb_puzzle_bits.ipynb @@ -0,0 +1,424 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "951180ec", + "metadata": {}, + "source": [ + "# Honeycomb letter puzzle\n", + "Solving the puzzle as posted on [FiveThirtyEight](https://fivethirtyeight.com/features/can-you-solve-the-vexing-vexillology/), also solved by [David Robinson](http://varianceexplained.org/r/honeycomb-puzzle/).\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "6f6fa3e7", + "metadata": {}, + "outputs": [], + "source": [ + "import string\n", + "import collections\n", + "from dataclasses import dataclass\n", + "import itertools\n", + "import ctypes\n", + "import cProfile" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "88f00e4c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "172820" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "with open('enable1.txt') as f:\n", + " words = [line.strip() for line in f]" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "1e75fba2", + "metadata": {}, + "outputs": [], + "source": [ + "words = set(w for w in words \n", + " if len(w) >= 4\n", + " if len(frozenset(w)) <= 7\n", + " if 's' not in w)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "e1f9b35e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "21661" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "word_sets = collections.defaultdict(set)\n", + "for w in words:\n", + " letters = frozenset(w)\n", + " word_sets[letters].add(w)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "95dc0eed-c759-481e-8598-9b861e3def8f", + "metadata": {}, + "outputs": [], + "source": [ + "def encode(letters):\n", + " encoded = 0\n", + " for l in string.ascii_lowercase:\n", + " encoded <<= 1\n", + " if l in letters:\n", + " encoded |= 1\n", + " return encoded" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "53d9ae67-a5b5-4d01-9e69-930acca023bc", + "metadata": {}, + "outputs": [], + "source": [ + "def decode(letter_bits):\n", + " letters = set()\n", + " for l in string.ascii_lowercase:\n", + " e = encode(l)\n", + " if (e & letter_bits):\n", + " letters.add(l)\n", + " return letters" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "ab295a0a-6cb0-4f24-b57b-cb9f99517067", + "metadata": {}, + "outputs": [], + "source": [ + "def subset(this, that):\n", + " return this & that == this" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "267130ba", + "metadata": {}, + "outputs": [], + "source": [ + "@dataclass(frozen=True, init=False)\n", + "class Honeycomb():\n", + " mandatory: int\n", + " letters: int\n", + " \n", + " def __init__(self, mandatory, letters):\n", + " object.__setattr__(self, 'mandatory', encode(mandatory))\n", + " object.__setattr__(self, 'letters', encode(letters))\n", + " \n", + " def __repr__(self):\n", + " return f'{\"\".join(decode(self.mandatory))}|{\"\".join(sorted(decode(self.letters) - set(decode(self.mandatory))))}'" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "bb848e88", + "metadata": {}, + "outputs": [], + "source": [ + "def present(target, honeycomb):\n", + " return (subset(honeycomb.mandatory, target)\n", + " and subset(target, honeycomb.letters))" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "3c6f212e", + "metadata": {}, + "outputs": [], + "source": [ + "def score(present_set):\n", + " score = 0\n", + " for w in word_sets[present_set]:\n", + " if len(w) == 4:\n", + " score += 1\n", + " else:\n", + " score += len(w)\n", + " if len(present_set) == 7:\n", + " score += len(word_sets[present_set]) * 7\n", + " return score" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "979d9ed5", + "metadata": {}, + "outputs": [], + "source": [ + "scored_sets = {s: score(s) for s in word_sets}\n", + "encoded_scored_sets = {encode(s): scored_sets[s] for s in scored_sets}" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "78d423a5", + "metadata": {}, + "outputs": [], + "source": [ + "def raw_score_honeycomb(honeycomb):\n", + " return sum(sc for letters, sc in scored_sets.items() \n", + " # if honeycomb.mandatory in letters\n", + " # if letters.issubset(honeycomb.letters)\n", + " if present(letters, honeycomb)\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "eb0d2af1-437b-4be5-8736-0a18022e9de2", + "metadata": {}, + "outputs": [], + "source": [ + "def score_honeycomb(honeycomb):\n", + " return sum(sc for letters, sc in encoded_scored_sets.items() \n", + " # if honeycomb.mandatory in letters\n", + " # if letters.issubset(honeycomb.letters)\n", + " if present(letters, honeycomb)\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "id": "febee1c1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "pangram sets: 7986\n" + ] + } + ], + "source": [ + "pangram_sets = [s for s in word_sets.keys() if len(s) == 7 if 's' not in s]" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "id": "54a06bdf", + "metadata": {}, + "outputs": [], + "source": [ + "with open('pangaram_words.txt', 'w') as f:\n", + " for s in pangram_sets:\n", + " for w in word_sets[s]:\n", + " f.write(f'{w}\\n')" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "c0b0807c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "55902 honeycombs\n" + ] + } + ], + "source": [ + "# ps_honeycombs = []\n", + "\n", + "# for ps in pangram_sets:\n", + "# for mand in ps:\n", + "# ps_honeycombs.append(Honeycomb(mandatory=mand, letters=ps))\n", + "\n", + "ps_honeycombs = [Honeycomb(mandatory=mand, letters=ps) \n", + " for ps in pangram_sets\n", + " for mand in ps]" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "id": "914fece8", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "26" + ] + }, + "execution_count": 48, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "partitioned_scored_sets = {encode(l): {s: encoded_scored_sets[s] \n", + " for s in encoded_scored_sets \n", + " if subset(encode(l), s)}\n", + " for l in string.ascii_lowercase}" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "id": "f1454ccd", + "metadata": {}, + "outputs": [], + "source": [ + "def partitioned_score_honeycomb(honeycomb):\n", + " return sum(sc for letters, sc in partitioned_scored_sets[honeycomb.mandatory].items() \n", + " if subset(letters, honeycomb.letters)\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "id": "7380dbd6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "r|aegint 3898\n", + "r|aegint 3898\n" + ] + }, + { + "ename": "KeyboardInterrupt", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m/tmp/ipykernel_1590851/2427168464.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun_cell_magic\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'timeit'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m''\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'best_honyecomb = max(ps_honeycombs, key=partitioned_score_honeycomb)\\nprint(best_honyecomb, partitioned_score_honeycomb(best_honyecomb))\\n'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m~/anaconda3/lib/python3.8/site-packages/IPython/core/interactiveshell.py\u001b[0m in \u001b[0;36mrun_cell_magic\u001b[0;34m(self, magic_name, line, cell)\u001b[0m\n\u001b[1;32m 2401\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbuiltin_trap\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2402\u001b[0m \u001b[0margs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mmagic_arg_s\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcell\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2403\u001b[0;31m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2404\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2405\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.8/site-packages/decorator.py\u001b[0m in \u001b[0;36mfun\u001b[0;34m(*args, **kw)\u001b[0m\n\u001b[1;32m 230\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mkwsyntax\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 231\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkw\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfix\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkw\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msig\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 232\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mcaller\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mextras\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkw\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 233\u001b[0m \u001b[0mfun\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__name__\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__name__\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 234\u001b[0m \u001b[0mfun\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__doc__\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__doc__\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.8/site-packages/IPython/core/magic.py\u001b[0m in \u001b[0;36m\u001b[0;34m(f, *a, **k)\u001b[0m\n\u001b[1;32m 185\u001b[0m \u001b[0;31m# but it's overkill for just that one bit of state.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 186\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mmagic_deco\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 187\u001b[0;31m \u001b[0mcall\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mlambda\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 188\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 189\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mcallable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.8/site-packages/IPython/core/magics/execution.py\u001b[0m in \u001b[0;36mtimeit\u001b[0;34m(self, line, cell, local_ns)\u001b[0m\n\u001b[1;32m 1171\u001b[0m \u001b[0;32mbreak\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1172\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1173\u001b[0;31m \u001b[0mall_runs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtimer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrepeat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrepeat\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnumber\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1174\u001b[0m \u001b[0mbest\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mall_runs\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0mnumber\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1175\u001b[0m \u001b[0mworst\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmax\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mall_runs\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0mnumber\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.8/timeit.py\u001b[0m in \u001b[0;36mrepeat\u001b[0;34m(self, repeat, number)\u001b[0m\n\u001b[1;32m 203\u001b[0m \u001b[0mr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 204\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrepeat\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 205\u001b[0;31m \u001b[0mt\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtimeit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnumber\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 206\u001b[0m \u001b[0mr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mt\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 207\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mr\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.8/site-packages/IPython/core/magics/execution.py\u001b[0m in \u001b[0;36mtimeit\u001b[0;34m(self, number)\u001b[0m\n\u001b[1;32m 167\u001b[0m \u001b[0mgc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdisable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 168\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 169\u001b[0;31m \u001b[0mtiming\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minner\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mit\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtimer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 170\u001b[0m \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 171\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mgcold\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m\u001b[0m in \u001b[0;36minner\u001b[0;34m(_it, _timer)\u001b[0m\n", + "\u001b[0;32m/tmp/ipykernel_1590851/3736129931.py\u001b[0m in \u001b[0;36mpartitioned_score_honeycomb\u001b[0;34m(honeycomb)\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mpartitioned_score_honeycomb\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mhoneycomb\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m return sum(sc for letters, sc in partitioned_scored_sets[honeycomb.mandatory].items() \n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0msubset\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mletters\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mhoneycomb\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mletters\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m )\n", + "\u001b[0;32m/tmp/ipykernel_1590851/3736129931.py\u001b[0m in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mpartitioned_score_honeycomb\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mhoneycomb\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m return sum(sc for letters, sc in partitioned_scored_sets[honeycomb.mandatory].items() \n\u001b[0;32m----> 3\u001b[0;31m \u001b[0;32mif\u001b[0m \u001b[0msubset\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mletters\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mhoneycomb\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mletters\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 4\u001b[0m )\n", + "\u001b[0;32m/tmp/ipykernel_1590851/3073138769.py\u001b[0m in \u001b[0;36msubset\u001b[0;34m(this, that)\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0msubset\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mthis\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mthat\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mthis\u001b[0m \u001b[0;34m&\u001b[0m \u001b[0mthat\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mthis\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mKeyboardInterrupt\u001b[0m: " + ] + } + ], + "source": [ + "# %%timeit\n", + "# best_honyecomb = max(ps_honeycombs, key=partitioned_score_honeycomb)\n", + "# print(best_honyecomb, partitioned_score_honeycomb(best_honyecomb))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0ecd0647-11df-4b5b-a487-cb30cfa080c0", + "metadata": {}, + "outputs": [], + "source": [ + "# %%timeit\n", + "best_honyecomb = max(ps_honeycombs, key=score_honeycomb)\n", + "print(best_honyecomb, score_honeycomb(best_honyecomb))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7e4173b4-26a9-4198-b572-d57db321fe94", + "metadata": { + "lines_to_next_cell": 2 + }, + "outputs": [], + "source": [ + "# cProfile.run('max(ps_honeycombs, key=score_honeycomb)')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9a9070b7-a866-499e-a910-82337ecbd052", + "metadata": {}, + "outputs": [], + "source": [ + "# cProfile.run('max(ps_honeycombs, key=partitioned_score_honeycomb)')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a77ce9b1-d5d8-4c8f-8666-5840af23c265", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "jupytext": { + "formats": "ipynb,py:light" + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/honeycomb_puzzle_bits.py b/honeycomb_puzzle_bits.py new file mode 100644 index 0000000..de0098e --- /dev/null +++ b/honeycomb_puzzle_bits.py @@ -0,0 +1,162 @@ +# --- +# jupyter: +# jupytext: +# formats: ipynb,py:light +# text_representation: +# extension: .py +# format_name: light +# format_version: '1.5' +# jupytext_version: 1.11.1 +# kernelspec: +# display_name: Python 3 (ipykernel) +# language: python +# name: python3 +# --- + +# # Honeycomb letter puzzle +# Solving the puzzle as posted on [FiveThirtyEight](https://fivethirtyeight.com/features/can-you-solve-the-vexing-vexillology/), also solved by [David Robinson](http://varianceexplained.org/r/honeycomb-puzzle/). +# + +import string +import collections +from dataclasses import dataclass +import itertools +import ctypes +import cProfile + +with open('enable1.txt') as f: + words = [line.strip() for line in f] + +words = set(w for w in words + if len(w) >= 4 + if len(frozenset(w)) <= 7 + if 's' not in w) + +word_sets = collections.defaultdict(set) +for w in words: + letters = frozenset(w) + word_sets[letters].add(w) + + +def encode(letters): + encoded = 0 + for l in string.ascii_lowercase: + encoded <<= 1 + if l in letters: + encoded |= 1 + return encoded + + +def decode(letter_bits): + letters = set() + for l in string.ascii_lowercase: + e = encode(l) + if (e & letter_bits): + letters.add(l) + return letters + + +def subset(this, that): + return this & that == this + + +@dataclass(frozen=True, init=False) +class Honeycomb(): + mandatory: int + letters: int + + def __init__(self, mandatory, letters): + object.__setattr__(self, 'mandatory', encode(mandatory)) + object.__setattr__(self, 'letters', encode(letters)) + + def __repr__(self): + return f'{"".join(decode(self.mandatory))}|{"".join(sorted(decode(self.letters) - set(decode(self.mandatory))))}' + + +def present(target, honeycomb): + return (subset(honeycomb.mandatory, target) + and subset(target, honeycomb.letters)) + + +def score(present_set): + score = 0 + for w in word_sets[present_set]: + if len(w) == 4: + score += 1 + else: + score += len(w) + if len(present_set) == 7: + score += len(word_sets[present_set]) * 7 + return score + + +scored_sets = {s: score(s) for s in word_sets} +encoded_scored_sets = {encode(s): scored_sets[s] for s in scored_sets} + + +def raw_score_honeycomb(honeycomb): + return sum(sc for letters, sc in scored_sets.items() + # if honeycomb.mandatory in letters + # if letters.issubset(honeycomb.letters) + if present(letters, honeycomb) + ) + + +def score_honeycomb(honeycomb): + return sum(sc for letters, sc in encoded_scored_sets.items() + # if honeycomb.mandatory in letters + # if letters.issubset(honeycomb.letters) + if present(letters, honeycomb) + ) + + +pangram_sets = [s for s in word_sets.keys() if len(s) == 7 if 's' not in s] + +with open('pangaram_words.txt', 'w') as f: + for s in pangram_sets: + for w in word_sets[s]: + f.write(f'{w}\n') + +# + +# ps_honeycombs = [] + +# for ps in pangram_sets: +# for mand in ps: +# ps_honeycombs.append(Honeycomb(mandatory=mand, letters=ps)) + +ps_honeycombs = [Honeycomb(mandatory=mand, letters=ps) + for ps in pangram_sets + for mand in ps] +# - + +partitioned_scored_sets = {encode(l): {s: encoded_scored_sets[s] + for s in encoded_scored_sets + if subset(encode(l), s)} + for l in string.ascii_lowercase} + + +def partitioned_score_honeycomb(honeycomb): + return sum(sc for letters, sc in partitioned_scored_sets[honeycomb.mandatory].items() + if subset(letters, honeycomb.letters) + ) + + +# + +# # %%timeit +best_honyecomb = max(ps_honeycombs, key=partitioned_score_honeycomb) +print(best_honyecomb, partitioned_score_honeycomb(best_honyecomb)) +# - + +# # %%timeit +# best_honyecomb = max(ps_honeycombs, key=score_honeycomb) +# print(best_honyecomb, score_honeycomb(best_honyecomb)) + +# + +# cProfile.run('max(ps_honeycombs, key=score_honeycomb)') + + +# + +# cProfile.run('max(ps_honeycombs, key=partitioned_score_honeycomb)') +# - + + diff --git a/pangaram_words.txt b/pangaram_words.txt new file mode 100644 index 0000000..d45b85f --- /dev/null +++ b/pangaram_words.txt @@ -0,0 +1,14741 @@ +anonymity +myotonia +antimony +antinomy +amyotonia +bedewing +bewinged +cheeking +chickening +checking +epitaxy +meperidine +migrating +immigrating +marting +immigrant +marginating +migrant +marinating +tramming +nitpicky +handwheel +interiority +notoriety +leathern +enthral +enthrall +antheral +canoodle +colonnade +colonnaded +concealed +canoodled +celadon +flouter +effortful +humored +humoured +puppetlike +branchy +flyover +overfly +longueur +lounger +propaganda +tamping +impainting +halidom +gunlock +extracted +execrated +limnetic +inclement +reaginic +anergic +careening +recaning +carrageenin +careering +yarding +dairying +draying +environing +ergonovine +overgoverning +overing +overengineering +regrooving +governing +vigneron +overengineer +extroverted +overexerted +pancaked +kneecapped +immature +muriate +termitarium +terrarium +copyhold +weighter +tightwire +weightier +charactered +chattered +cathedra +detacher +cathedrae +chartered +recharted +ratcheted +rechartered +charted +reattached +tracheated +poverty +alienor +aileron +nonlinear +decliner +reclined +encircled +albumen +unnameable +unamenable +prorogued +grouped +regrouped +infolded +diolefin +ninefold +thatchier +aetheric +theriac +tetrarchic +chattier +theatric +architect +hetaeric +hieratic +trierarch +theriaca +catchier +guaranty +gauntry +incarnate +creatin +circinate +certain +tarriance +carinate +acentric +ceratin +creatinine +intercrater +ancienter +increate +cantatrice +interactant +centiare +creatine +incarcerate +iterance +craniate +reincarnate +nectarine +incinerate +intricate +tetracaine +carnitine +certainer +interact +centenarian +anticancer +phenocopy +ricochet +rhetoric +torchier +theoretic +heterotic +litigated +tailgated +gladiate +ligated +paratactical +piratical +practical +parallactic +participial +annunciating +actuating +capitula +punkier +quarrelled +quarreled +kiwifruit +cymbalom +pocking +apothece +cachepot +curvetted +curveted +minable +bimillennial +mineable +incurrent +uneccentric +intercurrent +tincture +ceinture +intercut +enuretic +neuritic +cincture +thymectomy +hemocyte +thymocyte +flueric +lucifer +piliform +chorine +corniche +enchoric +coinhere +incoherence +rhinoceri +teleologic +eclogite +etiologic +portended +portend +protend +protended +deutzia +officinal +nonfinancial +nonofficial +folacin +fixable +affixable +alacrity +critically +criticality +clarity +arctically +yauping +unpaying +abetting +battening +abnegating +beating +benignant +incarnation +carotin +ratiocination +traction +raincoat +corotation +narcotic +contrarian +contraction +carnation +carrotin +coarctation +attraction +ratiocinator +cratonic +coronation +apophyge +hypogea +geophagy +enthronement +heptameter +thiophen +thiophene +contagia +coacting +cantoning +nonacting +cogitating +containing +coating +contacting +contagion +incognita +cognation +cogitation +incogitant +wailfully +overdeveloped +redeveloper +developer +overpeopled +overdevelop +redevelop +redeveloped +locatable +bootlace +collectable +allocatable +contorted +creodont +reconnected +concreted +contender +concerted +concentered +troweled +trowelled +mixture +immixture +connotational +cantillation +inclinational +calcination +noncoital +collation +anticolonial +calcitonin +cottontail +collocational +inclination +coitional +coalition +incantational +collocation +location +lactational +clintonia +locational +conciliation +lactation +lactonic +laciniation +allantoic +ciliation +allocation +citational +privilege +entrechat +tranche +enchanter +chanter +trenchant +anthracene +ethnarch +exenterated +dextran +arcading +carding +cardigan +incarnadining +carangid +chromophoric +morphic +microchip +homomorphic +autoing +guttation +outgain +outgaining +dethroned +reenthroned +threnode +throned +dethrone +enthroned +dethroner +thorned +cockamamie +leavening +vealing +leaving +gavelling +villenage +gaveling +gradually +deckhand +opacify +woodchuck +pyrophoric +czarevna +pedately +adeptly +playdate +pricklier +pickerel +prickle +forgiver +forgive +outdebated +outdebate +wiredrawn +dinnerware +vulgate +lamenter +maltreatment +letterman +maternal +tetradic +rededicated +eradicated +acierated +readdicted +accredit +reaccredit +traceried +eradicate +rededicate +raticide +accredited +diaeretic +citrated +reaccredited +readdict +radicate +tetracid +radicated +checkout +unionization +unitization +uptilted +geoidal +dialoged +pinocle +nonpolice +picoline +flunking +fluking +allegiance +angelica +cleaning +enlacing +angelical +galenic +angelic +anglice +canceling +cancelling +galenical +cageling +glaceing +inelegance +arterially +illiterately +irately +literary +reality +artillery +literately +tearily +irreality +literally +literality +literarily +printout +pourpoint +irruption +quakier +bethorn +loitered +dolerite +trollied +rototilled +decapitate +decapitated +capacitated +piperazine +moonward +puckered +torturing +outgrin +outrunning +unrooting +outtrotting +routing +grouting +outrooting +outring +tutoring +outringing +touring +outgrinning +outintriguing +unwillingly +polyzoan +erumpent +bipedal +dippable +piebald +equinox +orangeade +androgen +gadrooned +groaned +renegado +nongraded +dragooned +placekick +bonfire +fruitily +fruitfully +mountain +manitou +ammunition +mutation +tinamou +automation +coalbin +cannabinol +anabolic +barrenly +blarney +clouted +cloudlet +occulted +nonevidence +conceived +convinced +invoiced +inconvenienced +connived +buxomly +autumnally +theroid +adhibited +habited +frenzied +chewing +wenching +millefiori +tonality +notionally +notionality +atonality +nationally +nationality +leaping +pealing +paneling +enplaning +panelling +lagniappe +appealing +depletive +protonate +protean +notepaper +pronate +patentor +operant +outhunting +oughting +thouing +toughing +outhitting +nonhunting +gandering +gardenia +gardening +regarding +dreading +deraign +regained +deraigning +regrading +deairing +renegading +endearing +grenadier +dandering +deraigned +drainage +grenadine +ingrained +reading +rereading +grained +readding +arraigned +dangering +degrading +daggering +gradine +deranging +engrained +endangering +niggarded +flappier +garnierite +argentite +reintegrate +gratineeing +nattering +argentine +rattening +tangier +entraining +retraining +interage +tearing +regrating +granite +reinitiating +aerating +interregna +reintegrating +integrating +retreating +intreating +integrate +ingratiate +retagging +tattering +intergang +regranting +reiterating +ingrate +regenerating +gartering +gratine +entertaining +retargeting +treating +gnattier +greatening +generating +reaggregating +retaining +tangerine +aggregating +targeting +entreating +itinerating +iterating +reattaining +intenerating +retearing +gratinee +toddlerhood +toolholder +throttlehold +throttled +overflew +overflow +aboiteau +jukebox +humanly +bromide +embroidered +reembroider +embodier +reembroidered +embroider +embroiderer +reembodied +perineurium +epineurium +perineum +unitized +glaired +gladlier +gladier +galleried +grillade +nonparallel +aeroplane +peroneal +enterotoxin +extortion +extortioner +exertion +caribou +blatancy +fancily +financially +finically +overtoil +overlit +notcher +noncoherent +orthocenter +coherent +jounced +culpably +beatific +digitally +algidity +rhomboid +fixated +wallpapered +extortive +moonlike +keratin +ankerite +gunpoint +pouting +outpointing +outputting +affiliated +deadlift +filiated +deadlifted +urnlike +unlikelier +runelike +knurlier +matriarch +trackage +quondam +epitomic +metopic +headboard +abhorred +harbored +whiplike +redonning +ignored +groined +redoing +eroding +ordering +rodeoing +negroid +reordering +doddering +hotdogging +brailed +rideable +ridable +bedrail +diablerie +drillable +radiable +brailled +nonmimetic +tonemic +commitment +centimo +committeemen +noncommitment +tangler +argental +regental +entangler +wellborn +petitioning +pigeonite +tiptoeing +outright +trenched +retrenched +entrenched +outchid +collegial +geological +collegia +ecological +redecorator +decorate +detractor +redecorate +retroacted +corotated +cordate +decorated +doctorate +cocreated +redecorated +redcoat +redactor +decorator +catalyze +inarching +charring +chagrin +ranching +chairing +charging +arching +chagrinning +cranching +chagrining +charing +gravelled +everglade +leveraged +graveled +ammoniacal +limacon +monomaniacal +nobility +chlorella +cochlear +choreal +chorale +cholera +flinching +filching +mediaeval +medieval +ranchero +encroacher +encroach +larruped +applauder +majorette +evicting +intertwining +rewriting +twittering +wintergreen +wintering +rewetting +nonintervention +invertor +intervention +reinvention +inventor +intervenor +introvert +mothier +homoiotherm +logorrhea +hagberry +retitling +ringlet +intertilling +retiling +interlining +tillering +relettering +relenting +glittering +tinglier +lettering +retelling +littering +tingler +reletting +gillnetter +frangipani +frapping +frangipanni +paraffining +cedarbird +barricade +carbide +barricaded +airhole +bracing +crabbing +unlethal +fairleader +fairlead +fieldfare +airfield +inception +nepotic +entopic +nonpoetic +conception +peptonic +injunction +junction +conjunction +vogueing +inundate +unaudited +uninitiated +audient +inundated +untainted +worldwide +worldlier +lowrider +phantom +nylghau +affianced +fancied +financed +faciend +fancified +defiance +vibrator +obviator +vibrato +rereviewing +reviewing +lodicule +celluloid +memorable +broomballer +uncurled +cullender +vacating +activating +vaticinating +inactivating +vaccinating +cavitating +hybridity +trihybrid +mottling +molting +marengo +monogrammer +renogram +gammoner +pachadom +monocyte +bargemen +garbageman +garbagemen +bargeman +climate +acclimate +calamite +metical +metallic +boondoggled +belonged +boondoggle +beanpole +openable +limberly +youthen +ringtaw +warranting +plumate +phoronid +reclining +encircling +clinger +crenelling +creneling +creeling +recircling +cringle +clingier +preemptory +pyrometer +optometry +peremptory +pyrometry +gorbelly +hornpout +obbligati +obligato +obligati +obbligato +railroader +dariole +arillode +railroaded +longicorn +coloring +paddling +dappling +repechage +chickadee +phonied +cedarwood +pronely +propenyl +polypropylene +propylene +trematode +moderator +mortared +dermatome +moderate +moderated +moderato +overweary +overwary +bootjack +jackboot +laugher +champer +metacenter +amercement +entrancement +reenactment +cyanite +tenacity +trachyte +thearchy +tetrarchy +treachery +hatchery +yachter +charactery +chattery +tracheary +partitive +privative +privateer +privater +preparative +private +reparative +reckoned +dorneck +monocarp +crampon +crampoon +naphthalene +elephant +pentathlete +triarchy +charity +trachytic +jacinth +parcelled +precleared +preplaced +parceled +placarded +replaced +barcarole +albacore +caballero +barcarolle +colorable +meditative +mediative +cohabit +frontier +interferon +notifier +dextral +overfoul +overfull +indweller +kampong +larding +garlanding +granadilla +draggling +raddling +darling +tictacked +ticktacked +phonying +hypoing +epifauna +epifaunae +herpetic +pitchier +pitcher +article +electrical +tailrace +triticale +retractile +erratical +tractile +recital +lateritic +radiation +antidora +ritardando +adoration +tandoori +diatron +ordination +tradition +irradiation +laughing +nilghau +hauling +plunderer +plunder +plundered +timbrel +embrittle +tremblier +unbowed +hectometer +ectotherm +comether +countercurrent +recontour +concurrent +reencounter +occurrent +rencounter +counterterror +countertenor +counter +recounter +recount +nocturne +nonrecurrent +encounter +trounce +cornute +noncurrent +nonconcurrent +trouncer +radiance +incarnadine +candider +crannied +irradiance +incarnadined +riddance +acridine +cairned +grippingly +pryingly +gargoyle +allegory +areology +aerology +gallerygoer +attenuation +rucking +bitching +jeopard +jeoparded +teutonize +frottage +fagoter +footgear +morceau +brucine +unrobing +bourguignon +irrelative +retrieval +levirate +retaliative +alliterative +relative +trivalve +varietal +budworm +noctuoid +conduction +induction +nonconduction +noctuid +conduit +paternal +parental +terneplate +replant +parlante +prenatal +preplant +planter +parenteral +repellant +titulary +titularly +ritually +rurality +extravagate +welting +winglet +ebonized +benzenoid +thunking +unthinking +detoxified +libelant +libellant +attainable +infantile +antileft +antilife +inflate +remained +marinaded +meridian +remainder +remaindered +inarmed +marinade +manubria +manubrium +defunding +unfeigned +feuding +undignified +unbeared +unbarred +unbranded +unbarbed +unabraded +unbarbered +bubbleheaded +bluehead +bubblehead +bullheaded +bullhead +enervated +advertent +anteverted +denervated +denervate +verdant +venerated +philhellenic +nephelinic +pelican +penicillia +appliance +capelin +pinnacle +panicle +overreach +overreacher +overarch +overcoach +lingeringly +erringly +relying +gingerly +leeringly +birrotch +petering +interpreting +reprinting +repenting +reinterpreting +preprinting +invincibly +vincibly +graduate +graduated +falderol +freeloaded +freeload +freeloader +enriching +cheering +richening +buoyancy +propounder +pounder +propounded +unroped +futhork +habitably +habitability +vaulter +revaluate +reevaluate +paramenta +pretreatment +permeant +temperament +entrapment +permanent +parament +pentameter +apartment +deluging +dueling +indulged +duelling +deluding +guideline +eluding +indulge +befitting +benefiting +benefitting +trumeaux +pluming +plumping +lumping +palliative +appellative +cliental +anticline +analcite +cantillate +laitance +laciniate +centennial +canticle +licentiate +cantilena +groundnut +groundout +traveled +travelled +electively +remanning +mammering +germina +reimagining +menagerie +imaginer +margarine +reaming +migraine +remaining +reimagine +reimaging +mangier +rearming +renaming +dicotyl +cotyloid +docility +wetproof +jambing +dilator +toroidal +idolator +fibrillae +fireball +friable +afebrile +fireballer +balefire +flabbier +refillable +fireable +toenail +attentional +elation +linoleate +etiolation +lineation +alienation +intentional +magneto +montage +megaton +magneton +megatonnage +nonmanagement +nonengagement +ferroconcrete +confronter +impledge +impledged +bractlet +erectable +bracelet +celebrate +tractable +retractable +cartable +traceable +bracteal +binocle +ectozoan +canzonet +nonmilitant +mannitol +limitational +lamination +limitation +antimonial +immolation +motional +tetroxid +trioxide +tetroxide +manrope +praenomen +calamining +acclaiming +clamming +calming +manacling +calcimining +claiming +metaxylem +perfumed +overheap +wartime +allograph +logograph +holograph +overalert +levator +elevator +overlate +revelator +clawing +altitudinal +latitudinal +attitudinal +trilobite +libretto +briolette +blottier +ribboned +beribboned +aerofoil +gruntling +turtling +reincurred +reinduced +incurred +reinduce +inducer +certified +recertified +rectified +decertified +varicella +clavier +valeric +cervical +caviler +cavalier +caviller +reburial +retrograded +retrograde +derogated +derogate +garotted +garoted +garrotted +garroted +arrogated +unwonted +binational +battalion +ablation +lobation +boltonia +oblation +abolition +labanotation +libation +heating +gnathite +gahnite +naething +medicining +pronounce +pronouncer +pouncer +archduchy +churchyard +nonrotating +rotating +origination +ratooning +garotting +nonirritating +garoting +originator +attorning +garrotting +arointing +arrogating +arrogation +rogation +rattooning +garroting +rationing +ignorant +rigatoni +orating +ingratiation +irrigation +originating +dezincked +zincked +foulard +decennium +intermittence +centimeter +increment +inviable +enviable +alfaquin +pearlite +parietal +preliterate +reptilia +platier +tripletail +plaiter +pralltriller +paltrier +pretrial +reinform +reniform +informer +fermion +charily +archaically +bundler +blunder +blunderer +blundered +tentacled +lanceted +retinued +reunited +intruded +indentured +untired +untried +intrude +untidier +inturned +indenture +turdine +intruder +hulloing +overkill +corbina +carbanion +carbonic +convening +conceiving +inconveniencing +cottonweed +aqueduct +rechannel +charnel +channeler +mangily +malignly +ultracool +calculator +coloratura +rebuttable +tablature +utterable +butterball +rebuttal +icebreaker +glaived +breakwater +bromize +epibolic +ulpanim +carnelian +cleanlier +irenical +reliance +carline +maintainer +animater +terminate +antimere +marinate +raiment +antimatter +entrainment +armamentaria +martinet +intimater +entertainment +trainmen +minaret +reanimate +extinction +nonexotic +exciton +excitonic +petioled +lepidote +lepidolite +piloted +epileptoid +quavered +regimenting +metring +intermitting +reemitting +metering +reminting +remitting +regiment +mitering +retrimming +meriting +remeeting +retiming +triggermen +terming +calendula +uncalled +unlaced +uncanceled +uncleaned +reconvey +conveyer +conveyor +apiology +flyting +fittingly +tricolette +elicitor +pretravel +triathlete +healthier +lathier +earthlier +tranced +reenacted +recanted +entranced +crenated +reaccented +cantered +decanter +zeitgeber +adherence +endarch +cranched +ranched +unblooded +undoubled +undouble +unlobed +allophone +allophane +deadheading +highhanded +heading +rejoinder +nonjoinder +joinder +rejoined +farmwife +firmware +awarding +warding +drawing +almandine +endemial +nialamide +middleman +madeleine +mainlined +whitened +moulter +tellurometer +fugitive +cozening +zoogenic +cognize +effacement +valiance +vicennial +valencia +overcorrected +vectored +pettifog +methylate +methylal +jewelling +jeweling +unfledged +engulfed +oxalacetate +oxaloacetate +airmailing +marling +marginalia +marginal +alarming +imprinter +preeminent +peppermint +impertinent +preretirement +grimacer +grimace +ulcerate +cultrate +creatural +recalculate +reluctate +acculturate +rebelling +rebilling +gibberellin +apparition +proration +propitiation +pronation +apportion +partition +appropriation +protonation +antiporn +atropin +antiproton +prompted +tromped +protoderm +promoted +pedometer +garment +rearrangement +arrangement +agreement +reengagement +termagant +margent +armoring +roaming +monograming +monogramming +angiogram +ignorami +marooning +concordance +rancored +accordance +ordonnance +carronade +ordnance +nondancer +trapping +prating +parting +trapanning +pirating +heavily +drouthy +packaging +pancaking +packing +panicking +vampiric +incommoding +churchmen +muncher +choremen +monochrome +exotica +bulking +unblinking +controller +noncollector +electron +enterocoel +coelenteron +enterocoele +interviewer +reinterview +interview +interviewee +maximized +engagingly +yealing +genially +yeanling +enlighten +enlightening +lengthening +lightening +lighten +unjoined +domicile +melodic +domiciled +retrofitted +retrofired +refortified +torrefied +torrified +fortified +forfeited +buncoed +bounced +ambulant +halazone +vicinage +bolloxing +bollixing +outpitch +pitchout +unknotting +knouting +purulent +combining +combing +ladylike +pudency +epenthetic +phenetic +plumier +rumplier +plummier +lumpier +freight +firefighter +freighter +firefight +refight +fighter +vauntie +overcooled +overcold +brothel +hellbroth +battling +tabling +bangtail +blatting +bantling +ablating +eloigner +ligroine +religion +reenrolling +reoiling +rerolling +enrolling +irreligion +coitally +locality +politely +toploftily +helving +provender +achieved +untwined +unwitted +territorial +aerolite +arteriolar +retailor +literator +arteriole +anthelia +annihilate +hoteldom +menadione +diamonded +demonian +demimondaine +amidone +clammier +miracle +reclaim +millrace +claimer +acclaimer +micellar +adulator +laudator +relatedly +lyrated +roundel +unrolled +buckler +outgrowth +thoroughwort +wrought +outwrought +accretive +vicariate +reactive +attractive +creative +reactivate +recreative +tractive +recitative +recitativi +vicarate +pelagic +epipelagic +pelletizer +yelping +overgirded +overgird +overrigid +wretcheder +wretched +bentonitic +cenobite +coenobite +cenobitic +noncoplanar +coplanar +midmonth +tightener +retighten +retightening +inheriting +tethering +inimically +maniacally +manically +cinnamyl +toxicologic +nutbrown +brownout +audacity +caducity +accident +nictitated +candidate +indicate +ctenidia +dietician +nictated +intendance +indicated +incanted +actinide +broiling +befogging +northing +inthroning +thorning +thronging +trothing +throning +colloidally +cycloidal +tanklike +antlike +antileak +wamefou +outflew +kingcup +unpicking +wrinkly +retouch +couther +retoucher +toucher +mycelial +mycelia +rekeying +yerking +panther +phenanthrene +terrorized +erotized +forename +nonfarmer +foramen +foreman +centipede +incepted +nomarch +anchorman +monarch +trinketry +facilely +inebriant +inebriate +trainbearer +rabbinate +buoying +nonbuying +overtrade +overtreated +overrated +overtraded +unpiled +truthfully +hurtfully +ruthfully +bucktooth +lifelong +inflating +filiating +affiliating +fatling +flatting +flatling +narrowly +hilarity +putzing +cofinancing +fretwork +coacervate +caveator +cavorter +evocator +overcoat +overact +overreact +blooming +banquet +banquette +withhold +jinglier +jingler +biocycle +joyride +joyrider +grazeable +grazable +begrimed +begrimmed +oghamic +picoted +epidotic +enwreathe +earthenware +wreathen +overurged +imbalming +gimbaling +gimballing +ambling +blaming +gambling +lambing +dungaree +undergrad +ungraded +unargued +unguarded +grandeur +underage +defiant +definientia +fainted +penciler +princelier +principle +pizzalike +precipitate +picrate +practice +paretic +practicer +appreciate +crepitate +peripatetic +participate +patriciate +accipiter +prenotion +protein +preportion +interpoint +pointer +tropine +intertroop +repetition +pointier +petitioner +nonprotein +entropion +chandelle +chandelled +channeled +channelled +cleanhanded +dockland +undulated +undulate +untalented +landaulet +lunated +maravedi +checkrein +chinkier +englutting +tunnelling +unintelligent +tunneling +eluting +glutelin +carpellary +prelacy +runkling +knurling +lurking +butylate +wrinkling +mazelike +logicizing +colonizing +chunter +afterward +inexact +excitant +imblaze +erythema +pinworm +beryline +byliner +predicted +depicter +predict +precited +receipted +decrepit +diamonding +goddamming +goddamning +gammadion +utricle +telluric +reticule +citriculture +overborrowed +farrowed +forwarded +forwarder +echidnae +enchained +chained +hacienda +chicaned +echidna +breathier +birthrate +tetrahedrite +airthed +threadier +trihedra +reexplored +explored +exploder +climbed +myriopod +miaouing +freehand +freehanded +trapezii +appetizer +trapezia +parakite +remembrance +remembrancer +pericopae +fruiting +turfing +zamindari +zamindar +raptorial +troopial +palliator +liturgic +overarrange +aerobraked +perpending +redipping +reeducated +reeducate +eructated +traduced +traducer +arcuated +curated +traduce +ringlike +kernelling +erlking +kerneling +relinking +kinglier +blanket +finable +fineable +infallible +ineffable +pomfret +cautery +coremia +localite +aloetic +teocalli +micrometer +meteoric +microtome +micrometeoritic +meteoritic +micrometeorite +mortice +recommit +prebattle +repeatable +praefect +perfecta +parcenary +mopboard +graybeard +flintlike +flinkite +thiazide +beaucoup +batfowl +debouche +debouched +debouch +coapted +coadapted +keramic +aplenty +penalty +patently +centraler +accelerant +central +teriyaki +crackled +lackered +levering +reliving +relieving +inveigler +reviling +reveling +revelling +reordained +ordinarier +ordained +reordain +aneroid +ordainer +monologue +nonlegume +patulent +antepenult +petulant +bunkoing +photoing +pranked +damnified +olivenite +nonviolent +violent +unrepair +epineuria +perineuria +turgidity +workman +workwoman +nonrenewal +fruitlet +flutier +fruitfuller +mitigated +prologue +bullterrier +rebuilt +rubellite +undermine +undermined +uredinium +unrimed +implode +imploded +porphyrin +cloured +decolour +decoloured +colluder +coloured +telemetric +deodorant +ratooned +nonrated +attorned +rattooned +nonattender +detonator +treponeme +penetrometer +monoterpene +valuated +vaulted +evaluated +devaluated +devaluate +diarrheal +dihedral +railhead +maunderer +maundered +undreamed +unmarred +manured +undermanned +unmannered +duramen +unarmed +maunder +underarm +aquatinting +quantitating +antiquing +antiquating +quanting +tardily +tiltyard +layabout +videlicet +quadriga +unedible +unblinded +unbilled +ineludible +heraldry +hardheadedly +nonaluminum +granule +levying +envyingly +pudgily +queendom +enjambment +enjambement +blurring +burgling +burbling +bullring +blurbing +burling +rubbling +beadlike +bladelike +monocline +leukemia +leukaemia +plantation +talapoin +palliation +planation +palpitation +altiplano +optional +pollination +oppilant +palpation +phonate +phaeton +pantothenate +pantheon +gelating +atingle +alginate +eglantine +galantine +legatine +elating +tangential +galenite +latening +gantline +gantleting +allegiant +galleting +alienating +intelligential +entangling +inelegant +legating +gelatin +agential +entailing +gelatine +genitalia +genital +defogging +offending +bawdier +bewearied +belying +bellying +negligibly +benignly +romeldale +earldom +melodrama +remolade +nebular +burnable +unburnable +unlearnable +unbearable +zirconia +preceptive +perceptive +receptive +mangabey +naumachia +budgeteer +budgeter +wardrobe +bearwood +drawbore +mapmaking +unrecorded +coendure +concurred +uncoerced +conducer +crunode +unconcerned +nonconcurred +denouncer +renounced +coendured +templar +trample +malapert +trampler +policing +clopping +rampaged +flooding +fondling +infolding +folding +zonetime +monzonite +mezzotint +monetize +inotropic +protonic +corticotropin +holiday +hyoidal +hyaloid +mooching +angulating +agglutinin +agglutinating +ululating +untangling +amputated +cottager +greatcoat +boycotter +ethology +theology +epiphytic +overzeal +pibroch +diffract +greenhead +hangared +rehanged +damnably +vibrionic +vibronic +divulged +divulge +reinjured +uninjured +injured +breakneck +bracken +canebrake +accommodator +foaming +ramping +rampaging +parmigiana +gripman +impairing +denitrifier +nitrified +denitrified +indifferent +reidentified +interfered +different +identifier +brittlely +bitterly +liberty +terribly +medevacked +parricide +epicardia +peracid +pericardia +batholith +cichlidae +chaliced +bornite +conceding +genocide +decoding +coigned +encoding +endogenic +trucked +tuckered +forcing +menthol +hotelmen +underlie +undrilled +unriddle +unriddled +underline +underlined +dropping +drooping +prodding +reloaned +oleander +ladrone +lording +drooling +lordling +drolling +monthlong +vicomte +guilefully +argillite +treillage +tailgater +aglitter +glitterati +ammoniating +moating +montaging +mitigation +angiomata +nominating +imagination +pentacle +placentae +placental +placenta +concededly +condyle +cuticulae +frowning +bemocked +deniable +bindable +brownie +brownier +arabicize +zebraic +unmuffled +nondrinker +donniker +alumine +peachier +preachier +hairpiece +outboxed +correlator +accelerator +electorate +acrolect +colorectal +correlate +corollate +relocate +locater +electoral +collateral +reallocate +corelate +collaret +relocatee +execrable +pegmatite +haggardly +photophobia +infixation +affixation +fixation +audible +lullabied +illaudable +buildable +buddleia +hagride +announced +unannounced +cricketed +tricked +deticker +ballooning +billabong +blighting +parotid +parotoid +dogbane +bondage +laagering +realigning +relearning +regaling +gnarlier +gainlier +learning +engrailing +ganglier +lagering +renailing +reginal +nargile +algerine +geranial +enlarging +allergin +engrail +aligner +realign +troubler +trouble +hitchhiker +thicker +butterwort +enflamed +galumph +windflaw +windfall +unmated +unmatted +untamed +alligator +litigator +diameter +remediate +admitter +readmitted +dreamtime +remediated +readmit +manicotti +commination +nonatomic +monatomic +antinomic +contamination +anatomic +nonanatomic +ammonitic +antimitotic +contaminant +amniotic +concomitant +lyrebird +noblewomen +flaneur +funereal +frenula +funeral +begriming +bemiring +begrimming +remembering +beriming +flicking +venerable +effulgent +fulgent +oligomer +gloomier +gomeril +embraced +cambered +bimanual +albumin +cingulum +glucinum +culming +amoretti +doucely +upfront +whiteout +unfixed +doating +iodinating +indagation +antidoting +donating +iodating +indignation +minorca +armonica +macaroni +macaronic +carcinoma +marocain +acromion +morainic +tigerlike +fibulae +benefited +benefitted +ineffective +infective +farding +unapparent +appurtenant +enrapture +unrepentant +hotfooting +imitable +bimetal +timetable +timbale +limbate +illimitable +limitable +aboulic +glabrate +targetable +regrettable +hateful +healthful +begloomed +embedding +bedimming +imbedding +ozokerite +tampered +ramparted +tramped +reattempted +attempered +permeated +corkboard +backdoor +backboard +mickler +limerick +aquatone +overaged +overgoaded +overgoad +overleaf +flavorer +foveolar +bondmaid +abdomina +trillionth +promptbook +degumming +phthalin +mandating +intimidating +admitting +brigand +barding +bradding +abridging +drabbing +abrading +brigading +braiding +branding +toughly +quantity +antiquity +entrained +intreated +irredenta +daintier +detrain +attainder +retained +nitrated +detainer +antired +retrained +andradite +detrained +reinitiated +reattained +itinerated +irridenta +entertained +trained +intenerated +micrococcal +micromolar +acromial +kundalini +beclown +loculicidal +caudillo +teaming +geminate +tegmina +gametangia +mintage +agminate +geminating +emanating +enigmata +gemmating +antimanagement +manganite +magnetite +bathwater +utopian +nonutopian +opuntia +pupation +outpaint +cutchery +bediaper +bediapered +cliquing +hoarily +floodway +foldaway +pangolin +galoping +galloping +pignolia +bloodmobile +affricate +artificer +trifecta +craftier +cafeteria +artifice +certificate +multijet +lavendered +lavender +racketeered +retracked +racketed +retacked +tracked +reattacked +faintly +infantility +finality +megafauna +megafaunae +fiddlehead +expiring +fencible +bearhug +telepathy +reinfect +infecter +frenetic +interference +rootlike +lorikeet +kiloliter +archival +chivalric +hexameter +pitchily +inveigled +develing +devilling +deviling +delving +entropy +lientery +entirely +inertly +rakehelly +dogcart +ellipticity +pyelitic +unhinged +unheeding +whirled +connective +concoctive +connivent +coinvent +evection +convenient +inconvenient +convective +convection +eviction +convention +refraining +firefang +firefanging +fearing +veratrine +narrative +antinarrative +travertine +reinnervate +veterinarian +inveterate +innervate +veratrin +decently +graffito +virologic +antefixa +antefix +antefixae +plinked +dilatable +debilitate +debilitated +labiated +editable +eulogize +unkenneling +unkennelling +quotient +faggoted +fagoted +company +accompany +oppilate +papillote +popliteal +petiolate +ingrafting +rafting +ingraft +grafting +farting +tariffing +clinked +nickled +nickelled +nickeled +awfuller +indraft +antidraft +plangent +eggplant +pentangle +latinizing +initializing +tantalizing +italianizing +ternately +errantly +alternately +eternally +enterally +mutuality +chitchatting +chanting +chatting +gnathic +thatching +hatching +catching +attaching +cachinnating +geotactic +cogitate +deadpanning +appending +myxomycete +myxocyte +recollected +electrode +electroed +milliradian +mandrill +mandril +rimland +reopening +porringer +preopening +peignoir +perigon +pioneering +pirogen +officiate +anticipate +capacitance +pectinate +inappetence +incapacitate +patience +pittance +diluent +untitled +untilted +undiluted +intituled +untilled +hemorrhoid +heirdom +quality +avalanche +forefinger +foregoing +reoffering +offering +reroofing +reforging +goffering +foreigner +foreign +parling +pillaring +graplin +grappling +flagrant +vilayet +illatively +oriented +reedition +intorted +internode +reoriented +indentor +rendition +retinoid +detrition +rimpled +dimplier +imperiled +imperilled +overlay +alveolarly +layover +breathable +halbert +blatherer +tetherball +blather +upfield +begirdled +dirigible +begirdle +perfervid +utilizing +enriched +richened +gruffily +bunkered +debunker +intellective +penancing +peacing +dumbfound +panhandled +panhandle +millimicron +extincting +exciting +portlier +politer +poitrel +plottier +decagram +xanthine +xanthein +protatic +capacitor +catoptric +apotropaic +apricot +patriotic +aprotic +participator +parotic +alogically +logically +illogically +glaciology +iteration +reanoint +orientation +anterior +aeration +inteneration +reorientation +orientate +itineration +reiteration +anointer +reorientate +pecking +zaptieh +hepatize +hemplike +likability +calliope +alopecic +alopecia +chordal +clochard +jerrican +aluminic +cacuminal +animalculum +animalcula +halibut +habitual +reembarked +bedmaker +embarked +antiknock +programer +reprogram +preprogram +programme +programmer +edaphic +headpiece +bevomit +figurine +refuging +refiguring +gunfire +unfreeing +downfall +wolfing +following +fowling +flowing +bullhorn +armhole +melanomata +lomenta +omental +telamon +nonmetal +nonmental +allotment +unchoke +landgrab +workpeople +ferryman +fluxing +matured +armatured +maturated +trumpery +anymore +aeronomy +yeomanry +drowning +drownding +wrongdoing +windrowing +wording +reanalyze +analyzer +nonempty +monotype +crowned +cornrowed +recrowned +decrowned +decrown +moniliform +nucleonic +nucleoli +external +relaxant +unvoicing +unconvincing +awkwardly +vindaloo +nonvalid +backbite +tieback +wimpled +chromed +gonophore +chelatable +catchable +hatchable +teachable +attachable +tetanized +haranguing +unhairing +hurrahing +myalgic +magically +endearment +codicological +dialogic +dialogical +cocaptain +anticipation +incapacitation +capacitation +panoptic +coaptation +optician +paction +capitation +caption +towhead +towheaded +amphiphile +bothria +pandour +outlining +guillotining +glouting +louting +nonguilt +caballing +cabling +balancing +carving +craving +caravaning +caravanning +creeping +creping +prepricing +piercing +repricing +headhunted +headhunt +unheated +haunted +unhatted +pronotum +nontrump +clambake +camelback +vibrant +dentalia +alienated +dateline +delineated +dentinal +dilettante +dilettanti +italianated +delineate +entailed +datelined +lineated +tideland +initialled +initialed +tripled +connivance +novocaine +tenfold +butterweed +afternoon +miracidial +gimleted +platelike +tapelike +petallike +megabit +rundlet +trundle +trundler +trundled +unlettered +underlet +catcalling +cantillating +latticing +lancinating +lactating +glaciating +catling +antalgic +talcing +anticling +lixiviate +laxative +unpopular +languor +nongranular +carpooler +corporeal +helping +chalutz +divorcer +coderived +coderive +divorced +codrive +divorcee +divorce +revoiced +codriver +flexibly +rocketed +crocketed +trocked +unboxed +quinquennial +quinela +quinella +quiniela +aquiline +condominium +conidium +oncidium +mucinoid +bladdery +readably +dryable +epicedium +pumiced +included +nuclide +include +depilate +lapidated +pileated +dilapidate +palpitated +palliated +lapidate +plaited +depilated +dilapidated +taliped +naprapathy +adductor +upgirded +pudgier +mutable +umbellate +ambulate +hypopnea +hyponea +xanthone +hygrograph +orography +produce +producer +reproducer +procured +recouped +procedure +coproduced +coproducer +reproduce +coproduce +reproduced +produced +reliably +biyearly +liberally +bilayer +illiberally +blearily +parklike +invagination +innovating +navigation +gavotting +vagotonia +rackety +bedcover +verbify +haematic +thematic +hematitic +metathetic +mathematic +hematic +exoenzyme +barbecued +cudbear +broguery +neptunium +pinetum +untinged +duetting +mockery +keckling +nickelling +cleeking +nickeling +curvature +cloggier +crowning +crowing +cornrowing +manurial +ruminal +luminaria +incivility +alright +arthralgia +couturiere +couturier +toreutic +courtier +deuterium +chapping +agreeably +beggarly +laccolith +catholic +laccolithic +catholicoi +thruway +becudgeled +becudgelled +becudgel +infirmed +indemnifier +manhole +beflower +bellflower +megapode +megapod +piecemeal +linoleum +enchantment +catchment +hatchment +attachment +manchet +enhancement +lionized +univalve +angularly +whapping +inquietude +inquieted +quietened +honeydew +interbred +interbedded +interbreed +interbed +mulcted +ropable +probable +operable +pyrolyzer +pyrolyze +bedwarfed +bedwarf +muffling +unmuffling +fulmining +fluming +blackfly +unmuzzled +hylozoic +overbroad +overboard +beaverboard +bravoed +aboveboard +delivery +devilry +redelivery +relievedly +nudicaul +duncical +dulciana +incudal +glitzier +billowing +wobbling +bowling +blowing +charged +recharged +tetanoid +antinode +antidote +denotation +anointed +ideation +intonated +detonation +iodinated +iodinate +indentation +antidoted +notched +thecodont +nonchalance +chalone +vanadium +downpipe +pinewood +flatulent +unaffluent +affluent +catenating +enacting +antigenic +accenting +agenetic +craping +crapping +carping +prancing +whiffler +jocular +divagated +divagate +bacchante +narrowband +browband +comatik +whomever +backyard +cottagey +begirding +rebidding +inbreeding +breeding +rebreeding +birdieing +beringed +rebinding +debriding +fancier +refinance +financier +upreach +forming +informing +conepate +nonacceptance +unideal +unallied +unnailed +aliunde +tictacking +ticktacking +attacking +anticaking +tacking +anticking +chucking +chunking +bawdily +couranto +courant +turncoat +flunked +faction +notification +officiation +fantoccini +officiant +citification +delator +leotard +reallotted +tolerated +leotarded +thalamic +vaudeville +cowling +clowning +unconnected +counted +uncounted +duecento +outcounted +conducted +diluvian +individual +illimitably +mailability +amiability +illimitability +niccolite +election +collection +centillion +lection +nonelection +intellection +metricize +prerequired +reequipped +avocation +activation +vaticination +inactivation +convocation +invocation +vaccination +vocation +vacation +cavitation +nonlethal +anethole +halothane +nonathlete +anethol +ethanol +ultrapure +perpetual +prelature +phoenix +enfeeblement +adulterer +ultrared +adulterated +adulterate +laureated +toluide +mazedly +amazedly +overnice +convincer +reconvince +corvine +conceiver +noncoercive +reconceive +conniver +colorant +contralto +azimuth +tenderize +tenderized +eternized +tenderizer +hundredth +untethered +thereunder +thunderer +thunder +thundered +cyclotron +inaptly +pliantly +ptyalin +clinged +declining +diligence +ceilinged +definitize +definitized +liquified +liquefied +epicuticle +revegetated +aggravated +barnacle +balancer +rebalance +credendum +plebeian +biplane +truepenny +unpretty +tampion +pointman +timpano +ptomain +maintop +demiurge +cinnabarine +carabinieri +carabinier +carabiner +carbine +carabine +carabineer +carabiniere +barquette +alkalinity +flokati +miaowing +womaning +daywork +workaday +workday +yardwork +empaneled +empanelled +napalmed +emplaned +epiphany +podgier +porridge +enchanted +chanted +hydranth +hydrant +epigenetic +incepting +camphene +chapmen +violate +violative +volatile +accouter +accoutre +outercoat +outrace +evadible +bivalved +dividable +umbrella +umbellar +allotropy +prototypal +allopatry +portrayal +noncountry +country +tallowed +latewood +vomiting +motiving +eroticize +ozocerite +reimaged +diagramed +diagrammed +mercurate +maieutic +brawled +warbled +awardable +rewardable +drawable +comfrey +exuviate +propertied +peridot +proteid +dioptre +proteide +peridotite +diopter +radicel +radicle +decrial +ruinate +taurine +antinature +urinate +uranite +uraninite +intrauterine +reboring +bioengineering +bioengineer +ringbone +enrobing +itinerary +windmilled +trachoma +achromat +brachial +polkaed +flavour +flavorful +berdache +breached +hindgut +thudding +munificence +acetamide +decimated +acetamid +decimate +medicated +medicate +emaciated +paviour +oughted +toughed +armadillo +bacillary +barbarically +crabbily +antiweed +expatiated +expiated +thermal +firebomb +inexpert +trefoil +loftier +freeboard +forbade +exonerate +unlaundered +launder +lurdane +unlearned +launderer +laundered +ochring +choiring +choring +upcurled +preclude +precluded +cephalic +gravely +gravelly +averagely +tormented +tenderometer +mordent +mentored +entoderm +jetliner +tzardom +wintrily +nematic +antiemetic +cinematic +maintenance +catamenia +immittance +mincemeat +emittance +redbaited +arbitrated +diatribe +rabbited +rebaited +tribade +redbait +eulachan +preparatory +portrayer +prodromata +acyloin +iconically +colonially +laconically +conically +canonically +cyclonically +noncyclical +centerline +centiliter +intercell +elegantly +filtered +flirted +refiltered +trifled +flittered +cachinnation +chthonian +bridling +dribbling +oculomotor +decennial +inlaced +alcidine +celandine +dalliance +calcined +colewort +coupler +recouple +opercule +hoicked +bombardon +boardman +foundry +bitterweed +incarnating +trancing +attracting +granitic +carting +tracing +crating +trembled +winkled +importer +reimport +excipient +circuiting +cincturing +trucing +tincturing +highlighted +delighted +lighted +delight +adaptivity +vapidity +cremated +demarcate +demarcated +decameter +macerated +brailling +grabbling +brailing +balbriggan +garbling +rabbling +brabbling +blaring +thieving +millwork +legator +allegretto +gloater +waterfall +waterleaf +flatware +methenamine +thiamine +anthemia +hematein +haematin +hematine +hematin +whitening +whitewing +weighting +whetting +fledgier +filigreed +reminted +dinnertime +diriment +detriment +intermedin +determiner +redetermined +determine +netminder +determined +redetermine +intermitted +declaimed +claimed +camailed +medallic +acclaimed +decimal +medical +academical +declaim +drawlier +nondriver +overdriven +overridden +environed +coalier +cariole +rocaille +loricae +calorie +carriole +tailplane +palatine +tinplate +penitential +tapeline +pieplant +pantile +petaline +palatinate +fromage +variegate +virgate +gravitate +aggregative +ergative +gravitative +inthral +inthrall +variation +innovator +phorate +ephorate +orthoptera +flowerette +felwort +floweret +broomrape +uncleanly +arrowing +narrowing +draconic +draconian +accordion +noncardiac +carcinoid +cancroid +academician +maenadic +niacinamide +exorable +embolic +hobgoblin +hobbling +convoking +overenrolled +overlend +vitamer +ciphony +monaxial +grouping +uppropping +inpouring +rouping +pouring +ingroup +proroguing +truancy +undergrounder +grounder +undergod +guerdoned +underdog +guerdon +grounded +reground +undergone +ungrounded +underground +undergo +deterrently +tenderly +mocking +outtrick +untipped +unpitied +inputted +ineptitude +youthful +youthfully +telomic +cokehead +reindicted +interdict +reincited +dicentric +reindict +indicter +interceded +interceder +interdicted +indecenter +indirect +intercede +dendritic +pharmacy +flyboat +biathlete +tithable +habitable +habilitate +pledgeor +prologed +pledgor +pygidial +bitchier +honeymooned +organology +laryngology +druidical +cuadrilla +radicular +boughed +foxhound +pavilion +pavillon +campier +paramecia +advantaging +divagating +rippable +repairable +irreparable +irrepealable +canthaxanthin +xanthic +redriving +redividing +deriving +diverging +yearbook +brooding +creolize +colorize +obliger +globbier +fidgeting +chaplain +cerotype +protectory +preceptory +nonhunter +unthrone +thereunto +hereunto +phenotype +neophyte +decollate +allocated +decollated +collocated +collated +colocated +located +downtrend +downtowner +downtrodden +fencerow +torridly +totalling +gloating +litigation +agitational +antilog +ligation +intaglioing +allotting +totaling +intaglio +glomera +gomeral +officered +recodified +codifier +cherubic +chubbier +billhead +hidable +camphol +chamfer +heartbreak +heartbreaker +hemolyze +exampled +bibliophily +jittering +fracted +tradecraft +refracted +crafted +fayalite +invalidly +gentility +eyeletting +intelligently +tellingly +negligently +churning +ruching +unchurching +crunching +churring +churching +twanger +weimaraner +wireman +prinked +downturn +turndown +dilution +toluidin +codependency +gormand +ondogram +dragoman +mandragora +ploying +unroofing +hypertrophy +heterotrophy +orthoepy +zabajone +chaffing +chafing +lignified +fielding +fledging +defiling +fledgling +heparin +educible +deducible +unpurged +repugned +cointer +concretion +contrite +necrotic +concerti +tricorne +noticer +reconnoitre +innocenter +reconnoiter +erection +interconnection +reconnection +nonerotic +enterococci +incorrect +criterion +interconnect +correction +tricotine +neoteric +interionic +concertino +concentric +flowerier +lowlifer +premodern +quickly +amenably +echeveria +archive +achiever +chivaree +wherefrom +joypopping +lackeyed +trepanned +patterned +penetrated +trapanned +repatterned +parented +entrapped +partnered +perennated +battlement +embalmment +lamentable +embattlement +lambent +babblement +mumbling +bumbling +bluming +numeral +ruction +codling +condoling +coddling +colliding +lingcod +impregning +premiering +perming +gripmen +impinger +impregn +demarche +charmed +drachmae +marched +crawled +intertwined +wintered +wintertide +inherited +latrine +retinal +trilinear +entailer +antiliterate +antilitter +trenail +treenail +inertial +reliant +interlinear +elaterin +interrenal +triennial +ratline +internal +interrelate +intertrial +claylike +caution +countian +annunciation +cunctation +actuation +continuant +continua +continuation +auction +incaution +mitogen +nonmeeting +emoting +mignonette +mentioning +dehydrate +hydrate +rehydrate +thready +hydrated +dehydrated +rehydrated +lynchpin +coquina +conquian +kingwood +untangle +ungulate +angulate +gauntlet +languet +packeted +deaving +davening +evading +dybbukim +edibility +debility +bootlegger +valiancy +prothorax +nonracial +conciliar +noncaloric +clarion +carillon +ironical +gulfweed +promotion +arrowhead +harrowed +headword +filbert +thriving +retentivity +inverity +typically +typicality +atypically +atypicality +atypical +typical +capitally +dihedron +hordein +dithery +heredity +cymbidia +humbler +rummaged +demurrage +demotion +motioned +mentioned +hauberk +gimmickry +unilinear +hecticly +lecythi +ethylic +helicity +techily +tetchily +impearl +milliampere +palmier +impaler +imperial +lempira +antinodal +additional +antidotal +dilation +nontidal +dilatation +dilatational +betokened +beknotted +erythrocyte +crotchety +caracolled +caroled +carolled +corralled +collared +recoaled +coleader +caracoled +preheadache +parched +preached +coachwork +hackwork +philology +huggable +laughable +demerging +redeeming +rereminding +reminding +remending +degerming +demergering +rhizobia +bouncing +buncoing +imputing +tumping +feodary +forayed +foreyard +fabliaux +chokier +hardwire +rawhide +wirehaired +hardwired +rawhided +undergirded +ungirded +undergirding +unrigged +underrunning +dungier +undergird +enduring +unloaded +duodenal +nonprofit +offprint +footprint +exhibited +filthier +picnicked +jarldom +trotline +ritornelli +ritornello +tortellini +retinol +publicly +farmable +frameable +framable +tilbury +chirmed +attenuator +aeronaut +outearn +unornate +fruitarian +antifur +brattice +brecciate +catbrier +rabietic +bacteria +reavowed +overawed +overdraw +hairband +hindbrain +cithren +intrench +cithern +interethnic +meagerly +lammergeyer +meagrely +pedagogy +caverned +cravened +advancer +caravanned +caravaned +antiwoman +urgingly +embryon +pollarded +leopard +paroled +levitated +validated +alleviated +validate +dilative +blacked +blackballed +blacklead +vegetating +negativing +invaginate +navigate +venenating +vaginate +negative +agentive +vintage +minority +nonminority +monitory +moronity +anointment +innominate +nominate +amniote +mentation +emanation +ammoniate +ammonite +meowing +brothered +throbbed +betrothed +brotherhood +bothered +primarily +epizootic +poeticize +forewomen +paltrily +partiality +partially +greengrocery +cryogen +cryogeny +predial +peridial +praedial +reapplied +pillared +parallelepiped +paradiddle +pedalier +freewheeled +exhalent +exhalant +indication +nondidactic +addiction +actinoid +anticodon +diatonic +dictation +nonaddict +condonation +acauline +cauline +nonorganic +organic +inorganic +enkindling +hymenal +hymeneally +hymeneal +relievable +variable +revivable +thriven +cantraip +cantrip +patrician +participant +airpower +premolar +rampole +premoral +docudrama +yellowware +croquette +croquet +aperient +painter +interpenetrate +appertain +tripinnate +paintier +repaint +terrapin +pretrain +triptane +pertain +patienter +inapparent +antirape +truckful +prehiring +immunogen +meouing +plainer +airplane +perineal +perennial +praline +deflowered +deflower +deflowerer +reflowed +flowered +reflowered +enamelling +liegeman +gallamine +meningeal +emalangeni +gleaming +enameling +geminal +querida +quarried +canoeing +coinage +oceangoing +angiogenic +radiolarian +nonrailroad +doornail +ordinal +crowdie +outbrag +naphtol +naphthol +haplont +perigyny +preying +thuggery +theurgy +impinged +impending +impeding +knackered +cranked +cankered +checkable +bechalk +caboched +gunwale +torulae +untutored +untrodden +deuteron +unrooted +undertone +nontenured +ridgeline +regilding +ridgeling +reedling +reddling +relending +redrilling +engirdled +engirdle +lingered +redlining +engirdling +childbed +bandleader +renderable +blander +infection +confection +coefficient +confetti +globulin +deorbited +deorbit +orbited +finalize +drearily +readily +negation +negotiation +negotiant +negotiate +negotiating +threepence +perceived +numerate +remunerate +ramentum +enumerate +farcically +clarify +conidial +nodical +conoidal +diaconal +waggoned +wagoned +gowaned +evolvement +congaed +decagon +dodecagon +nymphae +nymphean +helloing +fraying +rarifying +affraying +forechecker +forecheck +coulter +coculture +clouter +electrocute +cloture +occulter +axiology +bitumen +baldpate +adaptable +depletable +bedplate +oompahed +valerian +ravelin +pulicide +clupeid +pellucid +hypodiploid +hypoploid +phylloid +podophylli +hypodiploidy +handling +highland +autarchic +haircut +intimated +detainment +intimidate +diamante +deaminated +adamantine +amantadine +dementia +deaminate +intimidated +mediant +animated +maintained +hardily +bondwomen +enwombed +pompadour +legerity +glittery +huzzaing +huzzahing +rumpled +empurpled +blurted +traiked +robotize +achromic +experience +inexperience +reexperience +rhizoma +mahzorim +crinoline +cornicle +reconciler +reconcile +toylike +gullibility +inventively +lenitively +youngling +rebounded +unrobed +rebounder +rebound +bounder +planted +leadplant +endplate +earlock +cognate +cotangent +coagent +affirmed +ramified +reaffirmed +ventured +rainout +ruination +trituration +urination +autorotation +prevail +reprieval +leftover +ultravacua +unranked +unraked +taborin +arbitration +antiabortion +abortion +myelocyte +pumicer +reproacher +carpophore +reproach +copperah +poacher +projector +project +birdlimed +limbered +birdlime +embanked +cordite +cordierite +creditor +director +coeditor +retrodict +codirect +retrodicted +codirector +codirected +immolate +broacher +replumb +plumber +cajoler +microcircuit +legalizing +illegalizing +limitative +converter +convector +convert +reconvert +nonvector +convertor +controverter +controvert +aborted +tabored +teeterboard +borated +teaboard +wricked +wickeder +unakite +antinuke +uncrate +centaurea +utterance +uncreate +nurturance +centaur +truncate +fenugreek +reglazed +overcrowded +overcrowd +bedight +bighted +bedighted +oppugner +forwent +forewent +orthicon +ornithic +exergual +regranted +dragnet +degenerate +regardant +degenerated +generated +granted +regenerated +greatened +calendared +calendar +calender +candler +calendered +calenderer +recleaned +martially +limitary +maritally +militarily +military +overwetted +codeveloped +codevelop +jodhpur +graphing +harping +paragraphing +depurated +predeparture +updarted +updater +departure +perpetuated +raptured +depauperate +uprated +depurate +trembly +brooming +unlatch +cyanided +cyanide +vrooming +mixology +ninebark +karabiner +founding +fungoid +cloudily +boogeymen +bogeymen +boogymen +bogymen +dingbat +unpliant +unplait +nuptial +lilliputian +cholent +fribbled +belfried +riflebird +manatoid +damnation +dominant +domination +admonition +nondominant +intimidation +trolling +rototilling +earwigged +keratomata +keratoma +blotchy +fimbriae +tumefied +trowing +worriting +heightened +tightened +aliquant +quintal +coccygeal +fallibility +affability +unfading +mothball +puberty +prepuberty +fomented +pineland +plained +coaming +comanaging +monogamic +cognomina +cannabinoid +queenlier +confide +confined +confided +nonconfidence +coffined +confidence +canonize +cocainize +antibug +abutting +intubating +tabuing +cheveron +chevron +pignora +paragoning +aproning +televiewer +benignity +entryway +quoited +alluding +unlading +languid +lauding +bedrench +bedrenched +paranymph +inkberry +baching +choregi +numerary +agatized +embattled +barbarizing +arabizing +brazing +dowager +wordage +adjacency +novelize +parhelia +perihelial +harelip +perihelia +peripheral +pigeonwing +pocketbook +playgirl +plagiary +procreator +cooperate +procreate +corporate +cooperator +acceptor +protectorate +cartopper +uncivilly +equivoke +carpellate +praelect +plectra +placater +applecart +receptacle +gonorrhea +epitaphial +epithelia +haplite +epithelial +quanted +bradycardia +clavicular +avicular +twiddler +twiddlier +twirled +officially +coalify +tagmemic +gametic +becalmed +cruzado +expiable +diarrheic +chaired +headachier +ovariole +variole +woodblock +jellybean +anything +outtowered +outrowed +outdrew +adynamic +dynamic +cyanamid +nonmotility +everting +reverting +riveting +retrieving +reinviting +revetting +intervening +reinventing +vignetter +inverting +rivetting +collaged +decalog +changer +carragheen +gearchange +rechange +boxhaul +precooled +unjoyful +dodgeball +vendible +catenary +nectary +centenary +tercentenary +electrometer +flicker +fickler +frecklier +delphic +cheliped +valency +reperking +kippering +perking +corroding +cording +noncorroding +cordoning +flaying +failingly +flaggingly +blinked +camphor +hypertext +quarterage +kyanite +peaking +flumped +radiating +dratting +darting +irradiating +gradating +trading +reinciting +reerecting +gentrice +intergeneric +centering +centring +erecting +reciting +energetic +rhythmic +rhythmicity +chattily +entangled +gallanted +gantleted +tangled +nightlong +lithoing +tholing +bonneting +nonbetting +receiving +reverencing +printery +unmacho +nazified +denazified +contorting +plantable +patentable +metalize +metallize +decremented +decrement +valiantly +polytene +polyteny +potently +quaking +unfilled +undefiled +nullified +unfulfilled +pillaged +diplegia +cheloid +helicoid +unfazed +dormant +mordant +mandator +nondormant +blacktail +backlit +tailback +gaudery +depainted +painted +pentapeptide +patinated +pinnated +patined +antependia +depaint +hegemony +homogeny +ozonating +antagonizing +azotizing +tribrachic +tribrach +lovebug +zinkified +warlike +weaklier +unlawfully +leeboard +labored +beadroll +adorable +orderable +belabored +imbalmed +dimmable +judicial +flummery +fumarate +weaving +inweaving +inhibited +dominick +codebtor +apogeic +broiled +erodible +reboiled +bloodier +journal +watcher +leukemic +fluorin +calyptra +cryptal +dogfight +devouter +outdrove +overtured +choline +helicon +colchicine +clotting +ditcher +chittered +recoiled +cloddier +collider +crocodile +amyloid +wifedom +tabletop +potable +triclinia +intracranial +benzophenone +kentledge +anytime +amenity +rectitude +certitude +circuited +recruited +deuteric +diuretic +trainway +lynching +chillingly +clinchingly +cornily +aftermarket +inaccuracy +wiretapper +wiretap +clumber +cerebellum +crumble +driveline +bookmarker +bookmaker +profiter +firepot +profiteer +piefort +lexicalize +mycelium +bleached +phellogen +pliability +palatability +palpability +pitiably +playability +fallowed +cavitied +deactivated +addictive +cavitated +vaticide +deactivate +advective +activated +nonbanking +prefrozen +clarifier +effacing +enfacing +whirlpool +whippoorwill +tempting +impingement +temping +pigment +pigmenting +inhaler +hairline +hernial +nervily +laywoman +womanly +fluidally +rounding +grounding +unrounding +lofting +footling +abdicated +abdicate +diabetic +forebay +eigenmode +mendigo +enwrapped +predawn +prewarned +prawned +interfile +infertile +flintier +interfertile +covelline +nonviolence +violoncelli +violence +violoncello +helminth +matutinal +illuminant +minutial +illuminati +hemolymph +phyllome +auriculae +auricle +incapacity +captaincy +antipyic +firepink +attenuating +unitage +tautening +conglobe +idolizer +roughed +diazotize +diazotized +azotized +comminution +continuum +mechanic +chainmen +mechanician +machine +reportage +prorogate +propagate +porterage +portage +compart +compactor +comparator +wimbled +idiolect +doughnut +cannelloni +nonallelic +neocolonial +cyclotomic +dunelike +unlinked +uncloak +wimbling +camomile +hoicking +choking +hocking +chocking +renatured +underrated +redundant +truanted +daunter +unrated +natured +underate +untreated +untread +underrate +undereaten +undertenant +denaturant +denatured +denature +undereat +humeral +methoxy +minuter +unmitre +mutineer +unmiter +triennium +nutriment +immurement +inurement +brookite +reitbok +telegram +buirdly +kything +nonlibrarian +baronial +probing +aureoled +roulade +tictocked +ticktocked +inwrapping +parawing +wrapping +prawning +warping +graymail +butylene +prurience +foozling +coembody +carryover +typeface +forgave +fluently +tunefully +political +apolitical +occipital +coalpit +optical +topical +capitol +wracked +inflexion +flexion +megillah +nannoplankton +plankton +belonging +ignoble +ennobling +catamount +faggoting +antifogging +fagoting +funerary +incommode +incommoded +comedienne +demonic +thunked +intraday +abutment +toiletry +flinder +friendlier +infielder +graphed +paragraphed +chickpea +rockweed +dockworker +reglowed +growled +glowered +cloakroom +armlock +lockram +peytral +peartly +pteryla +pterylae +habitue +habituate +gravity +fanfaronade +briquette +briquet +biennially +inalienably +torched +crotched +hectored +crocheted +tochered +tubifex +climactically +calamity +climatically +trinketed +reknitted +tinkered +interknitted +antitheft +umlauted +medullated +emulated +pyronine +tabooing +obtaining +tobogganing +boating +millefleur +polytonal +polytonally +evacuant +mummifying +maumetry +ultraleft +refutal +tearful +aflutter +formerly +degradedly +raggedly +menially +naphthyl +gentrifier +fettering +enfettering +fretting +ferreting +refitting +interfering +frittering +dekagram +ruffling +unfurling +furling +rambutan +foxtail +copatron +taxemic +decerebrate +abreacted +bracted +cerebrated +acerbated +decerebrated +overeaten +overneat +venerator +renovate +renovator +nonveteran +directrix +ridicule +ridiculer +curlicued +cuddlier +ridiculed +mandrake +earphone +harpooner +tumbled +burgundy +outleapt +outpopulate +outleap +populate +wricking +coupled +decoupled +decouple +howling +hollowing +thetical +athletic +hectical +catechetical +ethical +ideomotor +meteoroid +witched +twitched +witchweed +pantoum +tambour +tamboura +marabout +glanced +clanged +yachtman +lutecium +multicell +clitellum +inexpedient +expedient +jagghery +hacking +bairnlier +ballerina +bilinear +inenarrable +inarable +umbrage +brummagem +oceanaria +noncarrier +cocinera +multiwall +amphioxi +broadaxe +breadbox +foulbrood +upthrew +tactfully +faculty +factually +repayable +ballplayer +paraplegia +perigeal +pillager +decretive +directive +verdict +fiberized +fettling +fileting +fleeting +felting +filleting +lithoed +theodolite +inquired +enquired +reaping +prearranging +repapering +perigean +appearing +repairing +papering +preparing +reappearing +cribbage +intravital +antiviral +accountancy +overhoped +mycetomata +mycetoma +marcelled +cocurricular +reinvented +intervened +inverted +reinvited +deathtrap +threaped +preheated +glandule +ungalled +monadnock +grumpier +finickier +finnickier +bunglingly +bullying +operand +aproned +pardoned +padrone +pandore +pardoner +delicacy +aircheck +chickaree +entoproct +preconcert +precentor +cooeying +balkline +beanlike +linkable +allomorph +homopolar +amphoral +tumoral +alumroot +condyloid +bloomery +gunfought +unfought +repairmen +repairman +imipramine +pearmain +manlike +animallike +impleaded +impaled +implead +protonotary +nonparty +outrigger +groutier +goutier +unbuttoned +buttoned +obtunded +undoubted +dubonnet +unbonneted +uneatable +abluent +tuneable +tunable +unbeatable +untenable +infecting +effecting +buckled +roughly +tramelled +trameled +maltreated +trammelled +trammeled +blithely +gallivant +galivant +vigilant +galivanting +galavanting +invigilating +gallivanting +turpitude +irrupted +quavery +tailpiece +cappelletti +elliptical +plicate +cataleptic +ethicized +definitive +jellying +preacted +deprecated +reaccepted +carpeted +deprecate +midfielder +refilmed +drumming +foldable +trephine +nephrite +pricked +pickeered +crewman +fluidized +fluidize +examiner +reexamine +untucked +radioing +adoring +dragooning +gadrooning +ordaining +rigadoon +adorning +faithful +graecize +premold +premolded +brewing +coelomata +coelomate +acoelomate +celomata +breakup +cowbird +threadbare +breadth +breathed +befingering +briefing +befringe +befringing +befinger +leucemia +podzolize +podzolized +ligulate +aiguillette +kallikrein +lankier +profaner +profane +thralled +leathered +tetrahedral +letterhead +haltered +lathered +betiding +debiting +cognovit +convicting +equalize +zoological +vicarage +caregiver +grumping +umpiring +lognormal +overcropped +noncombat +noncombatant +combatant +damping +truanting +triturating +ingurgitating +intriguant +ruinating +uningratiating +urinating +inaugurating +brulzie +yearning +dulcified +epitomize +optimize +undraped +unprepared +underprepared +undrape +vaguely +benthic +whitehead +captaining +anticipating +catnapping +capacitating +incapacitating +peaceful +purline +perilune +flaring +raffling +grizzled +redoubt +obtruder +obtruded +obtrude +doubter +outbreed +outbred +tankful +tariffed +draftier +ratified +extermine +intermix +faulted +defaulted +default +pinpointed +pointed +petitioned +optioned +endpoint +endopodite +wreathy +chaufer +chauffeur +rechauffe +chauffer +whitely +glochid +chilidog +godchild +autodidactic +autocoid +autodidact +autacoid +evaluative +eluviate +fancifying +fancying +banknote +coexerted +upgraded +upgrade +unbroke +unbroken +waterman +watermen +oppugned +geepound +abnormal +caulker +hardback +nonfading +undecadent +aduncate +adducent +unacted +cuneated +accentuated +unaccented +uneducated +abridge +abridged +brigadier +brigaded +brigade +bigarade +abridger +brakemen +brakeman +fiercely +kouprey +frenched +applaudable +dupable +nonagenarian +orangier +nonearning +orangerie +fuelwood +nickering +recking +ringneck +fertilize +fertilizer +upgrown +grownup +brokerage +brokage +makeready +walkout +outwalk +unfailing +gainful +unflagging +margarite +emigrate +migrate +ragtime +immigrate +neatherd +heartened +threatened +tenderhearted +adherent +extradited +extradite +tunicle +lenticule +cutline +linecut +mantric +butling +blunting +frizzled +bandying +rottweiler +unbuttered +debenture +ferrying +reifying +refrying +patriarch +parritch +phratric +runkled +knurled +unclubbable +unbalance +unripped +underpin +unripened +underpinned +hawkbill +propitiate +reappropriate +appropriate +priorate +nonleafy +adjuvant +taffetized +acetylic +telically +tactilely +eclectically +dakerhen +hearkened +hankered +harkened +rethink +rethinker +thinker +kaffiyeh +dulcify +quintar +antiquarian +quatrain +ladykin +ratfink +coverup +coalyard +ontogenetic +geotectonic +contenting +oogenetic +connecting +contingent +contingence +noncontingent +conceiting +nongenetic +xerotic +excitor +exoteric +haloing +holloaing +hollaing +hallooing +hilloaing +hooligan +halloing +halloaing +blowback +handicap +grumble +grumbler +conflict +infliction +confliction +buntline +bulletin +ebullient +barefoot +corroboratory +enunciate +tunicate +annunciate +cuneatic +uncinate +tunicae +diarchy +hydracid +dyarchic +buttonball +butanol +proverbed +evolving +livelong +tumbrel +tumbler +birthwort +unbitted +bouldered +redouble +redoubled +doublure +boulder +doubler +eternizing +routemen +remount +motoneuron +mounter +yokozuna +kayoing +okaying +reapproved +approved +vapored +preapproved +moldboard +broadloom +hedonic +echinoid +endurance +undercard +durance +curarize +opportune +outpreen +carotene +nonreactor +coronate +reconcentrate +recontact +accentor +concentrator +catercorner +enactor +concentrate +coughing +ouching +hiccoughing +couching +concealer +olecranon +corneal +tragopan +duvetyne +duvetyn +veinulet +vituline +furlable +barrelful +needlewomen +clacking +clanking +cackling +lacking +calking +excurrent +convoked +chromyl +pamphlet +helpmate +tomback +topline +pointelle +nilpotent +plotline +potline +plenipotent +diptera +repatriated +pirated +partied +immanency +gaunter +unregenerate +runagate +guarantee +rabidity +defeminized +defeminize +feminized +filiation +inflation +foliation +affiliation +flotation +floatation +cacciatore +certiorari +carrotier +erotica +ralphed +peopling +pollening +eloping +melting +gimleting +ecthymata +ecthyma +rouleaux +fletcher +rachillae +hierarchical +leachier +hierarchal +chelicerae +cheliceral +chelicera +charlie +meningitic +cementing +weathered +wrathed +thrawed +thwarted +earthward +headwater +wreathed +hawkmoth +tomahawk +enterable +rentable +kilowatt +typebar +atrocity +citatory +partaken +grecizing +plaguing +remortgage +mortgager +mortgagee +mortgage +overpay +jargoning +mirliton +chimbly +crowfeet +premarket +keynoter +arboreally +definition +notified +birchen +inbounded +unbodied +bedouin +cacodemon +commanded +microbar +choicely +countdown +cutdown +rubying +burying +planking +painkilling +explicit +locomoted +butyric +multiline +multielement +hairworm +lichened +clinched +gunfighting +gunfight +prefilled +prefiled +pilfered +imparity +repatch +heptarch +patcher +chapter +runabout +turnabout +nameplate +prolonging +prologing +thumped +driftwood +lichting +chitling +twopence +gradable +gallbladder +bedraggle +bedraggled +garbled +grabbled +degradable +loading +gonidial +gonadial +dialoging +diagonal +predator +reoperated +depredator +preadopt +readopted +tapadero +prorated +readopt +preadopted +teardrop +tetrapod +adopter +operated +parroted +perorated +peaceably +violable +bioavailable +obviable +dimorph +flapjack +jacketed +bibliomania +binomial +reengraved +engraved +quakily +marbled +redeemable +rambled +brambled +reenergized +energized +impatient +flambeed +homework +wattling +twangling +twattling +makeover +cowedly +nonnegligent +lentigo +entoiling +toileting +gravamen +heliacally +helically +playbook +ungowned +fetlock +waterloo +halogen +motivator +ringworm +worming +poppyhead +innovate +novitiate +nonnative +venation +annotative +innovative +greathearted +gathered +regathered +waddling +dawdling +windgall +repurified +purified +chawing +incunabula +unbiblical +timekeeper +outline +luteolin +elution +perforate +forepart +perforator +ungodly +haulyard +ejectable +debauchee +debauch +debauched +hydrator +decuman +performed +preformed +benthal +brochure +relegated +regelated +melanite +alinement +entailment +lineament +antimale +aliment +ailment +militiamen +lineamental +eliminate +laminate +thonged +malting +mantling +malignant +laminating +militating +amalgamating +colorman +effectual +fluctuate +choragic +choragi +nigrified +refinding +friending +fingered +refeeding +infringed +fringed +deferring +differing +redefining +airdrome +jeroboam +jamboree +protrude +outpoured +uprooted +trouped +outdropped +protruded +purported +imbruing +overhype +philomel +homophile +refloat +fellator +floater +futhark +megacycle +bickered +bricked +redbrick +bewailer +wabblier +brawlie +wirable +brawlier +kibitzing +kibbitzing +bluebird +builder +rebuilded +rebuild +freebooted +primatial +primatal +impartial +pendentive +phototropic +prototrophic +trophic +lathing +annihilating +hightailing +halting +alighting +mirrorlike +folkloric +landmark +procercoid +percoid +recopied +periodic +alterably +betrayal +rateably +femoral +gladdening +gliadine +aligned +ladening +deleading +dealing +leading +noctule +fraenum +breakaway +pebbling +bleeping +interzone +interiorize +lynched +dialyze +dialyzed +underbuy +paucity +telephone +phenetol +quilting +zillionth +valgoid +dunderhead +unheard +underhanded +underhand +dunderheaded +argotic +forkball +entozoic +enzootic +noncitizen +orective +evictor +corrective +mangold +glunching +unclinching +lunching +bravely +verbally +dognaped +dognapped +honouring +roughing +mudpack +unreeving +unnerving +melanize +animalize +brevetcy +naumachy +hogmane +pinwale +flutelike +hirpling +luckier +doughty +machzor +wakening +awakening +weakening +radiogram +fanwort +ghettoize +rehearing +hearing +rehanging +potherb +effectuated +precedency +diploma +twiddling +telford +foretold +crippling +outwind +overapt +evaporate +evaporator +vaporetto +overoperate +paginate +patenting +petnapping +neolith +hotline +bemuzzled +duckier +withered +writhed +withdrew +maximizing +recommend +condemner +recommenced +commender +recommended +condemnor +wildcat +epidermic +crimped +premedic +alloying +lollygagging +annoyingly +mummichog +lanthanum +pricket +picketer +canalize +beclouded +becloud +outgnaw +outgnawn +befouled +aborning +bigaroon +unchary +raunchy +interrupt +turpentine +interrupter +prurient +preunite +kidnapped +kidnapee +kidnaped +kidnappee +candying +cyaniding +caddying +uncurbing +curbing +flubbing +bluffing +downloaded +outface +whoredom +invitingly +payment +furrowed +unmindful +mindful +keelhauled +enamelware +liquate +tequila +flanerie +infernal +prodigy +porridgy +inhabiting +habiting +bathing +garbanzo +temblor +bolometer +functor +frontcourt +caricatural +urticarial +curtail +uralitic +turrical +actuarial +utricular +cuticular +ultracritical +culturati +articular +circuital +ancillary +cranially +epilimnion +pemoline +numeric +urinemic +growthy +wackily +charlatan +unrefined +unfired +unfriended +reunified +detectable +delectable +noncancelable +noncallable +concealable +canoeable +demanding +imagined +amending +endamaging +demeaning +adeeming +maddening +diademing +oliguria +cullying +cunningly +oviduct +overmix +manhandle +manhandled +petrified +prettified +tiredly +retiredly +generator +negator +tetragon +nontarget +teratogen +regenerator +negatron +capuched +lampblack +bregmate +bregmata +unchanging +unchaining +unaptly +whamming +toppling +piloting +plotting +nonaccrual +courlan +cornual +catfacing +nubility +lacquey +demeanor +enamored +madrone +andromeda +normande +memoranda +marooned +ochlocrat +thoracal +trochal +throatlatch +backward +drawback +decondition +incondite +detection +endodontic +deconditioned +deontic +decoction +occident +conceited +ctenoid +conditioned +noticed +nonconditioned +coincident +calculated +melding +mildening +immingled +mingled +deliming +meddling +vernacle +relevance +outcaught +apprehend +apprehended +bankroll +bloodline +nonedible +geometry +cavitary +gratulate +reregulate +tegular +regulate +alchemical +chemical +alchemic +nonattendance +anecdota +concatenated +coenacted +coattend +anecdote +coattended +tacnode +contacted +cantoned +execrator +exactor +extractor +defalcate +defalcated +falcated +uprootal +invaliding +mothproof +wormhole +colophony +almonry +normally +implicitly +bricole +corbeille +coercible +corbeil +theorizer +theorize +unhonored +horehound +hounder +honoured +deerhound +hereinto +thereinto +thornier +inthrone +threonine +ornithine +inheritor +uncaged +parodied +airdropped +levanter +ventral +relevant +tetravalent +tervalent +enfeebling +tublike +tubelike +coliform +microfilm +frocked +defrock +defrocked +foredeck +wounding +mentioner +motioner +intromittent +intromitter +remotion +intermont +monoxide +excerpted +hoaxing +wipeout +abjured +choppier +rhizome +direful +flurried +reflected +culvert +overply +codable +caboodle +millcake +hotelier +interwar +tinware +tawnier +rainwater +antiwear +outtraded +outroared +outrated +autorotated +outread +outtrade +outdared +outdare +readout +puckerier +outbeam +underbidder +unburied +underbid +dependable +flawing +waffling +imagery +chetrum +repellency +propitiatory +topiary +apriority +bewilder +bewildered +bridewell +exceptive +glyphic +injection +ejection +climber +grapheme +reconvened +overconcerned +pedimented +pediment +impendent +impediment +morphin +kolkhoznik +kolkhozniki +brained +birdbrained +brandied +endbrain +routine +neutrino +nonroutine +interneuron +interunion +multilevel +volitant +violation +innovational +invitational +volitional +lavation +carmine +ambulacrum +ambulacra +ambulacral +polluted +outplodded +outpulled +outpolled +outplotted +roundly +triptych +faithed +giveaway +quivered +vermoulu +decalcified +calcified +deifical +potlach +potlatch +catchpoll +acrylate +rectally +clattery +treacly +farmhand +pacified +fearfully +tanglement +entanglement +tegmental +managemental +gentleman +typifying +finnmark +finmark +officiary +votable +voteable +blackboy +demount +demounted +denouement +mounted +unmounted +pygmaean +pygmean +pendulum +plumpened +auditoria +auditor +jaunted +plonked +crackpot +traprock +portapack +allodium +alodium +literatim +materiel +marlite +remittal +immaterial +maltier +altimeter +material +littermate +leitmotiv +munchkin +goddamned +gammoned +periling +repelling +lippering +perilling +urticate +caricature +cruciate +goldfield +typified +bilobate +illegality +legality +outlaid +geoponic +epigonic +crawlier +averring +aggrieving +reengraving +reaving +vinegar +averaging +ravening +engraving +plating +plaiting +palliating +palpating +platting +palpitating +planting +hollowware +holloware +hallower +enabling +bengaline +begalling +gainable +labelling +labeling +rejoining +racquet +loincloth +emporium +europium +tougher +thorougher +rethought +throughother +millpond +monoploid +putamina +timpanum +frowned +overlong +brevity +fluorene +unknowing +preemptive +primitive +nonintuitive +realized +idealizer +rainmaking +marking +moulder +mouldered +plaintiff +flippant +rhonchal +clamantly +benzoyl +laburnum +alburnum +abrogate +altitude +latitude +whirling +acutely +forceful +teakwood +reprinted +interdepended +intrepid +printed +interdepend +reinterpreted +interpreted +interdependent +pteridine +preprinted +epically +bloodworm +chewink +flapping +whitetail +whitewall +butyral +brutally +burkite +marrowfat +vawntie +outfight +demurely +braking +ringbark +barking +ringbarking +grimacing +cramming +pinnular +auditing +dauting +daunting +inundating +parrying +agrypnia +praying +balanced +danceable +rejoiced +bawdric +avowing +embowered +bewormed +hippogriff +promptly +effectivity +mantled +lamented +adjourn +covenant +covenantee +centavo +noncrime +monomeric +incomer +microeconomic +merocrine +upgirding +whoofing +alkalinize +gamekeeper +arguably +burglary +bullyrag +textually +untaxed +extenuated +acrobatic +pokeberry +mackinaw +typifier +petrify +prettify +homeowner +unmanaged +undamaged +agendum +beatified +bumping +polenta +pentanol +antelope +pantalone +locking +clocking +clonking +cockling +futharc +jaboticaba +bewrapped +lightweight +imprinting +guidwillie +greenfly +ideologic +outbribe +firewater +corbeled +corbelled +clobbered +colorbred +faithing +hafting +incurve +cloying +cloyingly +cooingly +glyconic +collying +iconology +pinfold +widthway +infinitely +finitely +felinity +tzaddikim +undeceive +undeceived +birdmen +twinkling +welcomely +preachy +eparchy +grunted +trudgen +inflexed +overlearn +rapacity +triptyca +pinhead +headpin +pinheaded +flowage +autogiro +intoxication +toxicant +intoxicant +nonintoxicant +antitoxic +buttoning +unbuttoning +bifacially +probity +chimera +chimaeric +chimaera +outgiving +outvoting +activator +victoria +bullocky +urolith +overmine +omnivore +vomerine +bauxitic +bargeboard +garderobe +overfavored +overfeared +favored +crownet +butanone +aconite +acetonic +concatenation +catenation +taconite +weighty +oxazepam +prejudger +prejudge +prejudged +overworked +upgazed +tenderfoot +fronted +refronted +retroreflector +reflector +glycine +fimbrial +loanword +cartouch +coauthor +cutthroat +accentual +lacunate +enucleate +canulate +tenacula +nucleate +brindle +linebred +brindled +rendible +blinder +goldenrod +goldener +alternated +antlered +proofread +proofreader +thickety +cartoony +contrary +octonary +preoccupy +reoccupy +glenoid +doglegging +eloigned +trademark +remarketed +dekameter +marketed +trademarked +yocking +buccaneer +unbrace +harrying +floppier +profile +profiler +pilferproof +thicketed +hitchhiked +dulcetly +appendix +welcomed +concluded +unclouded +uncooled +conclude +rallying +angrily +grayling +glaringly +ragingly +cityfied +pockily +gliomata +flaking +flanking +dornick +whopping +whooping +uintahite +cyclizing +brazened +crutched +dialectic +dialect +ciliated +citadel +dialectal +dialectical +edictal +latticed +deltaic +delicate +hymenium +gloried +goodlier +godlier +beadily +amygdale +amygdalae +miticidal +dalmatic +twangle +gnarled +engarland +dangler +engarlanded +glandered +garlanded +enlarged +rangeland +betrayed +vacuolar +jobname +outfire +outfitter +fioriture +reoutfit +forfeiture +protected +proctored +nonwhite +baloney +proviral +volante +overweak +buttercup +critique +voyaging +bulkage +gatekeeper +indwelling +wielding +dwelling +wedeling +welding +deionizing +dozening +commixing +decidual +wallowing +allowing +earwigging +wearing +wagering +decorum +correctly +electrolyte +broaden +bandore +abandoner +broadened +guaiacol +mandatary +executor +coexecutor +admiring +diagramming +mridangam +mridanga +diagraming +marinading +dramming +ziggurat +revolted +graupel +earplug +plaguer +chuffing +hirable +hireable +pockier +arachnid +withdraw +hoplite +preenact +catnapper +carpenter +catnaper +repentance +penetrance +decretal +clattered +altercated +accelerated +decelerate +decelerated +reaccelerated +lacerated +mutably +comaker +fatbird +apoplexy +companion +campion +diptyca +gramercy +perturbed +acetified +ionophore +hornpipe +norepinephrine +phonier +unlabeled +unbendable +horrible +moilingly +limnology +numbered +renumbered +unremembered +unnumbered +tolerant +alternator +cajoled +grayback +vizoring +backing +noncaking +obedient +winegrower +regrowing +renowning +janitor +bamboozle +partizan +coaxing +cuittled +ductile +literalize +lateralize +laterize +deverbal +buddying +jalapeno +myopathy +alarumed +demurral +medullar +revamped +emblazed +echinate +cachinnate +antithetic +ethician +catechin +technician +atechnic +bouvier +tickler +trickle +tricklier +germander +gendarme +anagrammed +grandame +dipolar +parapodial +uneconomic +meconium +encomium +crumple +corking +rocking +crooking +crocking +cofounded +unconfounded +confounded +manihot +himation +extubated +feathery +oratorical +clitoral +cortical +product +coproduct +agitable +litigable +cordage +mainframe +fireman +unequaled +unequalled +wrongdoer +wronged +greenwood +pantryman +uraemic +americium +aggregately +greatly +textural +extratextual +rewound +underwood +cribwork +brickwork +culturally +cartulary +tubercle +deathwatch +watched +keelboat +overable +overlabor +revolvable +apothem +hepatomata +homeopath +hepatoma +thyroid +plodding +dolloping +theming +nighttime +outlive +infinitival +manacled +comeback +curably +wobblier +blowier +billowier +chortler +cerecloth +reclothe +chortle +vulgarer +expelling +pledging +peddling +adenomata +nematode +kaolinic +meningococci +genomic +monogenic +meningococcic +commencing +decillion +indolence +clonidine +celloidin +indocile +unlaying +lingually +ungainly +refounded +foundered +founder +frondeur +unroofed +refound +calamint +claimant +anticlimactic +anticlimactical +drumbled +lumbered +drumble +rumbled +dextrine +dextrin +dumping +encipherer +phrenic +pincher +encipher +nephric +overedit +overedited +overtired +infatuate +puritan +coquille +cabernet +revenual +venular +unravel +queazier +dicynodont +obeying +bogeying +boogeying +biogeny +foveated +hatmaker +rocklike +corklike +immaculacy +maximizer +puddling +gyrated +tragedy +gadgetry +parodic +picador +enlargeable +regenerable +generable +intubate +empowered +baronage +begroan +lyriform +unplanned +pudendal +hachured +englutted +electing +eliciting +neglecting +telegenic +intelligence +unboxing +unhelped +truckle +truckler +faultily +retiform +foretime +hexagon +kamacite +epexegetic +opiating +pagination +appointing +poignant +hepaticae +hepatic +aphetic +pathetic +hepatica +petechia +apathetic +epitaphic +petechiae +chanfron +exchange +ideologize +geologized +ideologized +enforced +conferred +reenforced +cornfed +fordoing +fording +lacunary +boogyman +bogyman +convoyed +conveyed +outgunned +tongued +deciliter +derelict +dielectric +boychick +boychik +exocytotic +nelumbo +rutilant +utilitarian +antinatural +clunked +knuckled +duplexer +outrage +tutorage +outargue +facetely +packmen +gnotobiotic +liftmen +examined +minoxidil +dreadful +dareful +madwomen +womaned +neuronal +aleurone +aleuron +pregnant +parentage +trepang +malolactic +atomical +comitial +committal +hardboot +racewalker +crackleware +cakewalker +putrefy +overweened +pacifier +behowled +jolting +fireproofed +refractor +footrace +anovular +mongrel +bootblack +foredate +tradeoff +foredated +eductive +deductive +bunched +heroicomic +chromomeric +neocortex +glancingly +claying +bovinity +holdover +overhold +overheld +tremolite +immortelle +motlier +feudary +ducting +inducting +poundal +ommatidium +rowdily +wordily +nickname +forgotten +lacunaria +canalicular +culinarian +canicular +ranunculi +brucellae +accruable +brucella +curable +curbable +apodictic +coxcombry +federally +defrayal +alderfly +trunkful +bigeminy +girthed +righted +teethridge +adjacent +enrollment +mellotron +unwritten +outlier +ulterior +exanthem +exanthema +exanthemata +elaphine +aphelian +burdock +untagged +divebomb +divebombed +lightful +pugmark +rhenium +inhumer +murrhine +botryoid +ardency +decenary +boehmite +clamorer +weeklong +willyart +crumbly +pycnidia +thrummed +murthered +decemvir +decemviri +vermicide +tangelo +elongate +climbable +alembic +amicable +claimable +cembali +triazine +tetrazzini +atrazine +unchurchly +meningioma +nonimage +egomania +timbermen +embitterment +animalizing +jettying +phocine +chopine +bipolar +parboil +melodized +melodize +adorably +broadly +replica +caliper +capercaillie +calliper +comfier +clamber +clamberer +embraceable +hackmen +motleyer +remotely +tabulator +plaguily +unbending +debugging +catarrhally +nonfactor +impotent +omnipotent +pimento +pointmen +pimiento +ebullience +avianized +nonconformer +conformer +erectility +electricity +tricycle +celerity +expunger +medially +additory +cumarin +cranium +macadamize +macadamized +mitzvoth +competence +competent +contempt +component +liftable +fleabite +fittable +antiaircraft +frantic +infract +infarct +advocator +reflexive +irreflexive +yeuking +diemaker +belittling +billeting +beetling +ignitible +intelligible +belting +uncaught +legalizer +glazier +notarization +proudly +quetzal +mijnheer +glyptic +microcytic +lumbermen +maxillary +amphorae +meatily +muckily +poached +unbarring +knouted +unknotted +inkblot +fountain +infatuation +phonology +unfitly +cannonading +gonadic +carnival +fixture +herrying +taiglach +overgoverned +governed +bolting +bottling +biltong +blotting +prepacked +repacked +frailty +fritillary +announcer +nonconductor +conductor +retrying +integrity +retying +paradigm +thrived +headwind +rubberlike +bulkier +rockaway +furniture +overburn +exocrine +pumplike +plumlike +endeavor +endeavored +overbetted +obverted +drachmai +dharmic +chadarim +novelty +batwing +upright +mudlark +obviation +unimpeded +modifier +deiform +remodified +hellbender +blunged +bungled +inhaled +headlined +nailhead +headline +corncake +corncrake +enzymic +telphered +palynology +polygonally +polygonal +footlike +loftlike +pyralid +rapidly +lapidary +mackerel +incontinency +coenocytic +foreknew +foreknow +foreknown +morphia +workwomen +workmen +uncurling +curlicuing +curling +crumbed +cumbered +meclizine +blooding +boodling +boondoggling +odorizing +cathodic +outpunch +typeable +typable +chirping +brocket +deflater +reflated +flattered +faltered +crazing +conditioning +malemiut +ultimate +mutilate +vulgarly +oxytocin +cytotoxin +martyrdom +illegibility +legibility +eligibility +conqueror +conquer +reconquer +rowable +cerulean +unclearer +nucellar +uncleaner +nuclear +unclear +caruncle +lucarne +flaggier +filagree +fragile +replayed +dapperly +parleyed +parlayed +pedlary +preparedly +windchill +unhelmed +compeered +compered +thymine +unluckily +compute +outcompete +movieola +linkwork +rhyming +variance +vicariance +invariance +enframement +prattled +paltered +replated +martyred +daydreamt +vomitory +repurify +lambdoid +bimodal +immaturity +maturity +upheaver +bigotry +draymen +yardmen +jerkwater +doomfully +peculate +cupulate +canonicity +cyanotic +molality +clamped +emplaced +weregild +wergild +wriggled +whirlwind +cowinner +diminuendo +zincate +upturned +prudent +uptrend +cologned +rampike +walloped +digitizer +majorly +germicide +fortieth +frothier +concurring +occurring +nonconcurring +efficacity +acetify +growlier +homophobia +deputized +deputize +neonatally +anolyte +odograph +homeport +photometer +raphide +tutorial +humidor +rhodium +befouler +triforium +deterring +reignited +ingredient +trending +deterging +tendering +reediting +hawklike +whalelike +intimacy +minacity +antimycin +aquacultural +polyalcohol +choreoid +choired +beatnik +titratable +irritable +trailerable +titrable +arbitrable +liberate +bilateral +triable +librate +camaraderie +medicare +toilworn +plunker +kerplunk +peroxid +peroxide +peroxided +penciled +inclipped +pencilled +membraned +preexilic +hogtying +clewing +ciborium +domineer +domineered +minored +humidify +cuprite +picture +benjamin +embargo +flirting +trifling +myotonic +monocytic +mitomycin +monotonicity +vicugna +locknut +laicizing +anglicizing +canalizing +gallicizing +autograft +inboard +futhorc +atonable +ballonet +notable +dockhand +labroid +billboard +uncurbed +megilph +munitioning +mounting +hobbledehoy +precinct +precipitin +intercept +percipient +pertinence +prentice +epicenter +intercepter +centerpiece +recipient +terpenic +facility +doorjamb +turnkey +tailleur +litterateur +ruralite +literature +elutriate +uralite +teabowl +infallibly +rotatable +elaborate +balloter +tolerable +bloater +twitcher +witchier +twitchier +piacular +wapentake +athenaeum +atheneum +photoreceptor +trochophore +boxthorn +earthnut +unearth +haunter +urethane +urethan +flotage +floatage +flageolet +eulogia +eulogiae +bedrivel +bedriveled +bedrivelled +vaginally +turbocar +barracouta +amphiphilic +efferently +telluride +diluter +unmuzzling +muzzling +parlance +precancel +preclearance +preclean +typhoid +phytoid +impaired +apolune +kyanize +unlikely +occupant +inurbane +biocidal +diabolic +diabolical +cabildo +nonauthor +knuckling +clunking +lucking +clucking +interlend +tendriled +interlined +tendril +tendrilled +trindle +intertilled +trindled +blighty +vilipend +vilipended +geologizing +chaffier +courgette +redrying +grindery +redenying +redyeing +lexically +emporia +peperomia +meropia +leporine +proline +argonaut +unarrogant +guarantor +orangutan +outrang +milkwood +homophobic +jackpot +lichening +leeching +clenching +leching +encoring +coreign +cornering +concierge +concerning +congeneric +erogenic +orogenic +recoining +coercing +imbower +wombier +beaming +benaming +bemeaning +juniper +felicity +blooping +bunkoed +orangey +orangery +buoyant +chlorotic +trochili +trochil +chloritic +extinctive +outland +nonadult +charley +unfilially +enamour +neuroma +engorgement +bluefin +unbelief +fibranne +rimpling +marzipan +unproven +gonglike +inglenook +pandowdy +etiology +cheerfuller +cheerful +kotowing +kowtowing +gracile +allergic +glacier +carburetter +cubature +bureaucrat +carburet +gazetting +tetanizing +tzigane +peduncled +peduncle +trachle +clathrate +tracheal +cytokinin +knapweed +jumpily +applicable +preverbal +extraverted +hireling +reheeling +packager +repackager +prepackage +repackage +flancard +hemipter +vilifying +mahogany +hogmanay +equator +torquate +podagral +woodlark +workload +metalmark +telemarketer +telemark +cuplike +acidifier +topminnow +wheeping +touchhole +thiotepa +rapidity +calorically +collyria +antihuman +rivaled +rivalled +daredevil +reavailed +rubberized +blitzing +elopement +liftgate +bleacher +reachable +bookmobile +tomalley +myelomata +gallopade +galloped +galoped +galopade +octuply +analytical +antically +titanically +anticly +actinically +analyticity +analytically +analytic +clubbier +crucible +neurohormone +neurohumor +girlhood +komondorock +arciform +aciform +inability +banality +attainability +hafnium +collaborator +antipathy +hypanthia +bidarkee +trochoid +trichoid +hidrotic +dogberry +refluxed +townwear +waterworn +wantoner +rigidifying +bloated +lobated +deadbolt +balloted +telekinetic +littleneck +coverall +overcall +cavalero +overclear +melanic +analcime +calamine +limacine +calcimine +rufflike +flukier +valentine +ventilate +aventail +ventail +halophile +polypnea +papaverine +regularly +lariating +trailing +ringtail +rattling +becharm +brecham +chamber +hemiola +hemiolia +eventual +gumdrop +timbered +embittered +imbittered +pemmican +pemican +wintertime +intertwinement +chummier +rheumic +workboat +grindingly +kvetched +mudflow +campaigning +camping +campaign +cingula +unlacing +nailfold +marination +inamorata +nominator +mortmain +animator +actuality +outhomer +mouther +burrowed +undaring +unguarding +guarding +guardian +prototypic +procryptic +cryptococci +bedframe +burgrave +intuitional +nutational +outlain +tuitional +lunation +annulation +ululation +truelove +revolute +bibliophile +encamped +breezeway +cliquier +unholily +humaner +thyratron +influence +funicle +gyrating +gyniatry +tarrying +catabolic +lactobacilli +biotical +cobaltic +waveband +dejectedly +bannering +bargainer +barbering +bearing +beggaring +rectify +recertify +certify +ladderlike +darklier +lardlike +credenza +baulked +chantage +commixed +whiffled +evacuative +tomcatted +accommodated +accommodate +guayabera +cheapened +micropore +meropic +copremic +oxidation +antioxidant +oxidant +unhallow +overbooked +bundling +building +unbundling +unbuilding +trombone +hammertoe +heteroatom +teraohm +atheroma +atheromata +loveably +volleyball +expectance +expectant +headily +panicum +inholding +hondling +holding +croakier +nightly +exiguity +leucoma +columella +columellae +harangue +haranguer +hairwork +motorway +unbraid +cupbearer +curding +crudding +monophyly +clanked +conflux +nickered +furcate +facture +fracture +bechamel +pickaxe +maladapted +palmated +harmony +antirachitic +antiarthritic +trichina +anthracitic +vagotomy +exurban +antibiotic +nonantibiotic +antitobacco +botanica +botanic +jugulate +plowland +ironized +deionizer +pedalfer +mollified +updiving +aquifer +enokidake +trivially +triviality +chowder +cowherd +chowdered +collaging +oncological +ganglionic +coaling +nonlogical +anagogical +iconological +logician +algolagniac +analogical +analogic +affright +civilized +prefrank +dementing +demitting +becarpet +patroller +preallot +prolate +allotrope +upending +cymling +mincingly +pirouette +poutier +mazaedium +whichever +alluvion +douroucouli +frouzier +writhing +ergograph +prophage +geographer +reprographer +vinifera +outthrown +modular +wickerwork +autocracy +carryout +defective +dodecahedra +roached +hardcore +obligingly +ignobly +lobbying +kibitzed +kibbitzed +overfat +outward +outdraw +upclimb +plumbic +clerihew +breezing +lectotype +collotype +decretory +mournful +unalienable +bubaline +guildhall +inearth +hairnet +herniate +japonica +dribblet +driblet +brittled +oothecal +cholate +catechol +chocolate +network +nonnetwork +headnote +lyricize +blackpoll +unwarned +unrewarded +underwear +unawarded +rolfing +flooring +thanked +hypogene +refiling +refilling +ferreling +flinger +fleering +fingerling +refelling +filigreeing +ferrelling +refeeling +thrilling +thirling +clubbing +wonderwork +cranking +carking +arcking +racking +cracking +lounged +foremother +thermoform +therefrom +pheromone +neomorph +ephemeron +encyclical +calycine +humphing +humping +jungled +exigency +juryman +trajected +irregular +guerrilla +guerilla +anticult +lunatic +nautical +wuthered +gorgonize +rezoning +zeroing +unlovely +piquant +mutating +manumitting +pageboy +multifid +takeover +overtake +overheat +overhate +zoophile +extending +amalgamator +cloaked +deadlock +deadlocked +clubroom +pockmark +alkylated +blowzily +clowned +mitzvah +purveyor +fumaric +botulin +cowbane +callower +uredinia +unreadier +undrained +uranide +unaired +exhorted +heterodox +vegetable +windage +awninged +janizary +circumcircle +millicurie +bombination +abomination +ambition +inlander +adrenaline +renailed +twinborn +comparer +compare +camporee +knuckler +clunker +devilkin +lincomycin +monocyclic +myoclonic +crewelwork +cheekily +baroque +attorney +plighting +tippytoed +clawlike +penalize +turbojet +ganymede +megadyne +garboil +ependyma +impenitence +metacercariae +metameric +tetrameric +metacercaria +pelleting +pelting +pettling +tinkled +concordant +acrodont +accordant +concordat +cowhided +cowhide +overloaded +overlade +overladed +overload +overalled +reuttering +intrigue +reuniting +trueing +neutering +uttering +guttering +geniture +intriguer +returning +retuning +wideout +outwitted +homophonic +monophonic +firetrap +aperitif +wheelman +whaleman +whalemen +frontlet +hulkier +primitivity +maudlin +ambiance +ambience +injected +palmitate +apologue +bathrobe +heartthrob +dilutive +gourami +permuted +trumpeted +trumped +chuckawalla +chuckwalla +biweekly +fluctuant +untactful +polluter +poulter +poulterer +prunella +dipnetting +lightbulb +intravitam +varmint +coactive +evocative +vocative +bruiting +bruting +linkage +leaking +quincuncial +giveable +unalike +barbicel +ballcarrier +calibre +caliber +breccial +kimonoed +purview +beneficing +outjutting +unjointing +bulgier +beguiler +paranoid +poniard +raindrop +padroni +barefaced +matched +unclenched +lunched +bathetic +pickpocket +rivulet +anvilled +invalided +anviled +wintery +womanhood +convivial +volcanic +nonvolcanic +concanavalin +cazique +interfirm +refinement +merozoite +motorize +milkweed +fogfruit +regluing +grueling +reguline +gruelling +unreeling +bureaucracy +alphorn +undevout +virginity +oribatid +organizing +razoring +zingaro +meltwater +metalware +wavelike +unfaked +jaconet +nombril +maplike +palmlike +reincurring +recurring +cunninger +collectible +quadrivia +didactyl +dialytic +dactylic +dactyli +didactically +liquidized +liquidize +adjudging +inflaming +flamming +flimflamming +flaming +lampion +palomino +chlorophyll +bludger +burgled +wakerife +becrowded +becrowd +caretaken +fraught +agnized +agenized +lithotomy +figured +refigured +midyear +vexillar +cyclamate +theropod +pothered +prophethood +unwanted +cylindric +prudence +changed +unhealed +therapy +pillowing +plowing +antiurban +thallium +gravamina +acetabula +cuttable +indagated +detaining +attending +indagate +antedating +ideating +moviegoing +venoming +envenoming +anodynic +noncandidacy +coryzal +decathlete +chelated +hatcheled +latched +hatchelled +moldier +antitype +lobulate +outbleat +rockfall +berhymed +benzoic +multiton +multimillion +multiunion +brechan +rebranch +dormice +mediocre +microcode +worrying +imponed +mitigator +migrator +peching +cheeping +bondwoman +probang +woefully +cutwork +liquefy +overbake +nondairy +ordinary +helming +remailed +remedial +airmailed +cavilling +caviling +galvanic +valancing +calving +abdicable +decidable +helotage +exemplar +haecceity +tutoyered +forehead +hornily +diagraph +digraph +carbuncular +legumin +unmingle +phytane +hyphenate +overgraze +codeina +upfling +upflinging +cloudland +pawnable +damnable +mendable +amendable +demandable +emendable +decapodan +overlived +evildoer +overidle +chabouk +paralyze +paralyzer +apprized +braying +flimflammed +chaffered +biotype +regrafted +grafted +uxorial +clypeate +ectypal +banalize +mortally +mayoralty +dexterity +whiptail +potbelly +theogony +loopholing +hoppling +cojoined +conjoined +dolomite +humified +dehumidified +humidified +anklebone +overhigh +zinkifying +cowbind +compelled +clomped +telexing +hotching +notching +crimple +glimmered +millidegree +raylike +unhatting +haunting +antihunting +revalued +epitaxial +phalangeal +phalange +zymogene +zymogen +quencher +alcoved +caulked +honeying +checkrow +palmetto +notably +outbake +loamier +memorial +immemorial +dietary +dumbing +mothered +motherhood +needfully +birdlike +fattening +unevolved +unloved +dozenth +nonbinary +farcing +kraaling +larking +rankling +quadroon +whoring +cobwebbier +commingling +limnologic +comingling +reinvoke +invoker +jaunting +outgrown +acquire +reacquire +acquirer +jerkily +preboil +overlarge +vorlage +hypermeter +inhumane +invader +reinvade +vivandiere +reinvaded +ravined +pollutant +outplan +copihue +impercipience +preeminence +helilifted +lithified +impanel +maniple +recommencement +centromere +contemnor +contemner +concernment +prebooked +twanged +juratory +anywhere +ditching +heftily +amalgamated +bowlegged +tadpole +enwheeling +wheeling +artificial +hippiedom +figwort +overbid +manorial +monorail +morainal +puberal +prepuberal +hurtled +currycomb +politick +childlike +curtain +urticant +uranitic +taciturn +acridly +radically +blending +bleeding +bielding +clabbered +declarable +chokecherry +reflown +outgive +freeholder +freehold +phallically +harmine +marrying +imaginary +decurrent +undercurrent +undercut +halving +pandying +boatmen +entamoeba +entamoebae +zincified +pumicite +flatbed +monophthong +anorexia +duvetine +uninvited +heavenly +romaine +moraine +goutily +johnboat +mandolin +banalizing +labializing +blazing +fortuity +lineality +innately +kakiemon +fragrance +initiatory +tarradiddle +trailed +retaliated +detrital +trailered +retailed +detailer +taradiddle +alliterated +dilater +elaterid +lariated +redtail +videotext +videotex +inexpedience +expedience +pagandom +fletched +whicker +hurrayed +galbanum +campily +autocratic +laboratory +oblatory +outfitted +fermented +deferment +pelecypod +narthex +unwinder +pothead +unbitter +turbine +tribune +anteroom +tramontane +nanometer +tonearm +anemometer +nontreatment +emanator +attornment +manometer +ornament +antemortem +kremlin +uncrazy +purpling +purling +prandial +lapidarian +rotunda +turnaround +cracklier +quivery +foxglove +downcome +comedown +exchequer +clutched +outloved +voluted +kickable +prefixed +bequeath +plinker +colluvia +colluvial +padlock +fanciful +dolphin +policed +outwrite +aficionada +afficionado +aficionado +backdated +backdate +dumpily +firebug +febrifuge +courtly +locutory +overblow +overblew +copulae +populace +upthrow +photograph +outgrew +libecchio +uphoard +primordia +anxiety +antianxiety +downpour +knothole +bodhran +hermetic +thermic +hermitic +collectedly +vendable +bulldozed +bulldoze +glorify +thrilled +thirled +hoorayed +floccing +coffling +flamier +flimflammer +coequal +injective +probate +approbate +perborate +reprobate +firedog +nonperformer +dawting +hominizing +qualify +barfing +campanili +ampicillin +ketchup +paronym +heartfelt +leatherleaf +vacillate +cavalletti +cavaletti +varletry +countenance +oceanaut +lordotic +corundum +conundrum +mobocrat +vomiter +overtrim +overtime +magazine +ligative +levigate +outride +outrider +cuckooing +uncocking +embezzlement +chowing +arborize +mellophone +orificial +calorific +bugleweed +humpier +digitigrade +triaged +tardigrade +irrigated +indicating +dictating +addicting +commutator +epiphenomenon +rebellion +televiewed +gluttony +uploaded +quinoline +aggrandizing +inflight +flighting +epauletted +plateaued +pullulated +roughdry +vizierate +vizirate +regrooming +ironmonger +mongering +yawling +waylaying +yawningly +bargello +comelier +micromole +paranoiac +picaroon +paranoic +virginal +rivaling +rivalling +balking +blanking +notarial +nontotalitarian +antiroll +nonrational +totalitarian +narrational +irrotational +antitotalitarian +attritional +irrational +rational +natatorial +rotational +antirational +outvalue +ovulate +gratuity +cladding +candling +dognapping +dognaping +pliancy +ingoted +denoting +probably +behindhand +dioxane +colchicum +carnify +contemned +commented +perchance +ungenial +gallinule +linguae +unagile +leaguing +pargetted +pargeted +androgyny +organdy +papillomata +optimal +lipomata +clavered +crampit +magicking +nicknaming +placated +tenably +tackily +puncheon +bighead +bigheaded +enquiring +queering +requiring +pencilling +cleping +penciling +adaption +adaptation +pintado +adoption +voyaged +flattery +unappealable +civilizer +urologic +handbell +handleable +magnanimity +expatriate +extirpate +apomictic +apomict +potamic +hackbut +damnify +unclipping +mouthed +groveled +grovelled +flagellated +echolalia +echolalic +evincible +invincible +vincible +cozenage +neologic +prefecture +quintile +holibut +luxated +cuittling +cuttling +trawlnet +treelawn +pyriform +waygoing +nonblack +uncoffining +cabotage +emolument +unmolten +lomentum +purloin +puttying +euphony +marchen +menarche +ranchmen +convoying +argufier +refugia +waxlike +detailedly +ideality +pericrania +caprine +dourine +unironed +neuroid +trinketing +interknitting +trekking +tinkering +reknitting +truculence +unclutter +truculent +relucent +encumber +flaunty +hiccuping +hiccupping +punching +flanged +fenagled +coagulum +glaucoma +tucking +untucking +keitloa +oatlike +integument +troking +limbeck +bulldogged +doodlebug +reexported +exported +helipad +outthrew +burping +upbringing +engraft +durable +bluebeard +reattribute +aubrieta +aubretia +attribute +barbiturate +colluvium +unpeopled +unpolled +etherify +hawfinch +unexcelled +multiaxial +vigintillion +pitifully +unhanding +overrank +waggoner +wagoner +eventful +uneventful +inducted +unindicted +inductee +baldric +birdcall +hoplitic +pinnatifid +winched +lithology +villiform +aecidium +knotweed +atomize +azotemia +boliviano +ovenproof +upbinding +curarine +uncannier +bruited +turbidite +yakitori +anticrack +monochord +unfaith +venatic +vaccinate +inactivate +enactive +vaticinate +inactive +cavatine +fatidical +vernally +cutinize +blackland +backland +dumbhead +wrangling +enfiladed +enfilade +finialed +exploit +unforgot +parridge +crewing +forebody +ticktocking +tictocking +lockable +becloak +cookable +unlevied +unlived +unveiled +methylene +dragrope +prograde +frequenter +frequent +zoophyte +endotoxin +overholy +chiefly +arthropathy +atrophy +coughed +harelike +hairlike +juvenile +trindling +independency +outbitch +unanchor +tumbril +encephala +planche +gruiform +afterlife +filtrate +featlier +monecian +encomia +blackface +quibbled +bronchi +handmaiden +maidenhead +nylghai +fainter +charpoy +apocrypha +vignetted +adjunct +whittled +withheld +brickbat +lekythi +chickened +chinked +archducal +moviegoer +wallboard +bramblier +irremeable +marblier +lambier +balmier +imbalmer +devilwood +protyle +dirgelike +allograft +chirrupy +mutedly +ethereally +leathery +earthly +lathery +outthink +monochromic +microinch +hormonic +forthright +paganize +papyrine +crinkle +crinklier +clinker +autotroph +photoautotroph +endoenzyme +dolomitic +overwide +choirboy +furtive +purveyed +lacewood +compound +noncompound +weirdly +rottenly +elytron +allotype +thiazol +daintily +yoghurt +yoghourt +benempted +hologamy +cowhand +wahconda +jowlier +nazifying +unzipped +amplify +earthman +earthmen +villager +twinged +whacked +renewable +rondelet +redolent +penology +polygene +rainbow +eldrich +childlier +retackle +tackler +mutinied +minuted +mutined +unhooding +hounding +vinculum +zebroid +willinger +ghettoing +hogtieing +gilbert +yokemate +tunably +columbium +columbic +coulombic +unitard +azurite +micrified +hierarchize +archaize +backpacker +paperback +ovicidal +gunpaper +chapeaux +noncolored +redolence +condoler +butlery +brutely +forklike +rooflike +hemicycle +chimley +palletize +palatalize +venially +naively +quoiting +unquoting +quoting +outquoting +megahit +haploid +implement +axiomatic +maxicoat +hummable +mutinying +bauxite +chantor +neurally +unreally +intubation +uncynically +uncynical +uncially +uncannily +aglycon +hardtack +cropping +overdub +overdubbed +cowrite +fuglemen +lorgnette +allopolyploidy +allopolyploid +ephemerid +hoodlike +likelihood +checkmate +nonunionized +unionized +coannexed +ectopia +copacetic +petticoat +colorably +playwear +captivate +acceptive +captive +capacitive +overbig +widgeon +endowing +wendigo +relaxin +thwartly +propined +pioneered +properdin +jockeyed +lapidified +armlike +guilder +featured +defeature +outfooting +outfitting +cableway +attackmen +unmelted +prebilled +thoracic +trochaic +chariot +haricot +analogue +nonleague +nonlanguage +plunking +tinwork +mothery +homeothermy +thermometry +cruciform +monofuel +epoxidized +epoxidize +copying +alcoholically +vibraharp +averment +varment +inquieting +quietening +quieting +exocarp +wedlock +curving +incurving +lazaretto +zoolater +ethoxyl +hydrology +coolheaded +firewood +wetland +fellowmen +bicycled +nonmobile +plotzed +menology +vapidly +fanfolded +outrank +cobbling +conglobing +playing +gapingly +applying +appallingly +captivity +empathy +velarize +vizierial +chockful +unannotated +unatoned +hutlike +coteaux +couteaux +rouletted +outrolled +hootenanny +photocell +beachcomb +trolleyed +wonkier +ironworker +uncaring +accruing +unblock +antiphon +phonation +imbrown +familiarly +zoophily +aggravating +variating +gravitating +rogueing +bedarken +bedarkened +toxaemia +toxemia +boughpot +grouted +woolpack +paperwork +entombed +bodement +overcooked +overdeck +overdecked +emanative +vitamine +aguelike +alphabet +ghoulie +begirting +bettering +bittering +centuple +zippering +cringed +redeciding +cindering +decreeing +receding +decerning +airwoman +jawlike +unmolded +happening +heaping +glamour +formatter +reformate +reformat +formate +terraform +finback +opaquer +avodire +avoider +recappable +replaceable +capabler +fabling +baffling +jointed +athetoid +recapture +recuperate +capturer +capture +avoiding +antimalarial +antimalaria +agonize +alkalinizing +alkalizing +pillowed +woodpile +arbitrager +arbitrage +heatedly +ethylated +deathly +furuncle +refluence +fettuccine +fettucine +fettucini +fettuccini +bicipital +carbamyl +impeach +outwile +mailbox +excluder +flopping +jacobin +preemergent +carrying +fatlike +kalifate +equipping +harming +zingare +razeeing +bikeway +cremator +macerator +octameter +commemorator +commemorate +kenotic +ketonic +nektonic +proportioning +portioning +trooping +porting +abounded +homicide +imprimatur +meatloaf +retaught +hagborn +debutant +unabated +debutante +unbated +advocated +advocate +coopting +picoting +magdalene +mangled +magdalen +quizzical +gremlin +mingler +glimmering +typewrite +typewriter +turbidity +browned +unweeting +peafowl +brought +cottonmouth +tutelary +pilloried +leporid +firework +uredial +derailleur +formula +corduroyed +formally +ceremony +ampoule +gallantry +highbrow +younker +guardrail +cornetcy +paygrade +confluence +flounce +reproval +overlap +overleap +foramina +pullover +pluckily +infected +deficient +lowlight +effulging +funnelling +fueling +funneling +engulfing +fuelling +unfeeling +figuline +malacological +unbuckle +bullneck +tinkler +interlink +tinklier +blindfold +bloodfin +cadaveric +drammock +cymbidium +biotypic +unleveling +unlevelling +unveiling +uncover +pulicene +inflicting +lugworm +poulard +uropodal +venturi +turnverein +nutritive +latinize +initialize +italianize +tantalize +crouched +diatomic +coadmit +idiomatic +thrummier +iguanodon +thacked +unarming +manuring +rummaging +fawnier +funkier +dauphin +orbiting +wheyface +overbite +nymphette +nymphet +variorum +reverberated +bemingling +bemingle +embleming +manlier +marline +mineral +animalier +millenarian +microcopy +extralegal +theremin +prettily +deletion +indolent +tolidine +entoiled +lentoid +anchovy +nebulize +gweduck +podgily +codicology +motorboater +barometer +bromate +jackleg +fibular +chunked +unchecked +biogenic +gruntle +palmitin +implant +bipinnate +bepaint +diacritical +triclad +anechoic +limitedly +unyoking +kibitzer +kibbitzer +pyloric +propylic +pyrrolic +methought +tributary +rubaiyat +confocally +nymphal +incaged +cadencing +acceding +propylaea +perorally +clubman +hedgehopper +thirdly +inveigher +cowhage +voltage +thrombi +logotype +olivinitic +harlotry +vetoing +linearly +inlayer +palavered +embolden +emboldened +endowment +animality +militantly +buggering +rubbering +comelily +flexing +martello +progeria +arpeggio +ngultrum +avigator +wimpling +mezuzoth +enquiry +wheelwork +bluebonnet +commodity +faitour +fioritura +perkily +bumpily +croaked +impromptu +protium +conveyance +wrangle +wangler +wrangler +viricidal +larvicidal +murkily +paragraphic +graphic +agraphic +defunct +jumping +cavelike +firehall +monteith +methionine +ruggedize +ruggedized +chummily +impalpably +crumpet +tabbying +prefiring +preferring +drumlier +delirium +nitpicking +outyelp +trawled +twaddler +pollution +caretook +triatomic +timocratic +aromatic +accumulate +cumulate +maculate +calumet +pityingly +whittling +unbloody +gardyloo +legwork +unhooked +gunflint +fluting +bartended +bartend +bantered +bartender +beamily +kindlier +relinked +kilderkin +rekindle +rekindled +kindler +ineptly +penitently +miaoued +haunched +calqued +potentiation +antipope +appointee +potentiate +filched +logicize +terephthalate +downier +windrowed +eiderdown +ironweed +berrying +prefaced +cruelty +cutlery +cluttery +herblike +enframed +freedman +zelkova +bacchanalian +bacchanalia +chilblain +frothed +perlitic +preelectric +thawing +gouache +infirmary +hideout +goodwife +butcher +trebuchet +collogued +weanling +hagiological +hagiologic +parergon +pleuron +prunello +invected +vindictive +ytterbic +crowkeeper +hometown +townhome +wickyup +quilter +gunplay +backfit +chlorin +chicaner +archine +chancier +handloom +demonized +demonize +fixedly +pimpmobile +quartic +barefit +firebrat +centricity +renitency +reticency +eccentricity +intercity +triumph +watermark +phototoxic +javelina +javelin +talcked +tackled +brittling +hampered +allargando +largando +goldarn +horridly +abought +vizarded +phthalic +haptical +aliphatic +thorium +indemnity +glorifier +gauntly +ungallantly +nongrowth +wangled +nonglare +organelle +provide +provided +provider +unavailing +valuing +tabouret +tabourer +obturate +localize +leaguered +overpotent +blowzed +homelike +nullifying +uglifying +mourning +unmooring +rumoring +rumouring +foamable +wauking +opaline +billycan +enlacement +cattlemen +cattleman +codependent +differenced +indifference +difference +audience +unmapped +undamped +unquieter +quitrent +flathead +pandect +catnapped +urochrome +tackier +racketier +workbag +bifocal +bicolour +verbified +kilorad +roadkill +involver +princock +kathode +effulgence +typewrote +mitigative +generally +angerly +glengarry +laryngeal +demilune +unmilled +illumined +tweakier +benevolence +moniker +lionizer +pyorrhea +bloodhound +chayote +autotype +clubfoot +chambray +fatigue +potiche +couponing +pouncing +couping +tripling +fidgety +flambeau +flabellum +blameful +rankled +boxlike +overruled +louvred +louvered +overloud +cutover +coverture +outcurve +overcut +upheaval +butyrate +bewitch +gnathion +claught +woodenhead +woodenheaded +bridally +rabidly +ribaldly +ribaldry +ladybird +hexarchy +exarchy +original +plateful +cruzeiro +gravidae +aggrieved +impolite +nonorthodox +hotcake +chopping +pooching +broking +brooking +peacetime +krypton +protoxid +phototactic +aphotic +philter +philtre +limpidity +diathetic +chitchatted +optative +foregut +hopeful +furthered +quirked +infecund +freelancer +freelance +kathodal +polymer +reemploy +employer +exanimate +examinant +taximen +triaxiality +drubbing +popularly +jauncing +dualize +dualized +unhanged +overrich +blocked +threepenny +floruit +tunnellike +nutlike +gambrel +gambler +reinjuring +replevied +cheekbone +couplet +octuplet +octuple +polyclinic +reoxidized +oxidizer +reoxidize +deoxidizer +bumpkin +fluttery +fretfully +backbone +punctate +punctuate +ironware +campong +currying +working +nonworking +magnolia +gloaming +loaming +liberalize +liberalizer +realizable +anodized +anodize +bivariate +abbreviate +vibrate +rebarbative +reverberative +arbitrative +phyllode +mutagen +augment +cheekful +outguide +outguided +highballing +unbandaged +unbandage +riantly +healthily +lethality +hyalite +phyllite +unicolor +councillor +councilor +zooecium +zoecium +refugium +whatever +viburnum +interfiber +benefiter +affirming +framing +farming +britzka +exocyclic +cheerily +franklin +protomartyr +cimetidine +indictment +greenbelt +friezelike +cyprian +crankle +cracknel +holohedral +carotid +dictator +unchurched +crunched +churned +bitchily +knoblike +blacken +docking +buckeroo +roebuck +woefuller +flowerful +exactly +comprador +autochthon +couchant +pedophile +poetlike +potlike +pinocytotic +pycnotic +pinocytic +quadric +begazing +hymnology +cohobate +inceptive +puranic +ranpike +talking +bawling +wabbling +blawing +coaxially +frankly +hallowed +tamarillo +immolator +immortal +duodecimo +gunboat +infrared +refrained +romping +pogroming +hooflike +copular +procural +belittlement +belemnite +preprimary +flagellum +factoid +durably +parroket +knubbier +graveyard +phalarope +ephoral +extolment +buoyage +metazoal +acceptable +wintled +indwelt +throwaway +avifaunae +pocketed +journey +journeyer +monandry +embowelled +emboweled +freezing +refreezing +cicatrize +underwent +fellatio +foliate +rubbernecker +rubberneck +chirked +monachal +peponium +defanging +deafening +acetylated +acylated +chutney +glycolytic +cytologic +backwrap +cirrocumuli +anodization +diazotization +electrum +luthier +fourteener +fortune +fourteen +frontrunner +whelkier +monacid +monoacidic +mandioca +daimonic +nomadic +monadic +monoacid +analyzing +lazying +toadflax +faggotry +voyager +galabieh +coenamor +cornerman +romance +necromancer +romancer +poetizer +prioritize +pedicured +pedicure +propellent +petronel +unequipped +curettement +centrum +bailiwick +gearbox +keloidal +cohomology +prefabbed +coachmen +apnoeic +benumbing +blowtube +zucchetto +aardwolf +mudflat +immorally +armorially +untruthful +pliotron +lipotropin +inferrible +baneful +mythier +thymier +hermitry +outbuild +primula +beachboy +crumhorn +colloguing +unclogging +uncoiling +deciduate +cozying +lockjaw +beguiled +trenchermen +retrenchment +entrenchment +volplane +dizzyingly +noninjury +cornball +zikkurat +zikurat +olefinic +knotlike +gumboil +nonemployee +bitched +vulcanian +vulcanic +vincula +overprize +bechanced +legalized +illegalized +choplogic +emotivity +barebacked +barracked +inhibitive +flanker +mahjongg +mahjong +motortruck +tenterhook +manteaux +clamworm +uglifier +gulfier +perpetuity +beflagged +adducing +clemently +blanker +motivate +motivative +mozzarella +antiquation +quotation +quantitation +premixed +dolefully +younger +predefine +predefined +quacked +fatiguing +infatuating +vandalic +noninvolved +involved +zygotic +laminary +perpetuator +rapporteur +rumormonger +crowberry +cowberry +taxying +zedoary +outfooled +flouted +annihilation +inhalation +inhalational +halation +roofline +beachier +claqueur +relacquer +lacquer +lacquerer +claquer +foliage +inebriety +fullback +monthly +bilharzial +bilharzia +footmark +lothario +deleting +diligent +glinted +gillnetted +tingled +tableful +pourboire +zincifying +marrowed +unequally +outpray +paraffinic +colleague +coiffure +coiffeur +downlink +forecourt +puzzling +unpuzzling +anorexy +overprotect +nonwriter +interrow +unfettered +communed +aglimmer +lammergeier +gleamier +armigeral +remigial +gremial +outfawn +overbold +nonhardy +hoofbeat +brazilin +becking +parvenu +parvenue +polyphagy +haplology +century +nephelite +nephelinite +chuckhole +examining +tourney +atremble +lambert +haymaker +exorcize +epizooty +althorn +lanthorn +caloyer +kvetchy +touchwood +candidly +morulae +deboning +outpitied +handout +aunthood +imminently +eminently +peptizing +chickweed +grumped +virgule +whaling +bandager +yodling +dollying +coextend +coextended +yuckier +melodia +nitrolic +flavone +flavanone +tailwind +vocable +evocable +rondeau +roadrunner +unadorned +hayloft +paycheck +dilating +digitalin +forthwith +batched +jemidar +jeremiad +natrium +ruminant +minefield +headroom +finitude +infinitude +unfitted +unidentified +definitude +zapateado +perfected +gallipot +galipot +foldboat +draught +arthropod +hardtop +bumpier +oblique +another +phenazin +phenazine +rhabdom +hefting +flypaper +palfrey +handily +totalize +unfeared +quailing +banjaxing +blizzard +nonoxidizing +oxidizing +canonizing +cocainizing +glycerol +palladium +klavern +hilloaed +interpretive +preventive +prevenient +kitchen +thicken +kitchenette +turmoil +multiroom +reverbing +pyroxene +automated +homburg +grackle +karyology +zonulae +crazily +opulence +uncouple +diptych +humbled +enjambed +vomicae +plunger +replunge +ramekin +rainmaker +vowelize +wearily +colloquium +unlearnt +tarantulae +neutral +antennular +goitrogen +reignition +orienteering +orienting +enrooting +tottering +genitor +reorienting +interrogee +nitrogen +gingerroot +retorting +rebutton +trueborn +buttoner +mounding +gonidium +lithemia +waltzed +credible +cribbled +audition +inundation +apogamic +uniface +bowerbird +beworried +outrave +malefic +fouling +convented +convected +thumper +ochlocracy +chorally +pidginize +pidginized +fenthion +exteroceptor +excerptor +blackleg +oophytic +inhumed +crewmate +acclivity +junketed +quadruped +howking +fibroma +felicitate +facilitate +califate +warranted +definement +jawbreaker +intendedly +nonjuring +clueing +pollinium +polonium +woodbine +cooperage +hippopotami +variform +teratoid +deteriorated +deteriorate +adroiter +blattered +tradeable +brattled +deterrable +tradable +vomited +motived +chockablock +lemurine +relumine +binaural +believing +beveling +bevelling +quantong +uncocked +undocked +uncooked +yawmeter +communal +columnal +kidnaping +kidnapping +jackeroo +whinged +occupancy +plafond +turfmen +heedfully +paperhanger +coembodied +uncapping +dandifying +wantoned +airborne +junketer +junketeer +bloodbath +pickadil +limonitic +locomotion +elementally +mentally +tallymen +regurgitate +narwhale +bounding +inbounding +etherized +childing +prohibit +fructify +lecithin +denyingly +yielding +adaptive +euploid +unchicly +unmixed +erythron +overhard +overheard +overhead +frigidly +bucketed +eruptive +irruptive +fluttered +truffled +matronal +indemnify +rampancy +vaporware +amphipathic +quantic +acquaint +pentavalent +jackroll +boycotted +abidance +cabined +pedagogue +exultant +idolizing +toddling +flexural +polygamy +pectized +libertine +patagium +jauking +antifoam +reaffixed +quadrate +quadrature +quadrated +quartered +ibogaine +begonia +crippled +naturally +unnaturally +nakedly +glancer +clanger +twiglike +minutiae +minuteman +unifilar +nizamate +hemorrhage +homager +firepower +hungered +vallecular +pogonophoran +phonograph +dromedary +haphazardry +tympani +favourer +outplay +iracund +arbitraging +arbitrating +rabbiting +complin +dalmatian +gourmet +zygotene +regnancy +regeneracy +plunked +kirtled +matcher +rematch +vizored +cigarette +cigaret +geriatric +lubrical +rubrical +quinary +driftpin +thimble +loudlier +conducing +jangled +fanlike +razorback +converge +convergence +complice +compile +polemic +picomole +phenomena +reverently +outdoing +outdodging +outguiding +vapoury +widowerhood +irrupting +upturning +rupturing +barramunda +arpeggiate +quadding +logogriph +foxtrotted +citifying +glucagon +cordovan +handcart +anachronic +jurymen +groupoid +genotype +inwalled +jardiniere +homaged +hideaway +firebreak +hunchback +browbeat +beechnut +hydriae +hayride +mewling +beltway +cowflap +oxyphil +weighmen +octarchy +fleapit +heritage +budlike +hayrick +tillermen +marvelled +marveled +epitaxic +prefigure +quirted +requited +dallying +dillydallying +diatomite +pocketer +backbench +blenched +protreptic +periotic +proprioceptor +coproprietor +demagogue +demagogued +unwhite +pupating +churchlier +powerbroker +romaunt +jawbone +puppylike +daubier +adumbral +caprifig +unbelted +blunted +drapeable +drapable +dampener +amicably +peculia +penuchi +euphenic +impetrate +primate +imparter +wafture +whipworm +adamantly +cotidal +idiotical +glandular +junkier +dementedly +croupier +occupier +herbicide +birched +biotech +bioethic +criminal +chinkapin +brantail +brilliant +prolixly +pitched +agitprop +lithotriptor +bathroom +tiebreaker +gherkin +oxidated +oxidate +rackful +nightgown +midwiving +mulched +mythology +miterwort +mitrewort +unexpert +beneficed +unpaved +vicarly +excrement +nongolfer +mufflered +involution +volution +volutin +pickled +epigraph +epigrapher +cytogeny +gonocyte +convolvuli +witching +twitching +featherhead +fathered +featherheaded +feathered +freehearted +rathole +loather +pivoting +amphibian +jurying +provoked +repanelled +replanned +repaneled +preplanned +tonneaux +puddlier +panicky +pickaninny +reverberant +frigidity +executrix +overtip +monocrat +cormorant +zoarium +breezily +flinted +gigabyte +artfully +trayful +tippable +pitiable +belatedly +injectant +ammonify +abnegated +pyretic +jerking +darking +grandkid +nonfamilial +glutamate +hawthorn +barytic +legendry +arability +tribally +arbitrarily +irritably +irritability +intromitting +motoring +monitoring +plaguey +laicized +concaving +linearize +gynarchy +chevalet +derivate +irradiative +derivative +variated +radiative +caromed +carromed +comrade +camcorder +nodular +tachyon +anthocyan +chatoyancy +chatoyant +quirking +couthie +pikeman +homeotic +quoined +pharynx +valuator +toxemic +fivefold +overwrite +coholder +immobilize +mobilize +muntjak +fibrotic +marihuana +lectured +cultured +cluttered +relucted +reviewal +quaffing +euphemize +chomped +nonalcoholic +exaggerated +thebaine +mucking +ironlike +futzing +hagriding +runback +embraceor +wildfire +untapped +unadapted +bullwhip +nabobery +prolonge +prolonger +pregnenolone +evacuated +overbill +overboil +recoined +corniced +endocrine +guacharo +oxazine +zoophilic +tumidly +moltenly +teleonomy +momently +pericycle +pericyclic +creepily +clapperclaw +friction +cowherb +announcing +chirped +decipher +deciphered +decipherer +ciphered +chippered +abluted +tubulated +tabulated +paddocked +peacocked +bookbinding +unglove +buxomer +liftman +furmety +fontanelle +fontanel +endamoeba +bemoaned +abdomen +endamoebae +marathon +abrupter +ballooned +bondable +belladonna +glaciate +dummkopf +myrmidon +kneadable +blanked +carrefour +kaleyard +begorrah +begorah +harborage +decrypt +decrypted +hypnoid +fidgeter +grifted +pirogue +groupie +napalming +palming +impaling +lamping +habitation +inhabitation +jactitation +glaiket +taglike +gatelike +tawnily +wameful +tabooley +lobately +oblately +japanize +midwifing +hormonal +nonhormonal +ergotic +brawnier +jugglery +piciform +analogizing +prewarmed +furnace +overjoyed +billowed +lucently +luculently +gadabout +brachet +batcher +mangonel +gawkier +excretal +bordereau +arboured +emblazer +yawping +talkative +beading +badinage +badinaged +colobomata +plunged +pungled +unplugged +crucified +cigarillo +calflike +grappled +barbarized +arabized +edifying +deifying +defying +apteryx +taxpayer +backwood +whacker +benevolent +dramaturg +ennoblement +unleavened +unvalued +crinkly +coenzyme +hunkier +prelimit +hoodwink +outflown +henpecked +mathematize +billionth +hutching +unhitching +chuting +orphanhood +doughboy +loafing +foaling +whinchat +wifehood +vaunting +nonrival +nonviral +unmaking +baptize +unbudgeted +filmland +unbought +allowance +continuity +venireman +vermian +backlog +expletive +whimper +careful +furculae +carefuller +aerobic +ruglike +interject +reinject +dungeoning +gudgeoning +innuendoing +farmland +notepad +mullioning +patency +appetency +weighted +frazzled +burthen +expunged +pontific +eventuated +vaunted +chimichanga +machining +flanneling +fenagling +flannelling +leafing +finagle +flagellin +punitive +premixt +thanker +coleoptile +rodlike +lordlike +virology +burghal +libidinally +ruralize +antique +quinate +equitant +quantitate +antiquate +tripack +kinkajou +catbird +tribadic +gavotted +plaudit +plottage +truehearted +cycadeoid +forefather +outwitting +headlamp +louring +unrolling +nonruling +flowery +blindingly +bindingly +highflier +refrigerate +frigate +figeater +ecotypic +corroborate +infirmity +cliqued +hymnbook +autonomy +tautonymy +tautonym +problem +krummhorn +krumhorn +vitiable +evitable +ablative +foraging +cookware +toxical +homebred +prepunch +puncher +woodchat +unhurried +unhired +unhindered +abhenry +overmelt +voltmeter +bernicle +capmaker +pacemaker +peacemaker +hexapod +pyrexic +bonehead +boneheaded +coxalgic +axiological +coxalgia +berouged +haemoid +hatlike +heathlike +teleported +replotted +droplet +overlax +nonurgent +enfolder +fondler +trainband +placidly +whorled +arbutean +vampire +prolific +unfrock +madrigal +rhizopod +backhaul +evoking +pyaemic +radiancy +counting +continuing +outcounting +yokefellow +quadrant +updraft +liturgy +chomper +chromophore +alchemy +ephedrin +ephedrine +unmellow +ingenuity +exacerbate +chibouk +gaudily +dotardly +hunkered +refluent +guffawing +nonformal +bagpiper +outfoxed +flanked +diazepam +preaxial +nonideal +dandelion +adenoidal +overemoted +undidactic +warplane +podzolic +otalgic +bouncer +waiflike +kalewife +cheffing +jointer +plucked +mortify +quicker +grayout +autogyro +confected +confiding +multitude +outworker +compted +coempted +competed +mouchoir +chromium +atrophia +miauling +mulligan +mauling +hidalgo +biparty +multiple +multiplet +reedbuck +delegacy +cabinet +reobject +objector +occupied +movable +moveable +bethought +hickory +chickory +imbrued +reboant +baronet +betatron +bellyband +windbag +brocade +brocaded +kerygma +almoner +wryneck +umbonal +overbuy +glouted +rendzina +paughty +collective +covellite +theocrat +umbilical +bulimiac +fluidity +dutifully +flatlong +beleaguer +arguable +germproof +pygidium +mulberry +clapping +placing +pinnacling +joltier +halfbeak +obliged +charked +epiboly +barbequed +brimfull +brimful +prelected +preelected +twinkly +advantage +advantaged +bowlder +lowbred +metrified +divination +farmwork +joyance +punditic +troubadour +outboard +djellabah +philibeg +rollback +hellenized +udometer +durometer +comically +vengeful +alimony +nominally +nonflying +frogeyed +gyplure +biological +abiological +genealogy +angelology +azoturia +regrowth +triturated +chairman +femininity +feminity +pecorino +coprince +pecorini +porcine +coenuri +neuronic +outbegged +chlorid +embrown +unfairer +borborygmi +detecting +digenetic +armigero +evidencing +deceiving +roughage +ungently +bandwagon +primordium +iceboat +lehayim +prolocutor +rewakened +reawakened +buckbean +dazzling +throatier +hotdogger +boltrope +pagurid +waddying +prodromal +yarmelke +malarkey +cavilled +caviled +wizardry +tabloid +geoduck +trebucket +fumelike +dorhawk +latency +acetylene +coinfer +conifer +confiner +reinforce +reinforcer +odometry +worthed +algaecide +algicide +domical +filmable +blinker +overreported +overtopped +willowware +vexillum +fermentor +fomenter +forgiving +exuvial +hymenia +bigeneric +copemate +glittered +revertible +factotum +upbraid +dramatic +xanthoma +xanthomata +paperboard +commutate +chewable +xenogeneic +expander +chateaux +impolicy +trackway +dimetric +decimeter +morbific +cribriform +exaltedly +cramped +capuchin +jaggedly +hebdomad +offtrack +beholder +flightily +flighty +anyplace +initialization +nationalization +latinization +lionization +candour +tughrik +midbrain +birdman +hypocotyl +polyptych +protozoal +quailed +ecofreak +fervency +abducted +entozoal +hobnail +linkboy +picketed +fetation +bedizening +achenial +tightwad +byrling +cougher +churchgoer +brochette +botcher +dropkick +urinemia +loathed +toolhead +homonymic +quartern +wanderoo +narrowed +woodenware +lactone +lanceolate +collectanea +ecotonal +continue +tableware +handier +billycock +lawbreaker +veratrum +proving +calcaneum +globular +nonutility +outbark +moanful +flattener +fraternal +eductor +reductor +courted +bouffant +upchucked +reutilize +utilizer +toilfully +twirling +flacked +tympanum +drupelet +lithemic +kerbing +confute +naevoid +hexaplar +honorific +whitewood +greedily +chalked +hackled +linocut +locution +rockhopper +hyacinth +etymology +halberd +barrelhead +unmoved +mochila +civilizing +burking +elegancy +pronged +clamour +honeymooner +monorhyme +outyelled +citeable +celibate +balletic +citable +umpired +dumpier +peridium +beggarweed +wideband +feelingly +fleying +turnhall +cantdog +patched +impawning +galloper +pergola +haviour +frontal +honeybun +freckled +obedience +bartizan +urethral +ultraheat +gulflike +pigboat +corporally +edacity +unaimed +groundwood +equinity +inequity +marijuana +deepwater +backfill +coagency +cyanogen +militated +mammillated +newfound +twopenny +unlively +kaoline +inconveniency +conveniency +putamen +terreplein +teleprinter +troaked +franked +previewed +unfurled +unruffled +primely +willpower +blowgun +lollygagged +wrenched +monocracy +acronym +mediacy +immediacy +beholden +jumpier +hautboy +winterize +boogermen +chinbone +unimbued +orbital +trilobal +unyoked +aground +diurnal +reenjoyed +cavicorn +carnivora +corvina +frizzling +nonequal +marplot +mooncalf +anthodia +anthoid +nationhood +rebeldom +rebloomed +overgirt +vertigo +colocynth +upheaved +rejective +firedrake +daytime +hungrier +hungering +packable +autopilot +poetized +equipage +mudhole +demotic +committed +reweighing +fanatical +doglike +godlike +hyperpnea +dowable +lowballed +rebottled +premolt +metazoon +metazoan +humility +unloving +ungloving +bighorn +highborn +becrawl +empyreal +lamprey +verbiage +voltaic +holdable +exclaim +muckier +legitimate +illegitimate +ambroid +bulwark +rejuggled +fourchee +lawmaker +hyperon +verandahed +verandah +floorage +infantry +carbachol +ironbark +crankly +gutlike +ommatidial +pourparler +annexation +muckraker +muckrake +clamper +bodying +unflexed +outthank +trifold +touzled +bungler +blunger +featherier +upborne +rewedding +rewinding +redwing +rewidening +wringed +pigheaded +petunia +mutative +galvanizing +gromwell +jacking +backpacked +vicariant +balefully +chaqueta +priedieux +autarchy +periblem +coverage +handbook +flawier +comping +rehemming +cubital +rhombic +myelinic +inclemency +texturize +mixable +reprieving +unitary +embroil +bloomier +julienned +ideologue +fulminic +beaconed +unwalled +bromine +merbromin +precaval +rocketry +martagon +leitmotif +filemot +illaudably +audibly +quandong +nextdoor +livelihood +muddleheaded +dockage +inaugural +alluring +unalluring +brainily +bairnly +vacantly +whiffling +playlike +avowable +applicant +platinic +aplanatic +enjoyment +pilgarlic +cuckolded +devotedly +pureeing +repugning +eupnoeic +bifilarly +pinnulae +phonily +decking +kyanizing +letdown +carbamate +crabmeat +pembina +wrinklier +wrinkle +apprizing +variety +cajeput +hypoxia +varoomed +zygomata +dependently +convolved +munched +atomization +minimization +chaplet +turbulent +blunter +nubblier +educable +unkempt +goalward +draping +parading +forzando +ferrotype +kilojoule +verjuice +beatitude +applique +bellwort +boatful +vanitied +adventitia +deviant +adventive +recently +nonliquid +refixing +cymatium +oilpaper +peloria +lyncher +loculate +viability +availability +livability +uncoined +pitching +feudally +undutiful +uncaking +roughleg +coxalgy +perfecto +clubmen +nonfluid +midpoint +exactable +pinpricking +pricking +protozoan +uncaked +expertly +legitimize +figment +drawnwork +raucity +bemixing +quibbling +frighting +remixing +promontory +equinely +uniquely +cyclized +watchman +rollicky +auxiliary +coumaric +puckery +parkland +goodwilled +plumiped +twinkle +federacy +expediter +trickly +trickily +campcraft +tautology +miquelet +affinely +quenched +elegiacally +mackled +arrhythmia +arythmia +guffawed +yachted +armoured +delimiter +careworn +mandalic +tempura +premature +temperature +unmoored +mourned +levogyre +duality +termitary +jollified +ayurveda +caltrop +hellenizing +cuddling +including +photonic +floorboard +pinhole +phelonion +oenophile +bicaudal +roundworm +grillwork +notifying +omophagy +balmlike +beamlike +lamblike +adapting +exuding +bracket +hurting +lifeblood +cromlech +labdanum +whipray +daylong +inviably +colormen +nutpick +prizewinner +unicycle +fuddling +jemmying +groundhog +tripodic +dioptric +complete +complect +effluvium +tripody +torpidity +mattedly +allowedly +bunching +vertebral +effeminate +antifeminine +votively +glomerule +fidelity +fetidly +penuckle +periwigged +oxalated +hoglike +frugally +hologram +breakeven +forereach +proofing +huddling +dunghill +quelling +joinery +clubfeet +monitive +ducking +birdbath +dairyman +palmately +playmate +citywide +olivary +quandary +ectoderm +anhedonia +bowfront +alexander +prechill +referencing +refencing +myologic +halfback +tumultuary +hamburg +catchfly +bucking +moonwalk +wincher +etching +gallicize +bromidic +jerrycan +echeloned +jibingly +compend +upcurved +flagellant +photoplay +vaquero +benzoate +jollying +tallying +titillatingly +aliform +faceplate +fulmine +luncheon +clumped +bdellium +debatement +probatory +approbatory +fragrancy +heathland +cardamon +lockkeeper +humorful +unweary +longhand +rifampin +dentally +italicize +thionate +bricking +capillary +couvade +foilable +gawkily +lipolytic +polytypic +automen +viviparity +conjurer +conjure +minipark +terbium +imbrute +waterbed +benedict +factitive +affective +blethered +hooplike +mobocracy +referendum +buttonwood +libriform +toothpick +profound +grubbily +rehandle +handler +rehandled +doctoral +cartload +buttonhook +homebody +potluck +amberina +reindexing +obvolute +tautomer +anoxemia +theonomy +principium +villadom +cutinizing +coverlet +furmity +pumicing +defendable +vacuity +drought +floorcloth +inactivity +oracularly +ocularly +communing +hyphening +ozonated +zonated +gynecology +glycogen +opprobrium +crankier +autobahn +vorticity +victory +liquidity +illiquidity +nonappearance +coparcener +hierarchy +unpunctual +punctual +economize +whumped +eudaemon +devotement +thanking +knavery +roupily +pulingly +kymogram +karyogamy +alkalized +dynatron +tardyon +placemen +elecampane +placeman +bouzoukia +unkindly +bohemia +gamelike +valanced +cryingly +microdot +levodopa +doublet +buckaroo +neglecter +ovality +volatility +palanquin +gauzier +corrupter +overlent +coquetted +berrylike +cimbalom +kunzite +carambola +nonviewer +chutzpa +chutzpah +keyword +polyvinyl +wageworker +labourer +rubeola +rubeolar +belabour +multicity +hoblike +breathy +jailbird +trunked +grandaunt +guardant +complex +birdfarm +emptily +placket +highjack +polyzoic +vixenly +picnicker +wambled +bandeaux +diluvion +beuncled +privacy +handful +intombing +tombing +bottoming +chimney +mephitic +furlough +micrurgy +bibliophilic +plowman +proband +mongered +hoatzin +hebraize +folkway +deacidify +hizzoner +photophobic +bindery +locomotory +relaxedly +fernlike +everybody +proudful +bankcard +factory +mudcapped +excitative +pungency +ecocidal +deviance +bentwood +boatyard +amphipod +midcult +dabchick +zlotych +tidewater +tawdrier +eightvo +phlegmy +revanche +oedipal +chapbook +aquaplane +outpace +razorbill +coremium +microcurie +forbidder +opulent +bethump +parlando +impetigo +balding +dabbling +torchwood +chipmuck +perikarya +porthole +agentry +ultradry +photoflood +diplexer +graduator +outdrag +analyzable +curlpaper +pinkroot +peacocky +cymogene +kilocycle +hiccuped +hiccupped +choppily +lyophilic +frequence +gelidity +thickly +autogamy +zodiacal +comanage +commonage +maypole +bowllike +bowlike +multiatom +imputed +relocked +princox +gutbucket +endermic +phenoxy +whomped +fevering +enfevering +wrongly +hypoxic +gazpacho +hulloaed +bijective +hurrying +teughly +befriended +befriend +vitrified +devitrified +alpinely +havening +heaving +omnivora +inocula +uncanonical +actinium +prebaked +jazzlike +fireworm +chantry +ubiquinone +extendedly +margravial +denotive +devotion +explant +cataphora +vermiform +rheology +penuchle +corroborant +dimpling +gambled +imbroglio +potholed +glorying +herding +rehinged +hindering +mangler +congeal +collagen +flapdoodle +exarchate +reunify +harmful +gimcrack +bottleful +wooingly +glowingly +yowling +nonpaying +embayment +criticized +writerly +clincher +bowhead +criterium +turmeric +laxation +aquilegia +lovingly +fieldpiece +dovelike +unbeknown +weaponed +halolike +fumbler +mandrel +aldermen +alderman +dreamland +flatfooted +floated +pygmoid +divulging +fertility +fertilely +flytier +unbrake +propriety +petiolule +brooklet +tickled +vauntful +moulage +manageable +abandoning +aboding +homemaker +carling +craaling +touched +outechoed +eurhythmy +eurythmy +colloquial +colloquia +overbrief +refortify +goldeneye +goldenly +exceeding +exciding +cheerleader +cheerlead +clearheaded +traumatic +polemize +cordiform +howbeit +bobwhite +uglified +moldable +batlike +validity +metrify +cranberry +aberrancy +lavrock +crudity +exhibitive +patinizing +rejacket +herdlike +muckworm +overpromote +multiply +unawaked +unawakened +bedimple +bedimpled +bepimpled +rickety +trickery +unhelpful +aimfully +benching +chumming +munching +timbral +concurrency +binnacle +inclinable +jejunity +chocolaty +whiningly +cheaply +rotative +herdman +limitingly +imputer +julienning +lavatory +organum +poultry +firepan +golconda +heroized +viewdata +hawkeyed +autarkic +cordial +coralloid +briefly +itemizing +ameboid +amoeboid +defector +trudging +intruding +improver +improve +celibacy +nonexempt +convolving +gaudier +microbe +prechecked +ladylove +toughie +cutworm +inflexible +muddying +dummying +unfruitful +chequered +ratlike +talkier +helotry +mannerly +tetanization +katchina +leukoma +newcomer +fitchew +dilatability +biddability +peacenik +fruited +marlitic +parquet +paraquet +botched +lucidity +ductility +tideway +enhaloed +bylined +indelibly +butyrin +windburn +frowzier +wagonette +unkinder +primage +epigram +premarriage +impound +mannequin +mammocked +clonked +frogman +beachwear +foxhunt +longleaf +apperceive +exurbia +adjoined +megadeath +honewort +plagued +immobility +mobility +epithelize +colorfully +gauffered +braving +unanimity +learnedly +waterwheel +outvoice +tragical +procurator +reinjury +fumbled +avifaunal +gearwheel +lauwine +conclave +covalence +hyaenic +parfocal +pedocal +naivety +rabbinical +vanguard +barricado +idoneity +nonidentity +ageratum +jawline +uplight +monkeyed +turnover +overturn +complicit +impolitic +walloper +quaggier +nondrinking +plumbed +untrendy +unimmunized +immunized +affectable +foamily +provolone +moulted +floridly +dolefuller +floured +crudely +permanence +fahlband +wharfage +foamier +aeriform +figural +flagpole +pirozhok +pirozhki +heehawing +victimize +cloxacillin +oxacillin +luncher +mamboing +mazourka +pedology +femininely +yolkier +quixote +dogvane +midtown +parking +pranking +longboat +coevally +combine +homelier +heirloom +gabbroid +unready +trackman +pinwork +benedick +pavonine +retroflex +preamble +permeable +outcheat +unwarier +outmoved +iceblink +gamecock +pyrogallol +papyrology +daglock +reliquiae +jangler +blowpipe +backroom +lieutenant +alunite +plenary +hawking +antiwhite +bedfellow +towline +triethyl +verecund +outclomb +holking +reembody +activize +orality +precieux +porphyria +bewrapt +bivouac +blucher +glitchy +pranced +muntjac +excretory +ironbound +millionth +monolith +ethinyl +outback +backout +antikickback +buckram +fixating +virtual +unmaker +unfroze +unfrozen +megabyte +inflame +jughead +flexitime +flextime +avuncular +lyophile +rainproof +kerfing +enhancing +enchaining +diluting +antijamming +oedipean +peponida +popinjay +hackney +rumbaed +dockyard +limelight +nonethnic +embracery +exoergic +hamulate +butterfat +moorland +lymphoma +hambone +banjaxed +hillocky +outhunted +damozel +lapwing +overwarm +footboard +kinghood +excellently +guanidine +qindarka +expending +blocker +overruffed +goldurn +extricate +richweed +expunging +chuffier +confirm +dumfounded +recyclable +cerebrally +convoker +fribbling +adjoint +progeny +pyrogen +vaunter +pyridine +kerchief +kelping +thionyl +inflect +grumbly +obelized +frogmen +overgrown +velodrome +daybreak +taloned +lentando +knottily +ultrahot +glyceric +neckband +backbend +lengthener +burgeon +bourgeon +barograph +tachinid +frivoller +frivoler +overfill +czardom +coemploy +exarchal +adjoining +preferable +phototube +welcomer +calzone +kingbird +droving +lachrymal +committing +utilized +taphole +apholate +bombarded +broodmare +harking +removal +guardroom +hitchhiking +donnybrook +monkery +hogback +automatic +chazzanim +chazanim +roquelaure +ruddling +unriddling +bombycid +flavory +eloquent +ovulary +regauging +rearguing +froghopper +drainpipe +pardine +inerrancy +cinerary +flavine +ivorybill +jingled +faradized +faradize +geophyte +growling +dandruffy +whirrying +aquiver +tellurium +apologiae +polyclonal +hangout +handymen +mollycoddle +mollycoddled +uncorrupt +dogface +drizzling +madwort +nitrifying +downhill +pupillary +pupilary +rightly +prenumber +avowably +brioche +unbreech +cofinance +gulpier +motivation +hexadic +ovenlike +drumfire +cantonment +commentate +mandarinic +midnight +placoid +enouncing +chancery +foraged +octoploid +hangable +precedent +precented +neomycin +hornbill +leghorn +nimbler +zonular +clowder +magnific +overfond +unelected +jaunced +hipbone +dezincing +campanula +unclamp +pounced +etiolated +unoiled +beatify +thriftily +checkroom +quintillion +maneuverer +maneuver +plowable +proclitic +lipotropic +coprolitic +cogwheel +annulment +tokening +aphanitic +flytrap +polecat +hexagram +climbing +malacology +overlewd +wheezily +unhooking +yacking +chivvying +chivying +everyman +icekhana +clubroot +charqui +choppered +pelletized +ambient +applejack +phenacaine +epiphanic +dacoity +walking +vermicelli +plummeted +crucially +circularly +crumbier +victual +pawkier +menorah +amenorrhea +adequacy +louping +logomach +torqued +roqueted +ejaculate +jaculate +extempore +knobkerrie +knobbier +lapboard +verbicide +plumage +oarlike +nontariff +nonthinking +pouched +defoamer +forearmed +chammied +acridity +caryatid +etherified +paranormal +ownable +picquet +extincted +jauping +brickle +magnify +magnifying +brulyie +bryozoan +planeload +alkalotic +cocktail +halophilic +watchcry +xeroxing +undefeated +irefully +vandyke +vandyked +frumpier +gryphon +goliard +precooked +vocably +roughen +urgency +overthrew +overthrow +flunker +chubbily +portfolio +adulthood +pimpernel +hording +mudrock +fluxion +pithead +overprice +antiparty +extremity +educing +deducing +deucing +autocade +outacted +unmoving +helpfully +uptilting +wantoning +excelling +mezquite +mezquit +ytterbia +cyclorama +overcured +bumpered +although +outlaugh +offhanded +melphalan +intermezzi +inhibitor +frenulum +breviary +hydragog +zithern +virucide +firebrick +bolivar +vagrancy +zecchino +telecommute +colonize +thoughtful +concertgoer +ultralow +eloquence +reannexing +chumped +cabezone +cabezon +placebo +bollixed +wetback +penchant +fibrinoid +frijole +outerwear +outwear +tractably +wauling +viomycin +xylidine +garibaldi +repellently +unbaked +emollient +limonite +nonmotile +playroom +jaybird +faubourg +thumbed +liquefier +millinery +gangplow +gaucher +viceroy +zoolatry +watchout +outwatch +unmewing +weekending +pinched +relight +highlighter +lighter +emergency +juncture +unmeaning +myeloid +employed +knottier +uniform +nonuniform +mongoloid +molding +chenopod +tabouli +bailout +catfight +firebox +laughably +buckyball +hereupon +wheezing +bowline +exteriorize +droopily +hellhound +exaggerator +unpaged +applaudably +redeploy +redeployed +flakier +opacity +crumply +triploid +balkier +bearlike +zabaione +analyzed +daubery +outjinx +duckpin +beclothe +preunion +rockaby +impower +totalizator +bedrock +lichted +homaging +cubically +gratify +biolytic +hydroxyl +preflame +pochard +admixing +winnable +putative +overlooked +aftermath +implying +forking +unbuffered +unpucker +aboideau +flocked +bronzed +echoing +nonchalant +intricacy +tyrannic +vapourer +toothlike +gloxinia +velamina +duckbill +introfy +precollege +humbugged +polyphone +polyphenol +executant +bicycling +bellyache +omphali +permitted +pretrimmed +pretermitted +daturic +executive +outgave +viaduct +viaticum +gloated +demagogy +cowgirl +jumbler +forklift +miauled +wealthy +memorized +piroque +fellahin +chilopod +monaural +unmoral +workforce +madrepore +warking +nonmalleable +nobleman +bonemeal +bullfrog +eutectoid +clangor +bayonet +inefficacy +yucking +trilogy +promine +implorer +implore +impellor +fluorid +grouchy +dormitory +packaged +believably +rampion +airthing +pleached +cephalad +epilogue +fruition +charlock +filmically +taximeter +orthodoxy +browning +borrowing +electrojet +craggily +cocainization +canonization +overwater +playback +divinely +vinylidene +pagurian +keynoted +docilely +becrimed +unartful +uncommonly +tickling +congruence +pauperize +racemize +flenched +guyline +genuinely +bronzier +plucker +thiazine +heathenize +violably +drumhead +zeolitic +actability +thurifer +riverward +unpuzzled +jovially +reaphook +oxheart +buzzword +virelay +minibiker +outpower +coappeared +utilidor +dilutor +lumbago +blither +clonicity +phycology +tympanal +commodify +chefdom +movably +middlingly +tableland +reweighed +commodified +tzarevna +catechize +diarrhoea +bipartite +ovately +eyepoint +microgram +overcram +overcame +tableaux +lockage +wreckage +exuberate +bedlamp +haywire +checkerberry +hexamine +cindery +chuckler +gynecia +gynaecia +zymotic +marmoreally +ruggedly +unchewed +unafraid +willyard +vagility +dogfought +ladybug +influent +gabbroic +booklice +pyramid +recombed +letterform +planked +kilobar +wolfram +bicycler +gambier +forerank +alkalified +poleaxed +overtax +bluecap +culpable +flyblown +chirpily +aptitude +purfled +unvoice +trawley +perplexedly +horribly +pentagon +beclogged +flagmen +grapnel +whitener +writhen +hydathode +bourride +troland +meringue +dirtbag +plowmen +telegony +prearranged +pranged +highroad +unmeetly +kaoliang +varying +opiated +foxlike +hegumeny +curettage +commuter +bicorne +chuckled +whanged +glumpily +forelock +wafting +caldron +unvocal +verticil +cageful +rhizomic +crankpin +muddling +flattened +frounce +carbolic +braciola +fauteuil +feverwort +garpike +tholeiitic +eolithic +mouched +vitalize +uncatchy +clayier +clerically +humbugging +variably +blackmail +elytrum +openhanded +headphone +kanamycin +yuletide +explain +vacuole +kajeput +eulogium +choleric +exerting +failure +kibbutzim +loathful +luthern +principal +lunately +gumlike +forepaw +pizzicato +refectory +nullifier +pinchpenny +wardenry +obviate +mullocky +fetology +nonnatural +unitizer +tumblebug +photodiode +checkmark +coherency +boutique +accoucheur +backhoe +overpowered +trapunto +pickproof +agronomy +ejecting +injecting +commuted +tyronic +blacker +hurling +chevelure +anaglyph +exordia +nonbelief +lobefin +gobbledegook +vamping +unmitring +untrimming +quicken +inoculum +chantey +jouncing +hoidening +bioherm +jouking +lockdown +larceny +unrazed +arctangent +commandant +jonquil +cliquey +crumped +quibbler +kalyptra +mildewy +dubiety +worthier +exteriority +outfind +volumed +tryingly +fatefully +twitchily +hagiology +gorgedly +ruckled +pounding +advancing +laughed +halcyon +affluence +kailyard +hygienic +gauzily +outcooked +cambogia +cutwater +feminizing +miracidium +townfolk +turfman +cyphered +coaching +parricidal +buckteeth +intracardiac +flouncy +highbred +biannually +plonking +workfare +antiflu +pedicab +mercenary +nudzhing +outvied +pyxidium +miaowed +cembalo +prevented +bedtick +challenge +mucidity +waxberry +ethnicity +rubdown +deficiency +encampment +paperboy +upgazing +dovening +pacifically +prowled +wolflike +purulence +aphonic +handbill +curtalax +oilcamp +patinize +overtly +fluency +tragacanth +phoneyed +bootlick +hiddenly +footwear +bootlegged +temptable +attemptable +ideology +excitement +furibund +campagne +forewarn +plateaux +ciboule +lambkin +dogtrotting +domelike +cryoprobe +chawbacon +ophiuroid +uncapped +hulking +objected +uncommoner +nonindependence +niobate +tamarind +lemonade +laundry +airflow +digitoxin +auditive +riflemen +quirkily +freckly +hyperaware +zoometry +nonarable +bannerol +grubworm +function +cofunction +tagboard +primacy +flanger +prophecy +coryphee +regretful +jumbled +bejumbled +quercine +chirking +zombify +daubing +unbandaging +humoral +auxetic +flicked +homologue +fourragere +whortle +branchia +overbeat +voucher +tepidly +lexicon +quarryman +pawkily +felonry +ticketing +windblown +flaxier +woodenly +vermuth +deponing +lintwhite +cupidity +radicchio +pupillage +pupilage +luteinize +blintze +cranreuch +mortarboard +wampumpeag +thalloid +concaved +lawyered +pulmotor +tailwater +courage +geodetic +flunkey +greenheart +hippocampi +trimorph +weldment +hoorahing +umbonic +remarkable +whitebait +chowhound +monoplane +puerilely +gluepot +fluoric +footpace +bigoted +comatula +diazole +embruted +coachable +amoebic +holotype +auriform +dieback +cyprinid +indoxyl +wittingly +bacitracin +guaiocum +jointly +chorial +colliery +grecized +horrified +blonder +effrontery +identify +drumlin +drophead +annualizing +unquoted +manfully +pivoted +panmictic +chirming +culprit +warlock +wantonly +acolyte +oxtongue +cultlike +thievery +futilely +inheritrix +naughty +flopover +eighthly +tindery +farewelled +triplicity +encrypt +beflecked +pivotal +xenophobe +hyenoid +preemergence +defenceman +menfolk +birthed +bimorph +calumny +impurity +unwaxed +untidying +begulfed +quietly +champed +tubificid +vocalically +vulpine +crinkling +cappuccino +lazulite +homograph +finalizing +nonexpert +roughhew +hemlock +wellcurb +quixotic +mortuary +overpump +blitzed +hedgerow +globate +overman +vambrace +vouched +tweezing +outfrown +expounded +expound +epochal +thirdhand +talkathon +nonelected +phimotic +inveighed +cheapjack +grumphy +ticktacktoe +bilingual +ovenware +thindown +difficult +elbowroom +embankment +achiote +handcuff +fronting +duckwalk +expertize +cytidine +backhand +ampullary +paramylum +prebind +ungreedy +kingdom +crimping +vernicle +puncture +bronzing +replevin +corkage +aerodyne +cockneyfy +worrited +frankfurt +wickape +kneading +exequial +watthour +cetology +conchology +cothurn +unfencing +cardinal +tympano +epidermoid +tangoed +haulier +beweeping +filcher +jambeaux +microvilli +ropelike +lithologic +enjoying +outmatch +vaticinal +wakeful +florence +herbivore +hyphemia +clayware +exogamy +definiendum +impunity +cathodal +philtra +guillemet +aphanite +punched +chigetai +aftertime +airglow +anodizing +cutbank +kibbutznik +yeomanly +indictor +maculed +juttying +keycard +invoked +opaqued +kinglet +aliquot +vacuumed +grandbaby +unteach +beekeeping +hirpled +polypide +hayfork +outbawl +painful +bonhomie +bewrayed +equably +oxpecker +watercraft +unhoped +catlike +jacquard +cudgeler +beckoner +inweaved +humidity +gymkhana +taxonomy +quilted +firecracker +juvenal +formant +bedirty +bethank +tackify +mightier +wrathier +hyaline +tangency +lifeway +knackery +maryjane +matchup +cheviot +neglected +beckoned +feedback +topgallant +healing +mugwort +nonprogram +infirmly +unwilled +windmilling +untidily +pluvian +criticizing +loudmouth +pickling +bewailed +outhear +ergodic +blencher +benomyl +potency +chancily +unknitted +waterpower +clothed +emmenagogue +lurched +acquittal +axonemal +diminution +birthing +pogromed +acrogen +arrogance +crannoge +traiking +karting +anarchical +guiltier +chervil +cathode +unaverage +polymorph +perfidy +denticle +toughen +impelling +azeotrope +viewable +beneficent +caladium +ophidian +cacomixl +diplont +notochord +preferment +unpotted +pinwheel +gimmicked +cacophony +handrail +carbonado +lapidify +reawoken +douzeper +pituitary +oldwife +greenway +buncombe +corrival +majored +thegnly +lengthy +abundance +rehoboam +aleatory +waltzer +bethink +trigraph +menacing +fogbound +folkmote +deceptive +winglike +lycopene +copromoter +overvalue +entelechy +brighter +monocled +cervelat +blueing +beguiling +openwork +prototyped +theatergoer +perfumery +quirting +malaguena +pavement +excavated +twelvemo +radioman +balcony +zymogram +comforter +broidery +anthemed +bellwether +humidly +teenybop +tonometry +helmetlike +churchman +ropeway +hogtied +trackball +moratorium +wheylike +bitewing +podlike +pyrexia +fleecing +whittler +powdery +gheraoed +hagrode +levanted +doubtful +neckwear +waxplant +hacendado +unkingly +theologue +mercerized +overplot +commoving +peculium +kiddingly +bizonal +oxyacid +charlady +pullback +bedgown +folktale +feculent +vagabond +dakoity +fiducial +noumenal +annualize +paunchy +watcheye +prickly +concubine +bitingly +drifting +chloroform +dayglow +hypallage +empyrean +brutify +ebonizing +forepeak +foretoken +majolica +fixative +throated +coequate +verboten +tricking +mightily +endozoic +labialized +octagonal +lengthened +flaccidly +fucking +enveloped +overtame +peloric +furlong +terebinth +bluejay +ephemeral +retributive +hummocky +bagworm +warthog +effluvia +birching +notedly +panoche +franking +cleanup +impalpable +grandly +ethmoid +cockeyedly +hominize +crackbrain +outdrunk +throughput +deferrable +margravate +hackler +patronal +mikvoth +extremely +vitriolic +dirtying +wallflower +gnawable +japanizing +lemminglike +rubicund +hypothec +neuraxon +triplex +broodily +bodywork +claybank +chamoix +coplotted +upfolded +monocoque +oubliette +millionfold +feazing +crunchier +meadowy +mealworm +loxodrome +cyclamen +unfolded +umpteenth +wackier +bluewood +dioramic +textuary +chintzy +putridity +rheophil +warming +violator +cakewalked +mouthful +pincheck +wharfed +hyponoia +iridology -- 2.34.1