unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [NonGNU ELPA] New package: dw.el
@ 2021-03-30 21:13 D
  2021-03-31  6:38 ` Jean Louis
  2021-04-01 21:29 ` Stefan Monnier
  0 siblings, 2 replies; 16+ messages in thread
From: D @ 2021-03-30 21:13 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 1308 bytes --]

Hello,

I would like to submit this package for inclusion in NonGNU ELPA.
A short description of the package (attached) is provided below.
The git repository can be found here [1].

This package implements Arnold G. Reinhold's diceware method [2] for Emacs.

The following short description of the diceware method is taken from
the official website:
> Diceware is a method for picking passphrases that uses ordinary dice
> to select words at random from a special list called the Diceware Word
> List. Each word in the list is preceded by a five digit number. All
> the digits are between one and six, allowing you to use the outcomes
> of five dice rolls to select a word from the list.

So in essence, the diceware method serves as a straightforward way to
generate (easy to remember) passphrases using a word list and one or
more dice.  My package merely automates away the tedious lookup
process, serving as a convenience.  Word lists (as well as physical
dice) need to be provided by the user.  How to obtain such word lists
is explained in the commentary section of the package (download links
are provided, together with a short instruction for where the package
expects the files to be).

[1]  https://github.com/integral-dw/dw-passphrase-generator
[2]  http://world.std.com/~reinhold/diceware.html


[-- Attachment #2: dw.el --]
[-- Type: text/x-emacs-lisp, Size: 36537 bytes --]

;;; dw.el --- Diceware passphrase generation commands  -*- lexical-binding: t; -*-

;; Copyright (C) 2017-2020  D. Williams

;; Author: D. Williams <d.williams@posteo.net>
;; Maintainer: D. Williams <d.williams@posteo.net>
;; Keywords: convenience, games
;; Version: 1.0.2
;; Homepage: https://github.com/integral-dw/dw-passphrase-generator
;; Package-Requires: ((emacs "25.1"))

;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.

;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;; GNU General Public License for more details.

;; You should have received a copy of the GNU General Public License
;; along with this program.  If not, see <https://www.gnu.org/licenses/>.

;;; Commentary:

;; This package implements Arnold G. Reinhold's diceware method for
;; Emacs.  For more information regarding diceware, see
;; http://world.std.com/~reinhold/diceware.html
;; Diceware (C) 1995-2020 Arnold G. Reinhold

;; IMPORTANT: Please read the below section to know how to use this
;; package, as it requires additional files *NOT* included in the base
;; install.  Apart from the listed requirements, this package requires (ideally)
;; one or more casino-grade dice for true random number generation.


;; Basic setup:
;;
;; This package requires a so called wordlist to function as intended.
;; This file serves as the pool of random words from which your secure
;; passphrase is generated.  Put a wordlist for passphrase generation
;; into the directory specified by ‘dw-directory’.  It will be
;; automatically generated the first time this package is loaded.  If
;; you don't already have a wordlist, you can find two common, English
;; wordlists below:

;; https://www.eff.org/files/2016/07/18/eff_large_wordlist.txt
;; http://world.std.com/%7Ereinhold/diceware.wordlist.asc

;; The former generates passphrases with long, common words while the
;; latter favors short words and letter combinations, which may be
;; harder to remember but quicker to type.  You can find wordlists
;; for many other languages here:

;; http://world.std.com/~reinhold/diceware.html#Diceware%20in%20Other%20Languages|outline

;; Basic usage:
;;
;; 1) Choose a buffer to write your passphrase in (temporarily).
;; 2) Roll your dice, reading them in some consistent way (e.g. left to
;;    right) every time, and typing them neatly separated in groups of
;;    five.  You can separate them using any character matched by
;;    ‘dw-separator-regexp’ (whitespace by default).  For example, if you
;;    rolled ⚄⚂⚀⚅⚅, type "53166".  You will need five times as many die
;;    rolls as you want words in your passphrase (six being a decent
;;    amount for normal passphrases).
;; 3) Mark the region where you wrote down your sequence of rolls and
;;    use the command ‘dw-passgen-region’.  You may need to choose a
;;    wordlist depending on your setup.  See the documentation for
;;    ‘dw-named-wordlists’ below for how to skip this step and set up
;;    a default wordlist.

;; This package provides the following interactive commands:
;;
;; * dw-passgen-region
;;
;;    The all-in-one interactive passphrase generation command, and
;;    most likely everything you'll ever need from this package.  Just
;;    mark the region containing your written down die rolls and run
;;    the command.

;; * dw-set-wordlist
;;
;;     Manually set a wordlist without invoking ‘dw-passgen-region’,
;;     and regardless of whether a wordlist has been set for the
;;     current buffer before.

;; Final notes:
;; The package itself is not at all required to create diceware
;; passphrases, but automates the table lookup bit of it.

;;; Code:

(require 'seq)
(require 'wid-edit)
(eval-when-compile
  (require 'cl-lib))

(defgroup dw nil
  "Generate diceware passphrases."
  :group 'convenience)

;;; Package-specific errors
;; The specifics and conventions are only relevant if you are
;; interested in writing code depending on this package.  In that
;; case, see the README for a complete documentation of errors and
;; their conventions.

;; Input Errors
(define-error 'dw-bad-roll
  "Invalid die roll"
  'user-error)
(define-error 'dw-incomplete-roll
  "Not enough die rolls for a complete word"
  'dw-bad-roll)
(define-error 'dw-too-short-passphrase
  "Too few words for a secure passphrase"
  'dw-bad-roll)
;; File Errors
(define-error 'dw-bad-wordlist
  "Broken wordlist")
;; Misc RNG Errors
(define-error 'dw-incomplete-int
  "Not enough die rolls for the given integer range"
  'dw-bad-roll)
(define-error 'dw-overflow
  "Too many consecutive die rolls, not implemented")

\f
;;; Package-specific warnings

(defun dw--warn-short-words ()
  "Report a warning for passphrases with too many short words."
  (delay-warning '(dw too-many-short-words)
                 (concat "The generated passphrase has many short words. "
                         "Consider discarding it.")))

(defun dw--warn-bad-random-characters ()
  "Report a warning for incomplete character lookup strings.
This warning is triggered if an entry in ‘dw-random-characters’
unexpectedly cannot assign a die roll to a character, which is
only allowed for entries with a non-nil LAX value."
(delay-warning '(dw bad-dw-random-characters)
               (concat "There were unused rolls. "
                       "‘dw-random-characters’ is probably misconfigured.")))


\f
;;; Constants

(defconst dw--dice-number 5
  "Number of die rolls needed for one word in a passphrase.")

(defconst dw--conversion-limit 10
  "Length of the largest string that allows direct integer conversion.
This constant also governs the maximum number of dice usable to
generate a random integer with ‘dw-generate-ranint’.")

(defconst dw--wordlist-length (expt 6 dw--dice-number)
  "Number of entries needed for a valid wordlist.")

\f
;;; User-facing variables
;; Core API

;;;###autoload
(put 'dw-salt 'risky-local-variable t)
(defcustom dw-salt nil
  "Unique, personal string to append to passphrases.
Salt is a string of non-secret data to append to your
passphrases.  It serves to prevent dictionary attacks, and makes
it harder for potential attackers to brute force multiple keys at
once.

While it is not a good idea to use the same passphrase for
everything, it is best to use the same salt or everything, as it
frees precious mental real estate.  You can use a phone number, a
random string of characters, or anything else for this purpose,
as long as it is sufficiently unique.

It is also a great way to fulfill those pesky demands of some
services to have a special character, a number and an uppercase
character in it without adding mental overhead.

If non-nil, interactive commands should ask whether they should
append the salt, depending on the value of ‘dw-use-salt’.

Appended salt is separated from the remaining passphrase the same
way individual words are, using ‘dw-passphrase-separator’."
  :type '(choice :format "Personal salt: %[Value Menu%] %v"
                (const :tag "none" nil)
                (string :tag "custom string"
                        :format "%v"))
  :risky t
  :group 'dw)

(defcustom dw-use-salt t
  "Non-nil means to (conditionally) append ‘dw-salt’ to generated passphrases.
If set to the symbol ‘prompt’, interactive commands will prompt
the user whether they should append salt.  Any other non-nil
value is equivalent to t, meaning salt is appended automatically.

Appended salt is separated from the remaining passphrase the same
way individual words are, using ‘dw-passphrase-separator’.

This variable has no effect if ‘dw-salt’ is nil."
  :type '(choice :format "Append salt interactively: %[Value Menu%] %v"
                 (const :tag "always" t)
                 (const :tag "ask every time" 'prompt)
                 (const :tag "never" nil))
  :group 'dw)

(defcustom dw-separator-regexp "\\s-"
  "Regular expression to match a single separator character.
Essentially, this regexp defines which characters (apart from the
numerals 1 to 6) are valid to appear in die roll strings.
Allowing separators serves as a convenience for the user to be
able to keep long sequences of die rolls readable on input."
  :type 'regexp
  :group 'dw)

(defcustom dw-minimum-word-count 5
  "Minimum length of a good passphrase (measured in words rolled).

Generating any passphrase shorter than this value will signal an
error by default.

It is generally a bad idea to set this value any lower than 5, as
permitting any shorter passphrase renders diceware passphrase
generation pointless.  It may however be reasonable to set it to
6, the commonly recommended minimum passphrase length."
  :type '(choice
          :format "Minimum security level: %[Value Menu%] %v"
          (const :format "%t (%v words)"
                 :tag "lax" 5)
          (const :format "%t (%v words)"
                 :tag "moderate" 6)
          (const :format "%t (%v words)"
                 :tag "high" 7)
          (const :format "%t (%v words)"
                 :tag "too high to justify using this package" 8)
          (const :format "%t (%v words)"
                 :tag "random essay generator" 9))
  :group 'dw)

;; Extended passphrase generation
;;;###autoload
(put 'dw-random-characters 'risky-local-variable t)
(defcustom dw-random-characters
  '((special-characters "945678^~!#$%=&*()-}+[]\\{>:;\"'<3?/012")
    (numerals "0123456789" . t)
    (alphanumeric-uppercase "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")
    (alphanumeric-lowercase "abcdefghijklmnopqrstuvwxyz0123456789"))
  "Alist of strings to randomly choose characters from.

Each element should be a dotted list of the form
\(NAME STRING . LAX)

where NAME (a symbol) is a descriptive name for the STRING’s
contents.  ‘dw-ranstring-region’ will prompt for these
names (with completion).  Choosing the symbol ‘default’ as a name
causes the particular string to always be the default value when
prompted.

LAX, if non-nil, does not enforce the length of STRING to be a
power of 6.  As a consequence, some rolls will fail to produce a
result.

Remark: The number of die rolls needed to generate a single
character increases logarithmically with the number of
characters: Less than 7 characters require 1 die per roll, less
than 36 two, etc.  Some character numbers may produce a high
failure rate (in particular values slightly above 6^n/2), which
can double the (average) number of dice per successfully generated
character."
  :type '(alist
          :key-type (symbol :format "Name: %v" :value default)
          :value-type
          (cons :validate dw--validate-ran-chars
                (string :format "Available characters: %v")
                (choice :format "Match die rolls: %[Toggle%] %v"
                        (const :tag "lax" t)
                        (const :tag "strict" nil))))
  :risky t
  :group 'dw)

(defun dw--validate-ran-chars (cons-widget)
  "Signal an error if string in CONS-WIDGET is unsafe to use."
  (or (dw--validate-ran-string-length cons-widget)
      (dw--validate-ran-string-uniq cons-widget)))

(defun dw--validate-ran-string-length (cons-widget)
  "Check that the car of CONS-WIDGET is a 6^N long string.
If the cdr (LAX) is non-nil, return nil instead.

Note for the technically inclined: In principle it may as well be
okay for non-lax (\"strict\") strings to *divide* a power of 6
instead of actually *being* a power of 6.  However, the number of
die rolls needed per character only increases on average for all
reasonable number ranges."
  (let* ((current-cons (widget-value cons-widget))
         (str-length (length (car current-cons)))
         (lax (cdr current-cons)))
    (cond
     (lax nil)
     ((/= str-length (expt 6 (dw-required-dice str-length)))
      (widget-put cons-widget
                  :error "Non-lax strings must be a power of 6 long")
      cons-widget))))

(defun dw--validate-ran-string-uniq (cons-widget)
  "Check that the string in the car of CONS-WIDGET has no repeating chars."
  (let* ((current-cons (widget-value cons-widget))
         (ran-string (car current-cons))
         (minimized-string (concat (seq-uniq ran-string))))
    (unless (string= ran-string minimized-string)
      (setf (car current-cons) minimized-string)
      (widget-put cons-widget
                  :error "Characters must be unique in string")
      (widget-value-set cons-widget current-cons)
      (widget-setup)
      cons-widget)))


;; Interactive use
;;;###autoload
(put 'dw-directory 'risky-local-variable t)
(defcustom dw-directory (locate-user-emacs-file "diceware")
  "Default directory for diceware wordlists for interactive functions.
If this directory is not present, it is automatically generated."
  :type 'directory
  :risky t
  :set (lambda (symbol value)
         (condition-case nil
             (make-directory value)
           (file-already-exists))
         (set-default symbol value))
  :group 'dw)

(defcustom dw-named-wordlists nil
  "Alist of personal wordlists for interactive use.

Each element is a dotted list of the form
\(NAME FILE . CODING)

where NAME is the wordlist’s name used interactively (a symbol),
FILE is a string containing the actual filename of the wordlist
and CODING is the encoding of the file, nil being equivalent to
`utf-8'.

NAME is what interactive commands will prompt for to access a
particular wordlist.

If a wordlist has the special name ‘default’, interactive
commands will use it by default instead of prompting.  Similarly,
if the alist has only one entry, that wordlist is treated as the
default wordlist, regardless of the name.

FILE, if relative, is relative to ‘dw-directory’."
  :type '(alist
          :key-type (symbol :format "Wordlist name: %v" :value default)
          :value-type
          (cons (string :format "Wordlist file: %v")
                (choice
                 :format "Coding: %[Value Menu%] %v"
                 (const :tag "Default (‘utf-8’)" nil)
                 (coding-system
                  :tag "Other coding system")))) ;; TODO: validate string argument
  :group 'dw)

(defcustom dw-passphrase-separator "\s"
  "String inserted between words in interactively generated passphrases.
It is generally not recommended to drop separators (using the
empty string), but possible.  Either way, it is best to decide
for one way to do it and stick to that."
  :type '(string :value "\s")
  :group 'dw)

(defcustom dw-capitalize-words nil
  "Non-nil means capitalize words in interactively generated passphrases."
  :type '(boolean)
  :group 'dw)

\f
;;; Internal variables

(defvar dw-current-wordlist nil
  "Current internalized wordlist for interactive use.
This variable is used by ‘dw-passgen-region’ to access and store
the most recently used wordlist.

Do not set this variable directly; it is automatically
initialized by ‘dw-passgen-region’.  If you want to initialize or
manipulate it from within an interactive command, use
‘dw-set-wordlist’.  If you want to set a default wordlist, see
‘dw-named-wordlists’.

If interactive commands require a wordlist, they should use the
value of this variable.  If they use a different wordlist
generated by ‘dw-build-alist’, they should set this variable")

\f
;;; Internal predicates

(defun dw--valid-rolls-p (string)
  "Return t if STRING is a nonempty sequence of digits from 1 to 6."
  (and (stringp string)
       (not (seq-empty-p string))
       (not (dw--invalid-chars-list string))))

\f
;;; Internal string processing

(defun dw--strip-separators (string)
  "Remove separator chars from STRING.
Which chars constitute as such is governed by
‘dw-separator-regexp’."
  (replace-regexp-in-string
   dw-separator-regexp "" string))

(defun dw--invalid-chars-list (string)
  "Return a list of invalid die rolls in STRING.
The resulting list contains all characters that are not digits
from 1 to 6."
  (seq-difference string "123456"))

(defun dw--internalize-rolls (string)
  "Convert a STRING of die rolls to a base-6 int."
  (string-to-number
   (replace-regexp-in-string "6" "0" string) 6))

;; Sadly, ‘number-to-string’ has no optional BASE argument.
(defun dw--format-die-rolls (int)
  "Convert internally used INT to corresponding string of die rolls."
  (when (>= int 0)
    (let (digits)
      (dotimes (_ dw--dice-number)
          (push (% int 6) digits)
        (setq int (/ int 6)))
      (replace-regexp-in-string "0" "6"
                                (mapconcat #'number-to-string digits "")))))

(defun dw--parse-string (user-string &optional noerror)
  "Parse a USER-STRING of die rolls.

USER-STRING is stripped of junk chars specified by
‘dw-separator-regexp’ and then converted into a list of keys for an
internalized diceware wordlist (an alist).

If the optional second argument NOERROR is non-nil, then return
nil for invalid strings instead of signaling an error."
  (let* ((string (dw--strip-separators user-string))
         (total-rolls (length string))
         error-data)
    (cond
     ((not (dw--valid-rolls-p string))
      (setq error-data
            (if (seq-empty-p string)
                `(dw-incomplete-roll 0 ,dw--dice-number)
              `(dw-bad-roll
                ,(char-to-string
                  (car (dw--invalid-chars-list string)))))))
     ((/= (% total-rolls dw--dice-number) 0)
      (setq error-data
            `(dw-incomplete-roll
              ,total-rolls
              ,(* dw--dice-number
                  (ceiling total-rolls dw--dice-number))))))
    (cond ((and error-data noerror) nil)
          (error-data
           (signal (car error-data) (cdr error-data)))
          (t (mapcar #'dw--internalize-rolls
            (seq-partition string dw--dice-number))))))

\f
;;; Internal wordlist parsing

;; This function is taken from rejeep’s f.el.
(defun dw--read (path &optional coding)
  "Read text file located at PATH, using CODING.
Return the decoded text as multibyte string.

CODING defaults to ‘utf-8’."
  (decode-coding-string
   (with-temp-buffer
     (set-buffer-multibyte nil)
     (setq buffer-file-coding-system 'binary)
     (insert-file-contents-literally path)
     (buffer-substring-no-properties (point-min) (point-max)))
   (or coding 'utf-8)))

(defun dw--read-wordlist (path &optional coding)
  "Internalize plain text wordlist at PATH using CODING.
Return the resulting intermediate list for further processing.

CODING defaults to ‘utf-8’.

Each non-empty line of the file should be of the form
  ROLL WORD

where ROLL is a sequence of five digits from 1 to 6, representing
one of the 6^5 (7776) possible die rolls.  WORD should be a
sequence of (non-whitespace) characters to be used in the
passphrase for that particular ROLL.

Each element of the returned list is a list of strings
corresponding to one (non-empty) line in the file.  Each line is
in return segmented at every space and horizontal tab.

This function is not supposed to be used by itself.  In order to
access a diceware wordlist from a file, see `dw-build-alist'."
  (let ((dice-table (dw--read path coding)))
    (mapcar (lambda (x) (split-string x "[ \t]+" t "[ \t]+"))
            (split-string dice-table "[\f\r\n\v]+" t))))

(defun dw--parse-list (read-list)
  "Parse raw construct READ-LIST, forming a proper diceware alist.
READ-LIST is sanitized before conversion, so that junk entries
are ignored.

This function is not supposed to be used by itself.  In order to
access a diceware wordlist from a file, see `dw-build-alist'."
  (mapcar (lambda (x)
            (cons (dw--internalize-rolls (elt x 0))
                  (elt x 1)))
          (seq-filter
           (lambda (x) (and (dw--valid-rolls-p (car x))
                            (= (length (car x)) dw--dice-number)))
           read-list)))

\f
;;; Checkers
(defun dw--check-passlist (passlist &optional noerror)
  "Check PASSLIST for issues and return it.

If the optional second argument NOERROR is non-nil, then return
nil instead of raising an error for an unusable PASSLIST."
  (let ((word-count (length passlist))
        (pass-length (length (apply #'concat passlist)))
        error-data)
    (cond
     ((< word-count dw-minimum-word-count)
      (setq error-data
            `(dw-too-short-passphrase ,word-count ,dw-minimum-word-count)))
     ;; Taking the estimate from the website (that trying to
     ;; brute-force the wordlist should be more efficient than the
     ;; easier to come up with method of trying every passphrase up to
     ;; the actual length L of the passphrase) yields the following
     ;; estimate (for N words in a phrase and an alphabet of size A):
     ;;
     ;; 6^(5N) ≤ 1 + A^1 + A^2 + ... + A^(L-1) = (A^L - 1)/(A - 1)
     ;;
     ;; Which (approximately) simplifies to
     ;;
     ;; L ≥ 5N/log6(A) + 1.
     ;;
     ;; Assuming A=27 (latin alphabet + SPC), you get the below.  This
     ;; is slightly more strict for 8 words than the homepage's
     ;; recommendation, but I can reason this one more confidently.
     ((< pass-length (round (1+ (* word-count 2.72))))
      (dw--warn-short-words)))
    (cond ((and error-data noerror)
           nil)
          (error-data
           (signal (car error-data) (cdr error-data)))
          (t
           passlist))))

(defun dw--check-wordlist (alist &optional noerror)
  "Check internalized wordlist ALIST for issues and return it.

If the optional second argument NOERROR is non-nil, then return
nil instead of raising an error for an unusable ALIST."
  (let ((wordlist-length (length alist))
        (required-keys (number-sequence 0 (1- dw--wordlist-length)))
        (key-list (mapcar #'car alist))
        missing-keys
        error-data)
    (cond
     ((< wordlist-length dw--wordlist-length)
      (setq error-data `(dw-bad-wordlist
                         (< ,wordlist-length ,dw--wordlist-length))))
     ((> wordlist-length dw--wordlist-length)
      (setq error-data `(dw-bad-wordlist
                         (> ,wordlist-length ,dw--wordlist-length))))
     ((not (equal key-list required-keys))
      (setq missing-keys
            (seq-filter #'identity
                        (cl-mapcar (lambda (x y) (and (/= x y) x))
                              required-keys
                              key-list)))
      (setq error-data `(dw-bad-wordlist
                         ,(dw--format-die-rolls (car missing-keys))))))
    (cond ((and error-data noerror)
           nil)
          (error-data
           (signal (car error-data) (cdr error-data)))
          (t
           alist))))

\f
;;; Basic public API

(defun dw-build-alist (path &optional default-dir coding noerror)
  "Read a plain text wordlist at PATH and convert to an internalized alist.

Each non-empty line of the file should be of the form
  ROLL WORD

where ROLL is a sequence of five digits from 1 to 6, representing
one of the 6^5 (7776) possible die rolls.  WORD should be a
sequence of (non-whitespace) characters to be used in the
passphrase for that particular ROLL.  It must be separated from
ROLL by at least one space or tab character.  Both may be
preceded/followed by an arbitrary amount of whitespace.

Empty lines (as well as lines with invalid contents) are treated
as junk and ignored.

DEFAULT-DIR, if non-nil, is the directory to start with if PATH
is relative.  It defaults to the current buffer’s value of
‘default-directory’.

CODING, if non-nil, is the coding system used for the wordlist.
It defaults to ‘utf-8’.

If the optional fourth argument NOERROR is non-nil, then return
nil instead of raising an error in case of the wordlist being
either invalid or incomplete."
  (let ((dice-file (expand-file-name path default-dir)))

    (dw--check-wordlist
     (sort (dw--parse-list
            (dw--read-wordlist dice-file coding))
           (lambda (x y) (< (car x) (car y))))
     noerror)))

(defun dw-generate-passlist (string alist &optional noerror)
  "Generate a list of words from a STRING of die rolls.
ALIST should be an internalized wordlist generated by
‘dw-build-alist’.  The result is a list of words forming the
actual passphrase.

If the optional third argument NOERROR is non-nil, then return
nil instead of raising an error in case of STRING being either
invalid or incomplete."
  (dw--check-passlist
   (mapcar (lambda (x) (cdr (assq x alist)))
           (dw--parse-string string noerror))
   noerror))

(defun dw-generate-passphrase (string alist &optional separator strfun)
  "Convert a STRING of die rolls to a complete passphrase.
STRING should be a sequence of die rolls meant for passphrase
generation.  ALIST should be an internalized wordlist as
generated by ‘dw-build-alist’.

Words in the passphrase will be separated by the optional
argument SEPARATOR, if non-nil.  SEPARATOR should be a string.
Its default value is \"\\s\".

If the optional fourth argument STRFUN is non-nil, apply STRFUN
to all words in the passphrase.  It may be any kind of string
function of one variable."
  (let ((passlist (dw-generate-passlist string alist))
        (separator (or separator "\s"))
        (wordfun (or strfun #'identity)))

    (mapconcat wordfun passlist separator)))

\f
;;; Additional public functions

(defun dw-required-dice (n)
  "Minimum number of dice to randomly choose between N possible outcomes."
  (ceiling (log n 6)))

(defun dw-generate-ranint (string maxint &optional noerror)
  "Convert STRING of die rolls to a random int from 0 to MAXINT.
STRING is expected to be a sequence of die rolls.
MAXINT is not included in the random number range.
If STRING does not produce a valid value, return nil.

STRING must contain at least log6(MAXINT) die rolls, rounded up.
It may contain more, however (up to a machine-dependent limit).

Unless MAXINT is a number of the form 2^a * 3^b , there is no way
to map all outcomes N dice can produce evenly and exhaustively at
the same time.  Hence, on occasion random number generation will
fail, producing nil as an outcome.  Since the failure chance can
reach up to 50%, it is recommended to choose an appropriate
MAXINT.

If the optional third argument NOERROR is non-nil, then return
nil instead of raising an error in case of STRING."

  (let* ((string (dw--strip-separators string))
         (dice-num (length string))
         (min-dice (dw-required-dice maxint))
         random-int
         error-data)
    (cond ((< dice-num min-dice)
           (setq error-data
                 `(dw-incomplete-int ,dice-num ,min-dice)))
          ((not (dw--valid-rolls-p string))
           (setq error-data
                 `(dw-bad-roll
                   ,(char-to-string (car (dw--invalid-chars-list string))))))
          ;; Does the entire dice string fit into a fixnum int?
          ((< dice-num dw--conversion-limit)
           (setq random-int (dw--internalize-rolls string))
           (if (< random-int (% (expt 6 dice-num) maxint))
               (setq random-int nil)
             (setq random-int (% random-int maxint))))
          ;; With bignums in Emacs 27.1, I could in principle rely on
          ;; arbitrary integer arithmetic.  However, using bignums
          ;; for this is immensely wasteful, especially since this can
          ;; easily be done with fixnums using simple modulo
          ;; arithmetic.  However, it's a feature not worth needlessly
          ;; implementing, especially since this package has a history
          ;; of accumulating needless complexity.  I'll support it
          ;; once someone opens an issue.
          (t
           (setq error-data
                 `(dw-overflow ,dice-num ,dw--conversion-limit))))
    (when (and error-data (not noerror))
      (signal (car error-data) (cdr error-data)))
    random-int))

\f
;;; Private functions for misc. interactive commands
(defvar dw--wordlist-history nil
  "Minibuffer history for previously used wordlists.")

(defun dw--prompt-wordlist ()
  "Read a named wordlist in the minibuffer, with completion.
Returns the name of the wordlist as a string."
  (let* ((names (mapcar #'car dw-named-wordlists))
         (default-list (if (memq 'default names)
                           "default"
                         (or (car dw--wordlist-history)
                             (symbol-name (car names)))))
         symbol-string)
    (setq symbol-string
          (completing-read
           ;; REVIEW: should it be "(default symbol-name)" or
           ;; "(default ‘symbol-name’)"?
           (format "Wordlist (default ‘%s’): " default-list)
           names nil t nil 'dw--wordlist-history default-list))
    (add-to-history 'dw--wordlist-history symbol-string)
    (intern symbol-string)))

(defun dw--prompt-wordlist-file ()
  "Read a wordlist filename, with completion.
Return a mockup entry of ‘dw-named-wordlists’ for internal
processing."
  (let ((file-name
         (read-file-name "Read wordlist file: " dw-directory dw-directory t)))
    (unless (file-regular-p file-name)
      (signal 'dw-bad-wordlist
              (list 'file-regular-p file-name)))
    (list 'ad-hoc file-name)))

(defun dw--generate-charlist (dice-string possible-chars)
  "Convert DICE-STRING into a random sequence of POSSIBLE-CHARS.

Return a cons of the form
\(STRING . RNG-FAILURES)

where STRING is the converted random char sequence, and
RNG-FAILURES is the number of failed character generations."
  (let* ((char-num (length possible-chars))
         (rng-failures 0)
         rand-pos
         rand-chars)
    ;; Convert die rolls to characters.
    (dolist (roll (seq-partition dice-string (dw-required-dice char-num)))
      (setq rand-pos
            (condition-case error
                (dw-generate-ranint roll char-num)
              ;; Inform the user if the number of rolls does not match the
              ;; expected format.
              (dw-incomplete-int
               (message "%s (%i/%i)."
                        "Region is missing die rolls for one additional character"
                        (elt error 1) (elt error 2))
               ;; This edge case is not the RNG's fault
               t)))
      (cond
       ((integerp rand-pos)
        (push (elt possible-chars rand-pos) rand-chars))
       ((not rand-pos)
        (setq rng-failures (1+ rng-failures)))))
    (cons (concat (nreverse rand-chars))
          rng-failures)))

(defun dw--append-salt-maybe (passphrase)
  "Conditionally append ‘dw-salt’ to PASSPHRASE.

Whether this happens automatically or requires user input is
governed by ‘dw-use-salt’, which see."
  (if dw-salt
      (cl-case dw-use-salt
        (prompt
         (if (y-or-n-p "Append salt? ")
             (concat passphrase dw-passphrase-separator dw-salt)
           passphrase))
        ((nil)
         passphrase)
        (t
         (concat passphrase dw-passphrase-separator dw-salt)))
    passphrase))

(defvar dw--random-character-history nil
  "Minibuffer history for previously used generation strings.")

(defun dw--prompt-random-chatacters ()
  "Read an entry from ‘dw-random-characters’, with completion.
Return a cons cell of the form (STRING . LAX), see ‘dw-random-characters’."
  (let* ((names (mapcar #'car dw-random-characters))
         (default-string (if (memq 'default names)
                             "default"
                           (or (car dw--random-character-history)
                               (symbol-name (car names)))))
         symbol-string)
    (setq symbol-string
          (completing-read
           (format "Random string of (default %s): "
                   default-string)
           names nil t nil 'dw--random-character-history default-string))
    (add-to-history 'dw--random-character-history symbol-string)
    (cdr
     (assq (intern symbol-string)
           dw-random-characters))))

\f
;;; Interactive commands
;;;###autoload
(defun dw-set-wordlist (&optional use-default)
  "Set a (named) wordlist for interactive passphrase generation.
This function always returns nil.

Named wordlists are specified by ‘dw-named-wordlists’.  If
‘dw-named-wordlists’ is nil, prompt for a file to use, with
‘dw-directory’ as the default directory.

If the prefix argument USE-DEFAULT is non-nil, use the default
wordlist, if available.  Otherwise, prompt the user for which
wordlist to use.

This function specifically manipulates the active wordlist stored
in ‘dw-current-wordlist’ accessible to ‘dw-passgen-region’.  If
you want to convert a wordlist file into the internal format, use
‘dw-build-alist’ instead."
  (interactive "P")
  (let (wordlist-entry file coding)
    (setq wordlist-entry
          (cond ((null dw-named-wordlists)
                 (dw--prompt-wordlist-file))
                ((= (length dw-named-wordlists) 1)
                 (car dw-named-wordlists))
                ((and use-default
                      (assq 'default dw-named-wordlists)))
                (t
                 (assq
                  (dw--prompt-wordlist)
                  dw-named-wordlists)))
          file (cadr wordlist-entry)
          coding (cddr wordlist-entry)
          dw-current-wordlist (dw-build-alist file dw-directory coding)))
  nil)

;;;###autoload
(defun dw-passgen-region (start end &optional choose-wordlist)
  "Replace sequence of die rolls in region with corresponding passphrase.

Without prefix argument, use the last wordlist used in the same
session.  If no wordlist has been set, use the default wordlist,
if available.  If no default wordlist is available, either prompt
for a named wordlist specified by ‘dw-named-wordlists’ or fall
back to prompting for a file.  With prefix argument, ignore the
presence of a default wordlist.

For additional protection, you can append salt to your passphrase
using ‘dw-salt’.  Salt serves as an additional countermeasure
against the common case of attackers trying to crack multiple
passphrases at once.

Noninteractively, the optional second argument CHOOSE-WORDLIST
serves the same purpose as the prefix argument.

If called from Lisp, the arguments START and END must specify the
region to use for passphrase generation."
  (interactive "*r\nP")
  (when (= start end)
    (user-error "Cannot generate passphrase: empty region"))
  (let* ((strfun (when dw-capitalize-words #'capitalize))
         (dice-string (buffer-substring-no-properties start end))
         (use-default (not choose-wordlist))
         passphrase)
    (unless (and dw-current-wordlist use-default)
      (dw-set-wordlist use-default))
    (setq passphrase
          (dw-generate-passphrase dice-string
                                  dw-current-wordlist
                                  dw-passphrase-separator
                                  strfun))
    (setq passphrase
          (dw--append-salt-maybe passphrase))
    (delete-region start end)
    (insert passphrase)
    passphrase))

;;;###autoload
(defun dw-ranstring-region (start end)
  "Replace sequence of die rolls in region with a random character sequence.

This command uses ‘dw-random-characters’ as a resource for sets
of characters to generate a random string from.  You can use this
function to generate a personal salt from die rolls.  See
‘dw-salt’ for more on salt.

If called from Lisp, the arguments START and END must specify the
region to use for passphrase generation."
  (interactive "*r")
  (when (= start end)
    (user-error "Cannot generate random string: empty region"))
  (when (null dw-random-characters)
    (user-error "Cannot generate random string: ‘dw-random-characters’ is nil"))
  (pcase-let* ((dice-string (dw--strip-separators
                             (buffer-substring-no-properties start end)))
               (`(,possible-chars . ,lax) (dw--prompt-random-chatacters))
               (`(,rand-string . ,rng-failures)
                (dw--generate-charlist dice-string possible-chars)))
    ;; Notify the user of RNG fails
    (cond ((and (/= rng-failures 0) lax)
           (message "%i roll(s) failed to generate a random character."
                    rng-failures))
          ((/= rng-failures 0)
           (dw--warn-bad-random-characters)))
    (delete-region start end)
    (insert rand-string)
    rand-string))

(provide 'dw)
;;; dw.el ends here

;; LocalWords:  wordlists wordlist utf alist https http

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [NonGNU ELPA] New package: dw.el
  2021-03-30 21:13 [NonGNU ELPA] New package: dw.el D
@ 2021-03-31  6:38 ` Jean Louis
  2021-03-31 11:28   ` D
  2021-04-01 21:29 ` Stefan Monnier
  1 sibling, 1 reply; 16+ messages in thread
From: Jean Louis @ 2021-03-31  6:38 UTC (permalink / raw)
  To: D; +Cc: emacs-devel

* D <d.williams@posteo.net> [2021-03-31 00:14]:
> Hello,
> 
> I would like to submit this package for inclusion in NonGNU ELPA.
> A short description of the package (attached) is provided below.
> The git repository can be found here [1].

Thank you.

I have tried using /usr/share/dict/wordsa as word list.

Then I have entered this below in the buffer and marked it, then run
M-x dw-passgen-region

31232 63522 54152 52516 52521

then I get this error:

dw--check-wordlist: Broken wordlist: (< 0 7776)


-- 
Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [NonGNU ELPA] New package: dw.el
  2021-03-31  6:38 ` Jean Louis
@ 2021-03-31 11:28   ` D
  2021-03-31 11:42     ` Jean Louis
  0 siblings, 1 reply; 16+ messages in thread
From: D @ 2021-03-31 11:28 UTC (permalink / raw)
  To: bugs; +Cc: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 884 bytes --]

Hello,

word lists need to adhere to a certain format.  Each line must begin
with the die roll the word corresponds to, such as
11111	abacus
11112	abdomen
11113	abdominal
11114	abide
....

I attached an example file (this one tends to favor long, unique words
and no special chars).

Kind regards,
D.


On 31/03/2021 08:38, Jean Louis wrote:
> * D <d.williams@posteo.net> [2021-03-31 00:14]:
>> Hello,
>>
>> I would like to submit this package for inclusion in NonGNU ELPA.
>> A short description of the package (attached) is provided below.
>> The git repository can be found here [1].
> 
> Thank you.
> 
> I have tried using /usr/share/dict/wordsa as word list.
> 
> Then I have entered this below in the buffer and marked it, then run
> M-x dw-passgen-region
> 
> 31232 63522 54152 52516 52521
> 
> then I get this error:
> 
> dw--check-wordlist: Broken wordlist: (< 0 7776)
> 
> 

[-- Attachment #2: eff_large_wordlist.txt --]
[-- Type: text/plain, Size: 108800 bytes --]

11111	abacus
11112	abdomen
11113	abdominal
11114	abide
11115	abiding
11116	ability
11121	ablaze
11122	able
11123	abnormal
11124	abrasion
11125	abrasive
11126	abreast
11131	abridge
11132	abroad
11133	abruptly
11134	absence
11135	absentee
11136	absently
11141	absinthe
11142	absolute
11143	absolve
11144	abstain
11145	abstract
11146	absurd
11151	accent
11152	acclaim
11153	acclimate
11154	accompany
11155	account
11156	accuracy
11161	accurate
11162	accustom
11163	acetone
11164	achiness
11165	aching
11166	acid
11211	acorn
11212	acquaint
11213	acquire
11214	acre
11215	acrobat
11216	acronym
11221	acting
11222	action
11223	activate
11224	activator
11225	active
11226	activism
11231	activist
11232	activity
11233	actress
11234	acts
11235	acutely
11236	acuteness
11241	aeration
11242	aerobics
11243	aerosol
11244	aerospace
11245	afar
11246	affair
11251	affected
11252	affecting
11253	affection
11254	affidavit
11255	affiliate
11256	affirm
11261	affix
11262	afflicted
11263	affluent
11264	afford
11265	affront
11266	aflame
11311	afloat
11312	aflutter
11313	afoot
11314	afraid
11315	afterglow
11316	afterlife
11321	aftermath
11322	aftermost
11323	afternoon
11324	aged
11325	ageless
11326	agency
11331	agenda
11332	agent
11333	aggregate
11334	aghast
11335	agile
11336	agility
11341	aging
11342	agnostic
11343	agonize
11344	agonizing
11345	agony
11346	agreeable
11351	agreeably
11352	agreed
11353	agreeing
11354	agreement
11355	aground
11356	ahead
11361	ahoy
11362	aide
11363	aids
11364	aim
11365	ajar
11366	alabaster
11411	alarm
11412	albatross
11413	album
11414	alfalfa
11415	algebra
11416	algorithm
11421	alias
11422	alibi
11423	alienable
11424	alienate
11425	aliens
11426	alike
11431	alive
11432	alkaline
11433	alkalize
11434	almanac
11435	almighty
11436	almost
11441	aloe
11442	aloft
11443	aloha
11444	alone
11445	alongside
11446	aloof
11451	alphabet
11452	alright
11453	although
11454	altitude
11455	alto
11456	aluminum
11461	alumni
11462	always
11463	amaretto
11464	amaze
11465	amazingly
11466	amber
11511	ambiance
11512	ambiguity
11513	ambiguous
11514	ambition
11515	ambitious
11516	ambulance
11521	ambush
11522	amendable
11523	amendment
11524	amends
11525	amenity
11526	amiable
11531	amicably
11532	amid
11533	amigo
11534	amino
11535	amiss
11536	ammonia
11541	ammonium
11542	amnesty
11543	amniotic
11544	among
11545	amount
11546	amperage
11551	ample
11552	amplifier
11553	amplify
11554	amply
11555	amuck
11556	amulet
11561	amusable
11562	amused
11563	amusement
11564	amuser
11565	amusing
11566	anaconda
11611	anaerobic
11612	anagram
11613	anatomist
11614	anatomy
11615	anchor
11616	anchovy
11621	ancient
11622	android
11623	anemia
11624	anemic
11625	aneurism
11626	anew
11631	angelfish
11632	angelic
11633	anger
11634	angled
11635	angler
11636	angles
11641	angling
11642	angrily
11643	angriness
11644	anguished
11645	angular
11646	animal
11651	animate
11652	animating
11653	animation
11654	animator
11655	anime
11656	animosity
11661	ankle
11662	annex
11663	annotate
11664	announcer
11665	annoying
11666	annually
12111	annuity
12112	anointer
12113	another
12114	answering
12115	antacid
12116	antarctic
12121	anteater
12122	antelope
12123	antennae
12124	anthem
12125	anthill
12126	anthology
12131	antibody
12132	antics
12133	antidote
12134	antihero
12135	antiquely
12136	antiques
12141	antiquity
12142	antirust
12143	antitoxic
12144	antitrust
12145	antiviral
12146	antivirus
12151	antler
12152	antonym
12153	antsy
12154	anvil
12155	anybody
12156	anyhow
12161	anymore
12162	anyone
12163	anyplace
12164	anything
12165	anytime
12166	anyway
12211	anywhere
12212	aorta
12213	apache
12214	apostle
12215	appealing
12216	appear
12221	appease
12222	appeasing
12223	appendage
12224	appendix
12225	appetite
12226	appetizer
12231	applaud
12232	applause
12233	apple
12234	appliance
12235	applicant
12236	applied
12241	apply
12242	appointee
12243	appraisal
12244	appraiser
12245	apprehend
12246	approach
12251	approval
12252	approve
12253	apricot
12254	april
12255	apron
12256	aptitude
12261	aptly
12262	aqua
12263	aqueduct
12264	arbitrary
12265	arbitrate
12266	ardently
12311	area
12312	arena
12313	arguable
12314	arguably
12315	argue
12316	arise
12321	armadillo
12322	armband
12323	armchair
12324	armed
12325	armful
12326	armhole
12331	arming
12332	armless
12333	armoire
12334	armored
12335	armory
12336	armrest
12341	army
12342	aroma
12343	arose
12344	around
12345	arousal
12346	arrange
12351	array
12352	arrest
12353	arrival
12354	arrive
12355	arrogance
12356	arrogant
12361	arson
12362	art
12363	ascend
12364	ascension
12365	ascent
12366	ascertain
12411	ashamed
12412	ashen
12413	ashes
12414	ashy
12415	aside
12416	askew
12421	asleep
12422	asparagus
12423	aspect
12424	aspirate
12425	aspire
12426	aspirin
12431	astonish
12432	astound
12433	astride
12434	astrology
12435	astronaut
12436	astronomy
12441	astute
12442	atlantic
12443	atlas
12444	atom
12445	atonable
12446	atop
12451	atrium
12452	atrocious
12453	atrophy
12454	attach
12455	attain
12456	attempt
12461	attendant
12462	attendee
12463	attention
12464	attentive
12465	attest
12466	attic
12511	attire
12512	attitude
12513	attractor
12514	attribute
12515	atypical
12516	auction
12521	audacious
12522	audacity
12523	audible
12524	audibly
12525	audience
12526	audio
12531	audition
12532	augmented
12533	august
12534	authentic
12535	author
12536	autism
12541	autistic
12542	autograph
12543	automaker
12544	automated
12545	automatic
12546	autopilot
12551	available
12552	avalanche
12553	avatar
12554	avenge
12555	avenging
12556	avenue
12561	average
12562	aversion
12563	avert
12564	aviation
12565	aviator
12566	avid
12611	avoid
12612	await
12613	awaken
12614	award
12615	aware
12616	awhile
12621	awkward
12622	awning
12623	awoke
12624	awry
12625	axis
12626	babble
12631	babbling
12632	babied
12633	baboon
12634	backache
12635	backboard
12636	backboned
12641	backdrop
12642	backed
12643	backer
12644	backfield
12645	backfire
12646	backhand
12651	backing
12652	backlands
12653	backlash
12654	backless
12655	backlight
12656	backlit
12661	backlog
12662	backpack
12663	backpedal
12664	backrest
12665	backroom
12666	backshift
13111	backside
13112	backslid
13113	backspace
13114	backspin
13115	backstab
13116	backstage
13121	backtalk
13122	backtrack
13123	backup
13124	backward
13125	backwash
13126	backwater
13131	backyard
13132	bacon
13133	bacteria
13134	bacterium
13135	badass
13136	badge
13141	badland
13142	badly
13143	badness
13144	baffle
13145	baffling
13146	bagel
13151	bagful
13152	baggage
13153	bagged
13154	baggie
13155	bagginess
13156	bagging
13161	baggy
13162	bagpipe
13163	baguette
13164	baked
13165	bakery
13166	bakeshop
13211	baking
13212	balance
13213	balancing
13214	balcony
13215	balmy
13216	balsamic
13221	bamboo
13222	banana
13223	banish
13224	banister
13225	banjo
13226	bankable
13231	bankbook
13232	banked
13233	banker
13234	banking
13235	banknote
13236	bankroll
13241	banner
13242	bannister
13243	banshee
13244	banter
13245	barbecue
13246	barbed
13251	barbell
13252	barber
13253	barcode
13254	barge
13255	bargraph
13256	barista
13261	baritone
13262	barley
13263	barmaid
13264	barman
13265	barn
13266	barometer
13311	barrack
13312	barracuda
13313	barrel
13314	barrette
13315	barricade
13316	barrier
13321	barstool
13322	bartender
13323	barterer
13324	bash
13325	basically
13326	basics
13331	basil
13332	basin
13333	basis
13334	basket
13335	batboy
13336	batch
13341	bath
13342	baton
13343	bats
13344	battalion
13345	battered
13346	battering
13351	battery
13352	batting
13353	battle
13354	bauble
13355	bazooka
13356	blabber
13361	bladder
13362	blade
13363	blah
13364	blame
13365	blaming
13366	blanching
13411	blandness
13412	blank
13413	blaspheme
13414	blasphemy
13415	blast
13416	blatancy
13421	blatantly
13422	blazer
13423	blazing
13424	bleach
13425	bleak
13426	bleep
13431	blemish
13432	blend
13433	bless
13434	blighted
13435	blimp
13436	bling
13441	blinked
13442	blinker
13443	blinking
13444	blinks
13445	blip
13446	blissful
13451	blitz
13452	blizzard
13453	bloated
13454	bloating
13455	blob
13456	blog
13461	bloomers
13462	blooming
13463	blooper
13464	blot
13465	blouse
13466	blubber
13511	bluff
13512	bluish
13513	blunderer
13514	blunt
13515	blurb
13516	blurred
13521	blurry
13522	blurt
13523	blush
13524	blustery
13525	boaster
13526	boastful
13531	boasting
13532	boat
13533	bobbed
13534	bobbing
13535	bobble
13536	bobcat
13541	bobsled
13542	bobtail
13543	bodacious
13544	body
13545	bogged
13546	boggle
13551	bogus
13552	boil
13553	bok
13554	bolster
13555	bolt
13556	bonanza
13561	bonded
13562	bonding
13563	bondless
13564	boned
13565	bonehead
13566	boneless
13611	bonelike
13612	boney
13613	bonfire
13614	bonnet
13615	bonsai
13616	bonus
13621	bony
13622	boogeyman
13623	boogieman
13624	book
13625	boondocks
13626	booted
13631	booth
13632	bootie
13633	booting
13634	bootlace
13635	bootleg
13636	boots
13641	boozy
13642	borax
13643	boring
13644	borough
13645	borrower
13646	borrowing
13651	boss
13652	botanical
13653	botanist
13654	botany
13655	botch
13656	both
13661	bottle
13662	bottling
13663	bottom
13664	bounce
13665	bouncing
13666	bouncy
14111	bounding
14112	boundless
14113	bountiful
14114	bovine
14115	boxcar
14116	boxer
14121	boxing
14122	boxlike
14123	boxy
14124	breach
14125	breath
14126	breeches
14131	breeching
14132	breeder
14133	breeding
14134	breeze
14135	breezy
14136	brethren
14141	brewery
14142	brewing
14143	briar
14144	bribe
14145	brick
14146	bride
14151	bridged
14152	brigade
14153	bright
14154	brilliant
14155	brim
14156	bring
14161	brink
14162	brisket
14163	briskly
14164	briskness
14165	bristle
14166	brittle
14211	broadband
14212	broadcast
14213	broaden
14214	broadly
14215	broadness
14216	broadside
14221	broadways
14222	broiler
14223	broiling
14224	broken
14225	broker
14226	bronchial
14231	bronco
14232	bronze
14233	bronzing
14234	brook
14235	broom
14236	brought
14241	browbeat
14242	brownnose
14243	browse
14244	browsing
14245	bruising
14246	brunch
14251	brunette
14252	brunt
14253	brush
14254	brussels
14255	brute
14256	brutishly
14261	bubble
14262	bubbling
14263	bubbly
14264	buccaneer
14265	bucked
14266	bucket
14311	buckle
14312	buckshot
14313	buckskin
14314	bucktooth
14315	buckwheat
14316	buddhism
14321	buddhist
14322	budding
14323	buddy
14324	budget
14325	buffalo
14326	buffed
14331	buffer
14332	buffing
14333	buffoon
14334	buggy
14335	bulb
14336	bulge
14341	bulginess
14342	bulgur
14343	bulk
14344	bulldog
14345	bulldozer
14346	bullfight
14351	bullfrog
14352	bullhorn
14353	bullion
14354	bullish
14355	bullpen
14356	bullring
14361	bullseye
14362	bullwhip
14363	bully
14364	bunch
14365	bundle
14366	bungee
14411	bunion
14412	bunkbed
14413	bunkhouse
14414	bunkmate
14415	bunny
14416	bunt
14421	busboy
14422	bush
14423	busily
14424	busload
14425	bust
14426	busybody
14431	buzz
14432	cabana
14433	cabbage
14434	cabbie
14435	cabdriver
14436	cable
14441	caboose
14442	cache
14443	cackle
14444	cacti
14445	cactus
14446	caddie
14451	caddy
14452	cadet
14453	cadillac
14454	cadmium
14455	cage
14456	cahoots
14461	cake
14462	calamari
14463	calamity
14464	calcium
14465	calculate
14466	calculus
14511	caliber
14512	calibrate
14513	calm
14514	caloric
14515	calorie
14516	calzone
14521	camcorder
14522	cameo
14523	camera
14524	camisole
14525	camper
14526	campfire
14531	camping
14532	campsite
14533	campus
14534	canal
14535	canary
14536	cancel
14541	candied
14542	candle
14543	candy
14544	cane
14545	canine
14546	canister
14551	cannabis
14552	canned
14553	canning
14554	cannon
14555	cannot
14556	canola
14561	canon
14562	canopener
14563	canopy
14564	canteen
14565	canyon
14566	capable
14611	capably
14612	capacity
14613	cape
14614	capillary
14615	capital
14616	capitol
14621	capped
14622	capricorn
14623	capsize
14624	capsule
14625	caption
14626	captivate
14631	captive
14632	captivity
14633	capture
14634	caramel
14635	carat
14636	caravan
14641	carbon
14642	cardboard
14643	carded
14644	cardiac
14645	cardigan
14646	cardinal
14651	cardstock
14652	carefully
14653	caregiver
14654	careless
14655	caress
14656	caretaker
14661	cargo
14662	caring
14663	carless
14664	carload
14665	carmaker
14666	carnage
15111	carnation
15112	carnival
15113	carnivore
15114	carol
15115	carpenter
15116	carpentry
15121	carpool
15122	carport
15123	carried
15124	carrot
15125	carrousel
15126	carry
15131	cartel
15132	cartload
15133	carton
15134	cartoon
15135	cartridge
15136	cartwheel
15141	carve
15142	carving
15143	carwash
15144	cascade
15145	case
15146	cash
15151	casing
15152	casino
15153	casket
15154	cassette
15155	casually
15156	casualty
15161	catacomb
15162	catalog
15163	catalyst
15164	catalyze
15165	catapult
15166	cataract
15211	catatonic
15212	catcall
15213	catchable
15214	catcher
15215	catching
15216	catchy
15221	caterer
15222	catering
15223	catfight
15224	catfish
15225	cathedral
15226	cathouse
15231	catlike
15232	catnap
15233	catnip
15234	catsup
15235	cattail
15236	cattishly
15241	cattle
15242	catty
15243	catwalk
15244	caucasian
15245	caucus
15246	causal
15251	causation
15252	cause
15253	causing
15254	cauterize
15255	caution
15256	cautious
15261	cavalier
15262	cavalry
15263	caviar
15264	cavity
15265	cedar
15266	celery
15311	celestial
15312	celibacy
15313	celibate
15314	celtic
15315	cement
15316	census
15321	ceramics
15322	ceremony
15323	certainly
15324	certainty
15325	certified
15326	certify
15331	cesarean
15332	cesspool
15333	chafe
15334	chaffing
15335	chain
15336	chair
15341	chalice
15342	challenge
15343	chamber
15344	chamomile
15345	champion
15346	chance
15351	change
15352	channel
15353	chant
15354	chaos
15355	chaperone
15356	chaplain
15361	chapped
15362	chaps
15363	chapter
15364	character
15365	charbroil
15366	charcoal
15411	charger
15412	charging
15413	chariot
15414	charity
15415	charm
15416	charred
15421	charter
15422	charting
15423	chase
15424	chasing
15425	chaste
15426	chastise
15431	chastity
15432	chatroom
15433	chatter
15434	chatting
15435	chatty
15436	cheating
15441	cheddar
15442	cheek
15443	cheer
15444	cheese
15445	cheesy
15446	chef
15451	chemicals
15452	chemist
15453	chemo
15454	cherisher
15455	cherub
15456	chess
15461	chest
15462	chevron
15463	chevy
15464	chewable
15465	chewer
15466	chewing
15511	chewy
15512	chief
15513	chihuahua
15514	childcare
15515	childhood
15516	childish
15521	childless
15522	childlike
15523	chili
15524	chill
15525	chimp
15526	chip
15531	chirping
15532	chirpy
15533	chitchat
15534	chivalry
15535	chive
15536	chloride
15541	chlorine
15542	choice
15543	chokehold
15544	choking
15545	chomp
15546	chooser
15551	choosing
15552	choosy
15553	chop
15554	chosen
15555	chowder
15556	chowtime
15561	chrome
15562	chubby
15563	chuck
15564	chug
15565	chummy
15566	chump
15611	chunk
15612	churn
15613	chute
15614	cider
15615	cilantro
15616	cinch
15621	cinema
15622	cinnamon
15623	circle
15624	circling
15625	circular
15626	circulate
15631	circus
15632	citable
15633	citadel
15634	citation
15635	citizen
15636	citric
15641	citrus
15642	city
15643	civic
15644	civil
15645	clad
15646	claim
15651	clambake
15652	clammy
15653	clamor
15654	clamp
15655	clamshell
15656	clang
15661	clanking
15662	clapped
15663	clapper
15664	clapping
15665	clarify
15666	clarinet
16111	clarity
16112	clash
16113	clasp
16114	class
16115	clatter
16116	clause
16121	clavicle
16122	claw
16123	clay
16124	clean
16125	clear
16126	cleat
16131	cleaver
16132	cleft
16133	clench
16134	clergyman
16135	clerical
16136	clerk
16141	clever
16142	clicker
16143	client
16144	climate
16145	climatic
16146	cling
16151	clinic
16152	clinking
16153	clip
16154	clique
16155	cloak
16156	clobber
16161	clock
16162	clone
16163	cloning
16164	closable
16165	closure
16166	clothes
16211	clothing
16212	cloud
16213	clover
16214	clubbed
16215	clubbing
16216	clubhouse
16221	clump
16222	clumsily
16223	clumsy
16224	clunky
16225	clustered
16226	clutch
16231	clutter
16232	coach
16233	coagulant
16234	coastal
16235	coaster
16236	coasting
16241	coastland
16242	coastline
16243	coat
16244	coauthor
16245	cobalt
16246	cobbler
16251	cobweb
16252	cocoa
16253	coconut
16254	cod
16255	coeditor
16256	coerce
16261	coexist
16262	coffee
16263	cofounder
16264	cognition
16265	cognitive
16266	cogwheel
16311	coherence
16312	coherent
16313	cohesive
16314	coil
16315	coke
16316	cola
16321	cold
16322	coleslaw
16323	coliseum
16324	collage
16325	collapse
16326	collar
16331	collected
16332	collector
16333	collide
16334	collie
16335	collision
16336	colonial
16341	colonist
16342	colonize
16343	colony
16344	colossal
16345	colt
16346	coma
16351	come
16352	comfort
16353	comfy
16354	comic
16355	coming
16356	comma
16361	commence
16362	commend
16363	comment
16364	commerce
16365	commode
16366	commodity
16411	commodore
16412	common
16413	commotion
16414	commute
16415	commuting
16416	compacted
16421	compacter
16422	compactly
16423	compactor
16424	companion
16425	company
16426	compare
16431	compel
16432	compile
16433	comply
16434	component
16435	composed
16436	composer
16441	composite
16442	compost
16443	composure
16444	compound
16445	compress
16446	comprised
16451	computer
16452	computing
16453	comrade
16454	concave
16455	conceal
16456	conceded
16461	concept
16462	concerned
16463	concert
16464	conch
16465	concierge
16466	concise
16511	conclude
16512	concrete
16513	concur
16514	condense
16515	condiment
16516	condition
16521	condone
16522	conducive
16523	conductor
16524	conduit
16525	cone
16526	confess
16531	confetti
16532	confidant
16533	confident
16534	confider
16535	confiding
16536	configure
16541	confined
16542	confining
16543	confirm
16544	conflict
16545	conform
16546	confound
16551	confront
16552	confused
16553	confusing
16554	confusion
16555	congenial
16556	congested
16561	congrats
16562	congress
16563	conical
16564	conjoined
16565	conjure
16566	conjuror
16611	connected
16612	connector
16613	consensus
16614	consent
16615	console
16616	consoling
16621	consonant
16622	constable
16623	constant
16624	constrain
16625	constrict
16626	construct
16631	consult
16632	consumer
16633	consuming
16634	contact
16635	container
16636	contempt
16641	contend
16642	contented
16643	contently
16644	contents
16645	contest
16646	context
16651	contort
16652	contour
16653	contrite
16654	control
16655	contusion
16656	convene
16661	convent
16662	copartner
16663	cope
16664	copied
16665	copier
16666	copilot
21111	coping
21112	copious
21113	copper
21114	copy
21115	coral
21116	cork
21121	cornball
21122	cornbread
21123	corncob
21124	cornea
21125	corned
21126	corner
21131	cornfield
21132	cornflake
21133	cornhusk
21134	cornmeal
21135	cornstalk
21136	corny
21141	coronary
21142	coroner
21143	corporal
21144	corporate
21145	corral
21146	correct
21151	corridor
21152	corrode
21153	corroding
21154	corrosive
21155	corsage
21156	corset
21161	cortex
21162	cosigner
21163	cosmetics
21164	cosmic
21165	cosmos
21166	cosponsor
21211	cost
21212	cottage
21213	cotton
21214	couch
21215	cough
21216	could
21221	countable
21222	countdown
21223	counting
21224	countless
21225	country
21226	county
21231	courier
21232	covenant
21233	cover
21234	coveted
21235	coveting
21236	coyness
21241	cozily
21242	coziness
21243	cozy
21244	crabbing
21245	crabgrass
21246	crablike
21251	crabmeat
21252	cradle
21253	cradling
21254	crafter
21255	craftily
21256	craftsman
21261	craftwork
21262	crafty
21263	cramp
21264	cranberry
21265	crane
21266	cranial
21311	cranium
21312	crank
21313	crate
21314	crave
21315	craving
21316	crawfish
21321	crawlers
21322	crawling
21323	crayfish
21324	crayon
21325	crazed
21326	crazily
21331	craziness
21332	crazy
21333	creamed
21334	creamer
21335	creamlike
21336	crease
21341	creasing
21342	creatable
21343	create
21344	creation
21345	creative
21346	creature
21351	credible
21352	credibly
21353	credit
21354	creed
21355	creme
21356	creole
21361	crepe
21362	crept
21363	crescent
21364	crested
21365	cresting
21366	crestless
21411	crevice
21412	crewless
21413	crewman
21414	crewmate
21415	crib
21416	cricket
21421	cried
21422	crier
21423	crimp
21424	crimson
21425	cringe
21426	cringing
21431	crinkle
21432	crinkly
21433	crisped
21434	crisping
21435	crisply
21436	crispness
21441	crispy
21442	criteria
21443	critter
21444	croak
21445	crock
21446	crook
21451	croon
21452	crop
21453	cross
21454	crouch
21455	crouton
21456	crowbar
21461	crowd
21462	crown
21463	crucial
21464	crudely
21465	crudeness
21466	cruelly
21511	cruelness
21512	cruelty
21513	crumb
21514	crummiest
21515	crummy
21516	crumpet
21521	crumpled
21522	cruncher
21523	crunching
21524	crunchy
21525	crusader
21526	crushable
21531	crushed
21532	crusher
21533	crushing
21534	crust
21535	crux
21536	crying
21541	cryptic
21542	crystal
21543	cubbyhole
21544	cube
21545	cubical
21546	cubicle
21551	cucumber
21552	cuddle
21553	cuddly
21554	cufflink
21555	culinary
21556	culminate
21561	culpable
21562	culprit
21563	cultivate
21564	cultural
21565	culture
21566	cupbearer
21611	cupcake
21612	cupid
21613	cupped
21614	cupping
21615	curable
21616	curator
21621	curdle
21622	cure
21623	curfew
21624	curing
21625	curled
21626	curler
21631	curliness
21632	curling
21633	curly
21634	curry
21635	curse
21636	cursive
21641	cursor
21642	curtain
21643	curtly
21644	curtsy
21645	curvature
21646	curve
21651	curvy
21652	cushy
21653	cusp
21654	cussed
21655	custard
21656	custodian
21661	custody
21662	customary
21663	customer
21664	customize
21665	customs
21666	cut
22111	cycle
22112	cyclic
22113	cycling
22114	cyclist
22115	cylinder
22116	cymbal
22121	cytoplasm
22122	cytoplast
22123	dab
22124	dad
22125	daffodil
22126	dagger
22131	daily
22132	daintily
22133	dainty
22134	dairy
22135	daisy
22136	dallying
22141	dance
22142	dancing
22143	dandelion
22144	dander
22145	dandruff
22146	dandy
22151	danger
22152	dangle
22153	dangling
22154	daredevil
22155	dares
22156	daringly
22161	darkened
22162	darkening
22163	darkish
22164	darkness
22165	darkroom
22166	darling
22211	darn
22212	dart
22213	darwinism
22214	dash
22215	dastardly
22216	data
22221	datebook
22222	dating
22223	daughter
22224	daunting
22225	dawdler
22226	dawn
22231	daybed
22232	daybreak
22233	daycare
22234	daydream
22235	daylight
22236	daylong
22241	dayroom
22242	daytime
22243	dazzler
22244	dazzling
22245	deacon
22246	deafening
22251	deafness
22252	dealer
22253	dealing
22254	dealmaker
22255	dealt
22256	dean
22261	debatable
22262	debate
22263	debating
22264	debit
22265	debrief
22266	debtless
22311	debtor
22312	debug
22313	debunk
22314	decade
22315	decaf
22316	decal
22321	decathlon
22322	decay
22323	deceased
22324	deceit
22325	deceiver
22326	deceiving
22331	december
22332	decency
22333	decent
22334	deception
22335	deceptive
22336	decibel
22341	decidable
22342	decimal
22343	decimeter
22344	decipher
22345	deck
22346	declared
22351	decline
22352	decode
22353	decompose
22354	decorated
22355	decorator
22356	decoy
22361	decrease
22362	decree
22363	dedicate
22364	dedicator
22365	deduce
22366	deduct
22411	deed
22412	deem
22413	deepen
22414	deeply
22415	deepness
22416	deface
22421	defacing
22422	defame
22423	default
22424	defeat
22425	defection
22426	defective
22431	defendant
22432	defender
22433	defense
22434	defensive
22435	deferral
22436	deferred
22441	defiance
22442	defiant
22443	defile
22444	defiling
22445	define
22446	definite
22451	deflate
22452	deflation
22453	deflator
22454	deflected
22455	deflector
22456	defog
22461	deforest
22462	defraud
22463	defrost
22464	deftly
22465	defuse
22466	defy
22511	degraded
22512	degrading
22513	degrease
22514	degree
22515	dehydrate
22516	deity
22521	dejected
22522	delay
22523	delegate
22524	delegator
22525	delete
22526	deletion
22531	delicacy
22532	delicate
22533	delicious
22534	delighted
22535	delirious
22536	delirium
22541	deliverer
22542	delivery
22543	delouse
22544	delta
22545	deluge
22546	delusion
22551	deluxe
22552	demanding
22553	demeaning
22554	demeanor
22555	demise
22556	democracy
22561	democrat
22562	demote
22563	demotion
22564	demystify
22565	denatured
22566	deniable
22611	denial
22612	denim
22613	denote
22614	dense
22615	density
22616	dental
22621	dentist
22622	denture
22623	deny
22624	deodorant
22625	deodorize
22626	departed
22631	departure
22632	depict
22633	deplete
22634	depletion
22635	deplored
22636	deploy
22641	deport
22642	depose
22643	depraved
22644	depravity
22645	deprecate
22646	depress
22651	deprive
22652	depth
22653	deputize
22654	deputy
22655	derail
22656	deranged
22661	derby
22662	derived
22663	desecrate
22664	deserve
22665	deserving
22666	designate
23111	designed
23112	designer
23113	designing
23114	deskbound
23115	desktop
23116	deskwork
23121	desolate
23122	despair
23123	despise
23124	despite
23125	destiny
23126	destitute
23131	destruct
23132	detached
23133	detail
23134	detection
23135	detective
23136	detector
23141	detention
23142	detergent
23143	detest
23144	detonate
23145	detonator
23146	detoxify
23151	detract
23152	deuce
23153	devalue
23154	deviancy
23155	deviant
23156	deviate
23161	deviation
23162	deviator
23163	device
23164	devious
23165	devotedly
23166	devotee
23211	devotion
23212	devourer
23213	devouring
23214	devoutly
23215	dexterity
23216	dexterous
23221	diabetes
23222	diabetic
23223	diabolic
23224	diagnoses
23225	diagnosis
23226	diagram
23231	dial
23232	diameter
23233	diaper
23234	diaphragm
23235	diary
23236	dice
23241	dicing
23242	dictate
23243	dictation
23244	dictator
23245	difficult
23246	diffused
23251	diffuser
23252	diffusion
23253	diffusive
23254	dig
23255	dilation
23256	diligence
23261	diligent
23262	dill
23263	dilute
23264	dime
23265	diminish
23266	dimly
23311	dimmed
23312	dimmer
23313	dimness
23314	dimple
23315	diner
23316	dingbat
23321	dinghy
23322	dinginess
23323	dingo
23324	dingy
23325	dining
23326	dinner
23331	diocese
23332	dioxide
23333	diploma
23334	dipped
23335	dipper
23336	dipping
23341	directed
23342	direction
23343	directive
23344	directly
23345	directory
23346	direness
23351	dirtiness
23352	disabled
23353	disagree
23354	disallow
23355	disarm
23356	disarray
23361	disaster
23362	disband
23363	disbelief
23364	disburse
23365	discard
23366	discern
23411	discharge
23412	disclose
23413	discolor
23414	discount
23415	discourse
23416	discover
23421	discuss
23422	disdain
23423	disengage
23424	disfigure
23425	disgrace
23426	dish
23431	disinfect
23432	disjoin
23433	disk
23434	dislike
23435	disliking
23436	dislocate
23441	dislodge
23442	disloyal
23443	dismantle
23444	dismay
23445	dismiss
23446	dismount
23451	disobey
23452	disorder
23453	disown
23454	disparate
23455	disparity
23456	dispatch
23461	dispense
23462	dispersal
23463	dispersed
23464	disperser
23465	displace
23466	display
23511	displease
23512	disposal
23513	dispose
23514	disprove
23515	dispute
23516	disregard
23521	disrupt
23522	dissuade
23523	distance
23524	distant
23525	distaste
23526	distill
23531	distinct
23532	distort
23533	distract
23534	distress
23535	district
23536	distrust
23541	ditch
23542	ditto
23543	ditzy
23544	dividable
23545	divided
23546	dividend
23551	dividers
23552	dividing
23553	divinely
23554	diving
23555	divinity
23556	divisible
23561	divisibly
23562	division
23563	divisive
23564	divorcee
23565	dizziness
23566	dizzy
23611	doable
23612	docile
23613	dock
23614	doctrine
23615	document
23616	dodge
23621	dodgy
23622	doily
23623	doing
23624	dole
23625	dollar
23626	dollhouse
23631	dollop
23632	dolly
23633	dolphin
23634	domain
23635	domelike
23636	domestic
23641	dominion
23642	dominoes
23643	donated
23644	donation
23645	donator
23646	donor
23651	donut
23652	doodle
23653	doorbell
23654	doorframe
23655	doorknob
23656	doorman
23661	doormat
23662	doornail
23663	doorpost
23664	doorstep
23665	doorstop
23666	doorway
24111	doozy
24112	dork
24113	dormitory
24114	dorsal
24115	dosage
24116	dose
24121	dotted
24122	doubling
24123	douche
24124	dove
24125	down
24126	dowry
24131	doze
24132	drab
24133	dragging
24134	dragonfly
24135	dragonish
24136	dragster
24141	drainable
24142	drainage
24143	drained
24144	drainer
24145	drainpipe
24146	dramatic
24151	dramatize
24152	drank
24153	drapery
24154	drastic
24155	draw
24156	dreaded
24161	dreadful
24162	dreadlock
24163	dreamboat
24164	dreamily
24165	dreamland
24166	dreamless
24211	dreamlike
24212	dreamt
24213	dreamy
24214	drearily
24215	dreary
24216	drench
24221	dress
24222	drew
24223	dribble
24224	dried
24225	drier
24226	drift
24231	driller
24232	drilling
24233	drinkable
24234	drinking
24235	dripping
24236	drippy
24241	drivable
24242	driven
24243	driver
24244	driveway
24245	driving
24246	drizzle
24251	drizzly
24252	drone
24253	drool
24254	droop
24255	drop-down
24256	dropbox
24261	dropkick
24262	droplet
24263	dropout
24264	dropper
24265	drove
24266	drown
24311	drowsily
24312	drudge
24313	drum
24314	dry
24315	dubbed
24316	dubiously
24321	duchess
24322	duckbill
24323	ducking
24324	duckling
24325	ducktail
24326	ducky
24331	duct
24332	dude
24333	duffel
24334	dugout
24335	duh
24336	duke
24341	duller
24342	dullness
24343	duly
24344	dumping
24345	dumpling
24346	dumpster
24351	duo
24352	dupe
24353	duplex
24354	duplicate
24355	duplicity
24356	durable
24361	durably
24362	duration
24363	duress
24364	during
24365	dusk
24366	dust
24411	dutiful
24412	duty
24413	duvet
24414	dwarf
24415	dweeb
24416	dwelled
24421	dweller
24422	dwelling
24423	dwindle
24424	dwindling
24425	dynamic
24426	dynamite
24431	dynasty
24432	dyslexia
24433	dyslexic
24434	each
24435	eagle
24436	earache
24441	eardrum
24442	earflap
24443	earful
24444	earlobe
24445	early
24446	earmark
24451	earmuff
24452	earphone
24453	earpiece
24454	earplugs
24455	earring
24456	earshot
24461	earthen
24462	earthlike
24463	earthling
24464	earthly
24465	earthworm
24466	earthy
24511	earwig
24512	easeful
24513	easel
24514	easiest
24515	easily
24516	easiness
24521	easing
24522	eastbound
24523	eastcoast
24524	easter
24525	eastward
24526	eatable
24531	eaten
24532	eatery
24533	eating
24534	eats
24535	ebay
24536	ebony
24541	ebook
24542	ecard
24543	eccentric
24544	echo
24545	eclair
24546	eclipse
24551	ecologist
24552	ecology
24553	economic
24554	economist
24555	economy
24556	ecosphere
24561	ecosystem
24562	edge
24563	edginess
24564	edging
24565	edgy
24566	edition
24611	editor
24612	educated
24613	education
24614	educator
24615	eel
24616	effective
24621	effects
24622	efficient
24623	effort
24624	eggbeater
24625	egging
24626	eggnog
24631	eggplant
24632	eggshell
24633	egomaniac
24634	egotism
24635	egotistic
24636	either
24641	eject
24642	elaborate
24643	elastic
24644	elated
24645	elbow
24646	eldercare
24651	elderly
24652	eldest
24653	electable
24654	election
24655	elective
24656	elephant
24661	elevate
24662	elevating
24663	elevation
24664	elevator
24665	eleven
24666	elf
25111	eligible
25112	eligibly
25113	eliminate
25114	elite
25115	elitism
25116	elixir
25121	elk
25122	ellipse
25123	elliptic
25124	elm
25125	elongated
25126	elope
25131	eloquence
25132	eloquent
25133	elsewhere
25134	elude
25135	elusive
25136	elves
25141	email
25142	embargo
25143	embark
25144	embassy
25145	embattled
25146	embellish
25151	ember
25152	embezzle
25153	emblaze
25154	emblem
25155	embody
25156	embolism
25161	emboss
25162	embroider
25163	emcee
25164	emerald
25165	emergency
25166	emission
25211	emit
25212	emote
25213	emoticon
25214	emotion
25215	empathic
25216	empathy
25221	emperor
25222	emphases
25223	emphasis
25224	emphasize
25225	emphatic
25226	empirical
25231	employed
25232	employee
25233	employer
25234	emporium
25235	empower
25236	emptier
25241	emptiness
25242	empty
25243	emu
25244	enable
25245	enactment
25246	enamel
25251	enchanted
25252	enchilada
25253	encircle
25254	enclose
25255	enclosure
25256	encode
25261	encore
25262	encounter
25263	encourage
25264	encroach
25265	encrust
25266	encrypt
25311	endanger
25312	endeared
25313	endearing
25314	ended
25315	ending
25316	endless
25321	endnote
25322	endocrine
25323	endorphin
25324	endorse
25325	endowment
25326	endpoint
25331	endurable
25332	endurance
25333	enduring
25334	energetic
25335	energize
25336	energy
25341	enforced
25342	enforcer
25343	engaged
25344	engaging
25345	engine
25346	engorge
25351	engraved
25352	engraver
25353	engraving
25354	engross
25355	engulf
25356	enhance
25361	enigmatic
25362	enjoyable
25363	enjoyably
25364	enjoyer
25365	enjoying
25366	enjoyment
25411	enlarged
25412	enlarging
25413	enlighten
25414	enlisted
25415	enquirer
25416	enrage
25421	enrich
25422	enroll
25423	enslave
25424	ensnare
25425	ensure
25426	entail
25431	entangled
25432	entering
25433	entertain
25434	enticing
25435	entire
25436	entitle
25441	entity
25442	entomb
25443	entourage
25444	entrap
25445	entree
25446	entrench
25451	entrust
25452	entryway
25453	entwine
25454	enunciate
25455	envelope
25456	enviable
25461	enviably
25462	envious
25463	envision
25464	envoy
25465	envy
25466	enzyme
25511	epic
25512	epidemic
25513	epidermal
25514	epidermis
25515	epidural
25516	epilepsy
25521	epileptic
25522	epilogue
25523	epiphany
25524	episode
25525	equal
25526	equate
25531	equation
25532	equator
25533	equinox
25534	equipment
25535	equity
25536	equivocal
25541	eradicate
25542	erasable
25543	erased
25544	eraser
25545	erasure
25546	ergonomic
25551	errand
25552	errant
25553	erratic
25554	error
25555	erupt
25556	escalate
25561	escalator
25562	escapable
25563	escapade
25564	escapist
25565	escargot
25566	eskimo
25611	esophagus
25612	espionage
25613	espresso
25614	esquire
25615	essay
25616	essence
25621	essential
25622	establish
25623	estate
25624	esteemed
25625	estimate
25626	estimator
25631	estranged
25632	estrogen
25633	etching
25634	eternal
25635	eternity
25636	ethanol
25641	ether
25642	ethically
25643	ethics
25644	euphemism
25645	evacuate
25646	evacuee
25651	evade
25652	evaluate
25653	evaluator
25654	evaporate
25655	evasion
25656	evasive
25661	even
25662	everglade
25663	evergreen
25664	everybody
25665	everyday
25666	everyone
26111	evict
26112	evidence
26113	evident
26114	evil
26115	evoke
26116	evolution
26121	evolve
26122	exact
26123	exalted
26124	example
26125	excavate
26126	excavator
26131	exceeding
26132	exception
26133	excess
26134	exchange
26135	excitable
26136	exciting
26141	exclaim
26142	exclude
26143	excluding
26144	exclusion
26145	exclusive
26146	excretion
26151	excretory
26152	excursion
26153	excusable
26154	excusably
26155	excuse
26156	exemplary
26161	exemplify
26162	exemption
26163	exerciser
26164	exert
26165	exes
26166	exfoliate
26211	exhale
26212	exhaust
26213	exhume
26214	exile
26215	existing
26216	exit
26221	exodus
26222	exonerate
26223	exorcism
26224	exorcist
26225	expand
26226	expanse
26231	expansion
26232	expansive
26233	expectant
26234	expedited
26235	expediter
26236	expel
26241	expend
26242	expenses
26243	expensive
26244	expert
26245	expire
26246	expiring
26251	explain
26252	expletive
26253	explicit
26254	explode
26255	exploit
26256	explore
26261	exploring
26262	exponent
26263	exporter
26264	exposable
26265	expose
26266	exposure
26311	express
26312	expulsion
26313	exquisite
26314	extended
26315	extending
26316	extent
26321	extenuate
26322	exterior
26323	external
26324	extinct
26325	extortion
26326	extradite
26331	extras
26332	extrovert
26333	extrude
26334	extruding
26335	exuberant
26336	fable
26341	fabric
26342	fabulous
26343	facebook
26344	facecloth
26345	facedown
26346	faceless
26351	facelift
26352	faceplate
26353	faceted
26354	facial
26355	facility
26356	facing
26361	facsimile
26362	faction
26363	factoid
26364	factor
26365	factsheet
26366	factual
26411	faculty
26412	fade
26413	fading
26414	failing
26415	falcon
26416	fall
26421	false
26422	falsify
26423	fame
26424	familiar
26425	family
26426	famine
26431	famished
26432	fanatic
26433	fancied
26434	fanciness
26435	fancy
26436	fanfare
26441	fang
26442	fanning
26443	fantasize
26444	fantastic
26445	fantasy
26446	fascism
26451	fastball
26452	faster
26453	fasting
26454	fastness
26455	faucet
26456	favorable
26461	favorably
26462	favored
26463	favoring
26464	favorite
26465	fax
26466	feast
26511	federal
26512	fedora
26513	feeble
26514	feed
26515	feel
26516	feisty
26521	feline
26522	felt-tip
26523	feminine
26524	feminism
26525	feminist
26526	feminize
26531	femur
26532	fence
26533	fencing
26534	fender
26535	ferment
26536	fernlike
26541	ferocious
26542	ferocity
26543	ferret
26544	ferris
26545	ferry
26546	fervor
26551	fester
26552	festival
26553	festive
26554	festivity
26555	fetal
26556	fetch
26561	fever
26562	fiber
26563	fiction
26564	fiddle
26565	fiddling
26566	fidelity
26611	fidgeting
26612	fidgety
26613	fifteen
26614	fifth
26615	fiftieth
26616	fifty
26621	figment
26622	figure
26623	figurine
26624	filing
26625	filled
26626	filler
26631	filling
26632	film
26633	filter
26634	filth
26635	filtrate
26636	finale
26641	finalist
26642	finalize
26643	finally
26644	finance
26645	financial
26646	finch
26651	fineness
26652	finer
26653	finicky
26654	finished
26655	finisher
26656	finishing
26661	finite
26662	finless
26663	finlike
26664	fiscally
26665	fit
26666	five
31111	flaccid
31112	flagman
31113	flagpole
31114	flagship
31115	flagstick
31116	flagstone
31121	flail
31122	flakily
31123	flaky
31124	flame
31125	flammable
31126	flanked
31131	flanking
31132	flannels
31133	flap
31134	flaring
31135	flashback
31136	flashbulb
31141	flashcard
31142	flashily
31143	flashing
31144	flashy
31145	flask
31146	flatbed
31151	flatfoot
31152	flatly
31153	flatness
31154	flatten
31155	flattered
31156	flatterer
31161	flattery
31162	flattop
31163	flatware
31164	flatworm
31165	flavored
31166	flavorful
31211	flavoring
31212	flaxseed
31213	fled
31214	fleshed
31215	fleshy
31216	flick
31221	flier
31222	flight
31223	flinch
31224	fling
31225	flint
31226	flip
31231	flirt
31232	float
31233	flock
31234	flogging
31235	flop
31236	floral
31241	florist
31242	floss
31243	flounder
31244	flyable
31245	flyaway
31246	flyer
31251	flying
31252	flyover
31253	flypaper
31254	foam
31255	foe
31256	fog
31261	foil
31262	folic
31263	folk
31264	follicle
31265	follow
31266	fondling
31311	fondly
31312	fondness
31313	fondue
31314	font
31315	food
31316	fool
31321	footage
31322	football
31323	footbath
31324	footboard
31325	footer
31326	footgear
31331	foothill
31332	foothold
31333	footing
31334	footless
31335	footman
31336	footnote
31341	footpad
31342	footpath
31343	footprint
31344	footrest
31345	footsie
31346	footsore
31351	footwear
31352	footwork
31353	fossil
31354	foster
31355	founder
31356	founding
31361	fountain
31362	fox
31363	foyer
31364	fraction
31365	fracture
31366	fragile
31411	fragility
31412	fragment
31413	fragrance
31414	fragrant
31415	frail
31416	frame
31421	framing
31422	frantic
31423	fraternal
31424	frayed
31425	fraying
31426	frays
31431	freckled
31432	freckles
31433	freebase
31434	freebee
31435	freebie
31436	freedom
31441	freefall
31442	freehand
31443	freeing
31444	freeload
31445	freely
31446	freemason
31451	freeness
31452	freestyle
31453	freeware
31454	freeway
31455	freewill
31456	freezable
31461	freezing
31462	freight
31463	french
31464	frenzied
31465	frenzy
31466	frequency
31511	frequent
31512	fresh
31513	fretful
31514	fretted
31515	friction
31516	friday
31521	fridge
31522	fried
31523	friend
31524	frighten
31525	frightful
31526	frigidity
31531	frigidly
31532	frill
31533	fringe
31534	frisbee
31535	frisk
31536	fritter
31541	frivolous
31542	frolic
31543	from
31544	front
31545	frostbite
31546	frosted
31551	frostily
31552	frosting
31553	frostlike
31554	frosty
31555	froth
31556	frown
31561	frozen
31562	fructose
31563	frugality
31564	frugally
31565	fruit
31566	frustrate
31611	frying
31612	gab
31613	gaffe
31614	gag
31615	gainfully
31616	gaining
31621	gains
31622	gala
31623	gallantly
31624	galleria
31625	gallery
31626	galley
31631	gallon
31632	gallows
31633	gallstone
31634	galore
31635	galvanize
31636	gambling
31641	game
31642	gaming
31643	gamma
31644	gander
31645	gangly
31646	gangrene
31651	gangway
31652	gap
31653	garage
31654	garbage
31655	garden
31656	gargle
31661	garland
31662	garlic
31663	garment
31664	garnet
31665	garnish
31666	garter
32111	gas
32112	gatherer
32113	gathering
32114	gating
32115	gauging
32116	gauntlet
32121	gauze
32122	gave
32123	gawk
32124	gazing
32125	gear
32126	gecko
32131	geek
32132	geiger
32133	gem
32134	gender
32135	generic
32136	generous
32141	genetics
32142	genre
32143	gentile
32144	gentleman
32145	gently
32146	gents
32151	geography
32152	geologic
32153	geologist
32154	geology
32155	geometric
32156	geometry
32161	geranium
32162	gerbil
32163	geriatric
32164	germicide
32165	germinate
32166	germless
32211	germproof
32212	gestate
32213	gestation
32214	gesture
32215	getaway
32216	getting
32221	getup
32222	giant
32223	gibberish
32224	giblet
32225	giddily
32226	giddiness
32231	giddy
32232	gift
32233	gigabyte
32234	gigahertz
32235	gigantic
32236	giggle
32241	giggling
32242	giggly
32243	gigolo
32244	gilled
32245	gills
32246	gimmick
32251	girdle
32252	giveaway
32253	given
32254	giver
32255	giving
32256	gizmo
32261	gizzard
32262	glacial
32263	glacier
32264	glade
32265	gladiator
32266	gladly
32311	glamorous
32312	glamour
32313	glance
32314	glancing
32315	glandular
32316	glare
32321	glaring
32322	glass
32323	glaucoma
32324	glazing
32325	gleaming
32326	gleeful
32331	glider
32332	gliding
32333	glimmer
32334	glimpse
32335	glisten
32336	glitch
32341	glitter
32342	glitzy
32343	gloater
32344	gloating
32345	gloomily
32346	gloomy
32351	glorified
32352	glorifier
32353	glorify
32354	glorious
32355	glory
32356	gloss
32361	glove
32362	glowing
32363	glowworm
32364	glucose
32365	glue
32366	gluten
32411	glutinous
32412	glutton
32413	gnarly
32414	gnat
32415	goal
32416	goatskin
32421	goes
32422	goggles
32423	going
32424	goldfish
32425	goldmine
32426	goldsmith
32431	golf
32432	goliath
32433	gonad
32434	gondola
32435	gone
32436	gong
32441	good
32442	gooey
32443	goofball
32444	goofiness
32445	goofy
32446	google
32451	goon
32452	gopher
32453	gore
32454	gorged
32455	gorgeous
32456	gory
32461	gosling
32462	gossip
32463	gothic
32464	gotten
32465	gout
32466	gown
32511	grab
32512	graceful
32513	graceless
32514	gracious
32515	gradation
32516	graded
32521	grader
32522	gradient
32523	grading
32524	gradually
32525	graduate
32526	graffiti
32531	grafted
32532	grafting
32533	grain
32534	granddad
32535	grandkid
32536	grandly
32541	grandma
32542	grandpa
32543	grandson
32544	granite
32545	granny
32546	granola
32551	grant
32552	granular
32553	grape
32554	graph
32555	grapple
32556	grappling
32561	grasp
32562	grass
32563	gratified
32564	gratify
32565	grating
32566	gratitude
32611	gratuity
32612	gravel
32613	graveness
32614	graves
32615	graveyard
32616	gravitate
32621	gravity
32622	gravy
32623	gray
32624	grazing
32625	greasily
32626	greedily
32631	greedless
32632	greedy
32633	green
32634	greeter
32635	greeting
32636	grew
32641	greyhound
32642	grid
32643	grief
32644	grievance
32645	grieving
32646	grievous
32651	grill
32652	grimace
32653	grimacing
32654	grime
32655	griminess
32656	grimy
32661	grinch
32662	grinning
32663	grip
32664	gristle
32665	grit
32666	groggily
33111	groggy
33112	groin
33113	groom
33114	groove
33115	grooving
33116	groovy
33121	grope
33122	ground
33123	grouped
33124	grout
33125	grove
33126	grower
33131	growing
33132	growl
33133	grub
33134	grudge
33135	grudging
33136	grueling
33141	gruffly
33142	grumble
33143	grumbling
33144	grumbly
33145	grumpily
33146	grunge
33151	grunt
33152	guacamole
33153	guidable
33154	guidance
33155	guide
33156	guiding
33161	guileless
33162	guise
33163	gulf
33164	gullible
33165	gully
33166	gulp
33211	gumball
33212	gumdrop
33213	gumminess
33214	gumming
33215	gummy
33216	gurgle
33221	gurgling
33222	guru
33223	gush
33224	gusto
33225	gusty
33226	gutless
33231	guts
33232	gutter
33233	guy
33234	guzzler
33235	gyration
33236	habitable
33241	habitant
33242	habitat
33243	habitual
33244	hacked
33245	hacker
33246	hacking
33251	hacksaw
33252	had
33253	haggler
33254	haiku
33255	half
33256	halogen
33261	halt
33262	halved
33263	halves
33264	hamburger
33265	hamlet
33266	hammock
33311	hamper
33312	hamster
33313	hamstring
33314	handbag
33315	handball
33316	handbook
33321	handbrake
33322	handcart
33323	handclap
33324	handclasp
33325	handcraft
33326	handcuff
33331	handed
33332	handful
33333	handgrip
33334	handgun
33335	handheld
33336	handiness
33341	handiwork
33342	handlebar
33343	handled
33344	handler
33345	handling
33346	handmade
33351	handoff
33352	handpick
33353	handprint
33354	handrail
33355	handsaw
33356	handset
33361	handsfree
33362	handshake
33363	handstand
33364	handwash
33365	handwork
33366	handwoven
33411	handwrite
33412	handyman
33413	hangnail
33414	hangout
33415	hangover
33416	hangup
33421	hankering
33422	hankie
33423	hanky
33424	haphazard
33425	happening
33426	happier
33431	happiest
33432	happily
33433	happiness
33434	happy
33435	harbor
33436	hardcopy
33441	hardcore
33442	hardcover
33443	harddisk
33444	hardened
33445	hardener
33446	hardening
33451	hardhat
33452	hardhead
33453	hardiness
33454	hardly
33455	hardness
33456	hardship
33461	hardware
33462	hardwired
33463	hardwood
33464	hardy
33465	harmful
33466	harmless
33511	harmonica
33512	harmonics
33513	harmonize
33514	harmony
33515	harness
33516	harpist
33521	harsh
33522	harvest
33523	hash
33524	hassle
33525	haste
33526	hastily
33531	hastiness
33532	hasty
33533	hatbox
33534	hatchback
33535	hatchery
33536	hatchet
33541	hatching
33542	hatchling
33543	hate
33544	hatless
33545	hatred
33546	haunt
33551	haven
33552	hazard
33553	hazelnut
33554	hazily
33555	haziness
33556	hazing
33561	hazy
33562	headache
33563	headband
33564	headboard
33565	headcount
33566	headdress
33611	headed
33612	header
33613	headfirst
33614	headgear
33615	heading
33616	headlamp
33621	headless
33622	headlock
33623	headphone
33624	headpiece
33625	headrest
33626	headroom
33631	headscarf
33632	headset
33633	headsman
33634	headstand
33635	headstone
33636	headway
33641	headwear
33642	heap
33643	heat
33644	heave
33645	heavily
33646	heaviness
33651	heaving
33652	hedge
33653	hedging
33654	heftiness
33655	hefty
33656	helium
33661	helmet
33662	helper
33663	helpful
33664	helping
33665	helpless
33666	helpline
34111	hemlock
34112	hemstitch
34113	hence
34114	henchman
34115	henna
34116	herald
34121	herbal
34122	herbicide
34123	herbs
34124	heritage
34125	hermit
34126	heroics
34131	heroism
34132	herring
34133	herself
34134	hertz
34135	hesitancy
34136	hesitant
34141	hesitate
34142	hexagon
34143	hexagram
34144	hubcap
34145	huddle
34146	huddling
34151	huff
34152	hug
34153	hula
34154	hulk
34155	hull
34156	human
34161	humble
34162	humbling
34163	humbly
34164	humid
34165	humiliate
34166	humility
34211	humming
34212	hummus
34213	humongous
34214	humorist
34215	humorless
34216	humorous
34221	humpback
34222	humped
34223	humvee
34224	hunchback
34225	hundredth
34226	hunger
34231	hungrily
34232	hungry
34233	hunk
34234	hunter
34235	hunting
34236	huntress
34241	huntsman
34242	hurdle
34243	hurled
34244	hurler
34245	hurling
34246	hurray
34251	hurricane
34252	hurried
34253	hurry
34254	hurt
34255	husband
34256	hush
34261	husked
34262	huskiness
34263	hut
34264	hybrid
34265	hydrant
34266	hydrated
34311	hydration
34312	hydrogen
34313	hydroxide
34314	hyperlink
34315	hypertext
34316	hyphen
34321	hypnoses
34322	hypnosis
34323	hypnotic
34324	hypnotism
34325	hypnotist
34326	hypnotize
34331	hypocrisy
34332	hypocrite
34333	ibuprofen
34334	ice
34335	iciness
34336	icing
34341	icky
34342	icon
34343	icy
34344	idealism
34345	idealist
34346	idealize
34351	ideally
34352	idealness
34353	identical
34354	identify
34355	identity
34356	ideology
34361	idiocy
34362	idiom
34363	idly
34364	igloo
34365	ignition
34366	ignore
34411	iguana
34412	illicitly
34413	illusion
34414	illusive
34415	image
34416	imaginary
34421	imagines
34422	imaging
34423	imbecile
34424	imitate
34425	imitation
34426	immature
34431	immerse
34432	immersion
34433	imminent
34434	immobile
34435	immodest
34436	immorally
34441	immortal
34442	immovable
34443	immovably
34444	immunity
34445	immunize
34446	impaired
34451	impale
34452	impart
34453	impatient
34454	impeach
34455	impeding
34456	impending
34461	imperfect
34462	imperial
34463	impish
34464	implant
34465	implement
34466	implicate
34511	implicit
34512	implode
34513	implosion
34514	implosive
34515	imply
34516	impolite
34521	important
34522	importer
34523	impose
34524	imposing
34525	impotence
34526	impotency
34531	impotent
34532	impound
34533	imprecise
34534	imprint
34535	imprison
34536	impromptu
34541	improper
34542	improve
34543	improving
34544	improvise
34545	imprudent
34546	impulse
34551	impulsive
34552	impure
34553	impurity
34554	iodine
34555	iodize
34556	ion
34561	ipad
34562	iphone
34563	ipod
34564	irate
34565	irk
34566	iron
34611	irregular
34612	irrigate
34613	irritable
34614	irritably
34615	irritant
34616	irritate
34621	islamic
34622	islamist
34623	isolated
34624	isolating
34625	isolation
34626	isotope
34631	issue
34632	issuing
34633	italicize
34634	italics
34635	item
34636	itinerary
34641	itunes
34642	ivory
34643	ivy
34644	jab
34645	jackal
34646	jacket
34651	jackknife
34652	jackpot
34653	jailbird
34654	jailbreak
34655	jailer
34656	jailhouse
34661	jalapeno
34662	jam
34663	janitor
34664	january
34665	jargon
34666	jarring
35111	jasmine
35112	jaundice
35113	jaunt
35114	java
35115	jawed
35116	jawless
35121	jawline
35122	jaws
35123	jaybird
35124	jaywalker
35125	jazz
35126	jeep
35131	jeeringly
35132	jellied
35133	jelly
35134	jersey
35135	jester
35136	jet
35141	jiffy
35142	jigsaw
35143	jimmy
35144	jingle
35145	jingling
35146	jinx
35151	jitters
35152	jittery
35153	job
35154	jockey
35155	jockstrap
35156	jogger
35161	jogging
35162	john
35163	joining
35164	jokester
35165	jokingly
35166	jolliness
35211	jolly
35212	jolt
35213	jot
35214	jovial
35215	joyfully
35216	joylessly
35221	joyous
35222	joyride
35223	joystick
35224	jubilance
35225	jubilant
35226	judge
35231	judgingly
35232	judicial
35233	judiciary
35234	judo
35235	juggle
35236	juggling
35241	jugular
35242	juice
35243	juiciness
35244	juicy
35245	jujitsu
35246	jukebox
35251	july
35252	jumble
35253	jumbo
35254	jump
35255	junction
35256	juncture
35261	june
35262	junior
35263	juniper
35264	junkie
35265	junkman
35266	junkyard
35311	jurist
35312	juror
35313	jury
35314	justice
35315	justifier
35316	justify
35321	justly
35322	justness
35323	juvenile
35324	kabob
35325	kangaroo
35326	karaoke
35331	karate
35332	karma
35333	kebab
35334	keenly
35335	keenness
35336	keep
35341	keg
35342	kelp
35343	kennel
35344	kept
35345	kerchief
35346	kerosene
35351	kettle
35352	kick
35353	kiln
35354	kilobyte
35355	kilogram
35356	kilometer
35361	kilowatt
35362	kilt
35363	kimono
35364	kindle
35365	kindling
35366	kindly
35411	kindness
35412	kindred
35413	kinetic
35414	kinfolk
35415	king
35416	kinship
35421	kinsman
35422	kinswoman
35423	kissable
35424	kisser
35425	kissing
35426	kitchen
35431	kite
35432	kitten
35433	kitty
35434	kiwi
35435	kleenex
35436	knapsack
35441	knee
35442	knelt
35443	knickers
35444	knoll
35445	koala
35446	kooky
35451	kosher
35452	krypton
35453	kudos
35454	kung
35455	labored
35456	laborer
35461	laboring
35462	laborious
35463	labrador
35464	ladder
35465	ladies
35466	ladle
35511	ladybug
35512	ladylike
35513	lagged
35514	lagging
35515	lagoon
35516	lair
35521	lake
35522	lance
35523	landed
35524	landfall
35525	landfill
35526	landing
35531	landlady
35532	landless
35533	landline
35534	landlord
35535	landmark
35536	landmass
35541	landmine
35542	landowner
35543	landscape
35544	landside
35545	landslide
35546	language
35551	lankiness
35552	lanky
35553	lantern
35554	lapdog
35555	lapel
35556	lapped
35561	lapping
35562	laptop
35563	lard
35564	large
35565	lark
35566	lash
35611	lasso
35612	last
35613	latch
35614	late
35615	lather
35616	latitude
35621	latrine
35622	latter
35623	latticed
35624	launch
35625	launder
35626	laundry
35631	laurel
35632	lavender
35633	lavish
35634	laxative
35635	lazily
35636	laziness
35641	lazy
35642	lecturer
35643	left
35644	legacy
35645	legal
35646	legend
35651	legged
35652	leggings
35653	legible
35654	legibly
35655	legislate
35656	lego
35661	legroom
35662	legume
35663	legwarmer
35664	legwork
35665	lemon
35666	lend
36111	length
36112	lens
36113	lent
36114	leotard
36115	lesser
36116	letdown
36121	lethargic
36122	lethargy
36123	letter
36124	lettuce
36125	level
36126	leverage
36131	levers
36132	levitate
36133	levitator
36134	liability
36135	liable
36136	liberty
36141	librarian
36142	library
36143	licking
36144	licorice
36145	lid
36146	life
36151	lifter
36152	lifting
36153	liftoff
36154	ligament
36155	likely
36156	likeness
36161	likewise
36162	liking
36163	lilac
36164	lilly
36165	lily
36166	limb
36211	limeade
36212	limelight
36213	limes
36214	limit
36215	limping
36216	limpness
36221	line
36222	lingo
36223	linguini
36224	linguist
36225	lining
36226	linked
36231	linoleum
36232	linseed
36233	lint
36234	lion
36235	lip
36236	liquefy
36241	liqueur
36242	liquid
36243	lisp
36244	list
36245	litigate
36246	litigator
36251	litmus
36252	litter
36253	little
36254	livable
36255	lived
36256	lively
36261	liver
36262	livestock
36263	lividly
36264	living
36265	lizard
36266	lubricant
36311	lubricate
36312	lucid
36313	luckily
36314	luckiness
36315	luckless
36316	lucrative
36321	ludicrous
36322	lugged
36323	lukewarm
36324	lullaby
36325	lumber
36326	luminance
36331	luminous
36332	lumpiness
36333	lumping
36334	lumpish
36335	lunacy
36336	lunar
36341	lunchbox
36342	luncheon
36343	lunchroom
36344	lunchtime
36345	lung
36346	lurch
36351	lure
36352	luridness
36353	lurk
36354	lushly
36355	lushness
36356	luster
36361	lustfully
36362	lustily
36363	lustiness
36364	lustrous
36365	lusty
36366	luxurious
36411	luxury
36412	lying
36413	lyrically
36414	lyricism
36415	lyricist
36416	lyrics
36421	macarena
36422	macaroni
36423	macaw
36424	mace
36425	machine
36426	machinist
36431	magazine
36432	magenta
36433	maggot
36434	magical
36435	magician
36436	magma
36441	magnesium
36442	magnetic
36443	magnetism
36444	magnetize
36445	magnifier
36446	magnify
36451	magnitude
36452	magnolia
36453	mahogany
36454	maimed
36455	majestic
36456	majesty
36461	majorette
36462	majority
36463	makeover
36464	maker
36465	makeshift
36466	making
36511	malformed
36512	malt
36513	mama
36514	mammal
36515	mammary
36516	mammogram
36521	manager
36522	managing
36523	manatee
36524	mandarin
36525	mandate
36526	mandatory
36531	mandolin
36532	manger
36533	mangle
36534	mango
36535	mangy
36536	manhandle
36541	manhole
36542	manhood
36543	manhunt
36544	manicotti
36545	manicure
36546	manifesto
36551	manila
36552	mankind
36553	manlike
36554	manliness
36555	manly
36556	manmade
36561	manned
36562	mannish
36563	manor
36564	manpower
36565	mantis
36566	mantra
36611	manual
36612	many
36613	map
36614	marathon
36615	marauding
36616	marbled
36621	marbles
36622	marbling
36623	march
36624	mardi
36625	margarine
36626	margarita
36631	margin
36632	marigold
36633	marina
36634	marine
36635	marital
36636	maritime
36641	marlin
36642	marmalade
36643	maroon
36644	married
36645	marrow
36646	marry
36651	marshland
36652	marshy
36653	marsupial
36654	marvelous
36655	marxism
36656	mascot
36661	masculine
36662	mashed
36663	mashing
36664	massager
36665	masses
36666	massive
41111	mastiff
41112	matador
41113	matchbook
41114	matchbox
41115	matcher
41116	matching
41121	matchless
41122	material
41123	maternal
41124	maternity
41125	math
41126	mating
41131	matriarch
41132	matrimony
41133	matrix
41134	matron
41135	matted
41136	matter
41141	maturely
41142	maturing
41143	maturity
41144	mauve
41145	maverick
41146	maximize
41151	maximum
41152	maybe
41153	mayday
41154	mayflower
41155	moaner
41156	moaning
41161	mobile
41162	mobility
41163	mobilize
41164	mobster
41165	mocha
41166	mocker
41211	mockup
41212	modified
41213	modify
41214	modular
41215	modulator
41216	module
41221	moisten
41222	moistness
41223	moisture
41224	molar
41225	molasses
41226	mold
41231	molecular
41232	molecule
41233	molehill
41234	mollusk
41235	mom
41236	monastery
41241	monday
41242	monetary
41243	monetize
41244	moneybags
41245	moneyless
41246	moneywise
41251	mongoose
41252	mongrel
41253	monitor
41254	monkhood
41255	monogamy
41256	monogram
41261	monologue
41262	monopoly
41263	monorail
41264	monotone
41265	monotype
41266	monoxide
41311	monsieur
41312	monsoon
41313	monstrous
41314	monthly
41315	monument
41316	moocher
41321	moodiness
41322	moody
41323	mooing
41324	moonbeam
41325	mooned
41326	moonlight
41331	moonlike
41332	moonlit
41333	moonrise
41334	moonscape
41335	moonshine
41336	moonstone
41341	moonwalk
41342	mop
41343	morale
41344	morality
41345	morally
41346	morbidity
41351	morbidly
41352	morphine
41353	morphing
41354	morse
41355	mortality
41356	mortally
41361	mortician
41362	mortified
41363	mortify
41364	mortuary
41365	mosaic
41366	mossy
41411	most
41412	mothball
41413	mothproof
41414	motion
41415	motivate
41416	motivator
41421	motive
41422	motocross
41423	motor
41424	motto
41425	mountable
41426	mountain
41431	mounted
41432	mounting
41433	mourner
41434	mournful
41435	mouse
41436	mousiness
41441	moustache
41442	mousy
41443	mouth
41444	movable
41445	move
41446	movie
41451	moving
41452	mower
41453	mowing
41454	much
41455	muck
41456	mud
41461	mug
41462	mulberry
41463	mulch
41464	mule
41465	mulled
41466	mullets
41511	multiple
41512	multiply
41513	multitask
41514	multitude
41515	mumble
41516	mumbling
41521	mumbo
41522	mummified
41523	mummify
41524	mummy
41525	mumps
41526	munchkin
41531	mundane
41532	municipal
41533	muppet
41534	mural
41535	murkiness
41536	murky
41541	murmuring
41542	muscular
41543	museum
41544	mushily
41545	mushiness
41546	mushroom
41551	mushy
41552	music
41553	musket
41554	muskiness
41555	musky
41556	mustang
41561	mustard
41562	muster
41563	mustiness
41564	musty
41565	mutable
41566	mutate
41611	mutation
41612	mute
41613	mutilated
41614	mutilator
41615	mutiny
41616	mutt
41621	mutual
41622	muzzle
41623	myself
41624	myspace
41625	mystified
41626	mystify
41631	myth
41632	nacho
41633	nag
41634	nail
41635	name
41636	naming
41641	nanny
41642	nanometer
41643	nape
41644	napkin
41645	napped
41646	napping
41651	nappy
41652	narrow
41653	nastily
41654	nastiness
41655	national
41656	native
41661	nativity
41662	natural
41663	nature
41664	naturist
41665	nautical
41666	navigate
42111	navigator
42112	navy
42113	nearby
42114	nearest
42115	nearly
42116	nearness
42121	neatly
42122	neatness
42123	nebula
42124	nebulizer
42125	nectar
42126	negate
42131	negation
42132	negative
42133	neglector
42134	negligee
42135	negligent
42136	negotiate
42141	nemeses
42142	nemesis
42143	neon
42144	nephew
42145	nerd
42146	nervous
42151	nervy
42152	nest
42153	net
42154	neurology
42155	neuron
42156	neurosis
42161	neurotic
42162	neuter
42163	neutron
42164	never
42165	next
42166	nibble
42211	nickname
42212	nicotine
42213	niece
42214	nifty
42215	nimble
42216	nimbly
42221	nineteen
42222	ninetieth
42223	ninja
42224	nintendo
42225	ninth
42226	nuclear
42231	nuclei
42232	nucleus
42233	nugget
42234	nullify
42235	number
42236	numbing
42241	numbly
42242	numbness
42243	numeral
42244	numerate
42245	numerator
42246	numeric
42251	numerous
42252	nuptials
42253	nursery
42254	nursing
42255	nurture
42256	nutcase
42261	nutlike
42262	nutmeg
42263	nutrient
42264	nutshell
42265	nuttiness
42266	nutty
42311	nuzzle
42312	nylon
42313	oaf
42314	oak
42315	oasis
42316	oat
42321	obedience
42322	obedient
42323	obituary
42324	object
42325	obligate
42326	obliged
42331	oblivion
42332	oblivious
42333	oblong
42334	obnoxious
42335	oboe
42336	obscure
42341	obscurity
42342	observant
42343	observer
42344	observing
42345	obsessed
42346	obsession
42351	obsessive
42352	obsolete
42353	obstacle
42354	obstinate
42355	obstruct
42356	obtain
42361	obtrusive
42362	obtuse
42363	obvious
42364	occultist
42365	occupancy
42366	occupant
42411	occupier
42412	occupy
42413	ocean
42414	ocelot
42415	octagon
42416	octane
42421	october
42422	octopus
42423	ogle
42424	oil
42425	oink
42426	ointment
42431	okay
42432	old
42433	olive
42434	olympics
42435	omega
42436	omen
42441	ominous
42442	omission
42443	omit
42444	omnivore
42445	onboard
42446	oncoming
42451	ongoing
42452	onion
42453	online
42454	onlooker
42455	only
42456	onscreen
42461	onset
42462	onshore
42463	onslaught
42464	onstage
42465	onto
42466	onward
42511	onyx
42512	oops
42513	ooze
42514	oozy
42515	opacity
42516	opal
42521	open
42522	operable
42523	operate
42524	operating
42525	operation
42526	operative
42531	operator
42532	opium
42533	opossum
42534	opponent
42535	oppose
42536	opposing
42541	opposite
42542	oppressed
42543	oppressor
42544	opt
42545	opulently
42546	osmosis
42551	other
42552	otter
42553	ouch
42554	ought
42555	ounce
42556	outage
42561	outback
42562	outbid
42563	outboard
42564	outbound
42565	outbreak
42566	outburst
42611	outcast
42612	outclass
42613	outcome
42614	outdated
42615	outdoors
42616	outer
42621	outfield
42622	outfit
42623	outflank
42624	outgoing
42625	outgrow
42626	outhouse
42631	outing
42632	outlast
42633	outlet
42634	outline
42635	outlook
42636	outlying
42641	outmatch
42642	outmost
42643	outnumber
42644	outplayed
42645	outpost
42646	outpour
42651	output
42652	outrage
42653	outrank
42654	outreach
42655	outright
42656	outscore
42661	outsell
42662	outshine
42663	outshoot
42664	outsider
42665	outskirts
42666	outsmart
43111	outsource
43112	outspoken
43113	outtakes
43114	outthink
43115	outward
43116	outweigh
43121	outwit
43122	oval
43123	ovary
43124	oven
43125	overact
43126	overall
43131	overarch
43132	overbid
43133	overbill
43134	overbite
43135	overblown
43136	overboard
43141	overbook
43142	overbuilt
43143	overcast
43144	overcoat
43145	overcome
43146	overcook
43151	overcrowd
43152	overdraft
43153	overdrawn
43154	overdress
43155	overdrive
43156	overdue
43161	overeager
43162	overeater
43163	overexert
43164	overfed
43165	overfeed
43166	overfill
43211	overflow
43212	overfull
43213	overgrown
43214	overhand
43215	overhang
43216	overhaul
43221	overhead
43222	overhear
43223	overheat
43224	overhung
43225	overjoyed
43226	overkill
43231	overlabor
43232	overlaid
43233	overlap
43234	overlay
43235	overload
43236	overlook
43241	overlord
43242	overlying
43243	overnight
43244	overpass
43245	overpay
43246	overplant
43251	overplay
43252	overpower
43253	overprice
43254	overrate
43255	overreach
43256	overreact
43261	override
43262	overripe
43263	overrule
43264	overrun
43265	overshoot
43266	overshot
43311	oversight
43312	oversized
43313	oversleep
43314	oversold
43315	overspend
43316	overstate
43321	overstay
43322	overstep
43323	overstock
43324	overstuff
43325	oversweet
43326	overtake
43331	overthrow
43332	overtime
43333	overtly
43334	overtone
43335	overture
43336	overturn
43341	overuse
43342	overvalue
43343	overview
43344	overwrite
43345	owl
43346	oxford
43351	oxidant
43352	oxidation
43353	oxidize
43354	oxidizing
43355	oxygen
43356	oxymoron
43361	oyster
43362	ozone
43363	paced
43364	pacemaker
43365	pacific
43366	pacifier
43411	pacifism
43412	pacifist
43413	pacify
43414	padded
43415	padding
43416	paddle
43421	paddling
43422	padlock
43423	pagan
43424	pager
43425	paging
43426	pajamas
43431	palace
43432	palatable
43433	palm
43434	palpable
43435	palpitate
43436	paltry
43441	pampered
43442	pamperer
43443	pampers
43444	pamphlet
43445	panama
43446	pancake
43451	pancreas
43452	panda
43453	pandemic
43454	pang
43455	panhandle
43456	panic
43461	panning
43462	panorama
43463	panoramic
43464	panther
43465	pantomime
43466	pantry
43511	pants
43512	pantyhose
43513	paparazzi
43514	papaya
43515	paper
43516	paprika
43521	papyrus
43522	parabola
43523	parachute
43524	parade
43525	paradox
43526	paragraph
43531	parakeet
43532	paralegal
43533	paralyses
43534	paralysis
43535	paralyze
43536	paramedic
43541	parameter
43542	paramount
43543	parasail
43544	parasite
43545	parasitic
43546	parcel
43551	parched
43552	parchment
43553	pardon
43554	parish
43555	parka
43556	parking
43561	parkway
43562	parlor
43563	parmesan
43564	parole
43565	parrot
43566	parsley
43611	parsnip
43612	partake
43613	parted
43614	parting
43615	partition
43616	partly
43621	partner
43622	partridge
43623	party
43624	passable
43625	passably
43626	passage
43631	passcode
43632	passenger
43633	passerby
43634	passing
43635	passion
43636	passive
43641	passivism
43642	passover
43643	passport
43644	password
43645	pasta
43646	pasted
43651	pastel
43652	pastime
43653	pastor
43654	pastrami
43655	pasture
43656	pasty
43661	patchwork
43662	patchy
43663	paternal
43664	paternity
43665	path
43666	patience
44111	patient
44112	patio
44113	patriarch
44114	patriot
44115	patrol
44116	patronage
44121	patronize
44122	pauper
44123	pavement
44124	paver
44125	pavestone
44126	pavilion
44131	paving
44132	pawing
44133	payable
44134	payback
44135	paycheck
44136	payday
44141	payee
44142	payer
44143	paying
44144	payment
44145	payphone
44146	payroll
44151	pebble
44152	pebbly
44153	pecan
44154	pectin
44155	peculiar
44156	peddling
44161	pediatric
44162	pedicure
44163	pedigree
44164	pedometer
44165	pegboard
44166	pelican
44211	pellet
44212	pelt
44213	pelvis
44214	penalize
44215	penalty
44216	pencil
44221	pendant
44222	pending
44223	penholder
44224	penknife
44225	pennant
44226	penniless
44231	penny
44232	penpal
44233	pension
44234	pentagon
44235	pentagram
44236	pep
44241	perceive
44242	percent
44243	perch
44244	percolate
44245	perennial
44246	perfected
44251	perfectly
44252	perfume
44253	periscope
44254	perish
44255	perjurer
44256	perjury
44261	perkiness
44262	perky
44263	perm
44264	peroxide
44265	perpetual
44266	perplexed
44311	persecute
44312	persevere
44313	persuaded
44314	persuader
44315	pesky
44316	peso
44321	pessimism
44322	pessimist
44323	pester
44324	pesticide
44325	petal
44326	petite
44331	petition
44332	petri
44333	petroleum
44334	petted
44335	petticoat
44336	pettiness
44341	petty
44342	petunia
44343	phantom
44344	phobia
44345	phoenix
44346	phonebook
44351	phoney
44352	phonics
44353	phoniness
44354	phony
44355	phosphate
44356	photo
44361	phrase
44362	phrasing
44363	placard
44364	placate
44365	placidly
44366	plank
44411	planner
44412	plant
44413	plasma
44414	plaster
44415	plastic
44416	plated
44421	platform
44422	plating
44423	platinum
44424	platonic
44425	platter
44426	platypus
44431	plausible
44432	plausibly
44433	playable
44434	playback
44435	player
44436	playful
44441	playgroup
44442	playhouse
44443	playing
44444	playlist
44445	playmaker
44446	playmate
44451	playoff
44452	playpen
44453	playroom
44454	playset
44455	plaything
44456	playtime
44461	plaza
44462	pleading
44463	pleat
44464	pledge
44465	plentiful
44466	plenty
44511	plethora
44512	plexiglas
44513	pliable
44514	plod
44515	plop
44516	plot
44521	plow
44522	ploy
44523	pluck
44524	plug
44525	plunder
44526	plunging
44531	plural
44532	plus
44533	plutonium
44534	plywood
44535	poach
44536	pod
44541	poem
44542	poet
44543	pogo
44544	pointed
44545	pointer
44546	pointing
44551	pointless
44552	pointy
44553	poise
44554	poison
44555	poker
44556	poking
44561	polar
44562	police
44563	policy
44564	polio
44565	polish
44566	politely
44611	polka
44612	polo
44613	polyester
44614	polygon
44615	polygraph
44616	polymer
44621	poncho
44622	pond
44623	pony
44624	popcorn
44625	pope
44626	poplar
44631	popper
44632	poppy
44633	popsicle
44634	populace
44635	popular
44636	populate
44641	porcupine
44642	pork
44643	porous
44644	porridge
44645	portable
44646	portal
44651	portfolio
44652	porthole
44653	portion
44654	portly
44655	portside
44656	poser
44661	posh
44662	posing
44663	possible
44664	possibly
44665	possum
44666	postage
45111	postal
45112	postbox
45113	postcard
45114	posted
45115	poster
45116	posting
45121	postnasal
45122	posture
45123	postwar
45124	pouch
45125	pounce
45126	pouncing
45131	pound
45132	pouring
45133	pout
45134	powdered
45135	powdering
45136	powdery
45141	power
45142	powwow
45143	pox
45144	praising
45145	prance
45146	prancing
45151	pranker
45152	prankish
45153	prankster
45154	prayer
45155	praying
45156	preacher
45161	preaching
45162	preachy
45163	preamble
45164	precinct
45165	precise
45166	precision
45211	precook
45212	precut
45213	predator
45214	predefine
45215	predict
45216	preface
45221	prefix
45222	preflight
45223	preformed
45224	pregame
45225	pregnancy
45226	pregnant
45231	preheated
45232	prelaunch
45233	prelaw
45234	prelude
45235	premiere
45236	premises
45241	premium
45242	prenatal
45243	preoccupy
45244	preorder
45245	prepaid
45246	prepay
45251	preplan
45252	preppy
45253	preschool
45254	prescribe
45255	preseason
45256	preset
45261	preshow
45262	president
45263	presoak
45264	press
45265	presume
45266	presuming
45311	preteen
45312	pretended
45313	pretender
45314	pretense
45315	pretext
45316	pretty
45321	pretzel
45322	prevail
45323	prevalent
45324	prevent
45325	preview
45326	previous
45331	prewar
45332	prewashed
45333	prideful
45334	pried
45335	primal
45336	primarily
45341	primary
45342	primate
45343	primer
45344	primp
45345	princess
45346	print
45351	prior
45352	prism
45353	prison
45354	prissy
45355	pristine
45356	privacy
45361	private
45362	privatize
45363	prize
45364	proactive
45365	probable
45366	probably
45411	probation
45412	probe
45413	probing
45414	probiotic
45415	problem
45416	procedure
45421	process
45422	proclaim
45423	procreate
45424	procurer
45425	prodigal
45426	prodigy
45431	produce
45432	product
45433	profane
45434	profanity
45435	professed
45436	professor
45441	profile
45442	profound
45443	profusely
45444	progeny
45445	prognosis
45446	program
45451	progress
45452	projector
45453	prologue
45454	prolonged
45455	promenade
45456	prominent
45461	promoter
45462	promotion
45463	prompter
45464	promptly
45465	prone
45466	prong
45511	pronounce
45512	pronto
45513	proofing
45514	proofread
45515	proofs
45516	propeller
45521	properly
45522	property
45523	proponent
45524	proposal
45525	propose
45526	props
45531	prorate
45532	protector
45533	protegee
45534	proton
45535	prototype
45536	protozoan
45541	protract
45542	protrude
45543	proud
45544	provable
45545	proved
45546	proven
45551	provided
45552	provider
45553	providing
45554	province
45555	proving
45556	provoke
45561	provoking
45562	provolone
45563	prowess
45564	prowler
45565	prowling
45566	proximity
45611	proxy
45612	prozac
45613	prude
45614	prudishly
45615	prune
45616	pruning
45621	pry
45622	psychic
45623	public
45624	publisher
45625	pucker
45626	pueblo
45631	pug
45632	pull
45633	pulmonary
45634	pulp
45635	pulsate
45636	pulse
45641	pulverize
45642	puma
45643	pumice
45644	pummel
45645	punch
45646	punctual
45651	punctuate
45652	punctured
45653	pungent
45654	punisher
45655	punk
45656	pupil
45661	puppet
45662	puppy
45663	purchase
45664	pureblood
45665	purebred
45666	purely
46111	pureness
46112	purgatory
46113	purge
46114	purging
46115	purifier
46116	purify
46121	purist
46122	puritan
46123	purity
46124	purple
46125	purplish
46126	purposely
46131	purr
46132	purse
46133	pursuable
46134	pursuant
46135	pursuit
46136	purveyor
46141	pushcart
46142	pushchair
46143	pusher
46144	pushiness
46145	pushing
46146	pushover
46151	pushpin
46152	pushup
46153	pushy
46154	putdown
46155	putt
46156	puzzle
46161	puzzling
46162	pyramid
46163	pyromania
46164	python
46165	quack
46166	quadrant
46211	quail
46212	quaintly
46213	quake
46214	quaking
46215	qualified
46216	qualifier
46221	qualify
46222	quality
46223	qualm
46224	quantum
46225	quarrel
46226	quarry
46231	quartered
46232	quarterly
46233	quarters
46234	quartet
46235	quench
46236	query
46241	quicken
46242	quickly
46243	quickness
46244	quicksand
46245	quickstep
46246	quiet
46251	quill
46252	quilt
46253	quintet
46254	quintuple
46255	quirk
46256	quit
46261	quiver
46262	quizzical
46263	quotable
46264	quotation
46265	quote
46266	rabid
46311	race
46312	racing
46313	racism
46314	rack
46315	racoon
46316	radar
46321	radial
46322	radiance
46323	radiantly
46324	radiated
46325	radiation
46326	radiator
46331	radio
46332	radish
46333	raffle
46334	raft
46335	rage
46336	ragged
46341	raging
46342	ragweed
46343	raider
46344	railcar
46345	railing
46346	railroad
46351	railway
46352	raisin
46353	rake
46354	raking
46355	rally
46356	ramble
46361	rambling
46362	ramp
46363	ramrod
46364	ranch
46365	rancidity
46366	random
46411	ranged
46412	ranger
46413	ranging
46414	ranked
46415	ranking
46416	ransack
46421	ranting
46422	rants
46423	rare
46424	rarity
46425	rascal
46426	rash
46431	rasping
46432	ravage
46433	raven
46434	ravine
46435	raving
46436	ravioli
46441	ravishing
46442	reabsorb
46443	reach
46444	reacquire
46445	reaction
46446	reactive
46451	reactor
46452	reaffirm
46453	ream
46454	reanalyze
46455	reappear
46456	reapply
46461	reappoint
46462	reapprove
46463	rearrange
46464	rearview
46465	reason
46466	reassign
46511	reassure
46512	reattach
46513	reawake
46514	rebalance
46515	rebate
46516	rebel
46521	rebirth
46522	reboot
46523	reborn
46524	rebound
46525	rebuff
46526	rebuild
46531	rebuilt
46532	reburial
46533	rebuttal
46534	recall
46535	recant
46536	recapture
46541	recast
46542	recede
46543	recent
46544	recess
46545	recharger
46546	recipient
46551	recital
46552	recite
46553	reckless
46554	reclaim
46555	recliner
46556	reclining
46561	recluse
46562	reclusive
46563	recognize
46564	recoil
46565	recollect
46566	recolor
46611	reconcile
46612	reconfirm
46613	reconvene
46614	recopy
46615	record
46616	recount
46621	recoup
46622	recovery
46623	recreate
46624	rectal
46625	rectangle
46626	rectified
46631	rectify
46632	recycled
46633	recycler
46634	recycling
46635	reemerge
46636	reenact
46641	reenter
46642	reentry
46643	reexamine
46644	referable
46645	referee
46646	reference
46651	refill
46652	refinance
46653	refined
46654	refinery
46655	refining
46656	refinish
46661	reflected
46662	reflector
46663	reflex
46664	reflux
46665	refocus
46666	refold
51111	reforest
51112	reformat
51113	reformed
51114	reformer
51115	reformist
51116	refract
51121	refrain
51122	refreeze
51123	refresh
51124	refried
51125	refueling
51126	refund
51131	refurbish
51132	refurnish
51133	refusal
51134	refuse
51135	refusing
51136	refutable
51141	refute
51142	regain
51143	regalia
51144	regally
51145	reggae
51146	regime
51151	region
51152	register
51153	registrar
51154	registry
51155	regress
51156	regretful
51161	regroup
51162	regular
51163	regulate
51164	regulator
51165	rehab
51166	reheat
51211	rehire
51212	rehydrate
51213	reimburse
51214	reissue
51215	reiterate
51216	rejoice
51221	rejoicing
51222	rejoin
51223	rekindle
51224	relapse
51225	relapsing
51226	relatable
51231	related
51232	relation
51233	relative
51234	relax
51235	relay
51236	relearn
51241	release
51242	relenting
51243	reliable
51244	reliably
51245	reliance
51246	reliant
51251	relic
51252	relieve
51253	relieving
51254	relight
51255	relish
51256	relive
51261	reload
51262	relocate
51263	relock
51264	reluctant
51265	rely
51266	remake
51311	remark
51312	remarry
51313	rematch
51314	remedial
51315	remedy
51316	remember
51321	reminder
51322	remindful
51323	remission
51324	remix
51325	remnant
51326	remodeler
51331	remold
51332	remorse
51333	remote
51334	removable
51335	removal
51336	removed
51341	remover
51342	removing
51343	rename
51344	renderer
51345	rendering
51346	rendition
51351	renegade
51352	renewable
51353	renewably
51354	renewal
51355	renewed
51356	renounce
51361	renovate
51362	renovator
51363	rentable
51364	rental
51365	rented
51366	renter
51411	reoccupy
51412	reoccur
51413	reopen
51414	reorder
51415	repackage
51416	repacking
51421	repaint
51422	repair
51423	repave
51424	repaying
51425	repayment
51426	repeal
51431	repeated
51432	repeater
51433	repent
51434	rephrase
51435	replace
51436	replay
51441	replica
51442	reply
51443	reporter
51444	repose
51445	repossess
51446	repost
51451	repressed
51452	reprimand
51453	reprint
51454	reprise
51455	reproach
51456	reprocess
51461	reproduce
51462	reprogram
51463	reps
51464	reptile
51465	reptilian
51466	repugnant
51511	repulsion
51512	repulsive
51513	repurpose
51514	reputable
51515	reputably
51516	request
51521	require
51522	requisite
51523	reroute
51524	rerun
51525	resale
51526	resample
51531	rescuer
51532	reseal
51533	research
51534	reselect
51535	reseller
51536	resemble
51541	resend
51542	resent
51543	reset
51544	reshape
51545	reshoot
51546	reshuffle
51551	residence
51552	residency
51553	resident
51554	residual
51555	residue
51556	resigned
51561	resilient
51562	resistant
51563	resisting
51564	resize
51565	resolute
51566	resolved
51611	resonant
51612	resonate
51613	resort
51614	resource
51615	respect
51616	resubmit
51621	result
51622	resume
51623	resupply
51624	resurface
51625	resurrect
51626	retail
51631	retainer
51632	retaining
51633	retake
51634	retaliate
51635	retention
51636	rethink
51641	retinal
51642	retired
51643	retiree
51644	retiring
51645	retold
51646	retool
51651	retorted
51652	retouch
51653	retrace
51654	retract
51655	retrain
51656	retread
51661	retreat
51662	retrial
51663	retrieval
51664	retriever
51665	retry
51666	return
52111	retying
52112	retype
52113	reunion
52114	reunite
52115	reusable
52116	reuse
52121	reveal
52122	reveler
52123	revenge
52124	revenue
52125	reverb
52126	revered
52131	reverence
52132	reverend
52133	reversal
52134	reverse
52135	reversing
52136	reversion
52141	revert
52142	revisable
52143	revise
52144	revision
52145	revisit
52146	revivable
52151	revival
52152	reviver
52153	reviving
52154	revocable
52155	revoke
52156	revolt
52161	revolver
52162	revolving
52163	reward
52164	rewash
52165	rewind
52166	rewire
52211	reword
52212	rework
52213	rewrap
52214	rewrite
52215	rhyme
52216	ribbon
52221	ribcage
52222	rice
52223	riches
52224	richly
52225	richness
52226	rickety
52231	ricotta
52232	riddance
52233	ridden
52234	ride
52235	riding
52236	rifling
52241	rift
52242	rigging
52243	rigid
52244	rigor
52245	rimless
52246	rimmed
52251	rind
52252	rink
52253	rinse
52254	rinsing
52255	riot
52256	ripcord
52261	ripeness
52262	ripening
52263	ripping
52264	ripple
52265	rippling
52266	riptide
52311	rise
52312	rising
52313	risk
52314	risotto
52315	ritalin
52316	ritzy
52321	rival
52322	riverbank
52323	riverbed
52324	riverboat
52325	riverside
52326	riveter
52331	riveting
52332	roamer
52333	roaming
52334	roast
52335	robbing
52336	robe
52341	robin
52342	robotics
52343	robust
52344	rockband
52345	rocker
52346	rocket
52351	rockfish
52352	rockiness
52353	rocking
52354	rocklike
52355	rockslide
52356	rockstar
52361	rocky
52362	rogue
52363	roman
52364	romp
52365	rope
52366	roping
52411	roster
52412	rosy
52413	rotten
52414	rotting
52415	rotunda
52416	roulette
52421	rounding
52422	roundish
52423	roundness
52424	roundup
52425	roundworm
52426	routine
52431	routing
52432	rover
52433	roving
52434	royal
52435	rubbed
52436	rubber
52441	rubbing
52442	rubble
52443	rubdown
52444	ruby
52445	ruckus
52446	rudder
52451	rug
52452	ruined
52453	rule
52454	rumble
52455	rumbling
52456	rummage
52461	rumor
52462	runaround
52463	rundown
52464	runner
52465	running
52466	runny
52511	runt
52512	runway
52513	rupture
52514	rural
52515	ruse
52516	rush
52521	rust
52522	rut
52523	sabbath
52524	sabotage
52525	sacrament
52526	sacred
52531	sacrifice
52532	sadden
52533	saddlebag
52534	saddled
52535	saddling
52536	sadly
52541	sadness
52542	safari
52543	safeguard
52544	safehouse
52545	safely
52546	safeness
52551	saffron
52552	saga
52553	sage
52554	sagging
52555	saggy
52556	said
52561	saint
52562	sake
52563	salad
52564	salami
52565	salaried
52566	salary
52611	saline
52612	salon
52613	saloon
52614	salsa
52615	salt
52616	salutary
52621	salute
52622	salvage
52623	salvaging
52624	salvation
52625	same
52626	sample
52631	sampling
52632	sanction
52633	sanctity
52634	sanctuary
52635	sandal
52636	sandbag
52641	sandbank
52642	sandbar
52643	sandblast
52644	sandbox
52645	sanded
52646	sandfish
52651	sanding
52652	sandlot
52653	sandpaper
52654	sandpit
52655	sandstone
52656	sandstorm
52661	sandworm
52662	sandy
52663	sanitary
52664	sanitizer
52665	sank
52666	santa
53111	sapling
53112	sappiness
53113	sappy
53114	sarcasm
53115	sarcastic
53116	sardine
53121	sash
53122	sasquatch
53123	sassy
53124	satchel
53125	satiable
53126	satin
53131	satirical
53132	satisfied
53133	satisfy
53134	saturate
53135	saturday
53136	sauciness
53141	saucy
53142	sauna
53143	savage
53144	savanna
53145	saved
53146	savings
53151	savior
53152	savor
53153	saxophone
53154	say
53155	scabbed
53156	scabby
53161	scalded
53162	scalding
53163	scale
53164	scaling
53165	scallion
53166	scallop
53211	scalping
53212	scam
53213	scandal
53214	scanner
53215	scanning
53216	scant
53221	scapegoat
53222	scarce
53223	scarcity
53224	scarecrow
53225	scared
53226	scarf
53231	scarily
53232	scariness
53233	scarring
53234	scary
53235	scavenger
53236	scenic
53241	schedule
53242	schematic
53243	scheme
53244	scheming
53245	schilling
53246	schnapps
53251	scholar
53252	science
53253	scientist
53254	scion
53255	scoff
53256	scolding
53261	scone
53262	scoop
53263	scooter
53264	scope
53265	scorch
53266	scorebook
53311	scorecard
53312	scored
53313	scoreless
53314	scorer
53315	scoring
53316	scorn
53321	scorpion
53322	scotch
53323	scoundrel
53324	scoured
53325	scouring
53326	scouting
53331	scouts
53332	scowling
53333	scrabble
53334	scraggly
53335	scrambled
53336	scrambler
53341	scrap
53342	scratch
53343	scrawny
53344	screen
53345	scribble
53346	scribe
53351	scribing
53352	scrimmage
53353	script
53354	scroll
53355	scrooge
53356	scrounger
53361	scrubbed
53362	scrubber
53363	scruffy
53364	scrunch
53365	scrutiny
53366	scuba
53411	scuff
53412	sculptor
53413	sculpture
53414	scurvy
53415	scuttle
53416	secluded
53421	secluding
53422	seclusion
53423	second
53424	secrecy
53425	secret
53426	sectional
53431	sector
53432	secular
53433	securely
53434	security
53435	sedan
53436	sedate
53441	sedation
53442	sedative
53443	sediment
53444	seduce
53445	seducing
53446	segment
53451	seismic
53452	seizing
53453	seldom
53454	selected
53455	selection
53456	selective
53461	selector
53462	self
53463	seltzer
53464	semantic
53465	semester
53466	semicolon
53511	semifinal
53512	seminar
53513	semisoft
53514	semisweet
53515	senate
53516	senator
53521	send
53522	senior
53523	senorita
53524	sensation
53525	sensitive
53526	sensitize
53531	sensually
53532	sensuous
53533	sepia
53534	september
53535	septic
53536	septum
53541	sequel
53542	sequence
53543	sequester
53544	series
53545	sermon
53546	serotonin
53551	serpent
53552	serrated
53553	serve
53554	service
53555	serving
53556	sesame
53561	sessions
53562	setback
53563	setting
53564	settle
53565	settling
53566	setup
53611	sevenfold
53612	seventeen
53613	seventh
53614	seventy
53615	severity
53616	shabby
53621	shack
53622	shaded
53623	shadily
53624	shadiness
53625	shading
53626	shadow
53631	shady
53632	shaft
53633	shakable
53634	shakily
53635	shakiness
53636	shaking
53641	shaky
53642	shale
53643	shallot
53644	shallow
53645	shame
53646	shampoo
53651	shamrock
53652	shank
53653	shanty
53654	shape
53655	shaping
53656	share
53661	sharpener
53662	sharper
53663	sharpie
53664	sharply
53665	sharpness
53666	shawl
54111	sheath
54112	shed
54113	sheep
54114	sheet
54115	shelf
54116	shell
54121	shelter
54122	shelve
54123	shelving
54124	sherry
54125	shield
54126	shifter
54131	shifting
54132	shiftless
54133	shifty
54134	shimmer
54135	shimmy
54136	shindig
54141	shine
54142	shingle
54143	shininess
54144	shining
54145	shiny
54146	ship
54151	shirt
54152	shivering
54153	shock
54154	shone
54155	shoplift
54156	shopper
54161	shopping
54162	shoptalk
54163	shore
54164	shortage
54165	shortcake
54166	shortcut
54211	shorten
54212	shorter
54213	shorthand
54214	shortlist
54215	shortly
54216	shortness
54221	shorts
54222	shortwave
54223	shorty
54224	shout
54225	shove
54226	showbiz
54231	showcase
54232	showdown
54233	shower
54234	showgirl
54235	showing
54236	showman
54241	shown
54242	showoff
54243	showpiece
54244	showplace
54245	showroom
54246	showy
54251	shrank
54252	shrapnel
54253	shredder
54254	shredding
54255	shrewdly
54256	shriek
54261	shrill
54262	shrimp
54263	shrine
54264	shrink
54265	shrivel
54266	shrouded
54311	shrubbery
54312	shrubs
54313	shrug
54314	shrunk
54315	shucking
54316	shudder
54321	shuffle
54322	shuffling
54323	shun
54324	shush
54325	shut
54326	shy
54331	siamese
54332	siberian
54333	sibling
54334	siding
54335	sierra
54336	siesta
54341	sift
54342	sighing
54343	silenced
54344	silencer
54345	silent
54346	silica
54351	silicon
54352	silk
54353	silliness
54354	silly
54355	silo
54356	silt
54361	silver
54362	similarly
54363	simile
54364	simmering
54365	simple
54366	simplify
54411	simply
54412	sincere
54413	sincerity
54414	singer
54415	singing
54416	single
54421	singular
54422	sinister
54423	sinless
54424	sinner
54425	sinuous
54426	sip
54431	siren
54432	sister
54433	sitcom
54434	sitter
54435	sitting
54436	situated
54441	situation
54442	sixfold
54443	sixteen
54444	sixth
54445	sixties
54446	sixtieth
54451	sixtyfold
54452	sizable
54453	sizably
54454	size
54455	sizing
54456	sizzle
54461	sizzling
54462	skater
54463	skating
54464	skedaddle
54465	skeletal
54466	skeleton
54511	skeptic
54512	sketch
54513	skewed
54514	skewer
54515	skid
54516	skied
54521	skier
54522	skies
54523	skiing
54524	skilled
54525	skillet
54526	skillful
54531	skimmed
54532	skimmer
54533	skimming
54534	skimpily
54535	skincare
54536	skinhead
54541	skinless
54542	skinning
54543	skinny
54544	skintight
54545	skipper
54546	skipping
54551	skirmish
54552	skirt
54553	skittle
54554	skydiver
54555	skylight
54556	skyline
54561	skype
54562	skyrocket
54563	skyward
54564	slab
54565	slacked
54566	slacker
54611	slacking
54612	slackness
54613	slacks
54614	slain
54615	slam
54616	slander
54621	slang
54622	slapping
54623	slapstick
54624	slashed
54625	slashing
54626	slate
54631	slather
54632	slaw
54633	sled
54634	sleek
54635	sleep
54636	sleet
54641	sleeve
54642	slept
54643	sliceable
54644	sliced
54645	slicer
54646	slicing
54651	slick
54652	slider
54653	slideshow
54654	sliding
54655	slighted
54656	slighting
54661	slightly
54662	slimness
54663	slimy
54664	slinging
54665	slingshot
54666	slinky
55111	slip
55112	slit
55113	sliver
55114	slobbery
55115	slogan
55116	sloped
55121	sloping
55122	sloppily
55123	sloppy
55124	slot
55125	slouching
55126	slouchy
55131	sludge
55132	slug
55133	slum
55134	slurp
55135	slush
55136	sly
55141	small
55142	smartly
55143	smartness
55144	smasher
55145	smashing
55146	smashup
55151	smell
55152	smelting
55153	smile
55154	smilingly
55155	smirk
55156	smite
55161	smith
55162	smitten
55163	smock
55164	smog
55165	smoked
55166	smokeless
55211	smokiness
55212	smoking
55213	smoky
55214	smolder
55215	smooth
55216	smother
55221	smudge
55222	smudgy
55223	smuggler
55224	smuggling
55225	smugly
55226	smugness
55231	snack
55232	snagged
55233	snaking
55234	snap
55235	snare
55236	snarl
55241	snazzy
55242	sneak
55243	sneer
55244	sneeze
55245	sneezing
55246	snide
55251	sniff
55252	snippet
55253	snipping
55254	snitch
55255	snooper
55256	snooze
55261	snore
55262	snoring
55263	snorkel
55264	snort
55265	snout
55266	snowbird
55311	snowboard
55312	snowbound
55313	snowcap
55314	snowdrift
55315	snowdrop
55316	snowfall
55321	snowfield
55322	snowflake
55323	snowiness
55324	snowless
55325	snowman
55326	snowplow
55331	snowshoe
55332	snowstorm
55333	snowsuit
55334	snowy
55335	snub
55336	snuff
55341	snuggle
55342	snugly
55343	snugness
55344	speak
55345	spearfish
55346	spearhead
55351	spearman
55352	spearmint
55353	species
55354	specimen
55355	specked
55356	speckled
55361	specks
55362	spectacle
55363	spectator
55364	spectrum
55365	speculate
55366	speech
55411	speed
55412	spellbind
55413	speller
55414	spelling
55415	spendable
55416	spender
55421	spending
55422	spent
55423	spew
55424	sphere
55425	spherical
55426	sphinx
55431	spider
55432	spied
55433	spiffy
55434	spill
55435	spilt
55436	spinach
55441	spinal
55442	spindle
55443	spinner
55444	spinning
55445	spinout
55446	spinster
55451	spiny
55452	spiral
55453	spirited
55454	spiritism
55455	spirits
55456	spiritual
55461	splashed
55462	splashing
55463	splashy
55464	splatter
55465	spleen
55466	splendid
55511	splendor
55512	splice
55513	splicing
55514	splinter
55515	splotchy
55516	splurge
55521	spoilage
55522	spoiled
55523	spoiler
55524	spoiling
55525	spoils
55526	spoken
55531	spokesman
55532	sponge
55533	spongy
55534	sponsor
55535	spoof
55536	spookily
55541	spooky
55542	spool
55543	spoon
55544	spore
55545	sporting
55546	sports
55551	sporty
55552	spotless
55553	spotlight
55554	spotted
55555	spotter
55556	spotting
55561	spotty
55562	spousal
55563	spouse
55564	spout
55565	sprain
55566	sprang
55611	sprawl
55612	spray
55613	spree
55614	sprig
55615	spring
55616	sprinkled
55621	sprinkler
55622	sprint
55623	sprite
55624	sprout
55625	spruce
55626	sprung
55631	spry
55632	spud
55633	spur
55634	sputter
55635	spyglass
55636	squabble
55641	squad
55642	squall
55643	squander
55644	squash
55645	squatted
55646	squatter
55651	squatting
55652	squeak
55653	squealer
55654	squealing
55655	squeamish
55656	squeegee
55661	squeeze
55662	squeezing
55663	squid
55664	squiggle
55665	squiggly
55666	squint
56111	squire
56112	squirt
56113	squishier
56114	squishy
56115	stability
56116	stabilize
56121	stable
56122	stack
56123	stadium
56124	staff
56125	stage
56126	staging
56131	stagnant
56132	stagnate
56133	stainable
56134	stained
56135	staining
56136	stainless
56141	stalemate
56142	staleness
56143	stalling
56144	stallion
56145	stamina
56146	stammer
56151	stamp
56152	stand
56153	stank
56154	staple
56155	stapling
56156	starboard
56161	starch
56162	stardom
56163	stardust
56164	starfish
56165	stargazer
56166	staring
56211	stark
56212	starless
56213	starlet
56214	starlight
56215	starlit
56216	starring
56221	starry
56222	starship
56223	starter
56224	starting
56225	startle
56226	startling
56231	startup
56232	starved
56233	starving
56234	stash
56235	state
56236	static
56241	statistic
56242	statue
56243	stature
56244	status
56245	statute
56246	statutory
56251	staunch
56252	stays
56253	steadfast
56254	steadier
56255	steadily
56256	steadying
56261	steam
56262	steed
56263	steep
56264	steerable
56265	steering
56266	steersman
56311	stegosaur
56312	stellar
56313	stem
56314	stench
56315	stencil
56316	step
56321	stereo
56322	sterile
56323	sterility
56324	sterilize
56325	sterling
56326	sternness
56331	sternum
56332	stew
56333	stick
56334	stiffen
56335	stiffly
56336	stiffness
56341	stifle
56342	stifling
56343	stillness
56344	stilt
56345	stimulant
56346	stimulate
56351	stimuli
56352	stimulus
56353	stinger
56354	stingily
56355	stinging
56356	stingray
56361	stingy
56362	stinking
56363	stinky
56364	stipend
56365	stipulate
56366	stir
56411	stitch
56412	stock
56413	stoic
56414	stoke
56415	stole
56416	stomp
56421	stonewall
56422	stoneware
56423	stonework
56424	stoning
56425	stony
56426	stood
56431	stooge
56432	stool
56433	stoop
56434	stoplight
56435	stoppable
56436	stoppage
56441	stopped
56442	stopper
56443	stopping
56444	stopwatch
56445	storable
56446	storage
56451	storeroom
56452	storewide
56453	storm
56454	stout
56455	stove
56456	stowaway
56461	stowing
56462	straddle
56463	straggler
56464	strained
56465	strainer
56466	straining
56511	strangely
56512	stranger
56513	strangle
56514	strategic
56515	strategy
56516	stratus
56521	straw
56522	stray
56523	streak
56524	stream
56525	street
56526	strength
56531	strenuous
56532	strep
56533	stress
56534	stretch
56535	strewn
56536	stricken
56541	strict
56542	stride
56543	strife
56544	strike
56545	striking
56546	strive
56551	striving
56552	strobe
56553	strode
56554	stroller
56555	strongbox
56556	strongly
56561	strongman
56562	struck
56563	structure
56564	strudel
56565	struggle
56566	strum
56611	strung
56612	strut
56613	stubbed
56614	stubble
56615	stubbly
56616	stubborn
56621	stucco
56622	stuck
56623	student
56624	studied
56625	studio
56626	study
56631	stuffed
56632	stuffing
56633	stuffy
56634	stumble
56635	stumbling
56636	stump
56641	stung
56642	stunned
56643	stunner
56644	stunning
56645	stunt
56646	stupor
56651	sturdily
56652	sturdy
56653	styling
56654	stylishly
56655	stylist
56656	stylized
56661	stylus
56662	suave
56663	subarctic
56664	subatomic
56665	subdivide
56666	subdued
61111	subduing
61112	subfloor
61113	subgroup
61114	subheader
61115	subject
61116	sublease
61121	sublet
61122	sublevel
61123	sublime
61124	submarine
61125	submerge
61126	submersed
61131	submitter
61132	subpanel
61133	subpar
61134	subplot
61135	subprime
61136	subscribe
61141	subscript
61142	subsector
61143	subside
61144	subsiding
61145	subsidize
61146	subsidy
61151	subsoil
61152	subsonic
61153	substance
61154	subsystem
61155	subtext
61156	subtitle
61161	subtly
61162	subtotal
61163	subtract
61164	subtype
61165	suburb
61166	subway
61211	subwoofer
61212	subzero
61213	succulent
61214	such
61215	suction
61216	sudden
61221	sudoku
61222	suds
61223	sufferer
61224	suffering
61225	suffice
61226	suffix
61231	suffocate
61232	suffrage
61233	sugar
61234	suggest
61235	suing
61236	suitable
61241	suitably
61242	suitcase
61243	suitor
61244	sulfate
61245	sulfide
61246	sulfite
61251	sulfur
61252	sulk
61253	sullen
61254	sulphate
61255	sulphuric
61256	sultry
61261	superbowl
61262	superglue
61263	superhero
61264	superior
61265	superjet
61266	superman
61311	supermom
61312	supernova
61313	supervise
61314	supper
61315	supplier
61316	supply
61321	support
61322	supremacy
61323	supreme
61324	surcharge
61325	surely
61326	sureness
61331	surface
61332	surfacing
61333	surfboard
61334	surfer
61335	surgery
61336	surgical
61341	surging
61342	surname
61343	surpass
61344	surplus
61345	surprise
61346	surreal
61351	surrender
61352	surrogate
61353	surround
61354	survey
61355	survival
61356	survive
61361	surviving
61362	survivor
61363	sushi
61364	suspect
61365	suspend
61366	suspense
61411	sustained
61412	sustainer
61413	swab
61414	swaddling
61415	swagger
61416	swampland
61421	swan
61422	swapping
61423	swarm
61424	sway
61425	swear
61426	sweat
61431	sweep
61432	swell
61433	swept
61434	swerve
61435	swifter
61436	swiftly
61441	swiftness
61442	swimmable
61443	swimmer
61444	swimming
61445	swimsuit
61446	swimwear
61451	swinger
61452	swinging
61453	swipe
61454	swirl
61455	switch
61456	swivel
61461	swizzle
61462	swooned
61463	swoop
61464	swoosh
61465	swore
61466	sworn
61511	swung
61512	sycamore
61513	sympathy
61514	symphonic
61515	symphony
61516	symptom
61521	synapse
61522	syndrome
61523	synergy
61524	synopses
61525	synopsis
61526	synthesis
61531	synthetic
61532	syrup
61533	system
61534	t-shirt
61535	tabasco
61536	tabby
61541	tableful
61542	tables
61543	tablet
61544	tableware
61545	tabloid
61546	tackiness
61551	tacking
61552	tackle
61553	tackling
61554	tacky
61555	taco
61556	tactful
61561	tactical
61562	tactics
61563	tactile
61564	tactless
61565	tadpole
61566	taekwondo
61611	tag
61612	tainted
61613	take
61614	taking
61615	talcum
61616	talisman
61621	tall
61622	talon
61623	tamale
61624	tameness
61625	tamer
61626	tamper
61631	tank
61632	tanned
61633	tannery
61634	tanning
61635	tantrum
61636	tapeless
61641	tapered
61642	tapering
61643	tapestry
61644	tapioca
61645	tapping
61646	taps
61651	tarantula
61652	target
61653	tarmac
61654	tarnish
61655	tarot
61656	tartar
61661	tartly
61662	tartness
61663	task
61664	tassel
61665	taste
61666	tastiness
62111	tasting
62112	tasty
62113	tattered
62114	tattle
62115	tattling
62116	tattoo
62121	taunt
62122	tavern
62123	thank
62124	that
62125	thaw
62126	theater
62131	theatrics
62132	thee
62133	theft
62134	theme
62135	theology
62136	theorize
62141	thermal
62142	thermos
62143	thesaurus
62144	these
62145	thesis
62146	thespian
62151	thicken
62152	thicket
62153	thickness
62154	thieving
62155	thievish
62156	thigh
62161	thimble
62162	thing
62163	think
62164	thinly
62165	thinner
62166	thinness
62211	thinning
62212	thirstily
62213	thirsting
62214	thirsty
62215	thirteen
62216	thirty
62221	thong
62222	thorn
62223	those
62224	thousand
62225	thrash
62226	thread
62231	threaten
62232	threefold
62233	thrift
62234	thrill
62235	thrive
62236	thriving
62241	throat
62242	throbbing
62243	throng
62244	throttle
62245	throwaway
62246	throwback
62251	thrower
62252	throwing
62253	thud
62254	thumb
62255	thumping
62256	thursday
62261	thus
62262	thwarting
62263	thyself
62264	tiara
62265	tibia
62266	tidal
62311	tidbit
62312	tidiness
62313	tidings
62314	tidy
62315	tiger
62316	tighten
62321	tightly
62322	tightness
62323	tightrope
62324	tightwad
62325	tigress
62326	tile
62331	tiling
62332	till
62333	tilt
62334	timid
62335	timing
62336	timothy
62341	tinderbox
62342	tinfoil
62343	tingle
62344	tingling
62345	tingly
62346	tinker
62351	tinkling
62352	tinsel
62353	tinsmith
62354	tint
62355	tinwork
62356	tiny
62361	tipoff
62362	tipped
62363	tipper
62364	tipping
62365	tiptoeing
62366	tiptop
62411	tiring
62412	tissue
62413	trace
62414	tracing
62415	track
62416	traction
62421	tractor
62422	trade
62423	trading
62424	tradition
62425	traffic
62426	tragedy
62431	trailing
62432	trailside
62433	train
62434	traitor
62435	trance
62436	tranquil
62441	transfer
62442	transform
62443	translate
62444	transpire
62445	transport
62446	transpose
62451	trapdoor
62452	trapeze
62453	trapezoid
62454	trapped
62455	trapper
62456	trapping
62461	traps
62462	trash
62463	travel
62464	traverse
62465	travesty
62466	tray
62511	treachery
62512	treading
62513	treadmill
62514	treason
62515	treat
62516	treble
62521	tree
62522	trekker
62523	tremble
62524	trembling
62525	tremor
62526	trench
62531	trend
62532	trespass
62533	triage
62534	trial
62535	triangle
62536	tribesman
62541	tribunal
62542	tribune
62543	tributary
62544	tribute
62545	triceps
62546	trickery
62551	trickily
62552	tricking
62553	trickle
62554	trickster
62555	tricky
62556	tricolor
62561	tricycle
62562	trident
62563	tried
62564	trifle
62565	trifocals
62566	trillion
62611	trilogy
62612	trimester
62613	trimmer
62614	trimming
62615	trimness
62616	trinity
62621	trio
62622	tripod
62623	tripping
62624	triumph
62625	trivial
62626	trodden
62631	trolling
62632	trombone
62633	trophy
62634	tropical
62635	tropics
62636	trouble
62641	troubling
62642	trough
62643	trousers
62644	trout
62645	trowel
62646	truce
62651	truck
62652	truffle
62653	trump
62654	trunks
62655	trustable
62656	trustee
62661	trustful
62662	trusting
62663	trustless
62664	truth
62665	try
62666	tubby
63111	tubeless
63112	tubular
63113	tucking
63114	tuesday
63115	tug
63116	tuition
63121	tulip
63122	tumble
63123	tumbling
63124	tummy
63125	turban
63126	turbine
63131	turbofan
63132	turbojet
63133	turbulent
63134	turf
63135	turkey
63136	turmoil
63141	turret
63142	turtle
63143	tusk
63144	tutor
63145	tutu
63146	tux
63151	tweak
63152	tweed
63153	tweet
63154	tweezers
63155	twelve
63156	twentieth
63161	twenty
63162	twerp
63163	twice
63164	twiddle
63165	twiddling
63166	twig
63211	twilight
63212	twine
63213	twins
63214	twirl
63215	twistable
63216	twisted
63221	twister
63222	twisting
63223	twisty
63224	twitch
63225	twitter
63226	tycoon
63231	tying
63232	tyke
63233	udder
63234	ultimate
63235	ultimatum
63236	ultra
63241	umbilical
63242	umbrella
63243	umpire
63244	unabashed
63245	unable
63246	unadorned
63251	unadvised
63252	unafraid
63253	unaired
63254	unaligned
63255	unaltered
63256	unarmored
63261	unashamed
63262	unaudited
63263	unawake
63264	unaware
63265	unbaked
63266	unbalance
63311	unbeaten
63312	unbend
63313	unbent
63314	unbiased
63315	unbitten
63316	unblended
63321	unblessed
63322	unblock
63323	unbolted
63324	unbounded
63325	unboxed
63326	unbraided
63331	unbridle
63332	unbroken
63333	unbuckled
63334	unbundle
63335	unburned
63336	unbutton
63341	uncanny
63342	uncapped
63343	uncaring
63344	uncertain
63345	unchain
63346	unchanged
63351	uncharted
63352	uncheck
63353	uncivil
63354	unclad
63355	unclaimed
63356	unclamped
63361	unclasp
63362	uncle
63363	unclip
63364	uncloak
63365	unclog
63366	unclothed
63411	uncoated
63412	uncoiled
63413	uncolored
63414	uncombed
63415	uncommon
63416	uncooked
63421	uncork
63422	uncorrupt
63423	uncounted
63424	uncouple
63425	uncouth
63426	uncover
63431	uncross
63432	uncrown
63433	uncrushed
63434	uncured
63435	uncurious
63436	uncurled
63441	uncut
63442	undamaged
63443	undated
63444	undaunted
63445	undead
63446	undecided
63451	undefined
63452	underage
63453	underarm
63454	undercoat
63455	undercook
63456	undercut
63461	underdog
63462	underdone
63463	underfed
63464	underfeed
63465	underfoot
63466	undergo
63511	undergrad
63512	underhand
63513	underline
63514	underling
63515	undermine
63516	undermost
63521	underpaid
63522	underpass
63523	underpay
63524	underrate
63525	undertake
63526	undertone
63531	undertook
63532	undertow
63533	underuse
63534	underwear
63535	underwent
63536	underwire
63541	undesired
63542	undiluted
63543	undivided
63544	undocked
63545	undoing
63546	undone
63551	undrafted
63552	undress
63553	undrilled
63554	undusted
63555	undying
63556	unearned
63561	unearth
63562	unease
63563	uneasily
63564	uneasy
63565	uneatable
63566	uneaten
63611	unedited
63612	unelected
63613	unending
63614	unengaged
63615	unenvied
63616	unequal
63621	unethical
63622	uneven
63623	unexpired
63624	unexposed
63625	unfailing
63626	unfair
63631	unfasten
63632	unfazed
63633	unfeeling
63634	unfiled
63635	unfilled
63636	unfitted
63641	unfitting
63642	unfixable
63643	unfixed
63644	unflawed
63645	unfocused
63646	unfold
63651	unfounded
63652	unframed
63653	unfreeze
63654	unfrosted
63655	unfrozen
63656	unfunded
63661	unglazed
63662	ungloved
63663	unglue
63664	ungodly
63665	ungraded
63666	ungreased
64111	unguarded
64112	unguided
64113	unhappily
64114	unhappy
64115	unharmed
64116	unhealthy
64121	unheard
64122	unhearing
64123	unheated
64124	unhelpful
64125	unhidden
64126	unhinge
64131	unhitched
64132	unholy
64133	unhook
64134	unicorn
64135	unicycle
64136	unified
64141	unifier
64142	uniformed
64143	uniformly
64144	unify
64145	unimpeded
64146	uninjured
64151	uninstall
64152	uninsured
64153	uninvited
64154	union
64155	uniquely
64156	unisexual
64161	unison
64162	unissued
64163	unit
64164	universal
64165	universe
64166	unjustly
64211	unkempt
64212	unkind
64213	unknotted
64214	unknowing
64215	unknown
64216	unlaced
64221	unlatch
64222	unlawful
64223	unleaded
64224	unlearned
64225	unleash
64226	unless
64231	unleveled
64232	unlighted
64233	unlikable
64234	unlimited
64235	unlined
64236	unlinked
64241	unlisted
64242	unlit
64243	unlivable
64244	unloaded
64245	unloader
64246	unlocked
64251	unlocking
64252	unlovable
64253	unloved
64254	unlovely
64255	unloving
64256	unluckily
64261	unlucky
64262	unmade
64263	unmanaged
64264	unmanned
64265	unmapped
64266	unmarked
64311	unmasked
64312	unmasking
64313	unmatched
64314	unmindful
64315	unmixable
64316	unmixed
64321	unmolded
64322	unmoral
64323	unmovable
64324	unmoved
64325	unmoving
64326	unnamable
64331	unnamed
64332	unnatural
64333	unneeded
64334	unnerve
64335	unnerving
64336	unnoticed
64341	unopened
64342	unopposed
64343	unpack
64344	unpadded
64345	unpaid
64346	unpainted
64351	unpaired
64352	unpaved
64353	unpeeled
64354	unpicked
64355	unpiloted
64356	unpinned
64361	unplanned
64362	unplanted
64363	unpleased
64364	unpledged
64365	unplowed
64366	unplug
64411	unpopular
64412	unproven
64413	unquote
64414	unranked
64415	unrated
64416	unraveled
64421	unreached
64422	unread
64423	unreal
64424	unreeling
64425	unrefined
64426	unrelated
64431	unrented
64432	unrest
64433	unretired
64434	unrevised
64435	unrigged
64436	unripe
64441	unrivaled
64442	unroasted
64443	unrobed
64444	unroll
64445	unruffled
64446	unruly
64451	unrushed
64452	unsaddle
64453	unsafe
64454	unsaid
64455	unsalted
64456	unsaved
64461	unsavory
64462	unscathed
64463	unscented
64464	unscrew
64465	unsealed
64466	unseated
64511	unsecured
64512	unseeing
64513	unseemly
64514	unseen
64515	unselect
64516	unselfish
64521	unsent
64522	unsettled
64523	unshackle
64524	unshaken
64525	unshaved
64526	unshaven
64531	unsheathe
64532	unshipped
64533	unsightly
64534	unsigned
64535	unskilled
64536	unsliced
64541	unsmooth
64542	unsnap
64543	unsocial
64544	unsoiled
64545	unsold
64546	unsolved
64551	unsorted
64552	unspoiled
64553	unspoken
64554	unstable
64555	unstaffed
64556	unstamped
64561	unsteady
64562	unsterile
64563	unstirred
64564	unstitch
64565	unstopped
64566	unstuck
64611	unstuffed
64612	unstylish
64613	unsubtle
64614	unsubtly
64615	unsuited
64616	unsure
64621	unsworn
64622	untagged
64623	untainted
64624	untaken
64625	untamed
64626	untangled
64631	untapped
64632	untaxed
64633	unthawed
64634	unthread
64635	untidy
64636	untie
64641	until
64642	untimed
64643	untimely
64644	untitled
64645	untoasted
64646	untold
64651	untouched
64652	untracked
64653	untrained
64654	untreated
64655	untried
64656	untrimmed
64661	untrue
64662	untruth
64663	unturned
64664	untwist
64665	untying
64666	unusable
65111	unused
65112	unusual
65113	unvalued
65114	unvaried
65115	unvarying
65116	unveiled
65121	unveiling
65122	unvented
65123	unviable
65124	unvisited
65125	unvocal
65126	unwanted
65131	unwarlike
65132	unwary
65133	unwashed
65134	unwatched
65135	unweave
65136	unwed
65141	unwelcome
65142	unwell
65143	unwieldy
65144	unwilling
65145	unwind
65146	unwired
65151	unwitting
65152	unwomanly
65153	unworldly
65154	unworn
65155	unworried
65156	unworthy
65161	unwound
65162	unwoven
65163	unwrapped
65164	unwritten
65165	unzip
65166	upbeat
65211	upchuck
65212	upcoming
65213	upcountry
65214	update
65215	upfront
65216	upgrade
65221	upheaval
65222	upheld
65223	uphill
65224	uphold
65225	uplifted
65226	uplifting
65231	upload
65232	upon
65233	upper
65234	upright
65235	uprising
65236	upriver
65241	uproar
65242	uproot
65243	upscale
65244	upside
65245	upstage
65246	upstairs
65251	upstart
65252	upstate
65253	upstream
65254	upstroke
65255	upswing
65256	uptake
65261	uptight
65262	uptown
65263	upturned
65264	upward
65265	upwind
65266	uranium
65311	urban
65312	urchin
65313	urethane
65314	urgency
65315	urgent
65316	urging
65321	urologist
65322	urology
65323	usable
65324	usage
65325	useable
65326	used
65331	uselessly
65332	user
65333	usher
65334	usual
65335	utensil
65336	utility
65341	utilize
65342	utmost
65343	utopia
65344	utter
65345	vacancy
65346	vacant
65351	vacate
65352	vacation
65353	vagabond
65354	vagrancy
65355	vagrantly
65356	vaguely
65361	vagueness
65362	valiant
65363	valid
65364	valium
65365	valley
65366	valuables
65411	value
65412	vanilla
65413	vanish
65414	vanity
65415	vanquish
65416	vantage
65421	vaporizer
65422	variable
65423	variably
65424	varied
65425	variety
65426	various
65431	varmint
65432	varnish
65433	varsity
65434	varying
65435	vascular
65436	vaseline
65441	vastly
65442	vastness
65443	veal
65444	vegan
65445	veggie
65446	vehicular
65451	velcro
65452	velocity
65453	velvet
65454	vendetta
65455	vending
65456	vendor
65461	veneering
65462	vengeful
65463	venomous
65464	ventricle
65465	venture
65466	venue
65511	venus
65512	verbalize
65513	verbally
65514	verbose
65515	verdict
65516	verify
65521	verse
65522	version
65523	versus
65524	vertebrae
65525	vertical
65526	vertigo
65531	very
65532	vessel
65533	vest
65534	veteran
65535	veto
65536	vexingly
65541	viability
65542	viable
65543	vibes
65544	vice
65545	vicinity
65546	victory
65551	video
65552	viewable
65553	viewer
65554	viewing
65555	viewless
65556	viewpoint
65561	vigorous
65562	village
65563	villain
65564	vindicate
65565	vineyard
65566	vintage
65611	violate
65612	violation
65613	violator
65614	violet
65615	violin
65616	viper
65621	viral
65622	virtual
65623	virtuous
65624	virus
65625	visa
65626	viscosity
65631	viscous
65632	viselike
65633	visible
65634	visibly
65635	vision
65636	visiting
65641	visitor
65642	visor
65643	vista
65644	vitality
65645	vitalize
65646	vitally
65651	vitamins
65652	vivacious
65653	vividly
65654	vividness
65655	vixen
65656	vocalist
65661	vocalize
65662	vocally
65663	vocation
65664	voice
65665	voicing
65666	void
66111	volatile
66112	volley
66113	voltage
66114	volumes
66115	voter
66116	voting
66121	voucher
66122	vowed
66123	vowel
66124	voyage
66125	wackiness
66126	wad
66131	wafer
66132	waffle
66133	waged
66134	wager
66135	wages
66136	waggle
66141	wagon
66142	wake
66143	waking
66144	walk
66145	walmart
66146	walnut
66151	walrus
66152	waltz
66153	wand
66154	wannabe
66155	wanted
66156	wanting
66161	wasabi
66162	washable
66163	washbasin
66164	washboard
66165	washbowl
66166	washcloth
66211	washday
66212	washed
66213	washer
66214	washhouse
66215	washing
66216	washout
66221	washroom
66222	washstand
66223	washtub
66224	wasp
66225	wasting
66226	watch
66231	water
66232	waviness
66233	waving
66234	wavy
66235	whacking
66236	whacky
66241	wham
66242	wharf
66243	wheat
66244	whenever
66245	whiff
66246	whimsical
66251	whinny
66252	whiny
66253	whisking
66254	whoever
66255	whole
66256	whomever
66261	whoopee
66262	whooping
66263	whoops
66264	why
66265	wick
66266	widely
66311	widen
66312	widget
66313	widow
66314	width
66315	wieldable
66316	wielder
66321	wife
66322	wifi
66323	wikipedia
66324	wildcard
66325	wildcat
66326	wilder
66331	wildfire
66332	wildfowl
66333	wildland
66334	wildlife
66335	wildly
66336	wildness
66341	willed
66342	willfully
66343	willing
66344	willow
66345	willpower
66346	wilt
66351	wimp
66352	wince
66353	wincing
66354	wind
66355	wing
66356	winking
66361	winner
66362	winnings
66363	winter
66364	wipe
66365	wired
66366	wireless
66411	wiring
66412	wiry
66413	wisdom
66414	wise
66415	wish
66416	wisplike
66421	wispy
66422	wistful
66423	wizard
66424	wobble
66425	wobbling
66426	wobbly
66431	wok
66432	wolf
66433	wolverine
66434	womanhood
66435	womankind
66436	womanless
66441	womanlike
66442	womanly
66443	womb
66444	woof
66445	wooing
66446	wool
66451	woozy
66452	word
66453	work
66454	worried
66455	worrier
66456	worrisome
66461	worry
66462	worsening
66463	worshiper
66464	worst
66465	wound
66466	woven
66511	wow
66512	wrangle
66513	wrath
66514	wreath
66515	wreckage
66516	wrecker
66521	wrecking
66522	wrench
66523	wriggle
66524	wriggly
66525	wrinkle
66526	wrinkly
66531	wrist
66532	writing
66533	written
66534	wrongdoer
66535	wronged
66536	wrongful
66541	wrongly
66542	wrongness
66543	wrought
66544	xbox
66545	xerox
66546	yahoo
66551	yam
66552	yanking
66553	yapping
66554	yard
66555	yarn
66556	yeah
66561	yearbook
66562	yearling
66563	yearly
66564	yearning
66565	yeast
66566	yelling
66611	yelp
66612	yen
66613	yesterday
66614	yiddish
66615	yield
66616	yin
66621	yippee
66622	yo-yo
66623	yodel
66624	yoga
66625	yogurt
66626	yonder
66631	yoyo
66632	yummy
66633	zap
66634	zealous
66635	zebra
66636	zen
66641	zeppelin
66642	zero
66643	zestfully
66644	zesty
66645	zigzagged
66646	zipfile
66651	zipping
66652	zippy
66653	zips
66654	zit
66655	zodiac
66656	zombie
66661	zone
66662	zoning
66663	zookeeper
66664	zoologist
66665	zoology
66666	zoom

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [NonGNU ELPA] New package: dw.el
  2021-03-31 11:28   ` D
@ 2021-03-31 11:42     ` Jean Louis
  2021-03-31 16:24       ` D
  0 siblings, 1 reply; 16+ messages in thread
From: Jean Louis @ 2021-03-31 11:42 UTC (permalink / raw)
  To: D; +Cc: bugs, emacs-devel

* D <d.williams@posteo.net> [2021-03-31 14:29]:
> Hello,
> 
> word lists need to adhere to a certain format.  Each line must begin
> with the die roll the word corresponds to, such as
> 11111	abacus
> 11112	abdomen
> 11113	abdominal
> 11114	abide

User is supposed to have the list, that does not seem practical. It
means package is not self contained and user has to download something
from somewhere.

Why don't you generate those numbers on the fly by taking random lines
from a supplied word list?

-- 
Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns




^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [NonGNU ELPA] New package: dw.el
  2021-03-31 11:42     ` Jean Louis
@ 2021-03-31 16:24       ` D
  2021-03-31 19:43         ` Jean Louis
  0 siblings, 1 reply; 16+ messages in thread
From: D @ 2021-03-31 16:24 UTC (permalink / raw)
  To: bugs; +Cc: emacs-devel


> User is supposed to have the list, that does not seem practical. It
> means package is not self contained and user has to download something
> from somewhere.

You need a diceware world list for the diceware method, yes.  That's
why I added the appropriate links to the package description.

> Why don't you generate those numbers on the fly by taking random lines
> from a supplied word list?

That is of course possible, in principle.  On the other hand it's
generally not a good idea to use a dictionary list for this.  The
reasons for that are twofold: one only the first 6^5 words are
used. Using more would require using more than 5 dice per word.  In a
dictionary file like words, this would essentially guarantee that all
words start with [Aa].  On top of that, dictionary files contain
incredibly many variations of the same word with minor spelling and
casing differences, which of course also negatively affects entropy.
Hence it's good to stick to word lists deliberately generated for
diceware passphrase generation.

I could mitigate this problem by providing a word list the default
value.  This would not even require an extra file as the word list is
internalized as an association list.  That way people who want to try
out diceware for the first time don't have to bother with external
resources and people who just want to try it out get a plug & play
experience.



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [NonGNU ELPA] New package: dw.el
  2021-03-31 16:24       ` D
@ 2021-03-31 19:43         ` Jean Louis
  2021-03-31 23:42           ` D
  0 siblings, 1 reply; 16+ messages in thread
From: Jean Louis @ 2021-03-31 19:43 UTC (permalink / raw)
  To: D; +Cc: emacs-devel

* D <d.williams@posteo.net> [2021-03-31 19:25]:
> I could mitigate this problem by providing a word list the default
> value.  This would not even require an extra file as the word list is
> internalized as an association list.  That way people who want to try
> out diceware for the first time don't have to bother with external
> resources and people who just want to try it out get a plug & play
> experience.

I would say, why not, you could just provide a list inside of a
package, just as in good old days.

-- 
Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns

Sign an open letter in support of Richard M. Stallman
https://rms-support-letter.github.io/




^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [NonGNU ELPA] New package: dw.el
  2021-03-31 19:43         ` Jean Louis
@ 2021-03-31 23:42           ` D
  2021-04-01  9:17             ` Jean Louis
  0 siblings, 1 reply; 16+ messages in thread
From: D @ 2021-03-31 23:42 UTC (permalink / raw)
  To: Jean Louis; +Cc: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 780 bytes --]

I added a builtin wordlist.  Adding
(with-eval-after-load 'dw
  (setq-default dw-current-wordlist dw-eff-large))

to your init makes the package self-contained without the need of
downloading an external file.

On 31/03/2021 21:43, Jean Louis wrote:
> * D <d.williams@posteo.net> [2021-03-31 19:25]:
>> I could mitigate this problem by providing a word list the default
>> value.  This would not even require an extra file as the word list is
>> internalized as an association list.  That way people who want to try
>> out diceware for the first time don't have to bother with external
>> resources and people who just want to try it out get a plug & play
>> experience.
> 
> I would say, why not, you could just provide a list inside of a
> package, just as in good old days.
> 

[-- Attachment #2: dw.el --]
[-- Type: text/x-emacs-lisp, Size: 194499 bytes --]

;;; dw.el --- Diceware passphrase generation commands  -*- lexical-binding: t; -*-

;; Copyright (C) 2017-2020  D. Williams

;; Author: D. Williams <d.williams@posteo.net>
;; Maintainer: D. Williams <d.williams@posteo.net>
;; Keywords: convenience, games
;; Version: 1.1.0
;; Homepage: https://github.com/integral-dw/dw-passphrase-generator
;; Package-Requires: ((emacs "25.1"))

;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.

;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;; GNU General Public License for more details.

;; You should have received a copy of the GNU General Public License
;; along with this program.  If not, see <https://www.gnu.org/licenses/>.

;;; Commentary:

;; This package implements Arnold G. Reinhold's diceware method for
;; Emacs.  For more information regarding diceware, see
;; http://world.std.com/~reinhold/diceware.html
;; Diceware (C) 1995-2020 Arnold G. Reinhold

;; IMPORTANT: Please read the below section to know how to use this
;; package, as it requires additional files *NOT* included in the base
;; install.  Apart from the listed requirements, this package requires (ideally)
;; one or more casino-grade dice for true random number generation.


;; Basic setup:
;;
;; This package requires a so called wordlist to function as intended.
;; This file serves as the pool of random words from which your secure
;; passphrase is generated.  Put a wordlist for passphrase generation
;; into the directory specified by ‘dw-directory’.  It will be
;; automatically generated the first time this package is loaded.  If
;; you don't already have a wordlist, you can find two common, English
;; wordlists below:

;; https://www.eff.org/files/2016/07/18/eff_large_wordlist.txt
;; http://world.std.com/%7Ereinhold/diceware.wordlist.asc

;; The above wordlist from the EFF is also provided as a
;; pre-internalized form in ‘dw-eff-large’.  If you prefer to try out
;; the package *without* having to download a separate file, just add
;; the following to your init:

;; (with-eval-after-load 'dw
;;   (setq-default dw-current-wordlist dw-eff-large))

;; The former generates passphrases with long, common words while the
;; latter favors short words and letter combinations, which may be
;; harder to remember but quicker to type.  You can find wordlists
;; for many other languages here:

;; http://world.std.com/~reinhold/diceware.html#Diceware%20in%20Other%20Languages|outline

;; Basic usage:
;;
;; 1) Choose a buffer to write your passphrase in (temporarily).
;; 2) Roll your dice, reading them in some consistent way (e.g. left to
;;    right) every time, and typing them neatly separated in groups of
;;    five.  You can separate them using any character matched by
;;    ‘dw-separator-regexp’ (whitespace by default).  For example, if you
;;    rolled ⚄⚂⚀⚅⚅, type "53166".  You will need five times as many die
;;    rolls as you want words in your passphrase (six being a decent
;;    amount for normal passphrases).
;; 3) Mark the region where you wrote down your sequence of rolls and
;;    use the command ‘dw-passgen-region’.  You may need to choose a
;;    wordlist depending on your setup.  See the documentation for
;;    ‘dw-named-wordlists’ below for how to skip this step and set up
;;    a default wordlist.

;; This package provides the following interactive commands:
;;
;; * dw-passgen-region
;;
;;    The all-in-one interactive passphrase generation command, and
;;    most likely everything you'll ever need from this package.  Just
;;    mark the region containing your written down die rolls and run
;;    the command.

;; * dw-set-wordlist
;;
;;     Manually set a wordlist without invoking ‘dw-passgen-region’,
;;     and regardless of whether a wordlist has been set for the
;;     current buffer before.

;; Final notes:
;; The package itself is not at all required to create diceware
;; passphrases, but automates the table lookup bit of it.

;;; Code:

(require 'seq)
(require 'wid-edit)
(eval-when-compile
  (require 'cl-lib))

(defgroup dw nil
  "Generate diceware passphrases."
  :group 'convenience)

;;; Package-specific errors
;; The specifics and conventions are only relevant if you are
;; interested in writing code depending on this package.  In that
;; case, see the README for a complete documentation of errors and
;; their conventions.

;; Input Errors
(define-error 'dw-bad-roll
  "Invalid die roll"
  'user-error)
(define-error 'dw-incomplete-roll
  "Not enough die rolls for a complete word"
  'dw-bad-roll)
(define-error 'dw-too-short-passphrase
  "Too few words for a secure passphrase"
  'dw-bad-roll)
;; File Errors
(define-error 'dw-bad-wordlist
  "Broken wordlist")
;; Misc RNG Errors
(define-error 'dw-incomplete-int
  "Not enough die rolls for the given integer range"
  'dw-bad-roll)
(define-error 'dw-overflow
  "Too many consecutive die rolls, not implemented")

\f
;;; Package-specific warnings

(defun dw--warn-short-words ()
  "Report a warning for passphrases with too many short words."
  (delay-warning '(dw too-many-short-words)
                 (concat "The generated passphrase has many short words. "
                         "Consider discarding it.")))

(defun dw--warn-bad-random-characters ()
  "Report a warning for incomplete character lookup strings.
This warning is triggered if an entry in ‘dw-random-characters’
unexpectedly cannot assign a die roll to a character, which is
only allowed for entries with a non-nil LAX value."
(delay-warning '(dw bad-dw-random-characters)
               (concat "There were unused rolls. "
                       "‘dw-random-characters’ is probably misconfigured.")))


\f
;;; Constants

(defconst dw--dice-number 5
  "Number of die rolls needed for one word in a passphrase.")

(defconst dw--conversion-limit 10
  "Length of the largest string that allows direct integer conversion.
This constant also governs the maximum number of dice usable to
generate a random integer with ‘dw-generate-ranint’.")

(defconst dw--wordlist-length (expt 6 dw--dice-number)
  "Number of entries needed for a valid wordlist.")

\f
;;; User-facing variables
;; Core API

;;;###autoload
(put 'dw-salt 'risky-local-variable t)
(defcustom dw-salt nil
  "Unique, personal string to append to passphrases.
Salt is a string of non-secret data to append to your
passphrases.  It serves to prevent dictionary attacks, and makes
it harder for potential attackers to brute force multiple keys at
once.

While it is not a good idea to use the same passphrase for
everything, it is best to use the same salt or everything, as it
frees precious mental real estate.  You can use a phone number, a
random string of characters, or anything else for this purpose,
as long as it is sufficiently unique.

It is also a great way to fulfill those pesky demands of some
services to have a special character, a number and an uppercase
character in it without adding mental overhead.

If non-nil, interactive commands should ask whether they should
append the salt, depending on the value of ‘dw-use-salt’.

Appended salt is separated from the remaining passphrase the same
way individual words are, using ‘dw-passphrase-separator’."
  :type '(choice :format "Personal salt: %[Value Menu%] %v"
                (const :tag "none" nil)
                (string :tag "custom string"
                        :format "%v"))
  :risky t
  :group 'dw)

(defcustom dw-use-salt t
  "Non-nil means to (conditionally) append ‘dw-salt’ to generated passphrases.
If set to the symbol ‘prompt’, interactive commands will prompt
the user whether they should append salt.  Any other non-nil
value is equivalent to t, meaning salt is appended automatically.

Appended salt is separated from the remaining passphrase the same
way individual words are, using ‘dw-passphrase-separator’.

This variable has no effect if ‘dw-salt’ is nil."
  :type '(choice :format "Append salt interactively: %[Value Menu%] %v"
                 (const :tag "always" t)
                 (const :tag "ask every time" 'prompt)
                 (const :tag "never" nil))
  :group 'dw)

(defcustom dw-separator-regexp "\\s-"
  "Regular expression to match a single separator character.
Essentially, this regexp defines which characters (apart from the
numerals 1 to 6) are valid to appear in die roll strings.
Allowing separators serves as a convenience for the user to be
able to keep long sequences of die rolls readable on input."
  :type 'regexp
  :group 'dw)

(defcustom dw-minimum-word-count 5
  "Minimum length of a good passphrase (measured in words rolled).

Generating any passphrase shorter than this value will signal an
error by default.

It is generally a bad idea to set this value any lower than 5, as
permitting any shorter passphrase renders diceware passphrase
generation pointless.  It may however be reasonable to set it to
6, the commonly recommended minimum passphrase length."
  :type '(choice
          :format "Minimum security level: %[Value Menu%] %v"
          (const :format "%t (%v words)"
                 :tag "lax" 5)
          (const :format "%t (%v words)"
                 :tag "moderate" 6)
          (const :format "%t (%v words)"
                 :tag "high" 7)
          (const :format "%t (%v words)"
                 :tag "too high to justify using this package" 8)
          (const :format "%t (%v words)"
                 :tag "random essay generator" 9))
  :group 'dw)

;; Extended passphrase generation
;;;###autoload
(put 'dw-random-characters 'risky-local-variable t)
(defcustom dw-random-characters
  '((special-characters "945678^~!#$%=&*()-}+[]\\{>:;\"'<3?/012")
    (numerals "0123456789" . t)
    (alphanumeric-uppercase "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")
    (alphanumeric-lowercase "abcdefghijklmnopqrstuvwxyz0123456789"))
  "Alist of strings to randomly choose characters from.

Each element should be a dotted list of the form
\(NAME STRING . LAX)

where NAME (a symbol) is a descriptive name for the STRING’s
contents.  ‘dw-ranstring-region’ will prompt for these
names (with completion).  Choosing the symbol ‘default’ as a name
causes the particular string to always be the default value when
prompted.

LAX, if non-nil, does not enforce the length of STRING to be a
power of 6.  As a consequence, some rolls will fail to produce a
result.

Remark: The number of die rolls needed to generate a single
character increases logarithmically with the number of
characters: Less than 7 characters require 1 die per roll, less
than 36 two, etc.  Some character numbers may produce a high
failure rate (in particular values slightly above 6^n/2), which
can double the (average) number of dice per successfully generated
character."
  :type '(alist
          :key-type (symbol :format "Name: %v" :value default)
          :value-type
          (cons :validate dw--validate-ran-chars
                (string :format "Available characters: %v")
                (choice :format "Match die rolls: %[Toggle%] %v"
                        (const :tag "lax" t)
                        (const :tag "strict" nil))))
  :risky t
  :group 'dw)

(defun dw--validate-ran-chars (cons-widget)
  "Signal an error if string in CONS-WIDGET is unsafe to use."
  (or (dw--validate-ran-string-length cons-widget)
      (dw--validate-ran-string-uniq cons-widget)))

(defun dw--validate-ran-string-length (cons-widget)
  "Check that the car of CONS-WIDGET is a 6^N long string.
If the cdr (LAX) is non-nil, return nil instead.

Note for the technically inclined: In principle it may as well be
okay for non-lax (\"strict\") strings to *divide* a power of 6
instead of actually *being* a power of 6.  However, the number of
die rolls needed per character only increases on average for all
reasonable number ranges."
  (let* ((current-cons (widget-value cons-widget))
         (str-length (length (car current-cons)))
         (lax (cdr current-cons)))
    (cond
     (lax nil)
     ((/= str-length (expt 6 (dw-required-dice str-length)))
      (widget-put cons-widget
                  :error "Non-lax strings must be a power of 6 long")
      cons-widget))))

(defun dw--validate-ran-string-uniq (cons-widget)
  "Check that the string in the car of CONS-WIDGET has no repeating chars."
  (let* ((current-cons (widget-value cons-widget))
         (ran-string (car current-cons))
         (minimized-string (concat (seq-uniq ran-string))))
    (unless (string= ran-string minimized-string)
      (setf (car current-cons) minimized-string)
      (widget-put cons-widget
                  :error "Characters must be unique in string")
      (widget-value-set cons-widget current-cons)
      (widget-setup)
      cons-widget)))


;; Interactive use
;;;###autoload
(put 'dw-directory 'risky-local-variable t)
(defcustom dw-directory (locate-user-emacs-file "diceware")
  "Default directory for diceware wordlists for interactive functions.
If this directory is not present, it is automatically generated."
  :type 'directory
  :risky t
  :set (lambda (symbol value)
         (condition-case nil
             (make-directory value)
           (file-already-exists))
         (set-default symbol value))
  :group 'dw)

(defcustom dw-named-wordlists nil
  "Alist of personal wordlists for interactive use.

Each element is a dotted list of the form
\(NAME FILE . CODING)

where NAME is the wordlist’s name used interactively (a symbol),
FILE is a string containing the actual filename of the wordlist
and CODING is the encoding of the file, nil being equivalent to
`utf-8'.

NAME is what interactive commands will prompt for to access a
particular wordlist.

If a wordlist has the special name ‘default’, interactive
commands will use it by default instead of prompting.  Similarly,
if the alist has only one entry, that wordlist is treated as the
default wordlist, regardless of the name.

FILE, if relative, is relative to ‘dw-directory’."
  :type '(alist
          :key-type (symbol :format "Wordlist name: %v" :value default)
          :value-type
          (cons (string :format "Wordlist file: %v")
                (choice
                 :format "Coding: %[Value Menu%] %v"
                 (const :tag "Default (‘utf-8’)" nil)
                 (coding-system
                  :tag "Other coding system")))) ;; TODO: validate string argument
  :group 'dw)

(defcustom dw-passphrase-separator "\s"
  "String inserted between words in interactively generated passphrases.
It is generally not recommended to drop separators (using the
empty string), but possible.  Either way, it is best to decide
for one way to do it and stick to that."
  :type '(string :value "\s")
  :group 'dw)

(defcustom dw-capitalize-words nil
  "Non-nil means capitalize words in interactively generated passphrases."
  :type '(boolean)
  :group 'dw)

\f
;;; Internal variables

(defvar dw-current-wordlist nil
  "Current internalized wordlist for interactive use.
This variable is used by ‘dw-passgen-region’ to access and store
the most recently used wordlist.

It is usually unnecessary to set this variable directly; it is
automatically initialized by ‘dw-passgen-region’.  If you want to
initialize or manipulate it from within an interactive command,
use ‘dw-set-wordlist’.  If you want to set a default wordlist to
be read from a file, see ‘dw-named-wordlists’.  Consequently,
setting this variable is only necessary if you want to set it to
some previously computed alist (as returned by ‘dw-build-alist’).

If interactive commands require a wordlist, they should use the
value of this variable.  If they use a different wordlist
generated by ‘dw-build-alist’, they should set this variable.")

\f
;;; Internal predicates

(defun dw--valid-rolls-p (string)
  "Return t if STRING is a nonempty sequence of digits from 1 to 6."
  (and (stringp string)
       (not (seq-empty-p string))
       (not (dw--invalid-chars-list string))))

\f
;;; Internal string processing

(defun dw--strip-separators (string)
  "Remove separator chars from STRING.
Which chars constitute as such is governed by
‘dw-separator-regexp’."
  (replace-regexp-in-string
   dw-separator-regexp "" string))

(defun dw--invalid-chars-list (string)
  "Return a list of invalid die rolls in STRING.
The resulting list contains all characters that are not digits
from 1 to 6."
  (seq-difference string "123456"))

(defun dw--internalize-rolls (string)
  "Convert a STRING of die rolls to a base-6 int."
  (string-to-number
   (replace-regexp-in-string "6" "0" string) 6))

;; Sadly, ‘number-to-string’ has no optional BASE argument.
(defun dw--format-die-rolls (int)
  "Convert internally used INT to corresponding string of die rolls."
  (when (>= int 0)
    (let (digits)
      (dotimes (_ dw--dice-number)
          (push (% int 6) digits)
        (setq int (/ int 6)))
      (replace-regexp-in-string "0" "6"
                                (mapconcat #'number-to-string digits "")))))

(defun dw--parse-string (user-string &optional noerror)
  "Parse a USER-STRING of die rolls.

USER-STRING is stripped of junk chars specified by
‘dw-separator-regexp’ and then converted into a list of keys for an
internalized diceware wordlist (an alist).

If the optional second argument NOERROR is non-nil, then return
nil for invalid strings instead of signaling an error."
  (let* ((string (dw--strip-separators user-string))
         (total-rolls (length string))
         error-data)
    (cond
     ((not (dw--valid-rolls-p string))
      (setq error-data
            (if (seq-empty-p string)
                `(dw-incomplete-roll 0 ,dw--dice-number)
              `(dw-bad-roll
                ,(char-to-string
                  (car (dw--invalid-chars-list string)))))))
     ((/= (% total-rolls dw--dice-number) 0)
      (setq error-data
            `(dw-incomplete-roll
              ,total-rolls
              ,(* dw--dice-number
                  (ceiling total-rolls dw--dice-number))))))
    (cond ((and error-data noerror) nil)
          (error-data
           (signal (car error-data) (cdr error-data)))
          (t (mapcar #'dw--internalize-rolls
            (seq-partition string dw--dice-number))))))

\f
;;; Internal wordlist parsing

;; This function is taken from rejeep’s f.el.
(defun dw--read (path &optional coding)
  "Read text file located at PATH, using CODING.
Return the decoded text as multibyte string.

CODING defaults to ‘utf-8’."
  (decode-coding-string
   (with-temp-buffer
     (set-buffer-multibyte nil)
     (setq buffer-file-coding-system 'binary)
     (insert-file-contents-literally path)
     (buffer-substring-no-properties (point-min) (point-max)))
   (or coding 'utf-8)))

(defun dw--read-wordlist (path &optional coding)
  "Internalize plain text wordlist at PATH using CODING.
Return the resulting intermediate list for further processing.

CODING defaults to ‘utf-8’.

Each non-empty line of the file should be of the form
  ROLL WORD

where ROLL is a sequence of five digits from 1 to 6, representing
one of the 6^5 (7776) possible die rolls.  WORD should be a
sequence of (non-whitespace) characters to be used in the
passphrase for that particular ROLL.

Each element of the returned list is a list of strings
corresponding to one (non-empty) line in the file.  Each line is
in return segmented at every space and horizontal tab.

This function is not supposed to be used by itself.  In order to
access a diceware wordlist from a file, see `dw-build-alist'."
  (let ((dice-table (dw--read path coding)))
    (mapcar (lambda (x) (split-string x "[ \t]+" t "[ \t]+"))
            (split-string dice-table "[\f\r\n\v]+" t))))

(defun dw--parse-list (read-list)
  "Parse raw construct READ-LIST, forming a proper diceware alist.
READ-LIST is sanitized before conversion, so that junk entries
are ignored.

This function is not supposed to be used by itself.  In order to
access a diceware wordlist from a file, see `dw-build-alist'."
  (mapcar (lambda (x)
            (cons (dw--internalize-rolls (elt x 0))
                  (elt x 1)))
          (seq-filter
           (lambda (x) (and (dw--valid-rolls-p (car x))
                            (= (length (car x)) dw--dice-number)))
           read-list)))

\f
;;; Checkers
(defun dw--check-passlist (passlist &optional noerror)
  "Check PASSLIST for issues and return it.

If the optional second argument NOERROR is non-nil, then return
nil instead of raising an error for an unusable PASSLIST."
  (let ((word-count (length passlist))
        (pass-length (length (apply #'concat passlist)))
        error-data)
    (cond
     ((< word-count dw-minimum-word-count)
      (setq error-data
            `(dw-too-short-passphrase ,word-count ,dw-minimum-word-count)))
     ;; Taking the estimate from the website (that trying to
     ;; brute-force the wordlist should be more efficient than the
     ;; easier to come up with method of trying every passphrase up to
     ;; the actual length L of the passphrase) yields the following
     ;; estimate (for N words in a phrase and an alphabet of size A):
     ;;
     ;; 6^(5N) ≤ 1 + A^1 + A^2 + ... + A^(L-1) = (A^L - 1)/(A - 1)
     ;;
     ;; Which (approximately) simplifies to
     ;;
     ;; L ≥ 5N/log6(A) + 1.
     ;;
     ;; Assuming A=27 (latin alphabet + SPC), you get the below.  This
     ;; is slightly more strict for 8 words than the homepage's
     ;; recommendation, but I can reason this one more confidently.
     ((< pass-length (round (1+ (* word-count 2.72))))
      (dw--warn-short-words)))
    (cond ((and error-data noerror)
           nil)
          (error-data
           (signal (car error-data) (cdr error-data)))
          (t
           passlist))))

(defun dw--check-wordlist (alist &optional noerror)
  "Check internalized wordlist ALIST for issues and return it.

If the optional second argument NOERROR is non-nil, then return
nil instead of raising an error for an unusable ALIST."
  (let ((wordlist-length (length alist))
        (required-keys (number-sequence 0 (1- dw--wordlist-length)))
        (key-list (mapcar #'car alist))
        missing-keys
        error-data)
    (cond
     ((< wordlist-length dw--wordlist-length)
      (setq error-data `(dw-bad-wordlist
                         (< ,wordlist-length ,dw--wordlist-length))))
     ((> wordlist-length dw--wordlist-length)
      (setq error-data `(dw-bad-wordlist
                         (> ,wordlist-length ,dw--wordlist-length))))
     ((not (equal key-list required-keys))
      (setq missing-keys
            (seq-filter #'identity
                        (cl-mapcar (lambda (x y) (and (/= x y) x))
                              required-keys
                              key-list)))
      (setq error-data `(dw-bad-wordlist
                         ,(dw--format-die-rolls (car missing-keys))))))
    (cond ((and error-data noerror)
           nil)
          (error-data
           (signal (car error-data) (cdr error-data)))
          (t
           alist))))

\f
;;; Basic public API

(defun dw-build-alist (path &optional default-dir coding noerror)
  "Read a plain text wordlist at PATH and convert to an internalized alist.

Each non-empty line of the file should be of the form
  ROLL WORD

where ROLL is a sequence of five digits from 1 to 6, representing
one of the 6^5 (7776) possible die rolls.  WORD should be a
sequence of (non-whitespace) characters to be used in the
passphrase for that particular ROLL.  It must be separated from
ROLL by at least one space or tab character.  Both may be
preceded/followed by an arbitrary amount of whitespace.

Empty lines (as well as lines with invalid contents) are treated
as junk and ignored.

DEFAULT-DIR, if non-nil, is the directory to start with if PATH
is relative.  It defaults to the current buffer’s value of
‘default-directory’.

CODING, if non-nil, is the coding system used for the wordlist.
It defaults to ‘utf-8’.

If the optional fourth argument NOERROR is non-nil, then return
nil instead of raising an error in case of the wordlist being
either invalid or incomplete."
  (let ((dice-file (expand-file-name path default-dir)))

    (dw--check-wordlist
     (sort (dw--parse-list
            (dw--read-wordlist dice-file coding))
           (lambda (x y) (< (car x) (car y))))
     noerror)))

(defun dw-generate-passlist (string alist &optional noerror)
  "Generate a list of words from a STRING of die rolls.
ALIST should be an internalized wordlist generated by
‘dw-build-alist’.  The result is a list of words forming the
actual passphrase.

If the optional third argument NOERROR is non-nil, then return
nil instead of raising an error in case of STRING being either
invalid or incomplete."
  (dw--check-passlist
   (mapcar (lambda (x) (cdr (assq x alist)))
           (dw--parse-string string noerror))
   noerror))

(defun dw-generate-passphrase (string alist &optional separator strfun)
  "Convert a STRING of die rolls to a complete passphrase.
STRING should be a sequence of die rolls meant for passphrase
generation.  ALIST should be an internalized wordlist as
generated by ‘dw-build-alist’.

Words in the passphrase will be separated by the optional
argument SEPARATOR, if non-nil.  SEPARATOR should be a string.
Its default value is \"\\s\".

If the optional fourth argument STRFUN is non-nil, apply STRFUN
to all words in the passphrase.  It may be any kind of string
function of one variable."
  (let ((passlist (dw-generate-passlist string alist))
        (separator (or separator "\s"))
        (wordfun (or strfun #'identity)))

    (mapconcat wordfun passlist separator)))

\f
;;; Additional public functions

(defun dw-required-dice (n)
  "Minimum number of dice to randomly choose between N possible outcomes."
  (ceiling (log n 6)))

(defun dw-generate-ranint (string maxint &optional noerror)
  "Convert STRING of die rolls to a random int from 0 to MAXINT.
STRING is expected to be a sequence of die rolls.
MAXINT is not included in the random number range.
If STRING does not produce a valid value, return nil.

STRING must contain at least log6(MAXINT) die rolls, rounded up.
It may contain more, however (up to a machine-dependent limit).

Unless MAXINT is a number of the form 2^a * 3^b , there is no way
to map all outcomes N dice can produce evenly and exhaustively at
the same time.  Hence, on occasion random number generation will
fail, producing nil as an outcome.  Since the failure chance can
reach up to 50%, it is recommended to choose an appropriate
MAXINT.

If the optional third argument NOERROR is non-nil, then return
nil instead of raising an error in case of STRING."

  (let* ((string (dw--strip-separators string))
         (dice-num (length string))
         (min-dice (dw-required-dice maxint))
         random-int
         error-data)
    (cond ((< dice-num min-dice)
           (setq error-data
                 `(dw-incomplete-int ,dice-num ,min-dice)))
          ((not (dw--valid-rolls-p string))
           (setq error-data
                 `(dw-bad-roll
                   ,(char-to-string (car (dw--invalid-chars-list string))))))
          ;; Does the entire dice string fit into a fixnum int?
          ((< dice-num dw--conversion-limit)
           (setq random-int (dw--internalize-rolls string))
           (if (< random-int (% (expt 6 dice-num) maxint))
               (setq random-int nil)
             (setq random-int (% random-int maxint))))
          ;; With bignums in Emacs 27.1, I could in principle rely on
          ;; arbitrary integer arithmetic.  However, using bignums
          ;; for this is immensely wasteful, especially since this can
          ;; easily be done with fixnums using simple modulo
          ;; arithmetic.  However, it's a feature not worth needlessly
          ;; implementing, especially since this package has a history
          ;; of accumulating needless complexity.  I'll support it
          ;; once someone opens an issue.
          (t
           (setq error-data
                 `(dw-overflow ,dice-num ,dw--conversion-limit))))
    (when (and error-data (not noerror))
      (signal (car error-data) (cdr error-data)))
    random-int))

\f
;;; Private functions for misc. interactive commands
(defvar dw--wordlist-history nil
  "Minibuffer history for previously used wordlists.")

(defun dw--prompt-wordlist ()
  "Read a named wordlist in the minibuffer, with completion.
Returns the name of the wordlist as a string."
  (let* ((names (mapcar #'car dw-named-wordlists))
         (default-list (if (memq 'default names)
                           "default"
                         (or (car dw--wordlist-history)
                             (symbol-name (car names)))))
         symbol-string)
    (setq symbol-string
          (completing-read
           ;; REVIEW: should it be "(default symbol-name)" or
           ;; "(default ‘symbol-name’)"?
           (format "Wordlist (default ‘%s’): " default-list)
           names nil t nil 'dw--wordlist-history default-list))
    (add-to-history 'dw--wordlist-history symbol-string)
    (intern symbol-string)))

(defun dw--prompt-wordlist-file ()
  "Read a wordlist filename, with completion.
Return a mockup entry of ‘dw-named-wordlists’ for internal
processing."
  (let ((file-name
         (read-file-name "Read wordlist file: " dw-directory dw-directory t)))
    (unless (file-regular-p file-name)
      (signal 'dw-bad-wordlist
              (list 'file-regular-p file-name)))
    (list 'ad-hoc file-name)))

(defun dw--generate-charlist (dice-string possible-chars)
  "Convert DICE-STRING into a random sequence of POSSIBLE-CHARS.

Return a cons of the form
\(STRING . RNG-FAILURES)

where STRING is the converted random char sequence, and
RNG-FAILURES is the number of failed character generations."
  (let* ((char-num (length possible-chars))
         (rng-failures 0)
         rand-pos
         rand-chars)
    ;; Convert die rolls to characters.
    (dolist (roll (seq-partition dice-string (dw-required-dice char-num)))
      (setq rand-pos
            (condition-case error
                (dw-generate-ranint roll char-num)
              ;; Inform the user if the number of rolls does not match the
              ;; expected format.
              (dw-incomplete-int
               (message "%s (%i/%i)."
                        "Region is missing die rolls for one additional character"
                        (elt error 1) (elt error 2))
               ;; This edge case is not the RNG's fault
               t)))
      (cond
       ((integerp rand-pos)
        (push (elt possible-chars rand-pos) rand-chars))
       ((not rand-pos)
        (setq rng-failures (1+ rng-failures)))))
    (cons (concat (nreverse rand-chars))
          rng-failures)))

(defun dw--append-salt-maybe (passphrase)
  "Conditionally append ‘dw-salt’ to PASSPHRASE.

Whether this happens automatically or requires user input is
governed by ‘dw-use-salt’, which see."
  (if dw-salt
      (cl-case dw-use-salt
        (prompt
         (if (y-or-n-p "Append salt? ")
             (concat passphrase dw-passphrase-separator dw-salt)
           passphrase))
        ((nil)
         passphrase)
        (t
         (concat passphrase dw-passphrase-separator dw-salt)))
    passphrase))

(defvar dw--random-character-history nil
  "Minibuffer history for previously used generation strings.")

(defun dw--prompt-random-chatacters ()
  "Read an entry from ‘dw-random-characters’, with completion.
Return a cons cell of the form (STRING . LAX), see ‘dw-random-characters’."
  (let* ((names (mapcar #'car dw-random-characters))
         (default-string (if (memq 'default names)
                             "default"
                           (or (car dw--random-character-history)
                               (symbol-name (car names)))))
         symbol-string)
    (setq symbol-string
          (completing-read
           (format "Random string of (default %s): "
                   default-string)
           names nil t nil 'dw--random-character-history default-string))
    (add-to-history 'dw--random-character-history symbol-string)
    (cdr
     (assq (intern symbol-string)
           dw-random-characters))))

\f
;;; Interactive commands
;;;###autoload
(defun dw-set-wordlist (&optional use-default)
  "Set a (named) wordlist for interactive passphrase generation.
This function always returns nil.

Named wordlists are specified by ‘dw-named-wordlists’.  If
‘dw-named-wordlists’ is nil, prompt for a file to use, with
‘dw-directory’ as the default directory.

If the prefix argument USE-DEFAULT is non-nil, use the default
wordlist, if available.  Otherwise, prompt the user for which
wordlist to use.

This function specifically manipulates the active wordlist stored
in ‘dw-current-wordlist’ accessible to ‘dw-passgen-region’.  If
you want to convert a wordlist file into the internal format, use
‘dw-build-alist’ instead."
  (interactive "P")
  (let (wordlist-entry file coding)
    (setq wordlist-entry
          (cond ((null dw-named-wordlists)
                 (dw--prompt-wordlist-file))
                ((= (length dw-named-wordlists) 1)
                 (car dw-named-wordlists))
                ((and use-default
                      (assq 'default dw-named-wordlists)))
                (t
                 (assq
                  (dw--prompt-wordlist)
                  dw-named-wordlists)))
          file (cadr wordlist-entry)
          coding (cddr wordlist-entry)
          dw-current-wordlist (dw-build-alist file dw-directory coding)))
  nil)

;;;###autoload
(defun dw-passgen-region (start end &optional choose-wordlist)
  "Replace sequence of die rolls in region with corresponding passphrase.

Without prefix argument, use the last wordlist used in the same
session.  If no wordlist has been set, use the default wordlist,
if available.  If no default wordlist is available, either prompt
for a named wordlist specified by ‘dw-named-wordlists’ or fall
back to prompting for a file.  With prefix argument, ignore the
presence of a default wordlist.

For additional protection, you can append salt to your passphrase
using ‘dw-salt’.  Salt serves as an additional countermeasure
against the common case of attackers trying to crack multiple
passphrases at once.

Noninteractively, the optional second argument CHOOSE-WORDLIST
serves the same purpose as the prefix argument.

If called from Lisp, the arguments START and END must specify the
region to use for passphrase generation."
  (interactive "*r\nP")
  (when (= start end)
    (user-error "Cannot generate passphrase: empty region"))
  (let* ((strfun (when dw-capitalize-words #'capitalize))
         (dice-string (buffer-substring-no-properties start end))
         (use-default (not choose-wordlist))
         passphrase)
    (unless (and dw-current-wordlist use-default)
      (dw-set-wordlist use-default))
    (setq passphrase
          (dw-generate-passphrase dice-string
                                  dw-current-wordlist
                                  dw-passphrase-separator
                                  strfun))
    (setq passphrase
          (dw--append-salt-maybe passphrase))
    (delete-region start end)
    (insert passphrase)
    passphrase))

;;;###autoload
(defun dw-ranstring-region (start end)
  "Replace sequence of die rolls in region with a random character sequence.

This command uses ‘dw-random-characters’ as a resource for sets
of characters to generate a random string from.  You can use this
function to generate a personal salt from die rolls.  See
‘dw-salt’ for more on salt.

If called from Lisp, the arguments START and END must specify the
region to use for passphrase generation."
  (interactive "*r")
  (when (= start end)
    (user-error "Cannot generate random string: empty region"))
  (when (null dw-random-characters)
    (user-error "Cannot generate random string: ‘dw-random-characters’ is nil"))
  (pcase-let* ((dice-string (dw--strip-separators
                             (buffer-substring-no-properties start end)))
               (`(,possible-chars . ,lax) (dw--prompt-random-chatacters))
               (`(,rand-string . ,rng-failures)
                (dw--generate-charlist dice-string possible-chars)))
    ;; Notify the user of RNG fails
    (cond ((and (/= rng-failures 0) lax)
           (message "%i roll(s) failed to generate a random character."
                    rng-failures))
          ((/= rng-failures 0)
           (dw--warn-bad-random-characters)))
    (delete-region start end)
    (insert rand-string)
    rand-string))

\f
;;; Default Wordlist
;; Provide an already internalized wordlist so people can try out the
;; package without having to download file(s) from external sources.
;; This is the "large" wordlist provided by the EFF (see link).
;; https://www.eff.org/files/2016/07/18/eff_large_wordlist.txt

(defconst dw-eff-large
  ;; "Z" comes first because 6 is treated as 0 (base 6).
  '((0 . "zoom") (1 . "zone") (2 . "zoning") (3 . "zookeeper")
    (4 . "zoologist") (5 . "zoology") (6 . "yin") (7 . "yelp")
    (8 . "yen") (9 . "yesterday") (10 . "yiddish") (11 . "yield")
    (12 . "yonder") (13 . "yippee") (14 . "yo-yo") (15 . "yodel")
    (16 . "yoga") (17 . "yogurt") (18 . "zen") (19 . "yoyo")
    (20 . "yummy") (21 . "zap") (22 . "zealous") (23 . "zebra")
    (24 . "zipfile") (25 . "zeppelin") (26 . "zero")
    (27 . "zestfully") (28 . "zesty") (29 . "zigzagged")
    (30 . "zombie") (31 . "zipping") (32 . "zippy") (33 . "zips")
    (34 . "zit") (35 . "zodiac") (36 . "washcloth") (37 . "wasabi")
    (38 . "washable") (39 . "washbasin") (40 . "washboard")
    (41 . "washbowl") (42 . "voting") (43 . "volatile")
    (44 . "volley") (45 . "voltage") (46 . "volumes")
    (47 . "voter") (48 . "wad") (49 . "voucher") (50 . "vowed")
    (51 . "vowel") (52 . "voyage") (53 . "wackiness")
    (54 . "waggle") (55 . "wafer") (56 . "waffle") (57 . "waged")
    (58 . "wager") (59 . "wages") (60 . "walnut") (61 . "wagon")
    (62 . "wake") (63 . "waking") (64 . "walk") (65 . "walmart")
    (66 . "wanting") (67 . "walrus") (68 . "waltz") (69 . "wand")
    (70 . "wannabe") (71 . "wanted") (72 . "widely")
    (73 . "whoopee") (74 . "whooping") (75 . "whoops") (76 . "why")
    (77 . "wick") (78 . "washout") (79 . "washday") (80 . "washed")
    (81 . "washer") (82 . "washhouse") (83 . "washing")
    (84 . "watch") (85 . "washroom") (86 . "washstand")
    (87 . "washtub") (88 . "wasp") (89 . "wasting") (90 . "whacky")
    (91 . "water") (92 . "waviness") (93 . "waving") (94 . "wavy")
    (95 . "whacking") (96 . "whimsical") (97 . "wham")
    (98 . "wharf") (99 . "wheat") (100 . "whenever")
    (101 . "whiff") (102 . "whomever") (103 . "whinny")
    (104 . "whiny") (105 . "whisking") (106 . "whoever")
    (107 . "whole") (108 . "wireless") (109 . "winner")
    (110 . "winnings") (111 . "winter") (112 . "wipe")
    (113 . "wired") (114 . "wielder") (115 . "widen")
    (116 . "widget") (117 . "widow") (118 . "width")
    (119 . "wieldable") (120 . "wilder") (121 . "wife")
    (122 . "wifi") (123 . "wikipedia") (124 . "wildcard")
    (125 . "wildcat") (126 . "wildness") (127 . "wildfire")
    (128 . "wildfowl") (129 . "wildland") (130 . "wildlife")
    (131 . "wildly") (132 . "wilt") (133 . "willed")
    (134 . "willfully") (135 . "willing") (136 . "willow")
    (137 . "willpower") (138 . "winking") (139 . "wimp")
    (140 . "wince") (141 . "wincing") (142 . "wind") (143 . "wing")
    (144 . "woven") (145 . "worry") (146 . "worsening")
    (147 . "worshiper") (148 . "worst") (149 . "wound")
    (150 . "wisplike") (151 . "wiring") (152 . "wiry")
    (153 . "wisdom") (154 . "wise") (155 . "wish") (156 . "wobbly")
    (157 . "wispy") (158 . "wistful") (159 . "wizard")
    (160 . "wobble") (161 . "wobbling") (162 . "womanless")
    (163 . "wok") (164 . "wolf") (165 . "wolverine")
    (166 . "womanhood") (167 . "womankind") (168 . "wool")
    (169 . "womanlike") (170 . "womanly") (171 . "womb")
    (172 . "woof") (173 . "wooing") (174 . "worrisome")
    (175 . "woozy") (176 . "word") (177 . "work") (178 . "worried")
    (179 . "worrier") (180 . "yelling") (181 . "yearbook")
    (182 . "yearling") (183 . "yearly") (184 . "yearning")
    (185 . "yeast") (186 . "wrecker") (187 . "wow")
    (188 . "wrangle") (189 . "wrath") (190 . "wreath")
    (191 . "wreckage") (192 . "wrinkly") (193 . "wrecking")
    (194 . "wrench") (195 . "wriggle") (196 . "wriggly")
    (197 . "wrinkle") (198 . "wrongful") (199 . "wrist")
    (200 . "writing") (201 . "written") (202 . "wrongdoer")
    (203 . "wronged") (204 . "yahoo") (205 . "wrongly")
    (206 . "wrongness") (207 . "wrought") (208 . "xbox")
    (209 . "xerox") (210 . "yeah") (211 . "yam") (212 . "yanking")
    (213 . "yapping") (214 . "yard") (215 . "yarn")
    (216 . "tastiness") (217 . "tartly") (218 . "tartness")
    (219 . "task") (220 . "tassel") (221 . "taste")
    (222 . "talisman") (223 . "tag") (224 . "tainted")
    (225 . "take") (226 . "taking") (227 . "talcum")
    (228 . "tamper") (229 . "tall") (230 . "talon")
    (231 . "tamale") (232 . "tameness") (233 . "tamer")
    (234 . "tapeless") (235 . "tank") (236 . "tanned")
    (237 . "tannery") (238 . "tanning") (239 . "tantrum")
    (240 . "taps") (241 . "tapered") (242 . "tapering")
    (243 . "tapestry") (244 . "tapioca") (245 . "tapping")
    (246 . "tartar") (247 . "tarantula") (248 . "target")
    (249 . "tarmac") (250 . "tarnish") (251 . "tarot")
    (252 . "subway") (253 . "subtly") (254 . "subtotal")
    (255 . "subtract") (256 . "subtype") (257 . "suburb")
    (258 . "sublease") (259 . "subduing") (260 . "subfloor")
    (261 . "subgroup") (262 . "subheader") (263 . "subject")
    (264 . "submersed") (265 . "sublet") (266 . "sublevel")
    (267 . "sublime") (268 . "submarine") (269 . "submerge")
    (270 . "subscribe") (271 . "submitter") (272 . "subpanel")
    (273 . "subpar") (274 . "subplot") (275 . "subprime")
    (276 . "subsidy") (277 . "subscript") (278 . "subsector")
    (279 . "subside") (280 . "subsiding") (281 . "subsidize")
    (282 . "subtitle") (283 . "subsoil") (284 . "subsonic")
    (285 . "substance") (286 . "subsystem") (287 . "subtext")
    (288 . "superman") (289 . "superbowl") (290 . "superglue")
    (291 . "superhero") (292 . "superior") (293 . "superjet")
    (294 . "sudden") (295 . "subwoofer") (296 . "subzero")
    (297 . "succulent") (298 . "such") (299 . "suction")
    (300 . "suffix") (301 . "sudoku") (302 . "suds")
    (303 . "sufferer") (304 . "suffering") (305 . "suffice")
    (306 . "suitable") (307 . "suffocate") (308 . "suffrage")
    (309 . "sugar") (310 . "suggest") (311 . "suing")
    (312 . "sulfite") (313 . "suitably") (314 . "suitcase")
    (315 . "suitor") (316 . "sulfate") (317 . "sulfide")
    (318 . "sultry") (319 . "sulfur") (320 . "sulk")
    (321 . "sullen") (322 . "sulphate") (323 . "sulphuric")
    (324 . "suspense") (325 . "surviving") (326 . "survivor")
    (327 . "sushi") (328 . "suspect") (329 . "suspend")
    (330 . "supply") (331 . "supermom") (332 . "supernova")
    (333 . "supervise") (334 . "supper") (335 . "supplier")
    (336 . "sureness") (337 . "support") (338 . "supremacy")
    (339 . "supreme") (340 . "surcharge") (341 . "surely")
    (342 . "surgical") (343 . "surface") (344 . "surfacing")
    (345 . "surfboard") (346 . "surfer") (347 . "surgery")
    (348 . "surreal") (349 . "surging") (350 . "surname")
    (351 . "surpass") (352 . "surplus") (353 . "surprise")
    (354 . "survive") (355 . "surrender") (356 . "surrogate")
    (357 . "surround") (358 . "survey") (359 . "survival")
    (360 . "sworn") (361 . "swizzle") (362 . "swooned")
    (363 . "swoop") (364 . "swoosh") (365 . "swore")
    (366 . "swampland") (367 . "sustained") (368 . "sustainer")
    (369 . "swab") (370 . "swaddling") (371 . "swagger")
    (372 . "sweat") (373 . "swan") (374 . "swapping")
    (375 . "swarm") (376 . "sway") (377 . "swear")
    (378 . "swiftly") (379 . "sweep") (380 . "swell")
    (381 . "swept") (382 . "swerve") (383 . "swifter")
    (384 . "swimwear") (385 . "swiftness") (386 . "swimmable")
    (387 . "swimmer") (388 . "swimming") (389 . "swimsuit")
    (390 . "swivel") (391 . "swinger") (392 . "swinging")
    (393 . "swipe") (394 . "swirl") (395 . "switch")
    (396 . "taekwondo") (397 . "tactical") (398 . "tactics")
    (399 . "tactile") (400 . "tactless") (401 . "tadpole")
    (402 . "symptom") (403 . "swung") (404 . "sycamore")
    (405 . "sympathy") (406 . "symphonic") (407 . "symphony")
    (408 . "synthesis") (409 . "synapse") (410 . "syndrome")
    (411 . "synergy") (412 . "synopses") (413 . "synopsis")
    (414 . "tabby") (415 . "synthetic") (416 . "syrup")
    (417 . "system") (418 . "t-shirt") (419 . "tabasco")
    (420 . "tackiness") (421 . "tableful") (422 . "tables")
    (423 . "tablet") (424 . "tableware") (425 . "tabloid")
    (426 . "tactful") (427 . "tacking") (428 . "tackle")
    (429 . "tackling") (430 . "tacky") (431 . "taco")
    (432 . "tubby") (433 . "trustful") (434 . "trusting")
    (435 . "trustless") (436 . "truth") (437 . "try")
    (438 . "trinity") (439 . "trilogy") (440 . "trimester")
    (441 . "trimmer") (442 . "trimming") (443 . "trimness")
    (444 . "trodden") (445 . "trio") (446 . "tripod")
    (447 . "tripping") (448 . "triumph") (449 . "trivial")
    (450 . "trouble") (451 . "trolling") (452 . "trombone")
    (453 . "trophy") (454 . "tropical") (455 . "tropics")
    (456 . "truce") (457 . "troubling") (458 . "trough")
    (459 . "trousers") (460 . "trout") (461 . "trowel")
    (462 . "trustee") (463 . "truck") (464 . "truffle")
    (465 . "trump") (466 . "trunks") (467 . "trustable")
    (468 . "thinness") (469 . "thimble") (470 . "thing")
    (471 . "think") (472 . "thinly") (473 . "thinner")
    (474 . "tattoo") (475 . "tasting") (476 . "tasty")
    (477 . "tattered") (478 . "tattle") (479 . "tattling")
    (480 . "theater") (481 . "taunt") (482 . "tavern")
    (483 . "thank") (484 . "that") (485 . "thaw")
    (486 . "theorize") (487 . "theatrics") (488 . "thee")
    (489 . "theft") (490 . "theme") (491 . "theology")
    (492 . "thespian") (493 . "thermal") (494 . "thermos")
    (495 . "thesaurus") (496 . "these") (497 . "thesis")
    (498 . "thigh") (499 . "thicken") (500 . "thicket")
    (501 . "thickness") (502 . "thieving") (503 . "thievish")
    (504 . "tidal") (505 . "thus") (506 . "thwarting")
    (507 . "thyself") (508 . "tiara") (509 . "tibia")
    (510 . "thirty") (511 . "thinning") (512 . "thirstily")
    (513 . "thirsting") (514 . "thirsty") (515 . "thirteen")
    (516 . "thread") (517 . "thong") (518 . "thorn")
    (519 . "those") (520 . "thousand") (521 . "thrash")
    (522 . "thriving") (523 . "threaten") (524 . "threefold")
    (525 . "thrift") (526 . "thrill") (527 . "thrive")
    (528 . "throwback") (529 . "throat") (530 . "throbbing")
    (531 . "throng") (532 . "throttle") (533 . "throwaway")
    (534 . "thursday") (535 . "thrower") (536 . "throwing")
    (537 . "thud") (538 . "thumb") (539 . "thumping")
    (540 . "tiptop") (541 . "tipoff") (542 . "tipped")
    (543 . "tipper") (544 . "tipping") (545 . "tiptoeing")
    (546 . "tighten") (547 . "tidbit") (548 . "tidiness")
    (549 . "tidings") (550 . "tidy") (551 . "tiger") (552 . "tile")
    (553 . "tightly") (554 . "tightness") (555 . "tightrope")
    (556 . "tightwad") (557 . "tigress") (558 . "timothy")
    (559 . "tiling") (560 . "till") (561 . "tilt") (562 . "timid")
    (563 . "timing") (564 . "tinker") (565 . "tinderbox")
    (566 . "tinfoil") (567 . "tingle") (568 . "tingling")
    (569 . "tingly") (570 . "tiny") (571 . "tinkling")
    (572 . "tinsel") (573 . "tinsmith") (574 . "tint")
    (575 . "tinwork") (576 . "tray") (577 . "traps")
    (578 . "trash") (579 . "travel") (580 . "traverse")
    (581 . "travesty") (582 . "traction") (583 . "tiring")
    (584 . "tissue") (585 . "trace") (586 . "tracing")
    (587 . "track") (588 . "tragedy") (589 . "tractor")
    (590 . "trade") (591 . "trading") (592 . "tradition")
    (593 . "traffic") (594 . "tranquil") (595 . "trailing")
    (596 . "trailside") (597 . "train") (598 . "traitor")
    (599 . "trance") (600 . "transpose") (601 . "transfer")
    (602 . "transform") (603 . "translate") (604 . "transpire")
    (605 . "transport") (606 . "trapping") (607 . "trapdoor")
    (608 . "trapeze") (609 . "trapezoid") (610 . "trapped")
    (611 . "trapper") (612 . "trillion") (613 . "tricycle")
    (614 . "trident") (615 . "tried") (616 . "trifle")
    (617 . "trifocals") (618 . "treble") (619 . "treachery")
    (620 . "treading") (621 . "treadmill") (622 . "treason")
    (623 . "treat") (624 . "trench") (625 . "tree")
    (626 . "trekker") (627 . "tremble") (628 . "trembling")
    (629 . "tremor") (630 . "tribesman") (631 . "trend")
    (632 . "trespass") (633 . "triage") (634 . "trial")
    (635 . "triangle") (636 . "trickery") (637 . "tribunal")
    (638 . "tribune") (639 . "tributary") (640 . "tribute")
    (641 . "triceps") (642 . "tricolor") (643 . "trickily")
    (644 . "tricking") (645 . "trickle") (646 . "trickster")
    (647 . "tricky") (648 . "ungreased") (649 . "unglazed")
    (650 . "ungloved") (651 . "unglue") (652 . "ungodly")
    (653 . "ungraded") (654 . "unequal") (655 . "unedited")
    (656 . "unelected") (657 . "unending") (658 . "unengaged")
    (659 . "unenvied") (660 . "unfair") (661 . "unethical")
    (662 . "uneven") (663 . "unexpired") (664 . "unexposed")
    (665 . "unfailing") (666 . "unfitted") (667 . "unfasten")
    (668 . "unfazed") (669 . "unfeeling") (670 . "unfiled")
    (671 . "unfilled") (672 . "unfold") (673 . "unfitting")
    (674 . "unfixable") (675 . "unfixed") (676 . "unflawed")
    (677 . "unfocused") (678 . "unfunded") (679 . "unfounded")
    (680 . "unframed") (681 . "unfreeze") (682 . "unfrosted")
    (683 . "unfrozen") (684 . "twig") (685 . "twenty")
    (686 . "twerp") (687 . "twice") (688 . "twiddle")
    (689 . "twiddling") (690 . "tuition") (691 . "tubeless")
    (692 . "tubular") (693 . "tucking") (694 . "tuesday")
    (695 . "tug") (696 . "turbine") (697 . "tulip")
    (698 . "tumble") (699 . "tumbling") (700 . "tummy")
    (701 . "turban") (702 . "turmoil") (703 . "turbofan")
    (704 . "turbojet") (705 . "turbulent") (706 . "turf")
    (707 . "turkey") (708 . "tux") (709 . "turret")
    (710 . "turtle") (711 . "tusk") (712 . "tutor") (713 . "tutu")
    (714 . "twentieth") (715 . "tweak") (716 . "tweed")
    (717 . "tweet") (718 . "tweezers") (719 . "twelve")
    (720 . "unbalance") (721 . "unashamed") (722 . "unaudited")
    (723 . "unawake") (724 . "unaware") (725 . "unbaked")
    (726 . "twisted") (727 . "twilight") (728 . "twine")
    (729 . "twins") (730 . "twirl") (731 . "twistable")
    (732 . "tycoon") (733 . "twister") (734 . "twisting")
    (735 . "twisty") (736 . "twitch") (737 . "twitter")
    (738 . "ultra") (739 . "tying") (740 . "tyke") (741 . "udder")
    (742 . "ultimate") (743 . "ultimatum") (744 . "unadorned")
    (745 . "umbilical") (746 . "umbrella") (747 . "umpire")
    (748 . "unabashed") (749 . "unable") (750 . "unarmored")
    (751 . "unadvised") (752 . "unafraid") (753 . "unaired")
    (754 . "unaligned") (755 . "unaltered") (756 . "unclothed")
    (757 . "unclasp") (758 . "uncle") (759 . "unclip")
    (760 . "uncloak") (761 . "unclog") (762 . "unblended")
    (763 . "unbeaten") (764 . "unbend") (765 . "unbent")
    (766 . "unbiased") (767 . "unbitten") (768 . "unbraided")
    (769 . "unblessed") (770 . "unblock") (771 . "unbolted")
    (772 . "unbounded") (773 . "unboxed") (774 . "unbutton")
    (775 . "unbridle") (776 . "unbroken") (777 . "unbuckled")
    (778 . "unbundle") (779 . "unburned") (780 . "unchanged")
    (781 . "uncanny") (782 . "uncapped") (783 . "uncaring")
    (784 . "uncertain") (785 . "unchain") (786 . "unclamped")
    (787 . "uncharted") (788 . "uncheck") (789 . "uncivil")
    (790 . "unclad") (791 . "unclaimed") (792 . "undergo")
    (793 . "underdog") (794 . "underdone") (795 . "underfed")
    (796 . "underfeed") (797 . "underfoot") (798 . "uncooked")
    (799 . "uncoated") (800 . "uncoiled") (801 . "uncolored")
    (802 . "uncombed") (803 . "uncommon") (804 . "uncover")
    (805 . "uncork") (806 . "uncorrupt") (807 . "uncounted")
    (808 . "uncouple") (809 . "uncouth") (810 . "uncurled")
    (811 . "uncross") (812 . "uncrown") (813 . "uncrushed")
    (814 . "uncured") (815 . "uncurious") (816 . "undecided")
    (817 . "uncut") (818 . "undamaged") (819 . "undated")
    (820 . "undaunted") (821 . "undead") (822 . "undercut")
    (823 . "undefined") (824 . "underage") (825 . "underarm")
    (826 . "undercoat") (827 . "undercook") (828 . "uneaten")
    (829 . "unearth") (830 . "unease") (831 . "uneasily")
    (832 . "uneasy") (833 . "uneatable") (834 . "undermost")
    (835 . "undergrad") (836 . "underhand") (837 . "underline")
    (838 . "underling") (839 . "undermine") (840 . "undertone")
    (841 . "underpaid") (842 . "underpass") (843 . "underpay")
    (844 . "underrate") (845 . "undertake") (846 . "underwire")
    (847 . "undertook") (848 . "undertow") (849 . "underuse")
    (850 . "underwear") (851 . "underwent") (852 . "undone")
    (853 . "undesired") (854 . "undiluted") (855 . "undivided")
    (856 . "undocked") (857 . "undoing") (858 . "unearned")
    (859 . "undrafted") (860 . "undress") (861 . "undrilled")
    (862 . "undusted") (863 . "undying") (864 . "unusable")
    (865 . "untrue") (866 . "untruth") (867 . "unturned")
    (868 . "untwist") (869 . "untying") (870 . "unsure")
    (871 . "unstuffed") (872 . "unstylish") (873 . "unsubtle")
    (874 . "unsubtly") (875 . "unsuited") (876 . "untangled")
    (877 . "unsworn") (878 . "untagged") (879 . "untainted")
    (880 . "untaken") (881 . "untamed") (882 . "untie")
    (883 . "untapped") (884 . "untaxed") (885 . "unthawed")
    (886 . "unthread") (887 . "untidy") (888 . "untold")
    (889 . "until") (890 . "untimed") (891 . "untimely")
    (892 . "untitled") (893 . "untoasted") (894 . "untrimmed")
    (895 . "untouched") (896 . "untracked") (897 . "untrained")
    (898 . "untreated") (899 . "untried") (900 . "unjustly")
    (901 . "unison") (902 . "unissued") (903 . "unit")
    (904 . "universal") (905 . "universe") (906 . "unhealthy")
    (907 . "unguarded") (908 . "unguided") (909 . "unhappily")
    (910 . "unhappy") (911 . "unharmed") (912 . "unhinge")
    (913 . "unheard") (914 . "unhearing") (915 . "unheated")
    (916 . "unhelpful") (917 . "unhidden") (918 . "unified")
    (919 . "unhitched") (920 . "unholy") (921 . "unhook")
    (922 . "unicorn") (923 . "unicycle") (924 . "uninjured")
    (925 . "unifier") (926 . "uniformed") (927 . "uniformly")
    (928 . "unify") (929 . "unimpeded") (930 . "unisexual")
    (931 . "uninstall") (932 . "uninsured") (933 . "uninvited")
    (934 . "union") (935 . "uniquely") (936 . "unmarked")
    (937 . "unlucky") (938 . "unmade") (939 . "unmanaged")
    (940 . "unmanned") (941 . "unmapped") (942 . "unlaced")
    (943 . "unkempt") (944 . "unkind") (945 . "unknotted")
    (946 . "unknowing") (947 . "unknown") (948 . "unless")
    (949 . "unlatch") (950 . "unlawful") (951 . "unleaded")
    (952 . "unlearned") (953 . "unleash") (954 . "unlinked")
    (955 . "unleveled") (956 . "unlighted") (957 . "unlikable")
    (958 . "unlimited") (959 . "unlined") (960 . "unlocked")
    (961 . "unlisted") (962 . "unlit") (963 . "unlivable")
    (964 . "unloaded") (965 . "unloader") (966 . "unluckily")
    (967 . "unlocking") (968 . "unlovable") (969 . "unloved")
    (970 . "unlovely") (971 . "unloving") (972 . "unplug")
    (973 . "unplanned") (974 . "unplanted") (975 . "unpleased")
    (976 . "unpledged") (977 . "unplowed") (978 . "unmixed")
    (979 . "unmasked") (980 . "unmasking") (981 . "unmatched")
    (982 . "unmindful") (983 . "unmixable") (984 . "unnamable")
    (985 . "unmolded") (986 . "unmoral") (987 . "unmovable")
    (988 . "unmoved") (989 . "unmoving") (990 . "unnoticed")
    (991 . "unnamed") (992 . "unnatural") (993 . "unneeded")
    (994 . "unnerve") (995 . "unnerving") (996 . "unpainted")
    (997 . "unopened") (998 . "unopposed") (999 . "unpack")
    (1000 . "unpadded") (1001 . "unpaid") (1002 . "unpinned")
    (1003 . "unpaired") (1004 . "unpaved") (1005 . "unpeeled")
    (1006 . "unpicked") (1007 . "unpiloted") (1008 . "unseated")
    (1009 . "unsavory") (1010 . "unscathed") (1011 . "unscented")
    (1012 . "unscrew") (1013 . "unsealed") (1014 . "unraveled")
    (1015 . "unpopular") (1016 . "unproven") (1017 . "unquote")
    (1018 . "unranked") (1019 . "unrated") (1020 . "unrelated")
    (1021 . "unreached") (1022 . "unread") (1023 . "unreal")
    (1024 . "unreeling") (1025 . "unrefined") (1026 . "unripe")
    (1027 . "unrented") (1028 . "unrest") (1029 . "unretired")
    (1030 . "unrevised") (1031 . "unrigged") (1032 . "unruly")
    (1033 . "unrivaled") (1034 . "unroasted") (1035 . "unrobed")
    (1036 . "unroll") (1037 . "unruffled") (1038 . "unsaved")
    (1039 . "unrushed") (1040 . "unsaddle") (1041 . "unsafe")
    (1042 . "unsaid") (1043 . "unsalted") (1044 . "unstuck")
    (1045 . "unsteady") (1046 . "unsterile") (1047 . "unstirred")
    (1048 . "unstitch") (1049 . "unstopped") (1050 . "unselfish")
    (1051 . "unsecured") (1052 . "unseeing") (1053 . "unseemly")
    (1054 . "unseen") (1055 . "unselect") (1056 . "unshaven")
    (1057 . "unsent") (1058 . "unsettled") (1059 . "unshackle")
    (1060 . "unshaken") (1061 . "unshaved") (1062 . "unsliced")
    (1063 . "unsheathe") (1064 . "unshipped") (1065 . "unsightly")
    (1066 . "unsigned") (1067 . "unskilled") (1068 . "unsolved")
    (1069 . "unsmooth") (1070 . "unsnap") (1071 . "unsocial")
    (1072 . "unsoiled") (1073 . "unsold") (1074 . "unstamped")
    (1075 . "unsorted") (1076 . "unspoiled") (1077 . "unspoken")
    (1078 . "unstable") (1079 . "unstaffed") (1080 . "void")
    (1081 . "vocalize") (1082 . "vocally") (1083 . "vocation")
    (1084 . "voice") (1085 . "voicing") (1086 . "viper")
    (1087 . "violate") (1088 . "violation") (1089 . "violator")
    (1090 . "violet") (1091 . "violin") (1092 . "viscosity")
    (1093 . "viral") (1094 . "virtual") (1095 . "virtuous")
    (1096 . "virus") (1097 . "visa") (1098 . "visiting")
    (1099 . "viscous") (1100 . "viselike") (1101 . "visible")
    (1102 . "visibly") (1103 . "vision") (1104 . "vitally")
    (1105 . "visitor") (1106 . "visor") (1107 . "vista")
    (1108 . "vitality") (1109 . "vitalize") (1110 . "vocalist")
    (1111 . "vitamins") (1112 . "vivacious") (1113 . "vividly")
    (1114 . "vividness") (1115 . "vixen") (1116 . "upbeat")
    (1117 . "unwound") (1118 . "unwoven") (1119 . "unwrapped")
    (1120 . "unwritten") (1121 . "unzip") (1122 . "unveiled")
    (1123 . "unused") (1124 . "unusual") (1125 . "unvalued")
    (1126 . "unvaried") (1127 . "unvarying") (1128 . "unwanted")
    (1129 . "unveiling") (1130 . "unvented") (1131 . "unviable")
    (1132 . "unvisited") (1133 . "unvocal") (1134 . "unwed")
    (1135 . "unwarlike") (1136 . "unwary") (1137 . "unwashed")
    (1138 . "unwatched") (1139 . "unweave") (1140 . "unwired")
    (1141 . "unwelcome") (1142 . "unwell") (1143 . "unwieldy")
    (1144 . "unwilling") (1145 . "unwind") (1146 . "unworthy")
    (1147 . "unwitting") (1148 . "unwomanly") (1149 . "unworldly")
    (1150 . "unworn") (1151 . "unworried") (1152 . "uranium")
    (1153 . "uptight") (1154 . "uptown") (1155 . "upturned")
    (1156 . "upward") (1157 . "upwind") (1158 . "upgrade")
    (1159 . "upchuck") (1160 . "upcoming") (1161 . "upcountry")
    (1162 . "update") (1163 . "upfront") (1164 . "uplifting")
    (1165 . "upheaval") (1166 . "upheld") (1167 . "uphill")
    (1168 . "uphold") (1169 . "uplifted") (1170 . "upriver")
    (1171 . "upload") (1172 . "upon") (1173 . "upper")
    (1174 . "upright") (1175 . "uprising") (1176 . "upstairs")
    (1177 . "uproar") (1178 . "uproot") (1179 . "upscale")
    (1180 . "upside") (1181 . "upstage") (1182 . "uptake")
    (1183 . "upstart") (1184 . "upstate") (1185 . "upstream")
    (1186 . "upstroke") (1187 . "upswing") (1188 . "valuables")
    (1189 . "vagueness") (1190 . "valiant") (1191 . "valid")
    (1192 . "valium") (1193 . "valley") (1194 . "urging")
    (1195 . "urban") (1196 . "urchin") (1197 . "urethane")
    (1198 . "urgency") (1199 . "urgent") (1200 . "used")
    (1201 . "urologist") (1202 . "urology") (1203 . "usable")
    (1204 . "usage") (1205 . "useable") (1206 . "utility")
    (1207 . "uselessly") (1208 . "user") (1209 . "usher")
    (1210 . "usual") (1211 . "utensil") (1212 . "vacant")
    (1213 . "utilize") (1214 . "utmost") (1215 . "utopia")
    (1216 . "utter") (1217 . "vacancy") (1218 . "vaguely")
    (1219 . "vacate") (1220 . "vacation") (1221 . "vagabond")
    (1222 . "vagrancy") (1223 . "vagrantly") (1224 . "venue")
    (1225 . "veneering") (1226 . "vengeful") (1227 . "venomous")
    (1228 . "ventricle") (1229 . "venture") (1230 . "vantage")
    (1231 . "value") (1232 . "vanilla") (1233 . "vanish")
    (1234 . "vanity") (1235 . "vanquish") (1236 . "various")
    (1237 . "vaporizer") (1238 . "variable") (1239 . "variably")
    (1240 . "varied") (1241 . "variety") (1242 . "vaseline")
    (1243 . "varmint") (1244 . "varnish") (1245 . "varsity")
    (1246 . "varying") (1247 . "vascular") (1248 . "vehicular")
    (1249 . "vastly") (1250 . "vastness") (1251 . "veal")
    (1252 . "vegan") (1253 . "veggie") (1254 . "vendor")
    (1255 . "velcro") (1256 . "velocity") (1257 . "velvet")
    (1258 . "vendetta") (1259 . "vending") (1260 . "vintage")
    (1261 . "vigorous") (1262 . "village") (1263 . "villain")
    (1264 . "vindicate") (1265 . "vineyard") (1266 . "verify")
    (1267 . "venus") (1268 . "verbalize") (1269 . "verbally")
    (1270 . "verbose") (1271 . "verdict") (1272 . "vertigo")
    (1273 . "verse") (1274 . "version") (1275 . "versus")
    (1276 . "vertebrae") (1277 . "vertical") (1278 . "vexingly")
    (1279 . "very") (1280 . "vessel") (1281 . "vest")
    (1282 . "veteran") (1283 . "veto") (1284 . "victory")
    (1285 . "viability") (1286 . "viable") (1287 . "vibes")
    (1288 . "vice") (1289 . "vicinity") (1290 . "viewpoint")
    (1291 . "video") (1292 . "viewable") (1293 . "viewer")
    (1294 . "viewing") (1295 . "viewless") (1296 . "copilot")
    (1297 . "convent") (1298 . "copartner") (1299 . "cope")
    (1300 . "copied") (1301 . "copier") (1302 . "consoling")
    (1303 . "connected") (1304 . "connector") (1305 . "consensus")
    (1306 . "consent") (1307 . "console") (1308 . "construct")
    (1309 . "consonant") (1310 . "constable") (1311 . "constant")
    (1312 . "constrain") (1313 . "constrict") (1314 . "contempt")
    (1315 . "consult") (1316 . "consumer") (1317 . "consuming")
    (1318 . "contact") (1319 . "container") (1320 . "context")
    (1321 . "contend") (1322 . "contented") (1323 . "contently")
    (1324 . "contents") (1325 . "contest") (1326 . "convene")
    (1327 . "contort") (1328 . "contour") (1329 . "contrite")
    (1330 . "control") (1331 . "contusion") (1332 . "clothes")
    (1333 . "clock") (1334 . "clone") (1335 . "cloning")
    (1336 . "closable") (1337 . "closure") (1338 . "clause")
    (1339 . "clarity") (1340 . "clash") (1341 . "clasp")
    (1342 . "class") (1343 . "clatter") (1344 . "cleat")
    (1345 . "clavicle") (1346 . "claw") (1347 . "clay")
    (1348 . "clean") (1349 . "clear") (1350 . "clerk")
    (1351 . "cleaver") (1352 . "cleft") (1353 . "clench")
    (1354 . "clergyman") (1355 . "clerical") (1356 . "cling")
    (1357 . "clever") (1358 . "clicker") (1359 . "client")
    (1360 . "climate") (1361 . "climatic") (1362 . "clobber")
    (1363 . "clinic") (1364 . "clinking") (1365 . "clip")
    (1366 . "clique") (1367 . "cloak") (1368 . "cogwheel")
    (1369 . "coexist") (1370 . "coffee") (1371 . "cofounder")
    (1372 . "cognition") (1373 . "cognitive") (1374 . "clubhouse")
    (1375 . "clothing") (1376 . "cloud") (1377 . "clover")
    (1378 . "clubbed") (1379 . "clubbing") (1380 . "clutch")
    (1381 . "clump") (1382 . "clumsily") (1383 . "clumsy")
    (1384 . "clunky") (1385 . "clustered") (1386 . "coasting")
    (1387 . "clutter") (1388 . "coach") (1389 . "coagulant")
    (1390 . "coastal") (1391 . "coaster") (1392 . "cobbler")
    (1393 . "coastland") (1394 . "coastline") (1395 . "coat")
    (1396 . "coauthor") (1397 . "cobalt") (1398 . "coerce")
    (1399 . "cobweb") (1400 . "cocoa") (1401 . "coconut")
    (1402 . "cod") (1403 . "coeditor") (1404 . "commodity")
    (1405 . "commence") (1406 . "commend") (1407 . "comment")
    (1408 . "commerce") (1409 . "commode") (1410 . "cola")
    (1411 . "coherence") (1412 . "coherent") (1413 . "cohesive")
    (1414 . "coil") (1415 . "coke") (1416 . "collar")
    (1417 . "cold") (1418 . "coleslaw") (1419 . "coliseum")
    (1420 . "collage") (1421 . "collapse") (1422 . "colonial")
    (1423 . "collected") (1424 . "collector") (1425 . "collide")
    (1426 . "collie") (1427 . "collision") (1428 . "coma")
    (1429 . "colonist") (1430 . "colonize") (1431 . "colony")
    (1432 . "colossal") (1433 . "colt") (1434 . "comma")
    (1435 . "come") (1436 . "comfort") (1437 . "comfy")
    (1438 . "comic") (1439 . "coming") (1440 . "concise")
    (1441 . "concept") (1442 . "concerned") (1443 . "concert")
    (1444 . "conch") (1445 . "concierge") (1446 . "compacted")
    (1447 . "commodore") (1448 . "common") (1449 . "commotion")
    (1450 . "commute") (1451 . "commuting") (1452 . "compare")
    (1453 . "compacter") (1454 . "compactly") (1455 . "compactor")
    (1456 . "companion") (1457 . "company") (1458 . "composer")
    (1459 . "compel") (1460 . "compile") (1461 . "comply")
    (1462 . "component") (1463 . "composed") (1464 . "comprised")
    (1465 . "composite") (1466 . "compost") (1467 . "composure")
    (1468 . "compound") (1469 . "compress") (1470 . "conceded")
    (1471 . "computer") (1472 . "computing") (1473 . "comrade")
    (1474 . "concave") (1475 . "conceal") (1476 . "conjuror")
    (1477 . "congrats") (1478 . "congress") (1479 . "conical")
    (1480 . "conjoined") (1481 . "conjure") (1482 . "condition")
    (1483 . "conclude") (1484 . "concrete") (1485 . "concur")
    (1486 . "condense") (1487 . "condiment") (1488 . "confess")
    (1489 . "condone") (1490 . "conducive") (1491 . "conductor")
    (1492 . "conduit") (1493 . "cone") (1494 . "configure")
    (1495 . "confetti") (1496 . "confidant") (1497 . "confident")
    (1498 . "confider") (1499 . "confiding") (1500 . "confound")
    (1501 . "confined") (1502 . "confining") (1503 . "confirm")
    (1504 . "conflict") (1505 . "conform") (1506 . "congested")
    (1507 . "confront") (1508 . "confused") (1509 . "confusing")
    (1510 . "confusion") (1511 . "congenial") (1512 . "annually")
    (1513 . "ankle") (1514 . "annex") (1515 . "annotate")
    (1516 . "announcer") (1517 . "annoying") (1518 . "anchovy")
    (1519 . "anaerobic") (1520 . "anagram") (1521 . "anatomist")
    (1522 . "anatomy") (1523 . "anchor") (1524 . "anew")
    (1525 . "ancient") (1526 . "android") (1527 . "anemia")
    (1528 . "anemic") (1529 . "aneurism") (1530 . "angles")
    (1531 . "angelfish") (1532 . "angelic") (1533 . "anger")
    (1534 . "angled") (1535 . "angler") (1536 . "animal")
    (1537 . "angling") (1538 . "angrily") (1539 . "angriness")
    (1540 . "anguished") (1541 . "angular") (1542 . "animosity")
    (1543 . "animate") (1544 . "animating") (1545 . "animation")
    (1546 . "animator") (1547 . "anime") (1548 . "acid")
    (1549 . "accurate") (1550 . "accustom") (1551 . "acetone")
    (1552 . "achiness") (1553 . "aching") (1554 . "ability")
    (1555 . "abacus") (1556 . "abdomen") (1557 . "abdominal")
    (1558 . "abide") (1559 . "abiding") (1560 . "abreast")
    (1561 . "ablaze") (1562 . "able") (1563 . "abnormal")
    (1564 . "abrasion") (1565 . "abrasive") (1566 . "absently")
    (1567 . "abridge") (1568 . "abroad") (1569 . "abruptly")
    (1570 . "absence") (1571 . "absentee") (1572 . "absurd")
    (1573 . "absinthe") (1574 . "absolute") (1575 . "absolve")
    (1576 . "abstain") (1577 . "abstract") (1578 . "accuracy")
    (1579 . "accent") (1580 . "acclaim") (1581 . "acclimate")
    (1582 . "accompany") (1583 . "account") (1584 . "aflame")
    (1585 . "affix") (1586 . "afflicted") (1587 . "affluent")
    (1588 . "afford") (1589 . "affront") (1590 . "acronym")
    (1591 . "acorn") (1592 . "acquaint") (1593 . "acquire")
    (1594 . "acre") (1595 . "acrobat") (1596 . "activism")
    (1597 . "acting") (1598 . "action") (1599 . "activate")
    (1600 . "activator") (1601 . "active") (1602 . "acuteness")
    (1603 . "activist") (1604 . "activity") (1605 . "actress")
    (1606 . "acts") (1607 . "acutely") (1608 . "affair")
    (1609 . "aeration") (1610 . "aerobics") (1611 . "aerosol")
    (1612 . "aerospace") (1613 . "afar") (1614 . "affirm")
    (1615 . "affected") (1616 . "affecting") (1617 . "affection")
    (1618 . "affidavit") (1619 . "affiliate") (1620 . "alabaster")
    (1621 . "ahoy") (1622 . "aide") (1623 . "aids") (1624 . "aim")
    (1625 . "ajar") (1626 . "afterlife") (1627 . "afloat")
    (1628 . "aflutter") (1629 . "afoot") (1630 . "afraid")
    (1631 . "afterglow") (1632 . "agency") (1633 . "aftermath")
    (1634 . "aftermost") (1635 . "afternoon") (1636 . "aged")
    (1637 . "ageless") (1638 . "agility") (1639 . "agenda")
    (1640 . "agent") (1641 . "aggregate") (1642 . "aghast")
    (1643 . "agile") (1644 . "agreeable") (1645 . "aging")
    (1646 . "agnostic") (1647 . "agonize") (1648 . "agonizing")
    (1649 . "agony") (1650 . "ahead") (1651 . "agreeably")
    (1652 . "agreed") (1653 . "agreeing") (1654 . "agreement")
    (1655 . "aground") (1656 . "amber") (1657 . "alumni")
    (1658 . "always") (1659 . "amaretto") (1660 . "amaze")
    (1661 . "amazingly") (1662 . "algorithm") (1663 . "alarm")
    (1664 . "albatross") (1665 . "album") (1666 . "alfalfa")
    (1667 . "algebra") (1668 . "alike") (1669 . "alias")
    (1670 . "alibi") (1671 . "alienable") (1672 . "alienate")
    (1673 . "aliens") (1674 . "almost") (1675 . "alive")
    (1676 . "alkaline") (1677 . "alkalize") (1678 . "almanac")
    (1679 . "almighty") (1680 . "aloof") (1681 . "aloe")
    (1682 . "aloft") (1683 . "aloha") (1684 . "alone")
    (1685 . "alongside") (1686 . "aluminum") (1687 . "alphabet")
    (1688 . "alright") (1689 . "although") (1690 . "altitude")
    (1691 . "alto") (1692 . "anaconda") (1693 . "amusable")
    (1694 . "amused") (1695 . "amusement") (1696 . "amuser")
    (1697 . "amusing") (1698 . "ambulance") (1699 . "ambiance")
    (1700 . "ambiguity") (1701 . "ambiguous") (1702 . "ambition")
    (1703 . "ambitious") (1704 . "amiable") (1705 . "ambush")
    (1706 . "amendable") (1707 . "amendment") (1708 . "amends")
    (1709 . "amenity") (1710 . "ammonia") (1711 . "amicably")
    (1712 . "amid") (1713 . "amigo") (1714 . "amino")
    (1715 . "amiss") (1716 . "amperage") (1717 . "ammonium")
    (1718 . "amnesty") (1719 . "amniotic") (1720 . "among")
    (1721 . "amount") (1722 . "amulet") (1723 . "ample")
    (1724 . "amplifier") (1725 . "amplify") (1726 . "amply")
    (1727 . "amuck") (1728 . "backshift") (1729 . "backlog")
    (1730 . "backpack") (1731 . "backpedal") (1732 . "backrest")
    (1733 . "backroom") (1734 . "awhile") (1735 . "avoid")
    (1736 . "await") (1737 . "awaken") (1738 . "award")
    (1739 . "aware") (1740 . "babble") (1741 . "awkward")
    (1742 . "awning") (1743 . "awoke") (1744 . "awry")
    (1745 . "axis") (1746 . "backboned") (1747 . "babbling")
    (1748 . "babied") (1749 . "baboon") (1750 . "backache")
    (1751 . "backboard") (1752 . "backhand") (1753 . "backdrop")
    (1754 . "backed") (1755 . "backer") (1756 . "backfield")
    (1757 . "backfire") (1758 . "backlit") (1759 . "backing")
    (1760 . "backlands") (1761 . "backlash") (1762 . "backless")
    (1763 . "backlight") (1764 . "anyway") (1765 . "anymore")
    (1766 . "anyone") (1767 . "anyplace") (1768 . "anything")
    (1769 . "anytime") (1770 . "antarctic") (1771 . "annuity")
    (1772 . "anointer") (1773 . "another") (1774 . "answering")
    (1775 . "antacid") (1776 . "anthology") (1777 . "anteater")
    (1778 . "antelope") (1779 . "antennae") (1780 . "anthem")
    (1781 . "anthill") (1782 . "antiques") (1783 . "antibody")
    (1784 . "antics") (1785 . "antidote") (1786 . "antihero")
    (1787 . "antiquely") (1788 . "antivirus") (1789 . "antiquity")
    (1790 . "antirust") (1791 . "antitoxic") (1792 . "antitrust")
    (1793 . "antiviral") (1794 . "anyhow") (1795 . "antler")
    (1796 . "antonym") (1797 . "antsy") (1798 . "anvil")
    (1799 . "anybody") (1800 . "ardently") (1801 . "aptly")
    (1802 . "aqua") (1803 . "aqueduct") (1804 . "arbitrary")
    (1805 . "arbitrate") (1806 . "appear") (1807 . "anywhere")
    (1808 . "aorta") (1809 . "apache") (1810 . "apostle")
    (1811 . "appealing") (1812 . "appetizer") (1813 . "appease")
    (1814 . "appeasing") (1815 . "appendage") (1816 . "appendix")
    (1817 . "appetite") (1818 . "applied") (1819 . "applaud")
    (1820 . "applause") (1821 . "apple") (1822 . "appliance")
    (1823 . "applicant") (1824 . "approach") (1825 . "apply")
    (1826 . "appointee") (1827 . "appraisal") (1828 . "appraiser")
    (1829 . "apprehend") (1830 . "aptitude") (1831 . "approval")
    (1832 . "approve") (1833 . "apricot") (1834 . "april")
    (1835 . "apron") (1836 . "ascertain") (1837 . "arson")
    (1838 . "art") (1839 . "ascend") (1840 . "ascension")
    (1841 . "ascent") (1842 . "arise") (1843 . "area")
    (1844 . "arena") (1845 . "arguable") (1846 . "arguably")
    (1847 . "argue") (1848 . "armhole") (1849 . "armadillo")
    (1850 . "armband") (1851 . "armchair") (1852 . "armed")
    (1853 . "armful") (1854 . "armrest") (1855 . "arming")
    (1856 . "armless") (1857 . "armoire") (1858 . "armored")
    (1859 . "armory") (1860 . "arrange") (1861 . "army")
    (1862 . "aroma") (1863 . "arose") (1864 . "around")
    (1865 . "arousal") (1866 . "arrogant") (1867 . "array")
    (1868 . "arrest") (1869 . "arrival") (1870 . "arrive")
    (1871 . "arrogance") (1872 . "attic") (1873 . "attendant")
    (1874 . "attendee") (1875 . "attention") (1876 . "attentive")
    (1877 . "attest") (1878 . "askew") (1879 . "ashamed")
    (1880 . "ashen") (1881 . "ashes") (1882 . "ashy")
    (1883 . "aside") (1884 . "aspirin") (1885 . "asleep")
    (1886 . "asparagus") (1887 . "aspect") (1888 . "aspirate")
    (1889 . "aspire") (1890 . "astronomy") (1891 . "astonish")
    (1892 . "astound") (1893 . "astride") (1894 . "astrology")
    (1895 . "astronaut") (1896 . "atop") (1897 . "astute")
    (1898 . "atlantic") (1899 . "atlas") (1900 . "atom")
    (1901 . "atonable") (1902 . "attempt") (1903 . "atrium")
    (1904 . "atrocious") (1905 . "atrophy") (1906 . "attach")
    (1907 . "attain") (1908 . "avid") (1909 . "average")
    (1910 . "aversion") (1911 . "avert") (1912 . "aviation")
    (1913 . "aviator") (1914 . "auction") (1915 . "attire")
    (1916 . "attitude") (1917 . "attractor") (1918 . "attribute")
    (1919 . "atypical") (1920 . "audio") (1921 . "audacious")
    (1922 . "audacity") (1923 . "audible") (1924 . "audibly")
    (1925 . "audience") (1926 . "autism") (1927 . "audition")
    (1928 . "augmented") (1929 . "august") (1930 . "authentic")
    (1931 . "author") (1932 . "autopilot") (1933 . "autistic")
    (1934 . "autograph") (1935 . "automaker") (1936 . "automated")
    (1937 . "automatic") (1938 . "avenue") (1939 . "available")
    (1940 . "avalanche") (1941 . "avatar") (1942 . "avenge")
    (1943 . "avenging") (1944 . "bouncy") (1945 . "bottle")
    (1946 . "bottling") (1947 . "bottom") (1948 . "bounce")
    (1949 . "bouncing") (1950 . "bonus") (1951 . "bonelike")
    (1952 . "boney") (1953 . "bonfire") (1954 . "bonnet")
    (1955 . "bonsai") (1956 . "booted") (1957 . "bony")
    (1958 . "boogeyman") (1959 . "boogieman") (1960 . "book")
    (1961 . "boondocks") (1962 . "boots") (1963 . "booth")
    (1964 . "bootie") (1965 . "booting") (1966 . "bootlace")
    (1967 . "bootleg") (1968 . "borrowing") (1969 . "boozy")
    (1970 . "borax") (1971 . "boring") (1972 . "borough")
    (1973 . "borrower") (1974 . "both") (1975 . "boss")
    (1976 . "botanical") (1977 . "botanist") (1978 . "botany")
    (1979 . "botch") (1980 . "bakeshop") (1981 . "baggy")
    (1982 . "bagpipe") (1983 . "baguette") (1984 . "baked")
    (1985 . "bakery") (1986 . "backstage") (1987 . "backside")
    (1988 . "backslid") (1989 . "backspace") (1990 . "backspin")
    (1991 . "backstab") (1992 . "backwater") (1993 . "backtalk")
    (1994 . "backtrack") (1995 . "backup") (1996 . "backward")
    (1997 . "backwash") (1998 . "badge") (1999 . "backyard")
    (2000 . "bacon") (2001 . "bacteria") (2002 . "bacterium")
    (2003 . "badass") (2004 . "bagel") (2005 . "badland")
    (2006 . "badly") (2007 . "badness") (2008 . "baffle")
    (2009 . "baffling") (2010 . "bagging") (2011 . "bagful")
    (2012 . "baggage") (2013 . "bagged") (2014 . "baggie")
    (2015 . "bagginess") (2016 . "barometer") (2017 . "baritone")
    (2018 . "barley") (2019 . "barmaid") (2020 . "barman")
    (2021 . "barn") (2022 . "balsamic") (2023 . "baking")
    (2024 . "balance") (2025 . "balancing") (2026 . "balcony")
    (2027 . "balmy") (2028 . "bankable") (2029 . "bamboo")
    (2030 . "banana") (2031 . "banish") (2032 . "banister")
    (2033 . "banjo") (2034 . "bankroll") (2035 . "bankbook")
    (2036 . "banked") (2037 . "banker") (2038 . "banking")
    (2039 . "banknote") (2040 . "barbed") (2041 . "banner")
    (2042 . "bannister") (2043 . "banshee") (2044 . "banter")
    (2045 . "barbecue") (2046 . "barista") (2047 . "barbell")
    (2048 . "barber") (2049 . "barcode") (2050 . "barge")
    (2051 . "bargraph") (2052 . "blanching") (2053 . "bladder")
    (2054 . "blade") (2055 . "blah") (2056 . "blame")
    (2057 . "blaming") (2058 . "barrier") (2059 . "barrack")
    (2060 . "barracuda") (2061 . "barrel") (2062 . "barrette")
    (2063 . "barricade") (2064 . "basics") (2065 . "barstool")
    (2066 . "bartender") (2067 . "barterer") (2068 . "bash")
    (2069 . "basically") (2070 . "batch") (2071 . "basil")
    (2072 . "basin") (2073 . "basis") (2074 . "basket")
    (2075 . "batboy") (2076 . "battering") (2077 . "bath")
    (2078 . "baton") (2079 . "bats") (2080 . "battalion")
    (2081 . "battered") (2082 . "blabber") (2083 . "battery")
    (2084 . "batting") (2085 . "battle") (2086 . "bauble")
    (2087 . "bazooka") (2088 . "blubber") (2089 . "bloomers")
    (2090 . "blooming") (2091 . "blooper") (2092 . "blot")
    (2093 . "blouse") (2094 . "blatancy") (2095 . "blandness")
    (2096 . "blank") (2097 . "blaspheme") (2098 . "blasphemy")
    (2099 . "blast") (2100 . "bleep") (2101 . "blatantly")
    (2102 . "blazer") (2103 . "blazing") (2104 . "bleach")
    (2105 . "bleak") (2106 . "bling") (2107 . "blemish")
    (2108 . "blend") (2109 . "bless") (2110 . "blighted")
    (2111 . "blimp") (2112 . "blissful") (2113 . "blinked")
    (2114 . "blinker") (2115 . "blinking") (2116 . "blinks")
    (2117 . "blip") (2118 . "blog") (2119 . "blitz")
    (2120 . "blizzard") (2121 . "bloated") (2122 . "bloating")
    (2123 . "blob") (2124 . "boneless") (2125 . "bonded")
    (2126 . "bonding") (2127 . "bondless") (2128 . "boned")
    (2129 . "bonehead") (2130 . "blurred") (2131 . "bluff")
    (2132 . "bluish") (2133 . "blunderer") (2134 . "blunt")
    (2135 . "blurb") (2136 . "boastful") (2137 . "blurry")
    (2138 . "blurt") (2139 . "blush") (2140 . "blustery")
    (2141 . "boaster") (2142 . "bobcat") (2143 . "boasting")
    (2144 . "boat") (2145 . "bobbed") (2146 . "bobbing")
    (2147 . "bobble") (2148 . "boggle") (2149 . "bobsled")
    (2150 . "bobtail") (2151 . "bodacious") (2152 . "body")
    (2153 . "bogged") (2154 . "bonanza") (2155 . "bogus")
    (2156 . "boil") (2157 . "bok") (2158 . "bolster")
    (2159 . "bolt") (2160 . "carnage") (2161 . "cargo")
    (2162 . "caring") (2163 . "carless") (2164 . "carload")
    (2165 . "carmaker") (2166 . "capitol") (2167 . "capably")
    (2168 . "capacity") (2169 . "cape") (2170 . "capillary")
    (2171 . "capital") (2172 . "captivate") (2173 . "capped")
    (2174 . "capricorn") (2175 . "capsize") (2176 . "capsule")
    (2177 . "caption") (2178 . "caravan") (2179 . "captive")
    (2180 . "captivity") (2181 . "capture") (2182 . "caramel")
    (2183 . "carat") (2184 . "cardinal") (2185 . "carbon")
    (2186 . "cardboard") (2187 . "carded") (2188 . "cardiac")
    (2189 . "cardigan") (2190 . "caretaker") (2191 . "cardstock")
    (2192 . "carefully") (2193 . "caregiver") (2194 . "careless")
    (2195 . "caress") (2196 . "brittle") (2197 . "brink")
    (2198 . "brisket") (2199 . "briskly") (2200 . "briskness")
    (2201 . "bristle") (2202 . "boxer") (2203 . "bounding")
    (2204 . "boundless") (2205 . "bountiful") (2206 . "bovine")
    (2207 . "boxcar") (2208 . "breeches") (2209 . "boxing")
    (2210 . "boxlike") (2211 . "boxy") (2212 . "breach")
    (2213 . "breath") (2214 . "brethren") (2215 . "breeching")
    (2216 . "breeder") (2217 . "breeding") (2218 . "breeze")
    (2219 . "breezy") (2220 . "bride") (2221 . "brewery")
    (2222 . "brewing") (2223 . "briar") (2224 . "bribe")
    (2225 . "brick") (2226 . "bring") (2227 . "bridged")
    (2228 . "brigade") (2229 . "bright") (2230 . "brilliant")
    (2231 . "brim") (2232 . "bucket") (2233 . "bubble")
    (2234 . "bubbling") (2235 . "bubbly") (2236 . "buccaneer")
    (2237 . "bucked") (2238 . "broadside") (2239 . "broadband")
    (2240 . "broadcast") (2241 . "broaden") (2242 . "broadly")
    (2243 . "broadness") (2244 . "bronchial") (2245 . "broadways")
    (2246 . "broiler") (2247 . "broiling") (2248 . "broken")
    (2249 . "broker") (2250 . "brought") (2251 . "bronco")
    (2252 . "bronze") (2253 . "bronzing") (2254 . "brook")
    (2255 . "broom") (2256 . "brunch") (2257 . "browbeat")
    (2258 . "brownnose") (2259 . "browse") (2260 . "browsing")
    (2261 . "bruising") (2262 . "brutishly") (2263 . "brunette")
    (2264 . "brunt") (2265 . "brush") (2266 . "brussels")
    (2267 . "brute") (2268 . "bungee") (2269 . "bullseye")
    (2270 . "bullwhip") (2271 . "bully") (2272 . "bunch")
    (2273 . "bundle") (2274 . "buddhism") (2275 . "buckle")
    (2276 . "buckshot") (2277 . "buckskin") (2278 . "bucktooth")
    (2279 . "buckwheat") (2280 . "buffed") (2281 . "buddhist")
    (2282 . "budding") (2283 . "buddy") (2284 . "budget")
    (2285 . "buffalo") (2286 . "bulge") (2287 . "buffer")
    (2288 . "buffing") (2289 . "buffoon") (2290 . "buggy")
    (2291 . "bulb") (2292 . "bullfight") (2293 . "bulginess")
    (2294 . "bulgur") (2295 . "bulk") (2296 . "bulldog")
    (2297 . "bulldozer") (2298 . "bullring") (2299 . "bullfrog")
    (2300 . "bullhorn") (2301 . "bullion") (2302 . "bullish")
    (2303 . "bullpen") (2304 . "calculus") (2305 . "cake")
    (2306 . "calamari") (2307 . "calamity") (2308 . "calcium")
    (2309 . "calculate") (2310 . "bunt") (2311 . "bunion")
    (2312 . "bunkbed") (2313 . "bunkhouse") (2314 . "bunkmate")
    (2315 . "bunny") (2316 . "busybody") (2317 . "busboy")
    (2318 . "bush") (2319 . "busily") (2320 . "busload")
    (2321 . "bust") (2322 . "cable") (2323 . "buzz")
    (2324 . "cabana") (2325 . "cabbage") (2326 . "cabbie")
    (2327 . "cabdriver") (2328 . "caddie") (2329 . "caboose")
    (2330 . "cache") (2331 . "cackle") (2332 . "cacti")
    (2333 . "cactus") (2334 . "cahoots") (2335 . "caddy")
    (2336 . "cadet") (2337 . "cadillac") (2338 . "cadmium")
    (2339 . "cage") (2340 . "capable") (2341 . "canon")
    (2342 . "canopener") (2343 . "canopy") (2344 . "canteen")
    (2345 . "canyon") (2346 . "calzone") (2347 . "caliber")
    (2348 . "calibrate") (2349 . "calm") (2350 . "caloric")
    (2351 . "calorie") (2352 . "campfire") (2353 . "camcorder")
    (2354 . "cameo") (2355 . "camera") (2356 . "camisole")
    (2357 . "camper") (2358 . "cancel") (2359 . "camping")
    (2360 . "campsite") (2361 . "campus") (2362 . "canal")
    (2363 . "canary") (2364 . "canister") (2365 . "candied")
    (2366 . "candle") (2367 . "candy") (2368 . "cane")
    (2369 . "canine") (2370 . "canola") (2371 . "cannabis")
    (2372 . "canned") (2373 . "canning") (2374 . "cannon")
    (2375 . "cannot") (2376 . "clarinet") (2377 . "clanking")
    (2378 . "clapped") (2379 . "clapper") (2380 . "clapping")
    (2381 . "clarify") (2382 . "cinch") (2383 . "chunk")
    (2384 . "churn") (2385 . "chute") (2386 . "cider")
    (2387 . "cilantro") (2388 . "circulate") (2389 . "cinema")
    (2390 . "cinnamon") (2391 . "circle") (2392 . "circling")
    (2393 . "circular") (2394 . "citric") (2395 . "circus")
    (2396 . "citable") (2397 . "citadel") (2398 . "citation")
    (2399 . "citizen") (2400 . "claim") (2401 . "citrus")
    (2402 . "city") (2403 . "civic") (2404 . "civil")
    (2405 . "clad") (2406 . "clang") (2407 . "clambake")
    (2408 . "clammy") (2409 . "clamor") (2410 . "clamp")
    (2411 . "clamshell") (2412 . "cataract") (2413 . "catacomb")
    (2414 . "catalog") (2415 . "catalyst") (2416 . "catalyze")
    (2417 . "catapult") (2418 . "carpentry") (2419 . "carnation")
    (2420 . "carnival") (2421 . "carnivore") (2422 . "carol")
    (2423 . "carpenter") (2424 . "carry") (2425 . "carpool")
    (2426 . "carport") (2427 . "carried") (2428 . "carrot")
    (2429 . "carrousel") (2430 . "cartwheel") (2431 . "cartel")
    (2432 . "cartload") (2433 . "carton") (2434 . "cartoon")
    (2435 . "cartridge") (2436 . "cash") (2437 . "carve")
    (2438 . "carving") (2439 . "carwash") (2440 . "cascade")
    (2441 . "case") (2442 . "casualty") (2443 . "casing")
    (2444 . "casino") (2445 . "casket") (2446 . "cassette")
    (2447 . "casually") (2448 . "celery") (2449 . "cavalier")
    (2450 . "cavalry") (2451 . "caviar") (2452 . "cavity")
    (2453 . "cedar") (2454 . "catchy") (2455 . "catatonic")
    (2456 . "catcall") (2457 . "catchable") (2458 . "catcher")
    (2459 . "catching") (2460 . "cathouse") (2461 . "caterer")
    (2462 . "catering") (2463 . "catfight") (2464 . "catfish")
    (2465 . "cathedral") (2466 . "cattishly") (2467 . "catlike")
    (2468 . "catnap") (2469 . "catnip") (2470 . "catsup")
    (2471 . "cattail") (2472 . "causal") (2473 . "cattle")
    (2474 . "catty") (2475 . "catwalk") (2476 . "caucasian")
    (2477 . "caucus") (2478 . "cautious") (2479 . "causation")
    (2480 . "cause") (2481 . "causing") (2482 . "cauterize")
    (2483 . "caution") (2484 . "charcoal") (2485 . "chapped")
    (2486 . "chaps") (2487 . "chapter") (2488 . "character")
    (2489 . "charbroil") (2490 . "census") (2491 . "celestial")
    (2492 . "celibacy") (2493 . "celibate") (2494 . "celtic")
    (2495 . "cement") (2496 . "certify") (2497 . "ceramics")
    (2498 . "ceremony") (2499 . "certainly") (2500 . "certainty")
    (2501 . "certified") (2502 . "chair") (2503 . "cesarean")
    (2504 . "cesspool") (2505 . "chafe") (2506 . "chaffing")
    (2507 . "chain") (2508 . "chance") (2509 . "chalice")
    (2510 . "challenge") (2511 . "chamber") (2512 . "chamomile")
    (2513 . "champion") (2514 . "chaplain") (2515 . "change")
    (2516 . "channel") (2517 . "chant") (2518 . "chaos")
    (2519 . "chaperone") (2520 . "chewing") (2521 . "chest")
    (2522 . "chevron") (2523 . "chevy") (2524 . "chewable")
    (2525 . "chewer") (2526 . "charred") (2527 . "charger")
    (2528 . "charging") (2529 . "chariot") (2530 . "charity")
    (2531 . "charm") (2532 . "chastise") (2533 . "charter")
    (2534 . "charting") (2535 . "chase") (2536 . "chasing")
    (2537 . "chaste") (2538 . "cheating") (2539 . "chastity")
    (2540 . "chatroom") (2541 . "chatter") (2542 . "chatting")
    (2543 . "chatty") (2544 . "chef") (2545 . "cheddar")
    (2546 . "cheek") (2547 . "cheer") (2548 . "cheese")
    (2549 . "cheesy") (2550 . "chess") (2551 . "chemicals")
    (2552 . "chemist") (2553 . "chemo") (2554 . "cherisher")
    (2555 . "cherub") (2556 . "chump") (2557 . "chrome")
    (2558 . "chubby") (2559 . "chuck") (2560 . "chug")
    (2561 . "chummy") (2562 . "childish") (2563 . "chewy")
    (2564 . "chief") (2565 . "chihuahua") (2566 . "childcare")
    (2567 . "childhood") (2568 . "chip") (2569 . "childless")
    (2570 . "childlike") (2571 . "chili") (2572 . "chill")
    (2573 . "chimp") (2574 . "chloride") (2575 . "chirping")
    (2576 . "chirpy") (2577 . "chitchat") (2578 . "chivalry")
    (2579 . "chive") (2580 . "chooser") (2581 . "chlorine")
    (2582 . "choice") (2583 . "chokehold") (2584 . "choking")
    (2585 . "chomp") (2586 . "chowtime") (2587 . "choosing")
    (2588 . "choosy") (2589 . "chop") (2590 . "chosen")
    (2591 . "chowder") (2592 . "five") (2593 . "finite")
    (2594 . "finless") (2595 . "finlike") (2596 . "fiscally")
    (2597 . "fit") (2598 . "fifty") (2599 . "fidgeting")
    (2600 . "fidgety") (2601 . "fifteen") (2602 . "fifth")
    (2603 . "fiftieth") (2604 . "filler") (2605 . "figment")
    (2606 . "figure") (2607 . "figurine") (2608 . "filing")
    (2609 . "filled") (2610 . "finale") (2611 . "filling")
    (2612 . "film") (2613 . "filter") (2614 . "filth")
    (2615 . "filtrate") (2616 . "finch") (2617 . "finalist")
    (2618 . "finalize") (2619 . "finally") (2620 . "finance")
    (2621 . "financial") (2622 . "finishing") (2623 . "fineness")
    (2624 . "finer") (2625 . "finicky") (2626 . "finished")
    (2627 . "finisher") (2628 . "exfoliate") (2629 . "exemplify")
    (2630 . "exemption") (2631 . "exerciser") (2632 . "exert")
    (2633 . "exes") (2634 . "evolution") (2635 . "evict")
    (2636 . "evidence") (2637 . "evident") (2638 . "evil")
    (2639 . "evoke") (2640 . "excavator") (2641 . "evolve")
    (2642 . "exact") (2643 . "exalted") (2644 . "example")
    (2645 . "excavate") (2646 . "exciting") (2647 . "exceeding")
    (2648 . "exception") (2649 . "excess") (2650 . "exchange")
    (2651 . "excitable") (2652 . "excretion") (2653 . "exclaim")
    (2654 . "exclude") (2655 . "excluding") (2656 . "exclusion")
    (2657 . "exclusive") (2658 . "exemplary") (2659 . "excretory")
    (2660 . "excursion") (2661 . "excusable") (2662 . "excusably")
    (2663 . "excuse") (2664 . "exposure") (2665 . "exploring")
    (2666 . "exponent") (2667 . "exporter") (2668 . "exposable")
    (2669 . "expose") (2670 . "exit") (2671 . "exhale")
    (2672 . "exhaust") (2673 . "exhume") (2674 . "exile")
    (2675 . "existing") (2676 . "expanse") (2677 . "exodus")
    (2678 . "exonerate") (2679 . "exorcism") (2680 . "exorcist")
    (2681 . "expand") (2682 . "expel") (2683 . "expansion")
    (2684 . "expansive") (2685 . "expectant") (2686 . "expedited")
    (2687 . "expediter") (2688 . "expiring") (2689 . "expend")
    (2690 . "expenses") (2691 . "expensive") (2692 . "expert")
    (2693 . "expire") (2694 . "explore") (2695 . "explain")
    (2696 . "expletive") (2697 . "explicit") (2698 . "explode")
    (2699 . "exploit") (2700 . "factual") (2701 . "facsimile")
    (2702 . "faction") (2703 . "factoid") (2704 . "factor")
    (2705 . "factsheet") (2706 . "extent") (2707 . "express")
    (2708 . "expulsion") (2709 . "exquisite") (2710 . "extended")
    (2711 . "extending") (2712 . "extradite") (2713 . "extenuate")
    (2714 . "exterior") (2715 . "external") (2716 . "extinct")
    (2717 . "extortion") (2718 . "fable") (2719 . "extras")
    (2720 . "extrovert") (2721 . "extrude") (2722 . "extruding")
    (2723 . "exuberant") (2724 . "faceless") (2725 . "fabric")
    (2726 . "fabulous") (2727 . "facebook") (2728 . "facecloth")
    (2729 . "facedown") (2730 . "facing") (2731 . "facelift")
    (2732 . "faceplate") (2733 . "faceted") (2734 . "facial")
    (2735 . "facility") (2736 . "feast") (2737 . "favorably")
    (2738 . "favored") (2739 . "favoring") (2740 . "favorite")
    (2741 . "fax") (2742 . "fall") (2743 . "faculty")
    (2744 . "fade") (2745 . "fading") (2746 . "failing")
    (2747 . "falcon") (2748 . "famine") (2749 . "false")
    (2750 . "falsify") (2751 . "fame") (2752 . "familiar")
    (2753 . "family") (2754 . "fanfare") (2755 . "famished")
    (2756 . "fanatic") (2757 . "fancied") (2758 . "fanciness")
    (2759 . "fancy") (2760 . "fascism") (2761 . "fang")
    (2762 . "fanning") (2763 . "fantasize") (2764 . "fantastic")
    (2765 . "fantasy") (2766 . "favorable") (2767 . "fastball")
    (2768 . "faster") (2769 . "fasting") (2770 . "fastness")
    (2771 . "faucet") (2772 . "fidelity") (2773 . "fever")
    (2774 . "fiber") (2775 . "fiction") (2776 . "fiddle")
    (2777 . "fiddling") (2778 . "feisty") (2779 . "federal")
    (2780 . "fedora") (2781 . "feeble") (2782 . "feed")
    (2783 . "feel") (2784 . "feminize") (2785 . "feline")
    (2786 . "felt-tip") (2787 . "feminine") (2788 . "feminism")
    (2789 . "feminist") (2790 . "fernlike") (2791 . "femur")
    (2792 . "fence") (2793 . "fencing") (2794 . "fender")
    (2795 . "ferment") (2796 . "fervor") (2797 . "ferocious")
    (2798 . "ferocity") (2799 . "ferret") (2800 . "ferris")
    (2801 . "ferry") (2802 . "fetch") (2803 . "fester")
    (2804 . "festival") (2805 . "festive") (2806 . "festivity")
    (2807 . "fetal") (2808 . "cut") (2809 . "custody")
    (2810 . "customary") (2811 . "customer") (2812 . "customize")
    (2813 . "customs") (2814 . "curator") (2815 . "cupcake")
    (2816 . "cupid") (2817 . "cupped") (2818 . "cupping")
    (2819 . "curable") (2820 . "curler") (2821 . "curdle")
    (2822 . "cure") (2823 . "curfew") (2824 . "curing")
    (2825 . "curled") (2826 . "cursive") (2827 . "curliness")
    (2828 . "curling") (2829 . "curly") (2830 . "curry")
    (2831 . "curse") (2832 . "curve") (2833 . "cursor")
    (2834 . "curtain") (2835 . "curtly") (2836 . "curtsy")
    (2837 . "curvature") (2838 . "custodian") (2839 . "curvy")
    (2840 . "cushy") (2841 . "cusp") (2842 . "cussed")
    (2843 . "custard") (2844 . "cosponsor") (2845 . "cortex")
    (2846 . "cosigner") (2847 . "cosmetics") (2848 . "cosmic")
    (2849 . "cosmos") (2850 . "cork") (2851 . "coping")
    (2852 . "copious") (2853 . "copper") (2854 . "copy")
    (2855 . "coral") (2856 . "corner") (2857 . "cornball")
    (2858 . "cornbread") (2859 . "corncob") (2860 . "cornea")
    (2861 . "corned") (2862 . "corny") (2863 . "cornfield")
    (2864 . "cornflake") (2865 . "cornhusk") (2866 . "cornmeal")
    (2867 . "cornstalk") (2868 . "correct") (2869 . "coronary")
    (2870 . "coroner") (2871 . "corporal") (2872 . "corporate")
    (2873 . "corral") (2874 . "corset") (2875 . "corridor")
    (2876 . "corrode") (2877 . "corroding") (2878 . "corrosive")
    (2879 . "corsage") (2880 . "cranial") (2881 . "craftwork")
    (2882 . "crafty") (2883 . "cramp") (2884 . "cranberry")
    (2885 . "crane") (2886 . "could") (2887 . "cost")
    (2888 . "cottage") (2889 . "cotton") (2890 . "couch")
    (2891 . "cough") (2892 . "county") (2893 . "countable")
    (2894 . "countdown") (2895 . "counting") (2896 . "countless")
    (2897 . "country") (2898 . "coyness") (2899 . "courier")
    (2900 . "covenant") (2901 . "cover") (2902 . "coveted")
    (2903 . "coveting") (2904 . "crablike") (2905 . "cozily")
    (2906 . "coziness") (2907 . "cozy") (2908 . "crabbing")
    (2909 . "crabgrass") (2910 . "craftsman") (2911 . "crabmeat")
    (2912 . "cradle") (2913 . "cradling") (2914 . "crafter")
    (2915 . "craftily") (2916 . "crestless") (2917 . "crepe")
    (2918 . "crept") (2919 . "crescent") (2920 . "crested")
    (2921 . "cresting") (2922 . "crawfish") (2923 . "cranium")
    (2924 . "crank") (2925 . "crate") (2926 . "crave")
    (2927 . "craving") (2928 . "crazily") (2929 . "crawlers")
    (2930 . "crawling") (2931 . "crayfish") (2932 . "crayon")
    (2933 . "crazed") (2934 . "crease") (2935 . "craziness")
    (2936 . "crazy") (2937 . "creamed") (2938 . "creamer")
    (2939 . "creamlike") (2940 . "creature") (2941 . "creasing")
    (2942 . "creatable") (2943 . "create") (2944 . "creation")
    (2945 . "creative") (2946 . "creole") (2947 . "credible")
    (2948 . "credibly") (2949 . "credit") (2950 . "creed")
    (2951 . "creme") (2952 . "cruelly") (2953 . "crowd")
    (2954 . "crown") (2955 . "crucial") (2956 . "crudely")
    (2957 . "crudeness") (2958 . "cricket") (2959 . "crevice")
    (2960 . "crewless") (2961 . "crewman") (2962 . "crewmate")
    (2963 . "crib") (2964 . "cringing") (2965 . "cried")
    (2966 . "crier") (2967 . "crimp") (2968 . "crimson")
    (2969 . "cringe") (2970 . "crispness") (2971 . "crinkle")
    (2972 . "crinkly") (2973 . "crisped") (2974 . "crisping")
    (2975 . "crisply") (2976 . "crook") (2977 . "crispy")
    (2978 . "criteria") (2979 . "critter") (2980 . "croak")
    (2981 . "crock") (2982 . "crowbar") (2983 . "croon")
    (2984 . "crop") (2985 . "cross") (2986 . "crouch")
    (2987 . "crouton") (2988 . "cupbearer") (2989 . "culpable")
    (2990 . "culprit") (2991 . "cultivate") (2992 . "cultural")
    (2993 . "culture") (2994 . "crumpet") (2995 . "cruelness")
    (2996 . "cruelty") (2997 . "crumb") (2998 . "crummiest")
    (2999 . "crummy") (3000 . "crushable") (3001 . "crumpled")
    (3002 . "cruncher") (3003 . "crunching") (3004 . "crunchy")
    (3005 . "crusader") (3006 . "crying") (3007 . "crushed")
    (3008 . "crusher") (3009 . "crushing") (3010 . "crust")
    (3011 . "crux") (3012 . "cubicle") (3013 . "cryptic")
    (3014 . "crystal") (3015 . "cubbyhole") (3016 . "cube")
    (3017 . "cubical") (3018 . "culminate") (3019 . "cucumber")
    (3020 . "cuddle") (3021 . "cuddly") (3022 . "cufflink")
    (3023 . "culinary") (3024 . "designate") (3025 . "derby")
    (3026 . "derived") (3027 . "desecrate") (3028 . "deserve")
    (3029 . "deserving") (3030 . "dental") (3031 . "denial")
    (3032 . "denim") (3033 . "denote") (3034 . "dense")
    (3035 . "density") (3036 . "departed") (3037 . "dentist")
    (3038 . "denture") (3039 . "deny") (3040 . "deodorant")
    (3041 . "deodorize") (3042 . "deploy") (3043 . "departure")
    (3044 . "depict") (3045 . "deplete") (3046 . "depletion")
    (3047 . "deplored") (3048 . "depress") (3049 . "deport")
    (3050 . "depose") (3051 . "depraved") (3052 . "depravity")
    (3053 . "deprecate") (3054 . "deranged") (3055 . "deprive")
    (3056 . "depth") (3057 . "deputize") (3058 . "deputy")
    (3059 . "derail") (3060 . "darling") (3061 . "darkened")
    (3062 . "darkening") (3063 . "darkish") (3064 . "darkness")
    (3065 . "darkroom") (3066 . "cymbal") (3067 . "cycle")
    (3068 . "cyclic") (3069 . "cycling") (3070 . "cyclist")
    (3071 . "cylinder") (3072 . "dagger") (3073 . "cytoplasm")
    (3074 . "cytoplast") (3075 . "dab") (3076 . "dad")
    (3077 . "daffodil") (3078 . "dallying") (3079 . "daily")
    (3080 . "daintily") (3081 . "dainty") (3082 . "dairy")
    (3083 . "daisy") (3084 . "dandy") (3085 . "dance")
    (3086 . "dancing") (3087 . "dandelion") (3088 . "dander")
    (3089 . "dandruff") (3090 . "daringly") (3091 . "danger")
    (3092 . "dangle") (3093 . "dangling") (3094 . "daredevil")
    (3095 . "dares") (3096 . "debtless") (3097 . "debatable")
    (3098 . "debate") (3099 . "debating") (3100 . "debit")
    (3101 . "debrief") (3102 . "data") (3103 . "darn")
    (3104 . "dart") (3105 . "darwinism") (3106 . "dash")
    (3107 . "dastardly") (3108 . "dawn") (3109 . "datebook")
    (3110 . "dating") (3111 . "daughter") (3112 . "daunting")
    (3113 . "dawdler") (3114 . "daylong") (3115 . "daybed")
    (3116 . "daybreak") (3117 . "daycare") (3118 . "daydream")
    (3119 . "daylight") (3120 . "deafening") (3121 . "dayroom")
    (3122 . "daytime") (3123 . "dazzler") (3124 . "dazzling")
    (3125 . "deacon") (3126 . "dean") (3127 . "deafness")
    (3128 . "dealer") (3129 . "dealing") (3130 . "dealmaker")
    (3131 . "dealt") (3132 . "deduct") (3133 . "decrease")
    (3134 . "decree") (3135 . "dedicate") (3136 . "dedicator")
    (3137 . "deduce") (3138 . "decal") (3139 . "debtor")
    (3140 . "debug") (3141 . "debunk") (3142 . "decade")
    (3143 . "decaf") (3144 . "deceiving") (3145 . "decathlon")
    (3146 . "decay") (3147 . "deceased") (3148 . "deceit")
    (3149 . "deceiver") (3150 . "decibel") (3151 . "december")
    (3152 . "decency") (3153 . "decent") (3154 . "deception")
    (3155 . "deceptive") (3156 . "declared") (3157 . "decidable")
    (3158 . "decimal") (3159 . "decimeter") (3160 . "decipher")
    (3161 . "deck") (3162 . "decoy") (3163 . "decline")
    (3164 . "decode") (3165 . "decompose") (3166 . "decorated")
    (3167 . "decorator") (3168 . "defy") (3169 . "deforest")
    (3170 . "defraud") (3171 . "defrost") (3172 . "deftly")
    (3173 . "defuse") (3174 . "deface") (3175 . "deed")
    (3176 . "deem") (3177 . "deepen") (3178 . "deeply")
    (3179 . "deepness") (3180 . "defective") (3181 . "defacing")
    (3182 . "defame") (3183 . "default") (3184 . "defeat")
    (3185 . "defection") (3186 . "deferred") (3187 . "defendant")
    (3188 . "defender") (3189 . "defense") (3190 . "defensive")
    (3191 . "deferral") (3192 . "definite") (3193 . "defiance")
    (3194 . "defiant") (3195 . "defile") (3196 . "defiling")
    (3197 . "define") (3198 . "defog") (3199 . "deflate")
    (3200 . "deflation") (3201 . "deflator") (3202 . "deflected")
    (3203 . "deflector") (3204 . "deniable") (3205 . "democrat")
    (3206 . "demote") (3207 . "demotion") (3208 . "demystify")
    (3209 . "denatured") (3210 . "deity") (3211 . "degraded")
    (3212 . "degrading") (3213 . "degrease") (3214 . "degree")
    (3215 . "dehydrate") (3216 . "deletion") (3217 . "dejected")
    (3218 . "delay") (3219 . "delegate") (3220 . "delegator")
    (3221 . "delete") (3222 . "delirium") (3223 . "delicacy")
    (3224 . "delicate") (3225 . "delicious") (3226 . "delighted")
    (3227 . "delirious") (3228 . "delusion") (3229 . "deliverer")
    (3230 . "delivery") (3231 . "delouse") (3232 . "delta")
    (3233 . "deluge") (3234 . "democracy") (3235 . "deluxe")
    (3236 . "demanding") (3237 . "demeaning") (3238 . "demeanor")
    (3239 . "demise") (3240 . "doorway") (3241 . "doormat")
    (3242 . "doornail") (3243 . "doorpost") (3244 . "doorstep")
    (3245 . "doorstop") (3246 . "dodge") (3247 . "doable")
    (3248 . "docile") (3249 . "dock") (3250 . "doctrine")
    (3251 . "document") (3252 . "dollhouse") (3253 . "dodgy")
    (3254 . "doily") (3255 . "doing") (3256 . "dole")
    (3257 . "dollar") (3258 . "domestic") (3259 . "dollop")
    (3260 . "dolly") (3261 . "dolphin") (3262 . "domain")
    (3263 . "domelike") (3264 . "donor") (3265 . "dominion")
    (3266 . "dominoes") (3267 . "donated") (3268 . "donation")
    (3269 . "donator") (3270 . "doorman") (3271 . "donut")
    (3272 . "doodle") (3273 . "doorbell") (3274 . "doorframe")
    (3275 . "doorknob") (3276 . "devotee") (3277 . "deviation")
    (3278 . "deviator") (3279 . "device") (3280 . "devious")
    (3281 . "devotedly") (3282 . "deskwork") (3283 . "designed")
    (3284 . "designer") (3285 . "designing") (3286 . "deskbound")
    (3287 . "desktop") (3288 . "destitute") (3289 . "desolate")
    (3290 . "despair") (3291 . "despise") (3292 . "despite")
    (3293 . "destiny") (3294 . "detector") (3295 . "destruct")
    (3296 . "detached") (3297 . "detail") (3298 . "detection")
    (3299 . "detective") (3300 . "detoxify") (3301 . "detention")
    (3302 . "detergent") (3303 . "detest") (3304 . "detonate")
    (3305 . "detonator") (3306 . "deviate") (3307 . "detract")
    (3308 . "deuce") (3309 . "devalue") (3310 . "deviancy")
    (3311 . "deviant") (3312 . "dimly") (3313 . "diligent")
    (3314 . "dill") (3315 . "dilute") (3316 . "dime")
    (3317 . "diminish") (3318 . "dexterous") (3319 . "devotion")
    (3320 . "devourer") (3321 . "devouring") (3322 . "devoutly")
    (3323 . "dexterity") (3324 . "diagram") (3325 . "diabetes")
    (3326 . "diabetic") (3327 . "diabolic") (3328 . "diagnoses")
    (3329 . "diagnosis") (3330 . "dice") (3331 . "dial")
    (3332 . "diameter") (3333 . "diaper") (3334 . "diaphragm")
    (3335 . "diary") (3336 . "diffused") (3337 . "dicing")
    (3338 . "dictate") (3339 . "dictation") (3340 . "dictator")
    (3341 . "difficult") (3342 . "diligence") (3343 . "diffuser")
    (3344 . "diffusion") (3345 . "diffusive") (3346 . "dig")
    (3347 . "dilation") (3348 . "discern") (3349 . "disaster")
    (3350 . "disband") (3351 . "disbelief") (3352 . "disburse")
    (3353 . "discard") (3354 . "dingbat") (3355 . "dimmed")
    (3356 . "dimmer") (3357 . "dimness") (3358 . "dimple")
    (3359 . "diner") (3360 . "dinner") (3361 . "dinghy")
    (3362 . "dinginess") (3363 . "dingo") (3364 . "dingy")
    (3365 . "dining") (3366 . "dipping") (3367 . "diocese")
    (3368 . "dioxide") (3369 . "diploma") (3370 . "dipped")
    (3371 . "dipper") (3372 . "direness") (3373 . "directed")
    (3374 . "direction") (3375 . "directive") (3376 . "directly")
    (3377 . "directory") (3378 . "disarray") (3379 . "dirtiness")
    (3380 . "disabled") (3381 . "disagree") (3382 . "disallow")
    (3383 . "disarm") (3384 . "display") (3385 . "dispense")
    (3386 . "dispersal") (3387 . "dispersed") (3388 . "disperser")
    (3389 . "displace") (3390 . "discover") (3391 . "discharge")
    (3392 . "disclose") (3393 . "discolor") (3394 . "discount")
    (3395 . "discourse") (3396 . "dish") (3397 . "discuss")
    (3398 . "disdain") (3399 . "disengage") (3400 . "disfigure")
    (3401 . "disgrace") (3402 . "dislocate") (3403 . "disinfect")
    (3404 . "disjoin") (3405 . "disk") (3406 . "dislike")
    (3407 . "disliking") (3408 . "dismount") (3409 . "dislodge")
    (3410 . "disloyal") (3411 . "dismantle") (3412 . "dismay")
    (3413 . "dismiss") (3414 . "dispatch") (3415 . "disobey")
    (3416 . "disorder") (3417 . "disown") (3418 . "disparate")
    (3419 . "disparity") (3420 . "dizzy") (3421 . "divisibly")
    (3422 . "division") (3423 . "divisive") (3424 . "divorcee")
    (3425 . "dizziness") (3426 . "disregard") (3427 . "displease")
    (3428 . "disposal") (3429 . "dispose") (3430 . "disprove")
    (3431 . "dispute") (3432 . "distill") (3433 . "disrupt")
    (3434 . "dissuade") (3435 . "distance") (3436 . "distant")
    (3437 . "distaste") (3438 . "distrust") (3439 . "distinct")
    (3440 . "distort") (3441 . "distract") (3442 . "distress")
    (3443 . "district") (3444 . "dividend") (3445 . "ditch")
    (3446 . "ditto") (3447 . "ditzy") (3448 . "dividable")
    (3449 . "divided") (3450 . "divisible") (3451 . "dividers")
    (3452 . "dividing") (3453 . "divinely") (3454 . "diving")
    (3455 . "divinity") (3456 . "elf") (3457 . "elevate")
    (3458 . "elevating") (3459 . "elevation") (3460 . "elevator")
    (3461 . "eleven") (3462 . "effective") (3463 . "editor")
    (3464 . "educated") (3465 . "education") (3466 . "educator")
    (3467 . "eel") (3468 . "eggnog") (3469 . "effects")
    (3470 . "efficient") (3471 . "effort") (3472 . "eggbeater")
    (3473 . "egging") (3474 . "either") (3475 . "eggplant")
    (3476 . "eggshell") (3477 . "egomaniac") (3478 . "egotism")
    (3479 . "egotistic") (3480 . "eldercare") (3481 . "eject")
    (3482 . "elaborate") (3483 . "elastic") (3484 . "elated")
    (3485 . "elbow") (3486 . "elephant") (3487 . "elderly")
    (3488 . "eldest") (3489 . "electable") (3490 . "election")
    (3491 . "elective") (3492 . "dreamless") (3493 . "dreadful")
    (3494 . "dreadlock") (3495 . "dreamboat") (3496 . "dreamily")
    (3497 . "dreamland") (3498 . "dose") (3499 . "doozy")
    (3500 . "dork") (3501 . "dormitory") (3502 . "dorsal")
    (3503 . "dosage") (3504 . "dowry") (3505 . "dotted")
    (3506 . "doubling") (3507 . "douche") (3508 . "dove")
    (3509 . "down") (3510 . "dragster") (3511 . "doze")
    (3512 . "drab") (3513 . "dragging") (3514 . "dragonfly")
    (3515 . "dragonish") (3516 . "dramatic") (3517 . "drainable")
    (3518 . "drainage") (3519 . "drained") (3520 . "drainer")
    (3521 . "drainpipe") (3522 . "dreaded") (3523 . "dramatize")
    (3524 . "drank") (3525 . "drapery") (3526 . "drastic")
    (3527 . "draw") (3528 . "drown") (3529 . "dropkick")
    (3530 . "droplet") (3531 . "dropout") (3532 . "dropper")
    (3533 . "drove") (3534 . "drench") (3535 . "dreamlike")
    (3536 . "dreamt") (3537 . "dreamy") (3538 . "drearily")
    (3539 . "dreary") (3540 . "drift") (3541 . "dress")
    (3542 . "drew") (3543 . "dribble") (3544 . "dried")
    (3545 . "drier") (3546 . "drippy") (3547 . "driller")
    (3548 . "drilling") (3549 . "drinkable") (3550 . "drinking")
    (3551 . "dripping") (3552 . "drizzle") (3553 . "drivable")
    (3554 . "driven") (3555 . "driver") (3556 . "driveway")
    (3557 . "driving") (3558 . "dropbox") (3559 . "drizzly")
    (3560 . "drone") (3561 . "drool") (3562 . "droop")
    (3563 . "drop-down") (3564 . "dust") (3565 . "durably")
    (3566 . "duration") (3567 . "duress") (3568 . "during")
    (3569 . "dusk") (3570 . "dubiously") (3571 . "drowsily")
    (3572 . "drudge") (3573 . "drum") (3574 . "dry")
    (3575 . "dubbed") (3576 . "ducky") (3577 . "duchess")
    (3578 . "duckbill") (3579 . "ducking") (3580 . "duckling")
    (3581 . "ducktail") (3582 . "duke") (3583 . "duct")
    (3584 . "dude") (3585 . "duffel") (3586 . "dugout")
    (3587 . "duh") (3588 . "dumpster") (3589 . "duller")
    (3590 . "dullness") (3591 . "duly") (3592 . "dumping")
    (3593 . "dumpling") (3594 . "durable") (3595 . "duo")
    (3596 . "dupe") (3597 . "duplex") (3598 . "duplicate")
    (3599 . "duplicity") (3600 . "earthy") (3601 . "earthen")
    (3602 . "earthlike") (3603 . "earthling") (3604 . "earthly")
    (3605 . "earthworm") (3606 . "dwelled") (3607 . "dutiful")
    (3608 . "duty") (3609 . "duvet") (3610 . "dwarf")
    (3611 . "dweeb") (3612 . "dynamite") (3613 . "dweller")
    (3614 . "dwelling") (3615 . "dwindle") (3616 . "dwindling")
    (3617 . "dynamic") (3618 . "earache") (3619 . "dynasty")
    (3620 . "dyslexia") (3621 . "dyslexic") (3622 . "each")
    (3623 . "eagle") (3624 . "earmark") (3625 . "eardrum")
    (3626 . "earflap") (3627 . "earful") (3628 . "earlobe")
    (3629 . "early") (3630 . "earshot") (3631 . "earmuff")
    (3632 . "earphone") (3633 . "earpiece") (3634 . "earplugs")
    (3635 . "earring") (3636 . "edition") (3637 . "ecosystem")
    (3638 . "edge") (3639 . "edginess") (3640 . "edging")
    (3641 . "edgy") (3642 . "easiness") (3643 . "earwig")
    (3644 . "easeful") (3645 . "easel") (3646 . "easiest")
    (3647 . "easily") (3648 . "eatable") (3649 . "easing")
    (3650 . "eastbound") (3651 . "eastcoast") (3652 . "easter")
    (3653 . "eastward") (3654 . "ebony") (3655 . "eaten")
    (3656 . "eatery") (3657 . "eating") (3658 . "eats")
    (3659 . "ebay") (3660 . "eclipse") (3661 . "ebook")
    (3662 . "ecard") (3663 . "eccentric") (3664 . "echo")
    (3665 . "eclair") (3666 . "ecosphere") (3667 . "ecologist")
    (3668 . "ecology") (3669 . "economic") (3670 . "economist")
    (3671 . "economy") (3672 . "everyone") (3673 . "even")
    (3674 . "everglade") (3675 . "evergreen") (3676 . "everybody")
    (3677 . "everyday") (3678 . "essence") (3679 . "esophagus")
    (3680 . "espionage") (3681 . "espresso") (3682 . "esquire")
    (3683 . "essay") (3684 . "estimator") (3685 . "essential")
    (3686 . "establish") (3687 . "estate") (3688 . "esteemed")
    (3689 . "estimate") (3690 . "ethanol") (3691 . "estranged")
    (3692 . "estrogen") (3693 . "etching") (3694 . "eternal")
    (3695 . "eternity") (3696 . "evacuee") (3697 . "ether")
    (3698 . "ethically") (3699 . "ethics") (3700 . "euphemism")
    (3701 . "evacuate") (3702 . "evasive") (3703 . "evade")
    (3704 . "evaluate") (3705 . "evaluator") (3706 . "evaporate")
    (3707 . "evasion") (3708 . "emission") (3709 . "emboss")
    (3710 . "embroider") (3711 . "emcee") (3712 . "emerald")
    (3713 . "emergency") (3714 . "elixir") (3715 . "eligible")
    (3716 . "eligibly") (3717 . "eliminate") (3718 . "elite")
    (3719 . "elitism") (3720 . "elope") (3721 . "elk")
    (3722 . "ellipse") (3723 . "elliptic") (3724 . "elm")
    (3725 . "elongated") (3726 . "elves") (3727 . "eloquence")
    (3728 . "eloquent") (3729 . "elsewhere") (3730 . "elude")
    (3731 . "elusive") (3732 . "embellish") (3733 . "email")
    (3734 . "embargo") (3735 . "embark") (3736 . "embassy")
    (3737 . "embattled") (3738 . "embolism") (3739 . "ember")
    (3740 . "embezzle") (3741 . "emblaze") (3742 . "emblem")
    (3743 . "embody") (3744 . "encrypt") (3745 . "encore")
    (3746 . "encounter") (3747 . "encourage") (3748 . "encroach")
    (3749 . "encrust") (3750 . "empathy") (3751 . "emit")
    (3752 . "emote") (3753 . "emoticon") (3754 . "emotion")
    (3755 . "empathic") (3756 . "empirical") (3757 . "emperor")
    (3758 . "emphases") (3759 . "emphasis") (3760 . "emphasize")
    (3761 . "emphatic") (3762 . "emptier") (3763 . "employed")
    (3764 . "employee") (3765 . "employer") (3766 . "emporium")
    (3767 . "empower") (3768 . "enamel") (3769 . "emptiness")
    (3770 . "empty") (3771 . "emu") (3772 . "enable")
    (3773 . "enactment") (3774 . "encode") (3775 . "enchanted")
    (3776 . "enchilada") (3777 . "encircle") (3778 . "enclose")
    (3779 . "enclosure") (3780 . "enjoyment") (3781 . "enigmatic")
    (3782 . "enjoyable") (3783 . "enjoyably") (3784 . "enjoyer")
    (3785 . "enjoying") (3786 . "endless") (3787 . "endanger")
    (3788 . "endeared") (3789 . "endearing") (3790 . "ended")
    (3791 . "ending") (3792 . "endpoint") (3793 . "endnote")
    (3794 . "endocrine") (3795 . "endorphin") (3796 . "endorse")
    (3797 . "endowment") (3798 . "energy") (3799 . "endurable")
    (3800 . "endurance") (3801 . "enduring") (3802 . "energetic")
    (3803 . "energize") (3804 . "engorge") (3805 . "enforced")
    (3806 . "enforcer") (3807 . "engaged") (3808 . "engaging")
    (3809 . "engine") (3810 . "enhance") (3811 . "engraved")
    (3812 . "engraver") (3813 . "engraving") (3814 . "engross")
    (3815 . "engulf") (3816 . "enzyme") (3817 . "enviably")
    (3818 . "envious") (3819 . "envision") (3820 . "envoy")
    (3821 . "envy") (3822 . "enrage") (3823 . "enlarged")
    (3824 . "enlarging") (3825 . "enlighten") (3826 . "enlisted")
    (3827 . "enquirer") (3828 . "entail") (3829 . "enrich")
    (3830 . "enroll") (3831 . "enslave") (3832 . "ensnare")
    (3833 . "ensure") (3834 . "entitle") (3835 . "entangled")
    (3836 . "entering") (3837 . "entertain") (3838 . "enticing")
    (3839 . "entire") (3840 . "entrench") (3841 . "entity")
    (3842 . "entomb") (3843 . "entourage") (3844 . "entrap")
    (3845 . "entree") (3846 . "enviable") (3847 . "entrust")
    (3848 . "entryway") (3849 . "entwine") (3850 . "enunciate")
    (3851 . "envelope") (3852 . "eskimo") (3853 . "escalator")
    (3854 . "escapable") (3855 . "escapade") (3856 . "escapist")
    (3857 . "escargot") (3858 . "epilepsy") (3859 . "epic")
    (3860 . "epidemic") (3861 . "epidermal") (3862 . "epidermis")
    (3863 . "epidural") (3864 . "equate") (3865 . "epileptic")
    (3866 . "epilogue") (3867 . "epiphany") (3868 . "episode")
    (3869 . "equal") (3870 . "equivocal") (3871 . "equation")
    (3872 . "equator") (3873 . "equinox") (3874 . "equipment")
    (3875 . "equity") (3876 . "ergonomic") (3877 . "eradicate")
    (3878 . "erasable") (3879 . "erased") (3880 . "eraser")
    (3881 . "erasure") (3882 . "escalate") (3883 . "errand")
    (3884 . "errant") (3885 . "erratic") (3886 . "error")
    (3887 . "erupt") (3888 . "massive") (3889 . "masculine")
    (3890 . "mashed") (3891 . "mashing") (3892 . "massager")
    (3893 . "masses") (3894 . "marbled") (3895 . "manual")
    (3896 . "many") (3897 . "map") (3898 . "marathon")
    (3899 . "marauding") (3900 . "margarita") (3901 . "marbles")
    (3902 . "marbling") (3903 . "march") (3904 . "mardi")
    (3905 . "margarine") (3906 . "maritime") (3907 . "margin")
    (3908 . "marigold") (3909 . "marina") (3910 . "marine")
    (3911 . "marital") (3912 . "marry") (3913 . "marlin")
    (3914 . "marmalade") (3915 . "maroon") (3916 . "married")
    (3917 . "marrow") (3918 . "mascot") (3919 . "marshland")
    (3920 . "marshy") (3921 . "marsupial") (3922 . "marvelous")
    (3923 . "marxism") (3924 . "limb") (3925 . "likewise")
    (3926 . "liking") (3927 . "lilac") (3928 . "lilly")
    (3929 . "lily") (3930 . "letdown") (3931 . "length")
    (3932 . "lens") (3933 . "lent") (3934 . "leotard")
    (3935 . "lesser") (3936 . "leverage") (3937 . "lethargic")
    (3938 . "lethargy") (3939 . "letter") (3940 . "lettuce")
    (3941 . "level") (3942 . "liberty") (3943 . "levers")
    (3944 . "levitate") (3945 . "levitator") (3946 . "liability")
    (3947 . "liable") (3948 . "life") (3949 . "librarian")
    (3950 . "library") (3951 . "licking") (3952 . "licorice")
    (3953 . "lid") (3954 . "likeness") (3955 . "lifter")
    (3956 . "lifting") (3957 . "liftoff") (3958 . "ligament")
    (3959 . "likely") (3960 . "lubricant") (3961 . "liver")
    (3962 . "livestock") (3963 . "lividly") (3964 . "living")
    (3965 . "lizard") (3966 . "limpness") (3967 . "limeade")
    (3968 . "limelight") (3969 . "limes") (3970 . "limit")
    (3971 . "limping") (3972 . "linked") (3973 . "line")
    (3974 . "lingo") (3975 . "linguini") (3976 . "linguist")
    (3977 . "lining") (3978 . "liquefy") (3979 . "linoleum")
    (3980 . "linseed") (3981 . "lint") (3982 . "lion")
    (3983 . "lip") (3984 . "litigator") (3985 . "liqueur")
    (3986 . "liquid") (3987 . "lisp") (3988 . "list")
    (3989 . "litigate") (3990 . "lively") (3991 . "litmus")
    (3992 . "litter") (3993 . "little") (3994 . "livable")
    (3995 . "lived") (3996 . "luxurious") (3997 . "lustfully")
    (3998 . "lustily") (3999 . "lustiness") (4000 . "lustrous")
    (4001 . "lusty") (4002 . "lucrative") (4003 . "lubricate")
    (4004 . "lucid") (4005 . "luckily") (4006 . "luckiness")
    (4007 . "luckless") (4008 . "luminance") (4009 . "ludicrous")
    (4010 . "lugged") (4011 . "lukewarm") (4012 . "lullaby")
    (4013 . "lumber") (4014 . "lunar") (4015 . "luminous")
    (4016 . "lumpiness") (4017 . "lumping") (4018 . "lumpish")
    (4019 . "lunacy") (4020 . "lurch") (4021 . "lunchbox")
    (4022 . "luncheon") (4023 . "lunchroom") (4024 . "lunchtime")
    (4025 . "lung") (4026 . "luster") (4027 . "lure")
    (4028 . "luridness") (4029 . "lurk") (4030 . "lushly")
    (4031 . "lushness") (4032 . "making") (4033 . "majorette")
    (4034 . "majority") (4035 . "makeover") (4036 . "maker")
    (4037 . "makeshift") (4038 . "lyrics") (4039 . "luxury")
    (4040 . "lying") (4041 . "lyrically") (4042 . "lyricism")
    (4043 . "lyricist") (4044 . "machinist") (4045 . "macarena")
    (4046 . "macaroni") (4047 . "macaw") (4048 . "mace")
    (4049 . "machine") (4050 . "magma") (4051 . "magazine")
    (4052 . "magenta") (4053 . "maggot") (4054 . "magical")
    (4055 . "magician") (4056 . "magnify") (4057 . "magnesium")
    (4058 . "magnetic") (4059 . "magnetism") (4060 . "magnetize")
    (4061 . "magnifier") (4062 . "majesty") (4063 . "magnitude")
    (4064 . "magnolia") (4065 . "mahogany") (4066 . "maimed")
    (4067 . "majestic") (4068 . "mantra") (4069 . "manned")
    (4070 . "mannish") (4071 . "manor") (4072 . "manpower")
    (4073 . "mantis") (4074 . "mammogram") (4075 . "malformed")
    (4076 . "malt") (4077 . "mama") (4078 . "mammal")
    (4079 . "mammary") (4080 . "mandatory") (4081 . "manager")
    (4082 . "managing") (4083 . "manatee") (4084 . "mandarin")
    (4085 . "mandate") (4086 . "manhandle") (4087 . "mandolin")
    (4088 . "manger") (4089 . "mangle") (4090 . "mango")
    (4091 . "mangy") (4092 . "manifesto") (4093 . "manhole")
    (4094 . "manhood") (4095 . "manhunt") (4096 . "manicotti")
    (4097 . "manicure") (4098 . "manmade") (4099 . "manila")
    (4100 . "mankind") (4101 . "manlike") (4102 . "manliness")
    (4103 . "manly") (4104 . "garter") (4105 . "garland")
    (4106 . "garlic") (4107 . "garment") (4108 . "garnet")
    (4109 . "garnish") (4110 . "gaining") (4111 . "frying")
    (4112 . "gab") (4113 . "gaffe") (4114 . "gag")
    (4115 . "gainfully") (4116 . "galley") (4117 . "gains")
    (4118 . "gala") (4119 . "gallantly") (4120 . "galleria")
    (4121 . "gallery") (4122 . "gambling") (4123 . "gallon")
    (4124 . "gallows") (4125 . "gallstone") (4126 . "galore")
    (4127 . "galvanize") (4128 . "gangrene") (4129 . "game")
    (4130 . "gaming") (4131 . "gamma") (4132 . "gander")
    (4133 . "gangly") (4134 . "gargle") (4135 . "gangway")
    (4136 . "gap") (4137 . "garage") (4138 . "garbage")
    (4139 . "garden") (4140 . "flavorful") (4141 . "flattery")
    (4142 . "flattop") (4143 . "flatware") (4144 . "flatworm")
    (4145 . "flavored") (4146 . "flagstone") (4147 . "flaccid")
    (4148 . "flagman") (4149 . "flagpole") (4150 . "flagship")
    (4151 . "flagstick") (4152 . "flanked") (4153 . "flail")
    (4154 . "flakily") (4155 . "flaky") (4156 . "flame")
    (4157 . "flammable") (4158 . "flashbulb") (4159 . "flanking")
    (4160 . "flannels") (4161 . "flap") (4162 . "flaring")
    (4163 . "flashback") (4164 . "flatbed") (4165 . "flashcard")
    (4166 . "flashily") (4167 . "flashing") (4168 . "flashy")
    (4169 . "flask") (4170 . "flatterer") (4171 . "flatfoot")
    (4172 . "flatly") (4173 . "flatness") (4174 . "flatten")
    (4175 . "flattered") (4176 . "fondling") (4177 . "foil")
    (4178 . "folic") (4179 . "folk") (4180 . "follicle")
    (4181 . "follow") (4182 . "flick") (4183 . "flavoring")
    (4184 . "flaxseed") (4185 . "fled") (4186 . "fleshed")
    (4187 . "fleshy") (4188 . "flip") (4189 . "flier")
    (4190 . "flight") (4191 . "flinch") (4192 . "fling")
    (4193 . "flint") (4194 . "floral") (4195 . "flirt")
    (4196 . "float") (4197 . "flock") (4198 . "flogging")
    (4199 . "flop") (4200 . "flyer") (4201 . "florist")
    (4202 . "floss") (4203 . "flounder") (4204 . "flyable")
    (4205 . "flyaway") (4206 . "fog") (4207 . "flying")
    (4208 . "flyover") (4209 . "flypaper") (4210 . "foam")
    (4211 . "foe") (4212 . "fragile") (4213 . "fountain")
    (4214 . "fox") (4215 . "foyer") (4216 . "fraction")
    (4217 . "fracture") (4218 . "fool") (4219 . "fondly")
    (4220 . "fondness") (4221 . "fondue") (4222 . "font")
    (4223 . "food") (4224 . "footgear") (4225 . "footage")
    (4226 . "football") (4227 . "footbath") (4228 . "footboard")
    (4229 . "footer") (4230 . "footnote") (4231 . "foothill")
    (4232 . "foothold") (4233 . "footing") (4234 . "footless")
    (4235 . "footman") (4236 . "footsore") (4237 . "footpad")
    (4238 . "footpath") (4239 . "footprint") (4240 . "footrest")
    (4241 . "footsie") (4242 . "founding") (4243 . "footwear")
    (4244 . "footwork") (4245 . "fossil") (4246 . "foster")
    (4247 . "founder") (4248 . "frequency") (4249 . "freezing")
    (4250 . "freight") (4251 . "french") (4252 . "frenzied")
    (4253 . "frenzy") (4254 . "frame") (4255 . "fragility")
    (4256 . "fragment") (4257 . "fragrance") (4258 . "fragrant")
    (4259 . "frail") (4260 . "frays") (4261 . "framing")
    (4262 . "frantic") (4263 . "fraternal") (4264 . "frayed")
    (4265 . "fraying") (4266 . "freedom") (4267 . "freckled")
    (4268 . "freckles") (4269 . "freebase") (4270 . "freebee")
    (4271 . "freebie") (4272 . "freemason") (4273 . "freefall")
    (4274 . "freehand") (4275 . "freeing") (4276 . "freeload")
    (4277 . "freely") (4278 . "freezable") (4279 . "freeness")
    (4280 . "freestyle") (4281 . "freeware") (4282 . "freeway")
    (4283 . "freewill") (4284 . "frustrate") (4285 . "frozen")
    (4286 . "fructose") (4287 . "frugality") (4288 . "frugally")
    (4289 . "fruit") (4290 . "friday") (4291 . "frequent")
    (4292 . "fresh") (4293 . "fretful") (4294 . "fretted")
    (4295 . "friction") (4296 . "frigidity") (4297 . "fridge")
    (4298 . "fried") (4299 . "friend") (4300 . "frighten")
    (4301 . "frightful") (4302 . "fritter") (4303 . "frigidly")
    (4304 . "frill") (4305 . "fringe") (4306 . "frisbee")
    (4307 . "frisk") (4308 . "frosted") (4309 . "frivolous")
    (4310 . "frolic") (4311 . "from") (4312 . "front")
    (4313 . "frostbite") (4314 . "frown") (4315 . "frostily")
    (4316 . "frosting") (4317 . "frostlike") (4318 . "frosty")
    (4319 . "froth") (4320 . "groggily") (4321 . "grinch")
    (4322 . "grinning") (4323 . "grip") (4324 . "gristle")
    (4325 . "grit") (4326 . "gravitate") (4327 . "gratuity")
    (4328 . "gravel") (4329 . "graveness") (4330 . "graves")
    (4331 . "graveyard") (4332 . "greedily") (4333 . "gravity")
    (4334 . "gravy") (4335 . "gray") (4336 . "grazing")
    (4337 . "greasily") (4338 . "grew") (4339 . "greedless")
    (4340 . "greedy") (4341 . "green") (4342 . "greeter")
    (4343 . "greeting") (4344 . "grievous") (4345 . "greyhound")
    (4346 . "grid") (4347 . "grief") (4348 . "grievance")
    (4349 . "grieving") (4350 . "grimy") (4351 . "grill")
    (4352 . "grimace") (4353 . "grimacing") (4354 . "grime")
    (4355 . "griminess") (4356 . "germless") (4357 . "geranium")
    (4358 . "gerbil") (4359 . "geriatric") (4360 . "germicide")
    (4361 . "germinate") (4362 . "gauntlet") (4363 . "gas")
    (4364 . "gatherer") (4365 . "gathering") (4366 . "gating")
    (4367 . "gauging") (4368 . "gecko") (4369 . "gauze")
    (4370 . "gave") (4371 . "gawk") (4372 . "gazing")
    (4373 . "gear") (4374 . "generous") (4375 . "geek")
    (4376 . "geiger") (4377 . "gem") (4378 . "gender")
    (4379 . "generic") (4380 . "gents") (4381 . "genetics")
    (4382 . "genre") (4383 . "gentile") (4384 . "gentleman")
    (4385 . "gently") (4386 . "geometry") (4387 . "geography")
    (4388 . "geologic") (4389 . "geologist") (4390 . "geology")
    (4391 . "geometric") (4392 . "gladly") (4393 . "gizzard")
    (4394 . "glacial") (4395 . "glacier") (4396 . "glade")
    (4397 . "gladiator") (4398 . "getting") (4399 . "germproof")
    (4400 . "gestate") (4401 . "gestation") (4402 . "gesture")
    (4403 . "getaway") (4404 . "giddiness") (4405 . "getup")
    (4406 . "giant") (4407 . "gibberish") (4408 . "giblet")
    (4409 . "giddily") (4410 . "giggle") (4411 . "giddy")
    (4412 . "gift") (4413 . "gigabyte") (4414 . "gigahertz")
    (4415 . "gigantic") (4416 . "gimmick") (4417 . "giggling")
    (4418 . "giggly") (4419 . "gigolo") (4420 . "gilled")
    (4421 . "gills") (4422 . "gizmo") (4423 . "girdle")
    (4424 . "giveaway") (4425 . "given") (4426 . "giver")
    (4427 . "giving") (4428 . "gluten") (4429 . "glove")
    (4430 . "glowing") (4431 . "glowworm") (4432 . "glucose")
    (4433 . "glue") (4434 . "glare") (4435 . "glamorous")
    (4436 . "glamour") (4437 . "glance") (4438 . "glancing")
    (4439 . "glandular") (4440 . "gleeful") (4441 . "glaring")
    (4442 . "glass") (4443 . "glaucoma") (4444 . "glazing")
    (4445 . "gleaming") (4446 . "glitch") (4447 . "glider")
    (4448 . "gliding") (4449 . "glimmer") (4450 . "glimpse")
    (4451 . "glisten") (4452 . "gloomy") (4453 . "glitter")
    (4454 . "glitzy") (4455 . "gloater") (4456 . "gloating")
    (4457 . "gloomily") (4458 . "gloss") (4459 . "glorified")
    (4460 . "glorifier") (4461 . "glorify") (4462 . "glorious")
    (4463 . "glory") (4464 . "gown") (4465 . "gosling")
    (4466 . "gossip") (4467 . "gothic") (4468 . "gotten")
    (4469 . "gout") (4470 . "goatskin") (4471 . "glutinous")
    (4472 . "glutton") (4473 . "gnarly") (4474 . "gnat")
    (4475 . "goal") (4476 . "goldsmith") (4477 . "goes")
    (4478 . "goggles") (4479 . "going") (4480 . "goldfish")
    (4481 . "goldmine") (4482 . "gong") (4483 . "golf")
    (4484 . "goliath") (4485 . "gonad") (4486 . "gondola")
    (4487 . "gone") (4488 . "google") (4489 . "good")
    (4490 . "gooey") (4491 . "goofball") (4492 . "goofiness")
    (4493 . "goofy") (4494 . "gory") (4495 . "goon")
    (4496 . "gopher") (4497 . "gore") (4498 . "gorged")
    (4499 . "gorgeous") (4500 . "gratitude") (4501 . "grasp")
    (4502 . "grass") (4503 . "gratified") (4504 . "gratify")
    (4505 . "grating") (4506 . "graded") (4507 . "grab")
    (4508 . "graceful") (4509 . "graceless") (4510 . "gracious")
    (4511 . "gradation") (4512 . "graffiti") (4513 . "grader")
    (4514 . "gradient") (4515 . "grading") (4516 . "gradually")
    (4517 . "graduate") (4518 . "grandly") (4519 . "grafted")
    (4520 . "grafting") (4521 . "grain") (4522 . "granddad")
    (4523 . "grandkid") (4524 . "granola") (4525 . "grandma")
    (4526 . "grandpa") (4527 . "grandson") (4528 . "granite")
    (4529 . "granny") (4530 . "grappling") (4531 . "grant")
    (4532 . "granular") (4533 . "grape") (4534 . "graph")
    (4535 . "grapple") (4536 . "helpline") (4537 . "helmet")
    (4538 . "helper") (4539 . "helpful") (4540 . "helping")
    (4541 . "helpless") (4542 . "headlamp") (4543 . "headed")
    (4544 . "header") (4545 . "headfirst") (4546 . "headgear")
    (4547 . "heading") (4548 . "headroom") (4549 . "headless")
    (4550 . "headlock") (4551 . "headphone") (4552 . "headpiece")
    (4553 . "headrest") (4554 . "headway") (4555 . "headscarf")
    (4556 . "headset") (4557 . "headsman") (4558 . "headstand")
    (4559 . "headstone") (4560 . "heaviness") (4561 . "headwear")
    (4562 . "heap") (4563 . "heat") (4564 . "heave")
    (4565 . "heavily") (4566 . "helium") (4567 . "heaving")
    (4568 . "hedge") (4569 . "hedging") (4570 . "heftiness")
    (4571 . "hefty") (4572 . "gulp") (4573 . "guileless")
    (4574 . "guise") (4575 . "gulf") (4576 . "gullible")
    (4577 . "gully") (4578 . "groovy") (4579 . "groggy")
    (4580 . "groin") (4581 . "groom") (4582 . "groove")
    (4583 . "grooving") (4584 . "grower") (4585 . "grope")
    (4586 . "ground") (4587 . "grouped") (4588 . "grout")
    (4589 . "grove") (4590 . "grueling") (4591 . "growing")
    (4592 . "growl") (4593 . "grub") (4594 . "grudge")
    (4595 . "grudging") (4596 . "grunge") (4597 . "gruffly")
    (4598 . "grumble") (4599 . "grumbling") (4600 . "grumbly")
    (4601 . "grumpily") (4602 . "guiding") (4603 . "grunt")
    (4604 . "guacamole") (4605 . "guidable") (4606 . "guidance")
    (4607 . "guide") (4608 . "hammock") (4609 . "halt")
    (4610 . "halved") (4611 . "halves") (4612 . "hamburger")
    (4613 . "hamlet") (4614 . "gurgle") (4615 . "gumball")
    (4616 . "gumdrop") (4617 . "gumminess") (4618 . "gumming")
    (4619 . "gummy") (4620 . "gutless") (4621 . "gurgling")
    (4622 . "guru") (4623 . "gush") (4624 . "gusto")
    (4625 . "gusty") (4626 . "habitable") (4627 . "guts")
    (4628 . "gutter") (4629 . "guy") (4630 . "guzzler")
    (4631 . "gyration") (4632 . "hacking") (4633 . "habitant")
    (4634 . "habitat") (4635 . "habitual") (4636 . "hacked")
    (4637 . "hacker") (4638 . "halogen") (4639 . "hacksaw")
    (4640 . "had") (4641 . "haggler") (4642 . "haiku")
    (4643 . "half") (4644 . "handwoven") (4645 . "handsfree")
    (4646 . "handshake") (4647 . "handstand") (4648 . "handwash")
    (4649 . "handwork") (4650 . "handbook") (4651 . "hamper")
    (4652 . "hamster") (4653 . "hamstring") (4654 . "handbag")
    (4655 . "handball") (4656 . "handcuff") (4657 . "handbrake")
    (4658 . "handcart") (4659 . "handclap") (4660 . "handclasp")
    (4661 . "handcraft") (4662 . "handiness") (4663 . "handed")
    (4664 . "handful") (4665 . "handgrip") (4666 . "handgun")
    (4667 . "handheld") (4668 . "handmade") (4669 . "handiwork")
    (4670 . "handlebar") (4671 . "handled") (4672 . "handler")
    (4673 . "handling") (4674 . "handset") (4675 . "handoff")
    (4676 . "handpick") (4677 . "handprint") (4678 . "handrail")
    (4679 . "handsaw") (4680 . "harmless") (4681 . "hardware")
    (4682 . "hardwired") (4683 . "hardwood") (4684 . "hardy")
    (4685 . "harmful") (4686 . "hangup") (4687 . "handwrite")
    (4688 . "handyman") (4689 . "hangnail") (4690 . "hangout")
    (4691 . "hangover") (4692 . "happier") (4693 . "hankering")
    (4694 . "hankie") (4695 . "hanky") (4696 . "haphazard")
    (4697 . "happening") (4698 . "hardcopy") (4699 . "happiest")
    (4700 . "happily") (4701 . "happiness") (4702 . "happy")
    (4703 . "harbor") (4704 . "hardening") (4705 . "hardcore")
    (4706 . "hardcover") (4707 . "harddisk") (4708 . "hardened")
    (4709 . "hardener") (4710 . "hardship") (4711 . "hardhat")
    (4712 . "hardhead") (4713 . "hardiness") (4714 . "hardly")
    (4715 . "hardness") (4716 . "headdress") (4717 . "hazy")
    (4718 . "headache") (4719 . "headband") (4720 . "headboard")
    (4721 . "headcount") (4722 . "harpist") (4723 . "harmonica")
    (4724 . "harmonics") (4725 . "harmonize") (4726 . "harmony")
    (4727 . "harness") (4728 . "hastily") (4729 . "harsh")
    (4730 . "harvest") (4731 . "hash") (4732 . "hassle")
    (4733 . "haste") (4734 . "hatchet") (4735 . "hastiness")
    (4736 . "hasty") (4737 . "hatbox") (4738 . "hatchback")
    (4739 . "hatchery") (4740 . "haunt") (4741 . "hatching")
    (4742 . "hatchling") (4743 . "hate") (4744 . "hatless")
    (4745 . "hatred") (4746 . "hazing") (4747 . "haven")
    (4748 . "hazard") (4749 . "hazelnut") (4750 . "hazily")
    (4751 . "haziness") (4752 . "jarring") (4753 . "jalapeno")
    (4754 . "jam") (4755 . "janitor") (4756 . "january")
    (4757 . "jargon") (4758 . "irritate") (4759 . "irregular")
    (4760 . "irrigate") (4761 . "irritable") (4762 . "irritably")
    (4763 . "irritant") (4764 . "isotope") (4765 . "islamic")
    (4766 . "islamist") (4767 . "isolated") (4768 . "isolating")
    (4769 . "isolation") (4770 . "itinerary") (4771 . "issue")
    (4772 . "issuing") (4773 . "italicize") (4774 . "italics")
    (4775 . "item") (4776 . "jacket") (4777 . "itunes")
    (4778 . "ivory") (4779 . "ivy") (4780 . "jab")
    (4781 . "jackal") (4782 . "jailhouse") (4783 . "jackknife")
    (4784 . "jackpot") (4785 . "jailbird") (4786 . "jailbreak")
    (4787 . "jailer") (4788 . "humility") (4789 . "humble")
    (4790 . "humbling") (4791 . "humbly") (4792 . "humid")
    (4793 . "humiliate") (4794 . "herald") (4795 . "hemlock")
    (4796 . "hemstitch") (4797 . "hence") (4798 . "henchman")
    (4799 . "henna") (4800 . "heroics") (4801 . "herbal")
    (4802 . "herbicide") (4803 . "herbs") (4804 . "heritage")
    (4805 . "hermit") (4806 . "hesitant") (4807 . "heroism")
    (4808 . "herring") (4809 . "herself") (4810 . "hertz")
    (4811 . "hesitancy") (4812 . "huddling") (4813 . "hesitate")
    (4814 . "hexagon") (4815 . "hexagram") (4816 . "hubcap")
    (4817 . "huddle") (4818 . "human") (4819 . "huff")
    (4820 . "hug") (4821 . "hula") (4822 . "hulk") (4823 . "hull")
    (4824 . "hydrated") (4825 . "husked") (4826 . "huskiness")
    (4827 . "hut") (4828 . "hybrid") (4829 . "hydrant")
    (4830 . "humorous") (4831 . "humming") (4832 . "hummus")
    (4833 . "humongous") (4834 . "humorist") (4835 . "humorless")
    (4836 . "hunger") (4837 . "humpback") (4838 . "humped")
    (4839 . "humvee") (4840 . "hunchback") (4841 . "hundredth")
    (4842 . "huntress") (4843 . "hungrily") (4844 . "hungry")
    (4845 . "hunk") (4846 . "hunter") (4847 . "hunting")
    (4848 . "hurray") (4849 . "huntsman") (4850 . "hurdle")
    (4851 . "hurled") (4852 . "hurler") (4853 . "hurling")
    (4854 . "hush") (4855 . "hurricane") (4856 . "hurried")
    (4857 . "hurry") (4858 . "hurt") (4859 . "husband")
    (4860 . "ignore") (4861 . "idiocy") (4862 . "idiom")
    (4863 . "idly") (4864 . "igloo") (4865 . "ignition")
    (4866 . "hyphen") (4867 . "hydration") (4868 . "hydrogen")
    (4869 . "hydroxide") (4870 . "hyperlink") (4871 . "hypertext")
    (4872 . "hypnotize") (4873 . "hypnoses") (4874 . "hypnosis")
    (4875 . "hypnotic") (4876 . "hypnotism") (4877 . "hypnotist")
    (4878 . "icing") (4879 . "hypocrisy") (4880 . "hypocrite")
    (4881 . "ibuprofen") (4882 . "ice") (4883 . "iciness")
    (4884 . "idealize") (4885 . "icky") (4886 . "icon")
    (4887 . "icy") (4888 . "idealism") (4889 . "idealist")
    (4890 . "ideology") (4891 . "ideally") (4892 . "idealness")
    (4893 . "identical") (4894 . "identify") (4895 . "identity")
    (4896 . "implicate") (4897 . "imperfect") (4898 . "imperial")
    (4899 . "impish") (4900 . "implant") (4901 . "implement")
    (4902 . "imaginary") (4903 . "iguana") (4904 . "illicitly")
    (4905 . "illusion") (4906 . "illusive") (4907 . "image")
    (4908 . "immature") (4909 . "imagines") (4910 . "imaging")
    (4911 . "imbecile") (4912 . "imitate") (4913 . "imitation")
    (4914 . "immorally") (4915 . "immerse") (4916 . "immersion")
    (4917 . "imminent") (4918 . "immobile") (4919 . "immodest")
    (4920 . "impaired") (4921 . "immortal") (4922 . "immovable")
    (4923 . "immovably") (4924 . "immunity") (4925 . "immunize")
    (4926 . "impending") (4927 . "impale") (4928 . "impart")
    (4929 . "impatient") (4930 . "impeach") (4931 . "impeding")
    (4932 . "iron") (4933 . "ipad") (4934 . "iphone")
    (4935 . "ipod") (4936 . "irate") (4937 . "irk")
    (4938 . "impolite") (4939 . "implicit") (4940 . "implode")
    (4941 . "implosion") (4942 . "implosive") (4943 . "imply")
    (4944 . "impotency") (4945 . "important") (4946 . "importer")
    (4947 . "impose") (4948 . "imposing") (4949 . "impotence")
    (4950 . "impromptu") (4951 . "impotent") (4952 . "impound")
    (4953 . "imprecise") (4954 . "imprint") (4955 . "imprison")
    (4956 . "impulse") (4957 . "improper") (4958 . "improve")
    (4959 . "improving") (4960 . "improvise") (4961 . "imprudent")
    (4962 . "ion") (4963 . "impulsive") (4964 . "impure")
    (4965 . "impurity") (4966 . "iodine") (4967 . "iodize")
    (4968 . "lend") (4969 . "legroom") (4970 . "legume")
    (4971 . "legwarmer") (4972 . "legwork") (4973 . "lemon")
    (4974 . "latitude") (4975 . "lasso") (4976 . "last")
    (4977 . "latch") (4978 . "late") (4979 . "lather")
    (4980 . "laundry") (4981 . "latrine") (4982 . "latter")
    (4983 . "latticed") (4984 . "launch") (4985 . "launder")
    (4986 . "laziness") (4987 . "laurel") (4988 . "lavender")
    (4989 . "lavish") (4990 . "laxative") (4991 . "lazily")
    (4992 . "legend") (4993 . "lazy") (4994 . "lecturer")
    (4995 . "left") (4996 . "legacy") (4997 . "legal")
    (4998 . "lego") (4999 . "legged") (5000 . "leggings")
    (5001 . "legible") (5002 . "legibly") (5003 . "legislate")
    (5004 . "jolliness") (5005 . "jogging") (5006 . "john")
    (5007 . "joining") (5008 . "jokester") (5009 . "jokingly")
    (5010 . "jawless") (5011 . "jasmine") (5012 . "jaundice")
    (5013 . "jaunt") (5014 . "java") (5015 . "jawed")
    (5016 . "jeep") (5017 . "jawline") (5018 . "jaws")
    (5019 . "jaybird") (5020 . "jaywalker") (5021 . "jazz")
    (5022 . "jet") (5023 . "jeeringly") (5024 . "jellied")
    (5025 . "jelly") (5026 . "jersey") (5027 . "jester")
    (5028 . "jinx") (5029 . "jiffy") (5030 . "jigsaw")
    (5031 . "jimmy") (5032 . "jingle") (5033 . "jingling")
    (5034 . "jogger") (5035 . "jitters") (5036 . "jittery")
    (5037 . "job") (5038 . "jockey") (5039 . "jockstrap")
    (5040 . "junkyard") (5041 . "june") (5042 . "junior")
    (5043 . "juniper") (5044 . "junkie") (5045 . "junkman")
    (5046 . "joylessly") (5047 . "jolly") (5048 . "jolt")
    (5049 . "jot") (5050 . "jovial") (5051 . "joyfully")
    (5052 . "judge") (5053 . "joyous") (5054 . "joyride")
    (5055 . "joystick") (5056 . "jubilance") (5057 . "jubilant")
    (5058 . "juggling") (5059 . "judgingly") (5060 . "judicial")
    (5061 . "judiciary") (5062 . "judo") (5063 . "juggle")
    (5064 . "jukebox") (5065 . "jugular") (5066 . "juice")
    (5067 . "juiciness") (5068 . "juicy") (5069 . "jujitsu")
    (5070 . "juncture") (5071 . "july") (5072 . "jumble")
    (5073 . "jumbo") (5074 . "jump") (5075 . "junction")
    (5076 . "kindly") (5077 . "kilowatt") (5078 . "kilt")
    (5079 . "kimono") (5080 . "kindle") (5081 . "kindling")
    (5082 . "justify") (5083 . "jurist") (5084 . "juror")
    (5085 . "jury") (5086 . "justice") (5087 . "justifier")
    (5088 . "karaoke") (5089 . "justly") (5090 . "justness")
    (5091 . "juvenile") (5092 . "kabob") (5093 . "kangaroo")
    (5094 . "keep") (5095 . "karate") (5096 . "karma")
    (5097 . "kebab") (5098 . "keenly") (5099 . "keenness")
    (5100 . "kerosene") (5101 . "keg") (5102 . "kelp")
    (5103 . "kennel") (5104 . "kept") (5105 . "kerchief")
    (5106 . "kilometer") (5107 . "kettle") (5108 . "kick")
    (5109 . "kiln") (5110 . "kilobyte") (5111 . "kilogram")
    (5112 . "ladle") (5113 . "laboring") (5114 . "laborious")
    (5115 . "labrador") (5116 . "ladder") (5117 . "ladies")
    (5118 . "kinship") (5119 . "kindness") (5120 . "kindred")
    (5121 . "kinetic") (5122 . "kinfolk") (5123 . "king")
    (5124 . "kitchen") (5125 . "kinsman") (5126 . "kinswoman")
    (5127 . "kissable") (5128 . "kisser") (5129 . "kissing")
    (5130 . "knapsack") (5131 . "kite") (5132 . "kitten")
    (5133 . "kitty") (5134 . "kiwi") (5135 . "kleenex")
    (5136 . "kooky") (5137 . "knee") (5138 . "knelt")
    (5139 . "knickers") (5140 . "knoll") (5141 . "koala")
    (5142 . "laborer") (5143 . "kosher") (5144 . "krypton")
    (5145 . "kudos") (5146 . "kung") (5147 . "labored")
    (5148 . "lash") (5149 . "lapping") (5150 . "laptop")
    (5151 . "lard") (5152 . "large") (5153 . "lark")
    (5154 . "lair") (5155 . "ladybug") (5156 . "ladylike")
    (5157 . "lagged") (5158 . "lagging") (5159 . "lagoon")
    (5160 . "landing") (5161 . "lake") (5162 . "lance")
    (5163 . "landed") (5164 . "landfall") (5165 . "landfill")
    (5166 . "landmass") (5167 . "landlady") (5168 . "landless")
    (5169 . "landline") (5170 . "landlord") (5171 . "landmark")
    (5172 . "language") (5173 . "landmine") (5174 . "landowner")
    (5175 . "landscape") (5176 . "landside") (5177 . "landslide")
    (5178 . "lapped") (5179 . "lankiness") (5180 . "lanky")
    (5181 . "lantern") (5182 . "lapdog") (5183 . "lapel")
    (5184 . "refold") (5185 . "reflected") (5186 . "reflector")
    (5187 . "reflex") (5188 . "reflux") (5189 . "refocus")
    (5190 . "recount") (5191 . "reconcile") (5192 . "reconfirm")
    (5193 . "reconvene") (5194 . "recopy") (5195 . "record")
    (5196 . "rectified") (5197 . "recoup") (5198 . "recovery")
    (5199 . "recreate") (5200 . "rectal") (5201 . "rectangle")
    (5202 . "reenact") (5203 . "rectify") (5204 . "recycled")
    (5205 . "recycler") (5206 . "recycling") (5207 . "reemerge")
    (5208 . "reference") (5209 . "reenter") (5210 . "reentry")
    (5211 . "reexamine") (5212 . "referable") (5213 . "referee")
    (5214 . "refinish") (5215 . "refill") (5216 . "refinance")
    (5217 . "refined") (5218 . "refinery") (5219 . "refining")
    (5220 . "quadrant") (5221 . "puzzling") (5222 . "pyramid")
    (5223 . "pyromania") (5224 . "python") (5225 . "quack")
    (5226 . "purify") (5227 . "pureness") (5228 . "purgatory")
    (5229 . "purge") (5230 . "purging") (5231 . "purifier")
    (5232 . "purposely") (5233 . "purist") (5234 . "puritan")
    (5235 . "purity") (5236 . "purple") (5237 . "purplish")
    (5238 . "purveyor") (5239 . "purr") (5240 . "purse")
    (5241 . "pursuable") (5242 . "pursuant") (5243 . "pursuit")
    (5244 . "pushover") (5245 . "pushcart") (5246 . "pushchair")
    (5247 . "pusher") (5248 . "pushiness") (5249 . "pushing")
    (5250 . "puzzle") (5251 . "pushpin") (5252 . "pushup")
    (5253 . "pushy") (5254 . "putdown") (5255 . "putt")
    (5256 . "rabid") (5257 . "quiver") (5258 . "quizzical")
    (5259 . "quotable") (5260 . "quotation") (5261 . "quote")
    (5262 . "qualifier") (5263 . "quail") (5264 . "quaintly")
    (5265 . "quake") (5266 . "quaking") (5267 . "qualified")
    (5268 . "quarry") (5269 . "qualify") (5270 . "quality")
    (5271 . "qualm") (5272 . "quantum") (5273 . "quarrel")
    (5274 . "query") (5275 . "quartered") (5276 . "quarterly")
    (5277 . "quarters") (5278 . "quartet") (5279 . "quench")
    (5280 . "quiet") (5281 . "quicken") (5282 . "quickly")
    (5283 . "quickness") (5284 . "quicksand") (5285 . "quickstep")
    (5286 . "quit") (5287 . "quill") (5288 . "quilt")
    (5289 . "quintet") (5290 . "quintuple") (5291 . "quirk")
    (5292 . "random") (5293 . "rambling") (5294 . "ramp")
    (5295 . "ramrod") (5296 . "ranch") (5297 . "rancidity")
    (5298 . "radar") (5299 . "race") (5300 . "racing")
    (5301 . "racism") (5302 . "rack") (5303 . "racoon")
    (5304 . "radiator") (5305 . "radial") (5306 . "radiance")
    (5307 . "radiantly") (5308 . "radiated") (5309 . "radiation")
    (5310 . "ragged") (5311 . "radio") (5312 . "radish")
    (5313 . "raffle") (5314 . "raft") (5315 . "rage")
    (5316 . "railroad") (5317 . "raging") (5318 . "ragweed")
    (5319 . "raider") (5320 . "railcar") (5321 . "railing")
    (5322 . "ramble") (5323 . "railway") (5324 . "raisin")
    (5325 . "rake") (5326 . "raking") (5327 . "rally")
    (5328 . "reassign") (5329 . "reappoint") (5330 . "reapprove")
    (5331 . "rearrange") (5332 . "rearview") (5333 . "reason")
    (5334 . "ransack") (5335 . "ranged") (5336 . "ranger")
    (5337 . "ranging") (5338 . "ranked") (5339 . "ranking")
    (5340 . "rash") (5341 . "ranting") (5342 . "rants")
    (5343 . "rare") (5344 . "rarity") (5345 . "rascal")
    (5346 . "ravioli") (5347 . "rasping") (5348 . "ravage")
    (5349 . "raven") (5350 . "ravine") (5351 . "raving")
    (5352 . "reactive") (5353 . "ravishing") (5354 . "reabsorb")
    (5355 . "reach") (5356 . "reacquire") (5357 . "reaction")
    (5358 . "reapply") (5359 . "reactor") (5360 . "reaffirm")
    (5361 . "ream") (5362 . "reanalyze") (5363 . "reappear")
    (5364 . "recolor") (5365 . "recluse") (5366 . "reclusive")
    (5367 . "recognize") (5368 . "recoil") (5369 . "recollect")
    (5370 . "rebel") (5371 . "reassure") (5372 . "reattach")
    (5373 . "reawake") (5374 . "rebalance") (5375 . "rebate")
    (5376 . "rebuild") (5377 . "rebirth") (5378 . "reboot")
    (5379 . "reborn") (5380 . "rebound") (5381 . "rebuff")
    (5382 . "recapture") (5383 . "rebuilt") (5384 . "reburial")
    (5385 . "rebuttal") (5386 . "recall") (5387 . "recant")
    (5388 . "recipient") (5389 . "recast") (5390 . "recede")
    (5391 . "recent") (5392 . "recess") (5393 . "recharger")
    (5394 . "reclining") (5395 . "recital") (5396 . "recite")
    (5397 . "reckless") (5398 . "reclaim") (5399 . "recliner")
    (5400 . "navigate") (5401 . "nativity") (5402 . "natural")
    (5403 . "nature") (5404 . "naturist") (5405 . "nautical")
    (5406 . "mutt") (5407 . "mutation") (5408 . "mute")
    (5409 . "mutilated") (5410 . "mutilator") (5411 . "mutiny")
    (5412 . "mystify") (5413 . "mutual") (5414 . "muzzle")
    (5415 . "myself") (5416 . "myspace") (5417 . "mystified")
    (5418 . "naming") (5419 . "myth") (5420 . "nacho")
    (5421 . "nag") (5422 . "nail") (5423 . "name")
    (5424 . "napping") (5425 . "nanny") (5426 . "nanometer")
    (5427 . "nape") (5428 . "napkin") (5429 . "napped")
    (5430 . "native") (5431 . "nappy") (5432 . "narrow")
    (5433 . "nastily") (5434 . "nastiness") (5435 . "national")
    (5436 . "mocker") (5437 . "mobile") (5438 . "mobility")
    (5439 . "mobilize") (5440 . "mobster") (5441 . "mocha")
    (5442 . "matching") (5443 . "mastiff") (5444 . "matador")
    (5445 . "matchbook") (5446 . "matchbox") (5447 . "matcher")
    (5448 . "mating") (5449 . "matchless") (5450 . "material")
    (5451 . "maternal") (5452 . "maternity") (5453 . "math")
    (5454 . "matter") (5455 . "matriarch") (5456 . "matrimony")
    (5457 . "matrix") (5458 . "matron") (5459 . "matted")
    (5460 . "maximize") (5461 . "maturely") (5462 . "maturing")
    (5463 . "maturity") (5464 . "mauve") (5465 . "maverick")
    (5466 . "moaning") (5467 . "maximum") (5468 . "maybe")
    (5469 . "mayday") (5470 . "mayflower") (5471 . "moaner")
    (5472 . "monoxide") (5473 . "monologue") (5474 . "monopoly")
    (5475 . "monorail") (5476 . "monotone") (5477 . "monotype")
    (5478 . "module") (5479 . "mockup") (5480 . "modified")
    (5481 . "modify") (5482 . "modular") (5483 . "modulator")
    (5484 . "mold") (5485 . "moisten") (5486 . "moistness")
    (5487 . "moisture") (5488 . "molar") (5489 . "molasses")
    (5490 . "monastery") (5491 . "molecular") (5492 . "molecule")
    (5493 . "molehill") (5494 . "mollusk") (5495 . "mom")
    (5496 . "moneywise") (5497 . "monday") (5498 . "monetary")
    (5499 . "monetize") (5500 . "moneybags") (5501 . "moneyless")
    (5502 . "monogram") (5503 . "mongoose") (5504 . "mongrel")
    (5505 . "monitor") (5506 . "monkhood") (5507 . "monogamy")
    (5508 . "mossy") (5509 . "mortician") (5510 . "mortified")
    (5511 . "mortify") (5512 . "mortuary") (5513 . "mosaic")
    (5514 . "moocher") (5515 . "monsieur") (5516 . "monsoon")
    (5517 . "monstrous") (5518 . "monthly") (5519 . "monument")
    (5520 . "moonlight") (5521 . "moodiness") (5522 . "moody")
    (5523 . "mooing") (5524 . "moonbeam") (5525 . "mooned")
    (5526 . "moonstone") (5527 . "moonlike") (5528 . "moonlit")
    (5529 . "moonrise") (5530 . "moonscape") (5531 . "moonshine")
    (5532 . "morbidity") (5533 . "moonwalk") (5534 . "mop")
    (5535 . "morale") (5536 . "morality") (5537 . "morally")
    (5538 . "mortally") (5539 . "morbidly") (5540 . "morphine")
    (5541 . "morphing") (5542 . "morse") (5543 . "mortality")
    (5544 . "mullets") (5545 . "mug") (5546 . "mulberry")
    (5547 . "mulch") (5548 . "mule") (5549 . "mulled")
    (5550 . "motivator") (5551 . "most") (5552 . "mothball")
    (5553 . "mothproof") (5554 . "motion") (5555 . "motivate")
    (5556 . "mountain") (5557 . "motive") (5558 . "motocross")
    (5559 . "motor") (5560 . "motto") (5561 . "mountable")
    (5562 . "mousiness") (5563 . "mounted") (5564 . "mounting")
    (5565 . "mourner") (5566 . "mournful") (5567 . "mouse")
    (5568 . "movie") (5569 . "moustache") (5570 . "mousy")
    (5571 . "mouth") (5572 . "movable") (5573 . "move")
    (5574 . "mud") (5575 . "moving") (5576 . "mower")
    (5577 . "mowing") (5578 . "much") (5579 . "muck")
    (5580 . "mutate") (5581 . "mustard") (5582 . "muster")
    (5583 . "mustiness") (5584 . "musty") (5585 . "mutable")
    (5586 . "mumbling") (5587 . "multiple") (5588 . "multiply")
    (5589 . "multitask") (5590 . "multitude") (5591 . "mumble")
    (5592 . "munchkin") (5593 . "mumbo") (5594 . "mummified")
    (5595 . "mummify") (5596 . "mummy") (5597 . "mumps")
    (5598 . "murky") (5599 . "mundane") (5600 . "municipal")
    (5601 . "muppet") (5602 . "mural") (5603 . "murkiness")
    (5604 . "mushroom") (5605 . "murmuring") (5606 . "muscular")
    (5607 . "museum") (5608 . "mushily") (5609 . "mushiness")
    (5610 . "mustang") (5611 . "mushy") (5612 . "music")
    (5613 . "musket") (5614 . "muskiness") (5615 . "musky")
    (5616 . "outsmart") (5617 . "outsell") (5618 . "outshine")
    (5619 . "outshoot") (5620 . "outsider") (5621 . "outskirts")
    (5622 . "outer") (5623 . "outcast") (5624 . "outclass")
    (5625 . "outcome") (5626 . "outdated") (5627 . "outdoors")
    (5628 . "outhouse") (5629 . "outfield") (5630 . "outfit")
    (5631 . "outflank") (5632 . "outgoing") (5633 . "outgrow")
    (5634 . "outlying") (5635 . "outing") (5636 . "outlast")
    (5637 . "outlet") (5638 . "outline") (5639 . "outlook")
    (5640 . "outpour") (5641 . "outmatch") (5642 . "outmost")
    (5643 . "outnumber") (5644 . "outplayed") (5645 . "outpost")
    (5646 . "outscore") (5647 . "output") (5648 . "outrage")
    (5649 . "outrank") (5650 . "outreach") (5651 . "outright")
    (5652 . "nibble") (5653 . "neurotic") (5654 . "neuter")
    (5655 . "neutron") (5656 . "never") (5657 . "next")
    (5658 . "nearness") (5659 . "navigator") (5660 . "navy")
    (5661 . "nearby") (5662 . "nearest") (5663 . "nearly")
    (5664 . "negate") (5665 . "neatly") (5666 . "neatness")
    (5667 . "nebula") (5668 . "nebulizer") (5669 . "nectar")
    (5670 . "negotiate") (5671 . "negation") (5672 . "negative")
    (5673 . "neglector") (5674 . "negligee") (5675 . "negligent")
    (5676 . "nervous") (5677 . "nemeses") (5678 . "nemesis")
    (5679 . "neon") (5680 . "nephew") (5681 . "nerd")
    (5682 . "neurosis") (5683 . "nervy") (5684 . "nest")
    (5685 . "net") (5686 . "neurology") (5687 . "neuron")
    (5688 . "nutty") (5689 . "nutlike") (5690 . "nutmeg")
    (5691 . "nutrient") (5692 . "nutshell") (5693 . "nuttiness")
    (5694 . "nimbly") (5695 . "nickname") (5696 . "nicotine")
    (5697 . "niece") (5698 . "nifty") (5699 . "nimble")
    (5700 . "nuclear") (5701 . "nineteen") (5702 . "ninetieth")
    (5703 . "ninja") (5704 . "nintendo") (5705 . "ninth")
    (5706 . "numbing") (5707 . "nuclei") (5708 . "nucleus")
    (5709 . "nugget") (5710 . "nullify") (5711 . "number")
    (5712 . "numeric") (5713 . "numbly") (5714 . "numbness")
    (5715 . "numeral") (5716 . "numerate") (5717 . "numerator")
    (5718 . "nutcase") (5719 . "numerous") (5720 . "nuptials")
    (5721 . "nursery") (5722 . "nursing") (5723 . "nurture")
    (5724 . "occupant") (5725 . "obtrusive") (5726 . "obtuse")
    (5727 . "obvious") (5728 . "occultist") (5729 . "occupancy")
    (5730 . "oat") (5731 . "nuzzle") (5732 . "nylon")
    (5733 . "oaf") (5734 . "oak") (5735 . "oasis")
    (5736 . "obliged") (5737 . "obedience") (5738 . "obedient")
    (5739 . "obituary") (5740 . "object") (5741 . "obligate")
    (5742 . "obscure") (5743 . "oblivion") (5744 . "oblivious")
    (5745 . "oblong") (5746 . "obnoxious") (5747 . "oboe")
    (5748 . "obsession") (5749 . "obscurity") (5750 . "observant")
    (5751 . "observer") (5752 . "observing") (5753 . "obsessed")
    (5754 . "obtain") (5755 . "obsessive") (5756 . "obsolete")
    (5757 . "obstacle") (5758 . "obstinate") (5759 . "obstruct")
    (5760 . "onward") (5761 . "onset") (5762 . "onshore")
    (5763 . "onslaught") (5764 . "onstage") (5765 . "onto")
    (5766 . "octane") (5767 . "occupier") (5768 . "occupy")
    (5769 . "ocean") (5770 . "ocelot") (5771 . "octagon")
    (5772 . "ointment") (5773 . "october") (5774 . "octopus")
    (5775 . "ogle") (5776 . "oil") (5777 . "oink") (5778 . "omen")
    (5779 . "okay") (5780 . "old") (5781 . "olive")
    (5782 . "olympics") (5783 . "omega") (5784 . "oncoming")
    (5785 . "ominous") (5786 . "omission") (5787 . "omit")
    (5788 . "omnivore") (5789 . "onboard") (5790 . "onscreen")
    (5791 . "ongoing") (5792 . "onion") (5793 . "online")
    (5794 . "onlooker") (5795 . "only") (5796 . "outburst")
    (5797 . "outback") (5798 . "outbid") (5799 . "outboard")
    (5800 . "outbound") (5801 . "outbreak") (5802 . "opal")
    (5803 . "onyx") (5804 . "oops") (5805 . "ooze") (5806 . "oozy")
    (5807 . "opacity") (5808 . "operative") (5809 . "open")
    (5810 . "operable") (5811 . "operate") (5812 . "operating")
    (5813 . "operation") (5814 . "opposing") (5815 . "operator")
    (5816 . "opium") (5817 . "opossum") (5818 . "opponent")
    (5819 . "oppose") (5820 . "osmosis") (5821 . "opposite")
    (5822 . "oppressed") (5823 . "oppressor") (5824 . "opt")
    (5825 . "opulently") (5826 . "outage") (5827 . "other")
    (5828 . "otter") (5829 . "ouch") (5830 . "ought")
    (5831 . "ounce") (5832 . "patience") (5833 . "patchwork")
    (5834 . "patchy") (5835 . "paternal") (5836 . "paternity")
    (5837 . "path") (5838 . "partly") (5839 . "parsnip")
    (5840 . "partake") (5841 . "parted") (5842 . "parting")
    (5843 . "partition") (5844 . "passage") (5845 . "partner")
    (5846 . "partridge") (5847 . "party") (5848 . "passable")
    (5849 . "passably") (5850 . "passive") (5851 . "passcode")
    (5852 . "passenger") (5853 . "passerby") (5854 . "passing")
    (5855 . "passion") (5856 . "pasted") (5857 . "passivism")
    (5858 . "passover") (5859 . "passport") (5860 . "password")
    (5861 . "pasta") (5862 . "pasty") (5863 . "pastel")
    (5864 . "pastime") (5865 . "pastor") (5866 . "pastrami")
    (5867 . "pasture") (5868 . "overfill") (5869 . "overeager")
    (5870 . "overeater") (5871 . "overexert") (5872 . "overfed")
    (5873 . "overfeed") (5874 . "outweigh") (5875 . "outsource")
    (5876 . "outspoken") (5877 . "outtakes") (5878 . "outthink")
    (5879 . "outward") (5880 . "overall") (5881 . "outwit")
    (5882 . "oval") (5883 . "ovary") (5884 . "oven")
    (5885 . "overact") (5886 . "overboard") (5887 . "overarch")
    (5888 . "overbid") (5889 . "overbill") (5890 . "overbite")
    (5891 . "overblown") (5892 . "overcook") (5893 . "overbook")
    (5894 . "overbuilt") (5895 . "overcast") (5896 . "overcoat")
    (5897 . "overcome") (5898 . "overdue") (5899 . "overcrowd")
    (5900 . "overdraft") (5901 . "overdrawn") (5902 . "overdress")
    (5903 . "overdrive") (5904 . "overshot") (5905 . "override")
    (5906 . "overripe") (5907 . "overrule") (5908 . "overrun")
    (5909 . "overshoot") (5910 . "overhaul") (5911 . "overflow")
    (5912 . "overfull") (5913 . "overgrown") (5914 . "overhand")
    (5915 . "overhang") (5916 . "overkill") (5917 . "overhead")
    (5918 . "overhear") (5919 . "overheat") (5920 . "overhung")
    (5921 . "overjoyed") (5922 . "overlook") (5923 . "overlabor")
    (5924 . "overlaid") (5925 . "overlap") (5926 . "overlay")
    (5927 . "overload") (5928 . "overplant") (5929 . "overlord")
    (5930 . "overlying") (5931 . "overnight") (5932 . "overpass")
    (5933 . "overpay") (5934 . "overreact") (5935 . "overplay")
    (5936 . "overpower") (5937 . "overprice") (5938 . "overrate")
    (5939 . "overreach") (5940 . "pacifier") (5941 . "oyster")
    (5942 . "ozone") (5943 . "paced") (5944 . "pacemaker")
    (5945 . "pacific") (5946 . "overstate") (5947 . "oversight")
    (5948 . "oversized") (5949 . "oversleep") (5950 . "oversold")
    (5951 . "overspend") (5952 . "overtake") (5953 . "overstay")
    (5954 . "overstep") (5955 . "overstock") (5956 . "overstuff")
    (5957 . "oversweet") (5958 . "overturn") (5959 . "overthrow")
    (5960 . "overtime") (5961 . "overtly") (5962 . "overtone")
    (5963 . "overture") (5964 . "oxford") (5965 . "overuse")
    (5966 . "overvalue") (5967 . "overview") (5968 . "overwrite")
    (5969 . "owl") (5970 . "oxymoron") (5971 . "oxidant")
    (5972 . "oxidation") (5973 . "oxidize") (5974 . "oxidizing")
    (5975 . "oxygen") (5976 . "pantry") (5977 . "panning")
    (5978 . "panorama") (5979 . "panoramic") (5980 . "panther")
    (5981 . "pantomime") (5982 . "paddle") (5983 . "pacifism")
    (5984 . "pacifist") (5985 . "pacify") (5986 . "padded")
    (5987 . "padding") (5988 . "pajamas") (5989 . "paddling")
    (5990 . "padlock") (5991 . "pagan") (5992 . "pager")
    (5993 . "paging") (5994 . "paltry") (5995 . "palace")
    (5996 . "palatable") (5997 . "palm") (5998 . "palpable")
    (5999 . "palpitate") (6000 . "pancake") (6001 . "pampered")
    (6002 . "pamperer") (6003 . "pampers") (6004 . "pamphlet")
    (6005 . "panama") (6006 . "panic") (6007 . "pancreas")
    (6008 . "panda") (6009 . "pandemic") (6010 . "pang")
    (6011 . "panhandle") (6012 . "parsley") (6013 . "parkway")
    (6014 . "parlor") (6015 . "parmesan") (6016 . "parole")
    (6017 . "parrot") (6018 . "paprika") (6019 . "pants")
    (6020 . "pantyhose") (6021 . "paparazzi") (6022 . "papaya")
    (6023 . "paper") (6024 . "paragraph") (6025 . "papyrus")
    (6026 . "parabola") (6027 . "parachute") (6028 . "parade")
    (6029 . "paradox") (6030 . "paramedic") (6031 . "parakeet")
    (6032 . "paralegal") (6033 . "paralyses") (6034 . "paralysis")
    (6035 . "paralyze") (6036 . "parcel") (6037 . "parameter")
    (6038 . "paramount") (6039 . "parasail") (6040 . "parasite")
    (6041 . "parasitic") (6042 . "parking") (6043 . "parched")
    (6044 . "parchment") (6045 . "pardon") (6046 . "parish")
    (6047 . "parka") (6048 . "postage") (6049 . "posh")
    (6050 . "posing") (6051 . "possible") (6052 . "possibly")
    (6053 . "possum") (6054 . "polymer") (6055 . "polka")
    (6056 . "polo") (6057 . "polyester") (6058 . "polygon")
    (6059 . "polygraph") (6060 . "poplar") (6061 . "poncho")
    (6062 . "pond") (6063 . "pony") (6064 . "popcorn")
    (6065 . "pope") (6066 . "populate") (6067 . "popper")
    (6068 . "poppy") (6069 . "popsicle") (6070 . "populace")
    (6071 . "popular") (6072 . "portal") (6073 . "porcupine")
    (6074 . "pork") (6075 . "porous") (6076 . "porridge")
    (6077 . "portable") (6078 . "poser") (6079 . "portfolio")
    (6080 . "porthole") (6081 . "portion") (6082 . "portly")
    (6083 . "portside") (6084 . "pelican") (6085 . "pediatric")
    (6086 . "pedicure") (6087 . "pedigree") (6088 . "pedometer")
    (6089 . "pegboard") (6090 . "patronage") (6091 . "patient")
    (6092 . "patio") (6093 . "patriarch") (6094 . "patriot")
    (6095 . "patrol") (6096 . "pavilion") (6097 . "patronize")
    (6098 . "pauper") (6099 . "pavement") (6100 . "paver")
    (6101 . "pavestone") (6102 . "payday") (6103 . "paving")
    (6104 . "pawing") (6105 . "payable") (6106 . "payback")
    (6107 . "paycheck") (6108 . "payroll") (6109 . "payee")
    (6110 . "payer") (6111 . "paying") (6112 . "payment")
    (6113 . "payphone") (6114 . "peddling") (6115 . "pebble")
    (6116 . "pebbly") (6117 . "pecan") (6118 . "pectin")
    (6119 . "peculiar") (6120 . "perplexed") (6121 . "perkiness")
    (6122 . "perky") (6123 . "perm") (6124 . "peroxide")
    (6125 . "perpetual") (6126 . "pencil") (6127 . "pellet")
    (6128 . "pelt") (6129 . "pelvis") (6130 . "penalize")
    (6131 . "penalty") (6132 . "penniless") (6133 . "pendant")
    (6134 . "pending") (6135 . "penholder") (6136 . "penknife")
    (6137 . "pennant") (6138 . "pep") (6139 . "penny")
    (6140 . "penpal") (6141 . "pension") (6142 . "pentagon")
    (6143 . "pentagram") (6144 . "perfected") (6145 . "perceive")
    (6146 . "percent") (6147 . "perch") (6148 . "percolate")
    (6149 . "perennial") (6150 . "perjury") (6151 . "perfectly")
    (6152 . "perfume") (6153 . "periscope") (6154 . "perish")
    (6155 . "perjurer") (6156 . "plank") (6157 . "phrase")
    (6158 . "phrasing") (6159 . "placard") (6160 . "placate")
    (6161 . "placidly") (6162 . "peso") (6163 . "persecute")
    (6164 . "persevere") (6165 . "persuaded") (6166 . "persuader")
    (6167 . "pesky") (6168 . "petite") (6169 . "pessimism")
    (6170 . "pessimist") (6171 . "pester") (6172 . "pesticide")
    (6173 . "petal") (6174 . "pettiness") (6175 . "petition")
    (6176 . "petri") (6177 . "petroleum") (6178 . "petted")
    (6179 . "petticoat") (6180 . "phonebook") (6181 . "petty")
    (6182 . "petunia") (6183 . "phantom") (6184 . "phobia")
    (6185 . "phoenix") (6186 . "photo") (6187 . "phoney")
    (6188 . "phonics") (6189 . "phoniness") (6190 . "phony")
    (6191 . "phosphate") (6192 . "plenty") (6193 . "plaza")
    (6194 . "pleading") (6195 . "pleat") (6196 . "pledge")
    (6197 . "plentiful") (6198 . "plated") (6199 . "planner")
    (6200 . "plant") (6201 . "plasma") (6202 . "plaster")
    (6203 . "plastic") (6204 . "platypus") (6205 . "platform")
    (6206 . "plating") (6207 . "platinum") (6208 . "platonic")
    (6209 . "platter") (6210 . "playful") (6211 . "plausible")
    (6212 . "plausibly") (6213 . "playable") (6214 . "playback")
    (6215 . "player") (6216 . "playmate") (6217 . "playgroup")
    (6218 . "playhouse") (6219 . "playing") (6220 . "playlist")
    (6221 . "playmaker") (6222 . "playtime") (6223 . "playoff")
    (6224 . "playpen") (6225 . "playroom") (6226 . "playset")
    (6227 . "plaything") (6228 . "politely") (6229 . "polar")
    (6230 . "police") (6231 . "policy") (6232 . "polio")
    (6233 . "polish") (6234 . "plot") (6235 . "plethora")
    (6236 . "plexiglas") (6237 . "pliable") (6238 . "plod")
    (6239 . "plop") (6240 . "plunging") (6241 . "plow")
    (6242 . "ploy") (6243 . "pluck") (6244 . "plug")
    (6245 . "plunder") (6246 . "pod") (6247 . "plural")
    (6248 . "plus") (6249 . "plutonium") (6250 . "plywood")
    (6251 . "poach") (6252 . "pointing") (6253 . "poem")
    (6254 . "poet") (6255 . "pogo") (6256 . "pointed")
    (6257 . "pointer") (6258 . "poking") (6259 . "pointless")
    (6260 . "pointy") (6261 . "poise") (6262 . "poison")
    (6263 . "poker") (6264 . "purely") (6265 . "puppet")
    (6266 . "puppy") (6267 . "purchase") (6268 . "pureblood")
    (6269 . "purebred") (6270 . "pruning") (6271 . "proxy")
    (6272 . "prozac") (6273 . "prude") (6274 . "prudishly")
    (6275 . "prune") (6276 . "pueblo") (6277 . "pry")
    (6278 . "psychic") (6279 . "public") (6280 . "publisher")
    (6281 . "pucker") (6282 . "pulse") (6283 . "pug")
    (6284 . "pull") (6285 . "pulmonary") (6286 . "pulp")
    (6287 . "pulsate") (6288 . "punctual") (6289 . "pulverize")
    (6290 . "puma") (6291 . "pumice") (6292 . "pummel")
    (6293 . "punch") (6294 . "pupil") (6295 . "punctuate")
    (6296 . "punctured") (6297 . "pungent") (6298 . "punisher")
    (6299 . "punk") (6300 . "precision") (6301 . "preaching")
    (6302 . "preachy") (6303 . "preamble") (6304 . "precinct")
    (6305 . "precise") (6306 . "posting") (6307 . "postal")
    (6308 . "postbox") (6309 . "postcard") (6310 . "posted")
    (6311 . "poster") (6312 . "pouncing") (6313 . "postnasal")
    (6314 . "posture") (6315 . "postwar") (6316 . "pouch")
    (6317 . "pounce") (6318 . "powdery") (6319 . "pound")
    (6320 . "pouring") (6321 . "pout") (6322 . "powdered")
    (6323 . "powdering") (6324 . "prancing") (6325 . "power")
    (6326 . "powwow") (6327 . "pox") (6328 . "praising")
    (6329 . "prance") (6330 . "preacher") (6331 . "pranker")
    (6332 . "prankish") (6333 . "prankster") (6334 . "prayer")
    (6335 . "praying") (6336 . "presuming") (6337 . "preshow")
    (6338 . "president") (6339 . "presoak") (6340 . "press")
    (6341 . "presume") (6342 . "preface") (6343 . "precook")
    (6344 . "precut") (6345 . "predator") (6346 . "predefine")
    (6347 . "predict") (6348 . "pregnant") (6349 . "prefix")
    (6350 . "preflight") (6351 . "preformed") (6352 . "pregame")
    (6353 . "pregnancy") (6354 . "premises") (6355 . "preheated")
    (6356 . "prelaunch") (6357 . "prelaw") (6358 . "prelude")
    (6359 . "premiere") (6360 . "prepay") (6361 . "premium")
    (6362 . "prenatal") (6363 . "preoccupy") (6364 . "preorder")
    (6365 . "prepaid") (6366 . "preset") (6367 . "preplan")
    (6368 . "preppy") (6369 . "preschool") (6370 . "prescribe")
    (6371 . "preseason") (6372 . "probably") (6373 . "private")
    (6374 . "privatize") (6375 . "prize") (6376 . "proactive")
    (6377 . "probable") (6378 . "pretty") (6379 . "preteen")
    (6380 . "pretended") (6381 . "pretender") (6382 . "pretense")
    (6383 . "pretext") (6384 . "previous") (6385 . "pretzel")
    (6386 . "prevail") (6387 . "prevalent") (6388 . "prevent")
    (6389 . "preview") (6390 . "primarily") (6391 . "prewar")
    (6392 . "prewashed") (6393 . "prideful") (6394 . "pried")
    (6395 . "primal") (6396 . "print") (6397 . "primary")
    (6398 . "primate") (6399 . "primer") (6400 . "primp")
    (6401 . "princess") (6402 . "privacy") (6403 . "prior")
    (6404 . "prism") (6405 . "prison") (6406 . "prissy")
    (6407 . "pristine") (6408 . "prong") (6409 . "promoter")
    (6410 . "promotion") (6411 . "prompter") (6412 . "promptly")
    (6413 . "prone") (6414 . "procedure") (6415 . "probation")
    (6416 . "probe") (6417 . "probing") (6418 . "probiotic")
    (6419 . "problem") (6420 . "prodigy") (6421 . "process")
    (6422 . "proclaim") (6423 . "procreate") (6424 . "procurer")
    (6425 . "prodigal") (6426 . "professor") (6427 . "produce")
    (6428 . "product") (6429 . "profane") (6430 . "profanity")
    (6431 . "professed") (6432 . "program") (6433 . "profile")
    (6434 . "profound") (6435 . "profusely") (6436 . "progeny")
    (6437 . "prognosis") (6438 . "prominent") (6439 . "progress")
    (6440 . "projector") (6441 . "prologue") (6442 . "prolonged")
    (6443 . "promenade") (6444 . "proximity") (6445 . "provoking")
    (6446 . "provolone") (6447 . "prowess") (6448 . "prowler")
    (6449 . "prowling") (6450 . "propeller") (6451 . "pronounce")
    (6452 . "pronto") (6453 . "proofing") (6454 . "proofread")
    (6455 . "proofs") (6456 . "props") (6457 . "properly")
    (6458 . "property") (6459 . "proponent") (6460 . "proposal")
    (6461 . "propose") (6462 . "protozoan") (6463 . "prorate")
    (6464 . "protector") (6465 . "protegee") (6466 . "proton")
    (6467 . "prototype") (6468 . "proven") (6469 . "protract")
    (6470 . "protrude") (6471 . "proud") (6472 . "provable")
    (6473 . "proved") (6474 . "provoke") (6475 . "provided")
    (6476 . "provider") (6477 . "providing") (6478 . "province")
    (6479 . "proving") (6480 . "subdued") (6481 . "stylus")
    (6482 . "suave") (6483 . "subarctic") (6484 . "subatomic")
    (6485 . "subdivide") (6486 . "stubborn") (6487 . "strung")
    (6488 . "strut") (6489 . "stubbed") (6490 . "stubble")
    (6491 . "stubbly") (6492 . "study") (6493 . "stucco")
    (6494 . "stuck") (6495 . "student") (6496 . "studied")
    (6497 . "studio") (6498 . "stump") (6499 . "stuffed")
    (6500 . "stuffing") (6501 . "stuffy") (6502 . "stumble")
    (6503 . "stumbling") (6504 . "stupor") (6505 . "stung")
    (6506 . "stunned") (6507 . "stunner") (6508 . "stunning")
    (6509 . "stunt") (6510 . "stylized") (6511 . "sturdily")
    (6512 . "sturdy") (6513 . "styling") (6514 . "stylishly")
    (6515 . "stylist") (6516 . "staring") (6517 . "starch")
    (6518 . "stardom") (6519 . "stardust") (6520 . "starfish")
    (6521 . "stargazer") (6522 . "stabilize") (6523 . "squire")
    (6524 . "squirt") (6525 . "squishier") (6526 . "squishy")
    (6527 . "stability") (6528 . "staging") (6529 . "stable")
    (6530 . "stack") (6531 . "stadium") (6532 . "staff")
    (6533 . "stage") (6534 . "stainless") (6535 . "stagnant")
    (6536 . "stagnate") (6537 . "stainable") (6538 . "stained")
    (6539 . "staining") (6540 . "stammer") (6541 . "stalemate")
    (6542 . "staleness") (6543 . "stalling") (6544 . "stallion")
    (6545 . "stamina") (6546 . "starboard") (6547 . "stamp")
    (6548 . "stand") (6549 . "stank") (6550 . "staple")
    (6551 . "stapling") (6552 . "steersman") (6553 . "steam")
    (6554 . "steed") (6555 . "steep") (6556 . "steerable")
    (6557 . "steering") (6558 . "starring") (6559 . "stark")
    (6560 . "starless") (6561 . "starlet") (6562 . "starlight")
    (6563 . "starlit") (6564 . "startling") (6565 . "starry")
    (6566 . "starship") (6567 . "starter") (6568 . "starting")
    (6569 . "startle") (6570 . "static") (6571 . "startup")
    (6572 . "starved") (6573 . "starving") (6574 . "stash")
    (6575 . "state") (6576 . "statutory") (6577 . "statistic")
    (6578 . "statue") (6579 . "stature") (6580 . "status")
    (6581 . "statute") (6582 . "steadying") (6583 . "staunch")
    (6584 . "stays") (6585 . "steadfast") (6586 . "steadier")
    (6587 . "steadily") (6588 . "stir") (6589 . "stingy")
    (6590 . "stinking") (6591 . "stinky") (6592 . "stipend")
    (6593 . "stipulate") (6594 . "step") (6595 . "stegosaur")
    (6596 . "stellar") (6597 . "stem") (6598 . "stench")
    (6599 . "stencil") (6600 . "sternness") (6601 . "stereo")
    (6602 . "sterile") (6603 . "sterility") (6604 . "sterilize")
    (6605 . "sterling") (6606 . "stiffness") (6607 . "sternum")
    (6608 . "stew") (6609 . "stick") (6610 . "stiffen")
    (6611 . "stiffly") (6612 . "stimulate") (6613 . "stifle")
    (6614 . "stifling") (6615 . "stillness") (6616 . "stilt")
    (6617 . "stimulant") (6618 . "stingray") (6619 . "stimuli")
    (6620 . "stimulus") (6621 . "stinger") (6622 . "stingily")
    (6623 . "stinging") (6624 . "straining") (6625 . "stowing")
    (6626 . "straddle") (6627 . "straggler") (6628 . "strained")
    (6629 . "strainer") (6630 . "stomp") (6631 . "stitch")
    (6632 . "stock") (6633 . "stoic") (6634 . "stoke")
    (6635 . "stole") (6636 . "stood") (6637 . "stonewall")
    (6638 . "stoneware") (6639 . "stonework") (6640 . "stoning")
    (6641 . "stony") (6642 . "stoppage") (6643 . "stooge")
    (6644 . "stool") (6645 . "stoop") (6646 . "stoplight")
    (6647 . "stoppable") (6648 . "storage") (6649 . "stopped")
    (6650 . "stopper") (6651 . "stopping") (6652 . "stopwatch")
    (6653 . "storable") (6654 . "stowaway") (6655 . "storeroom")
    (6656 . "storewide") (6657 . "storm") (6658 . "stout")
    (6659 . "stove") (6660 . "strum") (6661 . "strongman")
    (6662 . "struck") (6663 . "structure") (6664 . "strudel")
    (6665 . "struggle") (6666 . "stratus") (6667 . "strangely")
    (6668 . "stranger") (6669 . "strangle") (6670 . "strategic")
    (6671 . "strategy") (6672 . "strength") (6673 . "straw")
    (6674 . "stray") (6675 . "streak") (6676 . "stream")
    (6677 . "street") (6678 . "stricken") (6679 . "strenuous")
    (6680 . "strep") (6681 . "stress") (6682 . "stretch")
    (6683 . "strewn") (6684 . "strive") (6685 . "strict")
    (6686 . "stride") (6687 . "strife") (6688 . "strike")
    (6689 . "striking") (6690 . "strongly") (6691 . "striving")
    (6692 . "strobe") (6693 . "strode") (6694 . "stroller")
    (6695 . "strongbox") (6696 . "return") (6697 . "retreat")
    (6698 . "retrial") (6699 . "retrieval") (6700 . "retriever")
    (6701 . "retry") (6702 . "resubmit") (6703 . "resonant")
    (6704 . "resonate") (6705 . "resort") (6706 . "resource")
    (6707 . "respect") (6708 . "retail") (6709 . "result")
    (6710 . "resume") (6711 . "resupply") (6712 . "resurface")
    (6713 . "resurrect") (6714 . "rethink") (6715 . "retainer")
    (6716 . "retaining") (6717 . "retake") (6718 . "retaliate")
    (6719 . "retention") (6720 . "retool") (6721 . "retinal")
    (6722 . "retired") (6723 . "retiree") (6724 . "retiring")
    (6725 . "retold") (6726 . "retread") (6727 . "retorted")
    (6728 . "retouch") (6729 . "retrace") (6730 . "retract")
    (6731 . "retrain") (6732 . "reheat") (6733 . "regroup")
    (6734 . "regular") (6735 . "regulate") (6736 . "regulator")
    (6737 . "rehab") (6738 . "refract") (6739 . "reforest")
    (6740 . "reformat") (6741 . "reformed") (6742 . "reformer")
    (6743 . "reformist") (6744 . "refund") (6745 . "refrain")
    (6746 . "refreeze") (6747 . "refresh") (6748 . "refried")
    (6749 . "refueling") (6750 . "refutable") (6751 . "refurbish")
    (6752 . "refurnish") (6753 . "refusal") (6754 . "refuse")
    (6755 . "refusing") (6756 . "regime") (6757 . "refute")
    (6758 . "regain") (6759 . "regalia") (6760 . "regally")
    (6761 . "reggae") (6762 . "regretful") (6763 . "region")
    (6764 . "register") (6765 . "registrar") (6766 . "registry")
    (6767 . "regress") (6768 . "remake") (6769 . "reload")
    (6770 . "relocate") (6771 . "relock") (6772 . "reluctant")
    (6773 . "rely") (6774 . "rejoice") (6775 . "rehire")
    (6776 . "rehydrate") (6777 . "reimburse") (6778 . "reissue")
    (6779 . "reiterate") (6780 . "relatable") (6781 . "rejoicing")
    (6782 . "rejoin") (6783 . "rekindle") (6784 . "relapse")
    (6785 . "relapsing") (6786 . "relearn") (6787 . "related")
    (6788 . "relation") (6789 . "relative") (6790 . "relax")
    (6791 . "relay") (6792 . "reliant") (6793 . "release")
    (6794 . "relenting") (6795 . "reliable") (6796 . "reliably")
    (6797 . "reliance") (6798 . "relive") (6799 . "relic")
    (6800 . "relieve") (6801 . "relieving") (6802 . "relight")
    (6803 . "relish") (6804 . "renter") (6805 . "renovate")
    (6806 . "renovator") (6807 . "rentable") (6808 . "rental")
    (6809 . "rented") (6810 . "remember") (6811 . "remark")
    (6812 . "remarry") (6813 . "rematch") (6814 . "remedial")
    (6815 . "remedy") (6816 . "remodeler") (6817 . "reminder")
    (6818 . "remindful") (6819 . "remission") (6820 . "remix")
    (6821 . "remnant") (6822 . "removed") (6823 . "remold")
    (6824 . "remorse") (6825 . "remote") (6826 . "removable")
    (6827 . "removal") (6828 . "rendition") (6829 . "remover")
    (6830 . "removing") (6831 . "rename") (6832 . "renderer")
    (6833 . "rendering") (6834 . "renounce") (6835 . "renegade")
    (6836 . "renewable") (6837 . "renewably") (6838 . "renewal")
    (6839 . "renewed") (6840 . "repugnant") (6841 . "reproduce")
    (6842 . "reprogram") (6843 . "reps") (6844 . "reptile")
    (6845 . "reptilian") (6846 . "repacking") (6847 . "reoccupy")
    (6848 . "reoccur") (6849 . "reopen") (6850 . "reorder")
    (6851 . "repackage") (6852 . "repeal") (6853 . "repaint")
    (6854 . "repair") (6855 . "repave") (6856 . "repaying")
    (6857 . "repayment") (6858 . "replay") (6859 . "repeated")
    (6860 . "repeater") (6861 . "repent") (6862 . "rephrase")
    (6863 . "replace") (6864 . "repost") (6865 . "replica")
    (6866 . "reply") (6867 . "reporter") (6868 . "repose")
    (6869 . "repossess") (6870 . "reprocess") (6871 . "repressed")
    (6872 . "reprimand") (6873 . "reprint") (6874 . "reprise")
    (6875 . "reproach") (6876 . "resolved") (6877 . "resilient")
    (6878 . "resistant") (6879 . "resisting") (6880 . "resize")
    (6881 . "resolute") (6882 . "request") (6883 . "repulsion")
    (6884 . "repulsive") (6885 . "repurpose") (6886 . "reputable")
    (6887 . "reputably") (6888 . "resample") (6889 . "require")
    (6890 . "requisite") (6891 . "reroute") (6892 . "rerun")
    (6893 . "resale") (6894 . "resemble") (6895 . "rescuer")
    (6896 . "reseal") (6897 . "research") (6898 . "reselect")
    (6899 . "reseller") (6900 . "reshuffle") (6901 . "resend")
    (6902 . "resent") (6903 . "reset") (6904 . "reshape")
    (6905 . "reshoot") (6906 . "resigned") (6907 . "residence")
    (6908 . "residency") (6909 . "resident") (6910 . "residual")
    (6911 . "residue") (6912 . "santa") (6913 . "sandworm")
    (6914 . "sandy") (6915 . "sanitary") (6916 . "sanitizer")
    (6917 . "sank") (6918 . "salutary") (6919 . "saline")
    (6920 . "salon") (6921 . "saloon") (6922 . "salsa")
    (6923 . "salt") (6924 . "sample") (6925 . "salute")
    (6926 . "salvage") (6927 . "salvaging") (6928 . "salvation")
    (6929 . "same") (6930 . "sandbag") (6931 . "sampling")
    (6932 . "sanction") (6933 . "sanctity") (6934 . "sanctuary")
    (6935 . "sandal") (6936 . "sandfish") (6937 . "sandbank")
    (6938 . "sandbar") (6939 . "sandblast") (6940 . "sandbox")
    (6941 . "sanded") (6942 . "sandstorm") (6943 . "sanding")
    (6944 . "sandlot") (6945 . "sandpaper") (6946 . "sandpit")
    (6947 . "sandstone") (6948 . "rewire") (6949 . "revolver")
    (6950 . "revolving") (6951 . "reward") (6952 . "rewash")
    (6953 . "rewind") (6954 . "reuse") (6955 . "retying")
    (6956 . "retype") (6957 . "reunion") (6958 . "reunite")
    (6959 . "reusable") (6960 . "revered") (6961 . "reveal")
    (6962 . "reveler") (6963 . "revenge") (6964 . "revenue")
    (6965 . "reverb") (6966 . "reversion") (6967 . "reverence")
    (6968 . "reverend") (6969 . "reversal") (6970 . "reverse")
    (6971 . "reversing") (6972 . "revivable") (6973 . "revert")
    (6974 . "revisable") (6975 . "revise") (6976 . "revision")
    (6977 . "revisit") (6978 . "revolt") (6979 . "revival")
    (6980 . "reviver") (6981 . "reviving") (6982 . "revocable")
    (6983 . "revoke") (6984 . "riptide") (6985 . "ripeness")
    (6986 . "ripening") (6987 . "ripping") (6988 . "ripple")
    (6989 . "rippling") (6990 . "ribbon") (6991 . "reword")
    (6992 . "rework") (6993 . "rewrap") (6994 . "rewrite")
    (6995 . "rhyme") (6996 . "rickety") (6997 . "ribcage")
    (6998 . "rice") (6999 . "riches") (7000 . "richly")
    (7001 . "richness") (7002 . "rifling") (7003 . "ricotta")
    (7004 . "riddance") (7005 . "ridden") (7006 . "ride")
    (7007 . "riding") (7008 . "rimmed") (7009 . "rift")
    (7010 . "rigging") (7011 . "rigid") (7012 . "rigor")
    (7013 . "rimless") (7014 . "ripcord") (7015 . "rind")
    (7016 . "rink") (7017 . "rinse") (7018 . "rinsing")
    (7019 . "riot") (7020 . "roping") (7021 . "rocky")
    (7022 . "rogue") (7023 . "roman") (7024 . "romp")
    (7025 . "rope") (7026 . "ritzy") (7027 . "rise")
    (7028 . "rising") (7029 . "risk") (7030 . "risotto")
    (7031 . "ritalin") (7032 . "riveter") (7033 . "rival")
    (7034 . "riverbank") (7035 . "riverbed") (7036 . "riverboat")
    (7037 . "riverside") (7038 . "robe") (7039 . "riveting")
    (7040 . "roamer") (7041 . "roaming") (7042 . "roast")
    (7043 . "robbing") (7044 . "rocket") (7045 . "robin")
    (7046 . "robotics") (7047 . "robust") (7048 . "rockband")
    (7049 . "rocker") (7050 . "rockstar") (7051 . "rockfish")
    (7052 . "rockiness") (7053 . "rocking") (7054 . "rocklike")
    (7055 . "rockslide") (7056 . "runny") (7057 . "rumor")
    (7058 . "runaround") (7059 . "rundown") (7060 . "runner")
    (7061 . "running") (7062 . "roulette") (7063 . "roster")
    (7064 . "rosy") (7065 . "rotten") (7066 . "rotting")
    (7067 . "rotunda") (7068 . "routine") (7069 . "rounding")
    (7070 . "roundish") (7071 . "roundness") (7072 . "roundup")
    (7073 . "roundworm") (7074 . "rubber") (7075 . "routing")
    (7076 . "rover") (7077 . "roving") (7078 . "royal")
    (7079 . "rubbed") (7080 . "rudder") (7081 . "rubbing")
    (7082 . "rubble") (7083 . "rubdown") (7084 . "ruby")
    (7085 . "ruckus") (7086 . "rummage") (7087 . "rug")
    (7088 . "ruined") (7089 . "rule") (7090 . "rumble")
    (7091 . "rumbling") (7092 . "salary") (7093 . "saint")
    (7094 . "sake") (7095 . "salad") (7096 . "salami")
    (7097 . "salaried") (7098 . "rush") (7099 . "runt")
    (7100 . "runway") (7101 . "rupture") (7102 . "rural")
    (7103 . "ruse") (7104 . "sacred") (7105 . "rust")
    (7106 . "rut") (7107 . "sabbath") (7108 . "sabotage")
    (7109 . "sacrament") (7110 . "sadly") (7111 . "sacrifice")
    (7112 . "sadden") (7113 . "saddlebag") (7114 . "saddled")
    (7115 . "saddling") (7116 . "safeness") (7117 . "sadness")
    (7118 . "safari") (7119 . "safeguard") (7120 . "safehouse")
    (7121 . "safely") (7122 . "said") (7123 . "saffron")
    (7124 . "saga") (7125 . "sage") (7126 . "sagging")
    (7127 . "saggy") (7128 . "shawl") (7129 . "sharpener")
    (7130 . "sharper") (7131 . "sharpie") (7132 . "sharply")
    (7133 . "sharpness") (7134 . "shabby") (7135 . "sevenfold")
    (7136 . "seventeen") (7137 . "seventh") (7138 . "seventy")
    (7139 . "severity") (7140 . "shadow") (7141 . "shack")
    (7142 . "shaded") (7143 . "shadily") (7144 . "shadiness")
    (7145 . "shading") (7146 . "shaking") (7147 . "shady")
    (7148 . "shaft") (7149 . "shakable") (7150 . "shakily")
    (7151 . "shakiness") (7152 . "shampoo") (7153 . "shaky")
    (7154 . "shale") (7155 . "shallot") (7156 . "shallow")
    (7157 . "shame") (7158 . "share") (7159 . "shamrock")
    (7160 . "shank") (7161 . "shanty") (7162 . "shape")
    (7163 . "shaping") (7164 . "scallop") (7165 . "scalded")
    (7166 . "scalding") (7167 . "scale") (7168 . "scaling")
    (7169 . "scallion") (7170 . "sardine") (7171 . "sapling")
    (7172 . "sappiness") (7173 . "sappy") (7174 . "sarcasm")
    (7175 . "sarcastic") (7176 . "satin") (7177 . "sash")
    (7178 . "sasquatch") (7179 . "sassy") (7180 . "satchel")
    (7181 . "satiable") (7182 . "sauciness") (7183 . "satirical")
    (7184 . "satisfied") (7185 . "satisfy") (7186 . "saturate")
    (7187 . "saturday") (7188 . "savings") (7189 . "saucy")
    (7190 . "sauna") (7191 . "savage") (7192 . "savanna")
    (7193 . "saved") (7194 . "scabby") (7195 . "savior")
    (7196 . "savor") (7197 . "saxophone") (7198 . "say")
    (7199 . "scabbed") (7200 . "scorebook") (7201 . "scone")
    (7202 . "scoop") (7203 . "scooter") (7204 . "scope")
    (7205 . "scorch") (7206 . "scant") (7207 . "scalping")
    (7208 . "scam") (7209 . "scandal") (7210 . "scanner")
    (7211 . "scanning") (7212 . "scarf") (7213 . "scapegoat")
    (7214 . "scarce") (7215 . "scarcity") (7216 . "scarecrow")
    (7217 . "scared") (7218 . "scenic") (7219 . "scarily")
    (7220 . "scariness") (7221 . "scarring") (7222 . "scary")
    (7223 . "scavenger") (7224 . "schnapps") (7225 . "schedule")
    (7226 . "schematic") (7227 . "scheme") (7228 . "scheming")
    (7229 . "schilling") (7230 . "scolding") (7231 . "scholar")
    (7232 . "science") (7233 . "scientist") (7234 . "scion")
    (7235 . "scoff") (7236 . "scuba") (7237 . "scrubbed")
    (7238 . "scrubber") (7239 . "scruffy") (7240 . "scrunch")
    (7241 . "scrutiny") (7242 . "scorn") (7243 . "scorecard")
    (7244 . "scored") (7245 . "scoreless") (7246 . "scorer")
    (7247 . "scoring") (7248 . "scouting") (7249 . "scorpion")
    (7250 . "scotch") (7251 . "scoundrel") (7252 . "scoured")
    (7253 . "scouring") (7254 . "scrambler") (7255 . "scouts")
    (7256 . "scowling") (7257 . "scrabble") (7258 . "scraggly")
    (7259 . "scrambled") (7260 . "scribe") (7261 . "scrap")
    (7262 . "scratch") (7263 . "scrawny") (7264 . "screen")
    (7265 . "scribble") (7266 . "scrounger") (7267 . "scribing")
    (7268 . "scrimmage") (7269 . "script") (7270 . "scroll")
    (7271 . "scrooge") (7272 . "semicolon") (7273 . "selector")
    (7274 . "self") (7275 . "seltzer") (7276 . "semantic")
    (7277 . "semester") (7278 . "secluded") (7279 . "scuff")
    (7280 . "sculptor") (7281 . "sculpture") (7282 . "scurvy")
    (7283 . "scuttle") (7284 . "sectional") (7285 . "secluding")
    (7286 . "seclusion") (7287 . "second") (7288 . "secrecy")
    (7289 . "secret") (7290 . "sedate") (7291 . "sector")
    (7292 . "secular") (7293 . "securely") (7294 . "security")
    (7295 . "sedan") (7296 . "segment") (7297 . "sedation")
    (7298 . "sedative") (7299 . "sediment") (7300 . "seduce")
    (7301 . "seducing") (7302 . "selective") (7303 . "seismic")
    (7304 . "seizing") (7305 . "seldom") (7306 . "selected")
    (7307 . "selection") (7308 . "setup") (7309 . "sessions")
    (7310 . "setback") (7311 . "setting") (7312 . "settle")
    (7313 . "settling") (7314 . "senator") (7315 . "semifinal")
    (7316 . "seminar") (7317 . "semisoft") (7318 . "semisweet")
    (7319 . "senate") (7320 . "sensitize") (7321 . "send")
    (7322 . "senior") (7323 . "senorita") (7324 . "sensation")
    (7325 . "sensitive") (7326 . "septum") (7327 . "sensually")
    (7328 . "sensuous") (7329 . "sepia") (7330 . "september")
    (7331 . "septic") (7332 . "serotonin") (7333 . "sequel")
    (7334 . "sequence") (7335 . "sequester") (7336 . "series")
    (7337 . "sermon") (7338 . "sesame") (7339 . "serpent")
    (7340 . "serrated") (7341 . "serve") (7342 . "service")
    (7343 . "serving") (7344 . "slinky") (7345 . "slightly")
    (7346 . "slimness") (7347 . "slimy") (7348 . "slinging")
    (7349 . "slingshot") (7350 . "slander") (7351 . "slacking")
    (7352 . "slackness") (7353 . "slacks") (7354 . "slain")
    (7355 . "slam") (7356 . "slate") (7357 . "slang")
    (7358 . "slapping") (7359 . "slapstick") (7360 . "slashed")
    (7361 . "slashing") (7362 . "sleet") (7363 . "slather")
    (7364 . "slaw") (7365 . "sled") (7366 . "sleek")
    (7367 . "sleep") (7368 . "slicing") (7369 . "sleeve")
    (7370 . "slept") (7371 . "sliceable") (7372 . "sliced")
    (7373 . "slicer") (7374 . "slighting") (7375 . "slick")
    (7376 . "slider") (7377 . "slideshow") (7378 . "sliding")
    (7379 . "slighted") (7380 . "shortcut") (7381 . "shopping")
    (7382 . "shoptalk") (7383 . "shore") (7384 . "shortage")
    (7385 . "shortcake") (7386 . "shell") (7387 . "sheath")
    (7388 . "shed") (7389 . "sheep") (7390 . "sheet")
    (7391 . "shelf") (7392 . "shifter") (7393 . "shelter")
    (7394 . "shelve") (7395 . "shelving") (7396 . "sherry")
    (7397 . "shield") (7398 . "shindig") (7399 . "shifting")
    (7400 . "shiftless") (7401 . "shifty") (7402 . "shimmer")
    (7403 . "shimmy") (7404 . "ship") (7405 . "shine")
    (7406 . "shingle") (7407 . "shininess") (7408 . "shining")
    (7409 . "shiny") (7410 . "shopper") (7411 . "shirt")
    (7412 . "shivering") (7413 . "shock") (7414 . "shone")
    (7415 . "shoplift") (7416 . "shrouded") (7417 . "shrill")
    (7418 . "shrimp") (7419 . "shrine") (7420 . "shrink")
    (7421 . "shrivel") (7422 . "shortness") (7423 . "shorten")
    (7424 . "shorter") (7425 . "shorthand") (7426 . "shortlist")
    (7427 . "shortly") (7428 . "showbiz") (7429 . "shorts")
    (7430 . "shortwave") (7431 . "shorty") (7432 . "shout")
    (7433 . "shove") (7434 . "showman") (7435 . "showcase")
    (7436 . "showdown") (7437 . "shower") (7438 . "showgirl")
    (7439 . "showing") (7440 . "showy") (7441 . "shown")
    (7442 . "showoff") (7443 . "showpiece") (7444 . "showplace")
    (7445 . "showroom") (7446 . "shriek") (7447 . "shrank")
    (7448 . "shrapnel") (7449 . "shredder") (7450 . "shredding")
    (7451 . "shrewdly") (7452 . "simplify") (7453 . "silver")
    (7454 . "similarly") (7455 . "simile") (7456 . "simmering")
    (7457 . "simple") (7458 . "shudder") (7459 . "shrubbery")
    (7460 . "shrubs") (7461 . "shrug") (7462 . "shrunk")
    (7463 . "shucking") (7464 . "shy") (7465 . "shuffle")
    (7466 . "shuffling") (7467 . "shun") (7468 . "shush")
    (7469 . "shut") (7470 . "siesta") (7471 . "siamese")
    (7472 . "siberian") (7473 . "sibling") (7474 . "siding")
    (7475 . "sierra") (7476 . "silica") (7477 . "sift")
    (7478 . "sighing") (7479 . "silenced") (7480 . "silencer")
    (7481 . "silent") (7482 . "silt") (7483 . "silicon")
    (7484 . "silk") (7485 . "silliness") (7486 . "silly")
    (7487 . "silo") (7488 . "skeleton") (7489 . "sizzling")
    (7490 . "skater") (7491 . "skating") (7492 . "skedaddle")
    (7493 . "skeletal") (7494 . "single") (7495 . "simply")
    (7496 . "sincere") (7497 . "sincerity") (7498 . "singer")
    (7499 . "singing") (7500 . "sip") (7501 . "singular")
    (7502 . "sinister") (7503 . "sinless") (7504 . "sinner")
    (7505 . "sinuous") (7506 . "situated") (7507 . "siren")
    (7508 . "sister") (7509 . "sitcom") (7510 . "sitter")
    (7511 . "sitting") (7512 . "sixtieth") (7513 . "situation")
    (7514 . "sixfold") (7515 . "sixteen") (7516 . "sixth")
    (7517 . "sixties") (7518 . "sizzle") (7519 . "sixtyfold")
    (7520 . "sizable") (7521 . "sizably") (7522 . "size")
    (7523 . "sizing") (7524 . "slacker") (7525 . "skype")
    (7526 . "skyrocket") (7527 . "skyward") (7528 . "slab")
    (7529 . "slacked") (7530 . "skied") (7531 . "skeptic")
    (7532 . "sketch") (7533 . "skewed") (7534 . "skewer")
    (7535 . "skid") (7536 . "skillful") (7537 . "skier")
    (7538 . "skies") (7539 . "skiing") (7540 . "skilled")
    (7541 . "skillet") (7542 . "skinhead") (7543 . "skimmed")
    (7544 . "skimmer") (7545 . "skimming") (7546 . "skimpily")
    (7547 . "skincare") (7548 . "skipping") (7549 . "skinless")
    (7550 . "skinning") (7551 . "skinny") (7552 . "skintight")
    (7553 . "skipper") (7554 . "skyline") (7555 . "skirmish")
    (7556 . "skirt") (7557 . "skittle") (7558 . "skydiver")
    (7559 . "skylight") (7560 . "squint") (7561 . "squeeze")
    (7562 . "squeezing") (7563 . "squid") (7564 . "squiggle")
    (7565 . "squiggly") (7566 . "sprinkled") (7567 . "sprawl")
    (7568 . "spray") (7569 . "spree") (7570 . "sprig")
    (7571 . "spring") (7572 . "sprung") (7573 . "sprinkler")
    (7574 . "sprint") (7575 . "sprite") (7576 . "sprout")
    (7577 . "spruce") (7578 . "squabble") (7579 . "spry")
    (7580 . "spud") (7581 . "spur") (7582 . "sputter")
    (7583 . "spyglass") (7584 . "squatter") (7585 . "squad")
    (7586 . "squall") (7587 . "squander") (7588 . "squash")
    (7589 . "squatted") (7590 . "squeegee") (7591 . "squatting")
    (7592 . "squeak") (7593 . "squealer") (7594 . "squealing")
    (7595 . "squeamish") (7596 . "smokeless") (7597 . "smith")
    (7598 . "smitten") (7599 . "smock") (7600 . "smog")
    (7601 . "smoked") (7602 . "sloped") (7603 . "slip")
    (7604 . "slit") (7605 . "sliver") (7606 . "slobbery")
    (7607 . "slogan") (7608 . "slouchy") (7609 . "sloping")
    (7610 . "sloppily") (7611 . "sloppy") (7612 . "slot")
    (7613 . "slouching") (7614 . "sly") (7615 . "sludge")
    (7616 . "slug") (7617 . "slum") (7618 . "slurp")
    (7619 . "slush") (7620 . "smashup") (7621 . "small")
    (7622 . "smartly") (7623 . "smartness") (7624 . "smasher")
    (7625 . "smashing") (7626 . "smite") (7627 . "smell")
    (7628 . "smelting") (7629 . "smile") (7630 . "smilingly")
    (7631 . "smirk") (7632 . "snowbird") (7633 . "snore")
    (7634 . "snoring") (7635 . "snorkel") (7636 . "snort")
    (7637 . "snout") (7638 . "smother") (7639 . "smokiness")
    (7640 . "smoking") (7641 . "smoky") (7642 . "smolder")
    (7643 . "smooth") (7644 . "smugness") (7645 . "smudge")
    (7646 . "smudgy") (7647 . "smuggler") (7648 . "smuggling")
    (7649 . "smugly") (7650 . "snarl") (7651 . "snack")
    (7652 . "snagged") (7653 . "snaking") (7654 . "snap")
    (7655 . "snare") (7656 . "snide") (7657 . "snazzy")
    (7658 . "sneak") (7659 . "sneer") (7660 . "sneeze")
    (7661 . "sneezing") (7662 . "snooze") (7663 . "sniff")
    (7664 . "snippet") (7665 . "snipping") (7666 . "snitch")
    (7667 . "snooper") (7668 . "speech") (7669 . "specks")
    (7670 . "spectacle") (7671 . "spectator") (7672 . "spectrum")
    (7673 . "speculate") (7674 . "snowfall") (7675 . "snowboard")
    (7676 . "snowbound") (7677 . "snowcap") (7678 . "snowdrift")
    (7679 . "snowdrop") (7680 . "snowplow") (7681 . "snowfield")
    (7682 . "snowflake") (7683 . "snowiness") (7684 . "snowless")
    (7685 . "snowman") (7686 . "snuff") (7687 . "snowshoe")
    (7688 . "snowstorm") (7689 . "snowsuit") (7690 . "snowy")
    (7691 . "snub") (7692 . "spearhead") (7693 . "snuggle")
    (7694 . "snugly") (7695 . "snugness") (7696 . "speak")
    (7697 . "spearfish") (7698 . "speckled") (7699 . "spearman")
    (7700 . "spearmint") (7701 . "species") (7702 . "specimen")
    (7703 . "specked") (7704 . "splendid") (7705 . "splashed")
    (7706 . "splashing") (7707 . "splashy") (7708 . "splatter")
    (7709 . "spleen") (7710 . "spender") (7711 . "speed")
    (7712 . "spellbind") (7713 . "speller") (7714 . "spelling")
    (7715 . "spendable") (7716 . "sphinx") (7717 . "spending")
    (7718 . "spent") (7719 . "spew") (7720 . "sphere")
    (7721 . "spherical") (7722 . "spinach") (7723 . "spider")
    (7724 . "spied") (7725 . "spiffy") (7726 . "spill")
    (7727 . "spilt") (7728 . "spinster") (7729 . "spinal")
    (7730 . "spindle") (7731 . "spinner") (7732 . "spinning")
    (7733 . "spinout") (7734 . "spiritual") (7735 . "spiny")
    (7736 . "spiral") (7737 . "spirited") (7738 . "spiritism")
    (7739 . "spirits") (7740 . "sprang") (7741 . "spotty")
    (7742 . "spousal") (7743 . "spouse") (7744 . "spout")
    (7745 . "sprain") (7746 . "splurge") (7747 . "splendor")
    (7748 . "splice") (7749 . "splicing") (7750 . "splinter")
    (7751 . "splotchy") (7752 . "spoken") (7753 . "spoilage")
    (7754 . "spoiled") (7755 . "spoiler") (7756 . "spoiling")
    (7757 . "spoils") (7758 . "spookily") (7759 . "spokesman")
    (7760 . "sponge") (7761 . "spongy") (7762 . "sponsor")
    (7763 . "spoof") (7764 . "sports") (7765 . "spooky")
    (7766 . "spool") (7767 . "spoon") (7768 . "spore")
    (7769 . "sporting") (7770 . "spotting") (7771 . "sporty")
    (7772 . "spotless") (7773 . "spotlight") (7774 . "spotted")
    (7775 . "spotter"))
  "Internalized version of the \"large\" EFF wordlist.

The original file can be found under the following link:
https://www.eff.org/files/2016/07/18/eff_large_wordlist.txt")

(provide 'dw)
;;; dw.el ends here

;; LocalWords:  wordlists wordlist utf alist https http

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [NonGNU ELPA] New package: dw.el
  2021-03-31 23:42           ` D
@ 2021-04-01  9:17             ` Jean Louis
  2021-04-01 16:49               ` D
  0 siblings, 1 reply; 16+ messages in thread
From: Jean Louis @ 2021-04-01  9:17 UTC (permalink / raw)
  To: D; +Cc: emacs-devel

* D <d.williams@posteo.net> [2021-04-01 02:43]:
> I added a builtin wordlist.  Adding
> (with-eval-after-load 'dw
>   (setq-default dw-current-wordlist dw-eff-large))

Thank you, it works well. It seem to be self-contained. Now I get from
the first line the second one:

;; 13531 51252 16261 16621 16621
;; boasting relieve coexist consonant consonant


-- 
Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns

Sign an open letter in support of Richard M. Stallman
https://rms-support-letter.github.io/




^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [NonGNU ELPA] New package: dw.el
  2021-04-01  9:17             ` Jean Louis
@ 2021-04-01 16:49               ` D
  2021-04-01 16:51                 ` Jean Louis
  0 siblings, 1 reply; 16+ messages in thread
From: D @ 2021-04-01 16:49 UTC (permalink / raw)
  To: Jean Louis; +Cc: emacs-devel

On 01/04/2021 11:17, Jean Louis wrote:
> * D <d.williams@posteo.net> [2021-04-01 02:43]:
>> I added a builtin wordlist.  Adding
>> (with-eval-after-load 'dw
>>   (setq-default dw-current-wordlist dw-eff-large))
> 
> Thank you, it works well. It seem to be self-contained. Now I get from
> the first line the second one:
> 
> ;; 13531 51252 16261 16621 16621
> ;; boasting relieve coexist consonant consonant

Perfect!

On a side note, I would love to maintain the package myself (should it
be accepted).  Is there anything I need to know, or will the server just
fetch every (tagged?) version on master?  I may have overlooked the
explanation in the README.



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [NonGNU ELPA] New package: dw.el
  2021-04-01 16:49               ` D
@ 2021-04-01 16:51                 ` Jean Louis
  0 siblings, 0 replies; 16+ messages in thread
From: Jean Louis @ 2021-04-01 16:51 UTC (permalink / raw)
  To: D; +Cc: emacs-devel

* D <d.williams@posteo.net> [2021-04-01 19:49]:
> On 01/04/2021 11:17, Jean Louis wrote:
> > * D <d.williams@posteo.net> [2021-04-01 02:43]:
> >> I added a builtin wordlist.  Adding
> >> (with-eval-after-load 'dw
> >>   (setq-default dw-current-wordlist dw-eff-large))
> > 
> > Thank you, it works well. It seem to be self-contained. Now I get from
> > the first line the second one:
> > 
> > ;; 13531 51252 16261 16621 16621
> > ;; boasting relieve coexist consonant consonant
> 
> Perfect!
> 
> On a side note, I would love to maintain the package myself (should it
> be accepted).  Is there anything I need to know, or will the server just
> fetch every (tagged?) version on master?  I may have overlooked the
> explanation in the README.

I am your tester, but not authorized person to accept package into
Non-GNU ELPA, that decision is upon Emacs developers. I think nobody
responded yet, but they will do.

-- 
Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns

Sign an open letter in support of Richard M. Stallman
https://rms-support-letter.github.io/




^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [NonGNU ELPA] New package: dw.el
  2021-03-30 21:13 [NonGNU ELPA] New package: dw.el D
  2021-03-31  6:38 ` Jean Louis
@ 2021-04-01 21:29 ` Stefan Monnier
  2021-04-01 22:40   ` D
  1 sibling, 1 reply; 16+ messages in thread
From: Stefan Monnier @ 2021-04-01 21:29 UTC (permalink / raw)
  To: D; +Cc: emacs-devel

> I would like to submit this package for inclusion in NonGNU ELPA.

I don't think this matches the intent of NonGNU ELPA.
I'd be happy to accept such a packages into GNU ELPA, on the other hand.

If that's OK with you, then please fill the form below and send it as
instructed to the FSF so they can send you the relevant paperwork to sign.


        Stefan


Please email the following information to assign@gnu.org, and we
will send you the assignment form for your past and future changes.

Please use your full legal name (in ASCII characters) as the subject
line of the message.
----------------------------------------------------------------------
REQUEST: SEND FORM FOR PAST AND FUTURE CHANGES

[What is the name of the program or package you're contributing to?]
Emacs

[Did you copy any files or text written by someone else in these changes?
Even if that material is free software, we need to know about it.]


[Do you have an employer who might have a basis to claim to own
your changes?  Do you attend a school which might make such a claim?]


[For the copyright registration, what country are you a citizen of?]


[What year were you born?]


[Please write your email address here.]


[Please write your postal address here.]





[Which files have you changed so far, and which new files have you written
so far?]




^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [NonGNU ELPA] New package: dw.el
  2021-04-01 21:29 ` Stefan Monnier
@ 2021-04-01 22:40   ` D
  2021-04-01 23:15     ` Stefan Monnier
  0 siblings, 1 reply; 16+ messages in thread
From: D @ 2021-04-01 22:40 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

> I don't think this matches the intent of NonGNU ELPA.
> I'd be happy to accept such a packages into GNU ELPA, on the other hand.

What is the intent of NonGNU ELPA, in that case?  While I was aware that
it was created for large, mature packages where it would be nigh
impossible (or at the very least impractical) to obtain a copyright
assignment from all contributors (e.g. magit), I was not aware of there
being particular requirements related to NonGNU ELPA.

P.S.: Pardon for sending the same mail twice, I forgot to put the ML in
the CC.



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [NonGNU ELPA] New package: dw.el
  2021-04-01 22:40   ` D
@ 2021-04-01 23:15     ` Stefan Monnier
  2021-04-02 17:45       ` D
  0 siblings, 1 reply; 16+ messages in thread
From: Stefan Monnier @ 2021-04-01 23:15 UTC (permalink / raw)
  To: D; +Cc: emacs-devel

>> I don't think this matches the intent of NonGNU ELPA.
>> I'd be happy to accept such a packages into GNU ELPA, on the other hand.
> What is the intent of NonGNU ELPA, in that case?  While I was aware that
> it was created for large, mature packages where it would be nigh
> impossible (or at the very least impractical) to obtain a copyright
> assignment from all contributors (e.g. magit),

Indeed, that's the idea (tho, the packages don't have to be large).

If a package can be added to GNU ELPA instead of NonGNU ELPA, then it is
very much preferable.


        Stefan




^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [NonGNU ELPA] New package: dw.el
  2021-04-01 23:15     ` Stefan Monnier
@ 2021-04-02 17:45       ` D
  2021-04-02 18:14         ` Stefan Monnier
  0 siblings, 1 reply; 16+ messages in thread
From: D @ 2021-04-02 17:45 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

> Indeed, that's the idea (tho, the packages don't have to be large).
> 
> If a package can be added to GNU ELPA instead of NonGNU ELPA, then it is
> very much preferable.

I've been thinking about this for a bit, and was wondering about two
things regarding nongnu ELPA in this case (This is more off-topic/more
general, so I'm not sure if I should take this particular train of
thought to emacs-tangents/change the subject line).  On the one hand, if
that's the intent, wouldn't it be best to have that intent reflected in
nongnu ELPA's README in some way?  Because while I was vaguely aware of
this because I knew of the ML thread, to an outside observer NonGNU may
come off as a built-in package archive more conceptually adjacent to
MELPA. On the other hand, while nongnu primarily seeks out (we could say
high-profile) packages that can't be added to ELPA (yet), doesn't have
the existence of nongnu immense potential as it lowers the perceived
barrier of entry for package developers? If tapped, it could greatly
incentivize the "primary targets" (network effect).



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [NonGNU ELPA] New package: dw.el
  2021-04-02 17:45       ` D
@ 2021-04-02 18:14         ` Stefan Monnier
  2021-04-02 19:27           ` D
  0 siblings, 1 reply; 16+ messages in thread
From: Stefan Monnier @ 2021-04-02 18:14 UTC (permalink / raw)
  To: D; +Cc: emacs-devel

> the existence of nongnu immense potential as it lowers the perceived
> barrier of entry for package developers? If tapped, it could greatly
> incentivize the "primary targets" (network effect).

I think that would encourage people not to sign copyright paperwork.


        Stefan




^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [NonGNU ELPA] New package: dw.el
  2021-04-02 18:14         ` Stefan Monnier
@ 2021-04-02 19:27           ` D
  0 siblings, 0 replies; 16+ messages in thread
From: D @ 2021-04-02 19:27 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

> I think that would encourage people not to sign copyright paperwork.

I would argue that anyone swayed by the presence of an alternative not
involving paperwork currently uses MELPA instead.  I don't think the
risk of that would be increased by any number of additional alternatives
in that case.  If I am not mistaken this would only leave the projects
made by people that (for whatever reason) do not wish to sign copyright
paperwork as a potential gain.



^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2021-04-02 19:27 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-03-30 21:13 [NonGNU ELPA] New package: dw.el D
2021-03-31  6:38 ` Jean Louis
2021-03-31 11:28   ` D
2021-03-31 11:42     ` Jean Louis
2021-03-31 16:24       ` D
2021-03-31 19:43         ` Jean Louis
2021-03-31 23:42           ` D
2021-04-01  9:17             ` Jean Louis
2021-04-01 16:49               ` D
2021-04-01 16:51                 ` Jean Louis
2021-04-01 21:29 ` Stefan Monnier
2021-04-01 22:40   ` D
2021-04-01 23:15     ` Stefan Monnier
2021-04-02 17:45       ` D
2021-04-02 18:14         ` Stefan Monnier
2021-04-02 19:27           ` D

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).