diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d2156fa
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+node_modules/
+.env
+.env.test
+.cache
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..52b6506
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,6 @@
+language: node_js
+node_js:
+ - 15.5.0
+before_script:
+ - npm install -g mocha chai
+script: mocha tests/index.test.js --exit
\ No newline at end of file
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..3bc6d8c
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright 2021 Joey Malvinni
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..5ae2d5c
--- /dev/null
+++ b/README.md
@@ -0,0 +1,49 @@
+# Random Usernames
+This module generates random usernames by combining different words.
+
+Usage:
+
+
+
+```js
+let output = generateUsername({
+ // Setting the order of the outputted words
+ order: ["possibly", "adjectives", "nouns", "numbers"],
+ // Only capitalize nouns
+ capitalize: ["nouns"],
+ // Seperates the words with an underscore
+ separator: '_',
+ // Special formatting done to each individual word
+ wordFormatter: (word) => word.replaceAll('o', '0'),
+ // Special formatting done to the entire string
+ formatter: (str) => str.split('_'),
+ // Enables the addition of custom words in the order, e.g. "Pretty" or "true" or "Random"
+ customWords: true,
+})
+
+console.log(output) // => [ 'p0ssibly', 'c0nservati0n', 'Gridl0ck', '1425' ]
+
+// Generate a username using verbs and adverbs
+
+let output2 = generateUsername({
+ // Setting the order of the outputted words
+ order: ["Cool", "verbs", "adverbs", "numbers"],
+ // Only capitalize nouns
+ capitalize: ["adverbs"],
+ // Seperates the words with an underscore
+ separator: '_',
+ // Special formatting done to each individual word
+ wordFormatter: (word) => word.replaceAll('o', '0'),
+ // Special formatting done to the entire string
+ formatter: (str) => str.split('_'),
+ // Enables the addition of custom words in the order, e.g. "Exotic" or "Cool" or "Nice"
+ customWords: true,
+})
+
+console.log(output2) // => [ 'c00l', 'fraudulent', 'R0adbl0ck', '7586' ]
+
+// Generate a username without any parameters
+let output3 = generateUsername()
+
+console.log(output3) // => DiscerningSquid4
+```
\ No newline at end of file
diff --git a/data/adjectives.json b/data/adjectives.json
new file mode 100644
index 0000000..da248ec
--- /dev/null
+++ b/data/adjectives.json
@@ -0,0 +1 @@
+["other", "new", "good", "old", "little", "great", "small", "young", "long", "black", "high", "only", "big", "white", "political", "right", "large", "real", "sure", "different", "important", "public", "possible", "full", "whole", "certain", "human", "major", "military", "bad", "social", "dead", "true", "economic", "open", "early", "free", "national", "strong", "hard", "special", "clear", "local", "private", "wrong", "late", "short", "poor", "recent", "dark", "fine", "foreign", "ready", "red", "cold", "low", "heavy", "serious", "single", "personal", "difficult", "left", "blue", "federal", "necessary", "general", "easy", "likely", "beautiful", "happy", "past", "hot", "close", "common", "afraid", "simple", "natural", "main", "various", "available", "nice", "present", "final", "sorry", "entire", "current", "similar", "deep", "huge", "rich", "nuclear", "empty", "strange", "quiet", "front", "wide", "modern", "concerned", "green", "very", "alone", "particular", "bright", "supposed", "basic", "medical", "aware", "total", "financial", "legal", "original", "international", "soft", "alive", "interested", "tall", "warm", "popular", "tiny", "top", "normal", "powerful", "silent", "religious", "impossible", "quick", "safe", "thin", "familiar", "gray", "fresh", "physical", "individual", "willing", "crazy", "sick", "angry", "perfect", "tired", "wild", "moral", "brown", "dangerous", "famous", "married", "terrible", "successful", "fair", "professional", "official", "obvious", "glad", "central", "chief", "effective", "light", "complete", "interesting", "thick", "proper", "involved", "responsible", "narrow", "civil", "industrial", "dry", "yellow", "specific", "sharp", "sudden", "direct", "following", "growing", "significant", "traditional", "slow", "previous", "vast", "surprised", "busy", "usual", "clean", "funny", "regular", "scientific", "ordinary", "ancient", "senior", "sweet", "future", "annual", "secret", "equal", "independent", "wonderful", "tough", "broad", "additional", "careful", "domestic", "brief", "enormous", "commercial", "grand", "average", "sexual", "nervous", "pale", "immediate", "critical", "proud", "like", "complex", "separate", "considerable", "still", "extra", "expensive", "guilty", "active", "mad", "asleep", "wooden", "cool", "presidential", "apparent", "weak", "essential", "living", "pretty", "cultural", "useful", "actual", "unusual", "daily", "potential", "wet", "solid", "lovely", "comfortable", "formal", "outside", "massive", "sad", "corporate", "distant", "loose", "rare", "stupid", "visible", "liberal", "flat", "pleased", "pure", "curious", "practical", "upper", "technical", "male", "appropriate", "fat", "just", "due", "mere", "handsome", "mental", "conservative", "positive", "leading", "naked", "false", "drunk", "dirty", "friendly", "constant", "well", "used", "emotional", "internal", "odd", "historical", "female", "ill", "broken", "capable", "southern", "pleasant", "bare", "minor", "eager", "lucky", "urban", "steady", "fiscal", "rough", "primary", "reasonable", "typical", "inner", "favorite", "attractive", "slight", "innocent", "limited", "straight", "pink", "excellent", "double", "dramatic", "violent", "honest", "electric", "fellow", "substantial", "opposite", "awful", "severe", "joint", "armed", "hungry", "remarkable", "increased", "gentle", "illegal", "middle", "bitter", "mass", "permanent", "increasing", "damn", "golden", "correct", "intense", "round", "northern", "proposed", "so-called", "criminal", "healthy", "plain", "vital", "blind", "native", "intellectual", "unknown", "extreme", "existing", "raw", "prime", "brilliant", "sensitive", "extraordinary", "sufficient", "remaining", "ultimate", "unique", "royal", "initial", "negative", "fundamental", "nearby", "smart", "strategic", "educational", "unlikely", "smooth", "modest", "conventional", "giant", "scared", "cheap", "dear", "delicate", "anxious", "valuable", "standard", "desperate", "lonely", "diplomatic", "firm", "wise", "principal", "congressional", "occasional", "ugly", "vice", "radical", "faint", "working", "absolute", "intelligent", "racial", "mutual", "silly", "fast", "musical", "tight", "complicated", "numerous", "crucial", "square", "contemporary", "bloody", "western", "endless", "inevitable", "environmental", "constitutional", "rapid", "worried", "lost", "genuine", "temporary", "democratic", "rural", "regional", "given", "painful", "literary", "chemical", "sophisticated", "decent", "academic", "awake", "conscious", "revolutionary", "surprising", "elderly", "agricultural", "psychological", "pregnant", "live", "adequate", "superior", "grateful", "prominent", "frightened", "remote", "overall", "stiff", "harsh", "electronic", "spiritual", "okay", "closed", "excited", "convinced", "long-term", "unexpected", "dull", "evident", "civilian", "mysterious", "romantic", "impressive", "continuing", "exciting", "logical", "peculiar", "exact", "widespread", "foolish", "extensive", "evil", "continued", "confident", "generous", "legislative", "stable", "vulnerable", "elegant", "embarrassed", "hostile", "efficient", "blond", "dumb", "advanced", "defensive", "outer", "neat", "estimated", "wealthy", "dying", "loud", "creative", "acceptable", "unhappy", "sheer", "competitive", "concrete", "reluctant", "fucking", "precious", "tremendous", "burning", "precise", "uncertain", "holy", "artificial", "vague", "ideal", "universal", "moderate", "subtle", "mild", "peaceful", "assistant", "invisible", "casual", "crowded", "crude", "running", "classic", "controversial", "ridiculous", "frequent", "grim", "accurate", "detailed", "goddamn", "fun", "fierce", "cruel", "incredible", "blank", "dim", "suitable", "classical", "elaborate", "collective", "eastern", "legitimate", "aggressive", "rear", "administrative", "automatic", "dependent", "ashamed", "distinct", "fit", "clever", "brave", "ethnic", "maximum", "relative", "primitive", "uncomfortable", "profound", "sacred", "biological", "identical", "furious", "loyal", "rational", "mechanical", "mean", "naval", "noble", "ambitious", "purple", "historic", "dominant", "suburban", "developing", "calm", "frozen", "subsequent", "charming", "damp", "fixed", "rigid", "offensive", "electrical", "shy", "continuous", "urgent", "weary", "immense", "splendid", "downtown", "uneasy", "disappointed", "helpless", "voluntary", "polite", "junior", "gross", "striking", "overwhelming", "unconscious", "steep", "outstanding", "tender", "tragic", "costly", "miserable", "near", "useless", "welcome", "external", "helpful", "weekly", "middle-aged", "suspicious", "old-fashioned", "technological", "damned", "awkward", "visual", "organized", "ideological", "orange", "horrible", "strict", "magnificent", "deadly", "dusty", "mighty", "puzzled", "bold", "global", "passing", "magic", "fond", "judicial", "missing", "definite", "changing", "rubber", "theoretical", "satisfied", "promising", "abstract", "excessive", "comparable", "fatal", "distinguished", "inadequate", "slender", "artistic", "known", "sympathetic", "favorable", "cheerful", "faithful", "delighted", "unnecessary", "sole", "cautious", "productive", "reliable", "patient", "sensible", "desirable", "depressed", "atomic", "able", "instant", "relevant", "alien", "spectacular", "lesser", "swift", "comic", "enthusiastic", "marvelous", "experimental", "weird", "retired", "fascinating", "content", "medieval", "inclined", "bored", "ruling", "flying", "consistent", "organic", "alleged", "grave", "smiling", "realistic", "amazing", "exotic", "symbolic", "confused", "underground", "spare", "philosophical", "vigorous", "troubled", "shallow", "amused", "lively", "genetic", "impatient", "brutal", "solar", "unfair", "formidable", "tense", "unfortunate", "minimum", "sleeping", "secondary", "shiny", "jealous", "insane", "gay", "vivid", "wounded", "hurt", "intimate", "monthly", "sour", "socialist", "worthy", "preliminary", "colonial", "middle-class", "alternative", "influential", "unpleasant", "comprehensive", "devoted", "upset", "secure", "absurd", "neutral", "frightening", "profitable", "fragile", "civilized", "slim", "partial", "added", "fearful", "optimistic", "isolated", "eternal", "vocal", "beloved", "alert", "verbal", "rising", "skilled", "antique", "municipal", "written", "restless", "outdoor", "governmental", "driving", "sore", "informal", "loving", "retail", "hidden", "determined", "monetary", "convenient", "thoughtful", "colored", "progressive", "bizarre", "sweeping", "fancy", "expected", "fantastic", "editorial", "intact", "bottom", "multiple", "well-known", "nasty", "protective", "acute", "combined", "related", "fortunate", "earnest", "divine", "passionate", "icy", "noisy", "vicious", "dreadful", "apt", "boring", "unprecedented", "decisive", "sunny", "marked", "experienced", "disturbing", "satisfactory", "sober", "random", "electoral", "shocked", "deliberate", "coming", "orderly", "surrounding", "unwilling", "inherent", "mixed", "naive", "dense", "hopeless", "aesthetic", "supreme", "encouraging", "institutional", "solemn", "stubborn", "required", "relaxed", "bald", "frantic", "exclusive", "rotten", "filthy", "flexible", "explicit", "glorious", "lean", "ignorant", "extended", "embarrassing", "architectural", "mortal", "corrupt", "hopeful", "regulatory", "valid", "characteristic", "tribal", "capitalist", "diverse", "functional", "improved", "ironic", "graceful", "unaware", "respectable", "eligible", "lousy", "established", "postwar", "objective", "wary", "elementary", "moving", "superb", "cute", "minimal", "meaningful", "notable", "structural", "developed", "rolling", "fashionable", "persistent", "distinctive", "terrific", "thorough", "skeptical", "secular", "chronic", "level", "everyday", "visiting", "infinite", "short-term", "terrorist", "youthful", "unemployed", "forced", "liquid", "explosive", "rude", "colorful", "renewed", "semantic", "astonishing", "passive", "heroic", "gleaming", "indifferent", "vertical", "prior", "anonymous", "absent", "customary", "mobile", "uniform", "solitary", "probable", "amazed", "petty", "bleak", "athletic", "tentative", "harmless", "ample", "right-wing", "polished", "obscure", "sincere", "dried", "intensive", "equivalent", "convincing", "idle", "vacant", "mature", "amusing", "competent", "ominous", "savage", "motionless", "tropical", "blunt", "drunken", "delicious", "lazy", "ragged", "longtime", "nationwide", "startling", "civic", "freezing", "muscular", "circular", "imperial", "irrelevant", "countless", "gloomy", "startled", "disastrous", "skinny", "hollow", "upward", "ethical", "underlying", "careless", "wholesale", "abandoned", "unfamiliar", "mandatory", "imaginary", "bewildered", "annoyed", "magnetic", "dazzling", "lengthy", "stern", "surgical", "clinical", "full-time", "metropolitan", "moist", "unlike", "doubtful", "prosperous", "keen", "awesome", "humble", "interior", "psychiatric", "clumsy", "outraged", "theatrical", "educated", "gigantic", "scattered", "privileged", "sleepy", "battered", "meaningless", "predictable", "gradual", "miniature", "radioactive", "prospective", "aging", "destructive", "authentic", "portable", "bearded", "balanced", "shining", "spontaneous", "bureaucratic", "inferior", "sturdy", "cynical", "exquisite", "talented", "immune", "imaginative", "ripe", "shared", "kind", "parliamentary", "glowing", "frail", "astonished", "forward", "inside", "operational", "faded", "closing", "pro", "coastal", "shrewd", "preoccupied", "celebrated", "wicked", "bourgeois", "marginal", "transparent", "dynamic", "psychic", "plump", "coarse", "bleeding", "striped", "eventual", "residential", "hysterical", "pathetic", "planned", "fake", "imminent", "sentimental", "stunning", "worldwide", "militant", "sizable", "representative", "incapable", "provincial", "poetic", "injured", "tactical", "selfish", "winning", "foul", "repeated", "novel", "dubious", "part-time", "abrupt", "lone", "overseas", "grey", "varied", "cooperative", "muddy", "scheduled", "legendary", "arrogant", "conspicuous", "varying", "devastating", "vulgar", "martial", "amateur", "mathematical", "deaf", "scarce", "specialized", "honorable", "outrageous", "confidential", "fallen", "goddamned", "five-year", "feminine", "monstrous", "brisk", "systematic", "exhausted", "frank", "lunar", "daring", "shadowy", "respected", "stark", "accepted", "successive", "pending", "prolonged", "unseen", "uniformed", "wretched", "sullen", "arbitrary", "drastic", "crooked", "resulting", "intricate", "unpredictable", "printed", "utter", "satisfying", "delightful", "linguistic", "shabby", "statistical", "accessible", "prestigious", "trivial", "waiting", "futile", "prepared", "aged", "misleading", "cognitive", "shocking", "childish", "elected", "magical", "forthcoming", "exceptional", "gifted", "stricken", "fiery", "cardboard", "shaky", "conflicting", "commanding", "starving", "accustomed", "rocky", "long-range", "floating", "sinister", "potent", "phony", "lasting", "understandable", "curved", "barren", "lethal", "toxic", "deserted", "ambiguous", "notorious", "synthetic", "worthwhile", "imported", "intent", "reduced", "painted", "taut", "sociological", "questionable", "crisp", "pointed", "harmful", "horizontal", "rival", "somber", "benign", "prevailing", "selected", "organizational", "excess", "dedicated", "veteran", "implicit", "prudent", "plausible", "confusing", "smoking", "large-scale", "subdued", "constructive", "marital", "scarlet", "rugged", "darkened", "untouched", "above", "matching", "covert", "communal", "sticky", "affluent", "energetic", "stale", "controlled", "qualified", "reminiscent", "shut", "blonde", "handy", "ritual", "straightforward", "terminal", "dizzy", "sane", "twisted", "occupied", "finished", "opposing", "sly", "depressing", "irregular", "marine", "communist", "obscene", "wrinkled", "unsuccessful", "gracious", "static", "consecutive", "reserve", "exposed", "scholarly", "sleek", "reckless", "oral", "comforting", "pressing", "swollen", "viable", "carved", "obsessed", "projected", "hideous", "unthinkable", "mock", "susceptible", "respective", "goddam", "downward", "memorable", "worn", "raised", "glittering", "beneficial", "lingering", "patriotic", "stunned", "hairy", "worrying", "lighted", "sexy", "abundant", "tangled", "perpetual", "irresistible", "terrified", "compelling", "unmistakable", "feeble", "uneven", "trained", "folded", "relentless", "killed", "gorgeous", "conservation", "serene", "eerie", "premature", "dismal", "competing", "risky", "unacceptable", "indirect", "witty", "muffled", "feasible", "interstate", "heated", "uncommon", "accidental", "queer", "innovative", "parallel", "fried", "unnatural", "cracked", "persuasive", "integrated", "ongoing", "homosexual", "sound", "fertile", "canned", "preceding", "worldly", "onstage", "declining", "advisory", "juvenile", "slippery", "numb", "postal", "olive", "eccentric", "lay", "chilly", "shrill", "ceremonial", "registered", "boiling", "contradictory", "irresponsible", "then", "industrialized", "obsolete", "rusty", "inflationary", "split", "discreet", "intolerable", "barefoot", "territorial", "outspoken", "audible", "adverse", "associate", "impending", "decorative", "luminous", "two-year", "expanding", "unchanged", "outstretched", "momentary", "good-looking", "cunning", "overnight", "sprawling", "unbelievable", "bland", "liable", "terrifying", "televised", "appealing", "breathless", "alarming", "supporting", "greasy", "affirmative", "guiding", "homeless", "triumphant", "rainy", "stolen", "empirical", "timid", "provocative", "knowledgeable", "pragmatic", "touching", "desired", "amiable", "attempted", "humane", "adjacent", "superficial", "greedy", "assorted", "elusive", "ruthless", "lush", "soothing", "imposing", "preferred", "lavish", "pervasive", "managing", "sandy", "inappropriate", "desolate", "nude", "reassuring", "shimmering", "first-class", "unfinished", "insistent", "comparative", "conceivable", "admirable", "courageous", "aristocratic", "meager", "subjective", "vain", "disgusted", "dual", "towering", "responsive", "ailing", "compact", "torn", "sortal", "entertaining", "dreary", "metallic", "tedious", "irrational", "immoral", "teen-age", "interim", "jagged", "selective", "volatile", "cozy", "unanimous", "unlimited", "hired", "cosmic", "indoor", "retarded", "gold", "fabulous", "dignified", "long-distance", "high-school", "classified", "luxurious", "insufficient", "pious", "incomplete", "oblivious", "imperialist", "stately", "lifelong", "subordinate", "extravagant", "intrinsic", "unpopular", "scant", "surplus", "radiant", "ruined", "grotesque", "hazardous", "disabled", "intriguing", "worthless", "reported", "hoarse", "utmost", "muted", "bony", "disgusting", "monumental", "pleasing", "sterile", "agreeable", "three-year", "tricky", "lucrative", "respectful", "inexpensive", "bulky", "troublesome", "affectionate", "coherent", "unreasonable", "nineteenth-century", "curly", "indispensable", "nursing", "incompetent", "governing", "alternate", "suspected", "left-wing", "refined", "overt", "chilling", "virtual", "devoid", "perverse", "enduring", "outright", "overhead", "unnoticed", "nonprofit", "pointless", "appalling", "dental", "chosen", "enlightened", "robust", "commonplace", "damaging", "conscientious", "eloquent", "erratic", "applied", "merry", "ardent", "flowing", "incoming", "chaotic", "noticeable", "pitiful", "locked", "swelling", "definitive", "homemade", "super", "pronounced", "kindly", "prone", "attentive", "unstable", "unrelated", "charitable", "armored", "unclear", "tangible", "medium", "winding", "slick", "credible", "frustrating", "shifting", "spacious", "day-to-day", "surviving", "expanded", "arid", "unwanted", "unbearable", "hesitant", "recognizable", "multinational", "abdominal", "murderous", "glossy", "mute", "working-class", "insignificant", "ingenious", "masculine", "blessed", "gaunt", "miraculous", "unconstitutional", "parental", "rigorous", "bodily", "impersonal", "backward", "computerized", "four-year", "unmarried", "wry", "resident", "luxury", "high-level", "partisan", "powerless", "seasonal", "self-conscious", "triple", "onetime", "ecological", "periodic", "racist", "exaggerated", "facial", "erotic", "unreal", "durable", "manual", "rounded", "concentrated", "literal", "mystical", "stimulating", "staggering", "tempting", "last-minute", "erect", "feudal", "head", "emerging", "hind", "brooding", "candid", "paranoid", "defective", "linear", "immortal", "shattered", "unsure", "swinging", "compatible", "ghastly", "investigative", "rosy", "convicted", "sensational", "committed", "makeshift", "tolerant", "forceful", "supernatural", "joyous", "limp", "improper", "hanging", "sliding", "renowned", "tattered", "nonexistent", "supportive", "frustrated", "undercover", "handicapped", "apprehensive", "plentiful", "authoritative", "sustained", "disappointing", "hereditary", "photographic", "impoverished", "ornate", "respiratory", "substantive", "acting", "nutritional", "unofficial", "innumerable", "prevalent", "dire", "menacing", "outward", "brittle", "hasty", "sparkling", "sled", "geographical", "therapeutic", "melancholy", "adolescent", "hearty", "disturbed", "sweaty", "poisonous", "paid", "ineffective", "humorous", "burly", "rebellious", "reddish", "stout", "teenage", "eminent", "rhythmic", "physiological", "guaranteed", "opaque", "folding", "fleeting", "full-scale", "low-income", "infectious", "stringent", "stained", "beige", "stirring", "soaring", "glamorous", "airborne", "improbable", "austere", "anticipated", "designated", "oval", "restrictive", "yearly", "precarious", "relieved", "said", "feverish", "occupational", "holding", "speculative", "abnormal", "challenging", "healing", "boyish", "forbidding", "divorced", "famed", "sluggish", "struggling", "united", "undesirable", "steaming", "consulting", "answering", "recreational", "accompanying", "cramped", "journalistic", "neighboring", "fictional", "chopped", "phenomenal", "bankrupt", "illicit", "advancing", "upcoming", "racing", "protected", "padded", "venerable", "fuzzy", "behavioral", "roast", "mocking", "reactionary", "inefficient", "packed", "sloppy", "sparse", "foster", "revealing", "reverse", "gaping", "blue-collar", "thankful", "down", "unimportant", "traveling", "corresponding", "maternal", "autonomous", "conceptual", "smoky", "baked", "stuffed", "murky", "totalitarian", "ghostly", "seeming", "flickering", "sensual", "clenched", "offshore", "stinging", "oppressive", "strained", "messy", "executive", "evolutionary", "theological", "damaged", "unrealistic", "rectangular", "off", "mainstream", "benevolent", "thirsty", "blinding", "loaded", "applicable", "unused", "crushed", "tan", "factual", "involuntary", "brand-new", "akin", "scary", "modified", "mindless", "born", "feminist", "integral", "uncanny", "aloof", "spreading", "watery", "playful", "stocky", "wasted", "compulsory", "indignant", "pertinent", "incredulous", "simultaneous", "turbulent", "framed", "aching", "falling", "cardiac", "trim", "silvery", "accused", "pastoral", "barbed", "adjoining", "inspired", "courteous", "skillful", "majestic", "gilded", "published", "perennial", "upright", "seasoned", "continual", "papal", "victorious", "optical", "ecstatic", "agonizing", "shameful", "expressive", "inconsistent", "insulting", "cloudy", "defiant", "restricted", "approaching", "aggregate", "orthodox", "unified", "all-out", "wooded", "nationalist", "favored", "lofty", "assured", "smug", "earthly", "improving", "instrumental", "stray", "clandestine", "managerial", "animated", "intended", "flawed", "bent", "clerical", "outgoing", "righteous", "unspoken", "poignant", "faulty", "defeated", "authoritarian", "treacherous", "catastrophic", "refreshing", "unidentified", "suicidal", "sickly", "disciplined", "meticulous", "preferable", "trusted", "hectic", "husky", "distraught", "select", "snowy", "ferocious", "crumpled", "humiliating", "divided", "crippled", "infamous", "chic", "broke", "sovereign", "continental", "idealistic", "first-rate", "guarded", "learned", "nameless", "runaway", "metaphysical", "senseless", "boiled", "needy", "silver", "recorded", "polar", "real-estate", "stormy", "incomprehensible", "wiry", "raging", "composite", "flamboyant", "crimson", "reproductive", "intermediate", "ubiquitous", "repressive", "hefty", "listening", "good-natured", "parochial", "stylish", "high-tech", "flaming", "coronary", "overweight", "bathing", "three-day", "tidy", "beleaguered", "manifest", "ludicrous", "indigenous", "adamant", "placid", "inept", "exuberant", "stony", "salty", "seductive", "accomplished", "impassive", "grazing", "congenial", "misguided", "wide-eyed", "revised", "bass", "sonic", "budgetary", "halfway", "ensuing", "admiring", "palpable", "nightly", "hooded", "best-known", "eighteenth-century", "dissident", "morbid", "incumbent", "demanding", "inexperienced", "hazy", "revolving", "rented", "disadvantaged", "innate", "dietary", "minute", "cultivated", "sealed", "contemptuous", "rhetorical", "conciliatory", "articulate", "jobless", "macho", "forgotten", "lifeless", "proven", "latent", "secretive", "perilous", "token", "graphic", "alcoholic", "overdue", "permissible", "shattering", "preventive", "illiterate", "back", "atmospheric", "thermal", "quaint", "negotiated", "preposterous", "temporal", "restrained", "triangular", "mayoral", "spatial", "heady", "biblical", "fitting", "pessimistic", "mammoth", "allied", "failed", "intuitive", "nagging", "tidal", "angular", "speechless", "finishing", "protracted", "watchful", "businesslike", "automated", "versatile", "booming", "pouring", "misty", "deceptive", "sunken", "singular", "suspended", "unworthy", "immigrant", "expressionless", "airy", "mournful", "neurotic", "cubic", "unauthorized", "economical", "fund-raising", "captive", "blatant", "far-reaching", "subversive", "imperfect", "jolly", "inaccurate", "resentful", "strenuous", "suffering", "hardened", "malicious", "unjust", "perceptive", "newborn", "promised", "differing", "virgin", "alarmed", "grassy", "frivolous", "apologetic", "wasteful", "endangered", "unarmed", "adept", "unavoidable", "approved", "trembling", "stuck", "high-ranking", "crushing", "prescribed", "dependable", "fragrant", "expansive", "unfriendly", "covered", "bemused", "digital", "probing", "sloping", "man-made", "festive", "unilateral", "unmarked", "bipartisan", "statewide", "burgeoning", "devout", "sickening", "mediocre", "adventurous", "elevated", "suggestive", "accountable", "virtuous", "lame", "heavenly", "bruised", "unbroken", "irritable", "affected", "inconceivable", "sometime", "vile", "baggy", "timely", "glistening", "imagined", "unprepared", "unresolved", "windy", "humanitarian", "overriding", "detached", "annoying", "narrative", "interminable", "appalled", "penal", "unsatisfactory", "instinctive", "variable", "cumulative", "obedient", "deficient", "colossal", "unaffected", "extinct", "routine", "microscopic", "compassionate", "nominal", "forlorn", "distorted", "mistaken", "enclosed", "infected", "fervent", "analogous", "frigid", "instructive", "appointed", "one-way", "gnarled", "problematic", "sardonic", "two-hour", "hypothetical", "prompt", "anguished", "electromagnetic", "sensuous", "homely", "beaten", "malignant", "rotting", "concealed", "peripheral", "creaking", "impeccable", "khaki", "grinning", "irreversible", "rampant", "wondrous", "inward", "manufactured", "grisly", "cooked", "discriminatory", "cerebral", "knowing", "auxiliary", "operative", "losing", "genial", "phonetic", "ecclesiastical", "sarcastic", "incorrect", "ruddy", "well-to-do", "inexplicable", "unreliable", "developmental", "woolen", "agitated", "lyrical", "consequent", "calculated", "molecular", "pompous", "present-day", "shaggy", "even", "inhuman", "sublime", "diagnostic", "manly", "raucous", "balding", "after", "bilateral", "mounted", "blackened", "assembled", "separated", "gaudy", "evangelical", "darling", "juicy", "impotent", "receptive", "irritating", "pulmonary", "dazed", "cross-country", "unavailable", "parked", "habitual", "lexical", "lowered", "unwise", "planetary", "throbbing", "enigmatic", "superstitious", "threatening", "manned", "childlike", "sporting", "right-hand", "adult", "reflective", "white-haired", "discernible", "celestial", "prodigious", "translucent", "equitable", "epic", "frayed", "arduous", "flimsy", "penetrating", "howling", "disparate", "alike", "all-time", "deformed", "comical", "inert", "procedural", "resistant", "vibrant", "geographic", "wistful", "specified", "rightful", "spirited", "unborn", "enjoyable", "regal", "cumbersome", "burned", "frenzied", "gubernatorial", "deteriorating", "haunted", "evasive", "neglected", "anthropological", "inescapable", "clear-cut", "visionary", "bloated", "accumulated", "agrarian", "pained", "dwindling", "heightened", "gray-haired", "distressing", "grinding", "insecure", "archaic", "piercing", "fluent", "leisurely", "giddy", "slimy", "oncoming", "short-lived", "spinal", "wholesome", "unanswered", "illegitimate", "staunch", "two-day", "rumpled", "speedy", "soaked", "rocking", "invaluable", "gallant", "tacit", "finite", "inviting", "sporadic", "powdered", "cheery", "volcanic", "optional", "mischievous", "flowered", "contagious", "automotive", "inflated", "mythic", "analytical", "infrared", "two-week", "binding", "ancestral", "dissatisfied", "upstate", "veritable", "unaccustomed", "oily", "monotonous", "seated", "feeding", "fluorescent", "undue", "impassioned", "picturesque", "vocational", "tranquil", "tumultuous", "rustic", "patterned", "two-story", "pagan", "flash", "playing", "exhilarating", "maiden", "three-dimensional", "mythical", "thriving", "drab", "black-and-white", "honorary", "dingy", "founding", "imperative", "indistinguishable", "lightweight", "avid", "dreamy", "everlasting", "obsessive", "tional", "homogeneous", "inner-city", "changed", "tame", "colorless", "haggard", "implacable", "altered", "unequal", "focal", "perceptual", "literate", "priceless", "diminishing", "harmonious", "dark-haired", "fatty", "squat", "undecided", "banal", "fruitful", "pioneering", "innocuous", "cordial", "rewarding", "unsafe", "maritime", "overcrowded", "timeless", "fledgling", "nostalgic", "abreast", "one-time", "humid", "astronomical", "one-man", "deepening", "blazing", "fleshy", "dishonest", "succeeding", "qualitative", "needless", "rickety", "joyful", "stated", "ambivalent", "hybrid", "six-month", "limiting", "workable", "sleepless", "unpaid", "mundane", "flashy", "stagnant", "bumper", "recurring", "sinful", "immaculate", "synonymous", "measured", "thrilling", "long-standing", "unruly", "bewildering", "unfit", "edgy", "numerical", "sumptuous", "fragmented", "puffy", "elastic", "high-pitched", "momentous", "woven", "unsteady", "unnamed", "cosmetic", "snap", "impenetrable", "floral", "waving", "promotional", "tenuous", "lonesome", "embroidered", "strident", "cherished", "aghast", "fundamentalist", "white-collar", "afloat", "disruptive", "law-enforcement", "gathered", "indefinite", "intervening", "publicized", "geometric", "disciplinary", "descriptive", "wavy", "edible", "disgruntled", "obligatory", "untrue", "amber", "snug", "resolute", "awed", "simplistic", "grandiose", "crippling", "high-speed", "mounting", "glaring", "small-town", "cavernous", "hushed", "wage-price", "demographic", "diseased", "unpublished", "causal", "defenseless", "sheltered", "dormant", "compulsive", "loved", "willful", "truthful", "punitive", "disposable", "ajar", "drowsy", "statutory", "tanned", "proprietary", "informed", "unheard", "decision-making", "transient", "unlawful", "dour", "negligible", "underwater", "optimum", "illusory", "imaginable", "borrowed", "divergent", "looking", "exempt", "contentious", "forbidden", "cowardly", "masked", "crazed", "silken", "parched", "furry", "wandering", "insensitive", "over-all", "elated", "waxed", "veiled", "envious", "insidious", "scrawny", "unwarranted", "lithe", "abrasive", "pretentious", "far-off", "murdered", "deft", "prickly", "musty", "shapeless", "incongruous", "gruesome", "honored", "perceived", "grieving", "unspecified", "dizzying", "privy", "noteworthy", "charred", "median", "fearless", "twisting", "unattractive", "flawless", "welcoming", "flushed", "hardy", "glum", "scenic", "devious", "recurrent", "distasteful", "jubilant", "ballistic", "hilarious", "naughty", "bustling", "discarded", "pristine", "exemplary", "fading", "complacent", "incessant", "engaging", "twentieth-century", "protectionist", "rudimentary", "traumatic", "steamy", "emphatic", "hard-line", "teeming", "generating", "stuffy", "connecting", "stationary", "genteel", "populist", "supple", "hateful", "retrospective", "glazed", "lawful", "arched", "tiresome", "lucid", "reserved", "pivotal", "grimy", "surly", "anti-Soviet", "contrary", "quarterly", "old-time", "residual", "spiral", "decaying", "threatened", "docile", "appreciative", "jovial", "fascist", "worrisome", "red-haired", "undisturbed", "creamy", "well-dressed", "serial", "existential", "mountainous", "pastel", "self-sufficient", "spoken", "express", "tasty", "maroon", "infrequent", "deceased", "full-fledged", "transitional", "leafy", "gravitational", "furtive", "prophetic", "nasal", "unwelcome", "troubling", "immobile", "merciful", "uncontrollable", "impartial", "unfavorable", "attendant", "associated", "high-rise", "vascular", "fateful", "concerted", "rash", "stubby", "paramount", "impulsive", "fraudulent", "drooping", "reciprocal", "usable", "fast-food", "touchy", "astute", "oversized", "mottled", "slack", "fruitless", "unhealthy", "decorated", "shady", "shaped", "fanciful", "quivering", "charismatic", "sordid", "oppressed", "inaccessible", "fastidious", "brazen", "gloved", "crumbling", "underdeveloped", "scarred", "rambling", "incipient", "remedial", "derelict", "incompatible", "fanatical", "smoked", "secondhand", "hypnotic", "failing", "marching", "flattened", "paradoxical", "unskilled", "esthetic", "tolerable", "pungent", "substitute", "soggy", "terse", "tiring", "fictitious", "manageable", "inventive", "haughty", "normative", "premier", "grudging", "vested", "exhausting", "cross-legged", "self-evident", "away", "horrified", "prolific", "incoherent", "quantitative", "full-length", "year-round", "unkind", "provisional", "exterior", "brash", "inconclusive", "landed", "breathtaking", "acrid", "noted", "resultant", "long-time", "resounding", "lovable", "hypocritical", "plush", "foggy", "acknowledged", "idiotic", "tracking", "ceramic", "taxable", "enterprising", "flashing", "wee", "barbaric", "deafening", "orbital", "lurid", "dated", "hated", "buoyant", "mating", "pictorial", "overlapping", "lax", "archetypal", "manic", "limitless", "puzzling", "condescending", "hapless", "meek", "faceless", "uncommitted", "horrid", "greenish", "unorthodox", "unending", "accelerated", "day-care", "undeniable", "bushy", "searing", "fearsome", "unharmed", "divisive", "overpowering", "diving", "telling", "determining", "uptight", "cast", "enlarged", "ebullient", "disagreeable", "insatiable", "grown-up", "demented", "puffing", "inconvenient", "uncontrolled", "inland", "repulsive", "unintelligible", "blue-eyed", "pallid", "nonviolent", "dilapidated", "unyielding", "astounded", "marvellous", "low-cost", "purposeful", "courtly", "predominant", "conversational", "erroneous", "resourceful", "converted", "disconcerting", "oblique", "dreaded", "indicative", "silky", "six-year", "front-page", "biting", "flowering", "sunlit", "licensed", "unspeakable", "adrift", "awash", "identifiable", "girlish", "zealous", "spooky", "uncompromising", "deserving", "driven", "certified", "unlucky", "temperate", "budding", "impractical", "public-relations", "inflexible", "sensory", "pornographic", "outlandish", "resonant", "belligerent", "wan", "leftover", "spotted", "soybean", "easygoing", "vengeful", "proportional", "inaugural", "dank", "screaming", "heterosexual", "sliced", "year-old", "considerate", "thunderous", "distressed", "warring", "assertive", "foreseeable", "psychotic", "intermittent", "anti-Communist", "generalized", "unable", "molten", "excruciating", "illustrious", "voluminous", "offending", "trustworthy", "grating", "laughing", "one-year", "industrious", "uninterrupted", "dashing", "speaking", "metabolic", "flattering", "one-sided", "ineffectual", "primal", "digestive", "taped", "floppy", "jaunty", "practiced", "walled", "hospitable", "dutiful", "melodramatic", "intestinal", "cluttered", "conclusive", "complementary", "unprotected", "buzzing", "attributable", "tasteless", "forthright", "wily", "hourly", "delayed", "sweating", "affable", "studied", "chubby", "thyroid", "chilled", "conducive", "childless", "faltering", "authorized", "buried", "land-based", "observable", "hurried", "curving", "dismayed", "pernicious", "upturned", "believable", "questioning", "syndicated", "pharmaceutical", "high-risk", "resigned", "discrete", "likable", "imprisoned", "cocky", "outdated", "autocratic", "ablaze", "askew", "grammatical", "wintry", "incidental", "matter-of-fact", "disputed", "exorbitant", "low-level", "sodden", "skeletal", "disproportionate", "soiled", "cellular", "ephemeral", "perfunctory", "inconsequential", "flourishing", "intentional", "two-way", "elemental", "whispered", "four-day", "stinking", "informative", "tenacious", "outlying", "virulent", "horrendous", "horrifying", "burnt", "longstanding", "senile", "unmoving", "deprived", "interpersonal", "intimidating", "posh", "dainty", "portly", "nondescript", "inquisitive", "exiled", "capricious", "scandalous", "severed", "debilitating", "widowed", "horny", "sallow", "up-to-date", "self-contained", "carefree", "boisterous", "coordinated", "anti-Semitic", "superfluous", "metric", "expressed", "enchanting", "disorderly", "paternal", "wanton", "frightful", "free-lance", "extremist", "lined", "scornful", "inseparable", "obese", "ponderous", "imperious", "indistinct", "adrenal", "belated", "rippling", "valiant", "livid", "mystic", "cracking", "subterranean", "invading", "rusted", "esoteric", "red-faced", "segregated", "lanky", "departmental", "allergic", "predatory", "enforced", "anti-inflation", "implied", "flagrant", "best-selling", "haphazard", "trailing", "seedy", "real-life", "unannounced", "utilitarian", "roving", "despairing", "immature", "simulated", "embattled", "poisoned", "patronizing", "baffled", "centralized", "weathered", "weeping", "mutilated", "painstaking", "tax-exempt", "socioeconomic", "tearful", "stringy", "projecting", "low-key", "single-minded", "shadowed", "vehement", "darn", "fluffy", "apocalyptic", "completed", "intelligible", "furnished", "elongated", "worsening", "eclectic", "bacterial", "earthy", "sagging", "wide-ranging", "face-to-face", "settled", "dogmatic", "anti", "secluded", "baffling", "coy", "pathological", "echoing", "bridal", "autobiographical", "instantaneous", "ornamental", "satirical", "voluptuous", "movable", "kinetic", "merciless", "tireless", "three-month", "unconcerned", "impromptu", "turning", "follow-up", "retaliatory", "arcane", "waterproof", "justifiable", "glassy", "unearthly", "shuttered", "inverted", "bogus", "petrified", "simmering", "guided", "gritty", "widening", "generic", "pretrial", "returning", "boundless", "swirling", "northeastern", "swell", "tive", "minuscule", "estranged", "upbeat", "explanatory", "repetitive", "repressed", "vindictive", "shrinking", "canny", "little-known", "hydraulic", "unrelenting", "looming", "supersonic", "justified", "lukewarm", "unmoved", "blurred", "double-breasted", "sanitary", "unforgettable", "diligent", "unconventional", "ashen", "wordless", "stainless", "inlaid", "irritated", "spotless", "pudgy", "yellowish", "lateral", "adopted", "lowly", "obnoxious", "utopian", "called", "unimaginable", "hairless", "foregoing", "opulent", "garish", "nocturnal", "rousing", "unexplained", "cosmopolitan", "milky", "medium-sized", "all-night", "bloodshot", "rueful", "hard-working", "crafty", "familial", "iced", "violet", "arctic", "ceaseless", "exasperated", "warped", "aquatic", "gruff", "terrestrial", "contrasting", "egalitarian", "needful", "spent", "untrained", "escalating", "liberated", "long-haired", "abortive", "syntactic", "consummate", "lumpy", "spoiled", "ten-year-old", "talkative", "whimsical", "weighty", "audio", "inflammatory", "deplorable", "spicy", "corrugated", "morose", "sobering", "southwestern", "three-year-old", "methodical", "prehistoric", "carpeted", "smelly", "processed", "overheated", "interstellar", "agile", "approximate", "sadistic", "living-room", "irate", "smashed", "frontal", "venereal", "indiscriminate", "suggested", "cultured", "creeping", "recognized", "toothless", "handmade", "mellow", "fetal", "disinterested", "gratifying", "trusting", "small-scale", "intravenous", "crashing", "exhaustive", "afire", "clammy", "sleazy", "florid", "heartless", "transcendent", "restored", "demonic", "abusive", "avowed", "shrunken", "objectionable", "tailored", "arms-control", "listless", "polluted", "palatable", "funded", "elective", "entrenched", "classy", "operatic", "daunting", "roaring", "preferential", "languid", "three-hour", "virile", "inspiring", "enhanced", "scrupulous", "bottomless", "ginger", "wispy", "advantageous", "rapt", "umbilical", "uphill", "ordered", "enraged", "detrimental", "curt", "exalted", "hard-pressed", "intangible", "fussy", "forgiving", "facile", "populous", "condemned", "mashed", "hard-boiled", "introductory", "rowdy", "switching", "perplexing", "spilled", "southeastern", "undulating", "fractured", "inherited", "inscrutable", "measurable", "stunted", "hormonal", "stylized", "hierarchical", "air-conditioned", "aimless", "subsidized", "paying", "symmetrical", "nomadic", "cloudless", "reigning", "thatched", "perceptible", "anesthetic", "anti-American", "miscellaneous", "homesick", "preparatory", "seven-year", "big-city", "decadent", "searching", "all-important", "inanimate", "senatorial", "diminutive", "soft-spoken", "contingent", "dusky", "smashing", "precipitous", "bulging", "standardized", "biographical", "restive", "indecent", "upper-class", "ecumenical", "interchangeable", "lumbering", "fascinated", "untidy", "indulgent", "leaden", "wanted", "endemic", "doomed", "wanting", "receiving", "engaged", "unparalleled", "abbreviated", "malevolent", "wishful", "carnival", "world-wide", "protruding", "resplendent", "stranded", "structured", "biased", "frosty", "northwestern", "viral", "mindful", "paved", "indeterminate", "painless", "second-floor", "geological", "permissive", "downhill", "unsuspecting", "expectant", "fabled", "jittery", "windowless", "evocative", "unsolved", "disoriented", "monastic", "soluble", "misshapen", "antiquated", "repugnant", "non-Communist", "retiring", "shaded", "combative", "high-powered", "resilient", "antagonistic", "starched", "vice-presidential", "speckled", "lopsided", "bluish", "late-night", "prim", "unrestrained", "almighty", "tyrannical", "unkempt", "menstrual", "bleached", "overgrown", "idiosyncratic", "shoddy", "hallowed", "trying", "halting", "princely", "drugged", "gratuitous", "descending", "fatherly", "avant-garde", "laborious", "pinched", "disguised", "caustic", "bespectacled", "handwritten", "goodly", "itinerant", "cryptic", "undisclosed", "affordable", "outmoded", "expedient", "moody", "tepid", "firsthand", "digging", "elitist", "observed", "chartered", "slain", "five-day", "unimpressed", "tactful", "idyllic", "prostrate", "ramshackle", "expert", "deferred", "undistinguished", "prized", "transatlantic", "crystalline", "tacky", "haunting", "nutritious", "bereft", "turquoise", "time-consuming", "sanguine", "culinary", "fraught", "precocious", "assigned", "scrambled", "advisable", "nationalistic", "long-awaited", "unwrapped", "unchallenged", "circumstantial", "pleasurable", "compressed", "humanistic", "unforeseen", "diversified", "frenetic", "disapproving", "proletarian", "conspiratorial", "featureless", "going", "commendable", "no-nonsense", "chipped", "surreal", "salient", "pissed", "insurmountable", "backstage", "contented", "indebted", "adoring", "one-room", "prewar", "potted", "accelerating", "thorny", "possessive", "abiding", "ever-increasing", "bloodless", "high-technology", "counterproductive", "attracting", "entrepreneurial", "cooling", "unoccupied", "craggy", "leathery", "degenerate", "additive", "weakened", "quilted", "untold", "incandescent", "intractable", "middle-income", "abject", "self-made", "gaseous", "anal", "displaced", "unabashed", "immutable", "fluttering", "ten-year", "bearable", "stamped", "darkening", "beefy", "petite", "charging", "high-quality", "left-hand", "age-old", "checkered", "stupendous", "priestly", "loath", "endearing", "exacting", "correctional", "freak", "sneaky", "disgraceful", "unholy", "oriental", "wayward", "societal", "hard-core", "bilingual", "flipping", "staid", "paramilitary", "heartfelt", "shapely", "kosher", "heedless", "incurable", "controlling", "in-house", "choral", "manicured", "cardinal", "inconspicuous", "steely", "vanishing", "misplaced", "centre-fire", "enchanted", "unfounded", "wrecked", "womanly", "delirious", "deposed", "panicky", "differential", "tawny", "articulated", "coded", "wide-open", "unregulated", "lenient", "feathered", "simplified", "beguiling", "sectarian", "producing", "tiled", "inorganic", "frosted", "lusty", "scented", "rotating", "grievous", "dissimilar", "salaried", "unequivocal", "strangled", "grubby", "alluring", "downcast", "restraining", "unjustified", "contaminated", "lacy", "cinematic", "second-class", "splintered", "adorable", "derisive", "state-owned", "requisite", "fleeing", "uncomplicated", "motherly", "inter", "high-heeled", "climatic", "republican", "unqualified", "leveraged", "intercontinental", "uncharacteristic", "compositional", "unwritten", "patriarchal", "brusque", "unresponsive", "replete", "corrective", "reflected", "scraping", "doctoral", "premium", "deductible", "alternating", "amorous", "overjoyed", "recalcitrant", "presumptuous", "vaulted", "declared", "inexorable", "groggy", "diminished", "restful", "retroactive", "presumed", "monolithic", "curtained", "tortured", "ground", "trendy", "brassy", "prosaic", "inactive", "chaste", "bumpy", "aggrieved", "corny", "centrist", "trapped", "noxious", "jerky", "concomitant", "withholding", "poorly", "stolid", "unguarded", "methodological", "primordial", "retreating", "telescopic", "sidelong", "off-duty", "pleated", "dissenting", "agreed", "double-action", "optimal", "plaintive", "banned", "kindred", "quintessential", "impervious", "jumping", "disenchanted", "observant", "congested", "second-rate", "reasoned", "extrinsic", "infantile", "transitory", "coveted", "small-time", "doctrinal", "incomparable", "jaded", "special-interest", "sociable", "shameless", "coloured", "ascending", "fraternal", "queasy", "wont", "exhilarated", "salted", "disquieting", "listed", "unchanging", "nine-year-old", "unrestricted", "uppermost", "reputable", "dummy", "skimpy", "crusty", "corrosive", "bubbling", "decrepit", "unsuitable", "snarling", "destitute", "illuminating", "systemic", "material", "unwashed", "rushing", "dialectical", "jeweled", "attached", "liberating", "judicious", "errant", "vanished", "worn-out", "erstwhile", "uninformed", "twelve-year-old", "longterm", "petulant", "twin", "self-righteous", "afflicted", "snappy", "tantamount", "sworn", "unethical", "drained", "hydroelectric", "perplexed", "logistical", "concentric", "unifying", "lunatic", "invincible", "diffident", "inexhaustible", "discouraging", "dreamlike", "artful", "rolled", "suppressed", "secretarial", "smoldering", "redundant", "forensic", "million-dollar", "self-styled", "earned", "weightless", "signed", "compensatory", "glacial", "unmanned", "stalwart", "funky", "intensified", "uninterested", "submerged", "urbane", "glib", "ascetic", "contractual", "warlike", "high-priced", "diagonal", "cylindrical", "gargantuan", "illuminated", "unconditional", "hulking", "supplementary", "dictatorial", "puny", "sedate", "moonlit", "eight-year-old", "gullible", "counterfeit", "alienated", "spinning", "analytic", "nimble", "adaptive", "individualistic", "numbered", "blissful", "insolent", "supplemental", "delectable", "inordinate", "unbalanced", "tormented", "unchecked", "aspiring", "punishing", "self-serving", "crossed", "discretionary", "box-office", "snow-covered", "improvised", "squalid", "orphaned", "grizzled", "unsmiling", "disappearing", "affiliated", "readable", "blocking", "bullish", "contending", "burned-out", "bloodied", "subsidiary", "complimentary", "unclean", "scanty", "uprooted", "farfetched", "solicitous", "regulated", "threadbare", "choppy", "ever-present", "negligent", "nonstop", "one-day", "wild-eyed", "infuriating", "vivacious", "abominable", "wrought", "inaudible", "braided", "transcendental", "desultory", "climactic", "appellate", "interlocking", "submissive", "unmatched", "dapper", "demeaning", "adaptable", "well-meaning", "lustrous", "tax-free", "ungrateful", "gentlemanly", "missed", "loathsome", "incalculable", "blistering", "amenable", "tremulous", "massed", "nonpartisan", "unsettled", "three-story", "succulent", "trite", "masterful", "reticent", "unsettling", "proverbial", "strapping", "spurious", "invulnerable", "paltry", "embryonic", "repeating", "neural", "sultry", "metaphorical", "foreign-policy", "linked", "pubic", "beaming", "ministerial", "phantom", "quizzical", "hilly", "cold-blooded", "gregarious", "three-piece", "untroubled", "bisexual", "pensive", "unpretentious", "exploratory", "unscathed", "irrepressible", "pelvic", "newfound", "starry", "corned", "overworked", "illogical", "unfaithful", "interrelated", "saintly", "overcast", "connected", "ungainly", "organizing", "carnal", "philosophic", "nationalized", "fickle", "ultraviolet", "crass", "undeveloped", "unprofitable", "sheepish", "archaeological", "out-of-town", "balmy", "spongy", "infallible", "callous", "scathing", "rheumatic", "audacious", "participating", "swarthy", "hand-held", "comatose", "modernist", "stellar", "antinuclear", "delinquent", "time-honored", "presiding", "relaxing", "high-pressure", "impetuous", "hypodermic", "fringed", "favourite", "unscrupulous", "inspirational", "mystified", "wobbly", "intrepid", "deferential", "burdensome", "stored", "supervisory", "seventeenth-century", "six-day", "interdependent", "updated", "all-powerful", "unitary", "stand-up", "laconic", "penniless", "steadfast", "dogged", "scholastic", "convertible", "mingled", "sorrowful", "symptomatic", "stylistic", "well-intentioned", "consuming", "sketchy", "weakening", "generative", "atrocious", "first-quarter", "irrevocable", "charged", "stoned", "dividing", "apathetic", "debatable", "uncomprehending", "overhanging", "galloping", "kinky", "uncritical", "suave", "undisputed", "spiky", "inarticulate", "extracurricular", "guttural", "impressed", "departing", "yellowed", "discontented", "adroit", "high-fiber", "second-hand", "blinking", "formless", "unsavory", "new-found", "withered", "collected", "menial", "unobserved", "flabby", "afterward", "vanquished", "stained-glass", "hour-long", "bittersweet", "invalid", "incriminating", "commensurate", "all-American", "assumed", "tried", "cursory", "absorbing", "clearing", "confirmed", "stressful", "depleted", "eight-year", "participatory", "stripped", "concave", "regrettable", "fortified", "effortless", "regressive", "irreverent", "collegiate", "defunct", "grainy", "inhospitable", "gripping", "grizzly", "restoring", "arterial", "busted", "indomitable", "demure", "rabid", "headlong", "blue-green", "bound", "breezy", "materialistic", "uneducated", "scruffy", "cohesive", "full-blown", "cranky", "motivated", "mauve", "hardworking", "melodic", "genital", "decorous", "comely", "rife", "purported", "hurtful", "six-foot", "macabre", "odious", "convulsive", "well-trained", "heterogeneous", "curled", "pearly", "spindly", "latter-day", "innermost", "clipped", "checked", "masterly", "laughable", "naturalistic", "tinkling", "impudent", "fitful", "illustrated", "speeding", "roasted", "in-depth", "helluva", "vigilant", "empty-handed", "forged", "wrought-iron", "disgraced", "agonized", "infirm", "preserving", "tasteful", "onerous", "shredded", "impregnable", "slanted", "tainted", "opened", "first-time", "machine-gun", "bottled", "seismic", "fetid", "saturated", "insubstantial", "full-page", "aromatic", "stingy", "promiscuous", "unlit", "regimental", "spellbound", "streamlined", "bereaved", "ruffled", "creepy", "treasured", "ensconced", "one-party", "well-educated", "pert", "mercantile", "all-purpose", "voracious", "tortuous", "despised", "unadorned", "offhand", "qualifying", "manipulative", "indelible", "well-established", "revolting", "ethereal", "roasting", "prohibitive", "domed", "whipped", "overstuffed", "garrulous", "skittish", "revived", "heartening", "jumpy", "grilled", "melted", "unfocused", "spectral", "unproductive", "top-level", "life-size", "three-way", "negotiable", "disloyal", "turn-of-the-century", "four-hour", "unopened", "devilish", "amorphous", "antiseptic", "sharpened", "primeval", "unrecognizable", "ineligible", "expendable", "deathly", "auspicious", "insoluble", "inimical", "unquestioned", "far-flung", "medicinal", "deep-seated", "formative", "iridescent", "fragmentary", "distinguishable", "auburn", "closed-circuit", "emeritus", "third-floor", "hazel", "tumbling", "departed", "obstinate", "portentous", "quixotic", "scorched", "adjustable", "winged", "intrusive", "taxing", "high-ceilinged", "barbarous", "decreasing", "sleeveless", "unattended", "tight-lipped", "concluding", "unobtrusive", "starved", "quirky", "big-time", "sooty", "copious", "stalled", "scriptural", "unconvincing", "earthen", "throaty", "august", "extant", "sexist", "exultant", "cancerous", "psychedelic", "yielding", "matched", "chunky", "unfathomable", "concise", "admitting", "knitted", "projective", "euphoric", "garbled", "divisional", "despondent", "recommended", "passable", "vegetarian", "indefatigable", "irreparable", "feisty", "untenable", "contrite", "angelic", "reputed", "untimely", "dejected", "appreciable", "remembered", "hellish", "rear-view", "open-air", "ill-fated", "nonpolitical", "factional", "separatist", "contributing", "post-war", "uneventful", "metaphoric", "unsound", "unwitting", "venomous", "harried", "engraved", "collapsing", "reformist", "thematic", "inclusive", "cheering", "springy", "obliging", "contemplative", "unbridled", "state-run", "reflex", "allegorical", "geopolitical", "disembodied", "issuing", "bountiful", "alright", "overbearing", "muddled", "congenital", "distinguishing", "absorbed", "tart", "french", "autumnal", "verifiable", "grueling", "crackling", "aft", "punishable", "freckled", "indestructible", "imprecise", "hard-nosed", "thoughtless", "through", "proficient", "pent-up", "never-ending", "hunted", "defensible", "arresting", "across-the-board", "spotty", "orchestral", "undefined", "stacked", "implausible", "antitank", "unwary", "inflamed", "sacrificial", "oil-producing", "leaky", "mint", "chronological", "conquering", "jumbo", "three-week", "addictive", "uninhibited", "substandard", "contracting", "degenerative", "triumphal", "flowery", "cardiovascular", "shaken", "undefeated", "unassuming", "luscious", "unperturbed", "gleeful", "sentencing", "brawny", "perfumed", "mild-mannered", "healthful", "left-handed", "rancid", "well-defined", "unmanageable", "drowning", "clinging", "anachronistic", "revered", "enriched", "capitalistic", "good-by", "invigorating", "practicing", "unsold", "long-legged", "unruffled", "aboriginal", "inane", "bedraggled", "early-morning", "run-down", "straight-backed", "reverent", "acquired", "bestselling", "top-secret", "woolly", "foolhardy", "sticking", "blue-black", "impassable", "overcome", "coiled", "front-line", "tinted", "acquisitive", "slatted", "octagonal", "receding", "investing", "doctrinaire", "all-white", "caring", "prejudiced", "slow-moving", "circulating", "science-fiction", "shortsighted", "disaffected", "lawless", "chastened", "lewd", "rubbery", "foaming", "unsympathetic", "ladylike", "betrayed", "neurological", "shouting", "good-sized", "electrostatic", "untoward", "flabbergasted", "citywide", "unanticipated", "knotted", "whitewashed", "year-end", "enticing", "migratory", "multicolored", "hashish", "ascorbic", "topless", "heathen", "spherical", "filmy", "deviant", "centennial", "proportionate", "instructional", "contrived", "savvy", "over-the-counter", "fast-moving", "measuring", "uptown", "compliant", "favourable", "unforgivable", "undamaged", "psychoanalytic", "gebling", "bubbly", "ready-made", "caged", "ostentatious", "superhuman", "busing", "cream-colored", "self-destructive", "ostensible", "cobbled", "whirling", "released", "showy", "baleful", "red-hot", "named", "monogamous", "fallow", "disdainful", "cyclical", "long-running", "pitiless", "diffuse", "omnipresent", "mossy", "cutting", "astounding", "lyric", "dark-blue", "unsophisticated", "indigent", "coincidental", "imperceptible", "veterinary", "coercive", "multilateral", "ageless", "law-abiding", "functioning", "beneficent", "crawling", "overturned", "steamed", "comprehensible", "oil-rich", "undetected", "ribbed", "nautical", "textured", "fast-growing", "nauseous", "vaunted", "paralyzed", "maimed", "short-range", "impure", "unintended", "practicable", "intermediate-range", "unfulfilled", "behind-the-scenes", "backhand", "voluble", "goofy", "apolitical", "contraceptive", "waning", "blasted", "sundry", "profane", "binary", "rock-and-roll", "ruinous", "open-ended", "next-door", "withering", "conical", "flustered", "decided", "able-bodied", "round-trip", "decreased", "half-empty", "sponsored", "riotous", "stereotyped", "five-minute", "irreplaceable", "harrowing", "uninteresting", "salutary", "frugal", "disjointed", "cupped", "freshwater", "shaven", "ravenous", "bulbous", "stepped-up", "swaying", "two-room", "valued", "planted", "bright-eyed", "unreadable", "trucking", "infatuated", "dysfunctional", "pinkish", "futuristic", "airtight", "unseemly", "vaginal", "sizzling", "mercurial", "conic", "unfettered", "undisciplined", "unrecognized", "well-publicized", "income-tax", "self-appointed", "ice-cold", "biochemical", "contemptible", "barefooted", "droll", "mythological", "tree-lined", "rearing", "luxuriant", "heartbreaking", "tufted", "well-organized", "selfless", "world-class", "unwieldy", "contested", "rasping", "downright", "ingratiating", "self-proclaimed", "parasitic", "graying", "reformed", "cautionary", "untested", "beaded", "maniacal", "eucalyptus", "pliable", "air-conditioning", "moot", "traceable", "anti-abortion", "antisocial", "reprehensible", "self-imposed", "yellowing", "teasing", "porous", "ersatz", "unwavering", "untouchable", "underprivileged", "auditory", "escaping", "subservient", "unspoiled", "anterior", "fatuous", "lordly", "infernal", "bouncing", "taboo", "orthopedic", "spiteful", "surging", "nuts", "esteemed", "outlawed", "pushy", "displeased", "self-confident", "attainable", "bowed", "cast-iron", "despicable", "unconvinced", "famished", "coed", "bygone", "nonaligned", "sectional", "typed", "squeaky", "disparaging", "cut-rate", "heart-shaped", "offbeat", "velvety", "well-worn", "upsetting", "leery", "long-lost", "horse-drawn", "puritanical", "payable", "fertilized", "predicted", "allowable", "peaceable", "soundless", "marshy", "discordant", "intoxicating", "concurrent", "uncut", "tantalizing", "shitty", "pedagogical", "accursed", "two-man", "connective", "hawkish", "ripped", "cleared", "double-digit", "unencumbered", "yawning", "manifold", "stopped", "untreated", "subliminal", "grayish", "gory", "upper-middle-class", "avenging", "self-fulfilling", "equatorial", "saucy", "barred", "arch", "midwestern", "blue-gray", "tarnished", "leafless", "incisive", "unearned", "botanical", "feline", "extraneous", "prep", "intransigent", "change-minimizing", "insurgent", "acrimonious", "thermonuclear", "blue-chip", "crummy", "acoustic", "oversize", "fated", "galactic", "cantankerous", "ill-advised", "detectable", "lower-class", "sacrosanct", "palatial", "conditional", "insulated", "step-by-step", "nebulous", "two-dimensional", "well-heeled", "bronchial", "subatomic", "semifinal", "first-year", "dark-eyed", "tinny", "attacking", "indecisive", "anatomical", "brotherly", "blooming", "sinuous", "meditative", "socalled", "rheumatoid", "received", "bleary", "half-naked", "leaded", "woody", "averse", "shuddering", "door-to-door", "heretical", "suspect", "untapped", "ravaged", "decentralized", "rutted", "ineffable", "intolerant", "mechanized", "fortuitous", "equestrian", "seven-year-old", "darting", "consoling", "modern-day", "ground-floor", "emblematic", "lurking", "two-year-old", "purplish", "disorganized", "vaudeville", "circulatory", "eight-hour", "presentable", "anarchic", "unsatisfied", "labored", "maudlin", "trampled", "gibberish", "unaccountable", "sedentary", "heavy-duty", "thrilled", "tutoring", "self-centered", "do-it-yourself", "inquiring", "uncaring", "disillusioned", "bloodstained", "surface-to-air", "consular", "subconscious", "four-year-old", "collaborative", "terraced", "figurative", "sinewy", "horn-rimmed", "impertinent", "hit-and-run", "standby", "medium-size", "peremptory", "incremental", "first-aid", "dyed", "centrifugal", "omnipotent", "lascivious", "two-month", "unionized", "discredited", "mass-produced", "feathery", "self-indulgent", "liturgical", "enviable", "fifteen-year-old", "buxom", "abashed", "urinary", "newsworthy", "flailing", "beastly", "undiscovered", "strong-willed", "prenatal", "brownish", "announced", "flaky", "washed", "nightmarish", "broad-shouldered", "short-sleeved", "two-bit", "self-assured", "whitish", "suffocating", "black-haired", "full-size", "self-help", "created", "uninhabited", "smokeless", "no-fault", "unfashionable", "mushy", "forested", "adhesive", "creased", "insufferable", "down-to-earth", "trifling", "landless", "disreputable", "self-effacing", "sporty", "confined", "adoptive", "monogrammed", "motley", "duplicate", "silver-haired", "rejected", "undifferentiated", "blasphemous", "institutionalized", "blue-and-white", "hip", "winsome", "button-down", "discerning", "abused", "clean-cut", "bracing", "self-supporting", "unsupported", "premarital", "flattered", "studious", "repetitious", "marketable", "anemic", "meaty", "airless", "unhurried", "galvanized", "feal", "peace-keeping", "rapacious", "bulletproof", "well-placed", "helmeted", "packaged", "court-ordered", "aggravated", "gastrointestinal", "hand-to-hand", "sixteen-year-old", "fretful", "fourth-quarter", "conquered", "satiric", "nutty", "befuddled", "humorless", "pitched", "burnished", "mirrored", "fishy", "fluted", "conditioned", "military-industrial", "one-story", "barbarian", "branching", "dynastic", "unthinking", "unconscionable", "hunched", "post-World", "capital", "putative", "incendiary", "shaving", "topical", "self-satisfied", "farcical", "narcissistic", "kneeling", "born-again", "old-line", "amateurish", "ill-fitting", "scaly", "unpainted", "eroding"]
\ No newline at end of file
diff --git a/data/adverbs.json b/data/adverbs.json
new file mode 100644
index 0000000..241afa6
--- /dev/null
+++ b/data/adverbs.json
@@ -0,0 +1,328 @@
+[
+ "abnormally",
+ "absentmindedly",
+ "accidentally",
+ "acidly",
+ "actually",
+ "adventurously",
+ "afterwards",
+ "almost",
+ "always",
+ "angrily",
+ "annually",
+ "anxiously",
+ "arrogantly",
+ "awkwardly",
+ "badly",
+ "bashfully",
+ "beautifully",
+ "bitterly",
+ "bleakly",
+ "blindly",
+ "blissfully",
+ "boastfully",
+ "boldly",
+ "bravely",
+ "briefly",
+ "brightly",
+ "briskly",
+ "broadly",
+ "busily",
+ "calmly",
+ "carefully",
+ "carelessly",
+ "cautiously",
+ "certainly",
+ "cheerfully",
+ "clearly",
+ "cleverly",
+ "closely",
+ "coaxingly",
+ "colorfully",
+ "commonly",
+ "continually",
+ "coolly",
+ "correctly",
+ "courageously",
+ "crossly",
+ "cruelly",
+ "curiously",
+ "daily",
+ "daintily",
+ "dearly",
+ "deceivingly",
+ "deeply",
+ "defiantly",
+ "deliberately",
+ "delightfully",
+ "diligently",
+ "dimly",
+ "doubtfully",
+ "dreamily",
+ "easily",
+ "elegantly",
+ "energetically",
+ "enormously",
+ "enthusiastically",
+ "equally",
+ "especially",
+ "even",
+ "evenly",
+ "eventually",
+ "exactly",
+ "excitedly",
+ "extremely",
+ "fairly",
+ "faithfully",
+ "famously",
+ "far",
+ "fast",
+ "fatally",
+ "ferociously",
+ "fervently",
+ "fiercely",
+ "fondly",
+ "foolishly",
+ "fortunately",
+ "frankly",
+ "frantically",
+ "freely",
+ "frenetically",
+ "frightfully",
+ "fully",
+ "furiously",
+ "generally",
+ "generously",
+ "gently",
+ "gladly",
+ "gleefully",
+ "gracefully",
+ "gratefully",
+ "greatly",
+ "greedily",
+ "happily",
+ "hastily",
+ "healthily",
+ "heavily",
+ "helpfully",
+ "helplessly",
+ "highly",
+ "honestly",
+ "hopelessly",
+ "hourly",
+ "hungrily",
+ "immediately",
+ "innocently",
+ "inquisitively",
+ "instantly",
+ "intensely",
+ "intently",
+ "interestingly",
+ "inwardly",
+ "irritably",
+ "jaggedly",
+ "jealously",
+ "joshingly",
+ "jovially",
+ "joyfully",
+ "joyously",
+ "jubilantly",
+ "judgementally",
+ "justly",
+ "keenly",
+ "kiddingly",
+ "kindheartedly",
+ "kindly",
+ "kissingly",
+ "knavishly",
+ "knottily",
+ "knowingly",
+ "knowledgeably",
+ "kookily",
+ "lazily",
+ "less",
+ "lightly",
+ "likely",
+ "limply",
+ "lively",
+ "loftily",
+ "longingly",
+ "loosely",
+ "loudly",
+ "lovingly",
+ "loyally",
+ "madly",
+ "majestically",
+ "meaningfully",
+ "mechanically",
+ "merrily",
+ "miserably",
+ "mockingly",
+ "monthly",
+ "more",
+ "mortally",
+ "mostly",
+ "mysteriously",
+ "naturally",
+ "nearly",
+ "neatly",
+ "needily",
+ "nervously",
+ "never",
+ "nicely",
+ "noisily",
+ "not",
+ "obediently",
+ "obnoxiously",
+ "oddly",
+ "offensively",
+ "officially",
+ "often",
+ "only",
+ "openly",
+ "optimistically",
+ "overconfidently",
+ "owlishly",
+ "painfully",
+ "partially",
+ "patiently",
+ "perfectly",
+ "physically",
+ "playfully",
+ "politely",
+ "poorly",
+ "positively",
+ "potentially",
+ "powerfully",
+ "promptly",
+ "properly",
+ "punctually",
+ "quaintly",
+ "quarrelsomely",
+ "queasily",
+ "queerly",
+ "questionably",
+ "questioningly",
+ "quicker",
+ "quickly",
+ "quietly",
+ "quirkily",
+ "quizzically",
+ "rapidly",
+ "rarely",
+ "readily",
+ "really",
+ "reassuringly",
+ "recklessly",
+ "regularly",
+ "reluctantly",
+ "repeatedly",
+ "reproachfully",
+ "restfully",
+ "righteously",
+ "rightfully",
+ "rigidly",
+ "roughly",
+ "rudely",
+ "sadly",
+ "safely",
+ "scarcely",
+ "scarily",
+ "searchingly",
+ "sedately",
+ "seemingly",
+ "seldom",
+ "selfishly",
+ "separately",
+ "seriously",
+ "shakily",
+ "sharply",
+ "sheepishly",
+ "shrilly",
+ "shyly",
+ "silently",
+ "sleepily",
+ "slowly",
+ "smoothly",
+ "softly",
+ "solemnly",
+ "solidly",
+ "sometimes",
+ "soon",
+ "speedily",
+ "stealthily",
+ "sternly",
+ "strictly",
+ "successfully",
+ "suddenly",
+ "surprisingly",
+ "suspiciously",
+ "sweetly",
+ "swiftly",
+ "sympathetically",
+ "tenderly",
+ "tensely",
+ "terribly",
+ "thankfully",
+ "thoroughly",
+ "thoughtfully",
+ "tightly",
+ "tomorrow",
+ "too",
+ "tremendously",
+ "triumphantly",
+ "truly",
+ "truthfully",
+ "ultimately",
+ "unabashedly",
+ "unaccountably",
+ "unbearably",
+ "unethically",
+ "unexpectedly",
+ "unfortunately",
+ "unimpressively",
+ "unnaturally",
+ "unnecessarily",
+ "upbeat",
+ "upliftingly",
+ "upright",
+ "upside-down",
+ "upward",
+ "upwardly",
+ "urgently",
+ "usefully",
+ "uselessly",
+ "usually",
+ "utterly",
+ "vacantly",
+ "vaguely",
+ "vainly",
+ "valiantly",
+ "vastly",
+ "verbally",
+ "very",
+ "viciously",
+ "victoriously",
+ "violently",
+ "vivaciously",
+ "voluntarily",
+ "warmly",
+ "weakly",
+ "wearily",
+ "well",
+ "wetly",
+ "wholly",
+ "wildly",
+ "willfully",
+ "wisely",
+ "woefully",
+ "wonderfully",
+ "worriedly",
+ "wrongly",
+ "yawningly",
+ "yearly",
+ "yearningly",
+ "yesterday",
+ "yieldingly",
+ "youthfully"
+]
\ No newline at end of file
diff --git a/data/colors.json b/data/colors.json
new file mode 100644
index 0000000..4ac74f1
--- /dev/null
+++ b/data/colors.json
@@ -0,0 +1,54 @@
+[
+ "amaranth",
+ "amber",
+ "amethyst",
+ "apricot",
+ "aqua",
+ "aquamarine",
+ "azure",
+ "beige",
+ "black",
+ "blue",
+ "blush",
+ "bronze",
+ "brown",
+ "chocolate",
+ "coffee",
+ "copper",
+ "coral",
+ "crimson",
+ "cyan",
+ "emerald",
+ "fuchsia",
+ "gold",
+ "gray",
+ "green",
+ "harlequin",
+ "indigo",
+ "ivory",
+ "jade",
+ "lavender",
+ "lime",
+ "magenta",
+ "maroon",
+ "moccasin",
+ "olive",
+ "orange",
+ "peach",
+ "pink",
+ "plum",
+ "purple",
+ "red",
+ "rose",
+ "salmon",
+ "sapphire",
+ "scarlet",
+ "silver",
+ "tan",
+ "teal",
+ "tomato",
+ "turquoise",
+ "violet",
+ "white",
+ "yellow"
+]
\ No newline at end of file
diff --git a/data/encouraging_words.json b/data/encouraging_words.json
new file mode 100644
index 0000000..d76d609
--- /dev/null
+++ b/data/encouraging_words.json
@@ -0,0 +1,50 @@
+[
+ "amazing",
+ "awesome",
+ "beautiful",
+ "bravo",
+ "brilliant",
+ "breathtaking",
+ "congratulations",
+ "cool",
+ "dazzling",
+ "delightful",
+ "electrifying",
+ "elegant",
+ "enchanting",
+ "excellent",
+ "exciting",
+ "fabulous",
+ "fantastic",
+ "fun",
+ "genius",
+ "groundbreaking",
+ "heavenly",
+ "impressive",
+ "innovative",
+ "inventive",
+ "kind",
+ "legendary",
+ "lifechanging",
+ "lovely",
+ "magical",
+ "marvelous",
+ "masterful",
+ "miraculous",
+ "original",
+ "perfect",
+ "phenomenal",
+ "powerful",
+ "remarkable",
+ "rejuvenating",
+ "resounding",
+ "skillful",
+ "stupendous",
+ "stunning",
+ "sweet",
+ "terrific",
+ "thoughtful",
+ "thrilling",
+ "wonderful",
+ "wondrous"
+ ]
\ No newline at end of file
diff --git a/data/infinite_verbs.json b/data/infinite_verbs.json
new file mode 100644
index 0000000..d9e39ff
--- /dev/null
+++ b/data/infinite_verbs.json
@@ -0,0 +1,635 @@
+[
+ "accept",
+ "add",
+ "admire",
+ "admit",
+ "advise",
+ "afford",
+ "agree",
+ "alert",
+ "allow",
+ "amuse",
+ "analyse",
+ "announce",
+ "annoy",
+ "answer",
+ "apologise",
+ "appear",
+ "applaud",
+ "appreciate",
+ "approve",
+ "argue",
+ "arrange",
+ "arrest",
+ "arrive",
+ "ask",
+ "attach",
+ "attack",
+ "attempt",
+ "attend",
+ "attract",
+ "avoid",
+ "back",
+ "bake",
+ "balance",
+ "ban",
+ "bang",
+ "bare",
+ "bat",
+ "bathe",
+ "battle",
+ "beam",
+ "beg",
+ "behave",
+ "belong",
+ "bleach",
+ "bless",
+ "blind",
+ "blink",
+ "blot",
+ "blush",
+ "boast",
+ "boil",
+ "bolt",
+ "bomb",
+ "book",
+ "bore",
+ "borrow",
+ "bounce",
+ "bow",
+ "box",
+ "brake",
+ "branch",
+ "breathe",
+ "bruise",
+ "brush",
+ "bubble",
+ "bump",
+ "burn",
+ "bury",
+ "buzz",
+ "calculate",
+ "call",
+ "camp",
+ "care",
+ "carry",
+ "carve",
+ "cause",
+ "challenge",
+ "change",
+ "charge",
+ "chase",
+ "cheat",
+ "check",
+ "cheer",
+ "chew",
+ "choke",
+ "chop",
+ "claim",
+ "clap",
+ "clean",
+ "clear",
+ "clip",
+ "close",
+ "coach",
+ "coil",
+ "collect",
+ "colour",
+ "comb",
+ "command",
+ "communicate",
+ "compare",
+ "compete",
+ "complain",
+ "complete",
+ "concentrate",
+ "concern",
+ "confess",
+ "confuse",
+ "connect",
+ "consider",
+ "consist",
+ "contain",
+ "continue",
+ "copy",
+ "correct",
+ "cough",
+ "count",
+ "cover",
+ "crack",
+ "crash",
+ "crawl",
+ "cross",
+ "crush",
+ "cry",
+ "cure",
+ "curl",
+ "curve",
+ "cycle",
+ "dam",
+ "damage",
+ "dance",
+ "dare",
+ "decay",
+ "deceive",
+ "decide",
+ "decorate",
+ "delay",
+ "delight",
+ "deliver",
+ "depend",
+ "describe",
+ "desert",
+ "deserve",
+ "destroy",
+ "detect",
+ "develop",
+ "disagree",
+ "disappear",
+ "disapprove",
+ "disarm",
+ "discover",
+ "dislike",
+ "divide",
+ "double",
+ "doubt",
+ "drag",
+ "drain",
+ "dream",
+ "dress",
+ "drip",
+ "drop",
+ "drown",
+ "drum",
+ "dry",
+ "dust",
+ "earn",
+ "educate",
+ "embarrass",
+ "employ",
+ "empty",
+ "encourage",
+ "end",
+ "enjoy",
+ "enter",
+ "entertain",
+ "escape",
+ "examine",
+ "excite",
+ "excuse",
+ "exercise",
+ "exist",
+ "expand",
+ "expect",
+ "explain",
+ "explode",
+ "extend",
+ "face",
+ "fade",
+ "fail",
+ "fancy",
+ "fasten",
+ "fax",
+ "fear",
+ "fence",
+ "fetch",
+ "file",
+ "fill",
+ "film",
+ "fire",
+ "fit",
+ "fix",
+ "flap",
+ "flash",
+ "float",
+ "flood",
+ "flow",
+ "flower",
+ "fold",
+ "follow",
+ "fool",
+ "force",
+ "form",
+ "found",
+ "frame",
+ "frighten",
+ "fry",
+ "gather",
+ "gaze",
+ "glow",
+ "glue",
+ "grab",
+ "grate",
+ "grease",
+ "greet",
+ "grin",
+ "grip",
+ "groan",
+ "guarantee",
+ "guard",
+ "guess",
+ "guide",
+ "hammer",
+ "hand",
+ "handle",
+ "hang",
+ "happen",
+ "harass",
+ "harm",
+ "hate",
+ "haunt",
+ "head",
+ "heal",
+ "heap",
+ "heat",
+ "help",
+ "hook",
+ "hop",
+ "hope",
+ "hover",
+ "hug",
+ "hum",
+ "hunt",
+ "hurry",
+ "identify",
+ "ignore",
+ "imagine",
+ "impress",
+ "improve",
+ "include",
+ "increase",
+ "influence",
+ "inform",
+ "inject",
+ "injure",
+ "instruct",
+ "intend",
+ "interest",
+ "interfere",
+ "interrupt",
+ "introduce",
+ "invent",
+ "invite",
+ "irritate",
+ "itch",
+ "jail",
+ "jam",
+ "jog",
+ "join",
+ "joke",
+ "judge",
+ "juggle",
+ "jump",
+ "kick",
+ "kill",
+ "kiss",
+ "kneel",
+ "knit",
+ "knock",
+ "knot",
+ "label",
+ "land",
+ "last",
+ "laugh",
+ "launch",
+ "learn",
+ "level",
+ "license",
+ "lick",
+ "lie",
+ "lighten",
+ "like",
+ "list",
+ "listen",
+ "live",
+ "load",
+ "lock",
+ "long",
+ "look",
+ "love",
+ "man",
+ "manage",
+ "march",
+ "mark",
+ "marry",
+ "match",
+ "mate",
+ "matter",
+ "measure",
+ "meddle",
+ "melt",
+ "memorise",
+ "mend",
+ "mess up",
+ "milk",
+ "mine",
+ "miss",
+ "mix",
+ "moan",
+ "moor",
+ "mourn",
+ "move",
+ "muddle",
+ "mug",
+ "multiply",
+ "murder",
+ "nail",
+ "name",
+ "need",
+ "nest",
+ "nod",
+ "note",
+ "notice",
+ "number",
+ "obey",
+ "object",
+ "observe",
+ "obtain",
+ "occur",
+ "offend",
+ "offer",
+ "open",
+ "order",
+ "overflow",
+ "owe",
+ "own",
+ "pack",
+ "paddle",
+ "paint",
+ "park",
+ "part",
+ "pass",
+ "paste",
+ "pat",
+ "pause",
+ "peck",
+ "pedal",
+ "peel",
+ "peep",
+ "perform",
+ "permit",
+ "phone",
+ "pick",
+ "pinch",
+ "pine",
+ "place",
+ "plan",
+ "plant",
+ "play",
+ "please",
+ "plug",
+ "point",
+ "poke",
+ "polish",
+ "pop",
+ "possess",
+ "post",
+ "pour",
+ "practise",
+ "pray",
+ "preach",
+ "precede",
+ "prefer",
+ "prepare",
+ "present",
+ "preserve",
+ "press",
+ "pretend",
+ "prevent",
+ "prick",
+ "print",
+ "produce",
+ "program",
+ "promise",
+ "protect",
+ "provide",
+ "pull",
+ "pump",
+ "punch",
+ "puncture",
+ "punish",
+ "push",
+ "question",
+ "queue",
+ "race",
+ "radiate",
+ "rain",
+ "raise",
+ "reach",
+ "realise",
+ "receive",
+ "recognise",
+ "record",
+ "reduce",
+ "reflect",
+ "refuse",
+ "regret",
+ "reign",
+ "reject",
+ "rejoice",
+ "relax",
+ "release",
+ "rely",
+ "remain",
+ "remember",
+ "remind",
+ "remove",
+ "repair",
+ "repeat",
+ "replace",
+ "reply",
+ "report",
+ "reproduce",
+ "request",
+ "rescue",
+ "retire",
+ "return",
+ "rhyme",
+ "rinse",
+ "risk",
+ "rob",
+ "rock",
+ "roll",
+ "rot",
+ "rub",
+ "ruin",
+ "rule",
+ "rush",
+ "sack",
+ "sail",
+ "satisfy",
+ "save",
+ "saw",
+ "scare",
+ "scatter",
+ "scold",
+ "scorch",
+ "scrape",
+ "scratch",
+ "scream",
+ "screw",
+ "scribble",
+ "scrub",
+ "seal",
+ "search",
+ "separate",
+ "serve",
+ "settle",
+ "shade",
+ "share",
+ "shave",
+ "shelter",
+ "shiver",
+ "shock",
+ "shop",
+ "shrug",
+ "sigh",
+ "sign",
+ "signal",
+ "sin",
+ "sip",
+ "ski",
+ "skip",
+ "slap",
+ "slip",
+ "slow",
+ "smash",
+ "smell",
+ "smile",
+ "smoke",
+ "snatch",
+ "sneeze",
+ "sniff",
+ "snore",
+ "snow",
+ "soak",
+ "soothe",
+ "sound",
+ "spare",
+ "spark",
+ "sparkle",
+ "spell",
+ "spill",
+ "spoil",
+ "spot",
+ "spray",
+ "sprout",
+ "squash",
+ "squeak",
+ "squeal",
+ "squeeze",
+ "stain",
+ "stamp",
+ "stare",
+ "start",
+ "stay",
+ "steer",
+ "step",
+ "stir",
+ "stitch",
+ "stop",
+ "store",
+ "strap",
+ "strengthen",
+ "stretch",
+ "strip",
+ "stroke",
+ "stuff",
+ "subtract",
+ "succeed",
+ "suck",
+ "suffer",
+ "suggest",
+ "suit",
+ "supply",
+ "support",
+ "suppose",
+ "surprise",
+ "surround",
+ "suspect",
+ "suspend",
+ "switch",
+ "talk",
+ "tame",
+ "tap",
+ "taste",
+ "tease",
+ "telephone",
+ "tempt",
+ "terrify",
+ "test",
+ "thank",
+ "thaw",
+ "tick",
+ "tickle",
+ "tie",
+ "time",
+ "tip",
+ "tire",
+ "touch",
+ "tour",
+ "tow",
+ "trace",
+ "trade",
+ "train",
+ "transport",
+ "trap",
+ "travel",
+ "treat",
+ "tremble",
+ "trick",
+ "trip",
+ "trot",
+ "trouble",
+ "trust",
+ "try",
+ "tug",
+ "tumble",
+ "turn",
+ "twist",
+ "type",
+ "undress",
+ "unfasten",
+ "unite",
+ "unlock",
+ "unpack",
+ "untidy",
+ "use",
+ "vanish",
+ "visit",
+ "wail",
+ "wait",
+ "walk",
+ "wander",
+ "want",
+ "warm",
+ "warn",
+ "wash",
+ "waste",
+ "watch",
+ "water",
+ "wave",
+ "weigh",
+ "welcome",
+ "whine",
+ "whip",
+ "whirl",
+ "whisper",
+ "whistle",
+ "wink",
+ "wipe",
+ "wish",
+ "wobble",
+ "wonder",
+ "work",
+ "worry",
+ "wrap",
+ "wreck",
+ "wrestle",
+ "wriggle",
+ "x-ray",
+ "yawn",
+ "yell",
+ "zip",
+ "zoom"
+]
\ No newline at end of file
diff --git a/data/nouns.json b/data/nouns.json
new file mode 100644
index 0000000..4a2c421
--- /dev/null
+++ b/data/nouns.json
@@ -0,0 +1,995 @@
+[
+ "Armour",
+ "Barrymore",
+ "Cabot",
+ "Catholicism",
+ "Chihuahua",
+ "Christianity",
+ "Easter",
+ "Frenchman",
+ "Lowry",
+ "Mayer",
+ "Orientalism",
+ "Pharaoh",
+ "Pueblo",
+ "Pullman",
+ "Rodeo",
+ "Saturday",
+ "Sister",
+ "Snead",
+ "Syrah",
+ "Tuesday",
+ "Woodward",
+ "abbey",
+ "absence",
+ "absorption",
+ "abstinence",
+ "absurdity",
+ "abundance",
+ "acceptance",
+ "accessibility",
+ "accommodation",
+ "accomplice",
+ "accountability",
+ "accounting",
+ "accreditation",
+ "accuracy",
+ "acquiescence",
+ "acreage",
+ "actress",
+ "actuality",
+ "adage",
+ "adaptation",
+ "adherence",
+ "adjustment",
+ "adoption",
+ "adultery",
+ "advancement",
+ "advert",
+ "advertisement",
+ "advertising",
+ "advice",
+ "aesthetics",
+ "affinity",
+ "aggression",
+ "agriculture",
+ "aircraft",
+ "airtime",
+ "allegation",
+ "allegiance",
+ "allegory",
+ "allergy",
+ "allies",
+ "alligator",
+ "allocation",
+ "allotment",
+ "altercation",
+ "ambulance",
+ "ammonia",
+ "anatomy",
+ "anemia",
+ "ankle",
+ "announcement",
+ "annoyance",
+ "annuity",
+ "anomaly",
+ "anthropology",
+ "anxiety",
+ "apartheid",
+ "apologise",
+ "apostle",
+ "apparatus",
+ "appeasement",
+ "appellation",
+ "appendix",
+ "applause",
+ "appointment",
+ "appraisal",
+ "archery",
+ "archipelago",
+ "architecture",
+ "ardor",
+ "arrears",
+ "arrow",
+ "artisan",
+ "artistry",
+ "ascent",
+ "assembly",
+ "assignment",
+ "association",
+ "asthma",
+ "atheism",
+ "attacker",
+ "attraction",
+ "attractiveness",
+ "auspices",
+ "authority",
+ "avarice",
+ "aversion",
+ "aviation",
+ "babbling",
+ "backlash",
+ "baker",
+ "ballet",
+ "balls",
+ "banjo",
+ "baron",
+ "barrier",
+ "barrister",
+ "bases",
+ "basin",
+ "basis",
+ "battery",
+ "battling",
+ "bedtime",
+ "beginner",
+ "begun",
+ "bending",
+ "bicycle",
+ "billing",
+ "bingo",
+ "biography",
+ "biology",
+ "birthplace",
+ "blackberry",
+ "blather",
+ "blossom",
+ "boardroom",
+ "boasting",
+ "bodyguard",
+ "boldness",
+ "bomber",
+ "bondage",
+ "bonding",
+ "bones",
+ "bonus",
+ "bookmark",
+ "boomer",
+ "booty",
+ "bounds",
+ "bowling",
+ "brainstorming",
+ "breadth",
+ "breaker",
+ "brewer",
+ "brightness",
+ "broccoli",
+ "broth",
+ "brotherhood",
+ "browsing",
+ "brunch",
+ "brunt",
+ "building",
+ "bullion",
+ "bureaucracy",
+ "burglary",
+ "buyout",
+ "by-election",
+ "cabal",
+ "cabbage",
+ "calamity",
+ "campaign",
+ "canonization",
+ "captaincy",
+ "carcass",
+ "carrier",
+ "cartridge",
+ "cassette",
+ "catfish",
+ "caught",
+ "celebrity",
+ "cemetery",
+ "certainty",
+ "certification",
+ "charade",
+ "chasm",
+ "check-in",
+ "cheerleader",
+ "cheesecake",
+ "chemotherapy",
+ "chili",
+ "china",
+ "chivalry",
+ "cholera",
+ "cilantro",
+ "circus",
+ "civilisation",
+ "civility",
+ "clearance",
+ "clearing",
+ "clerk",
+ "climber",
+ "closeness",
+ "clothing",
+ "clutches",
+ "coaster",
+ "coconut",
+ "coding",
+ "collaborator",
+ "colleague",
+ "college",
+ "collision",
+ "colors",
+ "combustion",
+ "comedian",
+ "comer",
+ "commander",
+ "commemoration",
+ "commenter",
+ "commissioner",
+ "commune",
+ "competition",
+ "completeness",
+ "complexity",
+ "computing",
+ "comrade",
+ "concur",
+ "condominium",
+ "conduit",
+ "confidant",
+ "configuration",
+ "confiscation",
+ "conflagration",
+ "conflict",
+ "consist",
+ "consistency",
+ "consolidation",
+ "conspiracy",
+ "constable",
+ "consul",
+ "consultancy",
+ "contentment",
+ "contents",
+ "contractor",
+ "conversation",
+ "cornerstone",
+ "corpus",
+ "correlation",
+ "councilman",
+ "counselor",
+ "countdown",
+ "countryman",
+ "coverage",
+ "covering",
+ "coyote",
+ "cracker",
+ "creator",
+ "criminality",
+ "crocodile",
+ "cropping",
+ "cross-examination",
+ "crossover",
+ "crossroads",
+ "culprit",
+ "cumin",
+ "curator",
+ "curfew",
+ "cursor",
+ "custard",
+ "cutter",
+ "cyclist",
+ "cyclone",
+ "cylinder",
+ "cynicism",
+ "daddy",
+ "damsel",
+ "darkness",
+ "dawning",
+ "daybreak",
+ "dealing",
+ "dedication",
+ "deduction",
+ "defection",
+ "deference",
+ "deficiency",
+ "definition",
+ "deflation",
+ "degeneration",
+ "delegation",
+ "delicacy",
+ "delirium",
+ "deliverance",
+ "demeanor",
+ "demon",
+ "demonstration",
+ "denomination",
+ "dentist",
+ "departure",
+ "depletion",
+ "depression",
+ "designation",
+ "despotism",
+ "detention",
+ "developer",
+ "devolution",
+ "dexterity",
+ "diagnosis",
+ "dialect",
+ "differentiation",
+ "digger",
+ "digress",
+ "dioxide",
+ "diploma",
+ "disability",
+ "disarmament",
+ "discord",
+ "discovery",
+ "dishonesty",
+ "dismissal",
+ "disobedience",
+ "dispatcher",
+ "disservice",
+ "distribution",
+ "distributor",
+ "diver",
+ "diversity",
+ "docking",
+ "dollar",
+ "dominance",
+ "domination",
+ "dominion",
+ "donkey",
+ "doorstep",
+ "doorway",
+ "dossier",
+ "downside",
+ "drafting",
+ "drank",
+ "drilling",
+ "driver",
+ "drumming",
+ "drunkenness",
+ "duchess",
+ "ducking",
+ "dugout",
+ "dumps",
+ "dwelling",
+ "dynamics",
+ "eagerness",
+ "earnestness",
+ "earnings",
+ "eater",
+ "editor",
+ "effectiveness",
+ "electricity",
+ "elements",
+ "eloquence",
+ "emancipation",
+ "embodiment",
+ "embroidery",
+ "emperor",
+ "employment",
+ "encampment",
+ "enclosure",
+ "encouragement",
+ "endangerment",
+ "enlightenment",
+ "enthusiasm",
+ "environment",
+ "environs",
+ "envoy",
+ "epilepsy",
+ "equation",
+ "equator",
+ "error",
+ "espionage",
+ "estimation",
+ "evacuation",
+ "exaggeration",
+ "examination",
+ "exclamation",
+ "expediency",
+ "exploitation",
+ "extinction",
+ "eyewitness",
+ "falls",
+ "fascism",
+ "fastball",
+ "feces",
+ "feedback",
+ "ferocity",
+ "fertilization",
+ "fetish",
+ "finale",
+ "firing",
+ "fixing",
+ "flashing",
+ "flask",
+ "flora",
+ "fluke",
+ "folklore",
+ "follower",
+ "foothold",
+ "footing",
+ "forefinger",
+ "forefront",
+ "forgiveness",
+ "formality",
+ "formation",
+ "formula",
+ "foyer",
+ "fragmentation",
+ "framework",
+ "fraud",
+ "freestyle",
+ "frequency",
+ "friendliness",
+ "fries",
+ "frigate",
+ "fulfillment",
+ "function",
+ "functionality",
+ "fundraiser",
+ "fusion",
+ "futility",
+ "gallantry",
+ "gallery",
+ "genesis",
+ "genitals",
+ "girlfriend",
+ "glamour",
+ "glitter",
+ "glucose",
+ "google",
+ "grandeur",
+ "grappling",
+ "greens",
+ "gridlock",
+ "grocer",
+ "groundwork",
+ "grouping",
+ "gunman",
+ "gusto",
+ "habitation",
+ "hacker",
+ "hallway",
+ "hamburger",
+ "hammock",
+ "handling",
+ "hands",
+ "handshake",
+ "happiness",
+ "hardship",
+ "headcount",
+ "header",
+ "headquarters",
+ "heads",
+ "headset",
+ "hearth",
+ "hearts",
+ "heath",
+ "hegemony",
+ "height",
+ "hello",
+ "helper",
+ "helping",
+ "helplessness",
+ "hierarchy",
+ "hoarding",
+ "hockey",
+ "homeland",
+ "homer",
+ "honesty",
+ "horror",
+ "horseman",
+ "hostility",
+ "housing",
+ "humility",
+ "hurricane",
+ "iceberg",
+ "ignition",
+ "illness",
+ "illustration",
+ "illustrator",
+ "immunity",
+ "immunization",
+ "imperialism",
+ "imprisonment",
+ "inaccuracy",
+ "inaction",
+ "inactivity",
+ "inauguration",
+ "indecency",
+ "indicator",
+ "inevitability",
+ "infamy",
+ "infiltration",
+ "influx",
+ "iniquity",
+ "innocence",
+ "innovation",
+ "insanity",
+ "inspiration",
+ "instruction",
+ "instructor",
+ "insurer",
+ "interact",
+ "intercession",
+ "intercourse",
+ "intermission",
+ "interpretation",
+ "intersection",
+ "interval",
+ "intolerance",
+ "intruder",
+ "invasion",
+ "investment",
+ "involvement",
+ "irrigation",
+ "iteration",
+ "jenny",
+ "jogging",
+ "jones",
+ "joseph",
+ "juggernaut",
+ "juncture",
+ "jurisprudence",
+ "juror",
+ "kangaroo",
+ "kingdom",
+ "knocking",
+ "laborer",
+ "larceny",
+ "laurels",
+ "layout",
+ "leadership",
+ "leasing",
+ "legislation",
+ "leopard",
+ "liberation",
+ "licence",
+ "lifeblood",
+ "lifeline",
+ "ligament",
+ "lighting",
+ "likeness",
+ "line-up",
+ "lineage",
+ "liner",
+ "lineup",
+ "liquidation",
+ "listener",
+ "literature",
+ "litigation",
+ "litre",
+ "loathing",
+ "locality",
+ "lodging",
+ "logic",
+ "longevity",
+ "lookout",
+ "lordship",
+ "lustre",
+ "ma'am",
+ "machinery",
+ "madness",
+ "magnificence",
+ "mahogany",
+ "mailing",
+ "mainframe",
+ "maintenance",
+ "majority",
+ "manga",
+ "mango",
+ "manifesto",
+ "mantra",
+ "manufacturer",
+ "maple",
+ "martin",
+ "martyrdom",
+ "mathematician",
+ "matrix",
+ "matron",
+ "mayhem",
+ "mayor",
+ "means",
+ "meantime",
+ "measurement",
+ "mechanics",
+ "mediator",
+ "medics",
+ "melodrama",
+ "memory",
+ "mentality",
+ "metaphysics",
+ "method",
+ "metre",
+ "miner",
+ "mirth",
+ "misconception",
+ "misery",
+ "mishap",
+ "misunderstanding",
+ "mobility",
+ "molasses",
+ "momentum",
+ "monarchy",
+ "monument",
+ "morale",
+ "mortality",
+ "motto",
+ "mouthful",
+ "mouthpiece",
+ "mover",
+ "movie",
+ "mowing",
+ "murderer",
+ "musician",
+ "mutation",
+ "mythology",
+ "narration",
+ "narrator",
+ "nationality",
+ "negligence",
+ "neighborhood",
+ "neighbour",
+ "nervousness",
+ "networking",
+ "nexus",
+ "nightmare",
+ "nobility",
+ "nobody",
+ "noodle",
+ "normalcy",
+ "notification",
+ "nourishment",
+ "novella",
+ "nucleus",
+ "nuisance",
+ "nursery",
+ "nutrition",
+ "nylon",
+ "oasis",
+ "obscenity",
+ "obscurity",
+ "observer",
+ "offense",
+ "onslaught",
+ "operation",
+ "opportunity",
+ "opposition",
+ "oracle",
+ "orchestra",
+ "organisation",
+ "organizer",
+ "orientation",
+ "originality",
+ "ounce",
+ "outage",
+ "outcome",
+ "outdoors",
+ "outfield",
+ "outing",
+ "outpost",
+ "outset",
+ "overseer",
+ "owner",
+ "oxygen",
+ "pairing",
+ "panther",
+ "paradox",
+ "parliament",
+ "parsley",
+ "parson",
+ "passenger",
+ "pasta",
+ "patchwork",
+ "pathos",
+ "patriotism",
+ "pendulum",
+ "penguin",
+ "permission",
+ "persona",
+ "perusal",
+ "pessimism",
+ "peter",
+ "philosopher",
+ "phosphorus",
+ "phrasing",
+ "physique",
+ "piles",
+ "plateau",
+ "playing",
+ "plaza",
+ "plethora",
+ "plurality",
+ "pneumonia",
+ "pointer",
+ "poker",
+ "policeman",
+ "polling",
+ "poster",
+ "posterity",
+ "posting",
+ "postponement",
+ "potassium",
+ "pottery",
+ "poultry",
+ "pounding",
+ "pragmatism",
+ "precedence",
+ "precinct",
+ "preoccupation",
+ "pretense",
+ "priesthood",
+ "prisoner",
+ "privacy",
+ "probation",
+ "proceeding",
+ "proceedings",
+ "processing",
+ "processor",
+ "progression",
+ "projection",
+ "prominence",
+ "propensity",
+ "prophecy",
+ "prorogation",
+ "prospectus",
+ "protein",
+ "prototype",
+ "providence",
+ "provider",
+ "provocation",
+ "proximity",
+ "puberty",
+ "publicist",
+ "publicity",
+ "publisher",
+ "pundit",
+ "putting",
+ "quantity",
+ "quart",
+ "quilting",
+ "quorum",
+ "racism",
+ "radiance",
+ "ralph",
+ "rancher",
+ "ranger",
+ "rapidity",
+ "rapport",
+ "ratification",
+ "rationality",
+ "reaction",
+ "reader",
+ "reassurance",
+ "rebirth",
+ "receptor",
+ "recipe",
+ "recognition",
+ "recourse",
+ "recreation",
+ "rector",
+ "recurrence",
+ "redemption",
+ "redistribution",
+ "redundancy",
+ "refinery",
+ "reformer",
+ "refrigerator",
+ "regularity",
+ "regulator",
+ "reinforcement",
+ "reins",
+ "reinstatement",
+ "relativism",
+ "relaxation",
+ "rendition",
+ "repayment",
+ "repentance",
+ "repertoire",
+ "repository",
+ "republic",
+ "reputation",
+ "resentment",
+ "residency",
+ "resignation",
+ "restaurant",
+ "resurgence",
+ "retailer",
+ "retention",
+ "retirement",
+ "reviewer",
+ "riches",
+ "righteousness",
+ "roadblock",
+ "robber",
+ "rocks",
+ "rubbing",
+ "runoff",
+ "saloon",
+ "salvation",
+ "sarcasm",
+ "saucer",
+ "savior",
+ "scarcity",
+ "scenario",
+ "scenery",
+ "schism",
+ "scholarship",
+ "schoolboy",
+ "schooner",
+ "scissors",
+ "scolding",
+ "scooter",
+ "scouring",
+ "scrimmage",
+ "scrum",
+ "seating",
+ "sediment",
+ "seduction",
+ "seeder",
+ "seizure",
+ "self-confidence",
+ "self-control",
+ "self-respect",
+ "semicolon",
+ "semiconductor",
+ "semifinal",
+ "senator",
+ "sending",
+ "serenity",
+ "seriousness",
+ "servitude",
+ "sesame",
+ "setup",
+ "sewing",
+ "sharpness",
+ "shaving",
+ "shoplifting",
+ "shopping",
+ "siding",
+ "simplicity",
+ "simulation",
+ "sinking",
+ "skate",
+ "sloth",
+ "slugger",
+ "snack",
+ "snail",
+ "snapshot",
+ "snark",
+ "soccer",
+ "solemnity",
+ "solicitation",
+ "solitude",
+ "somewhere",
+ "sophistication",
+ "sorcery",
+ "souvenir",
+ "spaghetti",
+ "specification",
+ "specimen",
+ "specs",
+ "spectacle",
+ "spectre",
+ "speculation",
+ "sperm",
+ "spoiler",
+ "squad",
+ "squid",
+ "staging",
+ "stagnation",
+ "staircase",
+ "stairway",
+ "stamina",
+ "standpoint",
+ "standstill",
+ "stanza",
+ "statement",
+ "stillness",
+ "stimulus",
+ "stocks",
+ "stole",
+ "stoppage",
+ "storey",
+ "storyteller",
+ "stylus",
+ "subcommittee",
+ "subscription",
+ "subsidy",
+ "suburb",
+ "success",
+ "sufferer",
+ "supposition",
+ "suspension",
+ "sweater",
+ "sweepstakes",
+ "swimmer",
+ "syndrome",
+ "synopsis",
+ "syntax",
+ "system",
+ "tablespoon",
+ "taker",
+ "tavern",
+ "technology",
+ "telephony",
+ "template",
+ "tempo",
+ "tendency",
+ "tendon",
+ "terrier",
+ "terror",
+ "terry",
+ "theater",
+ "theology",
+ "therapy",
+ "thicket",
+ "thoroughfare",
+ "threshold",
+ "thriller",
+ "thunderstorm",
+ "ticker",
+ "tiger",
+ "tights",
+ "to-day",
+ "tossing",
+ "touchdown",
+ "tourist",
+ "tourney",
+ "toxicity",
+ "tracing",
+ "tractor",
+ "translation",
+ "transmission",
+ "transmitter",
+ "trauma",
+ "traveler",
+ "treadmill",
+ "trilogy",
+ "trout",
+ "tuning",
+ "twenties",
+ "tycoon",
+ "tyrant",
+ "ultimatum",
+ "underdog",
+ "underwear",
+ "unhappiness",
+ "unification",
+ "university",
+ "uprising",
+ "vaccination",
+ "validity",
+ "vampire",
+ "vanguard",
+ "variation",
+ "vegetation",
+ "verification",
+ "viability",
+ "vicinity",
+ "victory",
+ "viewpoint",
+ "villa",
+ "vindication",
+ "violation",
+ "vista",
+ "vocalist",
+ "vogue",
+ "volcano",
+ "voltage",
+ "vomiting",
+ "vulnerability",
+ "waistcoat",
+ "waitress",
+ "wardrobe",
+ "warmth",
+ "watchdog",
+ "wealth",
+ "weariness",
+ "whereabouts",
+ "whisky",
+ "whiteness",
+ "widget",
+ "width",
+ "windfall",
+ "wiring",
+ "witchcraft",
+ "withholding",
+ "womanhood",
+ "words",
+ "workman",
+ "youngster"
+]
\ No newline at end of file
diff --git a/data/personal_nouns.json b/data/personal_nouns.json
new file mode 100644
index 0000000..5e7a7da
--- /dev/null
+++ b/data/personal_nouns.json
@@ -0,0 +1,9309 @@
+[
+ "abator",
+ "abbreviator",
+ "abdicator",
+ "abductor",
+ "abetter",
+ "abettor",
+ "abhorrer",
+ "abiogenist",
+ "abjurer",
+ "abnegator",
+ "abortionist",
+ "abridger",
+ "abrogator",
+ "absconder",
+ "absentee",
+ "absenter",
+ "absolutist",
+ "absolver",
+ "absorber",
+ "abstainer",
+ "abstinent",
+ "abstracter",
+ "abuser",
+ "abutter",
+ "accelerator",
+ "accentor",
+ "acceptor",
+ "accoucheur",
+ "accountant",
+ "accumbent",
+ "accumulator",
+ "accuser",
+ "achiever",
+ "acolyte",
+ "acrobat",
+ "actor",
+ "actress",
+ "actuator",
+ "adapter",
+ "adder",
+ "address",
+ "adducer",
+ "adherent",
+ "adjudicator",
+ "adjuster",
+ "administrator",
+ "admirer",
+ "admonisher",
+ "adopter",
+ "adorer",
+ "adult",
+ "adulterator",
+ "adulterer",
+ "adulteress",
+ "advancer",
+ "adventurer",
+ "adventuress",
+ "adverse",
+ "advert",
+ "advertent",
+ "advertiser",
+ "advice",
+ "adviser",
+ "advowson",
+ "adz",
+ "adze",
+ "affiant",
+ "affirmer",
+ "agent",
+ "agitator",
+ "agonist",
+ "air",
+ "alb",
+ "albino",
+ "alchemist",
+ "alewife",
+ "alias",
+ "alienator",
+ "alienist",
+ "alienor",
+ "all",
+ "allayer",
+ "allegorizer",
+ "alleviator",
+ "alliterator",
+ "almoner",
+ "amalgamator",
+ "amateur",
+ "amazon",
+ "american",
+ "amplifier",
+ "amputator",
+ "analogist",
+ "analyst",
+ "analyzer",
+ "anarchist",
+ "anatomist",
+ "anchorite",
+ "anecdotist",
+ "angler",
+ "angling",
+ "animater",
+ "animator",
+ "animist",
+ "annihilator",
+ "announcer",
+ "annoyer",
+ "annuitant",
+ "annunciator",
+ "anointer",
+ "anonym",
+ "answerer",
+ "antagonist",
+ "antecedent",
+ "anthologist",
+ "anthropologist",
+ "anticipator",
+ "antipope",
+ "ape",
+ "aper",
+ "apiarist",
+ "apologist",
+ "apostle",
+ "apostrophe",
+ "appeaser",
+ "appellant",
+ "applauder",
+ "applicant",
+ "appraiser",
+ "appreciator",
+ "apprehender",
+ "apprentice",
+ "appropriator",
+ "approver",
+ "arabist",
+ "arbiter",
+ "arbitrator",
+ "arboriculturist",
+ "arborist",
+ "archaist",
+ "architect",
+ "arguer",
+ "aristocrat",
+ "armor-bearer",
+ "armorer",
+ "arranger",
+ "arrester",
+ "arriver",
+ "articulator",
+ "artificer",
+ "artilleryman",
+ "artisan",
+ "artist",
+ "ascendant",
+ "asker",
+ "aspirant",
+ "aspirer",
+ "assailant",
+ "assault",
+ "assaulter",
+ "assayer",
+ "assembler",
+ "assenter",
+ "asserter",
+ "assessee",
+ "assessor",
+ "assets",
+ "assistant",
+ "astrologer",
+ "astronomer",
+ "atheist",
+ "athlete",
+ "atlas",
+ "atomizer",
+ "attacker",
+ "attainder",
+ "attempter",
+ "attendant",
+ "attender",
+ "attester",
+ "attestor",
+ "attracter",
+ "attractor",
+ "auditor",
+ "augur",
+ "aunt",
+ "author",
+ "authorizer",
+ "autobiographer",
+ "autochthon",
+ "autocrat",
+ "autodidact",
+ "avenger",
+ "avoirdupois",
+ "avower",
+ "backbiter",
+ "backer",
+ "backslider",
+ "badge",
+ "badger",
+ "badgerer",
+ "bagman",
+ "bagpiper",
+ "bailor",
+ "baker",
+ "balancer",
+ "balker",
+ "banker",
+ "bankrupt",
+ "baptist",
+ "barber",
+ "bargainer",
+ "bargeman",
+ "barkeeper",
+ "barker",
+ "barterer",
+ "base",
+ "bass",
+ "basso",
+ "bat",
+ "bather",
+ "batman",
+ "batsman",
+ "batter",
+ "battler",
+ "bawd",
+ "bawler",
+ "beadle",
+ "bear",
+ "bearer",
+ "beater",
+ "beau",
+ "bedfellow",
+ "bedlam",
+ "beefeater",
+ "begetter",
+ "beggar",
+ "beginner",
+ "beguiler",
+ "beholder",
+ "believe",
+ "believer",
+ "belle",
+ "bellman",
+ "bellower",
+ "bender",
+ "benefactor",
+ "benefactress",
+ "berserk",
+ "berserker",
+ "besieger",
+ "betrayer",
+ "better",
+ "bettor",
+ "bibliographer",
+ "bibliopole",
+ "bicycler",
+ "bidder",
+ "bigamist",
+ "bilk",
+ "bill",
+ "binder",
+ "biographer",
+ "biologist",
+ "bitch",
+ "bite",
+ "biter",
+ "blab",
+ "black",
+ "blackguard",
+ "blackmailer",
+ "blamer",
+ "blasphemer",
+ "blaster",
+ "blazer",
+ "bleacher",
+ "bleeder",
+ "blender",
+ "blinder",
+ "blinker",
+ "blood",
+ "bloodsucker",
+ "bloomer",
+ "blotter",
+ "blower",
+ "blue",
+ "bluffer",
+ "blunderer",
+ "blusterer",
+ "boarder",
+ "boaster",
+ "boatman",
+ "bobber",
+ "bodyguard",
+ "boiler",
+ "bombardier",
+ "bondman",
+ "bondsman",
+ "bondswoman",
+ "bondwoman",
+ "bonesetter",
+ "bookbinder",
+ "booker",
+ "bookkeeper",
+ "bookmaker",
+ "bookseller",
+ "boomer",
+ "boor",
+ "boost",
+ "boot",
+ "bootblack",
+ "bootmaker",
+ "boozer",
+ "borderer",
+ "borrower",
+ "botanist",
+ "botcher",
+ "bother",
+ "botherer",
+ "bottler",
+ "bouncer",
+ "bounder",
+ "bourbon",
+ "bourgeois",
+ "bow",
+ "bower",
+ "bowler",
+ "bowman",
+ "boxer",
+ "bragger",
+ "brakeman",
+ "branch",
+ "brand",
+ "brave",
+ "bravo",
+ "breaker",
+ "breather",
+ "breeder",
+ "breton",
+ "brewer",
+ "brick",
+ "bricklayer",
+ "bride",
+ "bridegroom",
+ "broiler",
+ "broker",
+ "brood",
+ "brother",
+ "bruiser",
+ "brunette",
+ "brute",
+ "bubbler",
+ "buddhist",
+ "buffer",
+ "bufflehead",
+ "buffoon",
+ "bugler",
+ "builder",
+ "bull",
+ "bulldozer",
+ "bungler",
+ "bunter",
+ "burgess",
+ "burlesquer",
+ "burner",
+ "bushwhacker",
+ "bust",
+ "butcher",
+ "butter",
+ "buyer",
+ "buzzer",
+ "bystander",
+ "cabinetmaker",
+ "cackler",
+ "cad",
+ "cadger",
+ "cahoot",
+ "caitiff",
+ "calculator",
+ "calender",
+ "calf",
+ "caller",
+ "calling",
+ "calmer",
+ "campaigner",
+ "camper",
+ "canaanite",
+ "cannoneer",
+ "canoe",
+ "canonist",
+ "canter",
+ "canvasser",
+ "capitalist",
+ "captor",
+ "caricaturist",
+ "carouser",
+ "carper",
+ "carrier",
+ "carter",
+ "cartographer",
+ "carver",
+ "cashier",
+ "cast",
+ "caster",
+ "casuist",
+ "catamaran",
+ "catcher",
+ "catechist",
+ "caterer",
+ "cateress",
+ "caveat",
+ "celebrant",
+ "celebrator",
+ "celt",
+ "censor",
+ "chaffer",
+ "chair",
+ "chairman",
+ "chaldean",
+ "challenge",
+ "challenger",
+ "changeling",
+ "changer",
+ "chanter",
+ "chap",
+ "chapman",
+ "charge",
+ "charger",
+ "charioteer",
+ "charlatan",
+ "charm",
+ "charmer",
+ "charwoman",
+ "chaser",
+ "cheat",
+ "cheater",
+ "checker",
+ "cheerer",
+ "cheesemonger",
+ "chef",
+ "chewer",
+ "chick",
+ "chiffonier",
+ "chignon",
+ "child",
+ "chiliast",
+ "chiromancer",
+ "chiropodist",
+ "choker",
+ "chooser",
+ "chopper",
+ "choragus",
+ "chorister",
+ "chouse",
+ "churchgoer",
+ "churl",
+ "cipher",
+ "circlet",
+ "citess",
+ "claimant",
+ "clairvoyant",
+ "classifier",
+ "cleaner",
+ "cleanser",
+ "clearer",
+ "cleaver",
+ "clergyman",
+ "clerk",
+ "client",
+ "clientele",
+ "climb",
+ "climber",
+ "clincher",
+ "clipper",
+ "clock",
+ "closer",
+ "clothier",
+ "clown",
+ "co-respondent",
+ "coach",
+ "coachman",
+ "coadjutor",
+ "coaster",
+ "coaxer",
+ "cob",
+ "codger",
+ "coiner",
+ "collector",
+ "colonizer",
+ "colorist",
+ "coma",
+ "combatant",
+ "comber",
+ "comer",
+ "comforter",
+ "commander",
+ "commentator",
+ "commoner",
+ "communicant",
+ "communicator",
+ "commuter",
+ "compacter",
+ "competitor",
+ "compiler",
+ "complainant",
+ "complainer",
+ "composer",
+ "compositor",
+ "compost",
+ "composure",
+ "compote",
+ "compound",
+ "compounder",
+ "comprehend",
+ "compress",
+ "compressor",
+ "compromiser",
+ "compute",
+ "computer",
+ "comrade",
+ "con",
+ "concave",
+ "concavo-concave",
+ "concavo-convex",
+ "concede",
+ "conceit",
+ "conceiver",
+ "concenter",
+ "concentre",
+ "concept",
+ "concern",
+ "concert",
+ "concertina",
+ "concerto",
+ "conch",
+ "concha",
+ "conchologist",
+ "concierge",
+ "conciliator",
+ "conclave",
+ "conclude",
+ "concoct",
+ "concomitant",
+ "concord",
+ "concordant",
+ "concordat",
+ "concourse",
+ "concrete",
+ "concupiscent",
+ "concur",
+ "concurrent",
+ "concuss",
+ "condemn",
+ "condense",
+ "condenser",
+ "condescend",
+ "condign",
+ "condole",
+ "condor",
+ "conduce",
+ "conduct",
+ "conductor",
+ "conductress",
+ "conduit",
+ "condylar",
+ "condyle",
+ "confab",
+ "confect",
+ "confectioner",
+ "confederater",
+ "confer",
+ "conferee",
+ "conferrer",
+ "conferva",
+ "confess",
+ "confessor",
+ "confidante",
+ "confide",
+ "confident",
+ "configure",
+ "confirm",
+ "confit",
+ "confiture",
+ "conger",
+ "congeries",
+ "congest",
+ "congius",
+ "conglobe",
+ "congo",
+ "congou",
+ "congregationalist",
+ "congress",
+ "congressman",
+ "congruent",
+ "conics",
+ "conidium",
+ "conifer",
+ "conium",
+ "conjecture",
+ "conjoint",
+ "conjunct",
+ "conjunctiva",
+ "conjuncture",
+ "conjure",
+ "conjurer",
+ "conjuror",
+ "conn",
+ "connect",
+ "connector",
+ "connoisseur",
+ "connote",
+ "conodont",
+ "conquer",
+ "conqueress",
+ "conqueror",
+ "conquest",
+ "conscript",
+ "consecrater",
+ "consensus",
+ "consent",
+ "consentient",
+ "consequent",
+ "conservatoire",
+ "conservator",
+ "conserve",
+ "consider",
+ "consign",
+ "consignee",
+ "consigner",
+ "consignor",
+ "consist",
+ "consistent",
+ "console",
+ "consoling",
+ "consonant",
+ "consort",
+ "conspectus",
+ "conspirator",
+ "conspire",
+ "constant",
+ "constituent",
+ "constitute",
+ "constitutionalist",
+ "constraint",
+ "constrict",
+ "constrictor",
+ "constringe",
+ "construct",
+ "constructor",
+ "construe",
+ "consuetude",
+ "consul",
+ "consular",
+ "consult",
+ "consume",
+ "consumer",
+ "contact",
+ "container",
+ "contemn",
+ "contempt",
+ "contend",
+ "contender",
+ "content",
+ "contents",
+ "contest",
+ "contestant",
+ "context",
+ "continent",
+ "contingent",
+ "continuant",
+ "continue",
+ "continuo",
+ "contort",
+ "contour",
+ "contra",
+ "contraband",
+ "contrabandist",
+ "contrabass",
+ "contract",
+ "contractile",
+ "contractor",
+ "contracture",
+ "contradict",
+ "contradictions",
+ "contralto",
+ "contrapuntist",
+ "contraries",
+ "contrast",
+ "contretemps",
+ "contribute",
+ "contrite",
+ "contriver",
+ "controller",
+ "controversialist",
+ "controvert",
+ "contuse",
+ "conundrum",
+ "convalesce",
+ "convalescent",
+ "convener",
+ "convenient",
+ "convent",
+ "conventicle",
+ "converge",
+ "convergent",
+ "conversant",
+ "conversationalist",
+ "conversationist",
+ "converse",
+ "converser",
+ "convert",
+ "converter",
+ "convex",
+ "convexo-concave",
+ "convexo-convex",
+ "conveyancer",
+ "conveyer",
+ "conveyor",
+ "convict",
+ "convince",
+ "convoke",
+ "convolute",
+ "convolve",
+ "convolvulus",
+ "convulse",
+ "coo",
+ "cook",
+ "cookbook",
+ "cookie",
+ "cooler",
+ "coolie",
+ "cooling",
+ "coon",
+ "coontie",
+ "coop",
+ "cooper",
+ "coot",
+ "cooter",
+ "cop",
+ "copartner",
+ "cope",
+ "copeck",
+ "copepod",
+ "copepoda",
+ "copernican",
+ "copier",
+ "copland",
+ "copper",
+ "copperhead",
+ "coppersmith",
+ "coppice",
+ "copra",
+ "coprolite",
+ "cops",
+ "copse",
+ "copts",
+ "copula",
+ "copyhold",
+ "copyholder",
+ "copyist",
+ "copyright",
+ "coquet",
+ "coquette",
+ "cora",
+ "coracle",
+ "coralwort",
+ "corbel",
+ "corbiestep",
+ "corchorus",
+ "cord",
+ "cordierite",
+ "cordon",
+ "cordovan",
+ "core",
+ "corer",
+ "coriander",
+ "corinth",
+ "corium",
+ "cork",
+ "corkscrew",
+ "corm",
+ "cormorant",
+ "corn",
+ "corncob",
+ "corncrake",
+ "corncrib",
+ "cornea",
+ "cornel",
+ "corner",
+ "cornet",
+ "cornfield",
+ "cornflower",
+ "cornice",
+ "cornstalk",
+ "cornstarch",
+ "cornu",
+ "corolla",
+ "corona",
+ "coronach",
+ "coroner",
+ "coronet",
+ "coronilla",
+ "corposant",
+ "corps",
+ "corpse",
+ "corpulent",
+ "corpus",
+ "corpuscle",
+ "corpuscular",
+ "corrade",
+ "correct",
+ "corregidor",
+ "correspond",
+ "correspondent",
+ "corridor",
+ "corrie",
+ "corrigendum",
+ "corroborant",
+ "corrode",
+ "corrupt",
+ "corrupter",
+ "corsair",
+ "corse",
+ "corselet",
+ "corset",
+ "corslet",
+ "cortes",
+ "cortex",
+ "corundum",
+ "coruscant",
+ "corvee",
+ "corvette",
+ "corymb",
+ "coryza",
+ "coscoroba",
+ "cosecant",
+ "cosher",
+ "cosherer",
+ "cosier",
+ "cosmographer",
+ "cosmologist",
+ "cosmopolitan",
+ "cosmopolite",
+ "cosmos",
+ "coss",
+ "cossack",
+ "cosset",
+ "cost",
+ "costa",
+ "costermonger",
+ "costume",
+ "costumer",
+ "cot",
+ "cotangent",
+ "cote",
+ "cotenant",
+ "coterie",
+ "cotinga",
+ "cotswold",
+ "cottager",
+ "cottar",
+ "cotter",
+ "cottier",
+ "cotton",
+ "cottontail",
+ "cottonwood",
+ "cotyledon",
+ "couch",
+ "couchant",
+ "cougar",
+ "cough",
+ "coulisse",
+ "coulomb",
+ "coulter",
+ "council",
+ "councilman",
+ "counsel",
+ "counselor",
+ "count",
+ "counter",
+ "counteract",
+ "counterbore",
+ "counterchange",
+ "countercharge",
+ "countercheck",
+ "counterclaim",
+ "countercurrent",
+ "counterfeit",
+ "counterfeiter",
+ "counterfoil",
+ "counterman",
+ "countermand",
+ "countermarch",
+ "countermove",
+ "counterpart",
+ "counterplot",
+ "counterpoint",
+ "countersign",
+ "countersink",
+ "countersunk",
+ "countervail",
+ "countess",
+ "countryman",
+ "countryside",
+ "countrywoman",
+ "coup",
+ "couple",
+ "coupler",
+ "couplet",
+ "coupling",
+ "coupon",
+ "courbaril",
+ "courier",
+ "courlan",
+ "course",
+ "courser",
+ "court",
+ "courtesan",
+ "courtier",
+ "courtyard",
+ "cousin-german",
+ "couth",
+ "couvade",
+ "covariant",
+ "cove",
+ "covenant",
+ "cover",
+ "coverlet",
+ "covert",
+ "covet",
+ "cow",
+ "coward",
+ "cowardice",
+ "cowbird",
+ "cower",
+ "cowherd",
+ "cowhide",
+ "cowl",
+ "cowlick",
+ "cowpea",
+ "cowpox",
+ "cowrie",
+ "cowslip",
+ "cox",
+ "coxcomb",
+ "coyote",
+ "coypu",
+ "cozier",
+ "crab",
+ "crack",
+ "cracker",
+ "crackle",
+ "crackleware",
+ "crackling",
+ "cracksman",
+ "cradle",
+ "cradling",
+ "craft",
+ "craftsman",
+ "crag",
+ "cragsman",
+ "crake",
+ "cram",
+ "crambe",
+ "crammer",
+ "cramp",
+ "crampon",
+ "crampoons",
+ "cranch",
+ "craniologist",
+ "cranium",
+ "crank",
+ "crape",
+ "crappie",
+ "craps",
+ "crash",
+ "crass",
+ "crassitude",
+ "crater",
+ "craunch",
+ "cravat",
+ "crave",
+ "craw",
+ "crawford",
+ "crawl",
+ "crawler",
+ "crayon",
+ "craze",
+ "creak",
+ "cream",
+ "crease",
+ "creature",
+ "creche",
+ "credendum",
+ "credit",
+ "creditor",
+ "credo",
+ "creek",
+ "creeks",
+ "creel",
+ "creep",
+ "creeper",
+ "crees",
+ "creese",
+ "cremona",
+ "crenature",
+ "crenel",
+ "crenelle",
+ "creole",
+ "creosote",
+ "crept",
+ "crepuscule",
+ "crescendo",
+ "crescent",
+ "cress",
+ "crest",
+ "cretan",
+ "crete",
+ "cretonne",
+ "crevasse",
+ "crevice",
+ "crew",
+ "crewelwork",
+ "crewet",
+ "crib",
+ "crick",
+ "cricket",
+ "cricketer",
+ "crier",
+ "crime",
+ "crimp",
+ "crimper",
+ "crimson",
+ "cringe",
+ "cringle",
+ "crinkle",
+ "crinoidea",
+ "cripple",
+ "crippling",
+ "crisp",
+ "crisper",
+ "crisscross",
+ "crith",
+ "critique",
+ "croak",
+ "croaker",
+ "croat",
+ "crochet",
+ "crock",
+ "crocket",
+ "crocodile",
+ "crocus",
+ "croft",
+ "crofter",
+ "cromlech",
+ "crook",
+ "crookback",
+ "croon",
+ "crop",
+ "cropper",
+ "croquet",
+ "crore",
+ "crosier",
+ "cross",
+ "cross-examiner",
+ "cross-eye",
+ "cross-stitch",
+ "crossbar",
+ "crossbeam",
+ "crossbill",
+ "crossbones",
+ "crossbow",
+ "crosscut",
+ "crosshead",
+ "crossjack",
+ "crossopterygii",
+ "crosspatch",
+ "crosspiece",
+ "crossroad",
+ "crossruff",
+ "crotalus",
+ "crotch",
+ "crotchet",
+ "croton",
+ "crottles",
+ "crouch",
+ "croup",
+ "croupier",
+ "crouse",
+ "crouton",
+ "crow",
+ "crowbar",
+ "crowd",
+ "crowfoot",
+ "crown",
+ "crownwork",
+ "crows",
+ "crozier",
+ "crucifer",
+ "crucifix",
+ "cruciform",
+ "crud",
+ "crude",
+ "cruel",
+ "cruet",
+ "cruiser",
+ "cruller",
+ "crumb",
+ "crumble",
+ "crump",
+ "crumpet",
+ "crumple",
+ "crunch",
+ "crupper",
+ "crura",
+ "crus",
+ "crusade",
+ "crusader",
+ "cruse",
+ "crush",
+ "crusher",
+ "crust",
+ "crustacea",
+ "crustacean",
+ "crutch",
+ "crux",
+ "cryolite",
+ "crypt",
+ "cryptogam",
+ "cryptogram",
+ "cryptograph",
+ "cryptographer",
+ "crystallite",
+ "crystallographer",
+ "ctenophora",
+ "ctenophore",
+ "cub",
+ "cuban",
+ "cubbyhole",
+ "cube",
+ "cubeb",
+ "cubicle",
+ "cubiform",
+ "cubit",
+ "cuckold",
+ "cuckoldom",
+ "cuckoo",
+ "cuckooflower",
+ "cuckoopint",
+ "cucumber",
+ "cucumis",
+ "cud",
+ "cudbear",
+ "cuddle",
+ "cudgel",
+ "cue",
+ "cuff",
+ "cuirass",
+ "cuirassier",
+ "cul",
+ "culex",
+ "cull",
+ "cullender",
+ "culling",
+ "cullis",
+ "culls",
+ "culm",
+ "culprit",
+ "cult",
+ "cultivator",
+ "culture",
+ "cultus",
+ "culvert",
+ "cumber",
+ "cumbersome",
+ "cumulus",
+ "cuneiform",
+ "cunner",
+ "cup",
+ "cupbearer",
+ "cupboard",
+ "cupel",
+ "cupola",
+ "cupper",
+ "cuprite",
+ "cupule",
+ "cur",
+ "curassow",
+ "curator",
+ "curb",
+ "curcuma",
+ "curd",
+ "curdle",
+ "cure",
+ "curette",
+ "curfew",
+ "curio",
+ "curl",
+ "curler",
+ "curlew",
+ "curling",
+ "curmudgeon",
+ "currant",
+ "current",
+ "curriculum",
+ "currier",
+ "currycomb",
+ "curse",
+ "cursor",
+ "curst",
+ "curt",
+ "curtail",
+ "curvature",
+ "curve",
+ "curvet",
+ "curvilinear",
+ "cushat",
+ "cusk",
+ "cusp",
+ "cuspidor",
+ "custard",
+ "custom",
+ "customer",
+ "customhouse",
+ "cut",
+ "cutch",
+ "cute",
+ "cuticle",
+ "cuticular",
+ "cutis",
+ "cutlass",
+ "cutler",
+ "cutlet",
+ "cutpurse",
+ "cutter",
+ "cutthroat",
+ "cuttle",
+ "cutwork",
+ "cutworm",
+ "cyanide",
+ "cyanite",
+ "cycad",
+ "cycas",
+ "cycle",
+ "cycling",
+ "cyclist",
+ "cyclopean",
+ "cyclops",
+ "cyclorama",
+ "cyclostomata",
+ "cyclostyle",
+ "cyder",
+ "cygnet",
+ "cygnus",
+ "cylinder",
+ "cyma",
+ "cymatium",
+ "cymbalist",
+ "cyme",
+ "cymling",
+ "cymule",
+ "cynosure",
+ "cyon",
+ "cyperus",
+ "cypher",
+ "cypres",
+ "cypress",
+ "cyprinodont",
+ "cypriot",
+ "cypripedium",
+ "cyprus",
+ "cyst",
+ "cystocele",
+ "cystolith",
+ "cytoplasm",
+ "czar",
+ "czarina",
+ "czech",
+ "czechs",
+ "dabbler",
+ "dairyman",
+ "dame",
+ "damsel",
+ "dancer",
+ "danseuse",
+ "darner",
+ "darter",
+ "dastard",
+ "dauber",
+ "daughter",
+ "dawdler",
+ "dead",
+ "deadhead",
+ "deaf-mute",
+ "dealer",
+ "dealing",
+ "debaser",
+ "debater",
+ "debauch",
+ "debauchee",
+ "debaucher",
+ "debenture",
+ "debtor",
+ "decanter",
+ "decedent",
+ "deceiver",
+ "decent",
+ "decipherer",
+ "decipheress",
+ "decker",
+ "declarer",
+ "decorator",
+ "deerstalker",
+ "defamer",
+ "defaulter",
+ "defendant",
+ "defender",
+ "defiler",
+ "defrauder",
+ "defunct",
+ "deist",
+ "delayer",
+ "delinquent",
+ "deliverer",
+ "dell",
+ "demagogue",
+ "demander",
+ "demerit",
+ "democrat",
+ "demoniac",
+ "demonstrator",
+ "demurrer",
+ "denier",
+ "denominator",
+ "dentist",
+ "departer",
+ "dependent",
+ "deponent",
+ "deposer",
+ "depositor",
+ "depreciator",
+ "depressor",
+ "dermatologist",
+ "descendant",
+ "descender",
+ "descent",
+ "deserter",
+ "designer",
+ "desolater",
+ "despoiler",
+ "despot",
+ "destroyer",
+ "detector",
+ "determiner",
+ "determinist",
+ "detonator",
+ "developer",
+ "devil",
+ "deviser",
+ "devisor",
+ "devotee",
+ "devourer",
+ "diarist",
+ "dictator",
+ "dieter",
+ "differentiator",
+ "diffuser",
+ "digester",
+ "digger",
+ "dilater",
+ "dilator",
+ "dilettante",
+ "diluter",
+ "diner",
+ "dipper",
+ "dipsomaniac",
+ "directer",
+ "director",
+ "diver",
+ "divider",
+ "diviner",
+ "divorce",
+ "doctor",
+ "doctrinaire",
+ "dodger",
+ "dogmatist",
+ "donor",
+ "doorkeeper",
+ "dotard",
+ "doubler",
+ "doubter",
+ "dower",
+ "dowser",
+ "dozer",
+ "drab",
+ "drabber",
+ "dragon",
+ "draper",
+ "draughtsman",
+ "drawer",
+ "dreader",
+ "dreadnaught",
+ "dreamer",
+ "dredger",
+ "dresser",
+ "dribbler",
+ "drier",
+ "drinker",
+ "driver",
+ "droll",
+ "dropper",
+ "drover",
+ "drudge",
+ "druggist",
+ "drummer",
+ "drunkard",
+ "dualist",
+ "duck",
+ "dueler",
+ "duelist",
+ "duenna",
+ "duffer",
+ "dullard",
+ "duller",
+ "dun",
+ "dupe",
+ "duster",
+ "dyer",
+ "dynamiter",
+ "earthworm",
+ "east",
+ "eater",
+ "eavesdropper",
+ "economist",
+ "economizer",
+ "editor",
+ "educationist",
+ "educator",
+ "effecter",
+ "egger",
+ "egotist",
+ "ejector",
+ "elater",
+ "elder",
+ "elector",
+ "electroplater",
+ "elevator",
+ "elf",
+ "elizabethan",
+ "elocutionist",
+ "emancipator",
+ "embalmer",
+ "embezzler",
+ "embonpoint",
+ "embroiderer",
+ "emeer",
+ "emigrant",
+ "emir",
+ "employer",
+ "emptier",
+ "emulator",
+ "enchanter",
+ "enchantress",
+ "encroacher",
+ "encyclopedist",
+ "energizer",
+ "enforcer",
+ "engender",
+ "engineer",
+ "engraver",
+ "enhancer",
+ "enjoyer",
+ "enlivener",
+ "entail",
+ "enterpriser",
+ "entertainer",
+ "enthusiast",
+ "entrant",
+ "entrepreneur",
+ "enumerator",
+ "equalizer",
+ "equivocator",
+ "eraser",
+ "erecter",
+ "errant",
+ "escort",
+ "escrow",
+ "essayer",
+ "estimator",
+ "esurient",
+ "etcher",
+ "ethicist",
+ "ethnographer",
+ "ethologist",
+ "etruscan",
+ "etymologist",
+ "eulogist",
+ "evener",
+ "evolutionist",
+ "examiner",
+ "example",
+ "excavator",
+ "exchanger",
+ "excursionist",
+ "excuser",
+ "executant",
+ "executioner",
+ "executor",
+ "executrix",
+ "exerciser",
+ "exhibitioner",
+ "exhibitor",
+ "exile",
+ "exon",
+ "expectant",
+ "experimenter",
+ "expert",
+ "explorer",
+ "exponent",
+ "exporter",
+ "expositor",
+ "expounder",
+ "expurgator",
+ "exquisite",
+ "exterminator",
+ "extinguisher",
+ "extoller",
+ "extractor",
+ "extravagant",
+ "extremist",
+ "fabricator",
+ "fabulist",
+ "factor",
+ "factoress",
+ "fagot",
+ "faint",
+ "fair",
+ "falconer",
+ "faller",
+ "falsifier",
+ "fan",
+ "fancier",
+ "fantast",
+ "farmer",
+ "fartherer",
+ "fastener",
+ "faster",
+ "fatalist",
+ "father",
+ "favoress",
+ "favorite",
+ "fawner",
+ "feature",
+ "feeder",
+ "feel",
+ "feeler",
+ "feeling",
+ "feller",
+ "fellow",
+ "felo-de-se",
+ "fencer",
+ "fender",
+ "ferryman",
+ "fertilizer",
+ "fetch",
+ "fibber",
+ "fiddler",
+ "fiend",
+ "fighter",
+ "figure",
+ "file",
+ "filer",
+ "filler",
+ "financier",
+ "finder",
+ "finer",
+ "finisher",
+ "firebrand",
+ "fireman",
+ "fisher",
+ "fisherman",
+ "fishwife",
+ "fitter",
+ "flanker",
+ "flapper",
+ "flasher",
+ "flatter",
+ "flatterer",
+ "fleer",
+ "flesh",
+ "fletcher",
+ "flier",
+ "flippant",
+ "flirt",
+ "floater",
+ "flogger",
+ "floorwalker",
+ "florist",
+ "flouter",
+ "foe",
+ "folder",
+ "follower",
+ "fomenter",
+ "fondler",
+ "fondling",
+ "footman",
+ "fop",
+ "forager",
+ "forecaster",
+ "forefather",
+ "forester",
+ "forfeiter",
+ "forger",
+ "forgiver",
+ "forlorn",
+ "former",
+ "fornicator",
+ "fornicatress",
+ "forsooth",
+ "fortieth",
+ "forwarder",
+ "fossil",
+ "fossilist",
+ "foster",
+ "founder",
+ "foundress",
+ "four-in-hand",
+ "fourteenth",
+ "fourth",
+ "frame",
+ "framer",
+ "frank",
+ "fratricide",
+ "free-liver",
+ "freebooter",
+ "freedman",
+ "freeman",
+ "freer",
+ "freethinker",
+ "freezer",
+ "freighter",
+ "frequenter",
+ "friend",
+ "frier",
+ "front",
+ "fruiterer",
+ "frump",
+ "fugleman",
+ "fuller",
+ "fumbler",
+ "fumigator",
+ "furrier",
+ "fuss",
+ "futurist",
+ "gabbier",
+ "gainer",
+ "galilean",
+ "gallant",
+ "galvanizer",
+ "gambler",
+ "gamekeeper",
+ "gamester",
+ "ganger",
+ "garb",
+ "gardener",
+ "garnishee",
+ "garroter",
+ "gatherer",
+ "gaul",
+ "genealogist",
+ "generator",
+ "genevan",
+ "genitor",
+ "genius",
+ "genoese",
+ "gentleman",
+ "gentlewoman",
+ "geomancer",
+ "ghost",
+ "giant",
+ "giantess",
+ "giggler",
+ "gilder",
+ "gill",
+ "girder",
+ "giver",
+ "gladder",
+ "gladiator",
+ "glazer",
+ "glazier",
+ "gleaner",
+ "glider",
+ "glutton",
+ "gnawer",
+ "goatherd",
+ "god",
+ "goddess",
+ "godfather",
+ "godmother",
+ "goer",
+ "golfer",
+ "gondolier",
+ "gossip",
+ "goth",
+ "gouge",
+ "governor",
+ "gown",
+ "grabber",
+ "grader",
+ "grandee",
+ "granter",
+ "graver",
+ "grazier",
+ "greaser",
+ "greenhorn",
+ "greeter",
+ "griever",
+ "grinder",
+ "grinner",
+ "groom",
+ "groover",
+ "groveler",
+ "grower",
+ "growler",
+ "grumbler",
+ "grunter",
+ "guarantee",
+ "guarantor",
+ "guard",
+ "guardsman",
+ "guerrilla",
+ "guesser",
+ "guide",
+ "guilt",
+ "gunner",
+ "gunsmith",
+ "gusher",
+ "guzzle",
+ "gymnast",
+ "habitue",
+ "hacker",
+ "hag",
+ "haggler",
+ "hagiologist",
+ "hairdresser",
+ "hairsplitter",
+ "halberdier",
+ "halfer",
+ "halter",
+ "handicapper",
+ "handicraft",
+ "hanger",
+ "hanger-on",
+ "hangman",
+ "haranguer",
+ "harasser",
+ "harbinger",
+ "hardwareman",
+ "harlot",
+ "harmonizer",
+ "harpooner",
+ "harridan",
+ "harrier",
+ "harvester",
+ "harvestman",
+ "hatchet",
+ "hater",
+ "hatrack",
+ "hatter",
+ "hauberk",
+ "haul",
+ "hauler",
+ "haulm",
+ "hauls",
+ "haunch",
+ "haunt",
+ "haustorium",
+ "hauteur",
+ "havana",
+ "have",
+ "havelock",
+ "haversack",
+ "havoc",
+ "haw",
+ "haw-haw",
+ "hawfinch",
+ "hawk",
+ "hawkbill",
+ "hawkbit",
+ "hawker",
+ "hawse",
+ "hawser",
+ "hawthorn",
+ "haycock",
+ "hayfield",
+ "hayfork",
+ "hayloft",
+ "haymaker",
+ "haymow",
+ "hayrack",
+ "hayrick",
+ "haystack",
+ "hazard",
+ "haze",
+ "hazel",
+ "hazelnut",
+ "he",
+ "head",
+ "headache",
+ "headband",
+ "headdress",
+ "header",
+ "headfirst",
+ "headland",
+ "headlight",
+ "headlong",
+ "headman",
+ "headpiece",
+ "headquarters",
+ "headrace",
+ "headsail",
+ "headshake",
+ "headsman",
+ "headstall",
+ "headstock",
+ "headstrong",
+ "healing",
+ "health",
+ "heap",
+ "hear",
+ "heard",
+ "hearer",
+ "hearse",
+ "heart",
+ "heart-whole",
+ "heartache",
+ "heartbreak",
+ "heartburn",
+ "heartfelt",
+ "hearth",
+ "heartsick",
+ "heartwood",
+ "heat",
+ "heater",
+ "heath",
+ "heather",
+ "heave",
+ "heavenward",
+ "heaver",
+ "heaves",
+ "hebdomad",
+ "hebe",
+ "hebetude",
+ "hebraist",
+ "hebrew",
+ "hebridean",
+ "hecatomb",
+ "heckle",
+ "hectare",
+ "hectogram",
+ "hectograph",
+ "hectolitre",
+ "hectometre",
+ "hector",
+ "hedge",
+ "hedgehog",
+ "hedger",
+ "hedgerow",
+ "heel",
+ "heft",
+ "hegira",
+ "heifer",
+ "height",
+ "heir",
+ "heiress",
+ "heirloom",
+ "hejira",
+ "held",
+ "helena",
+ "heliac",
+ "helichrysum",
+ "helicon",
+ "heliograph",
+ "heliogravure",
+ "heliotrope",
+ "heliotype",
+ "heliozoa",
+ "helium",
+ "helix",
+ "hell",
+ "hellbender",
+ "hellebore",
+ "hellespont",
+ "hellhound",
+ "hello",
+ "helm",
+ "helmet",
+ "helminth",
+ "helmsman",
+ "helot",
+ "help",
+ "helper",
+ "helpmeet",
+ "helter-skelter",
+ "helve",
+ "hem",
+ "hematite",
+ "hematocele",
+ "hematoma",
+ "hemerocallis",
+ "hemicycle",
+ "hemimetabola",
+ "hemipode",
+ "hemiptera",
+ "hemipteran",
+ "hemisphere",
+ "hemlock",
+ "hemorrhoids",
+ "hemp",
+ "hemstitch",
+ "henbit",
+ "henceforth",
+ "henceforward",
+ "henchman",
+ "hencoop",
+ "hendiadys",
+ "henhouse",
+ "henna",
+ "henroost",
+ "hep",
+ "hepatica",
+ "hepper",
+ "heptad",
+ "heptagon",
+ "herald",
+ "herb",
+ "herbalist",
+ "herbarium",
+ "herbivore",
+ "herculean",
+ "hercules",
+ "herd",
+ "herder",
+ "herdess",
+ "herdsman",
+ "here",
+ "hereabouts",
+ "hereafter",
+ "hereford",
+ "hereinafter",
+ "hereinbefore",
+ "hereof",
+ "hereto",
+ "heretofore",
+ "hereupon",
+ "herewith",
+ "heritor",
+ "hermaphrodite",
+ "hermeneutics",
+ "hermes",
+ "hermit",
+ "hero",
+ "heron",
+ "herpes",
+ "herpetologist",
+ "herr",
+ "herschel",
+ "hesitant",
+ "hesperides",
+ "hesperus",
+ "heterodox",
+ "heteronym",
+ "heteroptera",
+ "heulandite",
+ "hew",
+ "hewer",
+ "hewn",
+ "hexad",
+ "hexagon",
+ "hexahedron",
+ "hexangular",
+ "hexapod",
+ "hexapoda",
+ "hiatus",
+ "hibiscus",
+ "hiccough",
+ "hiddenite",
+ "hide",
+ "hidebound",
+ "hie",
+ "hierarch",
+ "hieroglyph",
+ "higgle",
+ "high",
+ "high-flown",
+ "high-low",
+ "high-pressure",
+ "high-strung",
+ "high-top",
+ "highbinder",
+ "highborn",
+ "highflier",
+ "highland",
+ "highlander",
+ "highroad",
+ "highwayman",
+ "hilar",
+ "hill",
+ "hilling",
+ "hillock",
+ "hillside",
+ "hilltop",
+ "hilt",
+ "hilum",
+ "hilus",
+ "himalayan",
+ "hind",
+ "hinder",
+ "hinderer",
+ "hinderest",
+ "hindermost",
+ "hindgut",
+ "hindi",
+ "hindmost",
+ "hindoo",
+ "hindu",
+ "hindustani",
+ "hinge",
+ "hint",
+ "hip",
+ "hippobosca",
+ "hippocampus",
+ "hippocrates",
+ "hippodrome",
+ "hippopotamus",
+ "hire",
+ "hireling",
+ "hirer",
+ "hires",
+ "hirsute",
+ "hirudinea",
+ "hirudo",
+ "hirundo",
+ "hiss",
+ "histologist",
+ "historiographer",
+ "hit",
+ "hitch",
+ "hither",
+ "hitherto",
+ "hitter",
+ "hives",
+ "ho",
+ "hoar",
+ "hoard",
+ "hoarder",
+ "hoarfrost",
+ "hoarse",
+ "hoax",
+ "hoaxer",
+ "hob",
+ "hobble",
+ "hobbler",
+ "hobbyhorse",
+ "hobnail",
+ "hobnob",
+ "hock",
+ "hod",
+ "hodgepodge",
+ "hodman",
+ "hoe",
+ "hoecake",
+ "hog",
+ "hogback",
+ "hogchoker",
+ "hogget",
+ "hogshead",
+ "hogwash",
+ "hoist",
+ "hold",
+ "holder",
+ "holdfast",
+ "hole",
+ "holibut",
+ "holing",
+ "holla",
+ "holland",
+ "hollander",
+ "hollands",
+ "hollo",
+ "holloa",
+ "hollow",
+ "hollyhock",
+ "holmium",
+ "holocaust",
+ "holocephali",
+ "holograph",
+ "holometabola",
+ "holster",
+ "homarus",
+ "home",
+ "homemade",
+ "homeopath",
+ "homer",
+ "homesick",
+ "homespun",
+ "homestead",
+ "homesteader",
+ "homeward",
+ "homewards",
+ "homicide",
+ "homiletics",
+ "homograph",
+ "homonym",
+ "homoptera",
+ "homopteran",
+ "homunculus",
+ "honest",
+ "honeybee",
+ "honeycomb",
+ "honeydew",
+ "honeymoon",
+ "honeysucker",
+ "honeysuckle",
+ "honk",
+ "honor",
+ "honorarium",
+ "hood",
+ "hoodlum",
+ "hoodoo",
+ "hoodwink",
+ "hoof",
+ "hook",
+ "hookah",
+ "hooker",
+ "hoop",
+ "hoopoe",
+ "hoopoo",
+ "hoosier",
+ "hoot",
+ "hop",
+ "hope",
+ "hoper",
+ "hopper",
+ "hopple",
+ "hopscotch",
+ "horde",
+ "hordeolum",
+ "horehound",
+ "horizon",
+ "horn",
+ "hornbeam",
+ "hornbill",
+ "hornblende",
+ "hornbook",
+ "hornet",
+ "hornpipe",
+ "hornpout",
+ "hornwort",
+ "horologe",
+ "horologer",
+ "horologist",
+ "horror",
+ "horror-struck",
+ "horse",
+ "horseback",
+ "horseflesh",
+ "horsehair",
+ "horsehead",
+ "horsehide",
+ "horselaugh",
+ "horseman",
+ "horsemint",
+ "horsepond",
+ "horseshoe",
+ "horseshoer",
+ "horsetail",
+ "horsewhip",
+ "horsewoman",
+ "horticulture",
+ "horticulturist",
+ "hosanna",
+ "hosier",
+ "hospice",
+ "host",
+ "hostel",
+ "hostess",
+ "hostile",
+ "hostler",
+ "hot",
+ "hotchpotch",
+ "hotel",
+ "hotfoot",
+ "hothouse",
+ "hotspur",
+ "hottentot",
+ "houdah",
+ "hound",
+ "hour",
+ "hourglass",
+ "houri",
+ "hours",
+ "house",
+ "housebreaker",
+ "housebuilder",
+ "household",
+ "householder",
+ "housekeeper",
+ "houseroom",
+ "housewife",
+ "housework",
+ "houyhnhnm",
+ "hove",
+ "hovel",
+ "hover",
+ "howdah",
+ "however",
+ "howitzer",
+ "howl",
+ "howler",
+ "hub",
+ "hubble-bubble",
+ "hubbub",
+ "huck",
+ "huckaback",
+ "huckster",
+ "hud",
+ "huddle",
+ "huddler",
+ "hue",
+ "huff",
+ "hug",
+ "huge",
+ "hugger",
+ "hugger-mugger",
+ "huguenot",
+ "hulk",
+ "hull",
+ "hullabaloo",
+ "hullo",
+ "hum",
+ "human",
+ "humanist",
+ "humankind",
+ "humble",
+ "humblebee",
+ "humbler",
+ "humbles",
+ "humbug",
+ "humdrum",
+ "humectant",
+ "humerus",
+ "hummer",
+ "hummock",
+ "humor",
+ "humorist",
+ "hump",
+ "humpback",
+ "humus",
+ "hun",
+ "hunch",
+ "hunchback",
+ "hundreder",
+ "hundredfold",
+ "hundredth",
+ "hung",
+ "hunger",
+ "hunk",
+ "hunker",
+ "hunks",
+ "hunt",
+ "hunter",
+ "huntress",
+ "huntsman",
+ "hurdle",
+ "hurl",
+ "hurler",
+ "hurling",
+ "hurons",
+ "hurrah",
+ "hurries",
+ "hurt",
+ "hurter",
+ "hurtle",
+ "husband",
+ "husbandman",
+ "hush",
+ "husk",
+ "hussar",
+ "hussite",
+ "hustings",
+ "hustle",
+ "hut",
+ "hutch",
+ "hyacinth",
+ "hyades",
+ "hydra",
+ "hydrangea",
+ "hydrant",
+ "hydrargyrum",
+ "hydraulics",
+ "hydride",
+ "hydrocarbon",
+ "hydrocele",
+ "hydrocephalus",
+ "hydrochloride",
+ "hydrodynamics",
+ "hydrologist",
+ "hydromel",
+ "hydrophyte",
+ "hydrostatics",
+ "hydrothorax",
+ "hydroxide",
+ "hydrozoa",
+ "hydrus",
+ "hyena",
+ "hygienics",
+ "hygienist",
+ "hygrodeik",
+ "hymenium",
+ "hymenomycetes",
+ "hymenopter",
+ "hymenoptera",
+ "hymenopteran",
+ "hymn",
+ "hyoscyamus",
+ "hypanthium",
+ "hyperbaton",
+ "hyperbola",
+ "hyperbole",
+ "hyperborean",
+ "hypericum",
+ "hyperotreta",
+ "hypnotizer",
+ "hypo",
+ "hypoblast",
+ "hypochlorite",
+ "hypochondriac",
+ "hypochondrium",
+ "hypocrite",
+ "hypoderma",
+ "hypodermis",
+ "hypospadias",
+ "hypotenuse",
+ "hyracoidea",
+ "hyrax",
+ "hyson",
+ "hyssop",
+ "hysterics",
+ "iceman",
+ "iconoclast",
+ "idealist",
+ "ideologist",
+ "idiot",
+ "idler",
+ "idolater",
+ "idolizer",
+ "ignitor",
+ "ignoramus",
+ "ignorant",
+ "illustrator",
+ "imbiber",
+ "immigrant",
+ "impairer",
+ "impatient",
+ "impeller",
+ "impenitent",
+ "imperialist",
+ "impersonator",
+ "impertinent",
+ "importer",
+ "impostor",
+ "impotent",
+ "impressionist",
+ "improver",
+ "in",
+ "inamorata",
+ "inca",
+ "inciter",
+ "income",
+ "incontinent",
+ "independent",
+ "indexer",
+ "indicator",
+ "inducer",
+ "infanticide",
+ "infidel",
+ "inflater",
+ "informant",
+ "informer",
+ "inhabitant",
+ "inhaler",
+ "inheritor",
+ "initiator",
+ "injector",
+ "inlander",
+ "inn",
+ "innocent",
+ "innovator",
+ "inoculator",
+ "inquirer",
+ "inquisitor",
+ "insolvent",
+ "inspector",
+ "inspirer",
+ "instigator",
+ "instructor",
+ "instructress",
+ "instrumentalist",
+ "insulator",
+ "insurer",
+ "insurgent",
+ "insurrectionist",
+ "intensifier",
+ "intercessor",
+ "interlocutor",
+ "interloper",
+ "internationalist",
+ "interpreter",
+ "interrogator",
+ "interrupter",
+ "interviewer",
+ "intolerant",
+ "intriguer",
+ "intruder",
+ "invader",
+ "inventor",
+ "investigator",
+ "investor",
+ "iota",
+ "iowas",
+ "ipecac",
+ "iran",
+ "ire",
+ "iridescent",
+ "iridium",
+ "iris",
+ "irishman",
+ "irk",
+ "irksome",
+ "iron",
+ "ironclad",
+ "ironer",
+ "ironist",
+ "ironmonger",
+ "ironsides",
+ "ironware",
+ "ironwood",
+ "ironwork",
+ "iroquois",
+ "irregular",
+ "irreligionist",
+ "irresolute",
+ "irreverent",
+ "irritant",
+ "is",
+ "isabella",
+ "isatis",
+ "ischias",
+ "ischium",
+ "isinglass",
+ "islam",
+ "island",
+ "islander",
+ "isle",
+ "islet",
+ "ism",
+ "isobar",
+ "isomer",
+ "isopod",
+ "isopoda",
+ "isosceles",
+ "isospondyli",
+ "isotherm",
+ "israelite",
+ "issue",
+ "issuer",
+ "isthmus",
+ "it",
+ "itch",
+ "item",
+ "itinerant",
+ "its",
+ "ixodes",
+ "izzard",
+ "jabber",
+ "jack-o-lantern",
+ "jackpot",
+ "jackscrew",
+ "jacksnipe",
+ "jackstraw",
+ "jacob",
+ "jacobite",
+ "jaconet",
+ "jacquard",
+ "jade",
+ "jadeite",
+ "jaeger",
+ "jag",
+ "jagger",
+ "jaguar",
+ "jaguarondi",
+ "jail",
+ "jailer",
+ "jak",
+ "jakes",
+ "jalousie",
+ "jam",
+ "jamaica",
+ "jamaican",
+ "jamb",
+ "jan",
+ "jangle",
+ "jangling",
+ "janitor",
+ "jansenist",
+ "janus",
+ "japan",
+ "japanese",
+ "jape",
+ "japonica",
+ "jar",
+ "jargon",
+ "jasper",
+ "jaundice",
+ "jaunt",
+ "java",
+ "javanese",
+ "jaw",
+ "jean",
+ "jeer",
+ "jeerer",
+ "jeers",
+ "jehovah",
+ "jejune",
+ "jejunum",
+ "jell",
+ "jennet",
+ "jerboa",
+ "jeremiad",
+ "jerk",
+ "jerker",
+ "jerry-built",
+ "jerusalem",
+ "jest",
+ "jester",
+ "jesuit",
+ "jesus",
+ "jet",
+ "jet-black",
+ "jetsam",
+ "jettison",
+ "jew",
+ "jewbush",
+ "jewel",
+ "jeweler",
+ "jewess",
+ "jezebel",
+ "jib",
+ "jibe",
+ "jig",
+ "jigger",
+ "jiggle",
+ "jilt",
+ "jingle",
+ "jingling",
+ "jingo",
+ "jinn",
+ "jinnee",
+ "jinrikisha",
+ "job",
+ "jobber",
+ "jocular",
+ "jocund",
+ "jog",
+ "jogger",
+ "joggle",
+ "john",
+ "joiner",
+ "joint",
+ "jointer",
+ "jointure",
+ "jointuress",
+ "jointworm",
+ "joist",
+ "joke",
+ "joker",
+ "jolt",
+ "jonah",
+ "jongleur",
+ "jonquil",
+ "jordan",
+ "jorum",
+ "joseph",
+ "joss",
+ "jostle",
+ "jot",
+ "jotter",
+ "joule",
+ "jounce",
+ "journalist",
+ "journeyer",
+ "journeyman",
+ "joust",
+ "jove",
+ "jowl",
+ "jubilant",
+ "jubilee",
+ "judas",
+ "judge",
+ "judicature",
+ "jug",
+ "juggernaut",
+ "juggle",
+ "juggler",
+ "juggling",
+ "juglans",
+ "jugular",
+ "juice",
+ "jujube",
+ "juke",
+ "julep",
+ "julienne",
+ "jumble",
+ "jump",
+ "jumper",
+ "junco",
+ "juncture",
+ "june",
+ "jungle",
+ "junior",
+ "juniper",
+ "junk",
+ "junker",
+ "junket",
+ "junta",
+ "junto",
+ "jupiter",
+ "jurist",
+ "juror",
+ "juryman",
+ "just",
+ "justice",
+ "justiciar",
+ "justifier",
+ "jut",
+ "jute",
+ "jutes",
+ "juvenile",
+ "kayak",
+ "keeper",
+ "kerchief",
+ "kern",
+ "kicker",
+ "kidnaper",
+ "killer",
+ "kindergartner",
+ "kinsman",
+ "kisser",
+ "kite",
+ "knacker",
+ "knave",
+ "knavess",
+ "kneeler",
+ "knell",
+ "knitter",
+ "knocker",
+ "know-all",
+ "knower",
+ "kopeck",
+ "kurd",
+ "l",
+ "laborer",
+ "ladino",
+ "lag",
+ "laggard",
+ "laird",
+ "lamaist",
+ "lamb",
+ "lame",
+ "lamenter",
+ "lamplighter",
+ "lancer",
+ "lander",
+ "landlubber",
+ "landman",
+ "landsman",
+ "languisher",
+ "larcener",
+ "larcenist",
+ "lasher",
+ "lass",
+ "lates",
+ "latex",
+ "lath",
+ "lathe",
+ "lather",
+ "latinist",
+ "latitude",
+ "latter",
+ "lattice",
+ "latticework",
+ "laud",
+ "laudanum",
+ "laudator",
+ "lauder",
+ "laugh",
+ "laugher",
+ "laughingstock",
+ "laughter",
+ "launce",
+ "launch",
+ "launder",
+ "laundress",
+ "laundryman",
+ "laurel",
+ "laurus",
+ "lava",
+ "lave",
+ "lavender",
+ "laver",
+ "lavisher",
+ "law",
+ "lawbreaker",
+ "lawgiver",
+ "lawmaker",
+ "lawn",
+ "lawsuit",
+ "lawyer",
+ "lax",
+ "layer",
+ "layman",
+ "lazar",
+ "lazaret",
+ "lazaretto",
+ "laze",
+ "lazuli",
+ "lazybones",
+ "lea",
+ "leach",
+ "lead",
+ "leader",
+ "leadwort",
+ "leaf",
+ "leaflet",
+ "leafstalk",
+ "league",
+ "leak",
+ "lean",
+ "lean-to",
+ "leap",
+ "leaper",
+ "leapfrog",
+ "lear",
+ "learn",
+ "learner",
+ "lease",
+ "leasehold",
+ "leaseholder",
+ "leash",
+ "least",
+ "leastways",
+ "leather",
+ "leatherback",
+ "leatherette",
+ "leatherneck",
+ "leatherwood",
+ "leave",
+ "leaver",
+ "leaves",
+ "leavings",
+ "lech",
+ "lecher",
+ "lectern",
+ "lector",
+ "lecture",
+ "lecturer",
+ "ledge",
+ "ledger",
+ "lee",
+ "leech",
+ "leek",
+ "leer",
+ "lees",
+ "leeward",
+ "left",
+ "left-hand",
+ "leg",
+ "legatee",
+ "legato",
+ "legend",
+ "leger",
+ "leghorn",
+ "legislator",
+ "legislature",
+ "legume",
+ "leipoa",
+ "leister",
+ "leisure",
+ "leitmotif",
+ "lemma",
+ "lemniscus",
+ "lemon",
+ "lemonade",
+ "lemur",
+ "lemuroidea",
+ "lena",
+ "lend",
+ "lender",
+ "lendes",
+ "lends",
+ "length",
+ "lengthways",
+ "lenient",
+ "lens",
+ "lent",
+ "lententide",
+ "lenticel",
+ "lenticular",
+ "lentiform",
+ "lentigo",
+ "lentil",
+ "lentisk",
+ "lento",
+ "leo",
+ "leon",
+ "leontodon",
+ "leopard",
+ "lepas",
+ "leper",
+ "lepidolite",
+ "lepidoptera",
+ "lepidote",
+ "les",
+ "less",
+ "lessee",
+ "lesser",
+ "lesses",
+ "lesson",
+ "lessor",
+ "lest",
+ "let",
+ "letch",
+ "lethe",
+ "letter",
+ "letterer",
+ "letterpress",
+ "lettuce",
+ "letup",
+ "leucadendron",
+ "leucocyte",
+ "leucoma",
+ "levant",
+ "levanter",
+ "levator",
+ "levee",
+ "level",
+ "leveler",
+ "leveling",
+ "lever",
+ "leveret",
+ "leviathan",
+ "levite",
+ "leviticus",
+ "lewd",
+ "lewis",
+ "lexicographer",
+ "lexicologist",
+ "lexicon",
+ "li",
+ "liana",
+ "liar",
+ "libel",
+ "libeler",
+ "liberalist",
+ "liberator",
+ "libra",
+ "librettist",
+ "libretto",
+ "libyan",
+ "lice",
+ "license",
+ "licensee",
+ "licenser",
+ "lichi",
+ "licit",
+ "lick",
+ "licorice",
+ "lie",
+ "lief",
+ "liege",
+ "liegeman",
+ "lieger",
+ "lier",
+ "lieu",
+ "lieutenant",
+ "life",
+ "lifeblood",
+ "lifeboat",
+ "lifelong",
+ "lifetime",
+ "lift",
+ "lifter",
+ "ligan",
+ "ligature",
+ "light",
+ "lighter",
+ "lighterman",
+ "lighthouse",
+ "lights",
+ "lightsome",
+ "lightwood",
+ "lignite",
+ "ligule",
+ "like",
+ "likelihood",
+ "lilac",
+ "lilt",
+ "lima",
+ "liman",
+ "limax",
+ "limb",
+ "limber",
+ "limbo",
+ "limbus",
+ "lime",
+ "limekiln",
+ "limewater",
+ "limit",
+ "limiter",
+ "limn",
+ "limner",
+ "limonite",
+ "limp",
+ "limper",
+ "limpet",
+ "limulus",
+ "lind",
+ "linear",
+ "lineman",
+ "liner",
+ "lingam",
+ "linger",
+ "lingerer",
+ "lingo",
+ "lingua",
+ "linguist",
+ "linguistics",
+ "link",
+ "linkman",
+ "linnean",
+ "linnet",
+ "linoleum",
+ "linstock",
+ "lint",
+ "lintel",
+ "lintwhite",
+ "linum",
+ "lionet",
+ "lip",
+ "lipogram",
+ "lipoma",
+ "liquescent",
+ "liqueur",
+ "liquidambar",
+ "liquidator",
+ "liquor",
+ "liquorice",
+ "lira",
+ "liriodendron",
+ "lisbon",
+ "lisle",
+ "lisp",
+ "lisper",
+ "liss",
+ "lissom",
+ "lissome",
+ "list",
+ "listener",
+ "lister",
+ "lit",
+ "litchi",
+ "lite",
+ "liter",
+ "literati",
+ "literatim",
+ "literature",
+ "lithe",
+ "lither",
+ "lithesome",
+ "lithium",
+ "lithoglyptics",
+ "lithograph",
+ "lithographer",
+ "lithophyte",
+ "litigant",
+ "litigator",
+ "litmus",
+ "litotes",
+ "litre",
+ "litter",
+ "litterateur",
+ "little",
+ "littorina",
+ "littress",
+ "liturgics",
+ "liturgist",
+ "live-forever",
+ "livelihood",
+ "livelong",
+ "liver",
+ "liverleaf",
+ "liverwort",
+ "liveryman",
+ "lives",
+ "liza",
+ "lizard",
+ "llama",
+ "llano",
+ "lloyds",
+ "loach",
+ "load",
+ "loader",
+ "loadstar",
+ "loaf",
+ "loafer",
+ "loam",
+ "loan",
+ "loath",
+ "loathe",
+ "loather",
+ "loathsome",
+ "loaves",
+ "lob",
+ "lobar",
+ "lobbyist",
+ "lobe",
+ "lobscouse",
+ "lobster",
+ "lobular",
+ "lobule",
+ "lobworm",
+ "locale",
+ "locator",
+ "loch",
+ "lock",
+ "locker",
+ "locket",
+ "lockjaw",
+ "lockman",
+ "lockout",
+ "locksmith",
+ "lockup",
+ "loco",
+ "locomotor",
+ "locule",
+ "loculus",
+ "locus",
+ "locust",
+ "locusta",
+ "lode",
+ "lodestar",
+ "lodge",
+ "lodger",
+ "loess",
+ "loft",
+ "log",
+ "logan",
+ "logarithm",
+ "loge",
+ "logger",
+ "loggerhead",
+ "loggerheads",
+ "logics",
+ "logistics",
+ "logogram",
+ "logomachist",
+ "logos",
+ "logotype",
+ "logroll",
+ "logrolling",
+ "logwood",
+ "loir",
+ "loiter",
+ "loiterer",
+ "loki",
+ "loligo",
+ "loll",
+ "lollipop",
+ "lollop",
+ "lombard",
+ "london",
+ "londoner",
+ "lonesome",
+ "long",
+ "longan",
+ "longboat",
+ "longbow",
+ "longer",
+ "longhand",
+ "longhorn",
+ "longicorn",
+ "longitude",
+ "longlegs",
+ "longshoreman",
+ "longways",
+ "loo",
+ "look",
+ "lookdown",
+ "looker",
+ "lookout",
+ "loom",
+ "loon",
+ "loop",
+ "looper",
+ "loophole",
+ "loos",
+ "loosestrife",
+ "loot",
+ "looter",
+ "lop",
+ "lope",
+ "lopper",
+ "loquat",
+ "lord",
+ "lore",
+ "lorgnette",
+ "lorica",
+ "loricata",
+ "lorikeet",
+ "loser",
+ "loss",
+ "lost",
+ "lot",
+ "loth",
+ "lothario",
+ "lotto",
+ "lotus",
+ "lotus-eater",
+ "loud",
+ "lough",
+ "lounge",
+ "lounger",
+ "lour",
+ "louse",
+ "lout",
+ "louver",
+ "louvre",
+ "love",
+ "lovelorn",
+ "lover",
+ "lovesome",
+ "low",
+ "low-pressure",
+ "lowborn",
+ "lower",
+ "lowermost",
+ "lowland",
+ "lowlander",
+ "loyalist",
+ "lozenge",
+ "lu",
+ "lubber",
+ "lubricant",
+ "lubricator",
+ "luce",
+ "lucent",
+ "lucerne",
+ "lucifer",
+ "luck",
+ "lucre",
+ "luculent",
+ "luddite",
+ "lues",
+ "luff",
+ "lug",
+ "lugger",
+ "lugsail",
+ "lugworm",
+ "luke",
+ "lukewarm",
+ "lull",
+ "lumbago",
+ "lumbar",
+ "lumber",
+ "lumberman",
+ "lummox",
+ "lump",
+ "lumper",
+ "lumpsucker",
+ "luna",
+ "lunar",
+ "lunch",
+ "luncheon",
+ "lunette",
+ "lung",
+ "lunge",
+ "lungis",
+ "lunisolar",
+ "lunt",
+ "lunula",
+ "lunule",
+ "lupus",
+ "lurch",
+ "lurcher",
+ "lure",
+ "lurk",
+ "lurker",
+ "lush",
+ "lust",
+ "luster",
+ "lustre",
+ "lustrum",
+ "lutanist",
+ "lute",
+ "lutenist",
+ "lutheran",
+ "lutist",
+ "lux",
+ "luxe",
+ "luxuriant",
+ "lycanthrope",
+ "lyceum",
+ "lychee",
+ "lychnis",
+ "lycoperdon",
+ "lycopod",
+ "lycopodium",
+ "lye",
+ "lygodium",
+ "lymph",
+ "lymphadenoma",
+ "lymphoma",
+ "lynch",
+ "lynx",
+ "lyra",
+ "lyre",
+ "lyrist",
+ "lyssa",
+ "mace",
+ "macer",
+ "machete",
+ "machinator",
+ "machinist",
+ "macho",
+ "macintosh",
+ "mackerel",
+ "mackinaw",
+ "mackintosh",
+ "mackle",
+ "macrobiotics",
+ "macrocosm",
+ "macron",
+ "macropus",
+ "macrosporangium",
+ "macrospore",
+ "macula",
+ "macule",
+ "mad",
+ "madam",
+ "madame",
+ "madcap",
+ "madder",
+ "madderwort",
+ "made",
+ "madeira",
+ "mademoiselle",
+ "madhouse",
+ "madman",
+ "madnep",
+ "madonna",
+ "madoqua",
+ "madrepore",
+ "madrigalist",
+ "madwort",
+ "maelstrom",
+ "maestro",
+ "magenta",
+ "maggot",
+ "magi",
+ "magilp",
+ "magistrature",
+ "magma",
+ "magnesite",
+ "magnesium",
+ "magnet",
+ "magnetics",
+ "magnetite",
+ "magnetograph",
+ "magnificat",
+ "magnificent",
+ "magnifico",
+ "magnifier",
+ "magniloquent",
+ "magnitude",
+ "magnum",
+ "magpie",
+ "magyar",
+ "maha",
+ "mahabharatam",
+ "maharajah",
+ "mahdi",
+ "mahoe",
+ "mahound",
+ "mahout",
+ "mahratta",
+ "maidenhair",
+ "maidenhead",
+ "maidenhood",
+ "maidhood",
+ "maidservant",
+ "maiger",
+ "maigre",
+ "mail",
+ "mailing",
+ "maim",
+ "mainland",
+ "mainmast",
+ "mains",
+ "mainsail",
+ "mainsheet",
+ "maintainer",
+ "majolica",
+ "major",
+ "major-domo",
+ "majuscule",
+ "make",
+ "make-believe",
+ "make-peace",
+ "make-up",
+ "maker",
+ "makeshift",
+ "makeweight",
+ "malacca",
+ "malachite",
+ "malacologist",
+ "malacopterygii",
+ "malacostraca",
+ "maladroit",
+ "malaga",
+ "malapropos",
+ "malar",
+ "malayalam",
+ "malayan",
+ "malcontent",
+ "male",
+ "maledict",
+ "malefactor",
+ "maleficent",
+ "maleo",
+ "malevolent",
+ "malice",
+ "malign",
+ "malignant",
+ "maligner",
+ "malinger",
+ "malingerer",
+ "mall",
+ "mallard",
+ "mallet",
+ "malleus",
+ "mallophaga",
+ "mallotus",
+ "mallow",
+ "mallows",
+ "malodor",
+ "malpractice",
+ "malt",
+ "maltese",
+ "maltha",
+ "maltman",
+ "maltreat",
+ "maltster",
+ "mama",
+ "mamma",
+ "mammalogist",
+ "mammee",
+ "mammilla",
+ "mammon",
+ "mammoth",
+ "man",
+ "man-eater",
+ "manacle",
+ "manager",
+ "manatee",
+ "manchu",
+ "mandamus",
+ "mandator",
+ "mandibular",
+ "mandioc",
+ "mandioca",
+ "mandragora",
+ "mandrake",
+ "mandrel",
+ "mandrill",
+ "manes",
+ "maneuver",
+ "maneuverer",
+ "manganese",
+ "manganite",
+ "mange",
+ "mangel-wurzel",
+ "manger",
+ "mangle",
+ "mangler",
+ "mango",
+ "mangonel",
+ "mangrove",
+ "manhole",
+ "manhood",
+ "maniac",
+ "manichean",
+ "manichee",
+ "manicure",
+ "manifest",
+ "manifesto",
+ "manifold",
+ "manihot",
+ "manila",
+ "manilla",
+ "manioc",
+ "manipulator",
+ "manis",
+ "mankind",
+ "manna",
+ "manner",
+ "manor",
+ "manse",
+ "manservant",
+ "manslaughter",
+ "manslayer",
+ "manta",
+ "mantel",
+ "mantelet",
+ "mantelpiece",
+ "mantilla",
+ "mantis",
+ "mantissa",
+ "mantle",
+ "mantlet",
+ "mantling",
+ "mantra",
+ "mantrap",
+ "mantua",
+ "manubrium",
+ "manufacture",
+ "manufacturer",
+ "manul",
+ "manumit",
+ "manure",
+ "manus",
+ "manuscript",
+ "manx",
+ "manzanita",
+ "maori",
+ "map",
+ "maple",
+ "mar",
+ "mara",
+ "marabou",
+ "marabout",
+ "maranta",
+ "maraschino",
+ "marasmus",
+ "maraud",
+ "marauder",
+ "marble",
+ "marbling",
+ "marc",
+ "march",
+ "marcher",
+ "mare",
+ "marge",
+ "margosa",
+ "margrave",
+ "marguerite",
+ "marigold",
+ "marimba",
+ "marinade",
+ "mariner",
+ "marionette",
+ "maritime",
+ "marjoram",
+ "mark",
+ "marker",
+ "market",
+ "marketer",
+ "markhoor",
+ "marksman",
+ "marl",
+ "marlite",
+ "marmalade",
+ "marmorean",
+ "marmoset",
+ "marmot",
+ "maroon",
+ "marque",
+ "marquee",
+ "marquess",
+ "marquis",
+ "marrow",
+ "marrubium",
+ "mars",
+ "marsala",
+ "marseilles",
+ "marsh",
+ "marshaling",
+ "marsupium",
+ "mart",
+ "martagon",
+ "martinet",
+ "martingale",
+ "martinmas",
+ "martyr",
+ "martyrdom",
+ "marvel",
+ "mascot",
+ "maser",
+ "mash",
+ "masher",
+ "mask",
+ "masker",
+ "mason",
+ "masora",
+ "masorite",
+ "masque",
+ "masquerade",
+ "masquerader",
+ "mass",
+ "massacre",
+ "massasauga",
+ "masser",
+ "masseter",
+ "masseur",
+ "masseuse",
+ "massicot",
+ "mast",
+ "master",
+ "masterpiece",
+ "masterwort",
+ "masthead",
+ "mastiff",
+ "mastodon",
+ "mat",
+ "matador",
+ "match",
+ "matcher",
+ "matchlock",
+ "matchmaker",
+ "matelote",
+ "mater",
+ "materialist",
+ "math",
+ "mathematics",
+ "matriarch",
+ "matricide",
+ "matrix",
+ "matron",
+ "matt",
+ "matte",
+ "matter",
+ "matter-of-fact",
+ "mattock",
+ "mattress",
+ "mature",
+ "maturer",
+ "matzoth",
+ "maul",
+ "mauling",
+ "maund",
+ "maunder",
+ "mausoleum",
+ "mauve",
+ "maverick",
+ "mavis",
+ "maw",
+ "maxilla",
+ "maxim",
+ "maximum",
+ "maya",
+ "maybe",
+ "mayflower",
+ "mayhap",
+ "mayhem",
+ "mayor",
+ "mayoress",
+ "maypole",
+ "maypop",
+ "mazama",
+ "maze",
+ "mazer",
+ "mazurka",
+ "me",
+ "mead",
+ "meadow",
+ "meager",
+ "meagre",
+ "mealies",
+ "mealtime",
+ "mean",
+ "meander",
+ "meant",
+ "meantime",
+ "meanwhile",
+ "measles",
+ "measure",
+ "measurer",
+ "meat",
+ "meatus",
+ "mechanics",
+ "mechanist",
+ "meconium",
+ "medalist",
+ "meddle",
+ "meddler",
+ "meddlesome",
+ "meddling",
+ "mediant",
+ "mediastinum",
+ "mediator",
+ "mediatrix",
+ "medics",
+ "mediocre",
+ "mediterranean",
+ "medium",
+ "medlar",
+ "medulla",
+ "medusa",
+ "meek",
+ "meerkat",
+ "meerschaum",
+ "meet",
+ "meeter",
+ "meetinghouse",
+ "megachile",
+ "megalith",
+ "megalocyte",
+ "megalopolis",
+ "megalosaur",
+ "megalosaurus",
+ "megapode",
+ "megathere",
+ "megatherium",
+ "megilp",
+ "megohm",
+ "megrim",
+ "melastoma",
+ "melchite",
+ "meleagris",
+ "melena",
+ "melilot",
+ "melissa",
+ "mellow",
+ "melodrama",
+ "melon",
+ "melt",
+ "melter",
+ "member",
+ "memento",
+ "memoir",
+ "memorandum",
+ "menace",
+ "menagerie",
+ "mend",
+ "mender",
+ "mendicant",
+ "mends",
+ "menhir",
+ "meninges",
+ "meniscus",
+ "mennonite",
+ "menopause",
+ "menses",
+ "menstruum",
+ "mentha",
+ "mentor",
+ "mentum",
+ "menu",
+ "meow",
+ "mercantile",
+ "mercer",
+ "merchandiser",
+ "merchant",
+ "merchantman",
+ "mere",
+ "merganser",
+ "merge",
+ "merger",
+ "mericarp",
+ "meringue",
+ "merino",
+ "meristem",
+ "merit",
+ "merl",
+ "merle",
+ "merlon",
+ "merman",
+ "merostomata",
+ "merry-go-round",
+ "merrymaker",
+ "mesa",
+ "mesdames",
+ "mesembryanthemum",
+ "mesencephalon",
+ "mesh",
+ "mesmerist",
+ "mesmerizer",
+ "mesoblast",
+ "mesocarp",
+ "mesocolon",
+ "mesoderm",
+ "mesohippus",
+ "meson",
+ "mesothelium",
+ "mesquit",
+ "mesquite",
+ "mess",
+ "messenger",
+ "messiah",
+ "messidor",
+ "messieurs",
+ "mest",
+ "mester",
+ "mestizo",
+ "met",
+ "metabola",
+ "metabolite",
+ "metacarpus",
+ "metallurgist",
+ "metamere",
+ "metaphor",
+ "metaphysics",
+ "metatarsus",
+ "metazoa",
+ "metazoan",
+ "mete",
+ "metencephalon",
+ "meteor",
+ "meteorite",
+ "meteorologist",
+ "meter",
+ "meth",
+ "method",
+ "methodist",
+ "metre",
+ "metronome",
+ "metropolis",
+ "metropolitan",
+ "mettle",
+ "mettlesome",
+ "mew",
+ "mewl",
+ "mews",
+ "mexican",
+ "mezereon",
+ "mezuzoth",
+ "mezzo",
+ "mezzo-relievo",
+ "mezzo-rilievo",
+ "mezzo-soprano",
+ "mezzotint",
+ "mi",
+ "miamis",
+ "miasm",
+ "miaul",
+ "mica",
+ "mice",
+ "michaelmas",
+ "mickle",
+ "micmacs",
+ "microbe",
+ "micrococcus",
+ "microcosm",
+ "microcyte",
+ "microfarad",
+ "micron",
+ "micropyle",
+ "microscopist",
+ "microsporangium",
+ "microspore",
+ "microvolt",
+ "midas",
+ "middle",
+ "middleman",
+ "middlemost",
+ "middler",
+ "middling",
+ "middlings",
+ "midgard",
+ "midge",
+ "midget",
+ "midland",
+ "midmost",
+ "midnight",
+ "midrash",
+ "midrib",
+ "midriff",
+ "midshipman",
+ "midships",
+ "midst",
+ "midsummer",
+ "midweek",
+ "midwife",
+ "midwinter",
+ "miff",
+ "might",
+ "mignonette",
+ "migrant",
+ "mikado",
+ "milanese",
+ "milch",
+ "mild",
+ "mildew",
+ "mile",
+ "milepost",
+ "milfoil",
+ "militant",
+ "militarist",
+ "militiaman",
+ "milk",
+ "milker",
+ "milkman",
+ "milksop",
+ "milkwort",
+ "mill",
+ "millboard",
+ "milldam",
+ "millennium",
+ "miller",
+ "millerite",
+ "millet",
+ "milliard",
+ "milligram",
+ "millilitre",
+ "millimetre",
+ "milliner",
+ "milling",
+ "millionaire",
+ "millionairess",
+ "millionth",
+ "millwork",
+ "millwright",
+ "milt",
+ "milvus",
+ "mime",
+ "mimeograph",
+ "mimicker",
+ "mimosa",
+ "mina",
+ "minaret",
+ "mince",
+ "mincer",
+ "mind",
+ "minder",
+ "miner",
+ "mineralogist",
+ "minerva",
+ "minge",
+ "mingle",
+ "mingle-mangle",
+ "miniature",
+ "miniaturist",
+ "minibus",
+ "minim",
+ "minimum",
+ "minimus",
+ "minister",
+ "ministrant",
+ "minium",
+ "miniver",
+ "mink",
+ "minnow",
+ "minor",
+ "minos",
+ "minotaur",
+ "minster",
+ "minstrel",
+ "mint",
+ "minter",
+ "minuend",
+ "minuet",
+ "minus",
+ "minuscule",
+ "minute",
+ "minuteman",
+ "minx",
+ "mirabilis",
+ "miracle",
+ "mire",
+ "mirror",
+ "mirth",
+ "mite",
+ "miter",
+ "miterwort",
+ "mithras",
+ "mitre",
+ "mitt",
+ "mix",
+ "mixer",
+ "mixture",
+ "mizzenmast",
+ "mizzle",
+ "mnemonics",
+ "mnemosyne",
+ "mo",
+ "moa",
+ "moan",
+ "moat",
+ "mob",
+ "mobcap",
+ "mobile",
+ "mocha",
+ "mock",
+ "mocker",
+ "mode",
+ "model",
+ "modeler",
+ "modeling",
+ "moder",
+ "moderato",
+ "moderator",
+ "modern",
+ "modernist",
+ "modest",
+ "modicum",
+ "modifier",
+ "modiolus",
+ "modiste",
+ "modular",
+ "module",
+ "modulus",
+ "mogul",
+ "mohair",
+ "mohammedan",
+ "mohawk",
+ "mohicans",
+ "moho",
+ "moil",
+ "moire",
+ "moist",
+ "moistener",
+ "moisture",
+ "moke",
+ "mola",
+ "molar",
+ "molasses",
+ "mold",
+ "moldboard",
+ "molder",
+ "mole",
+ "molech",
+ "molecular",
+ "molecule",
+ "molehill",
+ "molest",
+ "molester",
+ "moll",
+ "mollah",
+ "molle",
+ "mollusc",
+ "mollusca",
+ "molluscum",
+ "mollusk",
+ "moloch",
+ "molt",
+ "molto",
+ "molybdenite",
+ "molybdenum",
+ "momentum",
+ "momot",
+ "momus",
+ "mona",
+ "monad",
+ "monarch",
+ "monarchess",
+ "monarchist",
+ "monas",
+ "monera",
+ "moneran",
+ "moneron",
+ "moneyer",
+ "moneywort",
+ "monger",
+ "mongolians",
+ "mongols",
+ "mongrel",
+ "monitor",
+ "monk",
+ "monkshood",
+ "mono",
+ "monocarp",
+ "monochrome",
+ "monocle",
+ "monocotyledon",
+ "monogamist",
+ "monogram",
+ "monograph",
+ "monolith",
+ "monologist",
+ "monologue",
+ "monomaniac",
+ "monophysite",
+ "monopolist",
+ "monopolizer",
+ "monotheist",
+ "monotremata",
+ "monotreme",
+ "monotropa",
+ "monotype",
+ "monovalent",
+ "monoxide",
+ "monsieur",
+ "monsoon",
+ "monster",
+ "montaigne",
+ "monte",
+ "montgolfier",
+ "month",
+ "moo",
+ "mood",
+ "moolah",
+ "moon",
+ "moonbeam",
+ "moonflower",
+ "moonie",
+ "moonlight",
+ "moonlit",
+ "moonshiner",
+ "moonstruck",
+ "moonwort",
+ "moor",
+ "mooress",
+ "moorland",
+ "moosewood",
+ "moot",
+ "mooter",
+ "mop",
+ "mopboard",
+ "mope",
+ "moppet",
+ "moquette",
+ "morale",
+ "moraler",
+ "moralist",
+ "morass",
+ "morceau",
+ "mordant",
+ "more",
+ "morel",
+ "morello",
+ "moreover",
+ "moresque",
+ "morgue",
+ "moribund",
+ "mormon",
+ "morn",
+ "moro",
+ "moroccan",
+ "morocco",
+ "morpheus",
+ "morris",
+ "morrow",
+ "morse",
+ "morsel",
+ "mortar",
+ "mortgagee",
+ "mortgager",
+ "mortgagor",
+ "morula",
+ "morus",
+ "moselle",
+ "moses",
+ "moslem",
+ "mosque",
+ "mosquito",
+ "moss",
+ "moss-grown",
+ "mossback",
+ "most",
+ "mot",
+ "mote",
+ "motet",
+ "moth",
+ "mother",
+ "mother-in-law",
+ "mother-of-pearl",
+ "motherhood",
+ "motherland",
+ "motherwort",
+ "motif",
+ "motile",
+ "motmot",
+ "motor",
+ "motorman",
+ "mottle",
+ "motto",
+ "mouflon",
+ "mould",
+ "mouldboard",
+ "moulder",
+ "moult",
+ "mound",
+ "mount",
+ "mountaineer",
+ "mountebank",
+ "mounter",
+ "mourn",
+ "mourner",
+ "mouse",
+ "mouser",
+ "moustache",
+ "mouth",
+ "mouthpiece",
+ "move",
+ "mover",
+ "mow",
+ "mower",
+ "mown",
+ "moxie",
+ "much",
+ "muck",
+ "muckle",
+ "mucopurulent",
+ "mucor",
+ "mucus",
+ "mud",
+ "muddle",
+ "muff",
+ "muffle",
+ "muffler",
+ "mufti",
+ "mug",
+ "mugil",
+ "mugwort",
+ "mugwump",
+ "muhammadan",
+ "muhammedan",
+ "muharram",
+ "mulatto",
+ "mulch",
+ "mulct",
+ "mule",
+ "muleteer",
+ "mull",
+ "mulla",
+ "mullah",
+ "muller",
+ "mullet",
+ "multicellular",
+ "multicolor",
+ "multiform",
+ "multipartite",
+ "multiple",
+ "multiplex",
+ "multiplicand",
+ "multiplier",
+ "multipotent",
+ "multitude",
+ "multivalent",
+ "mum",
+ "mumble",
+ "mumbler",
+ "mumbling",
+ "mummer",
+ "mummichog",
+ "mumps",
+ "munch",
+ "muncher",
+ "mung",
+ "munificent",
+ "munjeet",
+ "muntjac",
+ "murder",
+ "murderer",
+ "murderess",
+ "murk",
+ "murmur",
+ "murmurer",
+ "murre",
+ "mus",
+ "musa",
+ "musca",
+ "muscadel",
+ "muscat",
+ "muscatel",
+ "musci",
+ "muscle",
+ "muscling",
+ "muscovite",
+ "muscular",
+ "musculature",
+ "muse",
+ "muser",
+ "musette",
+ "museum",
+ "mush",
+ "mushroom",
+ "musk",
+ "muskat",
+ "muskellunge",
+ "musket",
+ "musketeer",
+ "muskmelon",
+ "muskogees",
+ "muskrat",
+ "muskwood",
+ "muslim",
+ "musquash",
+ "muss",
+ "mussel",
+ "must",
+ "mustache",
+ "mustang",
+ "mustard",
+ "muster",
+ "mute",
+ "mutilator",
+ "mutineer",
+ "mutter",
+ "mutterer",
+ "mutton",
+ "muzzle",
+ "mya",
+ "mycelium",
+ "mycologist",
+ "myelencephala",
+ "myelencephalon",
+ "mylodon",
+ "myna",
+ "myocardium",
+ "myogram",
+ "myoma",
+ "myomorpha",
+ "myope",
+ "myosotis",
+ "myriad",
+ "myriagram",
+ "myriametre",
+ "myriapod",
+ "myriapoda",
+ "myrica",
+ "myrmidon",
+ "myrobalan",
+ "myroxylon",
+ "myrrh",
+ "myrtle",
+ "myth",
+ "mythologist",
+ "mytilus",
+ "myxoma",
+ "n",
+ "nabob",
+ "nailer",
+ "name",
+ "namer",
+ "narrator",
+ "narrower",
+ "nationalist",
+ "naturalist",
+ "naturist",
+ "navigator",
+ "necromancer",
+ "needer",
+ "needlewoman",
+ "neglecter",
+ "negotiator",
+ "negotiatrix",
+ "negress",
+ "neighbor",
+ "neologist",
+ "neoplatonist",
+ "nephew",
+ "nepotist",
+ "neurologist",
+ "neuter",
+ "neutralist",
+ "newcomer",
+ "newsman",
+ "newsmonger",
+ "nibbler",
+ "niece",
+ "niggard",
+ "niggler",
+ "nihilist",
+ "nincompoop",
+ "nipper",
+ "no",
+ "nobleman",
+ "nominator",
+ "nominee",
+ "nonconformist",
+ "nonmember",
+ "nonpareil",
+ "nonresident",
+ "nonresistant",
+ "noodle",
+ "norman",
+ "northerner",
+ "noticer",
+ "novice",
+ "ns",
+ "nt",
+ "nullifier",
+ "numberer",
+ "numerator",
+ "nun",
+ "nurse",
+ "nurser",
+ "nurseryman",
+ "nursling",
+ "o",
+ "oaf",
+ "oak",
+ "oakum",
+ "oar",
+ "oatcake",
+ "oath",
+ "obeah",
+ "obedient",
+ "obelisk",
+ "obese",
+ "obi",
+ "obit",
+ "object",
+ "objector",
+ "obligato",
+ "oblige",
+ "obliger",
+ "oblique",
+ "oblong",
+ "oboe",
+ "oboist",
+ "obolus",
+ "obscurantist",
+ "obscure",
+ "obscurer",
+ "observant",
+ "observe",
+ "observer",
+ "obsess",
+ "obsolesce",
+ "obsolescent",
+ "obsolete",
+ "obstacle",
+ "obstetrics",
+ "obstruct",
+ "obstructer",
+ "obstructionist",
+ "obstruent",
+ "obtrude",
+ "obtund",
+ "obturator",
+ "obtuse",
+ "obverse",
+ "oca",
+ "occident",
+ "occidentals",
+ "occiput",
+ "occlude",
+ "occult",
+ "occultist",
+ "occupant",
+ "occupier",
+ "occur",
+ "occurrent",
+ "ocean",
+ "oceanus",
+ "ocellus",
+ "ocelot",
+ "ocher",
+ "ochre",
+ "octad",
+ "octagon",
+ "octahedron",
+ "octangular",
+ "octant",
+ "octave",
+ "octavo",
+ "octet",
+ "october",
+ "octopod",
+ "octopoda",
+ "octopus",
+ "octoroon",
+ "octroi",
+ "octuple",
+ "ocular",
+ "oculist",
+ "oculomotor",
+ "oculus",
+ "od",
+ "odalisque",
+ "odd",
+ "odds",
+ "ode",
+ "odist",
+ "odium",
+ "odonata",
+ "odor",
+ "ods",
+ "off",
+ "offend",
+ "offender",
+ "offense",
+ "offer",
+ "offerer",
+ "offhand",
+ "office",
+ "officeholder",
+ "officer",
+ "officiant",
+ "offset",
+ "offshoot",
+ "offshore",
+ "oft",
+ "oftentimes",
+ "ofttimes",
+ "ogdoad",
+ "ogee",
+ "ogle",
+ "ogler",
+ "ogre",
+ "ogress",
+ "oh",
+ "ohm",
+ "oil",
+ "oilbird",
+ "oilcloth",
+ "oiler",
+ "oilman",
+ "ojibways",
+ "oker",
+ "okra",
+ "old",
+ "oldster",
+ "olea",
+ "oleander",
+ "oleaster",
+ "olecranon",
+ "olibanum",
+ "oligarch",
+ "oligoclase",
+ "olivenite",
+ "oliver",
+ "olla",
+ "olympiad",
+ "omahas",
+ "omasum",
+ "omega",
+ "omelet",
+ "omentum",
+ "omit",
+ "ommatidium",
+ "omnibus",
+ "omnipotent",
+ "omnipresent",
+ "omniscient",
+ "omnium-gatherum",
+ "omphalocele",
+ "omphalos",
+ "on",
+ "onager",
+ "once",
+ "oncidium",
+ "one",
+ "one-horse",
+ "oneidas",
+ "ones",
+ "onomasticon",
+ "onondagas",
+ "onrush",
+ "onset",
+ "onslaught",
+ "onus",
+ "onward",
+ "onwards",
+ "onychophora",
+ "onyx",
+ "oolong",
+ "ooze",
+ "opah",
+ "opalesce",
+ "opalescent",
+ "opaque",
+ "open-air",
+ "openbill",
+ "opener",
+ "openwork",
+ "opera",
+ "operand",
+ "operant",
+ "operator",
+ "opercula",
+ "operculum",
+ "operetta",
+ "ophiophagus",
+ "ophiuchus",
+ "ophiurida",
+ "ophiuroidea",
+ "ophryon",
+ "ophthalmologist",
+ "opisthotonos",
+ "opium",
+ "opopanax",
+ "opossum",
+ "opponent",
+ "opportune",
+ "opportunist",
+ "opposer",
+ "opposite",
+ "oppress",
+ "oppressor",
+ "opprobrium",
+ "oppugn",
+ "optics",
+ "optimist",
+ "opulent",
+ "opus",
+ "or",
+ "ora",
+ "orach",
+ "orache",
+ "oracle",
+ "oracular",
+ "orang",
+ "orange",
+ "orangeade",
+ "orangeman",
+ "orator",
+ "oratorio",
+ "orb",
+ "orbicular",
+ "orbit",
+ "orchard",
+ "orchestra",
+ "orchil",
+ "orchis",
+ "ordainer",
+ "order",
+ "orderer",
+ "ordinand",
+ "ordure",
+ "ore",
+ "oread",
+ "oreide",
+ "organ",
+ "organdie",
+ "organist",
+ "organizer",
+ "organon",
+ "orgasm",
+ "orgies",
+ "oriel",
+ "orient",
+ "orientalist",
+ "orifice",
+ "oriflamme",
+ "origanum",
+ "originator",
+ "oriole",
+ "orison",
+ "orleans",
+ "orlop",
+ "ormer",
+ "ormolu",
+ "ormuzd",
+ "ornithologist",
+ "ornithopoda",
+ "ornithorhynchus",
+ "oroide",
+ "orotund",
+ "orphan",
+ "orphanhood",
+ "orpheus",
+ "orris",
+ "orthoclase",
+ "orthodox",
+ "orthopedist",
+ "orthoptera",
+ "orthopteran",
+ "ortolan",
+ "ortygan",
+ "oryx",
+ "oryza",
+ "os",
+ "osages",
+ "osar",
+ "oscan",
+ "oscines",
+ "oscitant",
+ "osier",
+ "osiris",
+ "osmanli",
+ "osmium",
+ "osmund",
+ "oss",
+ "ossicle",
+ "ossiculum",
+ "ostensorium",
+ "osteoblast",
+ "osteoclast",
+ "osteologer",
+ "osteologist",
+ "osteoma",
+ "osteosarcoma",
+ "ostiole",
+ "ostler",
+ "ostracoda",
+ "ostracodermi",
+ "ostrea",
+ "ostrich",
+ "ostrogoth",
+ "other",
+ "otis",
+ "otologist",
+ "ottar",
+ "ottawas",
+ "otter",
+ "ottoman",
+ "oubliette",
+ "ounce",
+ "ouse",
+ "ousel",
+ "oust",
+ "ouster",
+ "ouzel",
+ "ova",
+ "ovenbird",
+ "oviduct",
+ "oviform",
+ "ovipositor",
+ "ovolo",
+ "ovular",
+ "ovule",
+ "ovum",
+ "owe",
+ "owl",
+ "owlet",
+ "own",
+ "owner",
+ "ox",
+ "oxalis",
+ "oxbow",
+ "oxeye",
+ "oxford",
+ "oxheart",
+ "oxide",
+ "oxidizer",
+ "oxime",
+ "oxlip",
+ "oxtongue",
+ "oxymoron",
+ "oyster",
+ "ozocerite",
+ "pack",
+ "packer",
+ "packet",
+ "packman",
+ "pact",
+ "pad",
+ "padder",
+ "paddle",
+ "paddock",
+ "pademelon",
+ "padlock",
+ "paducahs",
+ "pagan",
+ "pageant",
+ "pagoda",
+ "pahlevi",
+ "pahoehoe",
+ "paigle",
+ "pail",
+ "paillasse",
+ "pains",
+ "paint",
+ "painter",
+ "pair",
+ "palace",
+ "palaver",
+ "pale",
+ "paleface",
+ "paleographer",
+ "paleographist",
+ "paleolith",
+ "paleontologist",
+ "palestra",
+ "palette",
+ "palgrave",
+ "pali",
+ "palimpsest",
+ "palindrome",
+ "paling",
+ "palinurus",
+ "palisade",
+ "pall",
+ "pall-mall",
+ "palladium",
+ "pallas",
+ "pallbearer",
+ "pallet",
+ "palliasse",
+ "pallium",
+ "pallor",
+ "palm",
+ "palmar",
+ "palmer",
+ "palmetto",
+ "palmister",
+ "palmyra",
+ "palpebra",
+ "palpitant",
+ "palsgrave",
+ "palter",
+ "pampas",
+ "pamper",
+ "pamperer",
+ "pamphlet",
+ "pamphleteer",
+ "pan",
+ "panacea",
+ "panache",
+ "pancake",
+ "pancreas",
+ "panda",
+ "pandanus",
+ "pandar",
+ "pandemonium",
+ "pander",
+ "pandora",
+ "panduriform",
+ "panegyrist",
+ "panel",
+ "paneling",
+ "pang",
+ "panic-struck",
+ "panicle",
+ "panicum",
+ "pannier",
+ "panopticon",
+ "panorama",
+ "pant",
+ "pantaloon",
+ "pantechnicon",
+ "pantheist",
+ "pantheon",
+ "panther",
+ "pantile",
+ "pantograph",
+ "pantomime",
+ "pantomimist",
+ "pap",
+ "papa",
+ "papaver",
+ "papaw",
+ "paper",
+ "paperweight",
+ "papilla",
+ "papilliform",
+ "papilloma",
+ "papist",
+ "pappus",
+ "papuan",
+ "papule",
+ "papyrus",
+ "par",
+ "para",
+ "parabola",
+ "parachute",
+ "paraclete",
+ "parade",
+ "paradigm",
+ "paradisiac",
+ "paradox",
+ "paragon",
+ "paragonite",
+ "paragraph",
+ "paragrapher",
+ "paraguayan",
+ "parakeet",
+ "paraldehyde",
+ "paralipomenon",
+ "parallax",
+ "parallel",
+ "parallelogram",
+ "parallelopipedon",
+ "paralyse",
+ "paralyze",
+ "paramount",
+ "paramour",
+ "paramours",
+ "parapet",
+ "paraph",
+ "paraphrase",
+ "parapodium",
+ "paraquet",
+ "parasite",
+ "parboil",
+ "parcel",
+ "parceling",
+ "parch",
+ "parchesi",
+ "pardon",
+ "pardoner",
+ "pare",
+ "parenchyma",
+ "parent",
+ "parenthood",
+ "parer",
+ "parget",
+ "pariah",
+ "paries",
+ "parietes",
+ "paris",
+ "parishioner",
+ "parisienne",
+ "park",
+ "parker",
+ "parlor",
+ "parmesan",
+ "parnassus",
+ "parodist",
+ "parole",
+ "paroquet",
+ "paroxysm",
+ "parquet",
+ "parr",
+ "parrakeet",
+ "parricide",
+ "parrot",
+ "parse",
+ "parsee",
+ "parser",
+ "parsnip",
+ "parson",
+ "part",
+ "partake",
+ "partaker",
+ "parterre",
+ "parthenon",
+ "participant",
+ "participle",
+ "particle",
+ "particular",
+ "partisan",
+ "partita",
+ "partner",
+ "partook",
+ "partridge",
+ "parturient",
+ "parvenu",
+ "parvis",
+ "pas",
+ "pasch",
+ "pascha",
+ "pasha",
+ "pasquinade",
+ "pass",
+ "passado",
+ "passant",
+ "passementerie",
+ "passenger",
+ "passer",
+ "passeres",
+ "passiflora",
+ "passim",
+ "passover",
+ "passport",
+ "password",
+ "past",
+ "paste",
+ "pasteboard",
+ "pastel",
+ "paster",
+ "pastern",
+ "pastil",
+ "pastille",
+ "pastime",
+ "pastor",
+ "pastorale",
+ "pasture",
+ "pat",
+ "pataca",
+ "patas",
+ "patch",
+ "patchouli",
+ "patchwork",
+ "patella",
+ "patellar",
+ "patelliform",
+ "patent",
+ "patentee",
+ "paterfamilias",
+ "paternoster",
+ "path",
+ "pathfinder",
+ "pathologist",
+ "pathos",
+ "patient",
+ "patina",
+ "patio",
+ "patois",
+ "patriarch",
+ "patricide",
+ "patriot",
+ "patristics",
+ "patrolman",
+ "patron",
+ "patter",
+ "pattern",
+ "paul",
+ "paunch",
+ "pauper",
+ "pauropoda",
+ "pause",
+ "pavan",
+ "pave",
+ "pavior",
+ "pavo",
+ "paw",
+ "pawl",
+ "pawn",
+ "pawnbroker",
+ "pawnee",
+ "pawnees",
+ "pawpaw",
+ "pax",
+ "payee",
+ "payer",
+ "paymaster",
+ "paynim",
+ "pea",
+ "peace",
+ "peacemaker",
+ "peach",
+ "peachick",
+ "peacock",
+ "peafowl",
+ "peak",
+ "pean",
+ "peanut",
+ "pear",
+ "pearl",
+ "pearlings",
+ "pearlite",
+ "pearlwort",
+ "peasant",
+ "pease",
+ "peat",
+ "peba",
+ "pebble",
+ "pecan",
+ "peccadillo",
+ "peccant",
+ "peck",
+ "pecker",
+ "pecopteris",
+ "pectus",
+ "peculator",
+ "peculiar",
+ "pedagog",
+ "pedagogics",
+ "pedagogue",
+ "pedant",
+ "peddle",
+ "peddler",
+ "peddling",
+ "pederast",
+ "pedicel",
+ "pedicle",
+ "pediculati",
+ "pediculus",
+ "pedigree",
+ "pedipalpi",
+ "pedlar",
+ "peduncle",
+ "pee",
+ "peek",
+ "peekaboo",
+ "peel",
+ "peeler",
+ "peep",
+ "peeper",
+ "peephole",
+ "peer",
+ "peeress",
+ "peewit",
+ "peg",
+ "pegasus",
+ "pegmatite",
+ "pehlevi",
+ "pekan",
+ "pekoe",
+ "pelargonium",
+ "pelecaniformes",
+ "pelf",
+ "pelican",
+ "pelisse",
+ "pell-mell",
+ "pellet",
+ "pellicle",
+ "pelt",
+ "pelter",
+ "peludo",
+ "pelvis",
+ "pemmican",
+ "pemphigus",
+ "penchant",
+ "pencil",
+ "penciling",
+ "pendant",
+ "pendent",
+ "pendragon",
+ "pendulum",
+ "penelope",
+ "peninsula",
+ "peninsular",
+ "penis",
+ "penitent",
+ "penknife",
+ "penman",
+ "pennant",
+ "pennatula",
+ "pennon",
+ "pennoncel",
+ "pennoncelle",
+ "pennyweight",
+ "pennyworth",
+ "penologist",
+ "pens",
+ "pensioner",
+ "penstock",
+ "pent",
+ "pentacle",
+ "pentad",
+ "pentagon",
+ "pentagram",
+ "pentahedron",
+ "pentail",
+ "pentangle",
+ "pentangular",
+ "pentastomida",
+ "pentateuch",
+ "pentathlon",
+ "pentavalent",
+ "pentecost",
+ "pentecostals",
+ "penthouse",
+ "pentoxide",
+ "penuchle",
+ "penult",
+ "penultima",
+ "penumbra",
+ "peon",
+ "people",
+ "peorias",
+ "peplus",
+ "pepper",
+ "peppercorn",
+ "pepperidge",
+ "peppermint",
+ "pepperwort",
+ "peradventure",
+ "perambulator",
+ "perca",
+ "percale",
+ "perceiver",
+ "percept",
+ "perch",
+ "percher",
+ "percheron",
+ "perchloride",
+ "perciformes",
+ "percipient",
+ "percoidea",
+ "percolator",
+ "percomorphi",
+ "percuss",
+ "perdix",
+ "perfect",
+ "perfecter",
+ "perfectionist",
+ "perforce",
+ "perform",
+ "performer",
+ "perfume",
+ "perfumer",
+ "perfuse",
+ "perhaps",
+ "peri",
+ "perianth",
+ "pericardiac",
+ "pericardium",
+ "pericarp",
+ "periclase",
+ "peridium",
+ "peridot",
+ "peridotite",
+ "perigee",
+ "perigonium",
+ "peril",
+ "perilla",
+ "perilymph",
+ "perimysium",
+ "perineum",
+ "perineurium",
+ "period",
+ "periosteum",
+ "peripatus",
+ "perisperm",
+ "perissodactyla",
+ "peristyle",
+ "perithecium",
+ "peritoneum",
+ "periwig",
+ "periwinkle",
+ "perjure",
+ "perjurer",
+ "perk",
+ "permanent",
+ "permeant",
+ "permians",
+ "permit",
+ "permute",
+ "pernio",
+ "peroxide",
+ "perpendicular",
+ "perpetrator",
+ "perplex",
+ "perquisite",
+ "persecute",
+ "persecutor",
+ "perseus",
+ "persevere",
+ "persimmon",
+ "persist",
+ "persistent",
+ "person",
+ "persona",
+ "personnel",
+ "perspire",
+ "persuade",
+ "persuader",
+ "pert",
+ "pertinent",
+ "perturb",
+ "peruke",
+ "peruse",
+ "pervade",
+ "perverse",
+ "pervert",
+ "pes",
+ "peseta",
+ "peso",
+ "pessimist",
+ "pest",
+ "pester",
+ "pesterer",
+ "pesthouse",
+ "pestilent",
+ "pestle",
+ "pet",
+ "petard",
+ "peter",
+ "petiole",
+ "petiolule",
+ "petitioner",
+ "petrel",
+ "petrogale",
+ "petrolatum",
+ "petroleum",
+ "petticoat",
+ "pettifog",
+ "pettifogger",
+ "petulant",
+ "pew",
+ "pewee",
+ "pewit",
+ "pewter",
+ "peziza",
+ "pfennig",
+ "phagocyte",
+ "phalanger",
+ "phalanges",
+ "phalangist",
+ "phalanx",
+ "phalarope",
+ "phallus",
+ "phantasm",
+ "phantom",
+ "pharaoh",
+ "pharisee",
+ "pharmacist",
+ "pharmacologist",
+ "pharos",
+ "pharynx",
+ "phase",
+ "phaseolus",
+ "pheasant",
+ "phenomenon",
+ "philander",
+ "philanderer",
+ "philanthropist",
+ "philatelist",
+ "philhellenist",
+ "philip",
+ "phillipsite",
+ "phillyrea",
+ "philologist",
+ "philologue",
+ "philomath",
+ "philosopher",
+ "philosophizer",
+ "philter",
+ "phiz",
+ "phlebogram",
+ "phlebotomist",
+ "phlegm",
+ "phleum",
+ "phlogiston",
+ "phlogopite",
+ "phlox",
+ "phoca",
+ "pholas",
+ "phonetics",
+ "phonics",
+ "phonogram",
+ "phonograph",
+ "phonologist",
+ "phosphor",
+ "phosphoresce",
+ "phosphorescent",
+ "phosphorus",
+ "photo",
+ "photograph",
+ "photographer",
+ "photogravure",
+ "photolithograph",
+ "photomicrograph",
+ "photosphere",
+ "phrase",
+ "phrenologist",
+ "phyle",
+ "phyllode",
+ "phylloxera",
+ "phylum",
+ "physa",
+ "physeter",
+ "physicist",
+ "physics",
+ "physiologist",
+ "physique",
+ "phytelephas",
+ "phytolacca",
+ "phytologist",
+ "pi",
+ "pianissimo",
+ "pianist",
+ "piano",
+ "pianoforte",
+ "piaster",
+ "piastre",
+ "piazza",
+ "pibroch",
+ "pica",
+ "picador",
+ "picaresque",
+ "picayune",
+ "piccalilli",
+ "piccolo",
+ "picea",
+ "pichiciago",
+ "piciformes",
+ "pick",
+ "pickaback",
+ "pickax",
+ "pickaxe",
+ "picker",
+ "pickerel",
+ "picket",
+ "pickle",
+ "pickpocket",
+ "picnicker",
+ "pictograph",
+ "picture",
+ "picturesque",
+ "picul",
+ "piculet",
+ "picus",
+ "piddle",
+ "piddling",
+ "piddock",
+ "pie",
+ "piebald",
+ "piece",
+ "piecework",
+ "piedmont",
+ "pieplant",
+ "pier",
+ "pierce",
+ "pig",
+ "pigeon",
+ "pigeonhole",
+ "pignut",
+ "pigtail",
+ "pika",
+ "pike",
+ "pikestaff",
+ "pilaster",
+ "pilau",
+ "pilchard",
+ "pile",
+ "piles",
+ "pileus",
+ "pilewort",
+ "pilfer",
+ "pilferer",
+ "pilgrim",
+ "piling",
+ "pill",
+ "pillager",
+ "pillar",
+ "pillow",
+ "pillowcase",
+ "pillwort",
+ "pilot",
+ "pimenta",
+ "pimento",
+ "pimlico",
+ "pimp",
+ "pimpernel",
+ "pimple",
+ "pinafore",
+ "pince-nez",
+ "pincers",
+ "pinch",
+ "pinchbeck",
+ "pindar",
+ "pineapple",
+ "pinesap",
+ "pinetum",
+ "pinfold",
+ "pinguicula",
+ "pinite",
+ "pink",
+ "pinkroot",
+ "pinna",
+ "pinnace",
+ "pinnacle",
+ "pinner",
+ "pinnule",
+ "pinocle",
+ "pinole",
+ "pint",
+ "pintado",
+ "pintail",
+ "pintle",
+ "pintos",
+ "pinus",
+ "pinworm",
+ "pioneer",
+ "pip",
+ "pipa",
+ "pipe",
+ "piper",
+ "pipette",
+ "pipewort",
+ "pipistrel",
+ "pipistrelle",
+ "pipit",
+ "pipra",
+ "pipsissewa",
+ "piquant",
+ "pique",
+ "piquet",
+ "pirogue",
+ "pirouette",
+ "pisces",
+ "pisiform",
+ "pismire",
+ "piss",
+ "pistachio",
+ "piste",
+ "pistil",
+ "pistoleer",
+ "piston",
+ "pit",
+ "pita",
+ "pitahaya",
+ "pitch",
+ "pitch-black",
+ "pitch-dark",
+ "pitchblende",
+ "pitcher",
+ "pitchfork",
+ "pitfall",
+ "pith",
+ "pitman",
+ "pitta",
+ "pivot",
+ "pix",
+ "pixie",
+ "pizzicato",
+ "placard",
+ "place",
+ "placebo",
+ "placeman",
+ "placenta",
+ "placer",
+ "placket",
+ "placoderm",
+ "placodermi",
+ "plagiarist",
+ "plagioclase",
+ "plague",
+ "plaice",
+ "plainsman",
+ "plaint",
+ "plaintiff",
+ "plait",
+ "plaiter",
+ "plan",
+ "planchet",
+ "planchette",
+ "planer",
+ "planet",
+ "planetarium",
+ "plangent",
+ "plank",
+ "planner",
+ "plant",
+ "plantar",
+ "planter",
+ "plantigrade",
+ "plantlet",
+ "planula",
+ "plaque",
+ "plash",
+ "plasm",
+ "plasmodium",
+ "plaster",
+ "plasterer",
+ "plasterwork",
+ "plastron",
+ "plat",
+ "platan",
+ "platanus",
+ "plateau",
+ "plater",
+ "platform",
+ "platinum",
+ "platitude",
+ "platonist",
+ "platoon",
+ "plattdeutsch",
+ "platter",
+ "platypus",
+ "plaudit",
+ "playbill",
+ "playbook",
+ "player",
+ "playfellow",
+ "playgoer",
+ "playground",
+ "playhouse",
+ "playmaker",
+ "playtime",
+ "playwright",
+ "plaza",
+ "plea",
+ "pleach",
+ "plead",
+ "pleader",
+ "pleadings",
+ "pleasant",
+ "please",
+ "pleaser",
+ "pleasure",
+ "pleat",
+ "plebe",
+ "plebiscite",
+ "plectognath",
+ "plectognathi",
+ "plectrum",
+ "pledge",
+ "pledgee",
+ "pledger",
+ "pleiades",
+ "plenitude",
+ "plenum",
+ "pleonasm",
+ "pleonaste",
+ "pleopod",
+ "plesiosaur",
+ "plesiosaurus",
+ "plethora",
+ "plethysmograph",
+ "pleura",
+ "pleurocarp",
+ "pleurodont",
+ "plexus",
+ "pliant",
+ "plica",
+ "pliers",
+ "plight",
+ "plinth",
+ "ploce",
+ "plod",
+ "plodder",
+ "plot",
+ "plotter",
+ "plough",
+ "ploughman",
+ "ploughshare",
+ "ploughwright",
+ "plover",
+ "plow",
+ "plower",
+ "plowland",
+ "plowman",
+ "plowshare",
+ "plowwright",
+ "pluck",
+ "plug",
+ "plugger",
+ "plum",
+ "plumb",
+ "plumbago",
+ "plumber",
+ "plume",
+ "plummet",
+ "plump",
+ "plumper",
+ "plumule",
+ "plunder",
+ "plunderer",
+ "plunge",
+ "plunger",
+ "pluperfect",
+ "pluralist",
+ "plus",
+ "plush",
+ "pluteus",
+ "pluto",
+ "plutocrat",
+ "plyer",
+ "pneumatics",
+ "pneumatophore",
+ "pneumococcus",
+ "pneumothorax",
+ "poa",
+ "poach",
+ "poacher",
+ "pochard",
+ "pock",
+ "pocket",
+ "pocketbook",
+ "pocketknife",
+ "pockmark",
+ "pod",
+ "podetium",
+ "podiceps",
+ "podium",
+ "podocarp",
+ "podophyllum",
+ "poe",
+ "poem",
+ "poet",
+ "poetess",
+ "poetics",
+ "poi",
+ "poignant",
+ "poinciana",
+ "point",
+ "point-blank",
+ "pointel",
+ "pointer",
+ "pointrel",
+ "pointsman",
+ "poison",
+ "poisoner",
+ "poke",
+ "poker",
+ "polack",
+ "polar",
+ "polaris",
+ "polder",
+ "pole",
+ "poleax",
+ "poleaxe",
+ "polecat",
+ "polemicist",
+ "polemics",
+ "polemist",
+ "polemonium",
+ "polenta",
+ "poler",
+ "polestar",
+ "police",
+ "policeman",
+ "poling",
+ "polisher",
+ "polite",
+ "politesse",
+ "politics",
+ "polka",
+ "poll",
+ "pollack",
+ "pollard",
+ "pollex",
+ "polling",
+ "pollinium",
+ "polliwog",
+ "pollock",
+ "pollucite",
+ "pollute",
+ "polluter",
+ "pollux",
+ "pollywog",
+ "polo",
+ "poltroon",
+ "polyanthus",
+ "polychrome",
+ "polygala",
+ "polygamist",
+ "polyglot",
+ "polygon",
+ "polygonum",
+ "polygraph",
+ "polygynist",
+ "polyhedron",
+ "polymer",
+ "polymorph",
+ "polynesians",
+ "polyp",
+ "polypi",
+ "polyplacophora",
+ "polypodium",
+ "polyporus",
+ "polyptoton",
+ "polypus",
+ "polysyndeton",
+ "polytechnics",
+ "polytheist",
+ "polyvalent",
+ "polyzoa",
+ "polyzoan",
+ "pomade",
+ "pomatum",
+ "pome",
+ "pomelo",
+ "pomfret",
+ "pommel",
+ "pomologist",
+ "pomp",
+ "pompadour",
+ "pompano",
+ "pompon",
+ "poncho",
+ "pond",
+ "ponder",
+ "ponderer",
+ "pongee",
+ "pongo",
+ "poniard",
+ "pons",
+ "pontifex",
+ "pontiff",
+ "pontoon",
+ "pood",
+ "poodle",
+ "pooh-pooh",
+ "pooler",
+ "pooling",
+ "poon",
+ "poop",
+ "poor",
+ "poorhouse",
+ "pop",
+ "pope",
+ "popgun",
+ "poplar",
+ "popper",
+ "poppet",
+ "populace",
+ "popular",
+ "popularizer",
+ "porbeagle",
+ "porch",
+ "pore",
+ "porifera",
+ "poriferan",
+ "pork",
+ "porker",
+ "porridge",
+ "porringer",
+ "port",
+ "porta",
+ "portass",
+ "portcullis",
+ "porte",
+ "portent",
+ "porter",
+ "porteress",
+ "porterhouse",
+ "portfolio",
+ "porthole",
+ "portico",
+ "portmanteau",
+ "portos",
+ "portrait",
+ "portraitist",
+ "portraiture",
+ "portrayer",
+ "portuguese",
+ "portulaca",
+ "poser",
+ "posit",
+ "positivist",
+ "poss",
+ "posse",
+ "possess",
+ "possessor",
+ "posset",
+ "possum",
+ "post",
+ "post-mortem",
+ "postcava",
+ "poster",
+ "posteriors",
+ "postern",
+ "postfix",
+ "posthouse",
+ "postlude",
+ "postman",
+ "postmark",
+ "postmaster",
+ "postponer",
+ "postscript",
+ "postulant",
+ "posture",
+ "posturer",
+ "pot",
+ "potash",
+ "potashes",
+ "potassium",
+ "potato",
+ "potboiler",
+ "potent",
+ "pother",
+ "pothole",
+ "pothook",
+ "pothouse",
+ "potluck",
+ "potman",
+ "potoroo",
+ "potpie",
+ "potpourri",
+ "potsherd",
+ "potter",
+ "pottle",
+ "potto",
+ "pouch",
+ "poulterer",
+ "poultice",
+ "pounce",
+ "pound",
+ "pounder",
+ "pour",
+ "pout",
+ "pouter",
+ "powder",
+ "power",
+ "powwow",
+ "pox",
+ "poyou",
+ "practice",
+ "practitioner",
+ "pragmatist",
+ "prairie",
+ "prakrit",
+ "pram",
+ "prancer",
+ "prank",
+ "praseodymium",
+ "prater",
+ "pratincole",
+ "prattle",
+ "prattler",
+ "prawn",
+ "praxis",
+ "prayer",
+ "preach",
+ "preacher",
+ "preamble",
+ "prearrange",
+ "precede",
+ "precedent",
+ "precentor",
+ "precept",
+ "preceptor",
+ "precinct",
+ "precipice",
+ "precipitant",
+ "precipitator",
+ "preclude",
+ "precursor",
+ "predecease",
+ "predecessor",
+ "predict",
+ "predictor",
+ "predigest",
+ "predominant",
+ "preface",
+ "prefect",
+ "prefecture",
+ "prefer",
+ "prefigure",
+ "prefix",
+ "preform",
+ "pregnant",
+ "prehend",
+ "prehensile",
+ "prejudge",
+ "prejudice",
+ "prelatess",
+ "prelude",
+ "premature",
+ "premier",
+ "premiss",
+ "premium",
+ "premolar",
+ "prentice",
+ "prepare",
+ "preponderant",
+ "prepossess",
+ "prepuce",
+ "prerequisite",
+ "presbyope",
+ "presbyter",
+ "prescribe",
+ "prescript",
+ "present",
+ "presenter",
+ "preserve",
+ "preserver",
+ "preside",
+ "president",
+ "presidio",
+ "press",
+ "pressman",
+ "pressor",
+ "pressure",
+ "prestidigitator",
+ "prestige",
+ "prestissimo",
+ "presto",
+ "presume",
+ "pretend",
+ "pretender",
+ "pretense",
+ "preterist",
+ "preterit",
+ "preterite",
+ "pretermit",
+ "pretext",
+ "pretor",
+ "pretorium",
+ "pretzel",
+ "prevail",
+ "prevailing",
+ "prevalent",
+ "prevaricator",
+ "prevenient",
+ "prevent",
+ "price",
+ "prick",
+ "pricker",
+ "pricket",
+ "prickle",
+ "prickleback",
+ "prickling",
+ "pride",
+ "priest",
+ "priestcraft",
+ "priestess",
+ "priesthood",
+ "prig",
+ "prim",
+ "primates",
+ "prime",
+ "primer",
+ "primipara",
+ "primo",
+ "primogenitor",
+ "primogeniture",
+ "primp",
+ "primula",
+ "primus",
+ "prince",
+ "princedom",
+ "princeling",
+ "princess",
+ "princewood",
+ "principle",
+ "prink",
+ "print",
+ "printer",
+ "prior",
+ "prioress",
+ "prison",
+ "prisoner",
+ "privateer",
+ "privateersman",
+ "privet",
+ "privilege",
+ "prizer",
+ "pro",
+ "probationer",
+ "probe",
+ "problem",
+ "proboscidea",
+ "proboscidean",
+ "proboscis",
+ "procedure",
+ "proceeds",
+ "process",
+ "proclaim",
+ "proconsul",
+ "proconsular",
+ "procrastinator",
+ "procrustean",
+ "procrustes",
+ "proctocele",
+ "proctor",
+ "procumbent",
+ "procurator",
+ "procure",
+ "procurer",
+ "procuress",
+ "procyon",
+ "prod",
+ "prodrome",
+ "produce",
+ "producer",
+ "product",
+ "profaner",
+ "profess",
+ "professor",
+ "proffer",
+ "proficient",
+ "profile",
+ "profiling",
+ "profit",
+ "profound",
+ "profuse",
+ "progenitor",
+ "progne",
+ "prognosticator",
+ "program",
+ "programma",
+ "programme",
+ "progress",
+ "prohibit",
+ "prohibitionist",
+ "project",
+ "projectile",
+ "projector",
+ "prolapse",
+ "prolapsus",
+ "prolegomenon",
+ "proletariat",
+ "prolix",
+ "prolog",
+ "prologue",
+ "prolong",
+ "prolonge",
+ "promenade",
+ "prometheus",
+ "prominent",
+ "promisee",
+ "promiser",
+ "promisor",
+ "promote",
+ "promoter",
+ "prompt",
+ "prompter",
+ "promptitude",
+ "promulgator",
+ "pronator",
+ "prong",
+ "prongbuck",
+ "pronghorn",
+ "pronoun",
+ "pronounce",
+ "pronucleus",
+ "pronunciamento",
+ "proof",
+ "prop",
+ "propaganda",
+ "propagandist",
+ "propagator",
+ "propel",
+ "propeller",
+ "proper",
+ "prophesier",
+ "prophet",
+ "prophetess",
+ "prophylaxis",
+ "proponent",
+ "proposer",
+ "propound",
+ "proprietor",
+ "proprietress",
+ "props",
+ "prorogue",
+ "proscenium",
+ "proscribe",
+ "prosecute",
+ "prosecutor",
+ "proselyte",
+ "prosencephalon",
+ "prospect",
+ "prospector",
+ "prospectus",
+ "prosper",
+ "prostitute",
+ "prostyle",
+ "protagonist",
+ "protean",
+ "protect",
+ "protectionist",
+ "protector",
+ "proteles",
+ "protest",
+ "protestant",
+ "protester",
+ "proteus",
+ "prothalamium",
+ "prothorax",
+ "protist",
+ "protista",
+ "protohippus",
+ "protoplasm",
+ "protoplast",
+ "prototype",
+ "protozoa",
+ "protozoan",
+ "protract",
+ "protractile",
+ "protractor",
+ "protrude",
+ "protrusile",
+ "protuberant",
+ "proud",
+ "prove",
+ "provender",
+ "proverb",
+ "provide",
+ "provident",
+ "provider",
+ "province",
+ "proviso",
+ "provoke",
+ "provost",
+ "prow",
+ "prowess",
+ "prowl",
+ "prowler",
+ "prowling",
+ "prox",
+ "proximo",
+ "prude",
+ "prudent",
+ "prune",
+ "prunella",
+ "pruner",
+ "prunus",
+ "prurient",
+ "prurigo",
+ "pruritus",
+ "psalm",
+ "psalmist",
+ "psalter",
+ "psalterium",
+ "pseudocarp",
+ "pseudonym",
+ "pseudopod",
+ "pseudopodium",
+ "pseudoscorpiones",
+ "psoas",
+ "psyche",
+ "psychics",
+ "psychologist",
+ "psychophysics",
+ "psychopomp",
+ "psylla",
+ "ptarmigan",
+ "pteridologist",
+ "pteridophyta",
+ "pterosaur",
+ "pterygium",
+ "puberulent",
+ "pubes",
+ "pubescent",
+ "pubis",
+ "publican",
+ "publicist",
+ "publisher",
+ "puccoon",
+ "puce",
+ "puck",
+ "pucker",
+ "pud",
+ "puddle",
+ "puddler",
+ "puddling",
+ "pudenda",
+ "pudendum",
+ "pueblo",
+ "puerile",
+ "puff",
+ "puffball",
+ "puffer",
+ "pug",
+ "pugilist",
+ "puissant",
+ "puke",
+ "pulas",
+ "pulchritude",
+ "pule",
+ "pulex",
+ "puling",
+ "pull",
+ "pullback",
+ "puller",
+ "pullet",
+ "pulmonata",
+ "pulp",
+ "pulpit",
+ "pulque",
+ "pulsatilla",
+ "pulse",
+ "puma",
+ "pumice",
+ "pummel",
+ "pump",
+ "pumpernickel",
+ "pun",
+ "punch",
+ "puncher",
+ "punctilio",
+ "punctum",
+ "puncture",
+ "pundit",
+ "pung",
+ "pungent",
+ "punk",
+ "punnet",
+ "punster",
+ "punt",
+ "punter",
+ "pup",
+ "pupa",
+ "pupil",
+ "puppet",
+ "purana",
+ "purblind",
+ "purchase",
+ "purchaser",
+ "purdah",
+ "pure",
+ "purge",
+ "purifier",
+ "purim",
+ "purist",
+ "puritan",
+ "purl",
+ "purlieu",
+ "purling",
+ "purple",
+ "purport",
+ "purpura",
+ "purr",
+ "purse",
+ "purse-proud",
+ "purser",
+ "pursuant",
+ "pursue",
+ "pursuer",
+ "pursuit",
+ "purulent",
+ "purveyor",
+ "purview",
+ "pus",
+ "push",
+ "pusher",
+ "puss",
+ "pustule",
+ "put",
+ "put-up",
+ "putrescent",
+ "putter",
+ "puttyroot",
+ "puzzle",
+ "pycnidium",
+ "pycnogonida",
+ "pyjama",
+ "pylon",
+ "pylorus",
+ "pyracanth",
+ "pyre",
+ "pyrite",
+ "pyrites",
+ "pyrolusite",
+ "pyromorphite",
+ "pyrope",
+ "pyrophorus",
+ "pyrophyllite",
+ "pyrotechnics",
+ "pyrrhotite",
+ "pyrus",
+ "pythagorean",
+ "python",
+ "pyx",
+ "pyxidium",
+ "pyxis",
+ "quack",
+ "quadroon",
+ "quaffer",
+ "quaker",
+ "quarrel",
+ "quat",
+ "quester",
+ "questioner",
+ "quibbler",
+ "quickener",
+ "quidnunc",
+ "quieter",
+ "quitter",
+ "quiver",
+ "quiz",
+ "quizzer",
+ "quoter",
+ "race",
+ "racer",
+ "racker",
+ "raftsman",
+ "ragpicker",
+ "raider",
+ "raiser",
+ "rambler",
+ "rammer",
+ "ramp",
+ "ranger",
+ "ranker",
+ "rape",
+ "rapper",
+ "rat",
+ "ratepayer",
+ "ratifier",
+ "rationalist",
+ "ratter",
+ "rattler",
+ "raver",
+ "ravisher",
+ "rhymer",
+ "rider",
+ "ridiculer",
+ "rigger",
+ "righter",
+ "ringer",
+ "rioter",
+ "rip",
+ "ripper",
+ "riser",
+ "ritualist",
+ "river",
+ "riveter",
+ "roadster",
+ "roamer",
+ "roarer",
+ "roaster",
+ "robber",
+ "rocker",
+ "rogue",
+ "roller",
+ "romancer",
+ "romanist",
+ "romanticist",
+ "roofer",
+ "rooter",
+ "ropedancer",
+ "roper",
+ "roughrider",
+ "rounder",
+ "rouser",
+ "rover",
+ "rower",
+ "royalist",
+ "rubber",
+ "ruiner",
+ "ruler",
+ "ruling",
+ "ruminator",
+ "runner",
+ "runt",
+ "ruralist",
+ "rusher",
+ "rustler",
+ "sacrificer",
+ "saddler",
+ "sailing",
+ "sailmaker",
+ "sailor",
+ "saint",
+ "salesman",
+ "saleswoman",
+ "salter",
+ "saluter",
+ "salver",
+ "salvor",
+ "samaritan",
+ "sampler",
+ "sapper",
+ "saree",
+ "satanist",
+ "satellite",
+ "satirist",
+ "satisfier",
+ "saunterer",
+ "savant",
+ "saver",
+ "savior",
+ "savoyard",
+ "sawyer",
+ "saxon",
+ "scab",
+ "scaler",
+ "scalper",
+ "scapegrace",
+ "scattergood",
+ "sceneshifter",
+ "schemer",
+ "scholar",
+ "schoolmaster",
+ "schoolmistress",
+ "scientist",
+ "sciolist",
+ "scoffer",
+ "scold",
+ "scolder",
+ "scorer",
+ "scorner",
+ "scot",
+ "scotchman",
+ "scoundrel",
+ "scourer",
+ "scourger",
+ "scrag",
+ "scrambler",
+ "scraper",
+ "scratcher",
+ "scrawler",
+ "scribbler",
+ "scribe",
+ "scrivener",
+ "scrub",
+ "scrubber",
+ "scrutinizer",
+ "scull",
+ "sculler",
+ "sculptor",
+ "seafarer",
+ "sealer",
+ "seaman",
+ "seamster",
+ "seamstress",
+ "searcher",
+ "seasoner",
+ "secessionist",
+ "second",
+ "seconder",
+ "secularist",
+ "securer",
+ "sedan",
+ "seducer",
+ "seductress",
+ "seeder",
+ "seedsman",
+ "seeker",
+ "seer",
+ "seizer",
+ "selector",
+ "self",
+ "self-defense",
+ "self-seeker",
+ "seller",
+ "sender",
+ "senior",
+ "sensationalist",
+ "sensualist",
+ "sentient",
+ "sentimentalist",
+ "sentinel",
+ "separatist",
+ "separator",
+ "sequela",
+ "sequester",
+ "sermonizer",
+ "serpent",
+ "servant",
+ "server",
+ "service",
+ "setter",
+ "settler",
+ "settling",
+ "seventeenth",
+ "sewer",
+ "shadow",
+ "shamer",
+ "shammer",
+ "shaper",
+ "shareholder",
+ "sharer",
+ "shark",
+ "sharper",
+ "shaver",
+ "shearer",
+ "shedder",
+ "sheller",
+ "shelter",
+ "shepherd",
+ "shepherdess",
+ "shield",
+ "shifter",
+ "shingler",
+ "shipper",
+ "shipwright",
+ "shirk",
+ "shirker",
+ "shoeblack",
+ "shoemaker",
+ "shooter",
+ "shopkeeper",
+ "shoplifter",
+ "shopper",
+ "shopwalker",
+ "shortener",
+ "shot",
+ "shouter",
+ "shoveler",
+ "shower",
+ "showman",
+ "shrimper",
+ "shuffler",
+ "shutter",
+ "shyster",
+ "siamese",
+ "sider",
+ "sifter",
+ "signalman",
+ "signature",
+ "signer",
+ "silversmith",
+ "simperer",
+ "simpler",
+ "simpleton",
+ "simulator",
+ "singer",
+ "sinker",
+ "sinner",
+ "sir",
+ "sirrah",
+ "sister",
+ "sitter",
+ "six-footer",
+ "sixteenth",
+ "skater",
+ "sketcher",
+ "skimmer",
+ "skinflint",
+ "skinner",
+ "skipper",
+ "skirmisher",
+ "skulk",
+ "skulker",
+ "slam",
+ "slanderer",
+ "slapper",
+ "slater",
+ "slattern",
+ "slaughterer",
+ "slave",
+ "slaveholder",
+ "slayer",
+ "sleeper",
+ "sleepwalker",
+ "sleepyhead",
+ "slicer",
+ "slider",
+ "slighter",
+ "slinger",
+ "slip",
+ "slipper",
+ "slobberer",
+ "slopseller",
+ "slugger",
+ "slumberer",
+ "slur",
+ "slut",
+ "slyboots",
+ "smasher",
+ "smelling",
+ "smelter",
+ "smiler",
+ "smith",
+ "smoker",
+ "smoother",
+ "smuggler",
+ "snapper",
+ "snarer",
+ "snatcher",
+ "sneaker",
+ "sneerer",
+ "sniveler",
+ "snob",
+ "snood",
+ "snorer",
+ "snorter",
+ "snuffbox",
+ "snuffer",
+ "snuffler",
+ "so-so",
+ "soaker",
+ "socialist",
+ "sociologist",
+ "soft",
+ "softener",
+ "sojourner",
+ "solderer",
+ "soldier",
+ "solicitor",
+ "soloist",
+ "solver",
+ "somnambulist",
+ "somniloquist",
+ "son",
+ "son-in-law",
+ "songster",
+ "songstress",
+ "soothsayer",
+ "soprano",
+ "sorb",
+ "sorbefacient",
+ "sorbent",
+ "sorbet",
+ "sorcerer",
+ "sorceress",
+ "sore",
+ "sorehead",
+ "sorex",
+ "sorghum",
+ "sorgo",
+ "sori",
+ "sorrel",
+ "sorrow",
+ "sort",
+ "sorter",
+ "sortes",
+ "sortie",
+ "sorus",
+ "soss",
+ "sot",
+ "sou",
+ "soubrette",
+ "soubriquet",
+ "souchong",
+ "soudan",
+ "souffle",
+ "sough",
+ "sought",
+ "soul",
+ "sound",
+ "sounder",
+ "soup",
+ "sour",
+ "source",
+ "sours",
+ "soursop",
+ "sourwood",
+ "souse",
+ "souslik",
+ "soutache",
+ "south",
+ "southeast",
+ "southeaster",
+ "southeastern",
+ "southeastward",
+ "souther",
+ "southern",
+ "southerner",
+ "southernmost",
+ "southernwood",
+ "southmost",
+ "southward",
+ "southwards",
+ "southwest",
+ "southwester",
+ "southwestern",
+ "southwestward",
+ "souvenir",
+ "sovereign",
+ "sow",
+ "sower",
+ "sown",
+ "spa",
+ "space",
+ "spade",
+ "spadefoot",
+ "spadix",
+ "spaghetti",
+ "spall",
+ "span",
+ "spandrel",
+ "spang",
+ "spangle",
+ "spaniard",
+ "spaniel",
+ "spank",
+ "spanker",
+ "spanner",
+ "spar",
+ "spare",
+ "sparer",
+ "sparerib",
+ "sparge",
+ "spark",
+ "sparker",
+ "sparkle",
+ "sparkler",
+ "sparkling",
+ "sparling",
+ "sparrow",
+ "sparse",
+ "spartan",
+ "spasm",
+ "spat",
+ "spatchcock",
+ "spathe",
+ "spatter",
+ "spatula",
+ "spawl",
+ "spawn",
+ "spawner",
+ "speak",
+ "speaker",
+ "spear",
+ "spearhead",
+ "spearmint",
+ "specialist",
+ "specie",
+ "species",
+ "speck",
+ "speckle",
+ "spectacle",
+ "spectacular",
+ "spectator",
+ "specter",
+ "spectre",
+ "spectrum",
+ "specular",
+ "speculator",
+ "speculum",
+ "speech",
+ "speechifier",
+ "speechmaker",
+ "speeder",
+ "speedwell",
+ "speer",
+ "speke",
+ "spell",
+ "spellbound",
+ "speller",
+ "spelling",
+ "spelt",
+ "spelter",
+ "spencer",
+ "spend",
+ "spender",
+ "spendthrift",
+ "spent",
+ "sperm",
+ "spermaceti",
+ "spermatocyte",
+ "spermophile",
+ "spew",
+ "spewer",
+ "sphacelus",
+ "sphagnum",
+ "sphalerite",
+ "sphenodon",
+ "sphere",
+ "spherule",
+ "sphincter",
+ "sphinx",
+ "spica",
+ "spiccato",
+ "spice",
+ "spicebush",
+ "spicer",
+ "spick",
+ "spicula",
+ "spicule",
+ "spiculum",
+ "spider",
+ "spiderwort",
+ "spigot",
+ "spike",
+ "spikelet",
+ "spikenard",
+ "spile",
+ "spill",
+ "spiller",
+ "spilt",
+ "spinach",
+ "spindle",
+ "spindlelegs",
+ "spindleshanks",
+ "spinel",
+ "spinet",
+ "spinnaker",
+ "spinner",
+ "spinster",
+ "spiracle",
+ "spirant",
+ "spire",
+ "spirillum",
+ "spirit",
+ "spiritualist",
+ "spirograph",
+ "spirt",
+ "spirula",
+ "spit",
+ "spitball",
+ "spite",
+ "spitfire",
+ "spitter",
+ "spittle",
+ "spittoon",
+ "splash",
+ "splashboard",
+ "splasher",
+ "splatter",
+ "splayfoot",
+ "spleenwort",
+ "splendor",
+ "splenius",
+ "splice",
+ "splint",
+ "splinter",
+ "splinterproof",
+ "split",
+ "splitter",
+ "splotch",
+ "splurge",
+ "splutter",
+ "spoil",
+ "spoiler",
+ "spoke",
+ "spokeshave",
+ "spokesman",
+ "spondee",
+ "sponge",
+ "sponger",
+ "sponsor",
+ "spook",
+ "spoon",
+ "spoonbill",
+ "spoondrift",
+ "spoor",
+ "sporangiophore",
+ "sporangium",
+ "spore",
+ "sporocarp",
+ "sporophore",
+ "sporozoa",
+ "sporran",
+ "sport",
+ "sportsman",
+ "spot",
+ "spotter",
+ "spouse",
+ "spousess",
+ "spout",
+ "spouter",
+ "sprag",
+ "sprang",
+ "sprat",
+ "sprawl",
+ "spread",
+ "spread-eagle",
+ "spreader",
+ "spree",
+ "sprig",
+ "sprigtail",
+ "springboard",
+ "springbok",
+ "springbuck",
+ "springer",
+ "springtail",
+ "springtide",
+ "springtime",
+ "sprinkle",
+ "sprinkler",
+ "sprinkling",
+ "sprint",
+ "sprinter",
+ "sprit",
+ "sprite",
+ "spritsail",
+ "sprout",
+ "spruce",
+ "sprue",
+ "sprung",
+ "spud",
+ "spue",
+ "spume",
+ "spun",
+ "spunk",
+ "spur",
+ "spurge",
+ "spurn",
+ "spurner",
+ "spurt",
+ "sputter",
+ "sputum",
+ "spyglass",
+ "squab",
+ "squabble",
+ "squabbler",
+ "squad",
+ "squadron",
+ "squall",
+ "squalor",
+ "squama",
+ "squamata",
+ "squamule",
+ "squander",
+ "squanderer",
+ "square",
+ "squarer",
+ "squash",
+ "squat",
+ "squatter",
+ "squaw",
+ "squawk",
+ "squawroot",
+ "squeak",
+ "squeaker",
+ "squealer",
+ "squeegee",
+ "squeeze",
+ "squeezer",
+ "squelch",
+ "squib",
+ "squiggle",
+ "squilgee",
+ "squill",
+ "squilla",
+ "squinch",
+ "squint",
+ "squint-eye",
+ "squinter",
+ "squire",
+ "squirm",
+ "squirrel",
+ "squirt",
+ "squirter",
+ "stab",
+ "stabber",
+ "stableman",
+ "stabler",
+ "stabling",
+ "staccato",
+ "stack",
+ "stacte",
+ "staddle",
+ "stadium",
+ "staff",
+ "stag",
+ "stage-struck",
+ "stagecoach",
+ "stager",
+ "stagger",
+ "staggerbush",
+ "staghound",
+ "stagnant",
+ "stainer",
+ "stair",
+ "staircase",
+ "stairhead",
+ "stake",
+ "stakeholder",
+ "stalactite",
+ "stalactites",
+ "stalagmite",
+ "stale",
+ "stalk",
+ "stalker",
+ "stalking-horse",
+ "stall",
+ "stalling",
+ "stalwart",
+ "stamina",
+ "stammel",
+ "stammer",
+ "stammerer",
+ "stamp",
+ "stampede",
+ "stamper",
+ "stanch",
+ "stand",
+ "standard",
+ "stander",
+ "standpipe",
+ "standpoint",
+ "standstill",
+ "stanhope",
+ "stank",
+ "stannite",
+ "stanza",
+ "stapes",
+ "staple",
+ "stapler",
+ "star",
+ "starboard",
+ "starch",
+ "stare",
+ "starer",
+ "stark",
+ "starlight",
+ "starling",
+ "starlit",
+ "start",
+ "starter",
+ "startle",
+ "starve",
+ "starveling",
+ "starwort",
+ "statant",
+ "statecraft",
+ "statehouse",
+ "stater",
+ "stateroom",
+ "statesman",
+ "stateswoman",
+ "statics",
+ "stationer",
+ "statistics",
+ "statue",
+ "statuesque",
+ "statuette",
+ "stature",
+ "status",
+ "statute",
+ "staunch",
+ "stave",
+ "staves",
+ "stayer",
+ "staysail",
+ "stead",
+ "steadfast",
+ "steak",
+ "stealer",
+ "stealing",
+ "stealth",
+ "steam",
+ "steamboat",
+ "steamer",
+ "steatite",
+ "steel",
+ "steeling",
+ "steelyard",
+ "steenbok",
+ "steep",
+ "steeper",
+ "steeple",
+ "steer",
+ "steerer",
+ "steersman",
+ "stegosaurus",
+ "stela",
+ "stele",
+ "stellar",
+ "steller",
+ "stem",
+ "stem-winder",
+ "stemma",
+ "stemmer",
+ "stench",
+ "stencil",
+ "stenograph",
+ "stenographer",
+ "stent",
+ "stentor",
+ "step",
+ "stepbrother",
+ "stepchild",
+ "stepdaughter",
+ "stepfather",
+ "stephanotis",
+ "stepladder",
+ "stepmother",
+ "stepparent",
+ "steppe",
+ "stepper",
+ "stepsister",
+ "stepson",
+ "stereotype",
+ "sterile",
+ "sterling",
+ "stern",
+ "sterner",
+ "sternpost",
+ "sternum",
+ "stet",
+ "stevedore",
+ "stew",
+ "steward",
+ "stewardess",
+ "stewpan",
+ "stibnite",
+ "stick",
+ "sticker",
+ "stickle",
+ "stickler",
+ "stiff",
+ "stiffener",
+ "stifle",
+ "stifler",
+ "stigma",
+ "stigmata",
+ "stigmatist",
+ "stile",
+ "stiletto",
+ "still",
+ "still-hunt",
+ "stillbirth",
+ "stillborn",
+ "stiller",
+ "stilling",
+ "stillroom",
+ "stilt",
+ "stiltbird",
+ "stimulant",
+ "stimulus",
+ "stinger",
+ "stink",
+ "stinker",
+ "stinkhorn",
+ "stinkpot",
+ "stint",
+ "stinter",
+ "stipe",
+ "stipend",
+ "stipes",
+ "stipple",
+ "stippling",
+ "stipule",
+ "stir",
+ "stirk",
+ "stirrer",
+ "stirrup",
+ "stitch",
+ "stitcher",
+ "stitchwort",
+ "stoat",
+ "stock",
+ "stock-still",
+ "stockade",
+ "stockbroker",
+ "stocker",
+ "stockholder",
+ "stockinet",
+ "stockjobber",
+ "stockman",
+ "stoke",
+ "stokehole",
+ "stoker",
+ "stole",
+ "stolon",
+ "stoma",
+ "stomach",
+ "stomacher",
+ "stomatopod",
+ "stomatopoda",
+ "stomp",
+ "stone-blind",
+ "stone-cold",
+ "stone-dead",
+ "stone-deaf",
+ "stonechat",
+ "stonecrop",
+ "stonecutter",
+ "stonehenge",
+ "stoner",
+ "stoneroot",
+ "stoneware",
+ "stonework",
+ "stonewort",
+ "stood",
+ "stoop",
+ "stooper",
+ "stop",
+ "stopcock",
+ "stopper",
+ "stopple",
+ "storax",
+ "store",
+ "storehouse",
+ "storekeeper",
+ "storeroom",
+ "stork",
+ "storm",
+ "storybook",
+ "stoup",
+ "stout",
+ "stove",
+ "stovepipe",
+ "stover",
+ "stow",
+ "strabismus",
+ "straddle",
+ "straddling",
+ "straggle",
+ "straggler",
+ "straggling",
+ "straight",
+ "straight-out",
+ "straightedge",
+ "straightener",
+ "straightforward",
+ "strainer",
+ "strait",
+ "strake",
+ "strand",
+ "strange",
+ "stranger",
+ "strangle",
+ "strangler",
+ "strangles",
+ "strap",
+ "strappado",
+ "strapper",
+ "strata",
+ "stratagem",
+ "strategics",
+ "strategist",
+ "stratum",
+ "stratus",
+ "straw",
+ "strawboard",
+ "strawworm",
+ "strayer",
+ "streak",
+ "stream",
+ "streamer",
+ "streamlet",
+ "street",
+ "streetwalker",
+ "strength",
+ "strengthener",
+ "streptococcus",
+ "stress",
+ "stretch",
+ "stretcher",
+ "strew",
+ "strewn",
+ "striatum",
+ "strickle",
+ "strict",
+ "stricture",
+ "stride",
+ "strident",
+ "stridor",
+ "strife",
+ "strike",
+ "striker",
+ "stringent",
+ "stringer",
+ "strip",
+ "stripe",
+ "stripling",
+ "stripper",
+ "striver",
+ "strix",
+ "strobile",
+ "strode",
+ "stroke",
+ "stroll",
+ "stroller",
+ "stroma",
+ "strombus",
+ "strong",
+ "stronghold",
+ "strontianite",
+ "strontium",
+ "strop",
+ "strophanthus",
+ "strophe",
+ "strove",
+ "struck",
+ "structure",
+ "struggle",
+ "struggler",
+ "strum",
+ "struma",
+ "strumpet",
+ "strung",
+ "strut",
+ "struthio",
+ "stub",
+ "stubble",
+ "stubborn",
+ "stucco",
+ "stuck",
+ "stuck-up",
+ "stud",
+ "studbook",
+ "student",
+ "studio",
+ "stuff",
+ "stuffer",
+ "stumble",
+ "stumbler",
+ "stump",
+ "stumper",
+ "stun",
+ "stung",
+ "stunk",
+ "stunner",
+ "stunt",
+ "stupa",
+ "stupe",
+ "stupor",
+ "sturgeon",
+ "stutter",
+ "stutterer",
+ "stye",
+ "style",
+ "stylet",
+ "stylist",
+ "stylite",
+ "stylopodium",
+ "stylus",
+ "styrax",
+ "styx",
+ "suave",
+ "sub",
+ "subacute",
+ "subaltern",
+ "subclass",
+ "subcommittee",
+ "subcontract",
+ "subcontractor",
+ "subdeacon",
+ "subdivide",
+ "subdominant",
+ "subdue",
+ "subduer",
+ "subeditor",
+ "subgenus",
+ "subgroup",
+ "subjacent",
+ "subject",
+ "subjectivist",
+ "subjugator",
+ "subkingdom",
+ "sublease",
+ "sublet",
+ "sublieutenant",
+ "sublime",
+ "sublunar",
+ "submediant",
+ "submerge",
+ "submerse",
+ "submit",
+ "submitter",
+ "subocular",
+ "suborder",
+ "suborn",
+ "suborner",
+ "subscribe",
+ "subscriber",
+ "subscript",
+ "subsequent",
+ "subserve",
+ "subservient",
+ "subside",
+ "subsist",
+ "subsoil",
+ "subspecies",
+ "substitute",
+ "substratum",
+ "substructure",
+ "subsume",
+ "subtend",
+ "subterfuge",
+ "subterranean",
+ "subtle",
+ "subtract",
+ "subtracter",
+ "subtrahend",
+ "suburb",
+ "suburban",
+ "subvert",
+ "subverter",
+ "succade",
+ "succedaneum",
+ "succeeder",
+ "success",
+ "successor",
+ "succinct",
+ "succor",
+ "succorer",
+ "succotash",
+ "succuba",
+ "succubus",
+ "succulent",
+ "succumb",
+ "succus",
+ "such",
+ "suck",
+ "sucker",
+ "suckle",
+ "suckling",
+ "sucre",
+ "sudatorium",
+ "sudra",
+ "suds",
+ "sue",
+ "suer",
+ "suet",
+ "suffer",
+ "sufferer",
+ "suffice",
+ "sufficient",
+ "suffix",
+ "suffragan",
+ "suffragist",
+ "suffrutescent",
+ "suffuse",
+ "sufi",
+ "sugar",
+ "sugarplum",
+ "suggest",
+ "suggester",
+ "suicide",
+ "suit",
+ "suite",
+ "suitor",
+ "sula",
+ "sulcus",
+ "sulk",
+ "sulks",
+ "sulphide",
+ "sulphur",
+ "sultan",
+ "sultana",
+ "sum",
+ "sumac",
+ "sumach",
+ "sumatran",
+ "summer",
+ "summerhouse",
+ "summersault",
+ "summerset",
+ "summit",
+ "summon",
+ "summons",
+ "sumner",
+ "sump",
+ "sumpter",
+ "sun",
+ "sunbeam",
+ "sunbonnet",
+ "sunburn",
+ "sunburst",
+ "sunder",
+ "sundew",
+ "sundog",
+ "sundown",
+ "sundries",
+ "sunflower",
+ "sung",
+ "sunglass",
+ "sunk",
+ "sunlight",
+ "sunlit",
+ "sunna",
+ "sunnite",
+ "sunset",
+ "sunshade",
+ "sunstroke",
+ "sunup",
+ "sup",
+ "super",
+ "superabundant",
+ "superb",
+ "supercargo",
+ "supercharge",
+ "supercilium",
+ "superficies",
+ "superhuman",
+ "superincumbent",
+ "superintend",
+ "superintendent",
+ "superior",
+ "superjacent",
+ "superlunar",
+ "supernatant",
+ "supernaturalist",
+ "superorder",
+ "superoxide",
+ "superscribe",
+ "superscript",
+ "supersede",
+ "supersedure",
+ "superstructure",
+ "supervisor",
+ "supinator",
+ "supper",
+ "supplant",
+ "supplanter",
+ "supple",
+ "suppliant",
+ "supplicant",
+ "supplier",
+ "support",
+ "supporter",
+ "suppress",
+ "suppressor",
+ "supra",
+ "supraocular",
+ "supreme",
+ "sura",
+ "surbase",
+ "surcease",
+ "surcharge",
+ "surcoat",
+ "surd",
+ "sure",
+ "surf",
+ "surface",
+ "surfacer",
+ "surfboat",
+ "surfeit",
+ "surfer",
+ "surge",
+ "surgeon",
+ "surmount",
+ "surmounter",
+ "surmullet",
+ "surname",
+ "surpass",
+ "surplice",
+ "surplus",
+ "surpriser",
+ "surrejoinder",
+ "surrender",
+ "surrenderer",
+ "surround",
+ "surtax",
+ "surtout",
+ "surveyor",
+ "survivor",
+ "suslik",
+ "suspect",
+ "suspecter",
+ "suspend",
+ "suspender",
+ "suspense",
+ "suspensor",
+ "suspire",
+ "sustainer",
+ "sustentacular",
+ "susurrant",
+ "susurrus",
+ "sutler",
+ "sutra",
+ "suttee",
+ "suture",
+ "swab",
+ "swad",
+ "swaddle",
+ "swaddling",
+ "swag",
+ "swagger",
+ "swaggerer",
+ "swale",
+ "swallow",
+ "swallowtail",
+ "swallowwort",
+ "swam",
+ "swamp",
+ "swan",
+ "swap",
+ "sward",
+ "swarm",
+ "swart",
+ "swash",
+ "swashbuckler",
+ "swat",
+ "swatch",
+ "swath",
+ "swathe",
+ "swear",
+ "swearer",
+ "sweat",
+ "sweater",
+ "swede",
+ "sweep",
+ "sweeper",
+ "sweepings",
+ "sweepstakes",
+ "sweet",
+ "sweetbread",
+ "sweetbrier",
+ "sweetener",
+ "sweetheart",
+ "sweetmeat",
+ "swell",
+ "swelling",
+ "swelter",
+ "swept",
+ "swerve",
+ "swift",
+ "swifter",
+ "swiftlet",
+ "swig",
+ "swill",
+ "swillings",
+ "swim",
+ "swimmer",
+ "swimmeret",
+ "swindle",
+ "swindler",
+ "swineherd",
+ "swinge",
+ "swinger",
+ "swingletree",
+ "swipe",
+ "swirl",
+ "swiss",
+ "switch",
+ "switchman",
+ "swivel",
+ "swizzle",
+ "swob",
+ "swoon",
+ "swoop",
+ "swop",
+ "sword",
+ "swordsman",
+ "swordtail",
+ "swore",
+ "sworn",
+ "swum",
+ "swung",
+ "sybarite",
+ "sycamore",
+ "syconium",
+ "sycophant",
+ "syllabub",
+ "syllabus",
+ "syllogizer",
+ "sylph",
+ "sylva",
+ "sylvan",
+ "sylvanite",
+ "sylvite",
+ "symbolist",
+ "symbolizer",
+ "sympathizer",
+ "symphonist",
+ "symphyla",
+ "symploce",
+ "symposiarch",
+ "symposiast",
+ "symposium",
+ "symptom",
+ "synagogue",
+ "syncarp",
+ "syncope",
+ "syncytium",
+ "syndrome",
+ "synecdoche",
+ "synentognathi",
+ "synergist",
+ "synod",
+ "synonym",
+ "synonymist",
+ "syntax",
+ "synthesist",
+ "syphilis",
+ "syphon",
+ "syracuse",
+ "syringa",
+ "syringe",
+ "syrinx",
+ "syrup",
+ "system",
+ "systematist",
+ "systematizer",
+ "systemizer",
+ "systole",
+ "tableau",
+ "tablecloth",
+ "tablespoon",
+ "tablet",
+ "tableware",
+ "tabling",
+ "taboo",
+ "tabor",
+ "taboret",
+ "tabour",
+ "tabouret",
+ "tabu",
+ "tabular",
+ "tacamahac",
+ "tacit",
+ "taciturn",
+ "tack",
+ "tacker",
+ "tackle",
+ "tackling",
+ "tact",
+ "tactics",
+ "tactile",
+ "tadpole",
+ "tael",
+ "taffeta",
+ "taffrail",
+ "tag",
+ "tagger",
+ "taguan",
+ "tail",
+ "tailboard",
+ "tailing",
+ "tailor",
+ "tailoress",
+ "tailpiece",
+ "tailrace",
+ "tailstock",
+ "taint",
+ "taira",
+ "take",
+ "take-up",
+ "taker",
+ "talbot",
+ "talc",
+ "tale",
+ "talebearer",
+ "talent",
+ "tales",
+ "taleteller",
+ "talipes",
+ "talipot",
+ "talisman",
+ "talk",
+ "talker",
+ "tall",
+ "tallow",
+ "tallyman",
+ "talmud",
+ "talon",
+ "talus",
+ "tam-tam",
+ "tamandu",
+ "tamanoir",
+ "tamarack",
+ "tamarind",
+ "tamarisk",
+ "tambac",
+ "tambour",
+ "tame",
+ "tamer",
+ "tamias",
+ "tamil",
+ "tammuz",
+ "tamp",
+ "tamper",
+ "tampon",
+ "tan",
+ "tanager",
+ "tandem",
+ "tang",
+ "tangent",
+ "tangle",
+ "tangram",
+ "tank",
+ "tanka",
+ "tankard",
+ "tanner",
+ "tantalite",
+ "tantalizer",
+ "tantalum",
+ "tantalus",
+ "tantamount",
+ "tantrum",
+ "tap",
+ "tapa",
+ "tape",
+ "taper",
+ "tapeworm",
+ "taphouse",
+ "tapioca",
+ "tapir",
+ "tapis",
+ "tapper",
+ "tappet",
+ "taproom",
+ "taproot",
+ "tapster",
+ "tar",
+ "tarantella",
+ "tarantula",
+ "tarboosh",
+ "tardigrada",
+ "tardigrade",
+ "tare",
+ "target",
+ "tariff",
+ "tarn",
+ "taro",
+ "tarot",
+ "tarpan",
+ "tarpon",
+ "tarragon",
+ "tarsi",
+ "tarsier",
+ "tarsius",
+ "tarsus",
+ "tart",
+ "tartan",
+ "tartar",
+ "tartarean",
+ "tartarus",
+ "tartlet",
+ "tartufe",
+ "tartuffe",
+ "tas",
+ "task",
+ "taskmaster",
+ "tasse",
+ "tassel",
+ "tasset",
+ "taste",
+ "taster",
+ "tat",
+ "tatou",
+ "tatter",
+ "tattle",
+ "tattler",
+ "tattling",
+ "tattoo",
+ "tatu",
+ "tau",
+ "taught",
+ "taunt",
+ "taurus",
+ "taut",
+ "tautog",
+ "tavern",
+ "taw",
+ "taws",
+ "tax",
+ "taxer",
+ "taxidermist",
+ "taxis",
+ "taxonomist",
+ "taxpayer",
+ "tayra",
+ "tea",
+ "teach",
+ "teacher",
+ "teacup",
+ "teak",
+ "teakettle",
+ "team",
+ "teamster",
+ "teamwork",
+ "teapot",
+ "tear",
+ "tease",
+ "teasel",
+ "teaser",
+ "teasle",
+ "teaspoon",
+ "teat",
+ "teazel",
+ "technicals",
+ "technique",
+ "technologist",
+ "tectonics",
+ "tedium",
+ "tee",
+ "teem",
+ "teens",
+ "teeter",
+ "teeth",
+ "teetotaler",
+ "teetotum",
+ "teg",
+ "tegular",
+ "telamones",
+ "telegram",
+ "telegraph",
+ "telegrapher",
+ "telegraphist",
+ "teleologist",
+ "teleost",
+ "teleostei",
+ "tell",
+ "teller",
+ "telling",
+ "telltale",
+ "telluride",
+ "tellurium",
+ "telpher",
+ "telugu",
+ "temper",
+ "tempera",
+ "temperature",
+ "tempest",
+ "templar",
+ "temple",
+ "templet",
+ "tempo",
+ "temporizer",
+ "temps",
+ "tempt",
+ "tempter",
+ "temptress",
+ "ten-strike",
+ "tenant",
+ "tench",
+ "tend",
+ "tender",
+ "tenderfoot",
+ "tendon",
+ "tendrac",
+ "tendril",
+ "tenesmus",
+ "tenet",
+ "tenfold",
+ "tennis",
+ "tenon",
+ "tenor",
+ "tenpins",
+ "tenrec",
+ "tense",
+ "tensile",
+ "tensor",
+ "tent",
+ "tentacle",
+ "tentacular",
+ "tentaculata",
+ "tenter",
+ "tenth",
+ "tentmaker",
+ "tentorium",
+ "tenure",
+ "tepee",
+ "tequila",
+ "teratoma",
+ "terbium",
+ "terce",
+ "tercel",
+ "tercelet",
+ "tercet",
+ "terebinth",
+ "teredo",
+ "terete",
+ "tergiversator",
+ "term",
+ "termagant",
+ "termer",
+ "termes",
+ "terminator",
+ "terminus",
+ "termite",
+ "tern",
+ "terpsichore",
+ "terpsichorean",
+ "terrace",
+ "terrier",
+ "terror",
+ "terrorist",
+ "terse",
+ "terzetto",
+ "tessera",
+ "test",
+ "testa",
+ "testacea",
+ "testacean",
+ "testator",
+ "testatrix",
+ "tester",
+ "testes",
+ "testicle",
+ "testicular",
+ "testifier",
+ "testis",
+ "testudinata",
+ "testudo",
+ "tetanus",
+ "tether",
+ "tethys",
+ "tetrad",
+ "tetragon",
+ "tetragrammaton",
+ "tetrahedron",
+ "tetrapod",
+ "tetraspore",
+ "tetravalent",
+ "tetroxide",
+ "tetterwort",
+ "teuton",
+ "texas",
+ "text",
+ "textile",
+ "texture",
+ "th",
+ "thalamus",
+ "thaliacea",
+ "thallium",
+ "thallophyte",
+ "thallus",
+ "thammuz",
+ "thank",
+ "thatch",
+ "thatcher",
+ "thaumaturge",
+ "thaumaturgist",
+ "thaw",
+ "thea",
+ "theater",
+ "theatre",
+ "theatricals",
+ "theban",
+ "theca",
+ "thecodont",
+ "theft",
+ "theist",
+ "theme",
+ "themis",
+ "thenar",
+ "thenceforth",
+ "theobroma",
+ "theodolite",
+ "theologist",
+ "theologizer",
+ "theorem",
+ "theorist",
+ "theorizer",
+ "theosophist",
+ "therapeutics",
+ "there",
+ "thereabout",
+ "thereabouts",
+ "thereafter",
+ "therefor",
+ "therefore",
+ "therefrom",
+ "thereof",
+ "thereon",
+ "thereto",
+ "theretofore",
+ "thereunder",
+ "therewith",
+ "thermidor",
+ "thermodynamics",
+ "thermograph",
+ "thermometrograph",
+ "thermopile",
+ "thermostat",
+ "theropoda",
+ "thesaurus",
+ "theta",
+ "thick",
+ "thick-knee",
+ "thicket",
+ "thickhead",
+ "thickset",
+ "thief",
+ "thieve",
+ "thigh",
+ "thill",
+ "thimble",
+ "thimblerig",
+ "think",
+ "thinker",
+ "thinner",
+ "third",
+ "thirst",
+ "thirster",
+ "thirteenth",
+ "thirtieth",
+ "thirty-second",
+ "thistle",
+ "thither",
+ "tho",
+ "thole",
+ "thong",
+ "thor",
+ "thorax",
+ "thorite",
+ "thorium",
+ "thorn",
+ "thornbill",
+ "thorough",
+ "thoroughfare",
+ "thoroughwort",
+ "thorpe",
+ "thoth",
+ "thou",
+ "though",
+ "thought",
+ "thousand",
+ "thousandth",
+ "thraldom",
+ "thrall",
+ "thralldom",
+ "thrash",
+ "thrasher",
+ "thread",
+ "threadbare",
+ "threader",
+ "threadworm",
+ "threat",
+ "three",
+ "three-decker",
+ "threefold",
+ "thresh",
+ "thresher",
+ "threshold",
+ "threw",
+ "thrice",
+ "thrift",
+ "thrill",
+ "thrilling",
+ "thrips",
+ "throat",
+ "throatwort",
+ "throb",
+ "throe",
+ "thrombus",
+ "throng",
+ "throstle",
+ "throttle",
+ "throttler",
+ "through",
+ "throughout",
+ "throve",
+ "throw",
+ "thrower",
+ "thrown",
+ "throwster",
+ "thrum",
+ "thrush",
+ "thrust",
+ "thruster",
+ "thud",
+ "thug",
+ "thuggee",
+ "thuja",
+ "thule",
+ "thulium",
+ "thumb",
+ "thumbscrew",
+ "thump",
+ "thunder",
+ "thunderbird",
+ "thunderbolt",
+ "thunderclap",
+ "thundercloud",
+ "thunderer",
+ "thunderhead",
+ "thundershower",
+ "thunderstorm",
+ "thus",
+ "thwack",
+ "thwart",
+ "thwarter",
+ "thyme",
+ "thymus",
+ "thyrse",
+ "thyrsus",
+ "thysanopter",
+ "thysanoptera",
+ "thysanura",
+ "tiara",
+ "tick",
+ "ticker",
+ "ticket",
+ "tickle",
+ "tickler",
+ "ticktack",
+ "tidbit",
+ "tide",
+ "tidings",
+ "tidytips",
+ "tie",
+ "tier",
+ "tierce",
+ "tiercel",
+ "tiff",
+ "tiger",
+ "tight",
+ "tighter",
+ "tights",
+ "tigress",
+ "tike",
+ "tilde",
+ "tile",
+ "tiler",
+ "tiling",
+ "till",
+ "tiller",
+ "tilt",
+ "tilter",
+ "tilth",
+ "timber",
+ "timberman",
+ "timbre",
+ "timbrel",
+ "time",
+ "timekeeper",
+ "timepiece",
+ "timer",
+ "timeserver",
+ "tinamou",
+ "tinct",
+ "tincture",
+ "tinder",
+ "tinea",
+ "tinge",
+ "tingle",
+ "tink",
+ "tinker",
+ "tinkle",
+ "tinkling",
+ "tinner",
+ "tinnitus",
+ "tinsel",
+ "tinsmith",
+ "tint",
+ "tinware",
+ "tip",
+ "tip-up",
+ "tipper",
+ "tippet",
+ "tipple",
+ "tippler",
+ "tipstaff",
+ "tiptoe",
+ "tiptop",
+ "tirade",
+ "tire",
+ "tiresome",
+ "tiro",
+ "tissue",
+ "tit",
+ "titan",
+ "titanium",
+ "titbit",
+ "tithe",
+ "tither",
+ "titi",
+ "titlark",
+ "title",
+ "titling",
+ "titmouse",
+ "titter",
+ "tittle",
+ "tittle-tattle",
+ "tittle-tattling",
+ "titular",
+ "to-do",
+ "toad",
+ "toadflax",
+ "toast",
+ "toaster",
+ "toastmaster",
+ "tobacco",
+ "tobacconist",
+ "tobit",
+ "toboggan",
+ "tobogganist",
+ "toccata",
+ "tod",
+ "toddle",
+ "toddler",
+ "toe",
+ "toffee",
+ "tofus",
+ "toga",
+ "together",
+ "toggle",
+ "toil",
+ "toiler",
+ "toilet",
+ "toilette",
+ "toilsome",
+ "tolbooth",
+ "told",
+ "tole",
+ "toledo",
+ "tolerant",
+ "toll",
+ "tollbooth",
+ "toller",
+ "tollhouse",
+ "tollman",
+ "toltec",
+ "tolu",
+ "tom",
+ "tom-tom",
+ "tomahawk",
+ "tomato",
+ "tomb",
+ "tombac",
+ "tomcat",
+ "tome",
+ "tomentum",
+ "tomorrow",
+ "tomtit",
+ "ton",
+ "tonga",
+ "tongs",
+ "tongue",
+ "tongue-tie",
+ "tonight",
+ "tonne",
+ "tonsil",
+ "tonsure",
+ "tonus",
+ "too",
+ "took",
+ "tooling",
+ "toon",
+ "toot",
+ "tooth",
+ "toothache",
+ "toothbrush",
+ "toothpick",
+ "toothsome",
+ "toothwort",
+ "top",
+ "topaz",
+ "topcoat",
+ "tope",
+ "toper",
+ "topgallant",
+ "tophus",
+ "topknot",
+ "topmast",
+ "topmost",
+ "topple",
+ "topsail",
+ "topsoil",
+ "toque",
+ "tor",
+ "torch",
+ "torchbearer",
+ "torchlight",
+ "tore",
+ "toreador",
+ "tormenter",
+ "tormentor",
+ "torn",
+ "tornado",
+ "torpedo",
+ "torpor",
+ "torque",
+ "torques",
+ "torrent",
+ "torsk",
+ "torso",
+ "tort",
+ "torticollis",
+ "tortilla",
+ "tortrix",
+ "torture",
+ "torturer",
+ "torus",
+ "tosh",
+ "toss",
+ "tosser",
+ "tot",
+ "tote",
+ "totem",
+ "totemist",
+ "toter",
+ "totter",
+ "totterer",
+ "toucan",
+ "touch",
+ "touch-me-not",
+ "touchback",
+ "touchdown",
+ "touchwood",
+ "tough",
+ "tour",
+ "touraco",
+ "tourist",
+ "tourniquet",
+ "tousle",
+ "tout",
+ "touter",
+ "tow",
+ "towboat",
+ "towel",
+ "toweling",
+ "tower",
+ "towhee",
+ "town",
+ "townsfolk",
+ "townsman",
+ "towpath",
+ "towrope",
+ "toxicant",
+ "toxicologist",
+ "toxotes",
+ "toyshop",
+ "trabecula",
+ "trabecular",
+ "trace",
+ "tracer",
+ "trachea",
+ "track",
+ "tracker",
+ "tract",
+ "tractile",
+ "tractor",
+ "trad",
+ "trade",
+ "trader",
+ "tradesman",
+ "tradespeople",
+ "traditionalist",
+ "traduce",
+ "traducer",
+ "trafficker",
+ "tragacanth",
+ "tragopan",
+ "tragus",
+ "trail",
+ "trailer",
+ "trailing",
+ "trainband",
+ "trainbearer",
+ "trainer",
+ "traipse",
+ "trait",
+ "traitor",
+ "traitress",
+ "tram",
+ "trammel",
+ "tramp",
+ "tramper",
+ "trample",
+ "trampler",
+ "tranquil",
+ "tranquilizer",
+ "tranquillizer",
+ "transact",
+ "transactor",
+ "transcend",
+ "transcendent",
+ "transcendentalist",
+ "transcriber",
+ "transcript",
+ "transept",
+ "transfer",
+ "transferee",
+ "transferrer",
+ "transfigure",
+ "transfix",
+ "transform",
+ "transformer",
+ "transfuse",
+ "transgress",
+ "transgressor",
+ "transient",
+ "transit",
+ "translator",
+ "translucent",
+ "transmit",
+ "transmitter",
+ "transmute",
+ "transom",
+ "transparent",
+ "transpire",
+ "transplant",
+ "transplanter",
+ "transport",
+ "transporter",
+ "transude",
+ "transverse",
+ "trap",
+ "trapes",
+ "trapeze",
+ "trapezium",
+ "trapezohedron",
+ "trapper",
+ "trappings",
+ "trappist",
+ "traps",
+ "trash",
+ "travail",
+ "trave",
+ "travel",
+ "traveler",
+ "traverse",
+ "traverser",
+ "trawl",
+ "trawler",
+ "trays",
+ "treacle",
+ "tread",
+ "treadle",
+ "treadmill",
+ "treadwheel",
+ "treason",
+ "treasure",
+ "treasurer",
+ "treasuress",
+ "treat",
+ "treater",
+ "treble",
+ "trebuchet",
+ "trebucket",
+ "tree",
+ "treenail",
+ "trefoil",
+ "trellis",
+ "trematode",
+ "tremble",
+ "trembler",
+ "trembling",
+ "tremella",
+ "tremolite",
+ "tremolo",
+ "tremor",
+ "trenail",
+ "trench",
+ "trenchant",
+ "trencher",
+ "trend",
+ "trepan",
+ "trepang",
+ "trespass",
+ "trespasser",
+ "tress",
+ "trestle",
+ "trestlework",
+ "trews",
+ "triad",
+ "triangle",
+ "triangular",
+ "tribe",
+ "tribune",
+ "tribute",
+ "trice",
+ "triceps",
+ "trichina",
+ "trichloride",
+ "trichomanes",
+ "trichoptera",
+ "trichopteran",
+ "trick",
+ "tricker",
+ "trickle",
+ "trickster",
+ "triclinium",
+ "tricolor",
+ "tricot",
+ "tricycle",
+ "tridacna",
+ "trident",
+ "tridymite",
+ "trier",
+ "trifle",
+ "trifler",
+ "trifling",
+ "trifolium",
+ "trig",
+ "trigger",
+ "triglyceride",
+ "trigon",
+ "trigram",
+ "trill",
+ "trilling",
+ "trillium",
+ "trilobite",
+ "trim",
+ "trimester",
+ "trimmer",
+ "trimurti",
+ "tringa",
+ "trinket",
+ "trio",
+ "trionyx",
+ "trioxide",
+ "trip",
+ "tripartite",
+ "tripe",
+ "triple",
+ "triplet",
+ "tripod",
+ "tripoli",
+ "tripos",
+ "tripper",
+ "triptych",
+ "trireme",
+ "trisect",
+ "trismus",
+ "trite",
+ "tritheist",
+ "triticum",
+ "triton",
+ "triumph",
+ "triumvir",
+ "triune",
+ "trivalent",
+ "trivet",
+ "trivium",
+ "troat",
+ "trochanter",
+ "troche",
+ "trochee",
+ "trochlear",
+ "trod",
+ "troglodyte",
+ "troglodytes",
+ "trogon",
+ "trojan",
+ "troll",
+ "troller",
+ "trollop",
+ "troop",
+ "trooper",
+ "trope",
+ "trot",
+ "troth",
+ "trotter",
+ "trou-de-loup",
+ "troubadour",
+ "trouble",
+ "troubler",
+ "troublesome",
+ "trough",
+ "trounce",
+ "troupe",
+ "trousers",
+ "trousseau",
+ "trout",
+ "trowel",
+ "truant",
+ "truce",
+ "truck",
+ "trucker",
+ "truckle",
+ "truckler",
+ "truculent",
+ "trudge",
+ "true",
+ "true-blue",
+ "truelove",
+ "truffle",
+ "trump",
+ "trumpet",
+ "trumpeter",
+ "trumpets",
+ "trumpetwood",
+ "truncheon",
+ "trundle",
+ "trunk",
+ "trunnel",
+ "truss",
+ "trust",
+ "trustee",
+ "truster",
+ "truth",
+ "tryst",
+ "tsar",
+ "tsarina",
+ "tsaritsa",
+ "tsetse",
+ "tub",
+ "tuba",
+ "tube",
+ "tuber",
+ "tubercle",
+ "tubercular",
+ "tubman",
+ "tubular",
+ "tubule",
+ "tuck",
+ "tuckahoe",
+ "tucker",
+ "tucket",
+ "tudor",
+ "tufa",
+ "tuff",
+ "tuft",
+ "tug",
+ "tugboat",
+ "tugger",
+ "tulip",
+ "tulipwood",
+ "tulle",
+ "tumble",
+ "tumble-down",
+ "tumblebug",
+ "tumbler",
+ "tumbling",
+ "tumbrel",
+ "tumbril",
+ "tumor",
+ "tumult",
+ "tumulus",
+ "tun",
+ "tuna",
+ "tundra",
+ "tune",
+ "tuner",
+ "tunguses",
+ "tunicata",
+ "tunker",
+ "tunnel",
+ "tup",
+ "tupelo",
+ "turacou",
+ "turban",
+ "turbot",
+ "turbulent",
+ "turcoman",
+ "turdus",
+ "turf",
+ "turk",
+ "turkeys",
+ "turkis",
+ "turkoman",
+ "turmoil",
+ "turn",
+ "turncoat",
+ "turner",
+ "turnip",
+ "turnix",
+ "turnover",
+ "turnpike",
+ "turnspit",
+ "turnstile",
+ "turpitude",
+ "turret",
+ "turtle",
+ "turtledove",
+ "turtlehead",
+ "turtler",
+ "turtling",
+ "turves",
+ "tuscan",
+ "tuscaroras",
+ "tush",
+ "tusk",
+ "tusker",
+ "tussle",
+ "tussock",
+ "tut",
+ "tutelar",
+ "tutor",
+ "tutoress",
+ "tutsan",
+ "twaddle",
+ "twaddler",
+ "twaddling",
+ "twang",
+ "twayblade",
+ "tweak",
+ "tweedle",
+ "tweer",
+ "tweeze",
+ "tweezers",
+ "twelfth",
+ "twelfthtide",
+ "twelve",
+ "twelvemonth",
+ "twentieth",
+ "twice",
+ "twiddle",
+ "twig",
+ "twilight",
+ "twill",
+ "twiner",
+ "twinge",
+ "twinkle",
+ "twinkler",
+ "twinkling",
+ "twirl",
+ "twist",
+ "twister",
+ "twit",
+ "twitch",
+ "twitter",
+ "two",
+ "twofold",
+ "tycoon",
+ "tyke",
+ "tyler",
+ "tympan",
+ "tympanist",
+ "tympanites",
+ "tympanum",
+ "tyne",
+ "type",
+ "typesetter",
+ "typewrite",
+ "typewriter",
+ "typhon",
+ "typhoon",
+ "typhus",
+ "typo",
+ "typographer",
+ "tyrannicide",
+ "tyrant",
+ "tyre",
+ "tyro",
+ "tzar",
+ "tzarina",
+ "tzetze",
+ "udder",
+ "ultra",
+ "umpire",
+ "ur",
+ "uraninite",
+ "uranium",
+ "uranus",
+ "urban",
+ "urceole",
+ "urdu",
+ "urea",
+ "ureter",
+ "urethra",
+ "urge",
+ "urgent",
+ "urinator",
+ "urn",
+ "urocele",
+ "urochord",
+ "urochorda",
+ "urodele",
+ "uropygium",
+ "ursus",
+ "urtica",
+ "urus",
+ "us",
+ "usbegs",
+ "usbeks",
+ "use",
+ "user",
+ "usher",
+ "usnea",
+ "usufruct",
+ "usurer",
+ "usurp",
+ "usurper",
+ "ut",
+ "utas",
+ "utensil",
+ "uterus",
+ "utes",
+ "utica",
+ "utile",
+ "utmost",
+ "utricle",
+ "utriculus",
+ "utter",
+ "utterer",
+ "utterest",
+ "uttermost",
+ "uvea",
+ "uvula",
+ "uvular",
+ "uxoricide",
+ "vaccinator",
+ "vagabond",
+ "vagrant",
+ "valet",
+ "valor",
+ "valuator",
+ "valuer",
+ "vamper",
+ "vampire",
+ "vanquisher",
+ "vaporizer",
+ "vaquero",
+ "varnisher",
+ "vaticinator",
+ "vaulter",
+ "vaunter",
+ "vender",
+ "venerator",
+ "venter",
+ "ventriloquist",
+ "venturer",
+ "verger",
+ "verifier",
+ "versifier",
+ "vest",
+ "veteran",
+ "vexer",
+ "victim",
+ "victor",
+ "victualer",
+ "viewer",
+ "vilifier",
+ "vindicator",
+ "vintager",
+ "vintner",
+ "violator",
+ "viper",
+ "virago",
+ "virtuoso",
+ "vis-a-vis",
+ "visitant",
+ "visitor",
+ "vivisectionist",
+ "vociferator",
+ "voice",
+ "voider",
+ "volunteer",
+ "voodoo",
+ "voter",
+ "voucher",
+ "vower",
+ "voyager",
+ "vulcanizer",
+ "vulgar",
+ "waddler",
+ "wader",
+ "wag",
+ "wagerer",
+ "wagoner",
+ "wagonwright",
+ "wailer",
+ "wait",
+ "waiter",
+ "waitress",
+ "waker",
+ "walker",
+ "waller",
+ "wallet",
+ "wanderer",
+ "wanton",
+ "warbler",
+ "ward",
+ "warder",
+ "warehouseman",
+ "warmer",
+ "warmonger",
+ "warner",
+ "warrant",
+ "warranter",
+ "warrantor",
+ "warrior",
+ "washer",
+ "washerman",
+ "washerwoman",
+ "washstand",
+ "wassailer",
+ "waster",
+ "watch",
+ "watcher",
+ "watchmaker",
+ "watchman",
+ "watchword",
+ "waterer",
+ "waterleaf",
+ "waterman",
+ "watermark",
+ "watermelon",
+ "waterproof",
+ "waterscape",
+ "waterspout",
+ "waterworn",
+ "watt",
+ "wattle",
+ "wattling",
+ "waul",
+ "wave",
+ "wavelet",
+ "waver",
+ "waverer",
+ "wawl",
+ "wax",
+ "waxwork",
+ "waybill",
+ "wayfarer",
+ "wayside",
+ "wayward",
+ "weak",
+ "weakener",
+ "weakling",
+ "weald",
+ "wealth",
+ "wean",
+ "weapon",
+ "wear",
+ "wearer",
+ "wearisome",
+ "weasel",
+ "weather",
+ "weather-bound",
+ "weatherboard",
+ "weathercock",
+ "weatherglass",
+ "weatherproof",
+ "weatherworn",
+ "weave",
+ "weaver",
+ "web",
+ "weber",
+ "webfoot",
+ "webster",
+ "weder",
+ "wedge",
+ "wedlock",
+ "wee",
+ "weeder",
+ "week",
+ "weep",
+ "weeper",
+ "weevil",
+ "weft",
+ "weigela",
+ "weigh",
+ "weighbridge",
+ "weigher",
+ "weight",
+ "weir",
+ "weird",
+ "weka",
+ "welch",
+ "welcher",
+ "welcome",
+ "welcomer",
+ "weld",
+ "welder",
+ "welfare",
+ "well",
+ "well-known",
+ "well-nigh",
+ "well-read",
+ "well-set",
+ "wellhead",
+ "wellingtons",
+ "welsh",
+ "welsher",
+ "welshman",
+ "welt",
+ "welter",
+ "wench",
+ "wencher",
+ "wend",
+ "wends",
+ "went",
+ "wept",
+ "were",
+ "werewolf",
+ "wesleyan",
+ "west",
+ "western",
+ "westerner",
+ "westernmost",
+ "westmost",
+ "westward",
+ "westwards",
+ "wet",
+ "wether",
+ "whack",
+ "whacker",
+ "whale",
+ "whaleboat",
+ "whaler",
+ "whaling",
+ "whang",
+ "whap",
+ "wharf",
+ "whatever",
+ "whatnot",
+ "whatsoever",
+ "wheat",
+ "wheatear",
+ "wheatworm",
+ "wheedle",
+ "wheel",
+ "wheelbarrow",
+ "wheeler",
+ "wheelhouse",
+ "wheeling",
+ "wheelwork",
+ "wheelwright",
+ "wheeze",
+ "whelk",
+ "whelm",
+ "whelp",
+ "whereabouts",
+ "wherefore",
+ "wheresoever",
+ "wherever",
+ "whet",
+ "whiff",
+ "whiffletree",
+ "whig",
+ "while",
+ "whiles",
+ "whim",
+ "whimper",
+ "whinchat",
+ "whiner",
+ "whip",
+ "whipcord",
+ "whiplash",
+ "whipper",
+ "whippersnapper",
+ "whippletree",
+ "whipsaw",
+ "whipstitch",
+ "whir",
+ "whirl",
+ "whirler",
+ "whirligig",
+ "whirling",
+ "whirlwind",
+ "whisk",
+ "whisker",
+ "whisper",
+ "whisperer",
+ "whist",
+ "whistle",
+ "whistler",
+ "whistling",
+ "whit",
+ "white",
+ "white-hot",
+ "whitebait",
+ "whitecap",
+ "whitehead",
+ "whitener",
+ "whites",
+ "whitester",
+ "whitetail",
+ "whitethorn",
+ "whitethroat",
+ "whitewash",
+ "whitewood",
+ "whitlow",
+ "whitsun",
+ "whitsuntide",
+ "whittle",
+ "whittlings",
+ "whiz",
+ "who",
+ "whole",
+ "wholesale",
+ "wholesome",
+ "whoop",
+ "whooper",
+ "whop",
+ "whopper",
+ "whore",
+ "whoredom",
+ "whoremonger",
+ "whoreson",
+ "whorl",
+ "wichitas",
+ "wick",
+ "wicker",
+ "wickerwork",
+ "wicket",
+ "wide",
+ "wide-awake",
+ "widespread",
+ "widgeon",
+ "widow",
+ "widower",
+ "widowhood",
+ "width",
+ "wield",
+ "wife",
+ "wig",
+ "wigeon",
+ "wiggle",
+ "wiggler",
+ "wight",
+ "wigwag",
+ "wigwam",
+ "wild",
+ "wildebeest",
+ "wilder",
+ "wildfire",
+ "wile",
+ "will",
+ "willet",
+ "willing",
+ "willow",
+ "wilt",
+ "wimble",
+ "wimple",
+ "wince",
+ "winch",
+ "wind",
+ "winder",
+ "windfall",
+ "windflower",
+ "windlass",
+ "windmill",
+ "window",
+ "windpipe",
+ "windsor",
+ "windstorm",
+ "windward",
+ "wineglass",
+ "winger",
+ "wink",
+ "winker",
+ "winkle",
+ "winner",
+ "winnow",
+ "winsome",
+ "winter",
+ "wipe",
+ "wiper",
+ "wire",
+ "wire-puller",
+ "wirework",
+ "wireworm",
+ "wis",
+ "wisdom",
+ "wiseacre",
+ "wish-wash",
+ "wisp",
+ "wit",
+ "witch",
+ "witchcraft",
+ "withdraw",
+ "withdrawer",
+ "withe",
+ "wither",
+ "withers",
+ "withhold",
+ "withholder",
+ "withstand",
+ "withstander",
+ "withstood",
+ "witnesser",
+ "wivern",
+ "wives",
+ "wizard",
+ "woad",
+ "wobble",
+ "woe",
+ "woke",
+ "wold",
+ "wolf",
+ "wolfram",
+ "wolframite",
+ "wollastonite",
+ "wolves",
+ "woman",
+ "womanhood",
+ "womankind",
+ "womb",
+ "wombat",
+ "won",
+ "wonder",
+ "wonderer",
+ "wonderland",
+ "wonders",
+ "wont",
+ "woo",
+ "wood",
+ "woodchuck",
+ "woodcock",
+ "woodcraft",
+ "woodcut",
+ "woodcutter",
+ "woodland",
+ "woodman",
+ "woodpecker",
+ "woodruff",
+ "woodsman",
+ "woodward",
+ "woodwork",
+ "woodworm",
+ "wooer",
+ "woof",
+ "word",
+ "wordbook",
+ "wore",
+ "work",
+ "workbag",
+ "workbasket",
+ "workbench",
+ "workbox",
+ "worker",
+ "workfellow",
+ "workhouse",
+ "workingman",
+ "workman",
+ "workroom",
+ "workshop",
+ "world",
+ "world-wide",
+ "worldling",
+ "worm",
+ "wormhole",
+ "wormwood",
+ "worn",
+ "worn-out",
+ "worrier",
+ "worrisome",
+ "worse",
+ "worser",
+ "worshiper",
+ "worst",
+ "wort",
+ "worth",
+ "worthwhile",
+ "would-be",
+ "wound",
+ "wounder",
+ "wove",
+ "wrack",
+ "wraith",
+ "wrangle",
+ "wrangler",
+ "wrap",
+ "wrapper",
+ "wrasse",
+ "wrath",
+ "wrawl",
+ "wreak",
+ "wreath",
+ "wreathe",
+ "wreck",
+ "wrecker",
+ "wrench",
+ "wrest",
+ "wrester",
+ "wrestle",
+ "wrestler",
+ "wretch",
+ "wriggle",
+ "wriggler",
+ "wright",
+ "wringer",
+ "wrinkle",
+ "wrist",
+ "wristband",
+ "wristlet",
+ "writ",
+ "write",
+ "writer",
+ "writhe",
+ "wrong",
+ "wrongdoer",
+ "wronger",
+ "wrote",
+ "wroth",
+ "wrought",
+ "wrung",
+ "wrymouth",
+ "wryneck",
+ "wulfenite",
+ "wye",
+ "wys",
+ "wyvern",
+ "xenotime",
+ "xeroderma",
+ "xiphias",
+ "xiphosura",
+ "xylem",
+ "xylocopa",
+ "xyris",
+ "yachtsman",
+ "yea",
+ "yeoman",
+ "yielder",
+ "youngster",
+ "younker",
+ "youth",
+ "zealot"
+ ]
\ No newline at end of file
diff --git a/data/verbs.json b/data/verbs.json
new file mode 100644
index 0000000..0ebaaab
--- /dev/null
+++ b/data/verbs.json
@@ -0,0 +1,635 @@
+[
+ "accepted",
+ "added",
+ "admired",
+ "admitted",
+ "advised",
+ "afforded",
+ "agreed",
+ "alerted",
+ "allowed",
+ "amused",
+ "analysed",
+ "announced",
+ "annoyed",
+ "answered",
+ "apologised",
+ "appeared",
+ "applauded",
+ "appreciated",
+ "approved",
+ "argued",
+ "arranged",
+ "arrested",
+ "arrived",
+ "asked",
+ "attached",
+ "attacked",
+ "attempted",
+ "attended",
+ "attracted",
+ "avoided",
+ "backed",
+ "baked",
+ "balanced",
+ "banned",
+ "banged",
+ "bared",
+ "batted",
+ "bathed",
+ "battled",
+ "beamed",
+ "begged",
+ "behaved",
+ "belonged",
+ "bleached",
+ "blessed",
+ "blinded",
+ "blinked",
+ "blotted",
+ "blushed",
+ "boasted",
+ "boiled",
+ "bolted",
+ "bombed",
+ "booked",
+ "bored",
+ "borrowed",
+ "bounced",
+ "bowed",
+ "boxed",
+ "braked",
+ "branched",
+ "breathed",
+ "bruised",
+ "brushed",
+ "bubbled",
+ "bumped",
+ "burned",
+ "buried",
+ "buzzed",
+ "calculated",
+ "called",
+ "camped",
+ "cared",
+ "carried",
+ "carved",
+ "caused",
+ "challenged",
+ "changed",
+ "charged",
+ "chased",
+ "cheated",
+ "checked",
+ "cheered",
+ "chewed",
+ "choked",
+ "chopped",
+ "claimed",
+ "clapped",
+ "cleaned",
+ "cleared",
+ "clipped",
+ "closed",
+ "coached",
+ "coiled",
+ "collected",
+ "coloured",
+ "combed",
+ "commanded",
+ "communicated",
+ "compared",
+ "competed",
+ "complained",
+ "completed",
+ "concentrated",
+ "concerned",
+ "confessed",
+ "confused",
+ "connected",
+ "considered",
+ "consisted",
+ "contained",
+ "continued",
+ "copied",
+ "corrected",
+ "coughed",
+ "counted",
+ "covered",
+ "cracked",
+ "crashed",
+ "crawled",
+ "crossed",
+ "crushed",
+ "cried",
+ "cured",
+ "curled",
+ "curved",
+ "cycled",
+ "dammed",
+ "damaged",
+ "danced",
+ "dared",
+ "decayed",
+ "deceived",
+ "decided",
+ "decorated",
+ "delayed",
+ "delighted",
+ "delivered",
+ "depended",
+ "described",
+ "deserted",
+ "deserved",
+ "destroyed",
+ "detected",
+ "developed",
+ "disagreed",
+ "disappeared",
+ "disapproved",
+ "disarmed",
+ "discovered",
+ "disliked",
+ "divided",
+ "doubled",
+ "doubted",
+ "dragged",
+ "drained",
+ "dreamed",
+ "dressed",
+ "dripped",
+ "dropped",
+ "drowned",
+ "drummed",
+ "dried",
+ "dusted",
+ "earned",
+ "educated",
+ "embarrassed",
+ "employed",
+ "emptied",
+ "encouraged",
+ "ended",
+ "enjoyed",
+ "entered",
+ "entertained",
+ "escaped",
+ "examined",
+ "excited",
+ "excused",
+ "exercised",
+ "existed",
+ "expand",
+ "expected",
+ "explained",
+ "exploded",
+ "extended",
+ "faced",
+ "faded",
+ "failed",
+ "fancied",
+ "fastened",
+ "faxed",
+ "feared",
+ "fenced",
+ "fetched",
+ "filed",
+ "filled",
+ "filmed",
+ "fired",
+ "fitted",
+ "fixed",
+ "flapped",
+ "flashed",
+ "floated",
+ "flooded",
+ "flowed",
+ "flowered",
+ "folded",
+ "followed",
+ "fooled",
+ "forced",
+ "formed",
+ "founded",
+ "framed",
+ "frightened",
+ "fried",
+ "gathered",
+ "gazed",
+ "glowed",
+ "glued",
+ "grabbed",
+ "grated",
+ "greased",
+ "greeted",
+ "grinned",
+ "gripped",
+ "groaned",
+ "guaranteed",
+ "guarded",
+ "guessed",
+ "guided",
+ "hammered",
+ "handed",
+ "handled",
+ "hung",
+ "happened",
+ "harassed",
+ "harmed",
+ "hated",
+ "haunted",
+ "headed",
+ "healed",
+ "heaped",
+ "heated",
+ "helped",
+ "hooked",
+ "hopped",
+ "hoped",
+ "hovered",
+ "hugged",
+ "hummed",
+ "hunted",
+ "hurried",
+ "identified",
+ "ignored",
+ "imagined",
+ "impressed",
+ "improved",
+ "included",
+ "increased",
+ "influenced",
+ "informed",
+ "injected",
+ "injured",
+ "instructed",
+ "intended",
+ "interested",
+ "interfered",
+ "interrupted",
+ "introduced",
+ "invented",
+ "invited",
+ "irritated",
+ "itched",
+ "jailed",
+ "jammed",
+ "jogged",
+ "joined",
+ "joked",
+ "judged",
+ "juggled",
+ "jumped",
+ "kicked",
+ "killed",
+ "kissed",
+ "knelt",
+ "knitted",
+ "knocked",
+ "knotted",
+ "labelled",
+ "landed",
+ "lasted",
+ "laughed",
+ "launched",
+ "learned",
+ "levelled",
+ "licensed",
+ "licked",
+ "lied",
+ "lightened",
+ "liked",
+ "listed",
+ "listened",
+ "lived",
+ "loaded",
+ "locked",
+ "longed",
+ "look",
+ "loved",
+ "manned",
+ "managed",
+ "marched",
+ "marked",
+ "married",
+ "matched",
+ "mated",
+ "mattered",
+ "measured",
+ "meddled",
+ "melted",
+ "memorised",
+ "mended",
+ "messed up",
+ "milked",
+ "mined",
+ "missed",
+ "mixed",
+ "moaned",
+ "moored",
+ "mourned",
+ "moved",
+ "muddled",
+ "mugged",
+ "multiplied",
+ "murdered",
+ "nailed",
+ "named",
+ "needed",
+ "nested",
+ "nodded",
+ "noted",
+ "noticed",
+ "numbered",
+ "obeyed",
+ "objected",
+ "observed",
+ "obtained",
+ "occurred",
+ "offended",
+ "offered",
+ "opened",
+ "ordered",
+ "overflowed",
+ "owed",
+ "owned",
+ "packed",
+ "paddled",
+ "painted",
+ "parked",
+ "parted",
+ "passed",
+ "pasted",
+ "patted",
+ "paused",
+ "pecked",
+ "pedalled",
+ "peeled",
+ "peeped",
+ "performed",
+ "permitted",
+ "phoned",
+ "picked",
+ "pinched",
+ "pined",
+ "placed",
+ "planned",
+ "planted",
+ "played",
+ "pleased",
+ "plugged",
+ "pointed",
+ "poked",
+ "polished",
+ "popped",
+ "possessed",
+ "posted",
+ "poured",
+ "practised",
+ "prayed",
+ "preached",
+ "preceded",
+ "preferred",
+ "prepared",
+ "presented",
+ "preserved",
+ "pressed",
+ "pretended",
+ "prevented",
+ "pricked",
+ "printed",
+ "produced",
+ "programmed",
+ "promised",
+ "protected",
+ "provided",
+ "pulled",
+ "pumped",
+ "punched",
+ "punctured",
+ "punished",
+ "pushed",
+ "questioned",
+ "questioned",
+ "raced",
+ "radiated",
+ "rained",
+ "raised",
+ "reached",
+ "realised",
+ "received",
+ "recognised",
+ "recorded",
+ "reduced",
+ "reflected",
+ "refused",
+ "regretted",
+ "reigned",
+ "rejected",
+ "rejoiced",
+ "relaxed",
+ "released",
+ "relied",
+ "remained",
+ "remembered",
+ "reminded",
+ "removed",
+ "repaired",
+ "repeated",
+ "replaced",
+ "replied",
+ "reported",
+ "reproduced",
+ "requested",
+ "rescued",
+ "retired",
+ "returned",
+ "rhyme",
+ "rinsed",
+ "risked",
+ "robbed",
+ "rocked",
+ "rolled",
+ "rotted",
+ "rubbed",
+ "ruined",
+ "ruled",
+ "rushed",
+ "sacked",
+ "sailed",
+ "satisfied",
+ "saved",
+ "sawed",
+ "scared",
+ "scattered",
+ "scolded",
+ "scorched",
+ "scraped",
+ "scratched",
+ "screamed",
+ "screwed",
+ "scribbled",
+ "scrubbed",
+ "sealed",
+ "searched",
+ "separate",
+ "served",
+ "settled",
+ "shaded",
+ "shared",
+ "shaved",
+ "sheltered",
+ "shivered",
+ "shocked",
+ "shopped",
+ "shrugged",
+ "sighed",
+ "signed",
+ "signalled",
+ "sinned",
+ "sipped",
+ "skied",
+ "skipped",
+ "slapped",
+ "slipped",
+ "slowed",
+ "smashed",
+ "smelled",
+ "smiled",
+ "smoked",
+ "snatched",
+ "sneezed",
+ "sniffed",
+ "snored",
+ "snowed",
+ "soaked",
+ "soothed",
+ "sounded",
+ "spared",
+ "sparked",
+ "sparkled",
+ "spelled",
+ "spilled",
+ "spoiled",
+ "spotted",
+ "sprayed",
+ "sprouted",
+ "squashed",
+ "squeaked",
+ "squealed",
+ "squeezed",
+ "stained",
+ "stamped",
+ "stared",
+ "started",
+ "stayed",
+ "steered",
+ "stepped",
+ "stirred",
+ "stitched",
+ "stopped",
+ "stored",
+ "strapped",
+ "strengthened",
+ "stretched",
+ "stripped",
+ "stroked",
+ "stuffed",
+ "subtracted",
+ "succeeded",
+ "sucked",
+ "suffered",
+ "suggested",
+ "suited",
+ "supplied",
+ "supported",
+ "supposed",
+ "surprised",
+ "surrounded",
+ "suspected",
+ "suspended",
+ "switched",
+ "talked",
+ "tamed",
+ "tapped",
+ "tasted",
+ "teased",
+ "telephoned",
+ "tempted",
+ "terrified",
+ "tested",
+ "thanked",
+ "thawed",
+ "ticked",
+ "tickled",
+ "tied",
+ "timed",
+ "tipped",
+ "tired",
+ "touched",
+ "toured",
+ "towed",
+ "traced",
+ "traded",
+ "trained",
+ "transported",
+ "trapped",
+ "travelled",
+ "treated",
+ "trembled",
+ "tricked",
+ "tripped",
+ "trotted",
+ "troubled",
+ "trusted",
+ "tried",
+ "tugged",
+ "tumbled",
+ "turned",
+ "twisted",
+ "typed",
+ "undressed",
+ "unfastened",
+ "united",
+ "unlocked",
+ "unpacked",
+ "untidied",
+ "used",
+ "vanished",
+ "visited",
+ "wailed",
+ "waited",
+ "walked",
+ "wandered",
+ "wanted",
+ "warmed",
+ "warned",
+ "washed",
+ "wasted",
+ "watched",
+ "watered",
+ "waved",
+ "weighed",
+ "welcomed",
+ "whined",
+ "whipped",
+ "whirled",
+ "whispered",
+ "whistled",
+ "winked",
+ "wiped",
+ "wished",
+ "wobbled",
+ "wondered",
+ "worked",
+ "worried",
+ "wrapped",
+ "wrecked",
+ "wrestled",
+ "wriggled",
+ "x-rayed",
+ "yawned",
+ "yelled",
+ "zipped",
+ "zoomed"
+]
\ No newline at end of file
diff --git a/index.js b/index.js
new file mode 100644
index 0000000..e5a1076
--- /dev/null
+++ b/index.js
@@ -0,0 +1,111 @@
+
+/**
+ * This module provides the main function that outputs a username.
+ * Copyright 2021 © Joey Malvinni
+ * @author Joey Malvinni
+ *
+ * @license
+ * Copyright 2021 © Joey Malvinni. All Rights Reserved.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ **/
+
+const fs = require('fs');
+const capitalize = require('./src/capitalize')
+const CategoryError = require('./src/CategoryError')
+const { randomNumber, randomRange } = require('./src/random')
+const shuffle = require('./src/shuffle')
+
+let words = {};
+
+let wordCategories = [];
+
+let wordsFolder;
+
+wordsFolder = fs.readdirSync(__dirname + '\\data')
+
+for(let i = 0; i < wordsFolder.length; i++){
+ words[wordsFolder[i].slice(0, -5).split('_').join(' ')] = JSON.parse(fs.readFileSync(__dirname + '\\data\\' + wordsFolder[i]).toString());
+ wordCategories.push(wordsFolder[i].slice(0, -5).split('_').join(' '));
+};
+
+function generateNumber(){
+ var number = randomNumber(randomRange(1, 6));
+ while(isNaN(number)){
+ number = randomNumber(randomRange(1, 6));
+ };
+ return number;
+}
+
+/**
+ * Generates a username.
+ * @function
+ * @param {object} settings - Advanced options can be set here.
+ */
+
+function generateUsername(settings){
+ settings = settings || {};
+
+ if (typeof(settings.wordFormatter) !== 'function') {
+ settings.wordFormatter = (word) => word;
+ };
+
+ if (typeof(settings.formatter) !== 'function') {
+ settings.formatter = (word) => word;
+ };
+
+ if (typeof(settings.separator) !== 'string') {
+ settings.separator = '';
+ };
+
+ if (!Array.isArray(settings.order)) {
+ settings.order = ["adjectives", "nouns", "numbers"];
+ };
+
+ if (!Array.isArray(settings.capitalize)) {
+ settings.capitalize = wordCategories;
+ };
+
+
+ var final = '';
+
+ for (let i = 0; i < settings.order.length; i++){
+ if (typeof words[settings.order[i]] !== 'undefined' && wordCategories.indexOf(settings.order[i]) !== -1) {
+ let index = randomNumber(randomRange(0, words[settings.order[i]].length));
+ while(typeof words[settings.order[i]][index] == 'undefined'){
+ index = randomNumber(randomRange(0, words[settings.order[i]].length));
+ };
+ let word = shuffle(words[settings.order[i]])[index].toString();
+ if (settings.capitalize.includes(settings.order[i])) {
+ word = capitalize(word);
+ } else {
+ word = word.toLowerCase();
+ };
+ final += settings.wordFormatter(word);
+ } else {
+ if (settings.order[i] === 'numbers') {
+ final += settings.wordFormatter(generateNumber().toString());
+ } else {
+ if (settings.customWords) {
+ final += settings.wordFormatter(settings.order[i].toString());
+ } else {
+ throw new CategoryError(settings.order[i]);
+ };
+ };
+ };
+ if (i !== settings.order.length - 1) final += settings.separator;
+ };
+ return settings.formatter(final.toString());
+};
+
+module.exports = generateUsername;
\ No newline at end of file
diff --git a/logos/RandomUsernamesLogo.png b/logos/RandomUsernamesLogo.png
new file mode 100644
index 0000000..26022d8
Binary files /dev/null and b/logos/RandomUsernamesLogo.png differ
diff --git a/logos/RandomUsernamesLogo.svg b/logos/RandomUsernamesLogo.svg
new file mode 100644
index 0000000..e3b32ab
--- /dev/null
+++ b/logos/RandomUsernamesLogo.svg
@@ -0,0 +1,19 @@
+
diff --git a/logos/RandomUsernamesLogo_v1.png b/logos/RandomUsernamesLogo_v1.png
new file mode 100644
index 0000000..a42fc54
Binary files /dev/null and b/logos/RandomUsernamesLogo_v1.png differ
diff --git a/logos/RandomUsernamesLogo_v1.svg b/logos/RandomUsernamesLogo_v1.svg
new file mode 100644
index 0000000..36c0ce3
--- /dev/null
+++ b/logos/RandomUsernamesLogo_v1.svg
@@ -0,0 +1,33 @@
+
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..a88e78a
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,1935 @@
+{
+ "name": "random-usernames",
+ "version": "1.0.0",
+ "lockfileVersion": 2,
+ "requires": true,
+ "packages": {
+ "": {
+ "version": "1.0.0",
+ "license": "Apache-2.0",
+ "devDependencies": {
+ "chai": "*",
+ "mocha": "*"
+ }
+ },
+ "node_modules/@ungap/promise-all-settled": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz",
+ "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==",
+ "dev": true
+ },
+ "node_modules/ansi-colors": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
+ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
+ "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
+ "dev": true,
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
+ },
+ "node_modules/assertion-error": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
+ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "dev": true
+ },
+ "node_modules/binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/browser-stdout": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
+ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
+ "dev": true
+ },
+ "node_modules/camelcase": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz",
+ "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/chai": {
+ "version": "4.3.3",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.3.tgz",
+ "integrity": "sha512-MPSLOZwxxnA0DhLE84klnGPojWFK5KuhP7/j5dTsxpr2S3XlkqJP5WbyYl1gCTWvG2Z5N+HD4F472WsbEZL6Pw==",
+ "dev": true,
+ "dependencies": {
+ "assertion-error": "^1.1.0",
+ "check-error": "^1.0.2",
+ "deep-eql": "^3.0.1",
+ "get-func-name": "^2.0.0",
+ "pathval": "^1.1.1",
+ "type-detect": "^4.0.5"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/chalk": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+ "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/chalk/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/check-error": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
+ "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/chokidar": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz",
+ "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==",
+ "dev": true,
+ "dependencies": {
+ "anymatch": "~3.1.1",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.0",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.5.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.1"
+ }
+ },
+ "node_modules/cliui": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "node_modules/cliui/node_modules/ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cliui/node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cliui/node_modules/string-width": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
+ "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cliui/node_modules/strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
+ "node_modules/debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/debug/node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "node_modules/decamelize": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
+ "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/deep-eql": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
+ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
+ "dev": true,
+ "dependencies": {
+ "type-detect": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=0.12"
+ }
+ },
+ "node_modules/diff": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
+ "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.3.1"
+ }
+ },
+ "node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "node_modules/escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/flat": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
+ "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
+ "dev": true,
+ "bin": {
+ "flat": "cli.js"
+ }
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "dev": true,
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "dev": true,
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
+ "node_modules/get-func-name": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
+ "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/growl": {
+ "version": "1.10.5",
+ "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
+ "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.x"
+ }
+ },
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/he": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+ "dev": true,
+ "bin": {
+ "he": "bin/he"
+ }
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "node_modules/is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
+ "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
+ "dev": true,
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/is-plain-obj": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "node_modules/js-yaml": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz",
+ "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==",
+ "dev": true,
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/log-symbols": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz",
+ "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/mocha": {
+ "version": "8.3.1",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.3.1.tgz",
+ "integrity": "sha512-5SBMxANWqOv5bw3Hx+HVgaWlcWcFEQDUdaUAr1AUU+qwtx6cowhn7gEDT/DwQP7uYxnvShdUOVLbTYAHOEGfDQ==",
+ "dev": true,
+ "dependencies": {
+ "@ungap/promise-all-settled": "1.1.2",
+ "ansi-colors": "4.1.1",
+ "browser-stdout": "1.3.1",
+ "chokidar": "3.5.1",
+ "debug": "4.3.1",
+ "diff": "5.0.0",
+ "escape-string-regexp": "4.0.0",
+ "find-up": "5.0.0",
+ "glob": "7.1.6",
+ "growl": "1.10.5",
+ "he": "1.2.0",
+ "js-yaml": "4.0.0",
+ "log-symbols": "4.0.0",
+ "minimatch": "3.0.4",
+ "ms": "2.1.3",
+ "nanoid": "3.1.20",
+ "serialize-javascript": "5.0.1",
+ "strip-json-comments": "3.1.1",
+ "supports-color": "8.1.1",
+ "which": "2.0.2",
+ "wide-align": "1.1.3",
+ "workerpool": "6.1.0",
+ "yargs": "16.2.0",
+ "yargs-parser": "20.2.4",
+ "yargs-unparser": "2.0.0"
+ },
+ "bin": {
+ "_mocha": "bin/_mocha",
+ "mocha": "bin/mocha"
+ },
+ "engines": {
+ "node": ">= 10.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mochajs"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true
+ },
+ "node_modules/nanoid": {
+ "version": "3.1.20",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz",
+ "integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==",
+ "dev": true,
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "dev": true,
+ "dependencies": {
+ "yocto-queue": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/pathval": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
+ "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/picomatch": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
+ "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "dev": true,
+ "dependencies": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "node_modules/readdirp": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
+ "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
+ "dev": true,
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/serialize-javascript": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz",
+ "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==",
+ "dev": true,
+ "dependencies": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "node_modules/string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "dependencies": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/type-detect": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/wide-align": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^1.0.2 || 2"
+ }
+ },
+ "node_modules/workerpool": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz",
+ "integrity": "sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==",
+ "dev": true
+ },
+ "node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/string-width": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
+ "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "node_modules/y18n": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz",
+ "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yargs": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+ "dev": true,
+ "dependencies": {
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yargs-parser": {
+ "version": "20.2.4",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
+ "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yargs-unparser": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
+ "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
+ "dev": true,
+ "dependencies": {
+ "camelcase": "^6.0.0",
+ "decamelize": "^4.0.0",
+ "flat": "^5.0.2",
+ "is-plain-obj": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yargs/node_modules/ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/yargs/node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/yargs/node_modules/string-width": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
+ "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/yargs/node_modules/strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/yocto-queue": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ }
+ },
+ "dependencies": {
+ "@ungap/promise-all-settled": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz",
+ "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==",
+ "dev": true
+ },
+ "ansi-colors": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
+ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "anymatch": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
+ "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
+ "dev": true,
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
+ },
+ "assertion-error": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
+ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
+ "dev": true
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "dev": true
+ },
+ "binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "browser-stdout": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
+ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
+ "dev": true
+ },
+ "camelcase": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz",
+ "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==",
+ "dev": true
+ },
+ "chai": {
+ "version": "4.3.3",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.3.tgz",
+ "integrity": "sha512-MPSLOZwxxnA0DhLE84klnGPojWFK5KuhP7/j5dTsxpr2S3XlkqJP5WbyYl1gCTWvG2Z5N+HD4F472WsbEZL6Pw==",
+ "dev": true,
+ "requires": {
+ "assertion-error": "^1.1.0",
+ "check-error": "^1.0.2",
+ "deep-eql": "^3.0.1",
+ "get-func-name": "^2.0.0",
+ "pathval": "^1.1.1",
+ "type-detect": "^4.0.5"
+ }
+ },
+ "chalk": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+ "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "check-error": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
+ "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
+ "dev": true
+ },
+ "chokidar": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz",
+ "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==",
+ "dev": true,
+ "requires": {
+ "anymatch": "~3.1.1",
+ "braces": "~3.0.2",
+ "fsevents": "~2.3.1",
+ "glob-parent": "~5.1.0",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.5.0"
+ }
+ },
+ "cliui": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
+ "dev": true,
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
+ "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.0"
+ }
+ }
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
+ "debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ }
+ }
+ },
+ "decamelize": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
+ "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
+ "dev": true
+ },
+ "deep-eql": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
+ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
+ "dev": true,
+ "requires": {
+ "type-detect": "^4.0.0"
+ }
+ },
+ "diff": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
+ "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "flat": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
+ "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
+ "dev": true
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "dev": true,
+ "optional": true
+ },
+ "get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "dev": true
+ },
+ "get-func-name": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
+ "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
+ "dev": true
+ },
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "growl": {
+ "version": "1.10.5",
+ "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
+ "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "he": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "requires": {
+ "binary-extensions": "^2.0.0"
+ }
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
+ "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "is-plain-obj": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
+ "dev": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz",
+ "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==",
+ "dev": true,
+ "requires": {
+ "argparse": "^2.0.1"
+ }
+ },
+ "locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^5.0.0"
+ }
+ },
+ "log-symbols": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz",
+ "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.0.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "mocha": {
+ "version": "8.3.1",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.3.1.tgz",
+ "integrity": "sha512-5SBMxANWqOv5bw3Hx+HVgaWlcWcFEQDUdaUAr1AUU+qwtx6cowhn7gEDT/DwQP7uYxnvShdUOVLbTYAHOEGfDQ==",
+ "dev": true,
+ "requires": {
+ "@ungap/promise-all-settled": "1.1.2",
+ "ansi-colors": "4.1.1",
+ "browser-stdout": "1.3.1",
+ "chokidar": "3.5.1",
+ "debug": "4.3.1",
+ "diff": "5.0.0",
+ "escape-string-regexp": "4.0.0",
+ "find-up": "5.0.0",
+ "glob": "7.1.6",
+ "growl": "1.10.5",
+ "he": "1.2.0",
+ "js-yaml": "4.0.0",
+ "log-symbols": "4.0.0",
+ "minimatch": "3.0.4",
+ "ms": "2.1.3",
+ "nanoid": "3.1.20",
+ "serialize-javascript": "5.0.1",
+ "strip-json-comments": "3.1.1",
+ "supports-color": "8.1.1",
+ "which": "2.0.2",
+ "wide-align": "1.1.3",
+ "workerpool": "6.1.0",
+ "yargs": "16.2.0",
+ "yargs-parser": "20.2.4",
+ "yargs-unparser": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true
+ },
+ "nanoid": {
+ "version": "3.1.20",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz",
+ "integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==",
+ "dev": true
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "dev": true,
+ "requires": {
+ "yocto-queue": "^0.1.0"
+ }
+ },
+ "p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^3.0.2"
+ }
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true
+ },
+ "pathval": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
+ "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
+ "dev": true
+ },
+ "picomatch": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
+ "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
+ "dev": true
+ },
+ "randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "readdirp": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
+ "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
+ "dev": true,
+ "requires": {
+ "picomatch": "^2.2.1"
+ }
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+ "dev": true
+ },
+ "safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "dev": true
+ },
+ "serialize-javascript": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz",
+ "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==",
+ "dev": true,
+ "requires": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ },
+ "strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "type-detect": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
+ "dev": true
+ },
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "wide-align": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+ "dev": true,
+ "requires": {
+ "string-width": "^1.0.2 || 2"
+ }
+ },
+ "workerpool": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz",
+ "integrity": "sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==",
+ "dev": true
+ },
+ "wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
+ "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.0"
+ }
+ }
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "y18n": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz",
+ "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==",
+ "dev": true
+ },
+ "yargs": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+ "dev": true,
+ "requires": {
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
+ "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.0"
+ }
+ }
+ }
+ },
+ "yargs-parser": {
+ "version": "20.2.4",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
+ "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
+ "dev": true
+ },
+ "yargs-unparser": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
+ "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^6.0.0",
+ "decamelize": "^4.0.0",
+ "flat": "^5.0.2",
+ "is-plain-obj": "^2.1.0"
+ }
+ },
+ "yocto-queue": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "dev": true
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..f06083c
--- /dev/null
+++ b/package.json
@@ -0,0 +1,35 @@
+{
+ "name": "random-usernames",
+ "version": "1.0.0",
+ "description": "An advanced, fast, and customizable username framework for Node.",
+ "main": "index.js",
+ "directories": {
+ "test": "tests"
+ },
+ "scripts": {
+ "test": "mocha tests/index.test.js"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/joeymalvinni/random-usernames.git"
+ },
+ "keywords": [
+ "username",
+ "generator",
+ "username-generator",
+ "random-usernames",
+ "usernames",
+ "advanced",
+ "usernames"
+ ],
+ "author": "Joey Malvinni",
+ "license": "Apache-2.0",
+ "bugs": {
+ "url": "https://github.com/joeymalvinni/random-usernames/issues"
+ },
+ "homepage": "https://github.com/joeymalvinni/random-usernames#readme",
+ "devDependencies": {
+ "chai": "*",
+ "mocha": "*"
+ }
+}
diff --git a/src/CategoryError.js b/src/CategoryError.js
new file mode 100644
index 0000000..5540d24
--- /dev/null
+++ b/src/CategoryError.js
@@ -0,0 +1,9 @@
+class CategoryNotFoundError extends Error {
+ constructor(category) {
+ super('The requested category "' + category + '" was not found. If you would like to add "' + category + '" as an absolute string in the username, enable customWords in the settings object.');
+ this.name = this.constructor.name;
+ Error.captureStackTrace(this, this.constructor);
+ }
+}
+
+module.exports = CategoryNotFoundError;
\ No newline at end of file
diff --git a/src/capitalize.js b/src/capitalize.js
new file mode 100644
index 0000000..e224933
--- /dev/null
+++ b/src/capitalize.js
@@ -0,0 +1,8 @@
+function capitalize(string){
+ if (typeof string !== 'string'){
+ return string;
+ };
+ return string.charAt(0).toUpperCase() + string.slice(1);
+}
+
+module.exports = capitalize;
\ No newline at end of file
diff --git a/src/random.js b/src/random.js
new file mode 100644
index 0000000..b21148a
--- /dev/null
+++ b/src/random.js
@@ -0,0 +1,14 @@
+const crypto = require('crypto');
+
+function randomNumber(length){
+ return parseInt(crypto.randomBytes(length).toString('hex'));
+}
+
+function randomRange(min, max) {
+ return Math.random() * (max - min) + min;
+}
+
+module.exports = {
+ randomNumber,
+ randomRange
+}
\ No newline at end of file
diff --git a/src/readAsArray.js b/src/readAsArray.js
new file mode 100644
index 0000000..44c6968
--- /dev/null
+++ b/src/readAsArray.js
@@ -0,0 +1,16 @@
+var fs = require('fs')
+
+function read(filePath){
+ return new Promise((resolve, reject) => {
+ fs.readFile(filePath, 'utf8', function(err, array){
+ if(err){
+ reject(err)
+ }
+ array = JSON.parse(array)
+ array = eval(array)
+ resolve(array)
+ })
+ })
+}
+
+module.exports = read;
\ No newline at end of file
diff --git a/src/shuffle.js b/src/shuffle.js
new file mode 100644
index 0000000..3f5e0cd
--- /dev/null
+++ b/src/shuffle.js
@@ -0,0 +1,18 @@
+// Taken from: https://stackoverflow.com/a/2450976
+
+function shuffle(array) {
+ var currentIndex = array.length, temporaryValue, randomIndex;
+
+ while (0 !== currentIndex) {
+ randomIndex = Math.floor(Math.random() * currentIndex);
+ currentIndex -= 1;
+
+ temporaryValue = array[currentIndex];
+ array[currentIndex] = array[randomIndex];
+ array[randomIndex] = temporaryValue;
+ }
+
+ return array;
+}
+
+module.exports = shuffle;
\ No newline at end of file
diff --git a/src/writeToJSON.js b/src/writeToJSON.js
new file mode 100644
index 0000000..956f469
--- /dev/null
+++ b/src/writeToJSON.js
@@ -0,0 +1,22 @@
+const readArray = require('./readAsArray')
+
+async function writeToJSON(file, ...data){
+ let arr = [];
+
+ if(fs.existsSync(file)){
+ let users = await readArray(file)
+
+ users.forEach(object => {
+ arr.push(object)
+ })
+ arr.push(user)
+
+ fs.writeFileSync(file, JSON.stringify(arr, null, 4))
+ } else {
+ arr.push(user)
+ fs.writeFileSync(file, JSON.stringify(arr, null, 4))
+ }
+ return;
+}
+
+module.exports = writeToJSON;
\ No newline at end of file
diff --git a/tests/index.test.js b/tests/index.test.js
new file mode 100644
index 0000000..849df47
--- /dev/null
+++ b/tests/index.test.js
@@ -0,0 +1,95 @@
+let generateUsername = require('../index');
+let CategoryError = require('../src/CategoryError')
+let chai = require('chai')
+var expect = chai.expect;
+
+function isCapitalized(word){
+ return word.charAt(0) === word.charAt(0).toUpperCase()
+}
+
+chai.Assertion.addProperty('uppercase', function () {
+ var obj = this._obj;
+ new chai.Assertion(obj).to.be.a('string');
+
+ this.assert(
+ obj === obj.toUpperCase(),
+ 'expected #{this} to be all uppercase',
+ 'expected #{this} to not be all uppercase'
+ );
+});
+
+chai.Assertion.addProperty('capitalized', function () {
+ var obj = this._obj;
+ new chai.Assertion(obj).to.be.a('string');
+
+ this.assert(
+ isCapitalized(obj),
+ 'expected #{this} to start with an uppercase',
+ 'expected #{this} to not start with an uppercase'
+ );
+});
+
+
+describe('Random Usernames:', function() {
+ it('Should output three items in an array', function(done){
+ expect(generateUsername({
+ order: ["adjectives", "nouns"],
+ separator: '_',
+ formatter: (str) => str.split('_'),
+ })).to.have.length(2)
+ done()
+ })
+ it('Should add custom words when customWords is enabled', function(done){
+ let output = generateUsername({
+ order: ["customWord", "adjectives", "nouns"],
+ separator: '_',
+ formatter: (str) => str.split('_'),
+ customWords: true
+ })
+
+ expect(output).to.have.length(3);
+ expect(output).to.include('customWord');
+ done()
+ })
+ it('Should throw an error when customWords isn\'t enabled and an inputted word is not a category', function(done){
+ try {
+ generateUsername({
+ order: ["wordThatWillThrowError"],
+ customWords: false
+ })
+ } catch (err) {
+ expect(err.message).to.eql(new CategoryError('wordThatWillThrowError').message)
+ done()
+ }
+ })
+ it('Should correctly format words when specifying a custom formatter', function(done){
+ let output = generateUsername({
+ order: ["adjectives", "nouns"],
+ formatter: (word) => word.toUpperCase()
+ })
+
+ expect(output).to.be.uppercase;
+ done()
+ })
+ it('Should use a seperator when specified', function(done){
+ let output = generateUsername({
+ separator: '__'
+ })
+
+ expect(output).to.include('__')
+ done()
+ })
+ it('Should capitalize words when specified', function(done){
+ let output = generateUsername({
+ order: ['nouns', 'adjectives'],
+ capitalize: ['nouns', 'adjectives'],
+ separator: '_',
+ formatter: (username) => username.split('_')
+ })
+
+ expect(output).to.have.length(2)
+ expect(output[0]).to.be.capitalized
+ expect(output[1]).to.be.capitalized
+ done()
+ })
+});
\ No newline at end of file