├── .eslintrc
├── .github
└── workflows
│ ├── codeql.yml
│ └── publish.yml
├── .gitignore
├── .nvmrc
├── .nycrc.json
├── CHANGELOG.md
├── LICENSE
├── README.md
├── SECURITY.md
├── package-lock.json
├── package.json
├── src
├── data
│ ├── adjectives.ts
│ ├── index.ts
│ └── nouns.ts
└── index.ts
├── tests
└── index.test.ts
└── tsconfig.json
/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "root": true,
3 | "parser": "@typescript-eslint/parser",
4 | "plugins": ["@typescript-eslint"],
5 | "env": {
6 | "es6": true,
7 | "node": true,
8 | "mocha": true
9 | },
10 | "extends": [
11 | "eslint:recommended",
12 | "plugin:@typescript-eslint/eslint-recommended",
13 | "plugin:@typescript-eslint/recommended"
14 | ],
15 | "parserOptions": {
16 | "ecmaVersion": 2018,
17 | "sourceType": "module"
18 | },
19 | "rules": {
20 | "no-console": "off",
21 | "linebreak-style": "off",
22 | "quotes": [
23 | "error",
24 | "double",
25 | { "allowTemplateLiterals": true }
26 | ],
27 | "keyword-spacing": ["error", { "before": true }],
28 | "space-before-blocks": ["error"]
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/.github/workflows/codeql.yml:
--------------------------------------------------------------------------------
1 | name: "CodeQL"
2 |
3 | on:
4 | push:
5 | branches: [ "main" ]
6 | pull_request:
7 | branches: [ "main" ]
8 | schedule:
9 | - cron: "35 6 * * 4"
10 |
11 | jobs:
12 | analyze:
13 | name: Analyze
14 | runs-on: ubuntu-latest
15 | permissions:
16 | actions: read
17 | contents: read
18 | security-events: write
19 |
20 | strategy:
21 | fail-fast: false
22 | matrix:
23 | language: [ javascript ]
24 |
25 | steps:
26 | - name: Checkout
27 | uses: actions/checkout@v3
28 |
29 | - name: Initialize CodeQL
30 | uses: github/codeql-action/init@v2
31 | with:
32 | languages: ${{ matrix.language }}
33 | queries: +security-and-quality
34 |
35 | - name: Autobuild
36 | uses: github/codeql-action/autobuild@v2
37 |
38 | - name: Perform CodeQL Analysis
39 | uses: github/codeql-action/analyze@v2
40 | with:
41 | category: "/language:${{ matrix.language }}"
42 |
--------------------------------------------------------------------------------
/.github/workflows/publish.yml:
--------------------------------------------------------------------------------
1 | # This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node
2 | # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs
3 |
4 | name: Node.js CI
5 |
6 | on:
7 | push:
8 | branches: [ "main" ]
9 | pull_request:
10 | branches: '*'
11 |
12 | jobs:
13 | quality:
14 |
15 | runs-on: ${{ matrix.os }}
16 |
17 | strategy:
18 | matrix:
19 | node-version: [18.x]
20 | os: [ubuntu-latest]
21 | # See supported Node.js release schedule at https://nodejs.org/en/about/releases/
22 |
23 | steps:
24 | - uses: actions/checkout@v3
25 | - name: Use Node.js ${{ matrix.node-version }}
26 | uses: actions/setup-node@v3
27 | with:
28 | node-version: ${{ matrix.node-version }}
29 | cache: 'npm'
30 | - run: npm ci
31 | - run: npm run coverage
32 | - run: npm test
33 | - run: npm run lint
34 |
35 | publish:
36 | runs-on: ubuntu-latest
37 | if: ${{ github.ref == 'refs/heads/main' }}
38 | needs: [quality]
39 | steps:
40 | - uses: actions/checkout@v3
41 | - name: Use Node.js ${{ matrix.node-version }}
42 | uses: actions/setup-node@v3
43 | with:
44 | node-version: ${{ matrix.node-version }}
45 | cache: 'npm'
46 | - run: npm ci
47 | - run: npm run build --if-present
48 | - run: npm run semantic-release
49 | env:
50 | NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
51 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
52 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | lerna-debug.log*
8 |
9 | # Diagnostic reports (https://nodejs.org/api/report.html)
10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
11 |
12 | # Runtime data
13 | pids
14 | *.pid
15 | *.seed
16 | *.pid.lock
17 |
18 | # Directory for instrumented libs generated by jscoverage/JSCover
19 | lib-cov
20 |
21 | # Coverage directory used by tools like istanbul
22 | coverage
23 | *.lcov
24 |
25 | # nyc test coverage
26 | .nyc_output
27 |
28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
29 | .grunt
30 |
31 | # Bower dependency directory (https://bower.io/)
32 | bower_components
33 |
34 | # node-waf configuration
35 | .lock-wscript
36 |
37 | # Compiled binary addons (https://nodejs.org/api/addons.html)
38 | build/Release
39 |
40 | # Dependency directories
41 | node_modules/
42 | jspm_packages/
43 |
44 | # TypeScript v1 declaration files
45 | typings/
46 |
47 | # TypeScript cache
48 | *.tsbuildinfo
49 |
50 | # Optional npm cache directory
51 | .npm
52 |
53 | # Optional eslint cache
54 | .eslintcache
55 |
56 | # Microbundle cache
57 | .rpt2_cache/
58 | .rts2_cache_cjs/
59 | .rts2_cache_es/
60 | .rts2_cache_umd/
61 |
62 | # Optional REPL history
63 | .node_repl_history
64 |
65 | # Output of 'npm pack'
66 | *.tgz
67 |
68 | # Yarn Integrity file
69 | .yarn-integrity
70 |
71 | # dotenv environment variables file
72 | .env
73 | .env.test
74 |
75 | # parcel-bundler cache (https://parceljs.org/)
76 | .cache
77 |
78 | # Next.js build output
79 | .next
80 |
81 | # Nuxt.js build / generate output
82 | .nuxt
83 | dist
84 |
85 | # Gatsby files
86 | .cache/
87 | # Comment in the public line in if your project uses Gatsby and *not* Next.js
88 | # https://nextjs.org/blog/next-9-1#public-directory-support
89 | # public
90 |
91 | # vuepress build output
92 | .vuepress/dist
93 |
94 | # Serverless directories
95 | .serverless/
96 |
97 | # FuseBox cache
98 | .fusebox/
99 |
100 | # DynamoDB Local files
101 | .dynamodb/
102 |
103 | # TernJS port file
104 | .tern-port
105 |
106 | .DS_Store
--------------------------------------------------------------------------------
/.nvmrc:
--------------------------------------------------------------------------------
1 | v14.18.1
2 |
--------------------------------------------------------------------------------
/.nycrc.json:
--------------------------------------------------------------------------------
1 |
2 | {
3 | "extends": "@istanbuljs/nyc-config-typescript",
4 | "cache": false,
5 | "check-coverage": true,
6 | "extension": [
7 | ".ts"
8 | ],
9 | "include": [
10 | "**/src/*.ts"
11 | ],
12 | "reporter": [
13 | "cobertura",
14 | "text-summary"
15 | ],
16 | "statements": 45,
17 | "branches": 25,
18 | "functions": 28,
19 | "lines": 44
20 | }
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Changelog
2 |
3 | ## [1.1.4] - 2023-07-31
4 |
5 | ### Changed
6 |
7 | - Updated crypto library usage: Replaced `window.crypto` with Node.js `crypto` module for server-side compatibility.
8 |
9 | ## [1.1.3] - 2022-11-06
10 |
11 | ### Fixed
12 |
13 | - Removal of some explicit words from the two dictionaries
14 | - Fixed a small spelling mistake Retrive -> Retrieve
15 | - Put adjective in first position before noun in generateUsername
16 |
17 | **Full Changelog**: https://github.com/subhamg/unique-username-generator/compare/v1.1.1...v1.1.3
18 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 Subham Goyal
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | [](https://npmjs.org/package/unique-username-generator)
2 | [](https://lgtm.com/projects/g/subhamg/unique-username-generator/alerts/)
3 | [](https://lgtm.com/projects/g/subhamg/unique-username-generator/context:javascript)
4 | 
5 | 
6 |
7 | [](https://visitorbadge.io/status?path=https%3A%2F%2Fgithub.com%2Fsubhamg%2Funique-username-generator)
8 |
9 |
10 |
11 |
12 | # unique-username-generator
13 |
14 | A package to generate a unique username from email or randomly selected nouns and adjectives. User can add a separator between the username, define the maximum length of a username and adds up to six random digits.
15 |
16 | [](https://nodei.co/npm/unique-username-generator/)
17 |
18 | ## Installation
19 |
20 | ```javascript
21 | npm install unique-username-generator --save
22 | ```
23 |
24 | - Importing
25 |
26 | ```javascript
27 | // Using Node.js `require()`
28 | const { generateFromEmail, generateUsername } = require("unique-username-generator");
29 | // Using ES6 imports
30 | import { generateFromEmail, generateUsername } from "unique-username-generator";
31 | ```
32 |
33 | ## Usage
34 |
35 | ### Generate username from email
36 |
37 | It will generate username from email and add upto six random digits at the end of the name.
38 |
39 | ```javascript
40 | // add three random digits
41 | const username = generateFromEmail(
42 | "lakshmi.narayan@example.com",
43 | 3
44 | );
45 | console.log(username); // lakshminarayan234
46 |
47 | // add four random digits
48 | const username = generateFromEmail(
49 | "lakshmi.narayan@example.com",
50 | 4
51 | );
52 | console.log(username); // lakshminarayan2347
53 | ```
54 |
55 | ### Randomly generate unique username.
56 |
57 | It will generate unique username from adjectives, nouns, random digits and separator. You can control these following parameters - separator, number of random digits and maximum length of a username.
58 |
59 | ```javascript
60 | // generaterUsername(separator, number of random digits, maximum length)
61 |
62 | // Without any parameter
63 | const username = generateUsername();
64 | console.log(username); // blossomlogistical
65 |
66 | // With any separator like "-, _"
67 | const username = generateUsername("-");
68 | console.log(username); // blossom-logistical
69 |
70 | // With random digits and no separator
71 | const username = generateUsername("", 3);
72 | console.log(username); // blossomlogistical732
73 |
74 | // With maximum length constraint and no separator, no random digits
75 | const username = generateUsername("", 0, 15);
76 | console.log(username); // blossomlogistic
77 |
78 | // With maximum length constraint and separator but no random digits
79 | const username = generateUsername("-", 0, 15);
80 | console.log(username); // blossom-logisti
81 |
82 | // With maximum length constraint and random digits but no separator
83 | const username = generateUsername("", 2, 19);
84 | console.log(username); // blossomlogistical73
85 |
86 | // With all parameters
87 | const username = generateUsername("-", 2, 20, 'unique username');
88 | console.log(username); // unique-username-73
89 | ```
90 |
91 | ### Default dictionaries
92 |
93 | By default, the unique username generator library comes with 2 dictionaries out of the box, so that you can use them straight away.
94 |
95 | The new syntax for using the default dictionaries is the following:
96 |
97 | ```javascript
98 | import { uniqueUsernameGenerator, Config, adjectives, nouns } from 'unique-username-generator';
99 |
100 | const config: Config = {
101 | dictionaries: [adjectives, nouns]
102 | }
103 |
104 | const username: string = uniqueUsernameGenerator(config); // blossomlogistical
105 | ```
106 |
107 | ### Custom dictionaries
108 |
109 | You might want to provide your custom dictionaries to use for generating your unique username, in order to meet your project requirements. You can easily do that using the dictionaries option.
110 |
111 | ```javascript
112 | import { uniqueUsernameGenerator } from 'unique-username-generator';
113 |
114 | const marvelCharacters = [
115 | 'Iron Man',
116 | 'Doctor Strange',
117 | 'Hulk',
118 | 'Captain America',
119 | 'Thanos'
120 | ];
121 |
122 | const config: Config = {
123 | dictionaries: [marvelCharacters],
124 | separator: '',
125 | style: 'capital',
126 | randomDigits: 3
127 | }
128 |
129 | const username: string = uniqueUsernameGenerator(config); // Hulk123
130 | ```
131 |
132 | ## API
133 |
134 | ### uniqueUsernameGenerator (options)
135 | Returns a `string` with a random generated username
136 |
137 | ### options
138 |
139 | Type: `Config`
140 |
141 | The `options` argument mostly corresponds to the properties defined for uniqueUsernameGenerator. Only `dictionaries` is required.
142 |
143 |
144 | | Option | Type | Description | Default value | Example value |
145 | |--------------|-------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
146 | | dictionaries | `array` | This is an array of dictionaries. Each dictionary is an array of strings containing the words to use for generating the string.
The provided dictionaries can be imported from the library as a separate modules and provided in the desired order. | n/a |
```import { uniqueUsernameGenerator, adjectives, nouns } from 'unique-username-generator';```
```const username: string = uniqueUsernameGenerator({ dictionaries: [nouns, adjectives]}); // blossomlogistical``` |
147 | | separator | `string` | A string separator to be used for separate the words generated. The default separator is set to be empty string. | "" | `-` |
148 | | randomDigits | `number` | A number of random digits to add at the end of a username. | 0 | `3` |
149 | | length | `number` | A maximum length of a username | 15 | `12` |
150 | | style | `lowerCase \| upperCase \| capital` | The default value is set to `lowerCase` and it will return a lower case username.
By setting the value to `upperCase`, the words, will be returned with all the letters in upper case format.
The `capital` option will capitalize each word of the unique username generated | lowerCase | `lowerCase` |
151 |
152 | ## License
153 |
154 | The MIT License.
155 |
156 | ## Thank you
157 | If you'd like to say thanks, I'd really appreciate a coffee :)
158 |
159 |
--------------------------------------------------------------------------------
/SECURITY.md:
--------------------------------------------------------------------------------
1 | # Security Policy
2 |
3 | ## Supported Versions
4 |
5 | Use this section to tell people about which versions of your project are
6 | currently being supported with security updates.
7 |
8 | | Version | Supported |
9 | | ------- | ------------------ |
10 | | 5.1.x | :white_check_mark: |
11 | | 5.0.x | :x: |
12 | | 4.0.x | :white_check_mark: |
13 | | < 4.0 | :x: |
14 |
15 | ## Reporting a Vulnerability
16 |
17 | Use this section to tell people how to report a vulnerability.
18 |
19 | Tell them where to go, how often they can expect to get an update on a
20 | reported vulnerability, what to expect if the vulnerability is accepted or
21 | declined, etc.
22 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "unique-username-generator",
3 | "version": "1.1.3",
4 | "description": "A package to generate a unique username from email or randomly selected nouns and adjectives. User can add a separator between the username, define the maximum length of a username and adds up to six random digits.",
5 | "main": "./dist/index.js",
6 | "scripts": {
7 | "build": "tsc",
8 | "test": "ts-mocha tests/**/*.test.ts",
9 | "coverage": "nyc npm test && npm run cover:report",
10 | "cover:report": "nyc report --reporter=lcov --reporter=text",
11 | "lint": "eslint '*/**/*.ts'",
12 | "prepare": "npm run build",
13 | "semantic-release": "semantic-release --branches main"
14 | },
15 | "files": [
16 | "dist",
17 | "LICENSE",
18 | "README.md"
19 | ],
20 | "repository": {
21 | "type": "git",
22 | "url": "https://github.com/subhamg/unique-username-generator.git"
23 | },
24 | "keywords": [
25 | "generate",
26 | "username",
27 | "username-from-email",
28 | "email",
29 | "generate username",
30 | "generate-username-from-email",
31 | "generate unique username",
32 | "generate-unique-username",
33 | "generate-unique-name",
34 | "unique-username-generator",
35 | "unique-name-generator",
36 | "unique",
37 | "random",
38 | "user",
39 | "generator",
40 | "node"
41 | ],
42 | "author": "Subham Goyal",
43 | "license": "MIT",
44 | "bugs": {
45 | "url": "https://github.com/subhamg/unique-username-generator/issues"
46 | },
47 | "homepage": "https://github.com/subhamg/unique-username-generator#readme",
48 | "devDependencies": {
49 | "@istanbuljs/nyc-config-typescript": "^1.0.2",
50 | "@types/chai": "^4.3.1",
51 | "@types/mocha": "^9.1.1",
52 | "@types/node": "^17.0.33",
53 | "@typescript-eslint/eslint-plugin": "^5.23.0",
54 | "@typescript-eslint/parser": "^5.23.0",
55 | "chai": "^4.3.6",
56 | "cz-conventional-changelog": "^3.3.0",
57 | "eslint": "^8.15.0",
58 | "mocha": "^10.0.0",
59 | "nyc": "^15.1.0",
60 | "semantic-release": "^19.0.5",
61 | "source-map-support": "^0.5.21",
62 | "ts-mocha": "^10.0.0",
63 | "ts-node": "^10.9.1",
64 | "typescript": "^4.6.4"
65 | },
66 | "config": {
67 | "commitizen": {
68 | "path": "./node_modules/cz-conventional-changelog"
69 | }
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/src/data/adjectives.ts:
--------------------------------------------------------------------------------
1 | export default [
2 | "other",
3 | "new",
4 | "good",
5 | "old",
6 | "little",
7 | "great",
8 | "small",
9 | "young",
10 | "long",
11 | "black",
12 | "high",
13 | "only",
14 | "big",
15 | "white",
16 | "political",
17 | "right",
18 | "large",
19 | "real",
20 | "sure",
21 | "different",
22 | "important",
23 | "public",
24 | "possible",
25 | "full",
26 | "whole",
27 | "certain",
28 | "human",
29 | "major",
30 | "military",
31 | "bad",
32 | "social",
33 | "dead",
34 | "true",
35 | "economic",
36 | "open",
37 | "early",
38 | "free",
39 | "national",
40 | "strong",
41 | "hard",
42 | "special",
43 | "clear",
44 | "local",
45 | "private",
46 | "wrong",
47 | "late",
48 | "short",
49 | "poor",
50 | "recent",
51 | "dark",
52 | "fine",
53 | "foreign",
54 | "ready",
55 | "red",
56 | "cold",
57 | "low",
58 | "heavy",
59 | "serious",
60 | "single",
61 | "personal",
62 | "difficult",
63 | "left",
64 | "blue",
65 | "federal",
66 | "necessary",
67 | "general",
68 | "easy",
69 | "likely",
70 | "beautiful",
71 | "happy",
72 | "past",
73 | "hot",
74 | "close",
75 | "common",
76 | "afraid",
77 | "simple",
78 | "natural",
79 | "main",
80 | "various",
81 | "available",
82 | "nice",
83 | "present",
84 | "final",
85 | "sorry",
86 | "entire",
87 | "current",
88 | "similar",
89 | "deep",
90 | "huge",
91 | "rich",
92 | "nuclear",
93 | "empty",
94 | "strange",
95 | "quiet",
96 | "front",
97 | "wide",
98 | "modern",
99 | "concerned",
100 | "green",
101 | "very",
102 | "alone",
103 | "particular",
104 | "bright",
105 | "supposed",
106 | "basic",
107 | "medical",
108 | "aware",
109 | "total",
110 | "financial",
111 | "legal",
112 | "original",
113 | "international",
114 | "soft",
115 | "alive",
116 | "interested",
117 | "tall",
118 | "warm",
119 | "popular",
120 | "tiny",
121 | "top",
122 | "normal",
123 | "powerful",
124 | "silent",
125 | "religious",
126 | "impossible",
127 | "quick",
128 | "safe",
129 | "thin",
130 | "familiar",
131 | "gray",
132 | "fresh",
133 | "physical",
134 | "individual",
135 | "willing",
136 | "crazy",
137 | "sick",
138 | "angry",
139 | "perfect",
140 | "tired",
141 | "wild",
142 | "moral",
143 | "brown",
144 | "dangerous",
145 | "famous",
146 | "married",
147 | "terrible",
148 | "successful",
149 | "fair",
150 | "professional",
151 | "official",
152 | "obvious",
153 | "glad",
154 | "central",
155 | "chief",
156 | "effective",
157 | "light",
158 | "complete",
159 | "interesting",
160 | "thick",
161 | "proper",
162 | "involved",
163 | "responsible",
164 | "narrow",
165 | "civil",
166 | "industrial",
167 | "dry",
168 | "yellow",
169 | "specific",
170 | "sharp",
171 | "sudden",
172 | "direct",
173 | "following",
174 | "growing",
175 | "significant",
176 | "traditional",
177 | "slow",
178 | "previous",
179 | "vast",
180 | "surprised",
181 | "busy",
182 | "usual",
183 | "clean",
184 | "funny",
185 | "regular",
186 | "scientific",
187 | "ordinary",
188 | "ancient",
189 | "senior",
190 | "sweet",
191 | "future",
192 | "annual",
193 | "secret",
194 | "equal",
195 | "independent",
196 | "wonderful",
197 | "tough",
198 | "broad",
199 | "additional",
200 | "careful",
201 | "domestic",
202 | "brief",
203 | "enormous",
204 | "commercial",
205 | "grand",
206 | "average",
207 | "sexual",
208 | "nervous",
209 | "pale",
210 | "immediate",
211 | "critical",
212 | "proud",
213 | "like",
214 | "complex",
215 | "separate",
216 | "considerable",
217 | "still",
218 | "extra",
219 | "expensive",
220 | "guilty",
221 | "active",
222 | "mad",
223 | "asleep",
224 | "wooden",
225 | "cool",
226 | "presidential",
227 | "apparent",
228 | "weak",
229 | "essential",
230 | "living",
231 | "pretty",
232 | "cultural",
233 | "useful",
234 | "actual",
235 | "unusual",
236 | "daily",
237 | "potential",
238 | "wet",
239 | "solid",
240 | "lovely",
241 | "comfortable",
242 | "formal",
243 | "outside",
244 | "massive",
245 | "sad",
246 | "corporate",
247 | "distant",
248 | "loose",
249 | "rare",
250 | "stupid",
251 | "visible",
252 | "liberal",
253 | "flat",
254 | "pleased",
255 | "pure",
256 | "curious",
257 | "practical",
258 | "upper",
259 | "technical",
260 | "male",
261 | "appropriate",
262 | "fat",
263 | "just",
264 | "due",
265 | "mere",
266 | "handsome",
267 | "mental",
268 | "conservative",
269 | "positive",
270 | "leading",
271 | "naked",
272 | "false",
273 | "drunk",
274 | "dirty",
275 | "friendly",
276 | "constant",
277 | "well",
278 | "used",
279 | "emotional",
280 | "internal",
281 | "odd",
282 | "historical",
283 | "female",
284 | "ill",
285 | "broken",
286 | "capable",
287 | "southern",
288 | "pleasant",
289 | "bare",
290 | "minor",
291 | "eager",
292 | "lucky",
293 | "urban",
294 | "steady",
295 | "fiscal",
296 | "rough",
297 | "primary",
298 | "reasonable",
299 | "typical",
300 | "inner",
301 | "favorite",
302 | "attractive",
303 | "slight",
304 | "innocent",
305 | "limited",
306 | "straight",
307 | "pink",
308 | "excellent",
309 | "double",
310 | "dramatic",
311 | "violent",
312 | "honest",
313 | "electric",
314 | "fellow",
315 | "substantial",
316 | "opposite",
317 | "awful",
318 | "severe",
319 | "joint",
320 | "armed",
321 | "hungry",
322 | "remarkable",
323 | "increased",
324 | "gentle",
325 | "illegal",
326 | "middle",
327 | "bitter",
328 | "mass",
329 | "permanent",
330 | "increasing",
331 | "damn",
332 | "golden",
333 | "correct",
334 | "intense",
335 | "round",
336 | "northern",
337 | "proposed",
338 | "so-called",
339 | "criminal",
340 | "healthy",
341 | "plain",
342 | "vital",
343 | "blind",
344 | "native",
345 | "intellectual",
346 | "unknown",
347 | "extreme",
348 | "existing",
349 | "raw",
350 | "prime",
351 | "brilliant",
352 | "sensitive",
353 | "extraordinary",
354 | "sufficient",
355 | "remaining",
356 | "ultimate",
357 | "unique",
358 | "royal",
359 | "initial",
360 | "negative",
361 | "fundamental",
362 | "nearby",
363 | "smart",
364 | "strategic",
365 | "educational",
366 | "unlikely",
367 | "smooth",
368 | "modest",
369 | "conventional",
370 | "giant",
371 | "scared",
372 | "cheap",
373 | "dear",
374 | "delicate",
375 | "anxious",
376 | "valuable",
377 | "standard",
378 | "desperate",
379 | "lonely",
380 | "diplomatic",
381 | "firm",
382 | "wise",
383 | "principal",
384 | "congressional",
385 | "occasional",
386 | "ugly",
387 | "vice",
388 | "radical",
389 | "faint",
390 | "working",
391 | "absolute",
392 | "intelligent",
393 | "racial",
394 | "mutual",
395 | "silly",
396 | "fast",
397 | "musical",
398 | "tight",
399 | "complicated",
400 | "numerous",
401 | "crucial",
402 | "square",
403 | "contemporary",
404 | "bloody",
405 | "western",
406 | "endless",
407 | "inevitable",
408 | "environmental",
409 | "constitutional",
410 | "rapid",
411 | "worried",
412 | "lost",
413 | "genuine",
414 | "temporary",
415 | "democratic",
416 | "rural",
417 | "regional",
418 | "given",
419 | "painful",
420 | "literary",
421 | "chemical",
422 | "sophisticated",
423 | "decent",
424 | "academic",
425 | "awake",
426 | "conscious",
427 | "revolutionary",
428 | "surprising",
429 | "elderly",
430 | "agricultural",
431 | "psychological",
432 | "pregnant",
433 | "live",
434 | "adequate",
435 | "superior",
436 | "grateful",
437 | "prominent",
438 | "frightened",
439 | "remote",
440 | "overall",
441 | "stiff",
442 | "harsh",
443 | "electronic",
444 | "spiritual",
445 | "okay",
446 | "closed",
447 | "excited",
448 | "convinced",
449 | "long-term",
450 | "unexpected",
451 | "dull",
452 | "evident",
453 | "civilian",
454 | "mysterious",
455 | "romantic",
456 | "impressive",
457 | "continuing",
458 | "exciting",
459 | "logical",
460 | "peculiar",
461 | "exact",
462 | "widespread",
463 | "foolish",
464 | "extensive",
465 | "evil",
466 | "continued",
467 | "confident",
468 | "generous",
469 | "legislative",
470 | "stable",
471 | "vulnerable",
472 | "elegant",
473 | "embarrassed",
474 | "hostile",
475 | "efficient",
476 | "blond",
477 | "dumb",
478 | "advanced",
479 | "defensive",
480 | "outer",
481 | "neat",
482 | "estimated",
483 | "wealthy",
484 | "dying",
485 | "loud",
486 | "creative",
487 | "acceptable",
488 | "unhappy",
489 | "sheer",
490 | "competitive",
491 | "concrete",
492 | "reluctant",
493 | "precious",
494 | "tremendous",
495 | "burning",
496 | "precise",
497 | "uncertain",
498 | "holy",
499 | "artificial",
500 | "vague",
501 | "ideal",
502 | "universal",
503 | "moderate",
504 | "subtle",
505 | "mild",
506 | "peaceful",
507 | "assistant",
508 | "invisible",
509 | "casual",
510 | "crowded",
511 | "crude",
512 | "running",
513 | "classic",
514 | "controversial",
515 | "ridiculous",
516 | "frequent",
517 | "grim",
518 | "accurate",
519 | "detailed",
520 | "goddamn",
521 | "fun",
522 | "fierce",
523 | "cruel",
524 | "incredible",
525 | "blank",
526 | "dim",
527 | "suitable",
528 | "classical",
529 | "elaborate",
530 | "collective",
531 | "eastern",
532 | "legitimate",
533 | "aggressive",
534 | "rear",
535 | "administrative",
536 | "automatic",
537 | "dependent",
538 | "ashamed",
539 | "distinct",
540 | "fit",
541 | "clever",
542 | "brave",
543 | "ethnic",
544 | "maximum",
545 | "relative",
546 | "primitive",
547 | "uncomfortable",
548 | "profound",
549 | "sacred",
550 | "biological",
551 | "identical",
552 | "furious",
553 | "loyal",
554 | "rational",
555 | "mechanical",
556 | "mean",
557 | "naval",
558 | "noble",
559 | "ambitious",
560 | "purple",
561 | "historic",
562 | "dominant",
563 | "suburban",
564 | "developing",
565 | "calm",
566 | "frozen",
567 | "subsequent",
568 | "charming",
569 | "damp",
570 | "fixed",
571 | "rigid",
572 | "offensive",
573 | "electrical",
574 | "shy",
575 | "continuous",
576 | "urgent",
577 | "weary",
578 | "immense",
579 | "splendid",
580 | "downtown",
581 | "uneasy",
582 | "disappointed",
583 | "helpless",
584 | "voluntary",
585 | "polite",
586 | "junior",
587 | "gross",
588 | "striking",
589 | "overwhelming",
590 | "unconscious",
591 | "steep",
592 | "outstanding",
593 | "tender",
594 | "tragic",
595 | "costly",
596 | "miserable",
597 | "near",
598 | "useless",
599 | "welcome",
600 | "external",
601 | "helpful",
602 | "weekly",
603 | "middle-aged",
604 | "suspicious",
605 | "old-fashioned",
606 | "technological",
607 | "damned",
608 | "awkward",
609 | "visual",
610 | "organized",
611 | "ideological",
612 | "orange",
613 | "horrible",
614 | "strict",
615 | "magnificent",
616 | "deadly",
617 | "dusty",
618 | "mighty",
619 | "puzzled",
620 | "bold",
621 | "global",
622 | "passing",
623 | "magic",
624 | "fond",
625 | "judicial",
626 | "missing",
627 | "definite",
628 | "changing",
629 | "rubber",
630 | "theoretical",
631 | "satisfied",
632 | "promising",
633 | "abstract",
634 | "excessive",
635 | "comparable",
636 | "fatal",
637 | "distinguished",
638 | "inadequate",
639 | "slender",
640 | "artistic",
641 | "known",
642 | "sympathetic",
643 | "favorable",
644 | "cheerful",
645 | "faithful",
646 | "delighted",
647 | "unnecessary",
648 | "sole",
649 | "cautious",
650 | "productive",
651 | "reliable",
652 | "patient",
653 | "sensible",
654 | "desirable",
655 | "depressed",
656 | "atomic",
657 | "able",
658 | "instant",
659 | "relevant",
660 | "alien",
661 | "spectacular",
662 | "lesser",
663 | "swift",
664 | "comic",
665 | "enthusiastic",
666 | "marvelous",
667 | "experimental",
668 | "weird",
669 | "retired",
670 | "fascinating",
671 | "content",
672 | "medieval",
673 | "inclined",
674 | "bored",
675 | "ruling",
676 | "flying",
677 | "consistent",
678 | "organic",
679 | "alleged",
680 | "grave",
681 | "smiling",
682 | "realistic",
683 | "amazing",
684 | "exotic",
685 | "symbolic",
686 | "confused",
687 | "underground",
688 | "spare",
689 | "philosophical",
690 | "vigorous",
691 | "troubled",
692 | "shallow",
693 | "amused",
694 | "lively",
695 | "genetic",
696 | "impatient",
697 | "brutal",
698 | "solar",
699 | "unfair",
700 | "formidable",
701 | "tense",
702 | "unfortunate",
703 | "minimum",
704 | "sleeping",
705 | "secondary",
706 | "shiny",
707 | "jealous",
708 | "insane",
709 | "gay",
710 | "vivid",
711 | "wounded",
712 | "hurt",
713 | "intimate",
714 | "monthly",
715 | "sour",
716 | "socialist",
717 | "worthy",
718 | "preliminary",
719 | "colonial",
720 | "middle-class",
721 | "alternative",
722 | "influential",
723 | "unpleasant",
724 | "comprehensive",
725 | "devoted",
726 | "upset",
727 | "secure",
728 | "absurd",
729 | "neutral",
730 | "frightening",
731 | "profitable",
732 | "fragile",
733 | "civilized",
734 | "slim",
735 | "partial",
736 | "added",
737 | "fearful",
738 | "optimistic",
739 | "isolated",
740 | "eternal",
741 | "vocal",
742 | "beloved",
743 | "alert",
744 | "verbal",
745 | "rising",
746 | "skilled",
747 | "antique",
748 | "municipal",
749 | "written",
750 | "restless",
751 | "outdoor",
752 | "governmental",
753 | "driving",
754 | "sore",
755 | "informal",
756 | "loving",
757 | "retail",
758 | "hidden",
759 | "determined",
760 | "monetary",
761 | "convenient",
762 | "thoughtful",
763 | "colored",
764 | "progressive",
765 | "bizarre",
766 | "sweeping",
767 | "fancy",
768 | "expected",
769 | "fantastic",
770 | "editorial",
771 | "intact",
772 | "bottom",
773 | "multiple",
774 | "well-known",
775 | "nasty",
776 | "protective",
777 | "acute",
778 | "combined",
779 | "related",
780 | "fortunate",
781 | "earnest",
782 | "divine",
783 | "passionate",
784 | "icy",
785 | "noisy",
786 | "vicious",
787 | "dreadful",
788 | "apt",
789 | "boring",
790 | "unprecedented",
791 | "decisive",
792 | "sunny",
793 | "marked",
794 | "experienced",
795 | "disturbing",
796 | "satisfactory",
797 | "sober",
798 | "random",
799 | "electoral",
800 | "shocked",
801 | "deliberate",
802 | "coming",
803 | "orderly",
804 | "surrounding",
805 | "unwilling",
806 | "inherent",
807 | "mixed",
808 | "naive",
809 | "dense",
810 | "hopeless",
811 | "aesthetic",
812 | "supreme",
813 | "encouraging",
814 | "institutional",
815 | "solemn",
816 | "stubborn",
817 | "required",
818 | "relaxed",
819 | "bald",
820 | "frantic",
821 | "exclusive",
822 | "rotten",
823 | "filthy",
824 | "flexible",
825 | "explicit",
826 | "glorious",
827 | "lean",
828 | "ignorant",
829 | "extended",
830 | "embarrassing",
831 | "architectural",
832 | "mortal",
833 | "corrupt",
834 | "hopeful",
835 | "regulatory",
836 | "valid",
837 | "characteristic",
838 | "tribal",
839 | "capitalist",
840 | "diverse",
841 | "functional",
842 | "improved",
843 | "ironic",
844 | "graceful",
845 | "unaware",
846 | "respectable",
847 | "eligible",
848 | "lousy",
849 | "established",
850 | "postwar",
851 | "objective",
852 | "wary",
853 | "elementary",
854 | "moving",
855 | "superb",
856 | "cute",
857 | "minimal",
858 | "meaningful",
859 | "notable",
860 | "structural",
861 | "developed",
862 | "rolling",
863 | "fashionable",
864 | "persistent",
865 | "distinctive",
866 | "terrific",
867 | "thorough",
868 | "skeptical",
869 | "secular",
870 | "chronic",
871 | "level",
872 | "everyday",
873 | "visiting",
874 | "infinite",
875 | "short-term",
876 | "terrorist",
877 | "youthful",
878 | "unemployed",
879 | "forced",
880 | "liquid",
881 | "explosive",
882 | "rude",
883 | "colorful",
884 | "renewed",
885 | "semantic",
886 | "astonishing",
887 | "passive",
888 | "heroic",
889 | "gleaming",
890 | "indifferent",
891 | "vertical",
892 | "prior",
893 | "anonymous",
894 | "absent",
895 | "customary",
896 | "mobile",
897 | "uniform",
898 | "solitary",
899 | "probable",
900 | "amazed",
901 | "petty",
902 | "bleak",
903 | "athletic",
904 | "tentative",
905 | "harmless",
906 | "ample",
907 | "right-wing",
908 | "polished",
909 | "obscure",
910 | "sincere",
911 | "dried",
912 | "intensive",
913 | "equivalent",
914 | "convincing",
915 | "idle",
916 | "vacant",
917 | "mature",
918 | "amusing",
919 | "competent",
920 | "ominous",
921 | "savage",
922 | "motionless",
923 | "tropical",
924 | "blunt",
925 | "drunken",
926 | "delicious",
927 | "lazy",
928 | "ragged",
929 | "longtime",
930 | "nationwide",
931 | "startling",
932 | "civic",
933 | "freezing",
934 | "muscular",
935 | "circular",
936 | "imperial",
937 | "irrelevant",
938 | "countless",
939 | "gloomy",
940 | "startled",
941 | "disastrous",
942 | "skinny",
943 | "hollow",
944 | "upward",
945 | "ethical",
946 | "underlying",
947 | "careless",
948 | "wholesale",
949 | "abandoned",
950 | "unfamiliar",
951 | "mandatory",
952 | "imaginary",
953 | "bewildered",
954 | "annoyed",
955 | "magnetic",
956 | "dazzling",
957 | "lengthy",
958 | "stern",
959 | "surgical",
960 | "clinical",
961 | "full-time",
962 | "metropolitan",
963 | "moist",
964 | "unlike",
965 | "doubtful",
966 | "prosperous",
967 | "keen",
968 | "awesome",
969 | "humble",
970 | "interior",
971 | "psychiatric",
972 | "clumsy",
973 | "outraged",
974 | "theatrical",
975 | "educated",
976 | "gigantic",
977 | "scattered",
978 | "privileged",
979 | "sleepy",
980 | "battered",
981 | "meaningless",
982 | "predictable",
983 | "gradual",
984 | "miniature",
985 | "radioactive",
986 | "prospective",
987 | "aging",
988 | "destructive",
989 | "authentic",
990 | "portable",
991 | "bearded",
992 | "balanced",
993 | "shining",
994 | "spontaneous",
995 | "bureaucratic",
996 | "inferior",
997 | "sturdy",
998 | "cynical",
999 | "exquisite",
1000 | "talented",
1001 | "immune",
1002 | "imaginative",
1003 | "ripe",
1004 | "shared",
1005 | "kind",
1006 | "parliamentary",
1007 | "glowing",
1008 | "frail",
1009 | "astonished",
1010 | "forward",
1011 | "inside",
1012 | "operational",
1013 | "faded",
1014 | "closing",
1015 | "pro",
1016 | "coastal",
1017 | "shrewd",
1018 | "preoccupied",
1019 | "celebrated",
1020 | "wicked",
1021 | "bourgeois",
1022 | "marginal",
1023 | "transparent",
1024 | "dynamic",
1025 | "psychic",
1026 | "plump",
1027 | "coarse",
1028 | "bleeding",
1029 | "striped",
1030 | "eventual",
1031 | "residential",
1032 | "hysterical",
1033 | "pathetic",
1034 | "planned",
1035 | "fake",
1036 | "imminent",
1037 | "sentimental",
1038 | "stunning",
1039 | "worldwide",
1040 | "militant",
1041 | "sizable",
1042 | "representative",
1043 | "incapable",
1044 | "provincial",
1045 | "poetic",
1046 | "injured",
1047 | "tactical",
1048 | "selfish",
1049 | "winning",
1050 | "foul",
1051 | "repeated",
1052 | "novel",
1053 | "dubious",
1054 | "part-time",
1055 | "abrupt",
1056 | "lone",
1057 | "overseas",
1058 | "grey",
1059 | "varied",
1060 | "cooperative",
1061 | "muddy",
1062 | "scheduled",
1063 | "legendary",
1064 | "arrogant",
1065 | "conspicuous",
1066 | "varying",
1067 | "devastating",
1068 | "vulgar",
1069 | "martial",
1070 | "amateur",
1071 | "mathematical",
1072 | "deaf",
1073 | "scarce",
1074 | "specialized",
1075 | "honorable",
1076 | "outrageous",
1077 | "confidential",
1078 | "fallen",
1079 | "goddamned",
1080 | "five-year",
1081 | "feminine",
1082 | "monstrous",
1083 | "brisk",
1084 | "systematic",
1085 | "exhausted",
1086 | "frank",
1087 | "lunar",
1088 | "daring",
1089 | "shadowy",
1090 | "respected",
1091 | "stark",
1092 | "accepted",
1093 | "successive",
1094 | "pending",
1095 | "prolonged",
1096 | "unseen",
1097 | "uniformed",
1098 | "wretched",
1099 | "sullen",
1100 | "arbitrary",
1101 | "drastic",
1102 | "crooked",
1103 | "resulting",
1104 | "intricate",
1105 | "unpredictable",
1106 | "printed",
1107 | "utter",
1108 | "satisfying",
1109 | "delightful",
1110 | "linguistic",
1111 | "shabby",
1112 | "statistical",
1113 | "accessible",
1114 | "prestigious",
1115 | "trivial",
1116 | "waiting",
1117 | "futile",
1118 | "prepared",
1119 | "aged",
1120 | "misleading",
1121 | "cognitive",
1122 | "shocking",
1123 | "childish",
1124 | "elected",
1125 | "magical",
1126 | "forthcoming",
1127 | "exceptional",
1128 | "gifted",
1129 | "stricken",
1130 | "fiery",
1131 | "cardboard",
1132 | "shaky",
1133 | "conflicting",
1134 | "commanding",
1135 | "starving",
1136 | "accustomed",
1137 | "rocky",
1138 | "long-range",
1139 | "floating",
1140 | "sinister",
1141 | "potent",
1142 | "phony",
1143 | "lasting",
1144 | "understandable",
1145 | "curved",
1146 | "barren",
1147 | "lethal",
1148 | "toxic",
1149 | "deserted",
1150 | "ambiguous",
1151 | "notorious",
1152 | "synthetic",
1153 | "worthwhile",
1154 | "imported",
1155 | "intent",
1156 | "reduced",
1157 | "painted",
1158 | "taut",
1159 | "sociological",
1160 | "questionable",
1161 | "crisp",
1162 | "pointed",
1163 | "harmful",
1164 | "horizontal",
1165 | "rival",
1166 | "somber",
1167 | "benign",
1168 | "prevailing",
1169 | "selected",
1170 | "organizational",
1171 | "excess",
1172 | "dedicated",
1173 | "veteran",
1174 | "implicit",
1175 | "prudent",
1176 | "plausible",
1177 | "confusing",
1178 | "smoking",
1179 | "large-scale",
1180 | "subdued",
1181 | "constructive",
1182 | "marital",
1183 | "scarlet",
1184 | "rugged",
1185 | "darkened",
1186 | "untouched",
1187 | "above",
1188 | "matching",
1189 | "covert",
1190 | "communal",
1191 | "sticky",
1192 | "affluent",
1193 | "energetic",
1194 | "stale",
1195 | "controlled",
1196 | "qualified",
1197 | "reminiscent",
1198 | "shut",
1199 | "blonde",
1200 | "handy",
1201 | "ritual",
1202 | "straightforward",
1203 | "terminal",
1204 | "dizzy",
1205 | "sane",
1206 | "twisted",
1207 | "occupied",
1208 | "finished",
1209 | "opposing",
1210 | "sly",
1211 | "depressing",
1212 | "irregular",
1213 | "marine",
1214 | "communist",
1215 | "obscene",
1216 | "wrinkled",
1217 | "unsuccessful",
1218 | "gracious",
1219 | "static",
1220 | "consecutive",
1221 | "reserve",
1222 | "exposed",
1223 | "scholarly",
1224 | "sleek",
1225 | "reckless",
1226 | "oral",
1227 | "comforting",
1228 | "pressing",
1229 | "swollen",
1230 | "viable",
1231 | "carved",
1232 | "obsessed",
1233 | "projected",
1234 | "hideous",
1235 | "unthinkable",
1236 | "mock",
1237 | "susceptible",
1238 | "respective",
1239 | "goddam",
1240 | "downward",
1241 | "memorable",
1242 | "worn",
1243 | "raised",
1244 | "glittering",
1245 | "beneficial",
1246 | "lingering",
1247 | "patriotic",
1248 | "stunned",
1249 | "hairy",
1250 | "worrying",
1251 | "lighted",
1252 | "sexy",
1253 | "abundant",
1254 | "tangled",
1255 | "perpetual",
1256 | "irresistible",
1257 | "terrified",
1258 | "compelling",
1259 | "unmistakable",
1260 | "feeble",
1261 | "uneven",
1262 | "trained",
1263 | "folded",
1264 | "relentless",
1265 | "killed",
1266 | "gorgeous",
1267 | "conservation",
1268 | "serene",
1269 | "eerie",
1270 | "premature",
1271 | "dismal",
1272 | "competing",
1273 | "risky",
1274 | "unacceptable",
1275 | "indirect",
1276 | "witty",
1277 | "muffled",
1278 | "feasible",
1279 | "interstate",
1280 | "heated",
1281 | "uncommon",
1282 | "accidental",
1283 | "queer",
1284 | "innovative",
1285 | "parallel",
1286 | "fried",
1287 | "unnatural",
1288 | "cracked",
1289 | "persuasive",
1290 | "integrated",
1291 | "ongoing",
1292 | "homosexual",
1293 | "sound",
1294 | "fertile",
1295 | "canned",
1296 | "preceding",
1297 | "worldly",
1298 | "onstage",
1299 | "declining",
1300 | "advisory",
1301 | "juvenile",
1302 | "slippery",
1303 | "numb",
1304 | "postal",
1305 | "olive",
1306 | "eccentric",
1307 | "lay",
1308 | "chilly",
1309 | "shrill",
1310 | "ceremonial",
1311 | "registered",
1312 | "boiling",
1313 | "contradictory",
1314 | "irresponsible",
1315 | "then",
1316 | "industrialized",
1317 | "obsolete",
1318 | "rusty",
1319 | "inflationary",
1320 | "split",
1321 | "discreet",
1322 | "intolerable",
1323 | "barefoot",
1324 | "territorial",
1325 | "outspoken",
1326 | "audible",
1327 | "adverse",
1328 | "associate",
1329 | "impending",
1330 | "decorative",
1331 | "luminous",
1332 | "two-year",
1333 | "expanding",
1334 | "unchanged",
1335 | "outstretched",
1336 | "momentary",
1337 | "good-looking",
1338 | "cunning",
1339 | "overnight",
1340 | "sprawling",
1341 | "unbelievable",
1342 | "bland",
1343 | "liable",
1344 | "terrifying",
1345 | "televised",
1346 | "appealing",
1347 | "breathless",
1348 | "alarming",
1349 | "supporting",
1350 | "greasy",
1351 | "affirmative",
1352 | "guiding",
1353 | "homeless",
1354 | "triumphant",
1355 | "rainy",
1356 | "stolen",
1357 | "empirical",
1358 | "timid",
1359 | "provocative",
1360 | "knowledgeable",
1361 | "pragmatic",
1362 | "touching",
1363 | "desired",
1364 | "amiable",
1365 | "attempted",
1366 | "humane",
1367 | "adjacent",
1368 | "superficial",
1369 | "greedy",
1370 | "assorted",
1371 | "elusive",
1372 | "ruthless",
1373 | "lush",
1374 | "soothing",
1375 | "imposing",
1376 | "preferred",
1377 | "lavish",
1378 | "pervasive",
1379 | "managing",
1380 | "sandy",
1381 | "inappropriate",
1382 | "desolate",
1383 | "nude",
1384 | "reassuring",
1385 | "shimmering",
1386 | "first-class",
1387 | "unfinished",
1388 | "insistent",
1389 | "comparative",
1390 | "conceivable",
1391 | "admirable",
1392 | "courageous",
1393 | "aristocratic",
1394 | "meager",
1395 | "subjective",
1396 | "vain",
1397 | "disgusted",
1398 | "dual",
1399 | "towering",
1400 | "responsive",
1401 | "ailing",
1402 | "compact",
1403 | "torn",
1404 | "sortal",
1405 | "entertaining",
1406 | "dreary",
1407 | "metallic",
1408 | "tedious",
1409 | "irrational",
1410 | "immoral",
1411 | "teen-age",
1412 | "interim",
1413 | "jagged",
1414 | "selective",
1415 | "volatile",
1416 | "cozy",
1417 | "unanimous",
1418 | "unlimited",
1419 | "hired",
1420 | "cosmic",
1421 | "indoor",
1422 | "retarded",
1423 | "gold",
1424 | "fabulous",
1425 | "dignified",
1426 | "long-distance",
1427 | "high-school",
1428 | "classified",
1429 | "luxurious",
1430 | "insufficient",
1431 | "pious",
1432 | "incomplete",
1433 | "oblivious",
1434 | "imperialist",
1435 | "stately",
1436 | "lifelong",
1437 | "subordinate",
1438 | "extravagant",
1439 | "intrinsic",
1440 | "unpopular",
1441 | "scant",
1442 | "surplus",
1443 | "radiant",
1444 | "ruined",
1445 | "grotesque",
1446 | "hazardous",
1447 | "disabled",
1448 | "intriguing",
1449 | "worthless",
1450 | "reported",
1451 | "hoarse",
1452 | "utmost",
1453 | "muted",
1454 | "bony",
1455 | "disgusting",
1456 | "monumental",
1457 | "pleasing",
1458 | "sterile",
1459 | "agreeable",
1460 | "three-year",
1461 | "tricky",
1462 | "lucrative",
1463 | "respectful",
1464 | "inexpensive",
1465 | "bulky",
1466 | "troublesome",
1467 | "affectionate",
1468 | "coherent",
1469 | "unreasonable",
1470 | "nineteenth-century",
1471 | "curly",
1472 | "indispensable",
1473 | "nursing",
1474 | "incompetent",
1475 | "governing",
1476 | "alternate",
1477 | "suspected",
1478 | "left-wing",
1479 | "refined",
1480 | "overt",
1481 | "chilling",
1482 | "virtual",
1483 | "devoid",
1484 | "perverse",
1485 | "enduring",
1486 | "outright",
1487 | "overhead",
1488 | "unnoticed",
1489 | "nonprofit",
1490 | "pointless",
1491 | "appalling",
1492 | "dental",
1493 | "chosen",
1494 | "enlightened",
1495 | "robust",
1496 | "commonplace",
1497 | "damaging",
1498 | "conscientious",
1499 | "eloquent",
1500 | "erratic",
1501 | "applied",
1502 | "merry",
1503 | "ardent",
1504 | "flowing",
1505 | "incoming",
1506 | "chaotic",
1507 | "noticeable",
1508 | "pitiful",
1509 | "locked",
1510 | "swelling",
1511 | "definitive",
1512 | "homemade",
1513 | "super",
1514 | "pronounced",
1515 | "kindly",
1516 | "prone",
1517 | "attentive",
1518 | "unstable",
1519 | "unrelated",
1520 | "charitable",
1521 | "armored",
1522 | "unclear",
1523 | "tangible",
1524 | "medium",
1525 | "winding",
1526 | "slick",
1527 | "credible",
1528 | "frustrating",
1529 | "shifting",
1530 | "spacious",
1531 | "day-to-day",
1532 | "surviving",
1533 | "expanded",
1534 | "arid",
1535 | "unwanted",
1536 | "unbearable",
1537 | "hesitant",
1538 | "recognizable",
1539 | "multinational",
1540 | "abdominal",
1541 | "murderous",
1542 | "glossy",
1543 | "mute",
1544 | "working-class",
1545 | "insignificant",
1546 | "ingenious",
1547 | "masculine",
1548 | "blessed",
1549 | "gaunt",
1550 | "miraculous",
1551 | "unconstitutional",
1552 | "parental",
1553 | "rigorous",
1554 | "bodily",
1555 | "impersonal",
1556 | "backward",
1557 | "computerized",
1558 | "four-year",
1559 | "unmarried",
1560 | "wry",
1561 | "resident",
1562 | "luxury",
1563 | "high-level",
1564 | "partisan",
1565 | "powerless",
1566 | "seasonal",
1567 | "self-conscious",
1568 | "triple",
1569 | "onetime",
1570 | "ecological",
1571 | "periodic",
1572 | "racist",
1573 | "exaggerated",
1574 | "facial",
1575 | "erotic",
1576 | "unreal",
1577 | "durable",
1578 | "manual",
1579 | "rounded",
1580 | "concentrated",
1581 | "literal",
1582 | "mystical",
1583 | "stimulating",
1584 | "staggering",
1585 | "tempting",
1586 | "last-minute",
1587 | "erect",
1588 | "feudal",
1589 | "head",
1590 | "emerging",
1591 | "hind",
1592 | "brooding",
1593 | "candid",
1594 | "paranoid",
1595 | "defective",
1596 | "linear",
1597 | "immortal",
1598 | "shattered",
1599 | "unsure",
1600 | "swinging",
1601 | "compatible",
1602 | "ghastly",
1603 | "investigative",
1604 | "rosy",
1605 | "convicted",
1606 | "sensational",
1607 | "committed",
1608 | "makeshift",
1609 | "tolerant",
1610 | "forceful",
1611 | "supernatural",
1612 | "joyous",
1613 | "limp",
1614 | "improper",
1615 | "hanging",
1616 | "sliding",
1617 | "renowned",
1618 | "tattered",
1619 | "nonexistent",
1620 | "supportive",
1621 | "frustrated",
1622 | "undercover",
1623 | "handicapped",
1624 | "apprehensive",
1625 | "plentiful",
1626 | "authoritative",
1627 | "sustained",
1628 | "disappointing",
1629 | "hereditary",
1630 | "photographic",
1631 | "impoverished",
1632 | "ornate",
1633 | "respiratory",
1634 | "substantive",
1635 | "acting",
1636 | "nutritional",
1637 | "unofficial",
1638 | "innumerable",
1639 | "prevalent",
1640 | "dire",
1641 | "menacing",
1642 | "outward",
1643 | "brittle",
1644 | "hasty",
1645 | "sparkling",
1646 | "sled",
1647 | "geographical",
1648 | "therapeutic",
1649 | "melancholy",
1650 | "adolescent",
1651 | "hearty",
1652 | "disturbed",
1653 | "sweaty",
1654 | "poisonous",
1655 | "paid",
1656 | "ineffective",
1657 | "humorous",
1658 | "burly",
1659 | "rebellious",
1660 | "reddish",
1661 | "stout",
1662 | "teenage",
1663 | "eminent",
1664 | "rhythmic",
1665 | "physiological",
1666 | "guaranteed",
1667 | "opaque",
1668 | "folding",
1669 | "fleeting",
1670 | "full-scale",
1671 | "low-income",
1672 | "infectious",
1673 | "stringent",
1674 | "stained",
1675 | "beige",
1676 | "stirring",
1677 | "soaring",
1678 | "glamorous",
1679 | "airborne",
1680 | "improbable",
1681 | "austere",
1682 | "anticipated",
1683 | "designated",
1684 | "oval",
1685 | "restrictive",
1686 | "yearly",
1687 | "precarious",
1688 | "relieved",
1689 | "said",
1690 | "feverish",
1691 | "occupational",
1692 | "holding",
1693 | "speculative",
1694 | "abnormal",
1695 | "challenging",
1696 | "healing",
1697 | "boyish",
1698 | "forbidding",
1699 | "divorced",
1700 | "famed",
1701 | "sluggish",
1702 | "struggling",
1703 | "united",
1704 | "undesirable",
1705 | "steaming",
1706 | "consulting",
1707 | "answering",
1708 | "recreational",
1709 | "accompanying",
1710 | "cramped",
1711 | "journalistic",
1712 | "neighboring",
1713 | "fictional",
1714 | "chopped",
1715 | "phenomenal",
1716 | "bankrupt",
1717 | "illicit",
1718 | "advancing",
1719 | "upcoming",
1720 | "racing",
1721 | "protected",
1722 | "padded",
1723 | "venerable",
1724 | "fuzzy",
1725 | "behavioral",
1726 | "roast",
1727 | "mocking",
1728 | "reactionary",
1729 | "inefficient",
1730 | "packed",
1731 | "sloppy",
1732 | "sparse",
1733 | "foster",
1734 | "revealing",
1735 | "reverse",
1736 | "gaping",
1737 | "blue-collar",
1738 | "thankful",
1739 | "down",
1740 | "unimportant",
1741 | "traveling",
1742 | "corresponding",
1743 | "maternal",
1744 | "autonomous",
1745 | "conceptual",
1746 | "smoky",
1747 | "baked",
1748 | "stuffed",
1749 | "murky",
1750 | "totalitarian",
1751 | "ghostly",
1752 | "seeming",
1753 | "flickering",
1754 | "sensual",
1755 | "clenched",
1756 | "offshore",
1757 | "stinging",
1758 | "oppressive",
1759 | "strained",
1760 | "messy",
1761 | "executive",
1762 | "evolutionary",
1763 | "theological",
1764 | "damaged",
1765 | "unrealistic",
1766 | "rectangular",
1767 | "off",
1768 | "mainstream",
1769 | "benevolent",
1770 | "thirsty",
1771 | "blinding",
1772 | "loaded",
1773 | "applicable",
1774 | "unused",
1775 | "crushed",
1776 | "tan",
1777 | "factual",
1778 | "involuntary",
1779 | "brand-new",
1780 | "akin",
1781 | "scary",
1782 | "modified",
1783 | "mindless",
1784 | "born",
1785 | "feminist",
1786 | "integral",
1787 | "uncanny",
1788 | "aloof",
1789 | "spreading",
1790 | "watery",
1791 | "playful",
1792 | "stocky",
1793 | "wasted",
1794 | "compulsory",
1795 | "indignant",
1796 | "pertinent",
1797 | "incredulous",
1798 | "simultaneous",
1799 | "turbulent",
1800 | "framed",
1801 | "aching",
1802 | "falling",
1803 | "cardiac",
1804 | "trim",
1805 | "silvery",
1806 | "accused",
1807 | "pastoral",
1808 | "barbed",
1809 | "adjoining",
1810 | "inspired",
1811 | "courteous",
1812 | "skillful",
1813 | "majestic",
1814 | "gilded",
1815 | "published",
1816 | "perennial",
1817 | "upright",
1818 | "seasoned",
1819 | "continual",
1820 | "papal",
1821 | "victorious",
1822 | "optical",
1823 | "ecstatic",
1824 | "agonizing",
1825 | "shameful",
1826 | "expressive",
1827 | "inconsistent",
1828 | "insulting",
1829 | "cloudy",
1830 | "defiant",
1831 | "restricted",
1832 | "approaching",
1833 | "aggregate",
1834 | "orthodox",
1835 | "unified",
1836 | "all-out",
1837 | "wooded",
1838 | "nationalist",
1839 | "favored",
1840 | "lofty",
1841 | "assured",
1842 | "smug",
1843 | "earthly",
1844 | "improving",
1845 | "instrumental",
1846 | "stray",
1847 | "clandestine",
1848 | "managerial",
1849 | "animated",
1850 | "intended",
1851 | "flawed",
1852 | "bent",
1853 | "clerical",
1854 | "outgoing",
1855 | "righteous",
1856 | "unspoken",
1857 | "poignant",
1858 | "faulty",
1859 | "defeated",
1860 | "authoritarian",
1861 | "treacherous",
1862 | "catastrophic",
1863 | "refreshing",
1864 | "unidentified",
1865 | "suicidal",
1866 | "sickly",
1867 | "disciplined",
1868 | "meticulous",
1869 | "preferable",
1870 | "trusted",
1871 | "hectic",
1872 | "husky",
1873 | "distraught",
1874 | "select",
1875 | "snowy",
1876 | "ferocious",
1877 | "crumpled",
1878 | "humiliating",
1879 | "divided",
1880 | "crippled",
1881 | "infamous",
1882 | "chic",
1883 | "broke",
1884 | "sovereign",
1885 | "continental",
1886 | "idealistic",
1887 | "first-rate",
1888 | "guarded",
1889 | "learned",
1890 | "nameless",
1891 | "runaway",
1892 | "metaphysical",
1893 | "senseless",
1894 | "boiled",
1895 | "needy",
1896 | "silver",
1897 | "recorded",
1898 | "polar",
1899 | "real-estate",
1900 | "stormy",
1901 | "incomprehensible",
1902 | "wiry",
1903 | "raging",
1904 | "composite",
1905 | "flamboyant",
1906 | "crimson",
1907 | "reproductive",
1908 | "intermediate",
1909 | "ubiquitous",
1910 | "repressive",
1911 | "hefty",
1912 | "listening",
1913 | "good-natured",
1914 | "parochial",
1915 | "stylish",
1916 | "high-tech",
1917 | "flaming",
1918 | "coronary",
1919 | "overweight",
1920 | "bathing",
1921 | "three-day",
1922 | "tidy",
1923 | "beleaguered",
1924 | "manifest",
1925 | "ludicrous",
1926 | "indigenous",
1927 | "adamant",
1928 | "placid",
1929 | "inept",
1930 | "exuberant",
1931 | "stony",
1932 | "salty",
1933 | "seductive",
1934 | "accomplished",
1935 | "impassive",
1936 | "grazing",
1937 | "congenial",
1938 | "misguided",
1939 | "wide-eyed",
1940 | "revised",
1941 | "bass",
1942 | "sonic",
1943 | "budgetary",
1944 | "halfway",
1945 | "ensuing",
1946 | "admiring",
1947 | "palpable",
1948 | "nightly",
1949 | "hooded",
1950 | "best-known",
1951 | "eighteenth-century",
1952 | "dissident",
1953 | "morbid",
1954 | "incumbent",
1955 | "demanding",
1956 | "inexperienced",
1957 | "hazy",
1958 | "revolving",
1959 | "rented",
1960 | "disadvantaged",
1961 | "innate",
1962 | "dietary",
1963 | "minute",
1964 | "cultivated",
1965 | "sealed",
1966 | "contemptuous",
1967 | "rhetorical",
1968 | "conciliatory",
1969 | "articulate",
1970 | "jobless",
1971 | "macho",
1972 | "forgotten",
1973 | "lifeless",
1974 | "proven",
1975 | "latent",
1976 | "secretive",
1977 | "perilous",
1978 | "token",
1979 | "graphic",
1980 | "alcoholic",
1981 | "overdue",
1982 | "permissible",
1983 | "shattering",
1984 | "preventive",
1985 | "illiterate",
1986 | "back",
1987 | "atmospheric",
1988 | "thermal",
1989 | "quaint",
1990 | "negotiated",
1991 | "preposterous",
1992 | "temporal",
1993 | "restrained",
1994 | "triangular",
1995 | "mayoral",
1996 | "spatial",
1997 | "heady",
1998 | "biblical",
1999 | "fitting",
2000 | "pessimistic",
2001 | "mammoth",
2002 | "allied",
2003 | "failed",
2004 | "intuitive",
2005 | "nagging",
2006 | "tidal",
2007 | "angular",
2008 | "speechless",
2009 | "finishing",
2010 | "protracted",
2011 | "watchful",
2012 | "businesslike",
2013 | "automated",
2014 | "versatile",
2015 | "booming",
2016 | "pouring",
2017 | "misty",
2018 | "deceptive",
2019 | "sunken",
2020 | "singular",
2021 | "suspended",
2022 | "unworthy",
2023 | "immigrant",
2024 | "expressionless",
2025 | "airy",
2026 | "mournful",
2027 | "neurotic",
2028 | "cubic",
2029 | "unauthorized",
2030 | "economical",
2031 | "fund-raising",
2032 | "captive",
2033 | "blatant",
2034 | "far-reaching",
2035 | "subversive",
2036 | "imperfect",
2037 | "jolly",
2038 | "inaccurate",
2039 | "resentful",
2040 | "strenuous",
2041 | "suffering",
2042 | "hardened",
2043 | "malicious",
2044 | "unjust",
2045 | "perceptive",
2046 | "newborn",
2047 | "promised",
2048 | "differing",
2049 | "virgin",
2050 | "alarmed",
2051 | "grassy",
2052 | "frivolous",
2053 | "apologetic",
2054 | "wasteful",
2055 | "endangered",
2056 | "unarmed",
2057 | "adept",
2058 | "unavoidable",
2059 | "approved",
2060 | "trembling",
2061 | "stuck",
2062 | "high-ranking",
2063 | "crushing",
2064 | "prescribed",
2065 | "dependable",
2066 | "fragrant",
2067 | "expansive",
2068 | "unfriendly",
2069 | "covered",
2070 | "bemused",
2071 | "digital",
2072 | "probing",
2073 | "sloping",
2074 | "man-made",
2075 | "festive",
2076 | "unilateral",
2077 | "unmarked",
2078 | "bipartisan",
2079 | "statewide",
2080 | "burgeoning",
2081 | "devout",
2082 | "sickening",
2083 | "mediocre",
2084 | "adventurous",
2085 | "elevated",
2086 | "suggestive",
2087 | "accountable",
2088 | "virtuous",
2089 | "lame",
2090 | "heavenly",
2091 | "bruised",
2092 | "unbroken",
2093 | "irritable",
2094 | "affected",
2095 | "inconceivable",
2096 | "sometime",
2097 | "vile",
2098 | "baggy",
2099 | "timely",
2100 | "glistening",
2101 | "imagined",
2102 | "unprepared",
2103 | "unresolved",
2104 | "windy",
2105 | "humanitarian",
2106 | "overriding",
2107 | "detached",
2108 | "annoying",
2109 | "narrative",
2110 | "interminable",
2111 | "appalled",
2112 | "penal",
2113 | "unsatisfactory",
2114 | "instinctive",
2115 | "variable",
2116 | "cumulative",
2117 | "obedient",
2118 | "deficient",
2119 | "colossal",
2120 | "unaffected",
2121 | "extinct",
2122 | "routine",
2123 | "microscopic",
2124 | "compassionate",
2125 | "nominal",
2126 | "forlorn",
2127 | "distorted",
2128 | "mistaken",
2129 | "enclosed",
2130 | "infected",
2131 | "fervent",
2132 | "analogous",
2133 | "frigid",
2134 | "instructive",
2135 | "appointed",
2136 | "one-way",
2137 | "gnarled",
2138 | "problematic",
2139 | "sardonic",
2140 | "two-hour",
2141 | "hypothetical",
2142 | "prompt",
2143 | "anguished",
2144 | "electromagnetic",
2145 | "sensuous",
2146 | "homely",
2147 | "beaten",
2148 | "malignant",
2149 | "rotting",
2150 | "concealed",
2151 | "peripheral",
2152 | "creaking",
2153 | "impeccable",
2154 | "khaki",
2155 | "grinning",
2156 | "irreversible",
2157 | "rampant",
2158 | "wondrous",
2159 | "inward",
2160 | "manufactured",
2161 | "grisly",
2162 | "cooked",
2163 | "discriminatory",
2164 | "cerebral",
2165 | "knowing",
2166 | "auxiliary",
2167 | "operative",
2168 | "losing",
2169 | "genial",
2170 | "phonetic",
2171 | "ecclesiastical",
2172 | "sarcastic",
2173 | "incorrect",
2174 | "ruddy",
2175 | "well-to-do",
2176 | "inexplicable",
2177 | "unreliable",
2178 | "developmental",
2179 | "woolen",
2180 | "agitated",
2181 | "lyrical",
2182 | "consequent",
2183 | "calculated",
2184 | "molecular",
2185 | "pompous",
2186 | "present-day",
2187 | "shaggy",
2188 | "even",
2189 | "inhuman",
2190 | "sublime",
2191 | "diagnostic",
2192 | "manly",
2193 | "raucous",
2194 | "balding",
2195 | "after",
2196 | "bilateral",
2197 | "mounted",
2198 | "blackened",
2199 | "assembled",
2200 | "separated",
2201 | "gaudy",
2202 | "evangelical",
2203 | "darling",
2204 | "juicy",
2205 | "impotent",
2206 | "receptive",
2207 | "irritating",
2208 | "pulmonary",
2209 | "dazed",
2210 | "cross-country",
2211 | "unavailable",
2212 | "parked",
2213 | "habitual",
2214 | "lexical",
2215 | "lowered",
2216 | "unwise",
2217 | "planetary",
2218 | "throbbing",
2219 | "enigmatic",
2220 | "superstitious",
2221 | "threatening",
2222 | "manned",
2223 | "childlike",
2224 | "sporting",
2225 | "right-hand",
2226 | "adult",
2227 | "reflective",
2228 | "white-haired",
2229 | "discernible",
2230 | "celestial",
2231 | "prodigious",
2232 | "translucent",
2233 | "equitable",
2234 | "epic",
2235 | "frayed",
2236 | "arduous",
2237 | "flimsy",
2238 | "penetrating",
2239 | "howling",
2240 | "disparate",
2241 | "alike",
2242 | "all-time",
2243 | "deformed",
2244 | "comical",
2245 | "inert",
2246 | "procedural",
2247 | "resistant",
2248 | "vibrant",
2249 | "geographic",
2250 | "wistful",
2251 | "specified",
2252 | "rightful",
2253 | "spirited",
2254 | "unborn",
2255 | "enjoyable",
2256 | "regal",
2257 | "cumbersome",
2258 | "burned",
2259 | "frenzied",
2260 | "gubernatorial",
2261 | "deteriorating",
2262 | "haunted",
2263 | "evasive",
2264 | "neglected",
2265 | "anthropological",
2266 | "inescapable",
2267 | "clear-cut",
2268 | "visionary",
2269 | "bloated",
2270 | "accumulated",
2271 | "agrarian",
2272 | "pained",
2273 | "dwindling",
2274 | "heightened",
2275 | "gray-haired",
2276 | "distressing",
2277 | "grinding",
2278 | "insecure",
2279 | "archaic",
2280 | "piercing",
2281 | "fluent",
2282 | "leisurely",
2283 | "giddy",
2284 | "slimy",
2285 | "oncoming",
2286 | "short-lived",
2287 | "spinal",
2288 | "wholesome",
2289 | "unanswered",
2290 | "illegitimate",
2291 | "staunch",
2292 | "two-day",
2293 | "rumpled",
2294 | "speedy",
2295 | "soaked",
2296 | "rocking",
2297 | "invaluable",
2298 | "gallant",
2299 | "tacit",
2300 | "finite",
2301 | "inviting",
2302 | "sporadic",
2303 | "powdered",
2304 | "cheery",
2305 | "volcanic",
2306 | "optional",
2307 | "mischievous",
2308 | "flowered",
2309 | "contagious",
2310 | "automotive",
2311 | "inflated",
2312 | "mythic",
2313 | "analytical",
2314 | "infrared",
2315 | "two-week",
2316 | "binding",
2317 | "ancestral",
2318 | "dissatisfied",
2319 | "upstate",
2320 | "veritable",
2321 | "unaccustomed",
2322 | "oily",
2323 | "monotonous",
2324 | "seated",
2325 | "feeding",
2326 | "fluorescent",
2327 | "undue",
2328 | "impassioned",
2329 | "picturesque",
2330 | "vocational",
2331 | "tranquil",
2332 | "tumultuous",
2333 | "rustic",
2334 | "patterned",
2335 | "two-story",
2336 | "pagan",
2337 | "flash",
2338 | "playing",
2339 | "exhilarating",
2340 | "maiden",
2341 | "three-dimensional",
2342 | "mythical",
2343 | "thriving",
2344 | "drab",
2345 | "black-and-white",
2346 | "honorary",
2347 | "dingy",
2348 | "founding",
2349 | "imperative",
2350 | "indistinguishable",
2351 | "lightweight",
2352 | "avid",
2353 | "dreamy",
2354 | "everlasting",
2355 | "obsessive",
2356 | "tional",
2357 | "homogeneous",
2358 | "inner-city",
2359 | "changed",
2360 | "tame",
2361 | "colorless",
2362 | "haggard",
2363 | "implacable",
2364 | "altered",
2365 | "unequal",
2366 | "focal",
2367 | "perceptual",
2368 | "literate",
2369 | "priceless",
2370 | "diminishing",
2371 | "harmonious",
2372 | "dark-haired",
2373 | "fatty",
2374 | "squat",
2375 | "undecided",
2376 | "banal",
2377 | "fruitful",
2378 | "pioneering",
2379 | "innocuous",
2380 | "cordial",
2381 | "rewarding",
2382 | "unsafe",
2383 | "maritime",
2384 | "overcrowded",
2385 | "timeless",
2386 | "fledgling",
2387 | "nostalgic",
2388 | "abreast",
2389 | "one-time",
2390 | "humid",
2391 | "astronomical",
2392 | "one-man",
2393 | "deepening",
2394 | "blazing",
2395 | "fleshy",
2396 | "dishonest",
2397 | "succeeding",
2398 | "qualitative",
2399 | "needless",
2400 | "rickety",
2401 | "joyful",
2402 | "stated",
2403 | "ambivalent",
2404 | "hybrid",
2405 | "six-month",
2406 | "limiting",
2407 | "workable",
2408 | "sleepless",
2409 | "unpaid",
2410 | "mundane",
2411 | "flashy",
2412 | "stagnant",
2413 | "bumper",
2414 | "recurring",
2415 | "sinful",
2416 | "immaculate",
2417 | "synonymous",
2418 | "measured",
2419 | "thrilling",
2420 | "long-standing",
2421 | "unruly",
2422 | "bewildering",
2423 | "unfit",
2424 | "edgy",
2425 | "numerical",
2426 | "sumptuous",
2427 | "fragmented",
2428 | "puffy",
2429 | "elastic",
2430 | "high-pitched",
2431 | "momentous",
2432 | "woven",
2433 | "unsteady",
2434 | "unnamed",
2435 | "cosmetic",
2436 | "snap",
2437 | "impenetrable",
2438 | "floral",
2439 | "waving",
2440 | "promotional",
2441 | "tenuous",
2442 | "lonesome",
2443 | "embroidered",
2444 | "strident",
2445 | "cherished",
2446 | "aghast",
2447 | "fundamentalist",
2448 | "white-collar",
2449 | "afloat",
2450 | "disruptive",
2451 | "law-enforcement",
2452 | "gathered",
2453 | "indefinite",
2454 | "intervening",
2455 | "publicized",
2456 | "geometric",
2457 | "disciplinary",
2458 | "descriptive",
2459 | "wavy",
2460 | "edible",
2461 | "disgruntled",
2462 | "obligatory",
2463 | "untrue",
2464 | "amber",
2465 | "snug",
2466 | "resolute",
2467 | "awed",
2468 | "simplistic",
2469 | "grandiose",
2470 | "crippling",
2471 | "high-speed",
2472 | "mounting",
2473 | "glaring",
2474 | "small-town",
2475 | "cavernous",
2476 | "hushed",
2477 | "wage-price",
2478 | "demographic",
2479 | "diseased",
2480 | "unpublished",
2481 | "causal",
2482 | "defenseless",
2483 | "sheltered",
2484 | "dormant",
2485 | "compulsive",
2486 | "loved",
2487 | "willful",
2488 | "truthful",
2489 | "punitive",
2490 | "disposable",
2491 | "ajar",
2492 | "drowsy",
2493 | "statutory",
2494 | "tanned",
2495 | "proprietary",
2496 | "informed",
2497 | "unheard",
2498 | "decision-making",
2499 | "transient",
2500 | "unlawful",
2501 | "dour",
2502 | "negligible",
2503 | "underwater",
2504 | "optimum",
2505 | "illusory",
2506 | "imaginable",
2507 | "borrowed",
2508 | "divergent",
2509 | "looking",
2510 | "exempt",
2511 | "contentious",
2512 | "forbidden",
2513 | "cowardly",
2514 | "masked",
2515 | "crazed",
2516 | "silken",
2517 | "parched",
2518 | "furry",
2519 | "wandering",
2520 | "insensitive",
2521 | "over-all",
2522 | "elated",
2523 | "waxed",
2524 | "veiled",
2525 | "envious",
2526 | "insidious",
2527 | "scrawny",
2528 | "unwarranted",
2529 | "lithe",
2530 | "abrasive",
2531 | "pretentious",
2532 | "far-off",
2533 | "murdered",
2534 | "deft",
2535 | "prickly",
2536 | "musty",
2537 | "shapeless",
2538 | "incongruous",
2539 | "gruesome",
2540 | "honored",
2541 | "perceived",
2542 | "grieving",
2543 | "unspecified",
2544 | "dizzying",
2545 | "privy",
2546 | "noteworthy",
2547 | "charred",
2548 | "median",
2549 | "fearless",
2550 | "twisting",
2551 | "unattractive",
2552 | "flawless",
2553 | "welcoming",
2554 | "flushed",
2555 | "hardy",
2556 | "glum",
2557 | "scenic",
2558 | "devious",
2559 | "recurrent",
2560 | "distasteful",
2561 | "jubilant",
2562 | "ballistic",
2563 | "hilarious",
2564 | "naughty",
2565 | "bustling",
2566 | "discarded",
2567 | "pristine",
2568 | "exemplary",
2569 | "fading",
2570 | "complacent",
2571 | "incessant",
2572 | "engaging",
2573 | "twentieth-century",
2574 | "protectionist",
2575 | "rudimentary",
2576 | "traumatic",
2577 | "steamy",
2578 | "emphatic",
2579 | "hard-line",
2580 | "teeming",
2581 | "generating",
2582 | "stuffy",
2583 | "connecting",
2584 | "stationary",
2585 | "genteel",
2586 | "populist",
2587 | "supple",
2588 | "hateful",
2589 | "retrospective",
2590 | "glazed",
2591 | "lawful",
2592 | "arched",
2593 | "tiresome",
2594 | "lucid",
2595 | "reserved",
2596 | "pivotal",
2597 | "grimy",
2598 | "surly",
2599 | "anti-Soviet",
2600 | "contrary",
2601 | "quarterly",
2602 | "old-time",
2603 | "residual",
2604 | "spiral",
2605 | "decaying",
2606 | "threatened",
2607 | "docile",
2608 | "appreciative",
2609 | "jovial",
2610 | "fascist",
2611 | "worrisome",
2612 | "red-haired",
2613 | "undisturbed",
2614 | "creamy",
2615 | "well-dressed",
2616 | "serial",
2617 | "existential",
2618 | "mountainous",
2619 | "pastel",
2620 | "self-sufficient",
2621 | "spoken",
2622 | "express",
2623 | "tasty",
2624 | "maroon",
2625 | "infrequent",
2626 | "deceased",
2627 | "full-fledged",
2628 | "transitional",
2629 | "leafy",
2630 | "gravitational",
2631 | "furtive",
2632 | "prophetic",
2633 | "nasal",
2634 | "unwelcome",
2635 | "troubling",
2636 | "immobile",
2637 | "merciful",
2638 | "uncontrollable",
2639 | "impartial",
2640 | "unfavorable",
2641 | "attendant",
2642 | "associated",
2643 | "high-rise",
2644 | "vascular",
2645 | "fateful",
2646 | "concerted",
2647 | "rash",
2648 | "stubby",
2649 | "paramount",
2650 | "impulsive",
2651 | "fraudulent",
2652 | "drooping",
2653 | "reciprocal",
2654 | "usable",
2655 | "fast-food",
2656 | "touchy",
2657 | "astute",
2658 | "oversized",
2659 | "mottled",
2660 | "slack",
2661 | "fruitless",
2662 | "unhealthy",
2663 | "decorated",
2664 | "shady",
2665 | "shaped",
2666 | "fanciful",
2667 | "quivering",
2668 | "charismatic",
2669 | "sordid",
2670 | "oppressed",
2671 | "inaccessible",
2672 | "fastidious",
2673 | "brazen",
2674 | "gloved",
2675 | "crumbling",
2676 | "underdeveloped",
2677 | "scarred",
2678 | "rambling",
2679 | "incipient",
2680 | "remedial",
2681 | "derelict",
2682 | "incompatible",
2683 | "fanatical",
2684 | "smoked",
2685 | "secondhand",
2686 | "hypnotic",
2687 | "failing",
2688 | "marching",
2689 | "flattened",
2690 | "paradoxical",
2691 | "unskilled",
2692 | "esthetic",
2693 | "tolerable",
2694 | "pungent",
2695 | "substitute",
2696 | "soggy",
2697 | "terse",
2698 | "tiring",
2699 | "fictitious",
2700 | "manageable",
2701 | "inventive",
2702 | "haughty",
2703 | "normative",
2704 | "premier",
2705 | "grudging",
2706 | "vested",
2707 | "exhausting",
2708 | "cross-legged",
2709 | "self-evident",
2710 | "away",
2711 | "horrified",
2712 | "prolific",
2713 | "incoherent",
2714 | "quantitative",
2715 | "full-length",
2716 | "year-round",
2717 | "unkind",
2718 | "provisional",
2719 | "exterior",
2720 | "brash",
2721 | "inconclusive",
2722 | "landed",
2723 | "breathtaking",
2724 | "acrid",
2725 | "noted",
2726 | "resultant",
2727 | "long-time",
2728 | "resounding",
2729 | "lovable",
2730 | "hypocritical",
2731 | "plush",
2732 | "foggy",
2733 | "acknowledged",
2734 | "idiotic",
2735 | "tracking",
2736 | "ceramic",
2737 | "taxable",
2738 | "enterprising",
2739 | "flashing",
2740 | "wee",
2741 | "barbaric",
2742 | "deafening",
2743 | "orbital",
2744 | "lurid",
2745 | "dated",
2746 | "hated",
2747 | "buoyant",
2748 | "mating",
2749 | "pictorial",
2750 | "overlapping",
2751 | "lax",
2752 | "archetypal",
2753 | "manic",
2754 | "limitless",
2755 | "puzzling",
2756 | "condescending",
2757 | "hapless",
2758 | "meek",
2759 | "faceless",
2760 | "uncommitted",
2761 | "horrid",
2762 | "greenish",
2763 | "unorthodox",
2764 | "unending",
2765 | "accelerated",
2766 | "day-care",
2767 | "undeniable",
2768 | "bushy",
2769 | "searing",
2770 | "fearsome",
2771 | "unharmed",
2772 | "divisive",
2773 | "overpowering",
2774 | "diving",
2775 | "telling",
2776 | "determining",
2777 | "uptight",
2778 | "cast",
2779 | "enlarged",
2780 | "ebullient",
2781 | "disagreeable",
2782 | "insatiable",
2783 | "grown-up",
2784 | "demented",
2785 | "puffing",
2786 | "inconvenient",
2787 | "uncontrolled",
2788 | "inland",
2789 | "repulsive",
2790 | "unintelligible",
2791 | "blue-eyed",
2792 | "pallid",
2793 | "nonviolent",
2794 | "dilapidated",
2795 | "unyielding",
2796 | "astounded",
2797 | "marvellous",
2798 | "low-cost",
2799 | "purposeful",
2800 | "courtly",
2801 | "predominant",
2802 | "conversational",
2803 | "erroneous",
2804 | "resourceful",
2805 | "converted",
2806 | "disconcerting",
2807 | "oblique",
2808 | "dreaded",
2809 | "indicative",
2810 | "silky",
2811 | "six-year",
2812 | "front-page",
2813 | "biting",
2814 | "flowering",
2815 | "sunlit",
2816 | "licensed",
2817 | "unspeakable",
2818 | "adrift",
2819 | "awash",
2820 | "identifiable",
2821 | "girlish",
2822 | "zealous",
2823 | "spooky",
2824 | "uncompromising",
2825 | "deserving",
2826 | "driven",
2827 | "certified",
2828 | "unlucky",
2829 | "temperate",
2830 | "budding",
2831 | "impractical",
2832 | "public-relations",
2833 | "inflexible",
2834 | "sensory",
2835 | "pornographic",
2836 | "outlandish",
2837 | "resonant",
2838 | "belligerent",
2839 | "wan",
2840 | "leftover",
2841 | "spotted",
2842 | "soybean",
2843 | "easygoing",
2844 | "vengeful",
2845 | "proportional",
2846 | "inaugural",
2847 | "dank",
2848 | "screaming",
2849 | "heterosexual",
2850 | "sliced",
2851 | "year-old",
2852 | "considerate",
2853 | "thunderous",
2854 | "distressed",
2855 | "warring",
2856 | "assertive",
2857 | "foreseeable",
2858 | "psychotic",
2859 | "intermittent",
2860 | "anti-Communist",
2861 | "generalized",
2862 | "unable",
2863 | "molten",
2864 | "excruciating",
2865 | "illustrious",
2866 | "voluminous",
2867 | "offending",
2868 | "trustworthy",
2869 | "grating",
2870 | "laughing",
2871 | "one-year",
2872 | "industrious",
2873 | "uninterrupted",
2874 | "dashing",
2875 | "speaking",
2876 | "metabolic",
2877 | "flattering",
2878 | "one-sided",
2879 | "ineffectual",
2880 | "primal",
2881 | "digestive",
2882 | "taped",
2883 | "floppy",
2884 | "jaunty",
2885 | "practiced",
2886 | "walled",
2887 | "hospitable",
2888 | "dutiful",
2889 | "melodramatic",
2890 | "intestinal",
2891 | "cluttered",
2892 | "conclusive",
2893 | "complementary",
2894 | "unprotected",
2895 | "buzzing",
2896 | "attributable",
2897 | "tasteless",
2898 | "forthright",
2899 | "wily",
2900 | "hourly",
2901 | "delayed",
2902 | "sweating",
2903 | "affable",
2904 | "studied",
2905 | "chubby",
2906 | "thyroid",
2907 | "chilled",
2908 | "conducive",
2909 | "childless",
2910 | "faltering",
2911 | "authorized",
2912 | "buried",
2913 | "land-based",
2914 | "observable",
2915 | "hurried",
2916 | "curving",
2917 | "dismayed",
2918 | "pernicious",
2919 | "upturned",
2920 | "believable",
2921 | "questioning",
2922 | "syndicated",
2923 | "pharmaceutical",
2924 | "high-risk",
2925 | "resigned",
2926 | "discrete",
2927 | "likable",
2928 | "imprisoned",
2929 | "cocky",
2930 | "outdated",
2931 | "autocratic",
2932 | "ablaze",
2933 | "askew",
2934 | "grammatical",
2935 | "wintry",
2936 | "incidental",
2937 | "matter-of-fact",
2938 | "disputed",
2939 | "exorbitant",
2940 | "low-level",
2941 | "sodden",
2942 | "skeletal",
2943 | "disproportionate",
2944 | "soiled",
2945 | "cellular",
2946 | "ephemeral",
2947 | "perfunctory",
2948 | "inconsequential",
2949 | "flourishing",
2950 | "intentional",
2951 | "two-way",
2952 | "elemental",
2953 | "whispered",
2954 | "four-day",
2955 | "stinking",
2956 | "informative",
2957 | "tenacious",
2958 | "outlying",
2959 | "virulent",
2960 | "horrendous",
2961 | "horrifying",
2962 | "burnt",
2963 | "longstanding",
2964 | "senile",
2965 | "unmoving",
2966 | "deprived",
2967 | "interpersonal",
2968 | "intimidating",
2969 | "posh",
2970 | "dainty",
2971 | "portly",
2972 | "nondescript",
2973 | "inquisitive",
2974 | "exiled",
2975 | "capricious",
2976 | "scandalous",
2977 | "severed",
2978 | "debilitating",
2979 | "widowed",
2980 | "horny",
2981 | "sallow",
2982 | "up-to-date",
2983 | "self-contained",
2984 | "carefree",
2985 | "boisterous",
2986 | "coordinated",
2987 | "anti-Semitic",
2988 | "superfluous",
2989 | "metric",
2990 | "expressed",
2991 | "enchanting",
2992 | "disorderly",
2993 | "paternal",
2994 | "wanton",
2995 | "frightful",
2996 | "free-lance",
2997 | "extremist",
2998 | "lined",
2999 | "scornful",
3000 | "inseparable",
3001 | "obese",
3002 | "ponderous",
3003 | "imperious",
3004 | "indistinct",
3005 | "adrenal",
3006 | "belated",
3007 | "rippling",
3008 | "valiant",
3009 | "livid",
3010 | "mystic",
3011 | "cracking",
3012 | "subterranean",
3013 | "invading",
3014 | "rusted",
3015 | "esoteric",
3016 | "red-faced",
3017 | "segregated",
3018 | "lanky",
3019 | "departmental",
3020 | "allergic",
3021 | "predatory",
3022 | "enforced",
3023 | "anti-inflation",
3024 | "implied",
3025 | "flagrant",
3026 | "best-selling",
3027 | "haphazard",
3028 | "trailing",
3029 | "seedy",
3030 | "real-life",
3031 | "unannounced",
3032 | "utilitarian",
3033 | "roving",
3034 | "despairing",
3035 | "immature",
3036 | "simulated",
3037 | "embattled",
3038 | "poisoned",
3039 | "patronizing",
3040 | "baffled",
3041 | "centralized",
3042 | "weathered",
3043 | "weeping",
3044 | "mutilated",
3045 | "painstaking",
3046 | "tax-exempt",
3047 | "socioeconomic",
3048 | "tearful",
3049 | "stringy",
3050 | "projecting",
3051 | "low-key",
3052 | "single-minded",
3053 | "shadowed",
3054 | "vehement",
3055 | "darn",
3056 | "fluffy",
3057 | "apocalyptic",
3058 | "completed",
3059 | "intelligible",
3060 | "furnished",
3061 | "elongated",
3062 | "worsening",
3063 | "eclectic",
3064 | "bacterial",
3065 | "earthy",
3066 | "sagging",
3067 | "wide-ranging",
3068 | "face-to-face",
3069 | "settled",
3070 | "dogmatic",
3071 | "anti",
3072 | "secluded",
3073 | "baffling",
3074 | "coy",
3075 | "pathological",
3076 | "echoing",
3077 | "bridal",
3078 | "autobiographical",
3079 | "instantaneous",
3080 | "ornamental",
3081 | "satirical",
3082 | "voluptuous",
3083 | "movable",
3084 | "kinetic",
3085 | "merciless",
3086 | "tireless",
3087 | "three-month",
3088 | "unconcerned",
3089 | "impromptu",
3090 | "turning",
3091 | "follow-up",
3092 | "retaliatory",
3093 | "arcane",
3094 | "waterproof",
3095 | "justifiable",
3096 | "glassy",
3097 | "unearthly",
3098 | "shuttered",
3099 | "inverted",
3100 | "bogus",
3101 | "petrified",
3102 | "simmering",
3103 | "guided",
3104 | "gritty",
3105 | "widening",
3106 | "generic",
3107 | "pretrial",
3108 | "returning",
3109 | "boundless",
3110 | "swirling",
3111 | "northeastern",
3112 | "swell",
3113 | "tive",
3114 | "minuscule",
3115 | "estranged",
3116 | "upbeat",
3117 | "explanatory",
3118 | "repetitive",
3119 | "repressed",
3120 | "vindictive",
3121 | "shrinking",
3122 | "canny",
3123 | "little-known",
3124 | "hydraulic",
3125 | "unrelenting",
3126 | "looming",
3127 | "supersonic",
3128 | "justified",
3129 | "lukewarm",
3130 | "unmoved",
3131 | "blurred",
3132 | "double-breasted",
3133 | "sanitary",
3134 | "unforgettable",
3135 | "diligent",
3136 | "unconventional",
3137 | "ashen",
3138 | "wordless",
3139 | "stainless",
3140 | "inlaid",
3141 | "irritated",
3142 | "spotless",
3143 | "pudgy",
3144 | "yellowish",
3145 | "lateral",
3146 | "adopted",
3147 | "lowly",
3148 | "obnoxious",
3149 | "utopian",
3150 | "called",
3151 | "unimaginable",
3152 | "hairless",
3153 | "foregoing",
3154 | "opulent",
3155 | "garish",
3156 | "nocturnal",
3157 | "rousing",
3158 | "unexplained",
3159 | "cosmopolitan",
3160 | "milky",
3161 | "medium-sized",
3162 | "all-night",
3163 | "bloodshot",
3164 | "rueful",
3165 | "hard-working",
3166 | "crafty",
3167 | "familial",
3168 | "iced",
3169 | "violet",
3170 | "arctic",
3171 | "ceaseless",
3172 | "exasperated",
3173 | "warped",
3174 | "aquatic",
3175 | "gruff",
3176 | "terrestrial",
3177 | "contrasting",
3178 | "egalitarian",
3179 | "needful",
3180 | "spent",
3181 | "untrained",
3182 | "escalating",
3183 | "liberated",
3184 | "long-haired",
3185 | "abortive",
3186 | "syntactic",
3187 | "consummate",
3188 | "lumpy",
3189 | "spoiled",
3190 | "ten-year-old",
3191 | "talkative",
3192 | "whimsical",
3193 | "weighty",
3194 | "audio",
3195 | "inflammatory",
3196 | "deplorable",
3197 | "spicy",
3198 | "corrugated",
3199 | "morose",
3200 | "sobering",
3201 | "southwestern",
3202 | "three-year-old",
3203 | "methodical",
3204 | "prehistoric",
3205 | "carpeted",
3206 | "smelly",
3207 | "processed",
3208 | "overheated",
3209 | "interstellar",
3210 | "agile",
3211 | "approximate",
3212 | "sadistic",
3213 | "living-room",
3214 | "irate",
3215 | "smashed",
3216 | "frontal",
3217 | "venereal",
3218 | "indiscriminate",
3219 | "suggested",
3220 | "cultured",
3221 | "creeping",
3222 | "recognized",
3223 | "toothless",
3224 | "handmade",
3225 | "mellow",
3226 | "fetal",
3227 | "disinterested",
3228 | "gratifying",
3229 | "trusting",
3230 | "small-scale",
3231 | "intravenous",
3232 | "crashing",
3233 | "exhaustive",
3234 | "afire",
3235 | "clammy",
3236 | "sleazy",
3237 | "florid",
3238 | "heartless",
3239 | "transcendent",
3240 | "restored",
3241 | "demonic",
3242 | "abusive",
3243 | "avowed",
3244 | "shrunken",
3245 | "objectionable",
3246 | "tailored",
3247 | "arms-control",
3248 | "listless",
3249 | "polluted",
3250 | "palatable",
3251 | "funded",
3252 | "elective",
3253 | "entrenched",
3254 | "classy",
3255 | "operatic",
3256 | "daunting",
3257 | "roaring",
3258 | "preferential",
3259 | "languid",
3260 | "three-hour",
3261 | "virile",
3262 | "inspiring",
3263 | "enhanced",
3264 | "scrupulous",
3265 | "bottomless",
3266 | "ginger",
3267 | "wispy",
3268 | "advantageous",
3269 | "rapt",
3270 | "umbilical",
3271 | "uphill",
3272 | "ordered",
3273 | "enraged",
3274 | "detrimental",
3275 | "curt",
3276 | "exalted",
3277 | "hard-pressed",
3278 | "intangible",
3279 | "fussy",
3280 | "forgiving",
3281 | "facile",
3282 | "populous",
3283 | "condemned",
3284 | "mashed",
3285 | "hard-boiled",
3286 | "introductory",
3287 | "rowdy",
3288 | "switching",
3289 | "perplexing",
3290 | "spilled",
3291 | "southeastern",
3292 | "undulating",
3293 | "fractured",
3294 | "inherited",
3295 | "inscrutable",
3296 | "measurable",
3297 | "stunted",
3298 | "hormonal",
3299 | "stylized",
3300 | "hierarchical",
3301 | "air-conditioned",
3302 | "aimless",
3303 | "subsidized",
3304 | "paying",
3305 | "symmetrical",
3306 | "nomadic",
3307 | "cloudless",
3308 | "reigning",
3309 | "thatched",
3310 | "perceptible",
3311 | "anesthetic",
3312 | "anti-American",
3313 | "miscellaneous",
3314 | "homesick",
3315 | "preparatory",
3316 | "seven-year",
3317 | "big-city",
3318 | "decadent",
3319 | "searching",
3320 | "all-important",
3321 | "inanimate",
3322 | "senatorial",
3323 | "diminutive",
3324 | "soft-spoken",
3325 | "contingent",
3326 | "dusky",
3327 | "smashing",
3328 | "precipitous",
3329 | "bulging",
3330 | "standardized",
3331 | "biographical",
3332 | "restive",
3333 | "indecent",
3334 | "upper-class",
3335 | "ecumenical",
3336 | "interchangeable",
3337 | "lumbering",
3338 | "fascinated",
3339 | "untidy",
3340 | "indulgent",
3341 | "leaden",
3342 | "wanted",
3343 | "endemic",
3344 | "doomed",
3345 | "wanting",
3346 | "receiving",
3347 | "engaged",
3348 | "unparalleled",
3349 | "abbreviated",
3350 | "malevolent",
3351 | "wishful",
3352 | "carnival",
3353 | "world-wide",
3354 | "protruding",
3355 | "resplendent",
3356 | "stranded",
3357 | "structured",
3358 | "biased",
3359 | "frosty",
3360 | "northwestern",
3361 | "viral",
3362 | "mindful",
3363 | "paved",
3364 | "indeterminate",
3365 | "painless",
3366 | "second-floor",
3367 | "geological",
3368 | "permissive",
3369 | "downhill",
3370 | "unsuspecting",
3371 | "expectant",
3372 | "fabled",
3373 | "jittery",
3374 | "windowless",
3375 | "evocative",
3376 | "unsolved",
3377 | "disoriented",
3378 | "monastic",
3379 | "soluble",
3380 | "misshapen",
3381 | "antiquated",
3382 | "repugnant",
3383 | "non-Communist",
3384 | "retiring",
3385 | "shaded",
3386 | "combative",
3387 | "high-powered",
3388 | "resilient",
3389 | "antagonistic",
3390 | "starched",
3391 | "vice-presidential",
3392 | "speckled",
3393 | "lopsided",
3394 | "bluish",
3395 | "late-night",
3396 | "prim",
3397 | "unrestrained",
3398 | "almighty",
3399 | "tyrannical",
3400 | "unkempt",
3401 | "menstrual",
3402 | "bleached",
3403 | "overgrown",
3404 | "idiosyncratic",
3405 | "shoddy",
3406 | "hallowed",
3407 | "trying",
3408 | "halting",
3409 | "princely",
3410 | "drugged",
3411 | "gratuitous",
3412 | "descending",
3413 | "fatherly",
3414 | "avant-garde",
3415 | "laborious",
3416 | "pinched",
3417 | "disguised",
3418 | "caustic",
3419 | "bespectacled",
3420 | "handwritten",
3421 | "goodly",
3422 | "itinerant",
3423 | "cryptic",
3424 | "undisclosed",
3425 | "affordable",
3426 | "outmoded",
3427 | "expedient",
3428 | "moody",
3429 | "tepid",
3430 | "firsthand",
3431 | "digging",
3432 | "elitist",
3433 | "observed",
3434 | "chartered",
3435 | "slain",
3436 | "five-day",
3437 | "unimpressed",
3438 | "tactful",
3439 | "idyllic",
3440 | "prostrate",
3441 | "ramshackle",
3442 | "expert",
3443 | "deferred",
3444 | "undistinguished",
3445 | "prized",
3446 | "transatlantic",
3447 | "crystalline",
3448 | "tacky",
3449 | "haunting",
3450 | "nutritious",
3451 | "bereft",
3452 | "turquoise",
3453 | "time-consuming",
3454 | "sanguine",
3455 | "culinary",
3456 | "fraught",
3457 | "precocious",
3458 | "assigned",
3459 | "scrambled",
3460 | "advisable",
3461 | "nationalistic",
3462 | "long-awaited",
3463 | "unwrapped",
3464 | "unchallenged",
3465 | "circumstantial",
3466 | "pleasurable",
3467 | "compressed",
3468 | "humanistic",
3469 | "unforeseen",
3470 | "diversified",
3471 | "frenetic",
3472 | "disapproving",
3473 | "proletarian",
3474 | "conspiratorial",
3475 | "featureless",
3476 | "going",
3477 | "commendable",
3478 | "no-nonsense",
3479 | "chipped",
3480 | "surreal",
3481 | "salient",
3482 | "pissed",
3483 | "insurmountable",
3484 | "backstage",
3485 | "contented",
3486 | "indebted",
3487 | "adoring",
3488 | "one-room",
3489 | "prewar",
3490 | "potted",
3491 | "accelerating",
3492 | "thorny",
3493 | "possessive",
3494 | "abiding",
3495 | "ever-increasing",
3496 | "bloodless",
3497 | "high-technology",
3498 | "counterproductive",
3499 | "attracting",
3500 | "entrepreneurial",
3501 | "cooling",
3502 | "unoccupied",
3503 | "craggy",
3504 | "leathery",
3505 | "degenerate",
3506 | "additive",
3507 | "weakened",
3508 | "quilted",
3509 | "untold",
3510 | "incandescent",
3511 | "intractable",
3512 | "middle-income",
3513 | "abject",
3514 | "self-made",
3515 | "gaseous",
3516 | "anal",
3517 | "displaced",
3518 | "unabashed",
3519 | "immutable",
3520 | "fluttering",
3521 | "ten-year",
3522 | "bearable",
3523 | "stamped",
3524 | "darkening",
3525 | "beefy",
3526 | "petite",
3527 | "charging",
3528 | "high-quality",
3529 | "left-hand",
3530 | "age-old",
3531 | "checkered",
3532 | "stupendous",
3533 | "priestly",
3534 | "loath",
3535 | "endearing",
3536 | "exacting",
3537 | "correctional",
3538 | "freak",
3539 | "sneaky",
3540 | "disgraceful",
3541 | "unholy",
3542 | "oriental",
3543 | "wayward",
3544 | "societal",
3545 | "hard-core",
3546 | "bilingual",
3547 | "flipping",
3548 | "staid",
3549 | "paramilitary",
3550 | "heartfelt",
3551 | "shapely",
3552 | "kosher",
3553 | "heedless",
3554 | "incurable",
3555 | "controlling",
3556 | "in-house",
3557 | "choral",
3558 | "manicured",
3559 | "cardinal",
3560 | "inconspicuous",
3561 | "steely",
3562 | "vanishing",
3563 | "misplaced",
3564 | "centre-fire",
3565 | "enchanted",
3566 | "unfounded",
3567 | "wrecked",
3568 | "womanly",
3569 | "delirious",
3570 | "deposed",
3571 | "panicky",
3572 | "differential",
3573 | "tawny",
3574 | "articulated",
3575 | "coded",
3576 | "wide-open",
3577 | "unregulated",
3578 | "lenient",
3579 | "feathered",
3580 | "simplified",
3581 | "beguiling",
3582 | "sectarian",
3583 | "producing",
3584 | "tiled",
3585 | "inorganic",
3586 | "frosted",
3587 | "lusty",
3588 | "scented",
3589 | "rotating",
3590 | "grievous",
3591 | "dissimilar",
3592 | "salaried",
3593 | "unequivocal",
3594 | "strangled",
3595 | "grubby",
3596 | "alluring",
3597 | "downcast",
3598 | "restraining",
3599 | "unjustified",
3600 | "contaminated",
3601 | "lacy",
3602 | "cinematic",
3603 | "second-class",
3604 | "splintered",
3605 | "adorable",
3606 | "derisive",
3607 | "state-owned",
3608 | "requisite",
3609 | "fleeing",
3610 | "uncomplicated",
3611 | "motherly",
3612 | "inter",
3613 | "high-heeled",
3614 | "climatic",
3615 | "republican",
3616 | "unqualified",
3617 | "leveraged",
3618 | "intercontinental",
3619 | "uncharacteristic",
3620 | "compositional",
3621 | "unwritten",
3622 | "patriarchal",
3623 | "brusque",
3624 | "unresponsive",
3625 | "replete",
3626 | "corrective",
3627 | "reflected",
3628 | "scraping",
3629 | "doctoral",
3630 | "premium",
3631 | "deductible",
3632 | "alternating",
3633 | "amorous",
3634 | "overjoyed",
3635 | "recalcitrant",
3636 | "presumptuous",
3637 | "vaulted",
3638 | "declared",
3639 | "inexorable",
3640 | "groggy",
3641 | "diminished",
3642 | "restful",
3643 | "retroactive",
3644 | "presumed",
3645 | "monolithic",
3646 | "curtained",
3647 | "tortured",
3648 | "ground",
3649 | "trendy",
3650 | "brassy",
3651 | "prosaic",
3652 | "inactive",
3653 | "chaste",
3654 | "bumpy",
3655 | "aggrieved",
3656 | "corny",
3657 | "centrist",
3658 | "trapped",
3659 | "noxious",
3660 | "jerky",
3661 | "concomitant",
3662 | "withholding",
3663 | "poorly",
3664 | "stolid",
3665 | "unguarded",
3666 | "methodological",
3667 | "primordial",
3668 | "retreating",
3669 | "telescopic",
3670 | "sidelong",
3671 | "off-duty",
3672 | "pleated",
3673 | "dissenting",
3674 | "agreed",
3675 | "double-action",
3676 | "optimal",
3677 | "plaintive",
3678 | "banned",
3679 | "kindred",
3680 | "quintessential",
3681 | "impervious",
3682 | "jumping",
3683 | "disenchanted",
3684 | "observant",
3685 | "congested",
3686 | "second-rate",
3687 | "reasoned",
3688 | "extrinsic",
3689 | "infantile",
3690 | "transitory",
3691 | "coveted",
3692 | "small-time",
3693 | "doctrinal",
3694 | "incomparable",
3695 | "jaded",
3696 | "special-interest",
3697 | "sociable",
3698 | "shameless",
3699 | "coloured",
3700 | "ascending",
3701 | "fraternal",
3702 | "queasy",
3703 | "wont",
3704 | "exhilarated",
3705 | "salted",
3706 | "disquieting",
3707 | "listed",
3708 | "unchanging",
3709 | "nine-year-old",
3710 | "unrestricted",
3711 | "uppermost",
3712 | "reputable",
3713 | "dummy",
3714 | "skimpy",
3715 | "crusty",
3716 | "corrosive",
3717 | "bubbling",
3718 | "decrepit",
3719 | "unsuitable",
3720 | "snarling",
3721 | "destitute",
3722 | "illuminating",
3723 | "systemic",
3724 | "material",
3725 | "unwashed",
3726 | "rushing",
3727 | "dialectical",
3728 | "jeweled",
3729 | "attached",
3730 | "liberating",
3731 | "judicious",
3732 | "errant",
3733 | "vanished",
3734 | "worn-out",
3735 | "erstwhile",
3736 | "uninformed",
3737 | "twelve-year-old",
3738 | "longterm",
3739 | "petulant",
3740 | "twin",
3741 | "self-righteous",
3742 | "afflicted",
3743 | "snappy",
3744 | "tantamount",
3745 | "sworn",
3746 | "unethical",
3747 | "drained",
3748 | "hydroelectric",
3749 | "perplexed",
3750 | "logistical",
3751 | "concentric",
3752 | "unifying",
3753 | "lunatic",
3754 | "invincible",
3755 | "diffident",
3756 | "inexhaustible",
3757 | "discouraging",
3758 | "dreamlike",
3759 | "artful",
3760 | "rolled",
3761 | "suppressed",
3762 | "secretarial",
3763 | "smoldering",
3764 | "redundant",
3765 | "forensic",
3766 | "million-dollar",
3767 | "self-styled",
3768 | "earned",
3769 | "weightless",
3770 | "signed",
3771 | "compensatory",
3772 | "glacial",
3773 | "unmanned",
3774 | "stalwart",
3775 | "funky",
3776 | "intensified",
3777 | "uninterested",
3778 | "submerged",
3779 | "urbane",
3780 | "glib",
3781 | "ascetic",
3782 | "contractual",
3783 | "warlike",
3784 | "high-priced",
3785 | "diagonal",
3786 | "cylindrical",
3787 | "gargantuan",
3788 | "illuminated",
3789 | "unconditional",
3790 | "hulking",
3791 | "supplementary",
3792 | "dictatorial",
3793 | "puny",
3794 | "sedate",
3795 | "moonlit",
3796 | "eight-year-old",
3797 | "gullible",
3798 | "counterfeit",
3799 | "alienated",
3800 | "spinning",
3801 | "analytic",
3802 | "nimble",
3803 | "adaptive",
3804 | "individualistic",
3805 | "numbered",
3806 | "blissful",
3807 | "insolent",
3808 | "supplemental",
3809 | "delectable",
3810 | "inordinate",
3811 | "unbalanced",
3812 | "tormented",
3813 | "unchecked",
3814 | "aspiring",
3815 | "punishing",
3816 | "self-serving",
3817 | "crossed",
3818 | "discretionary",
3819 | "box-office",
3820 | "snow-covered",
3821 | "improvised",
3822 | "squalid",
3823 | "orphaned",
3824 | "grizzled",
3825 | "unsmiling",
3826 | "disappearing",
3827 | "affiliated",
3828 | "readable",
3829 | "blocking",
3830 | "bullish",
3831 | "contending",
3832 | "burned-out",
3833 | "bloodied",
3834 | "subsidiary",
3835 | "complimentary",
3836 | "unclean",
3837 | "scanty",
3838 | "uprooted",
3839 | "farfetched",
3840 | "solicitous",
3841 | "regulated",
3842 | "threadbare",
3843 | "choppy",
3844 | "ever-present",
3845 | "negligent",
3846 | "nonstop",
3847 | "one-day",
3848 | "wild-eyed",
3849 | "infuriating",
3850 | "vivacious",
3851 | "abominable",
3852 | "wrought",
3853 | "inaudible",
3854 | "braided",
3855 | "transcendental",
3856 | "desultory",
3857 | "climactic",
3858 | "appellate",
3859 | "interlocking",
3860 | "submissive",
3861 | "unmatched",
3862 | "dapper",
3863 | "demeaning",
3864 | "adaptable",
3865 | "well-meaning",
3866 | "lustrous",
3867 | "tax-free",
3868 | "ungrateful",
3869 | "gentlemanly",
3870 | "missed",
3871 | "loathsome",
3872 | "incalculable",
3873 | "blistering",
3874 | "amenable",
3875 | "tremulous",
3876 | "massed",
3877 | "nonpartisan",
3878 | "unsettled",
3879 | "three-story",
3880 | "succulent",
3881 | "trite",
3882 | "masterful",
3883 | "reticent",
3884 | "unsettling",
3885 | "proverbial",
3886 | "strapping",
3887 | "spurious",
3888 | "invulnerable",
3889 | "paltry",
3890 | "embryonic",
3891 | "repeating",
3892 | "neural",
3893 | "sultry",
3894 | "metaphorical",
3895 | "foreign-policy",
3896 | "linked",
3897 | "pubic",
3898 | "beaming",
3899 | "ministerial",
3900 | "phantom",
3901 | "quizzical",
3902 | "hilly",
3903 | "cold-blooded",
3904 | "gregarious",
3905 | "three-piece",
3906 | "untroubled",
3907 | "bisexual",
3908 | "pensive",
3909 | "unpretentious",
3910 | "exploratory",
3911 | "unscathed",
3912 | "irrepressible",
3913 | "pelvic",
3914 | "newfound",
3915 | "starry",
3916 | "corned",
3917 | "overworked",
3918 | "illogical",
3919 | "unfaithful",
3920 | "interrelated",
3921 | "saintly",
3922 | "overcast",
3923 | "connected",
3924 | "ungainly",
3925 | "organizing",
3926 | "carnal",
3927 | "philosophic",
3928 | "nationalized",
3929 | "fickle",
3930 | "ultraviolet",
3931 | "crass",
3932 | "undeveloped",
3933 | "unprofitable",
3934 | "sheepish",
3935 | "archaeological",
3936 | "out-of-town",
3937 | "balmy",
3938 | "spongy",
3939 | "infallible",
3940 | "callous",
3941 | "scathing",
3942 | "rheumatic",
3943 | "audacious",
3944 | "participating",
3945 | "swarthy",
3946 | "hand-held",
3947 | "comatose",
3948 | "modernist",
3949 | "stellar",
3950 | "antinuclear",
3951 | "delinquent",
3952 | "time-honored",
3953 | "presiding",
3954 | "relaxing",
3955 | "high-pressure",
3956 | "impetuous",
3957 | "hypodermic",
3958 | "fringed",
3959 | "favourite",
3960 | "unscrupulous",
3961 | "inspirational",
3962 | "mystified",
3963 | "wobbly",
3964 | "intrepid",
3965 | "deferential",
3966 | "burdensome",
3967 | "stored",
3968 | "supervisory",
3969 | "seventeenth-century",
3970 | "six-day",
3971 | "interdependent",
3972 | "updated",
3973 | "all-powerful",
3974 | "unitary",
3975 | "stand-up",
3976 | "laconic",
3977 | "penniless",
3978 | "steadfast",
3979 | "dogged",
3980 | "scholastic",
3981 | "convertible",
3982 | "mingled",
3983 | "sorrowful",
3984 | "symptomatic",
3985 | "stylistic",
3986 | "well-intentioned",
3987 | "consuming",
3988 | "sketchy",
3989 | "weakening",
3990 | "generative",
3991 | "atrocious",
3992 | "first-quarter",
3993 | "irrevocable",
3994 | "charged",
3995 | "stoned",
3996 | "dividing",
3997 | "apathetic",
3998 | "debatable",
3999 | "uncomprehending",
4000 | "overhanging",
4001 | "galloping",
4002 | "kinky",
4003 | "uncritical",
4004 | "suave",
4005 | "undisputed",
4006 | "spiky",
4007 | "inarticulate",
4008 | "extracurricular",
4009 | "guttural",
4010 | "impressed",
4011 | "departing",
4012 | "yellowed",
4013 | "discontented",
4014 | "adroit",
4015 | "high-fiber",
4016 | "second-hand",
4017 | "blinking",
4018 | "formless",
4019 | "unsavory",
4020 | "new-found",
4021 | "withered",
4022 | "collected",
4023 | "menial",
4024 | "unobserved",
4025 | "flabby",
4026 | "afterward",
4027 | "vanquished",
4028 | "stained-glass",
4029 | "hour-long",
4030 | "bittersweet",
4031 | "invalid",
4032 | "incriminating",
4033 | "commensurate",
4034 | "all-American",
4035 | "assumed",
4036 | "tried",
4037 | "cursory",
4038 | "absorbing",
4039 | "clearing",
4040 | "confirmed",
4041 | "stressful",
4042 | "depleted",
4043 | "eight-year",
4044 | "participatory",
4045 | "stripped",
4046 | "concave",
4047 | "regrettable",
4048 | "fortified",
4049 | "effortless",
4050 | "regressive",
4051 | "irreverent",
4052 | "collegiate",
4053 | "defunct",
4054 | "grainy",
4055 | "inhospitable",
4056 | "gripping",
4057 | "grizzly",
4058 | "restoring",
4059 | "arterial",
4060 | "busted",
4061 | "indomitable",
4062 | "demure",
4063 | "rabid",
4064 | "headlong",
4065 | "blue-green",
4066 | "bound",
4067 | "breezy",
4068 | "materialistic",
4069 | "uneducated",
4070 | "scruffy",
4071 | "cohesive",
4072 | "full-blown",
4073 | "cranky",
4074 | "motivated",
4075 | "mauve",
4076 | "hardworking",
4077 | "melodic",
4078 | "genital",
4079 | "decorous",
4080 | "comely",
4081 | "rife",
4082 | "purported",
4083 | "hurtful",
4084 | "six-foot",
4085 | "macabre",
4086 | "odious",
4087 | "convulsive",
4088 | "well-trained",
4089 | "heterogeneous",
4090 | "curled",
4091 | "pearly",
4092 | "spindly",
4093 | "latter-day",
4094 | "innermost",
4095 | "clipped",
4096 | "checked",
4097 | "masterly",
4098 | "laughable",
4099 | "naturalistic",
4100 | "tinkling",
4101 | "impudent",
4102 | "fitful",
4103 | "illustrated",
4104 | "speeding",
4105 | "roasted",
4106 | "in-depth",
4107 | "helluva",
4108 | "vigilant",
4109 | "empty-handed",
4110 | "forged",
4111 | "wrought-iron",
4112 | "disgraced",
4113 | "agonized",
4114 | "infirm",
4115 | "preserving",
4116 | "tasteful",
4117 | "onerous",
4118 | "shredded",
4119 | "impregnable",
4120 | "slanted",
4121 | "tainted",
4122 | "opened",
4123 | "first-time",
4124 | "machine-gun",
4125 | "bottled",
4126 | "seismic",
4127 | "fetid",
4128 | "saturated",
4129 | "insubstantial",
4130 | "full-page",
4131 | "aromatic",
4132 | "stingy",
4133 | "promiscuous",
4134 | "unlit",
4135 | "regimental",
4136 | "spellbound",
4137 | "streamlined",
4138 | "bereaved",
4139 | "ruffled",
4140 | "creepy",
4141 | "treasured",
4142 | "ensconced",
4143 | "one-party",
4144 | "well-educated",
4145 | "pert",
4146 | "mercantile",
4147 | "all-purpose",
4148 | "voracious",
4149 | "tortuous",
4150 | "despised",
4151 | "unadorned",
4152 | "offhand",
4153 | "qualifying",
4154 | "manipulative",
4155 | "indelible",
4156 | "well-established",
4157 | "revolting",
4158 | "ethereal",
4159 | "roasting",
4160 | "prohibitive",
4161 | "domed",
4162 | "whipped",
4163 | "overstuffed",
4164 | "garrulous",
4165 | "skittish",
4166 | "revived",
4167 | "heartening",
4168 | "jumpy",
4169 | "grilled",
4170 | "melted",
4171 | "unfocused",
4172 | "spectral",
4173 | "unproductive",
4174 | "top-level",
4175 | "life-size",
4176 | "three-way",
4177 | "negotiable",
4178 | "disloyal",
4179 | "turn-of-the-century",
4180 | "four-hour",
4181 | "unopened",
4182 | "devilish",
4183 | "amorphous",
4184 | "antiseptic",
4185 | "sharpened",
4186 | "primeval",
4187 | "unrecognizable",
4188 | "ineligible",
4189 | "expendable",
4190 | "deathly",
4191 | "auspicious",
4192 | "insoluble",
4193 | "inimical",
4194 | "unquestioned",
4195 | "far-flung",
4196 | "medicinal",
4197 | "deep-seated",
4198 | "formative",
4199 | "iridescent",
4200 | "fragmentary",
4201 | "distinguishable",
4202 | "auburn",
4203 | "closed-circuit",
4204 | "emeritus",
4205 | "third-floor",
4206 | "hazel",
4207 | "tumbling",
4208 | "departed",
4209 | "obstinate",
4210 | "portentous",
4211 | "quixotic",
4212 | "scorched",
4213 | "adjustable",
4214 | "winged",
4215 | "intrusive",
4216 | "taxing",
4217 | "high-ceilinged",
4218 | "barbarous",
4219 | "decreasing",
4220 | "sleeveless",
4221 | "unattended",
4222 | "tight-lipped",
4223 | "concluding",
4224 | "unobtrusive",
4225 | "starved",
4226 | "quirky",
4227 | "big-time",
4228 | "sooty",
4229 | "copious",
4230 | "stalled",
4231 | "scriptural",
4232 | "unconvincing",
4233 | "earthen",
4234 | "throaty",
4235 | "august",
4236 | "extant",
4237 | "sexist",
4238 | "exultant",
4239 | "cancerous",
4240 | "psychedelic",
4241 | "yielding",
4242 | "matched",
4243 | "chunky",
4244 | "unfathomable",
4245 | "concise",
4246 | "admitting",
4247 | "knitted",
4248 | "projective",
4249 | "euphoric",
4250 | "garbled",
4251 | "divisional",
4252 | "despondent",
4253 | "recommended",
4254 | "passable",
4255 | "vegetarian",
4256 | "indefatigable",
4257 | "irreparable",
4258 | "feisty",
4259 | "untenable",
4260 | "contrite",
4261 | "angelic",
4262 | "reputed",
4263 | "untimely",
4264 | "dejected",
4265 | "appreciable",
4266 | "remembered",
4267 | "hellish",
4268 | "rear-view",
4269 | "open-air",
4270 | "ill-fated",
4271 | "nonpolitical",
4272 | "factional",
4273 | "separatist",
4274 | "contributing",
4275 | "post-war",
4276 | "uneventful",
4277 | "metaphoric",
4278 | "unsound",
4279 | "unwitting",
4280 | "venomous",
4281 | "harried",
4282 | "engraved",
4283 | "collapsing",
4284 | "reformist",
4285 | "thematic",
4286 | "inclusive",
4287 | "cheering",
4288 | "springy",
4289 | "obliging",
4290 | "contemplative",
4291 | "unbridled",
4292 | "state-run",
4293 | "reflex",
4294 | "allegorical",
4295 | "geopolitical",
4296 | "disembodied",
4297 | "issuing",
4298 | "bountiful",
4299 | "alright",
4300 | "overbearing",
4301 | "muddled",
4302 | "congenital",
4303 | "distinguishing",
4304 | "absorbed",
4305 | "tart",
4306 | "french",
4307 | "autumnal",
4308 | "verifiable",
4309 | "grueling",
4310 | "crackling",
4311 | "aft",
4312 | "punishable",
4313 | "freckled",
4314 | "indestructible",
4315 | "imprecise",
4316 | "hard-nosed",
4317 | "thoughtless",
4318 | "through",
4319 | "proficient",
4320 | "pent-up",
4321 | "never-ending",
4322 | "hunted",
4323 | "defensible",
4324 | "arresting",
4325 | "across-the-board",
4326 | "spotty",
4327 | "orchestral",
4328 | "undefined",
4329 | "stacked",
4330 | "implausible",
4331 | "antitank",
4332 | "unwary",
4333 | "inflamed",
4334 | "sacrificial",
4335 | "oil-producing",
4336 | "leaky",
4337 | "mint",
4338 | "chronological",
4339 | "conquering",
4340 | "jumbo",
4341 | "three-week",
4342 | "addictive",
4343 | "uninhibited",
4344 | "substandard",
4345 | "contracting",
4346 | "degenerative",
4347 | "triumphal",
4348 | "flowery",
4349 | "cardiovascular",
4350 | "shaken",
4351 | "undefeated",
4352 | "unassuming",
4353 | "luscious",
4354 | "unperturbed",
4355 | "gleeful",
4356 | "sentencing",
4357 | "brawny",
4358 | "perfumed",
4359 | "mild-mannered",
4360 | "healthful",
4361 | "left-handed",
4362 | "rancid",
4363 | "well-defined",
4364 | "unmanageable",
4365 | "drowning",
4366 | "clinging",
4367 | "anachronistic",
4368 | "revered",
4369 | "enriched",
4370 | "capitalistic",
4371 | "good-by",
4372 | "invigorating",
4373 | "practicing",
4374 | "unsold",
4375 | "long-legged",
4376 | "unruffled",
4377 | "aboriginal",
4378 | "inane",
4379 | "bedraggled",
4380 | "early-morning",
4381 | "run-down",
4382 | "straight-backed",
4383 | "reverent",
4384 | "acquired",
4385 | "bestselling",
4386 | "top-secret",
4387 | "woolly",
4388 | "foolhardy",
4389 | "sticking",
4390 | "blue-black",
4391 | "impassable",
4392 | "overcome",
4393 | "coiled",
4394 | "front-line",
4395 | "tinted",
4396 | "acquisitive",
4397 | "slatted",
4398 | "octagonal",
4399 | "receding",
4400 | "investing",
4401 | "doctrinaire",
4402 | "all-white",
4403 | "caring",
4404 | "prejudiced",
4405 | "slow-moving",
4406 | "circulating",
4407 | "science-fiction",
4408 | "shortsighted",
4409 | "disaffected",
4410 | "lawless",
4411 | "chastened",
4412 | "lewd",
4413 | "rubbery",
4414 | "foaming",
4415 | "unsympathetic",
4416 | "ladylike",
4417 | "betrayed",
4418 | "neurological",
4419 | "shouting",
4420 | "good-sized",
4421 | "electrostatic",
4422 | "untoward",
4423 | "flabbergasted",
4424 | "citywide",
4425 | "unanticipated",
4426 | "knotted",
4427 | "whitewashed",
4428 | "year-end",
4429 | "enticing",
4430 | "migratory",
4431 | "multicolored",
4432 | "hashish",
4433 | "ascorbic",
4434 | "topless",
4435 | "heathen",
4436 | "spherical",
4437 | "filmy",
4438 | "deviant",
4439 | "centennial",
4440 | "proportionate",
4441 | "instructional",
4442 | "contrived",
4443 | "savvy",
4444 | "over-the-counter",
4445 | "fast-moving",
4446 | "measuring",
4447 | "uptown",
4448 | "compliant",
4449 | "favourable",
4450 | "unforgivable",
4451 | "undamaged",
4452 | "psychoanalytic",
4453 | "gebling",
4454 | "bubbly",
4455 | "ready-made",
4456 | "caged",
4457 | "ostentatious",
4458 | "superhuman",
4459 | "busing",
4460 | "cream-colored",
4461 | "self-destructive",
4462 | "ostensible",
4463 | "cobbled",
4464 | "whirling",
4465 | "released",
4466 | "showy",
4467 | "baleful",
4468 | "red-hot",
4469 | "named",
4470 | "monogamous",
4471 | "fallow",
4472 | "disdainful",
4473 | "cyclical",
4474 | "long-running",
4475 | "pitiless",
4476 | "diffuse",
4477 | "omnipresent",
4478 | "mossy",
4479 | "cutting",
4480 | "astounding",
4481 | "lyric",
4482 | "dark-blue",
4483 | "unsophisticated",
4484 | "indigent",
4485 | "coincidental",
4486 | "imperceptible",
4487 | "veterinary",
4488 | "coercive",
4489 | "multilateral",
4490 | "ageless",
4491 | "law-abiding",
4492 | "functioning",
4493 | "beneficent",
4494 | "crawling",
4495 | "overturned",
4496 | "steamed",
4497 | "comprehensible",
4498 | "oil-rich",
4499 | "undetected",
4500 | "ribbed",
4501 | "nautical",
4502 | "textured",
4503 | "fast-growing",
4504 | "nauseous",
4505 | "vaunted",
4506 | "paralyzed",
4507 | "maimed",
4508 | "short-range",
4509 | "impure",
4510 | "unintended",
4511 | "practicable",
4512 | "intermediate-range",
4513 | "unfulfilled",
4514 | "behind-the-scenes",
4515 | "backhand",
4516 | "voluble",
4517 | "goofy",
4518 | "apolitical",
4519 | "contraceptive",
4520 | "waning",
4521 | "blasted",
4522 | "sundry",
4523 | "profane",
4524 | "binary",
4525 | "rock-and-roll",
4526 | "ruinous",
4527 | "open-ended",
4528 | "next-door",
4529 | "withering",
4530 | "conical",
4531 | "flustered",
4532 | "decided",
4533 | "able-bodied",
4534 | "round-trip",
4535 | "decreased",
4536 | "half-empty",
4537 | "sponsored",
4538 | "riotous",
4539 | "stereotyped",
4540 | "five-minute",
4541 | "irreplaceable",
4542 | "harrowing",
4543 | "uninteresting",
4544 | "salutary",
4545 | "frugal",
4546 | "disjointed",
4547 | "cupped",
4548 | "freshwater",
4549 | "shaven",
4550 | "ravenous",
4551 | "bulbous",
4552 | "stepped-up",
4553 | "swaying",
4554 | "two-room",
4555 | "valued",
4556 | "planted",
4557 | "bright-eyed",
4558 | "unreadable",
4559 | "trucking",
4560 | "infatuated",
4561 | "dysfunctional",
4562 | "pinkish",
4563 | "futuristic",
4564 | "airtight",
4565 | "unseemly",
4566 | "sizzling",
4567 | "mercurial",
4568 | "conic",
4569 | "unfettered",
4570 | "undisciplined",
4571 | "unrecognized",
4572 | "well-publicized",
4573 | "income-tax",
4574 | "self-appointed",
4575 | "ice-cold",
4576 | "biochemical",
4577 | "contemptible",
4578 | "barefooted",
4579 | "droll",
4580 | "mythological",
4581 | "tree-lined",
4582 | "rearing",
4583 | "luxuriant",
4584 | "heartbreaking",
4585 | "tufted",
4586 | "well-organized",
4587 | "selfless",
4588 | "world-class",
4589 | "unwieldy",
4590 | "contested",
4591 | "rasping",
4592 | "downright",
4593 | "ingratiating",
4594 | "self-proclaimed",
4595 | "parasitic",
4596 | "graying",
4597 | "reformed",
4598 | "cautionary",
4599 | "untested",
4600 | "beaded",
4601 | "maniacal",
4602 | "eucalyptus",
4603 | "pliable",
4604 | "air-conditioning",
4605 | "moot",
4606 | "traceable",
4607 | "anti-abortion",
4608 | "antisocial",
4609 | "reprehensible",
4610 | "self-imposed",
4611 | "yellowing",
4612 | "teasing",
4613 | "porous",
4614 | "ersatz",
4615 | "unwavering",
4616 | "untouchable",
4617 | "underprivileged",
4618 | "auditory",
4619 | "escaping",
4620 | "subservient",
4621 | "unspoiled",
4622 | "anterior",
4623 | "fatuous",
4624 | "lordly",
4625 | "infernal",
4626 | "bouncing",
4627 | "taboo",
4628 | "orthopedic",
4629 | "spiteful",
4630 | "surging",
4631 | "nuts",
4632 | "esteemed",
4633 | "outlawed",
4634 | "pushy",
4635 | "displeased",
4636 | "self-confident",
4637 | "attainable",
4638 | "bowed",
4639 | "cast-iron",
4640 | "despicable",
4641 | "unconvinced",
4642 | "famished",
4643 | "coed",
4644 | "bygone",
4645 | "nonaligned",
4646 | "sectional",
4647 | "typed",
4648 | "squeaky",
4649 | "disparaging",
4650 | "cut-rate",
4651 | "heart-shaped",
4652 | "offbeat",
4653 | "velvety",
4654 | "well-worn",
4655 | "upsetting",
4656 | "leery",
4657 | "long-lost",
4658 | "horse-drawn",
4659 | "puritanical",
4660 | "payable",
4661 | "fertilized",
4662 | "predicted",
4663 | "allowable",
4664 | "peaceable",
4665 | "soundless",
4666 | "marshy",
4667 | "discordant",
4668 | "intoxicating",
4669 | "concurrent",
4670 | "uncut",
4671 | "tantalizing",
4672 | "pedagogical",
4673 | "accursed",
4674 | "two-man",
4675 | "connective",
4676 | "hawkish",
4677 | "ripped",
4678 | "cleared",
4679 | "double-digit",
4680 | "unencumbered",
4681 | "yawning",
4682 | "manifold",
4683 | "stopped",
4684 | "untreated",
4685 | "subliminal",
4686 | "grayish",
4687 | "gory",
4688 | "upper-middle-class",
4689 | "avenging",
4690 | "self-fulfilling",
4691 | "equatorial",
4692 | "saucy",
4693 | "barred",
4694 | "arch",
4695 | "midwestern",
4696 | "blue-gray",
4697 | "tarnished",
4698 | "leafless",
4699 | "incisive",
4700 | "unearned",
4701 | "botanical",
4702 | "feline",
4703 | "extraneous",
4704 | "prep",
4705 | "intransigent",
4706 | "change-minimizing",
4707 | "insurgent",
4708 | "acrimonious",
4709 | "thermonuclear",
4710 | "blue-chip",
4711 | "crummy",
4712 | "acoustic",
4713 | "oversize",
4714 | "fated",
4715 | "galactic",
4716 | "cantankerous",
4717 | "ill-advised",
4718 | "detectable",
4719 | "lower-class",
4720 | "sacrosanct",
4721 | "palatial",
4722 | "conditional",
4723 | "insulated",
4724 | "step-by-step",
4725 | "nebulous",
4726 | "two-dimensional",
4727 | "well-heeled",
4728 | "bronchial",
4729 | "subatomic",
4730 | "semifinal",
4731 | "first-year",
4732 | "dark-eyed",
4733 | "tinny",
4734 | "attacking",
4735 | "indecisive",
4736 | "anatomical",
4737 | "brotherly",
4738 | "blooming",
4739 | "sinuous",
4740 | "meditative",
4741 | "socalled",
4742 | "rheumatoid",
4743 | "received",
4744 | "bleary",
4745 | "half-naked",
4746 | "leaded",
4747 | "woody",
4748 | "averse",
4749 | "shuddering",
4750 | "door-to-door",
4751 | "heretical",
4752 | "suspect",
4753 | "untapped",
4754 | "ravaged",
4755 | "decentralized",
4756 | "rutted",
4757 | "ineffable",
4758 | "intolerant",
4759 | "mechanized",
4760 | "fortuitous",
4761 | "equestrian",
4762 | "seven-year-old",
4763 | "darting",
4764 | "consoling",
4765 | "modern-day",
4766 | "ground-floor",
4767 | "emblematic",
4768 | "lurking",
4769 | "two-year-old",
4770 | "purplish",
4771 | "disorganized",
4772 | "vaudeville",
4773 | "circulatory",
4774 | "eight-hour",
4775 | "presentable",
4776 | "anarchic",
4777 | "unsatisfied",
4778 | "labored",
4779 | "maudlin",
4780 | "trampled",
4781 | "gibberish",
4782 | "unaccountable",
4783 | "sedentary",
4784 | "heavy-duty",
4785 | "thrilled",
4786 | "tutoring",
4787 | "self-centered",
4788 | "do-it-yourself",
4789 | "inquiring",
4790 | "uncaring",
4791 | "disillusioned",
4792 | "bloodstained",
4793 | "surface-to-air",
4794 | "consular",
4795 | "subconscious",
4796 | "four-year-old",
4797 | "collaborative",
4798 | "terraced",
4799 | "figurative",
4800 | "sinewy",
4801 | "horn-rimmed",
4802 | "impertinent",
4803 | "hit-and-run",
4804 | "standby",
4805 | "medium-size",
4806 | "peremptory",
4807 | "incremental",
4808 | "first-aid",
4809 | "dyed",
4810 | "centrifugal",
4811 | "omnipotent",
4812 | "lascivious",
4813 | "two-month",
4814 | "unionized",
4815 | "discredited",
4816 | "mass-produced",
4817 | "feathery",
4818 | "self-indulgent",
4819 | "liturgical",
4820 | "enviable",
4821 | "fifteen-year-old",
4822 | "buxom",
4823 | "abashed",
4824 | "urinary",
4825 | "newsworthy",
4826 | "flailing",
4827 | "beastly",
4828 | "undiscovered",
4829 | "strong-willed",
4830 | "prenatal",
4831 | "brownish",
4832 | "announced",
4833 | "flaky",
4834 | "washed",
4835 | "nightmarish",
4836 | "broad-shouldered",
4837 | "short-sleeved",
4838 | "two-bit",
4839 | "self-assured",
4840 | "whitish",
4841 | "suffocating",
4842 | "black-haired",
4843 | "full-size",
4844 | "self-help",
4845 | "created",
4846 | "uninhabited",
4847 | "smokeless",
4848 | "no-fault",
4849 | "unfashionable",
4850 | "mushy",
4851 | "forested",
4852 | "adhesive",
4853 | "creased",
4854 | "insufferable",
4855 | "down-to-earth",
4856 | "trifling",
4857 | "landless",
4858 | "disreputable",
4859 | "self-effacing",
4860 | "sporty",
4861 | "confined",
4862 | "adoptive",
4863 | "monogrammed",
4864 | "motley",
4865 | "duplicate",
4866 | "silver-haired",
4867 | "rejected",
4868 | "undifferentiated",
4869 | "blasphemous",
4870 | "institutionalized",
4871 | "blue-and-white",
4872 | "hip",
4873 | "winsome",
4874 | "button-down",
4875 | "discerning",
4876 | "abused",
4877 | "clean-cut",
4878 | "bracing",
4879 | "self-supporting",
4880 | "unsupported",
4881 | "premarital",
4882 | "flattered",
4883 | "studious",
4884 | "repetitious",
4885 | "marketable",
4886 | "anemic",
4887 | "meaty",
4888 | "airless",
4889 | "unhurried",
4890 | "galvanized",
4891 | "feal",
4892 | "peace-keeping",
4893 | "rapacious",
4894 | "bulletproof",
4895 | "well-placed",
4896 | "helmeted",
4897 | "packaged",
4898 | "court-ordered",
4899 | "aggravated",
4900 | "gastrointestinal",
4901 | "hand-to-hand",
4902 | "sixteen-year-old",
4903 | "fretful",
4904 | "fourth-quarter",
4905 | "conquered",
4906 | "satiric",
4907 | "nutty",
4908 | "befuddled",
4909 | "humorless",
4910 | "pitched",
4911 | "burnished",
4912 | "mirrored",
4913 | "fishy",
4914 | "fluted",
4915 | "conditioned",
4916 | "military-industrial",
4917 | "one-story",
4918 | "barbarian",
4919 | "branching",
4920 | "dynastic",
4921 | "unthinking",
4922 | "unconscionable",
4923 | "hunched",
4924 | "post-World",
4925 | "capital",
4926 | "putative",
4927 | "incendiary",
4928 | "shaving",
4929 | "topical",
4930 | "self-satisfied",
4931 | "farcical",
4932 | "narcissistic",
4933 | "kneeling",
4934 | "born-again",
4935 | "old-line",
4936 | "amateurish",
4937 | "ill-fitting",
4938 | "scaly",
4939 | "unpainted",
4940 | "eroding"
4941 | ]
--------------------------------------------------------------------------------
/src/data/index.ts:
--------------------------------------------------------------------------------
1 | import adjectives from "./adjectives";
2 | import nouns from "./nouns"
3 |
4 | export { adjectives, nouns };
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | import { nouns, adjectives } from "./data";
2 |
3 | type Style = "lowerCase" | "upperCase" | "capital";
4 |
5 | export interface Config {
6 | dictionaries: string[][];
7 | separator?: string;
8 | randomDigits?: number;
9 | length?: number;
10 | style?: Style;
11 | }
12 |
13 | // Function to generate a random number (unsigned 32-bit integers) within a given range
14 | // updated to only use edge runtime compatible apis
15 | const getRandomInt = (min = 0, max = 4294967295) =>
16 | ((Math.random() * ((max | 0) - (min | 0) + 1.0)) + (min | 0)) | 0;
17 |
18 | const randomNumber = (maxNumber: number | undefined) => {
19 | let randomNumberString;
20 | switch (maxNumber) {
21 | case 1:
22 | randomNumberString = Math.floor(getRandomInt(1, 9)).toString();
23 | break;
24 | case 2:
25 | randomNumberString = Math.floor(getRandomInt(10, 90)).toString();
26 | break;
27 | case 3:
28 | randomNumberString = Math.floor(getRandomInt(100, 900)).toString();
29 | break;
30 | case 4:
31 | randomNumberString = Math.floor(getRandomInt(1000, 9000)).toString();
32 | break;
33 | case 5:
34 | randomNumberString = Math.floor(getRandomInt(10000, 90000)).toString();
35 | break;
36 | case 6:
37 | randomNumberString = Math.floor(getRandomInt(100000, 900000)).toString();
38 | break;
39 | default:
40 | randomNumberString = "";
41 | break;
42 | }
43 | return randomNumberString;
44 | };
45 |
46 | export function generateFromEmail(
47 | email: string,
48 | randomDigits?: number
49 | ): string {
50 | // Retrieve name from email address
51 | const nameParts = email.replace(/@.+/, "");
52 | // Replace all special characters like "@ . _ ";
53 | const name = nameParts.replace(/[&/\\#,+()$~%._@'":*?<>{}]/g, "");
54 | // Create and return unique username
55 | return name + randomNumber(randomDigits);
56 | }
57 |
58 | export function generateUsername(
59 | separator?: string,
60 | randomDigits?: number,
61 | length?: number,
62 | prefix?: string
63 | ): string {
64 | const noun = nouns[Math.floor(Math.random() * nouns.length)];
65 | const adjective = prefix ? prefix.replace(/\s{2,}/g, " ").replace(/\s/g, separator ?? "").toLocaleLowerCase() : adjectives[Math.floor(Math.random() * adjectives.length)];
66 |
67 | let username;
68 | // Create unique username
69 | if (separator) {
70 | username = adjective + separator + noun + randomNumber(randomDigits);
71 | } else {
72 | username = adjective + noun + randomNumber(randomDigits);
73 | }
74 |
75 | if (length) {
76 | return username.substring(0, length);
77 | }
78 |
79 | return username;
80 | }
81 |
82 | export function uniqueUsernameGenerator(config: Config): string {
83 | if (!config.dictionaries) {
84 | throw new Error(
85 | "Cannot find any dictionary. Please provide at least one, or leave " +
86 | "the 'dictionary' field empty in the config object",
87 | );
88 | } else {
89 | const fromDictRander = (i: number) => config.dictionaries[i][getRandomInt(0, config.dictionaries[i].length - 1)];
90 | const dictionariesLength = config.dictionaries.length;
91 | const separator = config.separator || "";
92 | let name = "";
93 | for (let i = 0; i < dictionariesLength; i++) {
94 | const next = fromDictRander(i);
95 | if (!name) { name = next; }
96 | else { name += separator + next; }
97 | }
98 |
99 | let username = name + randomNumber(config.randomDigits);
100 |
101 | username = username.toLowerCase();
102 |
103 | if (config.style === "lowerCase") {
104 | username = username.toLowerCase();
105 | } else if (config.style === "capital") {
106 | const [firstLetter, ...rest] = username.split("");
107 | username = firstLetter.toUpperCase() + rest.join("");
108 | } else if (config.style === "upperCase") {
109 | username = username.toUpperCase();
110 | }
111 |
112 | if (config.length) {
113 | return username.substring(0, config.length);
114 | } else {
115 | return username.substring(0, 15);
116 | }
117 |
118 | }
119 | }
120 |
121 | export { adjectives, nouns } from "./data";
122 |
--------------------------------------------------------------------------------
/tests/index.test.ts:
--------------------------------------------------------------------------------
1 | import { adjectives, nouns, generateFromEmail, uniqueUsernameGenerator, generateUsername } from "../src/index";
2 | import { expect } from "chai";
3 |
4 | describe("generate-unique-username-from-email unit tests", (): void => {
5 | it("generating from email containing no special character in the name", (): void => {
6 | const actual: string = generateFromEmail("lakshminarayan@example.com");
7 | expect(actual).is.equal("lakshminarayan");
8 | });
9 | it("generating from email with special character in the name", (): void => {
10 | const actual: string = generateFromEmail("lakshmi.narayan@example.com");
11 | expect(actual).is.equal("lakshminarayan");
12 | });
13 | it("generating from email containing no special character in the name and adding one random digit", (): void => {
14 | const actual: string = generateFromEmail("lakshminarayan@example.com", 1);
15 | expect(actual.slice(0, -1)).is.equal("lakshminarayan");
16 | });
17 | it("generating from email with special character in the name and adding one random digit", (): void => {
18 | const actual: string = generateFromEmail("lakshmi.narayan@example.com", 1);
19 | expect(actual.slice(0, -1)).is.equal("lakshminarayan");
20 | });
21 | it("generating from email containing no special character in the name and adding two random digit", (): void => {
22 | const actual: string = generateFromEmail("lakshminarayan@example.com", 2);
23 | expect(actual.slice(0, -2)).is.equal("lakshminarayan");
24 | });
25 | it("generating from email with special character in the name and adding two random digit", (): void => {
26 | const actual: string = generateFromEmail("lakshmi.narayan@example.com", 2);
27 | expect(actual.slice(0, -2)).is.equal("lakshminarayan");
28 | });
29 | it("generating from email containing no special character in the name and adding three random digit", (): void => {
30 | const actual: string = generateFromEmail("lakshminarayan@example.com", 3);
31 | expect(actual.slice(0, -3)).is.equal("lakshminarayan");
32 | });
33 | it("generating from email with special character in the name and adding three random digit", (): void => {
34 | const actual: string = generateFromEmail("lakshmi.narayan@example.com", 3);
35 | expect(actual.slice(0, -3)).is.equal("lakshminarayan");
36 | });
37 | it("generating from email containing no special character in the name and adding four random digit", (): void => {
38 | const actual: string = generateFromEmail("lakshminarayan@example.com", 4);
39 | expect(actual.slice(0, -4)).is.equal("lakshminarayan");
40 | });
41 | it("generating from email with special character in the name and adding four random digit", (): void => {
42 | const actual: string = generateFromEmail("lakshmi.narayan@example.com", 4);
43 | expect(actual.slice(0, -4)).is.equal("lakshminarayan");
44 | });
45 | it("generating from email containing no special character in the name and adding five random digit", (): void => {
46 | const actual: string = generateFromEmail("lakshminarayan@example.com", 5);
47 | expect(actual.slice(0, -5)).is.equal("lakshminarayan");
48 | });
49 | it("generating from email with special character in the name and adding five random digit", (): void => {
50 | const actual: string = generateFromEmail("lakshmi.narayan@example.com", 5);
51 | expect(actual.slice(0, -5)).is.equal("lakshminarayan");
52 | });
53 | it("generating from email containing no special character in the name and adding six random digit", (): void => {
54 | const actual: string = generateFromEmail("lakshminarayan@example.com", 6);
55 | expect(actual.slice(0, -6)).is.equal("lakshminarayan");
56 | });
57 | it("generating from email with special character in the name and adding six random digit", (): void => {
58 | const actual: string = generateFromEmail("lakshmi.narayan@example.com", 6);
59 | expect(actual.slice(0, -6)).is.equal("lakshminarayan");
60 | });
61 | });
62 |
63 | describe("generate-unique-username-uniqueUsernameGenerator unit tests", (): void => {
64 | it("uniqueUsernameGenerator uses all dicts w separator", (): void => {
65 | const actual: string = uniqueUsernameGenerator({
66 | dictionaries: [["q"], ["a"]],
67 | separator: "-"
68 | });
69 | expect(actual).is.equal("q-a");
70 | });
71 |
72 | it("uniqueUsernameGenerator uses all dicts wo separator", (): void => {
73 | const actual: string = uniqueUsernameGenerator({
74 | dictionaries: [["q"], ["a"]]
75 | });
76 | expect(actual).is.equal("qa");
77 | });
78 | it("uniqueUsernameGenerator style UPPERCASE", (): void => {
79 | const actual: string = uniqueUsernameGenerator({
80 | dictionaries: [["q"], ["a"]],
81 | style: "upperCase"
82 | });
83 | expect(actual).is.equal("QA");
84 | });
85 | it("uniqueUsernameGenerator style lowercase", (): void => {
86 | const actual: string = uniqueUsernameGenerator({
87 | dictionaries: [["Q"], ["A"]],
88 | style: "lowerCase"
89 | });
90 | expect(actual).is.equal("qa");
91 | });
92 | it("uniqueUsernameGenerator style capital", (): void => {
93 | const actual: string = uniqueUsernameGenerator({
94 | dictionaries: [["q"], ["A"]],
95 | style: "capital"
96 | });
97 | expect(actual).is.equal("Qa");
98 | });
99 | it("uniqueUsernameGenerator works w config w default dictionaries only", (): void => {
100 | const actual: string = uniqueUsernameGenerator({ dictionaries: [adjectives, nouns] });
101 | expect(actual).not.contains("-");
102 | });
103 | });
104 |
105 | describe("generate-unique-username unit tests", (): void => {
106 | it("generating unique username", (): void => {
107 | const actual: string = generateUsername();
108 | expect(typeof actual).is.equal("string");
109 | expect(actual).is.not.equal("");
110 | });
111 |
112 | it("generating unique username with separator", (): void => {
113 | const actual: string = generateUsername("-");
114 | expect(actual).is.contains("-");
115 | expect(actual.split("-").length).is.greaterThan(1);
116 | });
117 | it("generating unique username with separator and no random number", (): void => {
118 | const actual: string = generateUsername("-", 0);
119 | expect(actual).to.not.match(/[0-9]/);
120 | });
121 | it("generating unique username with max length", (): void => {
122 | const actual: string = generateUsername("-", 2, 5);
123 | expect(actual).to.lengthOf(5)
124 | });
125 | it("generating unique username with max length and prefix", (): void => {
126 | const actual: string = generateUsername("-", undefined, undefined, "unique username");
127 | expect(actual).to.contain(`unique-username`)
128 | });
129 | })
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es6",
4 | "module": "commonjs",
5 | "strict": true,
6 | "declaration": true,
7 | "outDir": "./dist",
8 | "resolveJsonModule": true
9 | },
10 | "exclude": [
11 | "tests",
12 | "dist",
13 | "node_modules"
14 | ]
15 | }
--------------------------------------------------------------------------------