diff --git a/.DS_Store b/.DS_Store index 9c682dc..c12028f 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/CSS/styles.css b/CSS/styles.css index 601ed63..839ff1f 100644 --- a/CSS/styles.css +++ b/CSS/styles.css @@ -124,6 +124,7 @@ a { } .icon-button, +.auth-button, .button { min-width: 44px; min-height: 44px; @@ -143,6 +144,7 @@ a { } .icon-button:hover, +.auth-button:hover, .button:hover { transform: translateY(-1px); border-color: color-mix(in oklch, var(--accent), var(--border) 45%); @@ -452,6 +454,145 @@ h2 { margin-bottom: 22px; } +.stats-note, +.leaderboard-countdown { + margin: -8px 0 18px; + color: var(--muted); + font-size: 0.9rem; + line-height: 1.5; +} + +.history-panel { + display: grid; + gap: 10px; + margin-bottom: 22px; +} + +.history-panel h3 { + margin: 0; + font-family: var(--font-display); + font-size: 1.15rem; + font-weight: 500; +} + +.history-list { + display: grid; + gap: 8px; +} + +.history-row { + display: grid; + grid-template-columns: 1fr auto; + gap: 12px; + padding: 10px 12px; + border: 1px solid var(--border); + border-radius: 14px; + background: var(--bg); +} + +.history-word { + font-weight: 900; + letter-spacing: 0.08em; + text-transform: uppercase; +} + +.history-meta { + color: var(--muted); + font-size: 0.84rem; +} + +.leaderboard-card { + display: grid; + gap: 18px; +} + +.leaderboard-tabs { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 8px; +} + +.leaderboard-tab { + min-height: 38px; + border: 1px solid var(--border); + border-radius: 999px; + background: var(--bg); + color: var(--fg); + cursor: pointer; + font-size: 0.82rem; + font-weight: 900; +} + +.leaderboard-tab.active { + border-color: var(--accent); + background: var(--accent); + color: white; +} + +.leaderboard-list { + display: grid; + gap: 10px; +} + +.leaderboard-row, +.leaderboard-empty { + border: 1px solid var(--border); + border-radius: 16px; + background: var(--bg); +} + +.leaderboard-row { + display: grid; + grid-template-columns: 2.4rem 1fr auto; + align-items: center; + gap: 12px; + min-height: 58px; + padding: 10px 12px; +} + +.leaderboard-row.you { + border-color: var(--accent); + box-shadow: inset 0 0 0 1px color-mix(in oklch, var(--accent), transparent 60%); +} + +.leaderboard-rank { + display: grid; + width: 2.1rem; + height: 2.1rem; + place-items: center; + border-radius: 999px; + background: var(--fg); + color: var(--surface); + font-family: var(--font-display); +} + +.leaderboard-name { + min-width: 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + font-weight: 800; +} + +.leaderboard-streak { + display: block; + color: var(--muted); + font-size: 0.76rem; + font-weight: 700; +} + +.leaderboard-score { + color: var(--muted); + font-size: 0.86rem; + font-variant-numeric: tabular-nums; +} + +.leaderboard-empty { + padding: 18px; + color: var(--muted); + line-height: 1.55; +} + .guess-bar { gap: 10px; } @@ -480,6 +621,16 @@ h2 { font-weight: 700; } +.auth-button { + padding: 0 14px; + font-size: 0.88rem; + font-weight: 800; +} + +.full-width { + width: 100%; +} + .button.primary { background: var(--accent); color: white; @@ -489,6 +640,128 @@ h2 { background: var(--key); } +.auth-card { + display: grid; + gap: 16px; +} + +.auth-status { + margin: 0; + color: var(--muted); + line-height: 1.55; +} + +.auth-form { + display: grid; + gap: 10px; +} + +.auth-form[hidden], +.auth-create-fields[hidden], +.button[hidden] { + display: none; +} + +.auth-create-fields { + display: grid; + gap: 10px; +} + +.auth-reset-fields { + display: grid; + gap: 10px; + margin-top: 4px; +} + +.auth-reset-fields[hidden] { + display: none; +} + +.account-summary { + display: grid; + gap: 4px; + padding: 14px; + border: 1px solid var(--border); + border-radius: 16px; + background: var(--bg); +} + +.account-summary[hidden] { + display: none; +} + +.account-summary strong { + font-family: var(--font-display); + font-size: 1.25rem; + font-weight: 500; +} + +.account-summary span { + color: var(--muted); + font-size: 0.85rem; +} + +.auth-form label { + color: var(--muted); + font-size: 0.82rem; + font-weight: 800; +} + +.optional-label { + font-weight: 600; + opacity: 0.72; +} + +.auth-form input { + min-height: 46px; + width: 100%; + border: 1px solid var(--border); + border-radius: 14px; + background: var(--bg); + color: var(--fg); + font: inherit; + padding: 0 14px; +} + +.auth-button-row { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 10px; + margin-top: 4px; +} + +.auth-button-row .button:only-child, +.auth-button-row .button[hidden] + .button, +.auth-button-row .button:first-child:last-child { + grid-column: 1 / -1; +} + +.auth-button-row:not(:has(#auth-sign-up:not([hidden]))) #auth-sign-in { + grid-column: 1 / -1; +} + +.auth-form input:focus { + border-color: var(--accent); + outline: none; + box-shadow: 0 0 0 3px color-mix(in oklch, var(--accent), transparent 75%); +} + +.auth-actions { + margin: 0; + padding: 0; +} + +.link-button { + width: max-content; + border: 0; + background: transparent; + color: var(--accent); + cursor: pointer; + font-weight: 800; + padding: 0; + text-align: start; +} + @keyframes shake { 10%, 90% { transform: translateX(-4%); } 30%, 70% { transform: translateX(5%); } diff --git a/README.md b/README.md index b583349..391880f 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,9 @@ A Wordle-style game with one shared word for every UTC hour. ## Supabase setup -The app can enforce the shared hourly word with Supabase/Postgres. Run `supabase/schema.sql` in your Supabase SQL editor, enable anonymous sign-ins in Supabase Auth, then fill in `supabase-config.js`: +The app can enforce the shared hourly word with Supabase/Postgres. Run `supabase/schema.sql` in your Supabase SQL editor, then run `supabase/seed-word-data.sql` to load all answers and accepted guesses. + +Enable the Email provider in Supabase Auth. The UI signs users in with email and password; if the account is missing, it reveals account creation with username, email, and password. Then fill in `supabase-config.js`: ```js window.FANCY_WORDLE_SUPABASE = { @@ -13,10 +15,18 @@ window.FANCY_WORDLE_SUPABASE = { } ``` -The database chooses the word from `public.wordle_words` based on the current UTC hour, so everyone who plays during the same hour gets the same answer. +The database chooses the word from `public.wordle_words` based on the current UTC hour, so everyone who plays during the same hour gets the same answer. Signed-in users submit guesses through Supabase, which validates guesses, scores tiles, stores completed rounds, and calculates synced stats. -`supabase/schema.sql` seeds the first 120 target words. Add more rows to `public.wordle_words` if you want a longer no-repeat cycle. +The hourly leaderboard uses completed authenticated rounds for the current UTC hour. It ranks wins first, then fewer guesses, then earliest completion time. + +Leaderboard tabs include this hour, today, and all time. Signed-in users are included even if their row falls outside the top 25. Stats also show recent personal history and this hour's average score summary. + +`supabase/seed-word-data.sql` is generated from `targetWords.json` and `dictionary.json`: + +```sh +node scripts/generate-supabase-word-seed.mjs +``` If Supabase is not configured, the app falls back to a browser-only hourly lock using the same deterministic hourly word calculation from `targetWords.json`. -Anonymous auth enforces the limit per browser session. For stronger per-person enforcement, replace anonymous sign-in with email or OAuth sign-in. +Guest play uses local browser storage. Sign in with email and password to persist scores across devices. diff --git a/fancy-wordle-modern.html b/fancy-wordle-modern.html index a3b8069..90e8452 100644 --- a/fancy-wordle-modern.html +++ b/fancy-wordle-modern.html @@ -10,7 +10,7 @@ - +
@@ -30,6 +30,10 @@ + + @@ -66,12 +70,74 @@
+
+
+

Recent history

+
+
+ + +
+ +
+ + + +
+

Next word unlocks soon.

+
+
+
+ + +
+ +

Sign in with your email and password. If we cannot find your account, you can create one here.

+ +
+ + + + + +
+ + +
+ + +
+ + + + +
+
diff --git a/index.html b/index.html index a3b8069..90e8452 100644 --- a/index.html +++ b/index.html @@ -10,7 +10,7 @@ - +
@@ -30,6 +30,10 @@ + + @@ -66,12 +70,74 @@
+
+
+

Recent history

+
+
+ + +
+ +
+ + + +
+

Next word unlocks soon.

+
+
+
+ + +
+ +

Sign in with your email and password. If we cannot find your account, you can create one here.

+ +
+ + + + + +
+ + +
+ + +
+ + + + +
+
diff --git a/script.js b/script.js index 63279cf..165d3f8 100644 --- a/script.js +++ b/script.js @@ -12,6 +12,10 @@ let isAnimating = false let hourlyRound = null let lockCountdownTimer = null let supabaseClient = null +let authSession = null +let authProfile = null +let leaderboardScope = "hour" +let latestLeaderboardRows = [] const WORD_LENGTH = 5 const MAX_GUESSES = 6 @@ -66,9 +70,33 @@ const roundStatus = document.getElementById("round-status") const triesStatus = document.getElementById("tries-status") const themeButton = document.getElementById("theme-button") const statsButton = document.getElementById("Stats-button") +const leaderboardButton = document.getElementById("leaderboard-button") +const leaderboardModal = document.getElementById("leaderboard-modal") +const leaderboardList = document.getElementById("leaderboard-list") +const leaderboardCountdown = document.getElementById("leaderboard-countdown") +const leaderboardTabs = document.querySelectorAll("[data-leaderboard-scope]") +const authButton = document.getElementById("auth-button") +const authModal = document.getElementById("auth-modal") +const authForm = document.getElementById("auth-form") +const accountSummary = document.getElementById("account-summary") +const authCreateFields = document.getElementById("auth-create-fields") +const authUsernameInput = document.getElementById("auth-username") +const authEmailInput = document.getElementById("auth-email") +const authPasswordInput = document.getElementById("auth-password") +const authNewPasswordInput = document.getElementById("auth-new-password") +const authSignUpButton = document.getElementById("auth-sign-up") +const authSignInButton = document.getElementById("auth-sign-in") +const authForgotPasswordButton = document.getElementById("auth-forgot-password") +const authUpdatePasswordButton = document.getElementById("auth-update-password") +const authResetFields = document.getElementById("auth-reset-fields") +const authGuestButton = document.getElementById("auth-guest") +const authSignOutButton = document.getElementById("auth-sign-out") +const authStatus = document.getElementById("auth-status") const statsModal = document.getElementById("stats-modal") const statsGrid = document.getElementById("stats-grid") +const statsNote = document.getElementById("stats-note") const guessBars = document.getElementById("guess-bars") +const historyList = document.getElementById("history-list") const resetStatsButton = document.getElementById("reset-stats") const shareResultsButton = document.getElementById("share-results") @@ -86,6 +114,7 @@ async function initializeGame() { createKeyboard() restoreTheme() bindControls() + await initializeAuth() try { await loadWordLists() @@ -167,6 +196,95 @@ function normalizeWords(words) { .filter(word => word.length === WORD_LENGTH) } +async function initializeAuth() { + const client = getSupabaseClient() + if (!client) { + updateAuthControls() + return + } + + try { + const { data: { session } } = await client.auth.getSession() + authSession = session + authProfile = session ? await getAuthProfile() : null + updateAuthControls() + + client.auth.onAuthStateChange(async (event, session) => { + authSession = session + authProfile = session ? await getAuthProfile() : null + updateAuthControls() + + if (event === "PASSWORD_RECOVERY") { + openAuth() + setPasswordResetMode(true) + return + } + + if (event === "SIGNED_IN") window.location.reload() + }) + } catch (error) { + console.warn("Supabase auth unavailable:", error) + updateAuthControls() + } +} + +async function getAuthProfile() { + const client = getSupabaseClient() + if (!client || !authSession) return null + + const { data, error } = await client + .from("profiles") + .select("username, display_name") + .eq("id", authSession.user.id) + .maybeSingle() + + if (error) { + console.warn("Failed to load profile:", error) + return null + } + + return data +} + +function updateAuthControls() { + const hasSupabase = Boolean(getSupabaseClient()) + const label = getAuthLabel() + + if (authButton) { + authButton.textContent = label + authButton.title = authSession ? "Account" : "Sign in" + authButton.setAttribute("aria-label", authSession ? "Open account" : "Sign in to sync stats") + } + + if (authStatus) { + authStatus.textContent = hasSupabase + ? authSession + ? `Signed in as ${label}` + : "Sign in with your email and password. If we cannot find your account, you can create one here." + : "Supabase is not configured. Guest play is active." + } + + if (accountSummary) { + accountSummary.hidden = !authSession + accountSummary.innerHTML = authSession + ? `${escapeHtml(label)}${escapeHtml(authSession.user.email || "Signed in")}` + : "" + } + + if (authForm) authForm.hidden = !hasSupabase || Boolean(authSession) + if (authGuestButton) authGuestButton.hidden = Boolean(authSession) + if (authSignOutButton) authSignOutButton.hidden = !authSession +} + +function getAuthLabel() { + if (!authSession) return "Sign in" + + return authProfile?.username + || authProfile?.display_name + || authSession.user.email + || "Account" +} + async function startHourlyRound() { const selectedWord = getCurrentHourlyWord() const remoteRound = await startRemoteHourlyRound() @@ -177,10 +295,9 @@ async function startHourlyRound() { async function startRemoteHourlyRound() { const client = getSupabaseClient() - if (!client) return null + if (!client || !authSession) return null try { - await ensureSupabaseSession(client) const { data, error } = await client.rpc("start_hourly_round") if (error) throw error @@ -206,29 +323,32 @@ function getSupabaseClient() { return supabaseClient } -async function ensureSupabaseSession(client) { - const { data: { session } } = await client.auth.getSession() - if (session) return - - const { error } = await client.auth.signInAnonymously() - if (error) throw error -} - function normalizeRemoteRound(row) { return { id: row.round_id, backend: "supabase", - word: row.word, + word: row.revealed_word || "", hourStart: Date.parse(row.hour_start), startedAt: Date.parse(row.started_at), nextPlayableAt: Date.parse(row.next_playable_at), completedAt: row.completed_at ? Date.parse(row.completed_at) : null, won: row.won, guessCount: row.guess_count, - isExisting: row.is_existing + isExisting: row.is_existing, + guesses: normalizeRemoteGuesses(row.guesses) } } +function normalizeRemoteGuesses(guesses) { + if (!Array.isArray(guesses)) return [] + + return guesses.map(guess => ({ + guess: guess.guess, + rowIndex: guess.rowIndex, + states: guess.states + })) +} + function startLocalHourlyRound(selectedWord) { const savedRound = getLocalHourlyRound() if (savedRound && savedRound.nextPlayableAt > Date.now()) return savedRound @@ -287,16 +407,17 @@ function getCurrentHourStart(timestamp) { function applyHourlyRound(round) { hourlyRound = round - targetWord = round.word - dictionarySet.add(targetWord) - currentGuessIndex = round.completedAt ? round.guessCount || 0 : 0 + targetWord = round.word || "" + if (targetWord) dictionarySet.add(targetWord) + restoreGuesses(round.guesses || []) + currentGuessIndex = round.completedAt ? round.guessCount || currentGuessIndex : currentGuessIndex updateTriesStatus() if (round.completedAt) { lastResult = { won: Boolean(round.won), guesses: round.guessCount || MAX_GUESSES, - word: round.word + word: round.word || "" } lockUntilNextWord() return @@ -306,6 +427,33 @@ function applyHourlyRound(round) { startInteraction() } +function restoreGuesses(guesses) { + if (!Array.isArray(guesses) || guesses.length === 0) { + currentGuessIndex = 0 + return + } + + guesses.forEach(savedGuess => { + const rowIndex = Number(savedGuess.rowIndex) || 0 + const rowStart = (rowIndex - 1) * WORD_LENGTH + const states = Array.isArray(savedGuess.states) ? savedGuess.states : [] + + String(savedGuess.guess || "").split("").forEach((letter, index) => { + const tile = guessGrid.children[rowStart + index] + if (!tile) return + + const state = states[index] || "wrong" + tile.dataset.letter = letter + tile.textContent = letter + tile.dataset.state = state + tile.setAttribute("aria-label", `${letter}, ${readableState(state)}`) + updateKeyState(keyboard.querySelector(`[data-key="${letter}"i]`), state) + }) + }) + + currentGuessIndex = Math.min(guesses.length, MAX_GUESSES) +} + function createBoard() { guessGrid.innerHTML = "" @@ -364,6 +512,20 @@ function createActionKey(label, ariaLabel, attribute) { function bindControls() { themeButton.addEventListener("click", toggleTheme) statsButton.addEventListener("click", openStats) + leaderboardButton?.addEventListener("click", openLeaderboard) + leaderboardTabs.forEach(tab => { + tab.addEventListener("click", () => switchLeaderboardScope(tab.dataset.leaderboardScope)) + }) + authButton?.addEventListener("click", openAuth) + authSignUpButton?.addEventListener("click", signUpWithPassword) + authSignInButton?.addEventListener("click", signInWithPassword) + authForgotPasswordButton?.addEventListener("click", sendPasswordReset) + authUpdatePasswordButton?.addEventListener("click", updatePassword) + authForm?.addEventListener("keydown", event => { + if (event.key === "Enter") signInWithPassword(event) + }) + authGuestButton?.addEventListener("click", () => authModal.close()) + authSignOutButton?.addEventListener("click", signOut) resetStatsButton.addEventListener("click", resetStats) shareResultsButton.addEventListener("click", shareResult) document.querySelector(".brand").addEventListener("click", event => { @@ -372,6 +534,176 @@ function bindControls() { }) } +function openAuth() { + updateAuthControls() + if (!authSession) { + setCreateAccountMode(false) + setPasswordResetMode(false) + } + authModal?.showModal() +} + +async function signUpWithPassword(event) { + event.preventDefault() + + const client = getSupabaseClient() + const email = authEmailInput?.value.trim() + const password = authPasswordInput?.value + const username = normalizeUsername(authUsernameInput?.value) + if (!client || !email || !password || !username) { + authStatus.textContent = "Username, email, and password are required." + return + } + + if (password.length < 6) { + authStatus.textContent = "Password must be at least 6 characters." + return + } + + const isAvailable = await isUsernameAvailable(username) + if (!isAvailable) { + authStatus.textContent = "That username is already taken. Try another one." + return + } + + authStatus.textContent = "Creating account..." + const { error } = await client.auth.signUp({ + email, + password, + options: { + data: { + username, + display_name: username + } + } + }) + + authStatus.textContent = error + ? readableAuthError(error) + : "Account created. Check your email if confirmation is required." +} + +async function signInWithPassword(event) { + event.preventDefault() + + const client = getSupabaseClient() + const email = authEmailInput?.value.trim() + const password = authPasswordInput?.value + if (!client || !email || !password) { + authStatus.textContent = "Email and password are required." + return + } + + authStatus.textContent = "Signing in..." + const { error } = await client.auth.signInWithPassword({ + email, + password + }) + + if (error) { + setCreateAccountMode(true) + authStatus.textContent = `${readableAuthError(error)} Create an account below if this is your first time.` + } +} + +async function isUsernameAvailable(username) { + const client = getSupabaseClient() + if (!client) return false + + const { data, error } = await client.rpc("is_username_available", { + candidate_username: username + }) + + if (error) { + console.warn("Failed to check username:", error) + return false + } + + return Boolean(data) +} + +async function sendPasswordReset() { + const client = getSupabaseClient() + const email = authEmailInput?.value.trim() + if (!client || !email) { + authStatus.textContent = "Enter your email first, then request a reset link." + return + } + + authStatus.textContent = "Sending password reset..." + const { error } = await client.auth.resetPasswordForEmail(email, { + redirectTo: window.location.href + }) + + authStatus.textContent = error + ? readableAuthError(error) + : "Password reset link sent. Check your email." +} + +async function updatePassword() { + const client = getSupabaseClient() + const password = authNewPasswordInput?.value + if (!client || !password || password.length < 6) { + authStatus.textContent = "New password must be at least 6 characters." + return + } + + const { error } = await client.auth.updateUser({ password }) + authStatus.textContent = error + ? readableAuthError(error) + : "Password updated. You can keep playing." + if (!error) setPasswordResetMode(false) +} + +function setCreateAccountMode(isVisible) { + if (authCreateFields) authCreateFields.hidden = !isVisible + if (authSignUpButton) authSignUpButton.hidden = !isVisible + if (authStatus && isVisible) { + authStatus.textContent = "New here? Choose a username, keep the same email/password, and create your account." + } +} + +function setPasswordResetMode(isVisible) { + if (authResetFields) authResetFields.hidden = !isVisible + if (authForgotPasswordButton) authForgotPasswordButton.hidden = isVisible + if (authStatus && isVisible) authStatus.textContent = "Choose a new password for your account." +} + +function readableAuthError(error) { + const message = String(error?.message || "Authentication failed.") + const lowerMessage = message.toLowerCase() + + if (lowerMessage.includes("invalid login") || lowerMessage.includes("invalid credentials")) { + return "Email or password is incorrect." + } + if (lowerMessage.includes("already registered") || lowerMessage.includes("already exists")) { + return "That email already has an account. Sign in instead." + } + if (lowerMessage.includes("password")) { + return "Password must be at least 6 characters." + } + if (lowerMessage.includes("rate limit")) { + return "Too many attempts. Wait a few minutes and try again." + } + + return message +} + +function normalizeUsername(value) { + return String(value || "") + .trim() + .toLowerCase() + .replace(/[^a-z0-9_]/g, "") +} + +async function signOut() { + const client = getSupabaseClient() + if (!client) return + + await client.auth.signOut() + window.location.reload() +} + function startInteraction() { stopInteraction() document.addEventListener("click", handleMouseClick) @@ -401,7 +733,7 @@ function handleMouseClick(event) { } function handleKeyPress(event) { - if (statsModal.open) return + if (statsModal.open || authModal?.open) return if (event.key === "Enter") { submitGuess() @@ -449,7 +781,7 @@ function deleteKey() { lastTile.setAttribute("aria-label", "Empty letter") } -function submitGuess() { +async function submitGuess() { if (gameFinished || isAnimating) return const activeTiles = getCurrentRowTiles().filter(tile => tile.dataset.letter) @@ -469,15 +801,93 @@ function submitGuess() { stopInteraction() isAnimating = true roundStatus.textContent = "Checking guess…" - currentGuessIndex += 1 + + const result = await resolveGuess(guess, activeTiles) + if (!result) return + + const states = normalizeGuessStates(result.states) + if (states.length !== WORD_LENGTH) { + recoverFromGuessError(activeTiles, "Guess could not be scored") + return + } + + currentGuessIndex = result.rowIndex updateTriesStatus() - const states = scoreGuess(guess, targetWord) activeTiles.forEach((tile, index, tiles) => { - flipTile(tile, index, tiles, guess, states[index]) + flipTile(tile, index, tiles, guess, states[index], { ...result, states }) }) } +async function resolveGuess(guess, activeTiles) { + if (hourlyRound?.backend === "supabase") { + try { + return await submitRemoteGuess(guess) + } catch (error) { + console.warn("Failed to submit guess:", error) + recoverFromGuessError(activeTiles, error.message || "Guess could not be saved") + return null + } + } + + const rowIndex = currentGuessIndex + 1 + return { + rowIndex, + states: scoreGuess(guess, targetWord), + completed: guess === targetWord || rowIndex === MAX_GUESSES, + won: guess === targetWord, + revealedWord: targetWord + } +} + +async function submitRemoteGuess(guess) { + const client = getSupabaseClient() + if (!client || !hourlyRound?.id) throw new Error("Sign in again to save this guess") + + const { data, error } = await client.rpc("submit_guess", { + target_round_id: hourlyRound.id, + submitted_guess: guess + }) + + if (error) throw error + + const row = Array.isArray(data) ? data[0] : data + if (!row) throw new Error("No result returned") + + return { + rowIndex: row.row_index, + states: normalizeGuessStates(row.states), + completed: row.completed, + won: row.won, + guessCount: row.guess_count, + revealedWord: row.revealed_word, + nextPlayableAt: Date.parse(row.next_playable_at) + } +} + +function normalizeGuessStates(states) { + if (Array.isArray(states)) return states + + if (typeof states === "string") { + try { + const parsedStates = JSON.parse(states) + return Array.isArray(parsedStates) ? parsedStates : [] + } catch { + return [] + } + } + + return [] +} + +function recoverFromGuessError(activeTiles, message) { + showAlert(message) + shakeTiles(activeTiles) + roundStatus.textContent = "Try again" + isAnimating = false + startInteraction() +} + function isValidGuess(guess) { if (!/^[a-z]{5}$/.test(guess)) return false return dictionarySet.has(guess) @@ -507,7 +917,7 @@ function scoreGuess(guess, answer) { return states } -function flipTile(tile, index, tiles, guess, state) { +function flipTile(tile, index, tiles, guess, state, roundResult) { const letter = tile.dataset.letter const key = keyboard.querySelector(`[data-key="${letter}"i]`) @@ -525,7 +935,7 @@ function flipTile(tile, index, tiles, guess, state) { setTimeout(() => { currentTileIndex = 0 isAnimating = false - checkWinLose(guess, tiles) + checkWinLose(guess, tiles, roundResult) }, FLIP_ANIMATION_DURATION / 2) } }, FLIP_ANIMATION_DURATION / 2) @@ -583,8 +993,21 @@ function shakeTiles(tiles) { }) } -function checkWinLose(guess, tiles) { - if (guess === targetWord) { +function checkWinLose(guess, tiles, roundResult) { + if (roundResult?.revealedWord) { + targetWord = roundResult.revealedWord + hourlyRound = { + ...hourlyRound, + word: targetWord, + completedAt: roundResult.completed ? Date.now() : null, + won: roundResult.won, + guessCount: roundResult.guessCount || currentGuessIndex, + nextPlayableAt: roundResult.nextPlayableAt || hourlyRound.nextPlayableAt + } + } + + const wonRound = roundResult ? roundResult.completed && roundResult.won : guess === targetWord + if (wonRound) { gameFinished = true lastResult = { won: true, guesses: currentGuessIndex, word: targetWord } saveGameResult(lastResult) @@ -595,12 +1018,14 @@ function checkWinLose(guess, tiles) { roundStatus.textContent = `Solved in ${currentGuessIndex}` setTimeout(() => showWordDefinition(targetWord, true), 1800) startLockCountdown(2400) + showLeaderboardAfterCompletion() stopInteraction() return } const remainingTiles = guessGrid.querySelectorAll(":not([data-letter])") - if (remainingTiles.length === 0) { + const lostRound = roundResult ? roundResult.completed && !roundResult.won : remainingTiles.length === 0 + if (lostRound) { gameFinished = true lastResult = { won: false, guesses: MAX_GUESSES, word: targetWord } saveGameResult(lastResult) @@ -608,6 +1033,7 @@ function checkWinLose(guess, tiles) { roundStatus.textContent = "Round complete" showWordDefinition(targetWord, false) startLockCountdown(2400) + showLeaderboardAfterCompletion() stopInteraction() return } @@ -620,6 +1046,17 @@ function updateTriesStatus() { triesStatus.textContent = `${currentGuessIndex} / ${MAX_GUESSES}` } +function showLeaderboardAfterCompletion() { + setTimeout(() => { + if (statsModal.open || authModal?.open) return + leaderboardScope = "hour" + leaderboardTabs.forEach(tab => { + tab.classList.toggle("active", tab.dataset.leaderboardScope === leaderboardScope) + }) + openLeaderboard() + }, 3200) +} + function lockUntilNextWord() { gameFinished = true stopInteraction() @@ -665,6 +1102,7 @@ function updateLockCountdown() { roundStatus.textContent = `Next word in ${formatRemainingTime(remaining)}` triesStatus.textContent = "Locked" + updateLeaderboardCountdown() } function formatRemainingTime(milliseconds) { @@ -773,11 +1211,26 @@ function toggleTheme() { themeButton.setAttribute("aria-label", theme === "dark" ? "Switch to light mode" : "Switch to dark mode") } -function openStats() { - renderStats() +async function openStats() { + await renderStats() statsModal.showModal() } +async function openLeaderboard() { + renderLeaderboardLoading() + leaderboardModal?.showModal() + await renderLeaderboard() +} + +function switchLeaderboardScope(scope) { + leaderboardScope = scope || "hour" + leaderboardTabs.forEach(tab => { + tab.classList.toggle("active", tab.dataset.leaderboardScope === leaderboardScope) + }) + renderLeaderboardLoading() + renderLeaderboard() +} + function getStats() { const fallback = { played: 0, @@ -799,6 +1252,8 @@ function saveStats(stats) { } function saveGameResult(result) { + if (hourlyRound?.backend === "supabase") return + const stats = getStats() stats.played += 1 @@ -812,10 +1267,6 @@ function saveGameResult(result) { } saveStats(stats) - completeHourlyRound(result) -} - -function completeHourlyRound(result) { if (!hourlyRound || hourlyRound.completedAt) return hourlyRound = { @@ -825,31 +1276,12 @@ function completeHourlyRound(result) { guessCount: result.guesses } - if (hourlyRound.backend === "local") { - saveLocalHourlyRound(hourlyRound) - return - } - - completeRemoteHourlyRound(result).catch(error => { - console.warn("Failed to complete Supabase hourly round:", error) - }) + saveLocalHourlyRound(hourlyRound) } -async function completeRemoteHourlyRound(result) { - const client = getSupabaseClient() - if (!client || !hourlyRound?.id) return - - const { error } = await client.rpc("complete_hourly_round", { - round_id: hourlyRound.id, - did_win: result.won, - guess_total: result.guesses - }) - - if (error) throw error -} - -function renderStats() { - const stats = getStats() +async function renderStats() { + const stats = await getDisplayStats() + const summary = await getHourlySummary() const winRate = stats.played === 0 ? 0 : Math.round((stats.wins / stats.played) * 100) const statItems = [ ["Played", stats.played], @@ -874,16 +1306,237 @@ function renderStats() { ` }) .join("") + + renderStatsNote(summary) + await renderHistory() } -function resetStats() { +function renderStatsNote(summary) { + if (!statsNote) return + + if (!summary || summary.completedCount === 0) { + statsNote.textContent = "No completed scores yet this hour." + return + } + + const average = summary.averageGuesses ? Number(summary.averageGuesses).toFixed(2) : "--" + statsNote.textContent = `This hour: ${summary.completedCount} finishers · ${summary.winRate}% win rate · ${average} average guesses.` +} + +async function getDisplayStats() { + if (hourlyRound?.backend !== "supabase") return getStats() + + const remoteStats = await getRemoteStats() + return remoteStats || getStats() +} + +async function getRemoteStats() { + const client = getSupabaseClient() + if (!client || !authSession) return null + + const { data, error } = await client.rpc("get_user_stats") + if (error) { + console.warn("Failed to load synced stats:", error) + return null + } + + const row = Array.isArray(data) ? data[0] : data + if (!row) return null + + return { + played: row.played || 0, + wins: row.wins || 0, + currentStreak: row.current_streak || 0, + maxStreak: row.max_streak || 0, + distribution: Array.isArray(row.distribution) ? row.distribution : [0, 0, 0, 0, 0, 0] + } +} + +async function getHourlySummary() { + const client = getSupabaseClient() + if (!client) return null + + const { data, error } = await client.rpc("get_hourly_summary") + if (error) { + console.warn("Failed to load hourly summary:", error) + return null + } + + const row = Array.isArray(data) ? data[0] : data + if (!row) return null + + return { + completedCount: row.completed_count || 0, + winRate: row.win_rate || 0, + averageGuesses: row.average_guesses + } +} + +async function renderHistory() { + if (!historyList) return + + if (hourlyRound?.backend !== "supabase") { + historyList.innerHTML = '
Sign in to keep a cross-device history.
' + return + } + + const rows = await getPlayerHistory() + if (rows.length === 0) { + historyList.innerHTML = '
No completed rounds yet.
' + return + } + + historyList.innerHTML = rows + .map(row => ` +
+ + ${escapeHtml(row.word)} + ${formatHistoryHour(row.hourStart)} + + ${row.won ? `${row.guessCount}/6` : "X/6"} +
+ `) + .join("") +} + +async function getPlayerHistory() { + const client = getSupabaseClient() + if (!client || !authSession) return [] + + const { data, error } = await client.rpc("get_player_history", { history_limit: 8 }) + if (error) { + console.warn("Failed to load history:", error) + return [] + } + + return (Array.isArray(data) ? data : []).map(row => ({ + hourStart: row.hour_start, + word: row.word || "-----", + won: Boolean(row.won), + guessCount: row.guess_count || MAX_GUESSES, + completedAt: row.completed_at + })) +} + +function formatHistoryHour(value) { + if (!value) return "" + + return new Intl.DateTimeFormat(undefined, { + month: "short", + day: "numeric", + hour: "numeric" + }).format(new Date(value)) +} + +function renderLeaderboardLoading() { + if (!leaderboardList) return + + leaderboardList.innerHTML = '
Loading this hour\'s finishers...
' + updateLeaderboardCountdown() +} + +async function renderLeaderboard() { + if (!leaderboardList) return + + const rows = await getLeaderboardRows(leaderboardScope) + latestLeaderboardRows = rows + updateLeaderboardCountdown() + if (rows.length === 0) { + leaderboardList.innerHTML = '
No finishers for this board yet. Be the first to land on it.
' + return + } + + leaderboardList.innerHTML = rows + .map(row => ` +
+ ${row.rank} + + ${escapeHtml(row.username)}${row.isCurrentUser ? " (you)" : ""} + ${row.currentStreak} streak + + ${formatLeaderboardScore(row)} +
+ `) + .join("") +} + +async function getLeaderboardRows(scope) { + const client = getSupabaseClient() + if (!client) return [] + + const { data, error } = await client.rpc("get_leaderboard", { board_scope: scope }) + if (error) { + console.warn("Failed to load leaderboard:", error) + showAlert("Leaderboard unavailable") + return [] + } + + return (Array.isArray(data) ? data : []).map(row => ({ + username: row.username || "player", + won: Boolean(row.won), + guessCount: row.guess_count || MAX_GUESSES, + completedAt: row.completed_at, + rank: row.rank, + currentStreak: row.current_streak || 0, + isCurrentUser: Boolean(row.is_current_user), + wins: row.wins || 0, + played: row.played || 0, + averageGuesses: row.average_guesses + })) +} + +function formatLeaderboardScore(row) { + if (leaderboardScope === "hour") { + return `${row.won ? `${row.guessCount}/6` : "X/6"} · ${formatCompletedTime(row.completedAt)}` + } + + const average = row.averageGuesses ? Number(row.averageGuesses).toFixed(2) : "--" + return `${row.wins} wins · avg ${average}` +} + +function updateLeaderboardCountdown() { + if (!leaderboardCountdown) return + + if (leaderboardScope !== "hour") { + leaderboardCountdown.textContent = leaderboardScope === "today" + ? "Today ranks completed rounds since local midnight in the database timezone." + : "All time ranks total wins, streaks, and average guesses." + return + } + + if (!hourlyRound?.nextPlayableAt) { + leaderboardCountdown.textContent = "Next word unlocks at the top of the hour." + return + } + + const remaining = hourlyRound.nextPlayableAt - Date.now() + leaderboardCountdown.textContent = remaining > 0 + ? `Next word unlocks in ${formatRemainingTime(remaining)}.` + : "The next hourly word is available." +} + +function formatCompletedTime(value) { + if (!value) return "--:--" + + return new Intl.DateTimeFormat(undefined, { + hour: "numeric", + minute: "2-digit" + }).format(new Date(value)) +} + +async function resetStats() { + if (hourlyRound?.backend === "supabase") { + showAlert("Synced stats are saved to your account") + return + } + localStorage.removeItem(STATS_KEY) - renderStats() + await renderStats() showAlert("Stats reset") } async function shareResult() { - const text = buildShareText() + const text = await buildShareText() try { if (navigator.share) { @@ -899,13 +1552,27 @@ async function shareResult() { } } -function buildShareText() { +async function buildShareText() { const status = lastResult ? `${lastResult.won ? lastResult.guesses : "X"}/${MAX_GUESSES}` : `${currentGuessIndex}/${MAX_GUESSES}` const roundLabel = getShareRoundLabel() + const rankLabel = await getShareRankLabel() - return `Fancy Wordle ${roundLabel} ${status}\n${getResultGrid()}` + return `Fancy Wordle ${roundLabel} ${status}${rankLabel}\n${getResultGrid()}` +} + +async function getShareRankLabel() { + if (hourlyRound?.backend !== "supabase" || !lastResult) return "" + + let currentUserRow = leaderboardScope === "hour" + ? latestLeaderboardRows.find(row => row.isCurrentUser) + : null + if (!currentUserRow) { + currentUserRow = (await getLeaderboardRows("hour")).find(row => row.isCurrentUser) + } + + return currentUserRow ? ` · #${currentUserRow.rank} this hour` : "" } function getShareRoundLabel() { diff --git a/scripts/generate-supabase-word-seed.mjs b/scripts/generate-supabase-word-seed.mjs new file mode 100644 index 0000000..e72320e --- /dev/null +++ b/scripts/generate-supabase-word-seed.mjs @@ -0,0 +1,40 @@ +import { readFileSync, writeFileSync } from "node:fs" + +const targetWords = JSON.parse(readFileSync(new URL("../targetWords.json", import.meta.url), "utf8")) +const dictionaryWords = JSON.parse(readFileSync(new URL("../dictionary.json", import.meta.url), "utf8")) + +const normalizeWords = words => [...new Set(words + .map(word => String(word).trim().toLowerCase()) + .filter(word => /^[a-z]{5}$/.test(word)))] + +const answers = normalizeWords(targetWords) +const dictionary = normalizeWords([...dictionaryWords, ...answers]).sort() + +const quote = value => `'${value.replaceAll("'", "''")}'` +const answerRows = answers + .map((word, index) => ` (${index + 1}, ${quote(word)})`) + .join(",\n") +const dictionaryRows = dictionary + .map(word => ` (${quote(word)})`) + .join(",\n") + +const sql = `-- Generated by scripts/generate-supabase-word-seed.mjs. +-- Re-run the generator after changing targetWords.json or dictionary.json. + +begin; + +truncate table public.wordle_words; +truncate table public.wordle_dictionary; + +insert into public.wordle_words (position, word) values +${answerRows}; + +insert into public.wordle_dictionary (word) values +${dictionaryRows}; + +commit; +` + +writeFileSync(new URL("../supabase/seed-word-data.sql", import.meta.url), sql) + +console.log(`Wrote ${answers.length} answers and ${dictionary.length} accepted guesses.`) diff --git a/supabase-config.js b/supabase-config.js index e4bcb9c..d3551b2 100644 --- a/supabase-config.js +++ b/supabase-config.js @@ -1,4 +1,4 @@ window.FANCY_WORDLE_SUPABASE = { - url: "", - anonKey: "" + url: "https://bxrrirbaucroteyumeul.supabase.co", + anonKey: "sb_publishable_moGEav5v53vMJPwnWWp4tg_Ab67sG4o" } diff --git a/supabase/schema.sql b/supabase/schema.sql index 1e3744a..ae71c01 100644 --- a/supabase/schema.sql +++ b/supabase/schema.sql @@ -5,138 +5,32 @@ create table if not exists public.wordle_words ( word text not null unique check (word ~ '^[a-z]{5}$') ); -insert into public.wordle_words (position, word) values - (1, 'cigar'), - (2, 'rebut'), - (3, 'sissy'), - (4, 'humph'), - (5, 'awake'), - (6, 'blush'), - (7, 'focal'), - (8, 'evade'), - (9, 'naval'), - (10, 'serve'), - (11, 'heath'), - (12, 'dwarf'), - (13, 'model'), - (14, 'karma'), - (15, 'stink'), - (16, 'grade'), - (17, 'quiet'), - (18, 'bench'), - (19, 'abate'), - (20, 'feign'), - (21, 'major'), - (22, 'death'), - (23, 'fresh'), - (24, 'crust'), - (25, 'stool'), - (26, 'colon'), - (27, 'abase'), - (28, 'marry'), - (29, 'react'), - (30, 'batty'), - (31, 'pride'), - (32, 'floss'), - (33, 'helix'), - (34, 'croak'), - (35, 'staff'), - (36, 'paper'), - (37, 'unfed'), - (38, 'whelp'), - (39, 'trawl'), - (40, 'outdo'), - (41, 'adobe'), - (42, 'crazy'), - (43, 'sower'), - (44, 'repay'), - (45, 'digit'), - (46, 'crate'), - (47, 'cluck'), - (48, 'spike'), - (49, 'mimic'), - (50, 'pound'), - (51, 'maxim'), - (52, 'linen'), - (53, 'unmet'), - (54, 'flesh'), - (55, 'booby'), - (56, 'forth'), - (57, 'first'), - (58, 'stand'), - (59, 'belly'), - (60, 'ivory'), - (61, 'seedy'), - (62, 'print'), - (63, 'yearn'), - (64, 'drain'), - (65, 'bribe'), - (66, 'stout'), - (67, 'panel'), - (68, 'crass'), - (69, 'flume'), - (70, 'offal'), - (71, 'agree'), - (72, 'error'), - (73, 'swirl'), - (74, 'argue'), - (75, 'bleed'), - (76, 'delta'), - (77, 'flick'), - (78, 'totem'), - (79, 'wooer'), - (80, 'front'), - (81, 'shrub'), - (82, 'parry'), - (83, 'biome'), - (84, 'lapel'), - (85, 'start'), - (86, 'greet'), - (87, 'goner'), - (88, 'golem'), - (89, 'lusty'), - (90, 'loopy'), - (91, 'round'), - (92, 'audit'), - (93, 'lying'), - (94, 'gamma'), - (95, 'labor'), - (96, 'islet'), - (97, 'civic'), - (98, 'forge'), - (99, 'corny'), - (100, 'moult'), - (101, 'basic'), - (102, 'salad'), - (103, 'agate'), - (104, 'spicy'), - (105, 'spray'), - (106, 'essay'), - (107, 'fjord'), - (108, 'spend'), - (109, 'kebab'), - (110, 'guild'), - (111, 'aback'), - (112, 'motor'), - (113, 'alone'), - (114, 'hatch'), - (115, 'hyper'), - (116, 'thumb'), - (117, 'dowry'), - (118, 'ought'), - (119, 'belch'), - (120, 'dutch') -on conflict (position) do nothing; +create table if not exists public.wordle_dictionary ( + word text primary key check (word ~ '^[a-z]{5}$') +); -alter table public.wordle_words enable row level security; +create table if not exists public.profiles ( + id uuid primary key references auth.users(id) on delete cascade, + username text, + display_name text, + created_at timestamptz not null default now(), + updated_at timestamptz not null default now() +); + +alter table public.profiles + add column if not exists username text; + +create unique index if not exists profiles_username_key + on public.profiles (lower(username)) + where username is not null; create table if not exists public.wordle_rounds ( id uuid primary key default gen_random_uuid(), user_id uuid not null references auth.users(id) on delete cascade, word text not null check (word ~ '^[a-z]{5}$'), - hour_start timestamptz, + hour_start timestamptz not null, started_at timestamptz not null default now(), - next_playable_at timestamptz not null default (now() + interval '1 hour'), + next_playable_at timestamptz not null, completed_at timestamptz, won boolean, guess_count integer check (guess_count between 1 and 6), @@ -144,14 +38,31 @@ create table if not exists public.wordle_rounds ( ); alter table public.wordle_rounds - add column if not exists hour_start timestamptz; + add column if not exists hour_start timestamptz, + add column if not exists next_playable_at timestamptz; update public.wordle_rounds set hour_start = date_trunc('hour', started_at) where hour_start is null; +update public.wordle_rounds +set next_playable_at = hour_start + interval '1 hour' +where next_playable_at is null; + alter table public.wordle_rounds - alter column hour_start set not null; + alter column hour_start set not null, + alter column next_playable_at set not null; + +create table if not exists public.wordle_guesses ( + id uuid primary key default gen_random_uuid(), + round_id uuid not null references public.wordle_rounds(id) on delete cascade, + user_id uuid not null references auth.users(id) on delete cascade, + guess text not null check (guess ~ '^[a-z]{5}$'), + row_index integer not null check (row_index between 1 and 6), + states jsonb not null, + created_at timestamptz not null default now(), + unique (round_id, row_index) +); create index if not exists wordle_rounds_user_started_idx on public.wordle_rounds (user_id, started_at desc); @@ -159,7 +70,27 @@ create index if not exists wordle_rounds_user_started_idx create unique index if not exists wordle_rounds_user_hour_idx on public.wordle_rounds (user_id, hour_start); +create index if not exists wordle_guesses_round_row_idx + on public.wordle_guesses (round_id, row_index); + +alter table public.wordle_words enable row level security; +alter table public.wordle_dictionary enable row level security; +alter table public.profiles enable row level security; alter table public.wordle_rounds enable row level security; +alter table public.wordle_guesses enable row level security; + +drop policy if exists "Users can read their own profile" on public.profiles; +create policy "Users can read their own profile" + on public.profiles + for select + using (auth.uid() = id); + +drop policy if exists "Users can update their own profile" on public.profiles; +create policy "Users can update their own profile" + on public.profiles + for update + using (auth.uid() = id) + with check (auth.uid() = id); drop policy if exists "Users can read their own rounds" on public.wordle_rounds; create policy "Users can read their own rounds" @@ -167,12 +98,113 @@ create policy "Users can read their own rounds" for select using (auth.uid() = user_id); +drop policy if exists "Users can read their own guesses" on public.wordle_guesses; +create policy "Users can read their own guesses" + on public.wordle_guesses + for select + using (auth.uid() = user_id); + +create or replace function public.handle_new_user() +returns trigger +language plpgsql +security definer +set search_path = public +as $$ +begin + insert into public.profiles (id, username, display_name) + values ( + new.id, + nullif(lower(regexp_replace(coalesce(new.raw_user_meta_data->>'username', split_part(new.email, '@', 1)), '[^a-z0-9_]', '', 'g')), ''), + coalesce(new.raw_user_meta_data->>'display_name', new.raw_user_meta_data->>'username', split_part(new.email, '@', 1)) + ) + on conflict (id) do nothing; + + return new; +end; +$$; + +drop trigger if exists on_auth_user_created on auth.users; +create trigger on_auth_user_created + after insert on auth.users + for each row execute function public.handle_new_user(); + +create or replace function public.score_guess(guess text, answer text) +returns jsonb +language plpgsql +immutable +as $$ +declare + states text[] := array['wrong', 'wrong', 'wrong', 'wrong', 'wrong']; + remaining_letters text := ''; + guess_letter text; + answer_letter text; + match_index integer; + index integer; +begin + for index in 1..5 loop + guess_letter := substr(guess, index, 1); + answer_letter := substr(answer, index, 1); + + if guess_letter = answer_letter then + states[index] := 'correct'; + else + remaining_letters := remaining_letters || answer_letter; + end if; + end loop; + + for index in 1..5 loop + if states[index] = 'correct' then + continue; + end if; + + guess_letter := substr(guess, index, 1); + match_index := strpos(remaining_letters, guess_letter); + + if match_index > 0 then + states[index] := 'wrong-position'; + remaining_letters := overlay(remaining_letters placing '' from match_index for 1); + end if; + end loop; + + return to_jsonb(states); +end; +$$; + +create or replace function public.get_hourly_word(hour_start timestamptz) +returns text +language plpgsql +stable +security definer +set search_path = public +as $$ +declare + word_count integer; + word_offset integer; + hourly_word text; +begin + select count(*) into word_count from public.wordle_words; + + if word_count = 0 then + raise exception 'No hourly words are configured'; + end if; + + word_offset := (floor(extract(epoch from hour_start) / 3600)::bigint % word_count)::integer; + + select public.wordle_words.word + into hourly_word + from public.wordle_words + order by position + limit 1 offset word_offset; + + return hourly_word; +end; +$$; + drop function if exists public.start_hourly_round(text); create or replace function public.start_hourly_round() returns table ( round_id uuid, - word text, hour_start timestamptz, started_at timestamptz, next_playable_at timestamptz, @@ -180,7 +212,9 @@ returns table ( won boolean, guess_count integer, server_now timestamptz, - is_existing boolean + is_existing boolean, + revealed_word text, + guesses jsonb ) language plpgsql security definer @@ -190,27 +224,12 @@ declare existing_round public.wordle_rounds%rowtype; new_round public.wordle_rounds%rowtype; current_hour timestamptz := date_trunc('hour', now()); - word_count integer; - word_offset integer; - hourly_word text; + hourly_word text := public.get_hourly_word(date_trunc('hour', now())); begin if auth.uid() is null then raise exception 'Authentication required'; end if; - select count(*) into word_count from public.wordle_words; - if word_count = 0 then - raise exception 'No hourly words are configured'; - end if; - - word_offset := (floor(extract(epoch from current_hour) / 3600)::bigint % word_count)::integer; - - select public.wordle_words.word - into hourly_word - from public.wordle_words - order by position - limit 1 offset word_offset; - select * into existing_round from public.wordle_rounds @@ -222,7 +241,6 @@ begin if found then return query select existing_round.id, - existing_round.word, existing_round.hour_start, existing_round.started_at, existing_round.next_playable_at, @@ -230,7 +248,17 @@ begin existing_round.won, existing_round.guess_count, now(), - true; + true, + case when existing_round.completed_at is null then null else existing_round.word end, + coalesce(( + select jsonb_agg(jsonb_build_object( + 'guess', wordle_guesses.guess, + 'rowIndex', wordle_guesses.row_index, + 'states', wordle_guesses.states + ) order by wordle_guesses.row_index) + from public.wordle_guesses + where wordle_guesses.round_id = existing_round.id + ), '[]'::jsonb); return; end if; @@ -240,7 +268,6 @@ begin return query select new_round.id, - new_round.word, new_round.hour_start, new_round.started_at, new_round.next_playable_at, @@ -248,10 +275,461 @@ begin new_round.won, new_round.guess_count, now(), - false; + false, + null::text, + '[]'::jsonb; end; $$; +drop function if exists public.submit_guess(uuid, text); + +create or replace function public.submit_guess(target_round_id uuid, submitted_guess text) +returns table ( + guess text, + row_index integer, + states jsonb, + completed boolean, + won boolean, + guess_count integer, + revealed_word text, + next_playable_at timestamptz, + server_now timestamptz +) +language plpgsql +security definer +set search_path = public +as $$ +declare + active_round public.wordle_rounds%rowtype; + normalized_guess text := lower(trim(submitted_guess)); + next_row integer; + scored_states jsonb; + did_win boolean; + did_complete boolean; +begin + if auth.uid() is null then + raise exception 'Authentication required'; + end if; + + if normalized_guess !~ '^[a-z]{5}$' then + raise exception 'Guess must be five letters'; + end if; + + if not exists (select 1 from public.wordle_dictionary where word = normalized_guess) then + raise exception 'Not in word list'; + end if; + + select * + into active_round + from public.wordle_rounds rounds + where rounds.id = target_round_id + and rounds.user_id = auth.uid() + limit 1; + + if not found then + raise exception 'Round not found'; + end if; + + if active_round.completed_at is not null then + raise exception 'Round already complete'; + end if; + + select (count(*) + 1)::integer + into next_row + from public.wordle_guesses + where wordle_guesses.round_id = active_round.id; + + if next_row > 6 then + raise exception 'No guesses remaining'; + end if; + + scored_states := public.score_guess(normalized_guess, active_round.word); + did_win := normalized_guess = active_round.word; + did_complete := did_win or next_row = 6; + + insert into public.wordle_guesses (round_id, user_id, guess, row_index, states) + values (active_round.id, auth.uid(), normalized_guess, next_row, scored_states); + + if did_complete then + update public.wordle_rounds + set completed_at = now(), + won = did_win, + guess_count = next_row + where id = active_round.id; + end if; + + return query select + normalized_guess, + next_row, + scored_states, + did_complete, + did_win, + case when did_complete then next_row else null end, + case when did_complete then active_round.word else null end, + active_round.next_playable_at, + now(); +end; +$$; + +create or replace function public.get_user_stats() +returns table ( + played integer, + wins integer, + current_streak integer, + max_streak integer, + distribution integer[] +) +language plpgsql +security definer +set search_path = public +as $$ +declare + round_record record; + running_streak integer := 0; + previous_hour timestamptz; +begin + if auth.uid() is null then + raise exception 'Authentication required'; + end if; + + played := 0; + wins := 0; + current_streak := 0; + max_streak := 0; + distribution := array[0, 0, 0, 0, 0, 0]; + + for round_record in + select won, guess_count, hour_start + from public.wordle_rounds + where user_id = auth.uid() + and completed_at is not null + order by hour_start asc + loop + played := played + 1; + + if round_record.won then + wins := wins + 1; + running_streak := case + when running_streak > 0 and previous_hour is not null and round_record.hour_start = previous_hour + interval '1 hour' + then running_streak + 1 + else 1 + end; + max_streak := greatest(max_streak, running_streak); + + if round_record.guess_count between 1 and 6 then + distribution[round_record.guess_count] := distribution[round_record.guess_count] + 1; + end if; + else + running_streak := 0; + end if; + + previous_hour := round_record.hour_start; + end loop; + + previous_hour := null; + + for round_record in + select won, hour_start + from public.wordle_rounds + where user_id = auth.uid() + and completed_at is not null + order by hour_start desc + loop + if not round_record.won then + exit; + end if; + + if previous_hour is not null and round_record.hour_start <> previous_hour - interval '1 hour' then + exit; + end if; + + current_streak := current_streak + 1; + previous_hour := round_record.hour_start; + end loop; + + return next; +end; +$$; + +create or replace function public.is_username_available(candidate_username text) +returns boolean +language plpgsql +security definer +set search_path = public +as $$ +declare + normalized_username text := nullif(lower(regexp_replace(trim(candidate_username), '[^a-z0-9_]', '', 'g')), ''); +begin + if normalized_username is null then + return false; + end if; + + return not exists ( + select 1 + from public.profiles + where lower(username) = normalized_username + ); +end; +$$; + +create or replace function public.get_player_current_streak(target_user_id uuid) +returns integer +language plpgsql +security definer +set search_path = public +as $$ +declare + round_record record; + streak integer := 0; + previous_hour timestamptz; +begin + for round_record in + select won, hour_start + from public.wordle_rounds + where user_id = target_user_id + and completed_at is not null + order by hour_start desc + loop + if not round_record.won then + exit; + end if; + + if previous_hour is not null and round_record.hour_start <> previous_hour - interval '1 hour' then + exit; + end if; + + streak := streak + 1; + previous_hour := round_record.hour_start; + end loop; + + return streak; +end; +$$; + +create or replace function public.get_hourly_leaderboard() +returns table ( + username text, + won boolean, + guess_count integer, + completed_at timestamptz, + rank integer +) +language plpgsql +security definer +set search_path = public +as $$ +begin + return query + select + coalesce(profiles.username, profiles.display_name, 'player') as username, + rounds.won, + rounds.guess_count, + rounds.completed_at, + row_number() over ( + order by + rounds.won desc, + rounds.guess_count asc nulls last, + rounds.completed_at asc + )::integer as rank + from public.wordle_rounds rounds + left join public.profiles profiles on profiles.id = rounds.user_id + where rounds.hour_start = date_trunc('hour', now()) + and rounds.completed_at is not null + order by rank + limit 25; +end; +$$; + +create or replace function public.get_leaderboard(board_scope text default 'hour') +returns table ( + username text, + won boolean, + guess_count integer, + completed_at timestamptz, + rank integer, + current_streak integer, + is_current_user boolean, + wins integer, + played integer, + average_guesses numeric +) +language plpgsql +security definer +set search_path = public +as $$ +declare + normalized_scope text := lower(coalesce(board_scope, 'hour')); +begin + if normalized_scope = 'today' then + return query + with aggregate_rows as ( + select + rounds.user_id, + coalesce(profiles.username, profiles.display_name, 'player') as username, + count(*)::integer as played, + count(*) filter (where rounds.won)::integer as wins, + round(avg(rounds.guess_count) filter (where rounds.won), 2) as average_guesses, + min(rounds.completed_at) filter (where rounds.won) as first_win_at, + max(rounds.completed_at) as latest_completed_at + from public.wordle_rounds rounds + left join public.profiles profiles on profiles.id = rounds.user_id + where rounds.completed_at is not null + and rounds.completed_at >= date_trunc('day', now()) + group by rounds.user_id, profiles.username, profiles.display_name + ), ranked as ( + select + aggregate_rows.*, + row_number() over ( + order by aggregate_rows.wins desc, aggregate_rows.average_guesses asc nulls last, aggregate_rows.first_win_at asc nulls last + )::integer as row_rank + from aggregate_rows + ) + select + ranked.username, + ranked.wins > 0, + null::integer, + ranked.latest_completed_at, + ranked.row_rank, + public.get_player_current_streak(ranked.user_id), + auth.uid() = ranked.user_id, + ranked.wins, + ranked.played, + ranked.average_guesses + from ranked + where ranked.row_rank <= 25 or auth.uid() = ranked.user_id + order by ranked.row_rank; + return; + end if; + + if normalized_scope = 'all' then + return query + with aggregate_rows as ( + select + rounds.user_id, + coalesce(profiles.username, profiles.display_name, 'player') as username, + count(*)::integer as played, + count(*) filter (where rounds.won)::integer as wins, + round(avg(rounds.guess_count) filter (where rounds.won), 2) as average_guesses, + min(rounds.completed_at) filter (where rounds.won) as first_win_at, + max(rounds.completed_at) as latest_completed_at + from public.wordle_rounds rounds + left join public.profiles profiles on profiles.id = rounds.user_id + where rounds.completed_at is not null + group by rounds.user_id, profiles.username, profiles.display_name + ), ranked as ( + select + aggregate_rows.*, + row_number() over ( + order by aggregate_rows.wins desc, public.get_player_current_streak(aggregate_rows.user_id) desc, aggregate_rows.average_guesses asc nulls last, aggregate_rows.first_win_at asc nulls last + )::integer as row_rank + from aggregate_rows + ) + select + ranked.username, + ranked.wins > 0, + null::integer, + ranked.latest_completed_at, + ranked.row_rank, + public.get_player_current_streak(ranked.user_id), + auth.uid() = ranked.user_id, + ranked.wins, + ranked.played, + ranked.average_guesses + from ranked + where ranked.row_rank <= 25 or auth.uid() = ranked.user_id + order by ranked.row_rank; + return; + end if; + + return query + with ranked as ( + select + rounds.user_id, + coalesce(profiles.username, profiles.display_name, 'player') as username, + rounds.won, + rounds.guess_count, + rounds.completed_at, + row_number() over ( + order by rounds.won desc, rounds.guess_count asc nulls last, rounds.completed_at asc + )::integer as row_rank + from public.wordle_rounds rounds + left join public.profiles profiles on profiles.id = rounds.user_id + where rounds.hour_start = date_trunc('hour', now()) + and rounds.completed_at is not null + ) + select + ranked.username, + ranked.won, + ranked.guess_count, + ranked.completed_at, + ranked.row_rank, + public.get_player_current_streak(ranked.user_id), + auth.uid() = ranked.user_id, + case when ranked.won then 1 else 0 end, + 1, + ranked.guess_count::numeric + from ranked + where ranked.row_rank <= 25 or auth.uid() = ranked.user_id + order by ranked.row_rank; +end; +$$; + +create or replace function public.get_player_history(history_limit integer default 10) +returns table ( + hour_start timestamptz, + word text, + won boolean, + guess_count integer, + completed_at timestamptz +) +language plpgsql +security definer +set search_path = public +as $$ +begin + if auth.uid() is null then + raise exception 'Authentication required'; + end if; + + return query + select + rounds.hour_start, + rounds.word, + rounds.won, + rounds.guess_count, + rounds.completed_at + from public.wordle_rounds rounds + where rounds.user_id = auth.uid() + and rounds.completed_at is not null + order by rounds.hour_start desc + limit greatest(1, least(coalesce(history_limit, 10), 25)); +end; +$$; + +create or replace function public.get_hourly_summary() +returns table ( + completed_count integer, + win_rate integer, + average_guesses numeric +) +language plpgsql +security definer +set search_path = public +as $$ +begin + return query + select + count(*)::integer, + coalesce(round((count(*) filter (where won)::numeric / nullif(count(*), 0)) * 100), 0)::integer, + round(avg(guess_count) filter (where won), 2) + from public.wordle_rounds + where hour_start = date_trunc('hour', now()) + and completed_at is not null; +end; +$$; + +drop function if exists public.get_email_for_username(text); + create or replace function public.complete_hourly_round( round_id uuid, did_win boolean, @@ -263,25 +741,25 @@ security definer set search_path = public as $$ begin - if auth.uid() is null then - raise exception 'Authentication required'; - end if; - - if guess_total < 1 or guess_total > 6 then - raise exception 'Guess total must be between 1 and 6'; - end if; - - update public.wordle_rounds - set completed_at = coalesce(completed_at, now()), - won = did_win, - guess_count = guess_total - where id = round_id - and user_id = auth.uid(); + raise exception 'complete_hourly_round is deprecated; use submit_guess'; end; $$; -revoke all on public.wordle_rounds from anon, authenticated; revoke all on public.wordle_words from anon, authenticated; +revoke all on public.wordle_dictionary from anon, authenticated; +revoke all on public.profiles from anon, authenticated; +revoke all on public.wordle_rounds from anon, authenticated; +revoke all on public.wordle_guesses from anon, authenticated; + +grant select, update on public.profiles to authenticated; grant select on public.wordle_rounds to authenticated; +grant select on public.wordle_guesses to authenticated; +grant execute on function public.is_username_available(text) to anon, authenticated; grant execute on function public.start_hourly_round() to authenticated; +grant execute on function public.submit_guess(uuid, text) to authenticated; +grant execute on function public.get_user_stats() to authenticated; +grant execute on function public.get_hourly_leaderboard() to anon, authenticated; +grant execute on function public.get_leaderboard(text) to anon, authenticated; +grant execute on function public.get_player_history(integer) to authenticated; +grant execute on function public.get_hourly_summary() to anon, authenticated; grant execute on function public.complete_hourly_round(uuid, boolean, integer) to authenticated; diff --git a/supabase/seed-word-data.sql b/supabase/seed-word-data.sql new file mode 100644 index 0000000..fc3bb5f --- /dev/null +++ b/supabase/seed-word-data.sql @@ -0,0 +1,15300 @@ +-- Generated by scripts/generate-supabase-word-seed.mjs. +-- Re-run the generator after changing targetWords.json or dictionary.json. + +begin; + +truncate table public.wordle_words; +truncate table public.wordle_dictionary; + +insert into public.wordle_words (position, word) values + (1, 'cigar'), + (2, 'rebut'), + (3, 'sissy'), + (4, 'humph'), + (5, 'awake'), + (6, 'blush'), + (7, 'focal'), + (8, 'evade'), + (9, 'naval'), + (10, 'serve'), + (11, 'heath'), + (12, 'dwarf'), + (13, 'model'), + (14, 'karma'), + (15, 'stink'), + (16, 'grade'), + (17, 'quiet'), + (18, 'bench'), + (19, 'abate'), + (20, 'feign'), + (21, 'major'), + (22, 'death'), + (23, 'fresh'), + (24, 'crust'), + (25, 'stool'), + (26, 'colon'), + (27, 'abase'), + (28, 'marry'), + (29, 'react'), + (30, 'batty'), + (31, 'pride'), + (32, 'floss'), + (33, 'helix'), + (34, 'croak'), + (35, 'staff'), + (36, 'paper'), + (37, 'unfed'), + (38, 'whelp'), + (39, 'trawl'), + (40, 'outdo'), + (41, 'adobe'), + (42, 'crazy'), + (43, 'sower'), + (44, 'repay'), + (45, 'digit'), + (46, 'crate'), + (47, 'cluck'), + (48, 'spike'), + (49, 'mimic'), + (50, 'pound'), + (51, 'maxim'), + (52, 'linen'), + (53, 'unmet'), + (54, 'flesh'), + (55, 'booby'), + (56, 'forth'), + (57, 'first'), + (58, 'stand'), + (59, 'belly'), + (60, 'ivory'), + (61, 'seedy'), + (62, 'print'), + (63, 'yearn'), + (64, 'drain'), + (65, 'bribe'), + (66, 'stout'), + (67, 'panel'), + (68, 'crass'), + (69, 'flume'), + (70, 'offal'), + (71, 'agree'), + (72, 'error'), + (73, 'swirl'), + (74, 'argue'), + (75, 'bleed'), + (76, 'delta'), + (77, 'flick'), + (78, 'totem'), + (79, 'wooer'), + (80, 'front'), + (81, 'shrub'), + (82, 'parry'), + (83, 'biome'), + (84, 'lapel'), + (85, 'start'), + (86, 'greet'), + (87, 'goner'), + (88, 'golem'), + (89, 'lusty'), + (90, 'loopy'), + (91, 'round'), + (92, 'audit'), + (93, 'lying'), + (94, 'gamma'), + (95, 'labor'), + (96, 'islet'), + (97, 'civic'), + (98, 'forge'), + (99, 'corny'), + (100, 'moult'), + (101, 'basic'), + (102, 'salad'), + (103, 'agate'), + (104, 'spicy'), + (105, 'spray'), + (106, 'essay'), + (107, 'fjord'), + (108, 'spend'), + (109, 'kebab'), + (110, 'guild'), + (111, 'aback'), + (112, 'motor'), + (113, 'alone'), + (114, 'hatch'), + (115, 'hyper'), + (116, 'thumb'), + (117, 'dowry'), + (118, 'ought'), + (119, 'belch'), + (120, 'dutch'), + (121, 'pilot'), + (122, 'tweed'), + (123, 'comet'), + (124, 'jaunt'), + (125, 'enema'), + (126, 'steed'), + (127, 'abyss'), + (128, 'growl'), + (129, 'fling'), + (130, 'dozen'), + (131, 'boozy'), + (132, 'erode'), + (133, 'world'), + (134, 'gouge'), + (135, 'click'), + (136, 'briar'), + (137, 'great'), + (138, 'altar'), + (139, 'pulpy'), + (140, 'blurt'), + (141, 'coast'), + (142, 'duchy'), + (143, 'groin'), + (144, 'fixer'), + (145, 'group'), + (146, 'rogue'), + (147, 'badly'), + (148, 'smart'), + (149, 'pithy'), + (150, 'gaudy'), + (151, 'chill'), + (152, 'heron'), + (153, 'vodka'), + (154, 'finer'), + (155, 'surer'), + (156, 'radio'), + (157, 'rouge'), + (158, 'perch'), + (159, 'retch'), + (160, 'wrote'), + (161, 'clock'), + (162, 'tilde'), + (163, 'store'), + (164, 'prove'), + (165, 'bring'), + (166, 'solve'), + (167, 'cheat'), + (168, 'grime'), + (169, 'exult'), + (170, 'usher'), + (171, 'epoch'), + (172, 'triad'), + (173, 'break'), + (174, 'rhino'), + (175, 'viral'), + (176, 'conic'), + (177, 'masse'), + (178, 'sonic'), + (179, 'vital'), + (180, 'trace'), + (181, 'using'), + (182, 'peach'), + (183, 'champ'), + (184, 'baton'), + (185, 'brake'), + (186, 'pluck'), + (187, 'craze'), + (188, 'gripe'), + (189, 'weary'), + (190, 'picky'), + (191, 'acute'), + (192, 'ferry'), + (193, 'aside'), + (194, 'tapir'), + (195, 'troll'), + (196, 'unify'), + (197, 'rebus'), + (198, 'boost'), + (199, 'truss'), + (200, 'siege'), + (201, 'tiger'), + (202, 'banal'), + (203, 'slump'), + (204, 'crank'), + (205, 'gorge'), + (206, 'query'), + (207, 'drink'), + (208, 'favor'), + (209, 'abbey'), + (210, 'tangy'), + (211, 'panic'), + (212, 'solar'), + (213, 'shire'), + (214, 'proxy'), + (215, 'point'), + (216, 'robot'), + (217, 'prick'), + (218, 'wince'), + (219, 'crimp'), + (220, 'knoll'), + (221, 'sugar'), + (222, 'whack'), + (223, 'mount'), + (224, 'perky'), + (225, 'could'), + (226, 'wrung'), + (227, 'light'), + (228, 'those'), + (229, 'moist'), + (230, 'shard'), + (231, 'pleat'), + (232, 'aloft'), + (233, 'skill'), + (234, 'elder'), + (235, 'frame'), + (236, 'humor'), + (237, 'pause'), + (238, 'ulcer'), + (239, 'ultra'), + (240, 'robin'), + (241, 'cynic'), + (242, 'agora'), + (243, 'aroma'), + (244, 'caulk'), + (245, 'shake'), + (246, 'pupal'), + (247, 'dodge'), + (248, 'swill'), + (249, 'tacit'), + (250, 'other'), + (251, 'thorn'), + (252, 'trove'), + (253, 'bloke'), + (254, 'vivid'), + (255, 'spill'), + (256, 'chant'), + (257, 'choke'), + (258, 'rupee'), + (259, 'nasty'), + (260, 'mourn'), + (261, 'ahead'), + (262, 'brine'), + (263, 'cloth'), + (264, 'hoard'), + (265, 'sweet'), + (266, 'month'), + (267, 'lapse'), + (268, 'watch'), + (269, 'today'), + (270, 'focus'), + (271, 'smelt'), + (272, 'tease'), + (273, 'cater'), + (274, 'movie'), + (275, 'lynch'), + (276, 'saute'), + (277, 'allow'), + (278, 'renew'), + (279, 'their'), + (280, 'slosh'), + (281, 'purge'), + (282, 'chest'), + (283, 'depot'), + (284, 'epoxy'), + (285, 'nymph'), + (286, 'found'), + (287, 'shall'), + (288, 'harry'), + (289, 'stove'), + (290, 'lowly'), + (291, 'snout'), + (292, 'trope'), + (293, 'fewer'), + (294, 'shawl'), + (295, 'natal'), + (296, 'fibre'), + (297, 'comma'), + (298, 'foray'), + (299, 'scare'), + (300, 'stair'), + (301, 'black'), + (302, 'squad'), + (303, 'royal'), + (304, 'chunk'), + (305, 'mince'), + (306, 'slave'), + (307, 'shame'), + (308, 'cheek'), + (309, 'ample'), + (310, 'flair'), + (311, 'foyer'), + (312, 'cargo'), + (313, 'oxide'), + (314, 'plant'), + (315, 'olive'), + (316, 'inert'), + (317, 'askew'), + (318, 'heist'), + (319, 'shown'), + (320, 'zesty'), + (321, 'hasty'), + (322, 'trash'), + (323, 'fella'), + (324, 'larva'), + (325, 'forgo'), + (326, 'story'), + (327, 'hairy'), + (328, 'train'), + (329, 'homer'), + (330, 'badge'), + (331, 'midst'), + (332, 'canny'), + (333, 'fetus'), + (334, 'butch'), + (335, 'farce'), + (336, 'slung'), + (337, 'tipsy'), + (338, 'metal'), + (339, 'yield'), + (340, 'delve'), + (341, 'being'), + (342, 'scour'), + (343, 'glass'), + (344, 'gamer'), + (345, 'scrap'), + (346, 'money'), + (347, 'hinge'), + (348, 'album'), + (349, 'vouch'), + (350, 'asset'), + (351, 'tiara'), + (352, 'crept'), + (353, 'bayou'), + (354, 'atoll'), + (355, 'manor'), + (356, 'creak'), + (357, 'showy'), + (358, 'phase'), + (359, 'froth'), + (360, 'depth'), + (361, 'gloom'), + (362, 'flood'), + (363, 'trait'), + (364, 'girth'), + (365, 'piety'), + (366, 'payer'), + (367, 'goose'), + (368, 'float'), + (369, 'donor'), + (370, 'atone'), + (371, 'primo'), + (372, 'apron'), + (373, 'blown'), + (374, 'cacao'), + (375, 'loser'), + (376, 'input'), + (377, 'gloat'), + (378, 'awful'), + (379, 'brink'), + (380, 'smite'), + (381, 'beady'), + (382, 'rusty'), + (383, 'retro'), + (384, 'droll'), + (385, 'gawky'), + (386, 'hutch'), + (387, 'pinto'), + (388, 'gaily'), + (389, 'egret'), + (390, 'lilac'), + (391, 'sever'), + (392, 'field'), + (393, 'fluff'), + (394, 'hydro'), + (395, 'flack'), + (396, 'agape'), + (397, 'wench'), + (398, 'voice'), + (399, 'stead'), + (400, 'stalk'), + (401, 'berth'), + (402, 'madam'), + (403, 'night'), + (404, 'bland'), + (405, 'liver'), + (406, 'wedge'), + (407, 'augur'), + (408, 'roomy'), + (409, 'wacky'), + (410, 'flock'), + (411, 'angry'), + (412, 'bobby'), + (413, 'trite'), + (414, 'aphid'), + (415, 'tryst'), + (416, 'midge'), + (417, 'power'), + (418, 'elope'), + (419, 'cinch'), + (420, 'motto'), + (421, 'stomp'), + (422, 'upset'), + (423, 'bluff'), + (424, 'cramp'), + (425, 'quart'), + (426, 'coyly'), + (427, 'youth'), + (428, 'rhyme'), + (429, 'buggy'), + (430, 'alien'), + (431, 'smear'), + (432, 'unfit'), + (433, 'patty'), + (434, 'cling'), + (435, 'glean'), + (436, 'label'), + (437, 'hunky'), + (438, 'khaki'), + (439, 'poker'), + (440, 'gruel'), + (441, 'twice'), + (442, 'twang'), + (443, 'shrug'), + (444, 'treat'), + (445, 'unlit'), + (446, 'waste'), + (447, 'merit'), + (448, 'woven'), + (449, 'octal'), + (450, 'needy'), + (451, 'clown'), + (452, 'widow'), + (453, 'irony'), + (454, 'ruder'), + (455, 'gauze'), + (456, 'chief'), + (457, 'onset'), + (458, 'prize'), + (459, 'fungi'), + (460, 'charm'), + (461, 'gully'), + (462, 'inter'), + (463, 'whoop'), + (464, 'taunt'), + (465, 'leery'), + (466, 'class'), + (467, 'theme'), + (468, 'lofty'), + (469, 'tibia'), + (470, 'booze'), + (471, 'alpha'), + (472, 'thyme'), + (473, 'eclat'), + (474, 'doubt'), + (475, 'parer'), + (476, 'chute'), + (477, 'stick'), + (478, 'trice'), + (479, 'alike'), + (480, 'sooth'), + (481, 'recap'), + (482, 'saint'), + (483, 'liege'), + (484, 'glory'), + (485, 'grate'), + (486, 'admit'), + (487, 'brisk'), + (488, 'soggy'), + (489, 'usurp'), + (490, 'scald'), + (491, 'scorn'), + (492, 'leave'), + (493, 'twine'), + (494, 'sting'), + (495, 'bough'), + (496, 'marsh'), + (497, 'sloth'), + (498, 'dandy'), + (499, 'vigor'), + (500, 'howdy'), + (501, 'enjoy'), + (502, 'valid'), + (503, 'ionic'), + (504, 'equal'), + (505, 'unset'), + (506, 'floor'), + (507, 'catch'), + (508, 'spade'), + (509, 'stein'), + (510, 'exist'), + (511, 'quirk'), + (512, 'denim'), + (513, 'grove'), + (514, 'spiel'), + (515, 'mummy'), + (516, 'fault'), + (517, 'foggy'), + (518, 'flout'), + (519, 'carry'), + (520, 'sneak'), + (521, 'libel'), + (522, 'waltz'), + (523, 'aptly'), + (524, 'piney'), + (525, 'inept'), + (526, 'aloud'), + (527, 'photo'), + (528, 'dream'), + (529, 'stale'), + (530, 'vomit'), + (531, 'ombre'), + (532, 'fanny'), + (533, 'unite'), + (534, 'snarl'), + (535, 'baker'), + (536, 'there'), + (537, 'glyph'), + (538, 'pooch'), + (539, 'hippy'), + (540, 'spell'), + (541, 'folly'), + (542, 'louse'), + (543, 'gulch'), + (544, 'vault'), + (545, 'godly'), + (546, 'threw'), + (547, 'fleet'), + (548, 'grave'), + (549, 'inane'), + (550, 'shock'), + (551, 'crave'), + (552, 'spite'), + (553, 'valve'), + (554, 'skimp'), + (555, 'claim'), + (556, 'rainy'), + (557, 'musty'), + (558, 'pique'), + (559, 'daddy'), + (560, 'quasi'), + (561, 'arise'), + (562, 'aging'), + (563, 'valet'), + (564, 'opium'), + (565, 'avert'), + (566, 'stuck'), + (567, 'recut'), + (568, 'mulch'), + (569, 'genre'), + (570, 'plume'), + (571, 'rifle'), + (572, 'count'), + (573, 'incur'), + (574, 'total'), + (575, 'wrest'), + (576, 'mocha'), + (577, 'deter'), + (578, 'study'), + (579, 'lover'), + (580, 'safer'), + (581, 'rivet'), + (582, 'funny'), + (583, 'smoke'), + (584, 'mound'), + (585, 'undue'), + (586, 'sedan'), + (587, 'pagan'), + (588, 'swine'), + (589, 'guile'), + (590, 'gusty'), + (591, 'equip'), + (592, 'tough'), + (593, 'canoe'), + (594, 'chaos'), + (595, 'covet'), + (596, 'human'), + (597, 'udder'), + (598, 'lunch'), + (599, 'blast'), + (600, 'stray'), + (601, 'manga'), + (602, 'melee'), + (603, 'lefty'), + (604, 'quick'), + (605, 'paste'), + (606, 'given'), + (607, 'octet'), + (608, 'risen'), + (609, 'groan'), + (610, 'leaky'), + (611, 'grind'), + (612, 'carve'), + (613, 'loose'), + (614, 'sadly'), + (615, 'spilt'), + (616, 'apple'), + (617, 'slack'), + (618, 'honey'), + (619, 'final'), + (620, 'sheen'), + (621, 'eerie'), + (622, 'minty'), + (623, 'slick'), + (624, 'derby'), + (625, 'wharf'), + (626, 'spelt'), + (627, 'coach'), + (628, 'erupt'), + (629, 'singe'), + (630, 'price'), + (631, 'spawn'), + (632, 'fairy'), + (633, 'jiffy'), + (634, 'filmy'), + (635, 'stack'), + (636, 'chose'), + (637, 'sleep'), + (638, 'ardor'), + (639, 'nanny'), + (640, 'niece'), + (641, 'woozy'), + (642, 'handy'), + (643, 'grace'), + (644, 'ditto'), + (645, 'stank'), + (646, 'cream'), + (647, 'usual'), + (648, 'diode'), + (649, 'valor'), + (650, 'angle'), + (651, 'ninja'), + (652, 'muddy'), + (653, 'chase'), + (654, 'reply'), + (655, 'prone'), + (656, 'spoil'), + (657, 'heart'), + (658, 'shade'), + (659, 'diner'), + (660, 'arson'), + (661, 'onion'), + (662, 'sleet'), + (663, 'dowel'), + (664, 'couch'), + (665, 'palsy'), + (666, 'bowel'), + (667, 'smile'), + (668, 'evoke'), + (669, 'creek'), + (670, 'lance'), + (671, 'eagle'), + (672, 'idiot'), + (673, 'siren'), + (674, 'built'), + (675, 'embed'), + (676, 'award'), + (677, 'dross'), + (678, 'annul'), + (679, 'goody'), + (680, 'frown'), + (681, 'patio'), + (682, 'laden'), + (683, 'humid'), + (684, 'elite'), + (685, 'lymph'), + (686, 'edify'), + (687, 'might'), + (688, 'reset'), + (689, 'visit'), + (690, 'gusto'), + (691, 'purse'), + (692, 'vapor'), + (693, 'crock'), + (694, 'write'), + (695, 'sunny'), + (696, 'loath'), + (697, 'chaff'), + (698, 'slide'), + (699, 'queer'), + (700, 'venom'), + (701, 'stamp'), + (702, 'sorry'), + (703, 'still'), + (704, 'acorn'), + (705, 'aping'), + (706, 'pushy'), + (707, 'tamer'), + (708, 'hater'), + (709, 'mania'), + (710, 'awoke'), + (711, 'brawn'), + (712, 'swift'), + (713, 'exile'), + (714, 'birch'), + (715, 'lucky'), + (716, 'freer'), + (717, 'risky'), + (718, 'ghost'), + (719, 'plier'), + (720, 'lunar'), + (721, 'winch'), + (722, 'snare'), + (723, 'nurse'), + (724, 'house'), + (725, 'borax'), + (726, 'nicer'), + (727, 'lurch'), + (728, 'exalt'), + (729, 'about'), + (730, 'savvy'), + (731, 'toxin'), + (732, 'tunic'), + (733, 'pried'), + (734, 'inlay'), + (735, 'chump'), + (736, 'lanky'), + (737, 'cress'), + (738, 'eater'), + (739, 'elude'), + (740, 'cycle'), + (741, 'kitty'), + (742, 'boule'), + (743, 'moron'), + (744, 'tenet'), + (745, 'place'), + (746, 'lobby'), + (747, 'plush'), + (748, 'vigil'), + (749, 'index'), + (750, 'blink'), + (751, 'clung'), + (752, 'qualm'), + (753, 'croup'), + (754, 'clink'), + (755, 'juicy'), + (756, 'stage'), + (757, 'decay'), + (758, 'nerve'), + (759, 'flier'), + (760, 'shaft'), + (761, 'crook'), + (762, 'clean'), + (763, 'china'), + (764, 'ridge'), + (765, 'vowel'), + (766, 'gnome'), + (767, 'snuck'), + (768, 'icing'), + (769, 'spiny'), + (770, 'rigor'), + (771, 'snail'), + (772, 'flown'), + (773, 'rabid'), + (774, 'prose'), + (775, 'thank'), + (776, 'poppy'), + (777, 'budge'), + (778, 'fiber'), + (779, 'moldy'), + (780, 'dowdy'), + (781, 'kneel'), + (782, 'track'), + (783, 'caddy'), + (784, 'quell'), + (785, 'dumpy'), + (786, 'paler'), + (787, 'swore'), + (788, 'rebar'), + (789, 'scuba'), + (790, 'splat'), + (791, 'flyer'), + (792, 'horny'), + (793, 'mason'), + (794, 'doing'), + (795, 'ozone'), + (796, 'amply'), + (797, 'molar'), + (798, 'ovary'), + (799, 'beset'), + (800, 'queue'), + (801, 'cliff'), + (802, 'magic'), + (803, 'truce'), + (804, 'sport'), + (805, 'fritz'), + (806, 'edict'), + (807, 'twirl'), + (808, 'verse'), + (809, 'llama'), + (810, 'eaten'), + (811, 'range'), + (812, 'whisk'), + (813, 'hovel'), + (814, 'rehab'), + (815, 'macaw'), + (816, 'sigma'), + (817, 'spout'), + (818, 'verve'), + (819, 'sushi'), + (820, 'dying'), + (821, 'fetid'), + (822, 'brain'), + (823, 'buddy'), + (824, 'thump'), + (825, 'scion'), + (826, 'candy'), + (827, 'chord'), + (828, 'basin'), + (829, 'march'), + (830, 'crowd'), + (831, 'arbor'), + (832, 'gayly'), + (833, 'musky'), + (834, 'stain'), + (835, 'dally'), + (836, 'bless'), + (837, 'bravo'), + (838, 'stung'), + (839, 'title'), + (840, 'ruler'), + (841, 'kiosk'), + (842, 'blond'), + (843, 'ennui'), + (844, 'layer'), + (845, 'fluid'), + (846, 'tatty'), + (847, 'score'), + (848, 'cutie'), + (849, 'zebra'), + (850, 'barge'), + (851, 'matey'), + (852, 'bluer'), + (853, 'aider'), + (854, 'shook'), + (855, 'river'), + (856, 'privy'), + (857, 'betel'), + (858, 'frisk'), + (859, 'bongo'), + (860, 'begun'), + (861, 'azure'), + (862, 'weave'), + (863, 'genie'), + (864, 'sound'), + (865, 'glove'), + (866, 'braid'), + (867, 'scope'), + (868, 'wryly'), + (869, 'rover'), + (870, 'assay'), + (871, 'ocean'), + (872, 'bloom'), + (873, 'irate'), + (874, 'later'), + (875, 'woken'), + (876, 'silky'), + (877, 'wreck'), + (878, 'dwelt'), + (879, 'slate'), + (880, 'smack'), + (881, 'solid'), + (882, 'amaze'), + (883, 'hazel'), + (884, 'wrist'), + (885, 'jolly'), + (886, 'globe'), + (887, 'flint'), + (888, 'rouse'), + (889, 'civil'), + (890, 'vista'), + (891, 'relax'), + (892, 'cover'), + (893, 'alive'), + (894, 'beech'), + (895, 'jetty'), + (896, 'bliss'), + (897, 'vocal'), + (898, 'often'), + (899, 'dolly'), + (900, 'eight'), + (901, 'joker'), + (902, 'since'), + (903, 'event'), + (904, 'ensue'), + (905, 'shunt'), + (906, 'diver'), + (907, 'poser'), + (908, 'worst'), + (909, 'sweep'), + (910, 'alley'), + (911, 'creed'), + (912, 'anime'), + (913, 'leafy'), + (914, 'bosom'), + (915, 'dunce'), + (916, 'stare'), + (917, 'pudgy'), + (918, 'waive'), + (919, 'choir'), + (920, 'stood'), + (921, 'spoke'), + (922, 'outgo'), + (923, 'delay'), + (924, 'bilge'), + (925, 'ideal'), + (926, 'clasp'), + (927, 'seize'), + (928, 'hotly'), + (929, 'laugh'), + (930, 'sieve'), + (931, 'block'), + (932, 'meant'), + (933, 'grape'), + (934, 'noose'), + (935, 'hardy'), + (936, 'shied'), + (937, 'drawl'), + (938, 'daisy'), + (939, 'putty'), + (940, 'strut'), + (941, 'burnt'), + (942, 'tulip'), + (943, 'crick'), + (944, 'idyll'), + (945, 'vixen'), + (946, 'furor'), + (947, 'geeky'), + (948, 'cough'), + (949, 'naive'), + (950, 'shoal'), + (951, 'stork'), + (952, 'bathe'), + (953, 'aunty'), + (954, 'check'), + (955, 'prime'), + (956, 'brass'), + (957, 'outer'), + (958, 'furry'), + (959, 'razor'), + (960, 'elect'), + (961, 'evict'), + (962, 'imply'), + (963, 'demur'), + (964, 'quota'), + (965, 'haven'), + (966, 'cavil'), + (967, 'swear'), + (968, 'crump'), + (969, 'dough'), + (970, 'gavel'), + (971, 'wagon'), + (972, 'salon'), + (973, 'nudge'), + (974, 'harem'), + (975, 'pitch'), + (976, 'sworn'), + (977, 'pupil'), + (978, 'excel'), + (979, 'stony'), + (980, 'cabin'), + (981, 'unzip'), + (982, 'queen'), + (983, 'trout'), + (984, 'polyp'), + (985, 'earth'), + (986, 'storm'), + (987, 'until'), + (988, 'taper'), + (989, 'enter'), + (990, 'child'), + (991, 'adopt'), + (992, 'minor'), + (993, 'fatty'), + (994, 'husky'), + (995, 'brave'), + (996, 'filet'), + (997, 'slime'), + (998, 'glint'), + (999, 'tread'), + (1000, 'steal'), + (1001, 'regal'), + (1002, 'guest'), + (1003, 'every'), + (1004, 'murky'), + (1005, 'share'), + (1006, 'spore'), + (1007, 'hoist'), + (1008, 'buxom'), + (1009, 'inner'), + (1010, 'otter'), + (1011, 'dimly'), + (1012, 'level'), + (1013, 'sumac'), + (1014, 'donut'), + (1015, 'stilt'), + (1016, 'arena'), + (1017, 'sheet'), + (1018, 'scrub'), + (1019, 'fancy'), + (1020, 'slimy'), + (1021, 'pearl'), + (1022, 'silly'), + (1023, 'porch'), + (1024, 'dingo'), + (1025, 'sepia'), + (1026, 'amble'), + (1027, 'shady'), + (1028, 'bread'), + (1029, 'friar'), + (1030, 'reign'), + (1031, 'dairy'), + (1032, 'quill'), + (1033, 'cross'), + (1034, 'brood'), + (1035, 'tuber'), + (1036, 'shear'), + (1037, 'posit'), + (1038, 'blank'), + (1039, 'villa'), + (1040, 'shank'), + (1041, 'piggy'), + (1042, 'freak'), + (1043, 'which'), + (1044, 'among'), + (1045, 'fecal'), + (1046, 'shell'), + (1047, 'would'), + (1048, 'algae'), + (1049, 'large'), + (1050, 'rabbi'), + (1051, 'agony'), + (1052, 'amuse'), + (1053, 'bushy'), + (1054, 'copse'), + (1055, 'swoon'), + (1056, 'knife'), + (1057, 'pouch'), + (1058, 'ascot'), + (1059, 'plane'), + (1060, 'crown'), + (1061, 'urban'), + (1062, 'snide'), + (1063, 'relay'), + (1064, 'abide'), + (1065, 'viola'), + (1066, 'rajah'), + (1067, 'straw'), + (1068, 'dilly'), + (1069, 'crash'), + (1070, 'amass'), + (1071, 'third'), + (1072, 'trick'), + (1073, 'tutor'), + (1074, 'woody'), + (1075, 'blurb'), + (1076, 'grief'), + (1077, 'disco'), + (1078, 'where'), + (1079, 'sassy'), + (1080, 'beach'), + (1081, 'sauna'), + (1082, 'comic'), + (1083, 'clued'), + (1084, 'creep'), + (1085, 'caste'), + (1086, 'graze'), + (1087, 'snuff'), + (1088, 'frock'), + (1089, 'gonad'), + (1090, 'drunk'), + (1091, 'prong'), + (1092, 'lurid'), + (1093, 'steel'), + (1094, 'halve'), + (1095, 'buyer'), + (1096, 'vinyl'), + (1097, 'utile'), + (1098, 'smell'), + (1099, 'adage'), + (1100, 'worry'), + (1101, 'tasty'), + (1102, 'local'), + (1103, 'trade'), + (1104, 'finch'), + (1105, 'ashen'), + (1106, 'modal'), + (1107, 'gaunt'), + (1108, 'clove'), + (1109, 'enact'), + (1110, 'adorn'), + (1111, 'roast'), + (1112, 'speck'), + (1113, 'sheik'), + (1114, 'missy'), + (1115, 'grunt'), + (1116, 'snoop'), + (1117, 'party'), + (1118, 'touch'), + (1119, 'mafia'), + (1120, 'emcee'), + (1121, 'array'), + (1122, 'south'), + (1123, 'vapid'), + (1124, 'jelly'), + (1125, 'skulk'), + (1126, 'angst'), + (1127, 'tubal'), + (1128, 'lower'), + (1129, 'crest'), + (1130, 'sweat'), + (1131, 'cyber'), + (1132, 'adore'), + (1133, 'tardy'), + (1134, 'swami'), + (1135, 'notch'), + (1136, 'groom'), + (1137, 'roach'), + (1138, 'hitch'), + (1139, 'young'), + (1140, 'align'), + (1141, 'ready'), + (1142, 'frond'), + (1143, 'strap'), + (1144, 'puree'), + (1145, 'realm'), + (1146, 'venue'), + (1147, 'swarm'), + (1148, 'offer'), + (1149, 'seven'), + (1150, 'dryer'), + (1151, 'diary'), + (1152, 'dryly'), + (1153, 'drank'), + (1154, 'acrid'), + (1155, 'heady'), + (1156, 'theta'), + (1157, 'junto'), + (1158, 'pixie'), + (1159, 'quoth'), + (1160, 'bonus'), + (1161, 'shalt'), + (1162, 'penne'), + (1163, 'amend'), + (1164, 'datum'), + (1165, 'build'), + (1166, 'piano'), + (1167, 'shelf'), + (1168, 'lodge'), + (1169, 'suing'), + (1170, 'rearm'), + (1171, 'coral'), + (1172, 'ramen'), + (1173, 'worth'), + (1174, 'psalm'), + (1175, 'infer'), + (1176, 'overt'), + (1177, 'mayor'), + (1178, 'ovoid'), + (1179, 'glide'), + (1180, 'usage'), + (1181, 'poise'), + (1182, 'randy'), + (1183, 'chuck'), + (1184, 'prank'), + (1185, 'fishy'), + (1186, 'tooth'), + (1187, 'ether'), + (1188, 'drove'), + (1189, 'idler'), + (1190, 'swath'), + (1191, 'stint'), + (1192, 'while'), + (1193, 'begat'), + (1194, 'apply'), + (1195, 'slang'), + (1196, 'tarot'), + (1197, 'radar'), + (1198, 'credo'), + (1199, 'aware'), + (1200, 'canon'), + (1201, 'shift'), + (1202, 'timer'), + (1203, 'bylaw'), + (1204, 'serum'), + (1205, 'three'), + (1206, 'steak'), + (1207, 'iliac'), + (1208, 'shirk'), + (1209, 'blunt'), + (1210, 'puppy'), + (1211, 'penal'), + (1212, 'joist'), + (1213, 'bunny'), + (1214, 'shape'), + (1215, 'beget'), + (1216, 'wheel'), + (1217, 'adept'), + (1218, 'stunt'), + (1219, 'stole'), + (1220, 'topaz'), + (1221, 'chore'), + (1222, 'fluke'), + (1223, 'afoot'), + (1224, 'bloat'), + (1225, 'bully'), + (1226, 'dense'), + (1227, 'caper'), + (1228, 'sneer'), + (1229, 'boxer'), + (1230, 'jumbo'), + (1231, 'lunge'), + (1232, 'space'), + (1233, 'avail'), + (1234, 'short'), + (1235, 'slurp'), + (1236, 'loyal'), + (1237, 'flirt'), + (1238, 'pizza'), + (1239, 'conch'), + (1240, 'tempo'), + (1241, 'droop'), + (1242, 'plate'), + (1243, 'bible'), + (1244, 'plunk'), + (1245, 'afoul'), + (1246, 'savoy'), + (1247, 'steep'), + (1248, 'agile'), + (1249, 'stake'), + (1250, 'dwell'), + (1251, 'knave'), + (1252, 'beard'), + (1253, 'arose'), + (1254, 'motif'), + (1255, 'smash'), + (1256, 'broil'), + (1257, 'glare'), + (1258, 'shove'), + (1259, 'baggy'), + (1260, 'mammy'), + (1261, 'swamp'), + (1262, 'along'), + (1263, 'rugby'), + (1264, 'wager'), + (1265, 'quack'), + (1266, 'squat'), + (1267, 'snaky'), + (1268, 'debit'), + (1269, 'mange'), + (1270, 'skate'), + (1271, 'ninth'), + (1272, 'joust'), + (1273, 'tramp'), + (1274, 'spurn'), + (1275, 'medal'), + (1276, 'micro'), + (1277, 'rebel'), + (1278, 'flank'), + (1279, 'learn'), + (1280, 'nadir'), + (1281, 'maple'), + (1282, 'comfy'), + (1283, 'remit'), + (1284, 'gruff'), + (1285, 'ester'), + (1286, 'least'), + (1287, 'mogul'), + (1288, 'fetch'), + (1289, 'cause'), + (1290, 'oaken'), + (1291, 'aglow'), + (1292, 'meaty'), + (1293, 'gaffe'), + (1294, 'shyly'), + (1295, 'racer'), + (1296, 'prowl'), + (1297, 'thief'), + (1298, 'stern'), + (1299, 'poesy'), + (1300, 'rocky'), + (1301, 'tweet'), + (1302, 'waist'), + (1303, 'spire'), + (1304, 'grope'), + (1305, 'havoc'), + (1306, 'patsy'), + (1307, 'truly'), + (1308, 'forty'), + (1309, 'deity'), + (1310, 'uncle'), + (1311, 'swish'), + (1312, 'giver'), + (1313, 'preen'), + (1314, 'bevel'), + (1315, 'lemur'), + (1316, 'draft'), + (1317, 'slope'), + (1318, 'annoy'), + (1319, 'lingo'), + (1320, 'bleak'), + (1321, 'ditty'), + (1322, 'curly'), + (1323, 'cedar'), + (1324, 'dirge'), + (1325, 'grown'), + (1326, 'horde'), + (1327, 'drool'), + (1328, 'shuck'), + (1329, 'crypt'), + (1330, 'cumin'), + (1331, 'stock'), + (1332, 'gravy'), + (1333, 'locus'), + (1334, 'wider'), + (1335, 'breed'), + (1336, 'quite'), + (1337, 'chafe'), + (1338, 'cache'), + (1339, 'blimp'), + (1340, 'deign'), + (1341, 'fiend'), + (1342, 'logic'), + (1343, 'cheap'), + (1344, 'elide'), + (1345, 'rigid'), + (1346, 'false'), + (1347, 'renal'), + (1348, 'pence'), + (1349, 'rowdy'), + (1350, 'shoot'), + (1351, 'blaze'), + (1352, 'envoy'), + (1353, 'posse'), + (1354, 'brief'), + (1355, 'never'), + (1356, 'abort'), + (1357, 'mouse'), + (1358, 'mucky'), + (1359, 'sulky'), + (1360, 'fiery'), + (1361, 'media'), + (1362, 'trunk'), + (1363, 'yeast'), + (1364, 'clear'), + (1365, 'skunk'), + (1366, 'scalp'), + (1367, 'bitty'), + (1368, 'cider'), + (1369, 'koala'), + (1370, 'duvet'), + (1371, 'segue'), + (1372, 'creme'), + (1373, 'super'), + (1374, 'grill'), + (1375, 'after'), + (1376, 'owner'), + (1377, 'ember'), + (1378, 'reach'), + (1379, 'nobly'), + (1380, 'empty'), + (1381, 'speed'), + (1382, 'gipsy'), + (1383, 'recur'), + (1384, 'smock'), + (1385, 'dread'), + (1386, 'merge'), + (1387, 'burst'), + (1388, 'kappa'), + (1389, 'amity'), + (1390, 'shaky'), + (1391, 'hover'), + (1392, 'carol'), + (1393, 'snort'), + (1394, 'synod'), + (1395, 'faint'), + (1396, 'haunt'), + (1397, 'flour'), + (1398, 'chair'), + (1399, 'detox'), + (1400, 'shrew'), + (1401, 'tense'), + (1402, 'plied'), + (1403, 'quark'), + (1404, 'burly'), + (1405, 'novel'), + (1406, 'waxen'), + (1407, 'stoic'), + (1408, 'jerky'), + (1409, 'blitz'), + (1410, 'beefy'), + (1411, 'lyric'), + (1412, 'hussy'), + (1413, 'towel'), + (1414, 'quilt'), + (1415, 'below'), + (1416, 'bingo'), + (1417, 'wispy'), + (1418, 'brash'), + (1419, 'scone'), + (1420, 'toast'), + (1421, 'easel'), + (1422, 'saucy'), + (1423, 'value'), + (1424, 'spice'), + (1425, 'honor'), + (1426, 'route'), + (1427, 'sharp'), + (1428, 'bawdy'), + (1429, 'radii'), + (1430, 'skull'), + (1431, 'phony'), + (1432, 'issue'), + (1433, 'lager'), + (1434, 'swell'), + (1435, 'urine'), + (1436, 'gassy'), + (1437, 'trial'), + (1438, 'flora'), + (1439, 'upper'), + (1440, 'latch'), + (1441, 'wight'), + (1442, 'brick'), + (1443, 'retry'), + (1444, 'holly'), + (1445, 'decal'), + (1446, 'grass'), + (1447, 'shack'), + (1448, 'dogma'), + (1449, 'mover'), + (1450, 'defer'), + (1451, 'sober'), + (1452, 'optic'), + (1453, 'crier'), + (1454, 'vying'), + (1455, 'nomad'), + (1456, 'flute'), + (1457, 'hippo'), + (1458, 'shark'), + (1459, 'drier'), + (1460, 'obese'), + (1461, 'bugle'), + (1462, 'tawny'), + (1463, 'chalk'), + (1464, 'feast'), + (1465, 'ruddy'), + (1466, 'pedal'), + (1467, 'scarf'), + (1468, 'cruel'), + (1469, 'bleat'), + (1470, 'tidal'), + (1471, 'slush'), + (1472, 'semen'), + (1473, 'windy'), + (1474, 'dusty'), + (1475, 'sally'), + (1476, 'igloo'), + (1477, 'nerdy'), + (1478, 'jewel'), + (1479, 'shone'), + (1480, 'whale'), + (1481, 'hymen'), + (1482, 'abuse'), + (1483, 'fugue'), + (1484, 'elbow'), + (1485, 'crumb'), + (1486, 'pansy'), + (1487, 'welsh'), + (1488, 'syrup'), + (1489, 'terse'), + (1490, 'suave'), + (1491, 'gamut'), + (1492, 'swung'), + (1493, 'drake'), + (1494, 'freed'), + (1495, 'afire'), + (1496, 'shirt'), + (1497, 'grout'), + (1498, 'oddly'), + (1499, 'tithe'), + (1500, 'plaid'), + (1501, 'dummy'), + (1502, 'broom'), + (1503, 'blind'), + (1504, 'torch'), + (1505, 'enemy'), + (1506, 'again'), + (1507, 'tying'), + (1508, 'pesky'), + (1509, 'alter'), + (1510, 'gazer'), + (1511, 'noble'), + (1512, 'ethos'), + (1513, 'bride'), + (1514, 'extol'), + (1515, 'decor'), + (1516, 'hobby'), + (1517, 'beast'), + (1518, 'idiom'), + (1519, 'utter'), + (1520, 'these'), + (1521, 'sixth'), + (1522, 'alarm'), + (1523, 'erase'), + (1524, 'elegy'), + (1525, 'spunk'), + (1526, 'piper'), + (1527, 'scaly'), + (1528, 'scold'), + (1529, 'hefty'), + (1530, 'chick'), + (1531, 'sooty'), + (1532, 'canal'), + (1533, 'whiny'), + (1534, 'slash'), + (1535, 'quake'), + (1536, 'joint'), + (1537, 'swept'), + (1538, 'prude'), + (1539, 'heavy'), + (1540, 'wield'), + (1541, 'femme'), + (1542, 'lasso'), + (1543, 'maize'), + (1544, 'shale'), + (1545, 'screw'), + (1546, 'spree'), + (1547, 'smoky'), + (1548, 'whiff'), + (1549, 'scent'), + (1550, 'glade'), + (1551, 'spent'), + (1552, 'prism'), + (1553, 'stoke'), + (1554, 'riper'), + (1555, 'orbit'), + (1556, 'cocoa'), + (1557, 'guilt'), + (1558, 'humus'), + (1559, 'shush'), + (1560, 'table'), + (1561, 'smirk'), + (1562, 'wrong'), + (1563, 'noisy'), + (1564, 'alert'), + (1565, 'shiny'), + (1566, 'elate'), + (1567, 'resin'), + (1568, 'whole'), + (1569, 'hunch'), + (1570, 'pixel'), + (1571, 'polar'), + (1572, 'hotel'), + (1573, 'sword'), + (1574, 'cleat'), + (1575, 'mango'), + (1576, 'rumba'), + (1577, 'puffy'), + (1578, 'filly'), + (1579, 'billy'), + (1580, 'leash'), + (1581, 'clout'), + (1582, 'dance'), + (1583, 'ovate'), + (1584, 'facet'), + (1585, 'chili'), + (1586, 'paint'), + (1587, 'liner'), + (1588, 'curio'), + (1589, 'salty'), + (1590, 'audio'), + (1591, 'snake'), + (1592, 'fable'), + (1593, 'cloak'), + (1594, 'navel'), + (1595, 'spurt'), + (1596, 'pesto'), + (1597, 'balmy'), + (1598, 'flash'), + (1599, 'unwed'), + (1600, 'early'), + (1601, 'churn'), + (1602, 'weedy'), + (1603, 'stump'), + (1604, 'lease'), + (1605, 'witty'), + (1606, 'wimpy'), + (1607, 'spoof'), + (1608, 'saner'), + (1609, 'blend'), + (1610, 'salsa'), + (1611, 'thick'), + (1612, 'warty'), + (1613, 'manic'), + (1614, 'blare'), + (1615, 'squib'), + (1616, 'spoon'), + (1617, 'probe'), + (1618, 'crepe'), + (1619, 'knack'), + (1620, 'force'), + (1621, 'debut'), + (1622, 'order'), + (1623, 'haste'), + (1624, 'teeth'), + (1625, 'agent'), + (1626, 'widen'), + (1627, 'icily'), + (1628, 'slice'), + (1629, 'ingot'), + (1630, 'clash'), + (1631, 'juror'), + (1632, 'blood'), + (1633, 'abode'), + (1634, 'throw'), + (1635, 'unity'), + (1636, 'pivot'), + (1637, 'slept'), + (1638, 'troop'), + (1639, 'spare'), + (1640, 'sewer'), + (1641, 'parse'), + (1642, 'morph'), + (1643, 'cacti'), + (1644, 'tacky'), + (1645, 'spool'), + (1646, 'demon'), + (1647, 'moody'), + (1648, 'annex'), + (1649, 'begin'), + (1650, 'fuzzy'), + (1651, 'patch'), + (1652, 'water'), + (1653, 'lumpy'), + (1654, 'admin'), + (1655, 'omega'), + (1656, 'limit'), + (1657, 'tabby'), + (1658, 'macho'), + (1659, 'aisle'), + (1660, 'skiff'), + (1661, 'basis'), + (1662, 'plank'), + (1663, 'verge'), + (1664, 'botch'), + (1665, 'crawl'), + (1666, 'lousy'), + (1667, 'slain'), + (1668, 'cubic'), + (1669, 'raise'), + (1670, 'wrack'), + (1671, 'guide'), + (1672, 'foist'), + (1673, 'cameo'), + (1674, 'under'), + (1675, 'actor'), + (1676, 'revue'), + (1677, 'fraud'), + (1678, 'harpy'), + (1679, 'scoop'), + (1680, 'climb'), + (1681, 'refer'), + (1682, 'olden'), + (1683, 'clerk'), + (1684, 'debar'), + (1685, 'tally'), + (1686, 'ethic'), + (1687, 'cairn'), + (1688, 'tulle'), + (1689, 'ghoul'), + (1690, 'hilly'), + (1691, 'crude'), + (1692, 'apart'), + (1693, 'scale'), + (1694, 'older'), + (1695, 'plain'), + (1696, 'sperm'), + (1697, 'briny'), + (1698, 'abbot'), + (1699, 'rerun'), + (1700, 'quest'), + (1701, 'crisp'), + (1702, 'bound'), + (1703, 'befit'), + (1704, 'drawn'), + (1705, 'suite'), + (1706, 'itchy'), + (1707, 'cheer'), + (1708, 'bagel'), + (1709, 'guess'), + (1710, 'broad'), + (1711, 'axiom'), + (1712, 'chard'), + (1713, 'caput'), + (1714, 'leant'), + (1715, 'harsh'), + (1716, 'curse'), + (1717, 'proud'), + (1718, 'swing'), + (1719, 'opine'), + (1720, 'taste'), + (1721, 'lupus'), + (1722, 'gumbo'), + (1723, 'miner'), + (1724, 'green'), + (1725, 'chasm'), + (1726, 'lipid'), + (1727, 'topic'), + (1728, 'armor'), + (1729, 'brush'), + (1730, 'crane'), + (1731, 'mural'), + (1732, 'abled'), + (1733, 'habit'), + (1734, 'bossy'), + (1735, 'maker'), + (1736, 'dusky'), + (1737, 'dizzy'), + (1738, 'lithe'), + (1739, 'brook'), + (1740, 'jazzy'), + (1741, 'fifty'), + (1742, 'sense'), + (1743, 'giant'), + (1744, 'surly'), + (1745, 'legal'), + (1746, 'fatal'), + (1747, 'flunk'), + (1748, 'began'), + (1749, 'prune'), + (1750, 'small'), + (1751, 'slant'), + (1752, 'scoff'), + (1753, 'torus'), + (1754, 'ninny'), + (1755, 'covey'), + (1756, 'viper'), + (1757, 'taken'), + (1758, 'moral'), + (1759, 'vogue'), + (1760, 'owing'), + (1761, 'token'), + (1762, 'entry'), + (1763, 'booth'), + (1764, 'voter'), + (1765, 'chide'), + (1766, 'elfin'), + (1767, 'ebony'), + (1768, 'neigh'), + (1769, 'minim'), + (1770, 'melon'), + (1771, 'kneed'), + (1772, 'decoy'), + (1773, 'voila'), + (1774, 'ankle'), + (1775, 'arrow'), + (1776, 'mushy'), + (1777, 'tribe'), + (1778, 'cease'), + (1779, 'eager'), + (1780, 'birth'), + (1781, 'graph'), + (1782, 'odder'), + (1783, 'terra'), + (1784, 'weird'), + (1785, 'tried'), + (1786, 'clack'), + (1787, 'color'), + (1788, 'rough'), + (1789, 'weigh'), + (1790, 'uncut'), + (1791, 'ladle'), + (1792, 'strip'), + (1793, 'craft'), + (1794, 'minus'), + (1795, 'dicey'), + (1796, 'titan'), + (1797, 'lucid'), + (1798, 'vicar'), + (1799, 'dress'), + (1800, 'ditch'), + (1801, 'gypsy'), + (1802, 'pasta'), + (1803, 'taffy'), + (1804, 'flame'), + (1805, 'swoop'), + (1806, 'aloof'), + (1807, 'sight'), + (1808, 'broke'), + (1809, 'teary'), + (1810, 'chart'), + (1811, 'sixty'), + (1812, 'wordy'), + (1813, 'sheer'), + (1814, 'leper'), + (1815, 'nosey'), + (1816, 'bulge'), + (1817, 'savor'), + (1818, 'clamp'), + (1819, 'funky'), + (1820, 'foamy'), + (1821, 'toxic'), + (1822, 'brand'), + (1823, 'plumb'), + (1824, 'dingy'), + (1825, 'butte'), + (1826, 'drill'), + (1827, 'tripe'), + (1828, 'bicep'), + (1829, 'tenor'), + (1830, 'krill'), + (1831, 'worse'), + (1832, 'drama'), + (1833, 'hyena'), + (1834, 'think'), + (1835, 'ratio'), + (1836, 'cobra'), + (1837, 'basil'), + (1838, 'scrum'), + (1839, 'bused'), + (1840, 'phone'), + (1841, 'court'), + (1842, 'camel'), + (1843, 'proof'), + (1844, 'heard'), + (1845, 'angel'), + (1846, 'petal'), + (1847, 'pouty'), + (1848, 'throb'), + (1849, 'maybe'), + (1850, 'fetal'), + (1851, 'sprig'), + (1852, 'spine'), + (1853, 'shout'), + (1854, 'cadet'), + (1855, 'macro'), + (1856, 'dodgy'), + (1857, 'satyr'), + (1858, 'rarer'), + (1859, 'binge'), + (1860, 'trend'), + (1861, 'nutty'), + (1862, 'leapt'), + (1863, 'amiss'), + (1864, 'split'), + (1865, 'myrrh'), + (1866, 'width'), + (1867, 'sonar'), + (1868, 'tower'), + (1869, 'baron'), + (1870, 'fever'), + (1871, 'waver'), + (1872, 'spark'), + (1873, 'belie'), + (1874, 'sloop'), + (1875, 'expel'), + (1876, 'smote'), + (1877, 'baler'), + (1878, 'above'), + (1879, 'north'), + (1880, 'wafer'), + (1881, 'scant'), + (1882, 'frill'), + (1883, 'awash'), + (1884, 'snack'), + (1885, 'scowl'), + (1886, 'frail'), + (1887, 'drift'), + (1888, 'limbo'), + (1889, 'fence'), + (1890, 'motel'), + (1891, 'ounce'), + (1892, 'wreak'), + (1893, 'revel'), + (1894, 'talon'), + (1895, 'prior'), + (1896, 'knelt'), + (1897, 'cello'), + (1898, 'flake'), + (1899, 'debug'), + (1900, 'anode'), + (1901, 'crime'), + (1902, 'salve'), + (1903, 'scout'), + (1904, 'imbue'), + (1905, 'pinky'), + (1906, 'stave'), + (1907, 'vague'), + (1908, 'chock'), + (1909, 'fight'), + (1910, 'video'), + (1911, 'stone'), + (1912, 'teach'), + (1913, 'cleft'), + (1914, 'frost'), + (1915, 'prawn'), + (1916, 'booty'), + (1917, 'twist'), + (1918, 'apnea'), + (1919, 'stiff'), + (1920, 'plaza'), + (1921, 'ledge'), + (1922, 'tweak'), + (1923, 'board'), + (1924, 'grant'), + (1925, 'medic'), + (1926, 'bacon'), + (1927, 'cable'), + (1928, 'brawl'), + (1929, 'slunk'), + (1930, 'raspy'), + (1931, 'forum'), + (1932, 'drone'), + (1933, 'women'), + (1934, 'mucus'), + (1935, 'boast'), + (1936, 'toddy'), + (1937, 'coven'), + (1938, 'tumor'), + (1939, 'truer'), + (1940, 'wrath'), + (1941, 'stall'), + (1942, 'steam'), + (1943, 'axial'), + (1944, 'purer'), + (1945, 'daily'), + (1946, 'trail'), + (1947, 'niche'), + (1948, 'mealy'), + (1949, 'juice'), + (1950, 'nylon'), + (1951, 'plump'), + (1952, 'merry'), + (1953, 'flail'), + (1954, 'papal'), + (1955, 'wheat'), + (1956, 'berry'), + (1957, 'cower'), + (1958, 'erect'), + (1959, 'brute'), + (1960, 'leggy'), + (1961, 'snipe'), + (1962, 'sinew'), + (1963, 'skier'), + (1964, 'penny'), + (1965, 'jumpy'), + (1966, 'rally'), + (1967, 'umbra'), + (1968, 'scary'), + (1969, 'modem'), + (1970, 'gross'), + (1971, 'avian'), + (1972, 'greed'), + (1973, 'satin'), + (1974, 'tonic'), + (1975, 'parka'), + (1976, 'sniff'), + (1977, 'livid'), + (1978, 'stark'), + (1979, 'trump'), + (1980, 'giddy'), + (1981, 'reuse'), + (1982, 'taboo'), + (1983, 'avoid'), + (1984, 'quote'), + (1985, 'devil'), + (1986, 'liken'), + (1987, 'gloss'), + (1988, 'gayer'), + (1989, 'beret'), + (1990, 'noise'), + (1991, 'gland'), + (1992, 'dealt'), + (1993, 'sling'), + (1994, 'rumor'), + (1995, 'opera'), + (1996, 'thigh'), + (1997, 'tonga'), + (1998, 'flare'), + (1999, 'wound'), + (2000, 'white'), + (2001, 'bulky'), + (2002, 'etude'), + (2003, 'horse'), + (2004, 'circa'), + (2005, 'paddy'), + (2006, 'inbox'), + (2007, 'fizzy'), + (2008, 'grain'), + (2009, 'exert'), + (2010, 'surge'), + (2011, 'gleam'), + (2012, 'belle'), + (2013, 'salvo'), + (2014, 'crush'), + (2015, 'fruit'), + (2016, 'sappy'), + (2017, 'taker'), + (2018, 'tract'), + (2019, 'ovine'), + (2020, 'spiky'), + (2021, 'frank'), + (2022, 'reedy'), + (2023, 'filth'), + (2024, 'spasm'), + (2025, 'heave'), + (2026, 'mambo'), + (2027, 'right'), + (2028, 'clank'), + (2029, 'trust'), + (2030, 'lumen'), + (2031, 'borne'), + (2032, 'spook'), + (2033, 'sauce'), + (2034, 'amber'), + (2035, 'lathe'), + (2036, 'carat'), + (2037, 'corer'), + (2038, 'dirty'), + (2039, 'slyly'), + (2040, 'affix'), + (2041, 'alloy'), + (2042, 'taint'), + (2043, 'sheep'), + (2044, 'kinky'), + (2045, 'wooly'), + (2046, 'mauve'), + (2047, 'flung'), + (2048, 'yacht'), + (2049, 'fried'), + (2050, 'quail'), + (2051, 'brunt'), + (2052, 'grimy'), + (2053, 'curvy'), + (2054, 'cagey'), + (2055, 'rinse'), + (2056, 'deuce'), + (2057, 'state'), + (2058, 'grasp'), + (2059, 'milky'), + (2060, 'bison'), + (2061, 'graft'), + (2062, 'sandy'), + (2063, 'baste'), + (2064, 'flask'), + (2065, 'hedge'), + (2066, 'girly'), + (2067, 'swash'), + (2068, 'boney'), + (2069, 'coupe'), + (2070, 'endow'), + (2071, 'abhor'), + (2072, 'welch'), + (2073, 'blade'), + (2074, 'tight'), + (2075, 'geese'), + (2076, 'miser'), + (2077, 'mirth'), + (2078, 'cloud'), + (2079, 'cabal'), + (2080, 'leech'), + (2081, 'close'), + (2082, 'tenth'), + (2083, 'pecan'), + (2084, 'droit'), + (2085, 'grail'), + (2086, 'clone'), + (2087, 'guise'), + (2088, 'ralph'), + (2089, 'tango'), + (2090, 'biddy'), + (2091, 'smith'), + (2092, 'mower'), + (2093, 'payee'), + (2094, 'serif'), + (2095, 'drape'), + (2096, 'fifth'), + (2097, 'spank'), + (2098, 'glaze'), + (2099, 'allot'), + (2100, 'truck'), + (2101, 'kayak'), + (2102, 'virus'), + (2103, 'testy'), + (2104, 'tepee'), + (2105, 'fully'), + (2106, 'zonal'), + (2107, 'metro'), + (2108, 'curry'), + (2109, 'grand'), + (2110, 'banjo'), + (2111, 'axion'), + (2112, 'bezel'), + (2113, 'occur'), + (2114, 'chain'), + (2115, 'nasal'), + (2116, 'gooey'), + (2117, 'filer'), + (2118, 'brace'), + (2119, 'allay'), + (2120, 'pubic'), + (2121, 'raven'), + (2122, 'plead'), + (2123, 'gnash'), + (2124, 'flaky'), + (2125, 'munch'), + (2126, 'dully'), + (2127, 'eking'), + (2128, 'thing'), + (2129, 'slink'), + (2130, 'hurry'), + (2131, 'theft'), + (2132, 'shorn'), + (2133, 'pygmy'), + (2134, 'ranch'), + (2135, 'wring'), + (2136, 'lemon'), + (2137, 'shore'), + (2138, 'mamma'), + (2139, 'froze'), + (2140, 'newer'), + (2141, 'style'), + (2142, 'moose'), + (2143, 'antic'), + (2144, 'drown'), + (2145, 'vegan'), + (2146, 'chess'), + (2147, 'guppy'), + (2148, 'union'), + (2149, 'lever'), + (2150, 'lorry'), + (2151, 'image'), + (2152, 'cabby'), + (2153, 'druid'), + (2154, 'exact'), + (2155, 'truth'), + (2156, 'dopey'), + (2157, 'spear'), + (2158, 'cried'), + (2159, 'chime'), + (2160, 'crony'), + (2161, 'stunk'), + (2162, 'timid'), + (2163, 'batch'), + (2164, 'gauge'), + (2165, 'rotor'), + (2166, 'crack'), + (2167, 'curve'), + (2168, 'latte'), + (2169, 'witch'), + (2170, 'bunch'), + (2171, 'repel'), + (2172, 'anvil'), + (2173, 'soapy'), + (2174, 'meter'), + (2175, 'broth'), + (2176, 'madly'), + (2177, 'dried'), + (2178, 'scene'), + (2179, 'known'), + (2180, 'magma'), + (2181, 'roost'), + (2182, 'woman'), + (2183, 'thong'), + (2184, 'punch'), + (2185, 'pasty'), + (2186, 'downy'), + (2187, 'knead'), + (2188, 'whirl'), + (2189, 'rapid'), + (2190, 'clang'), + (2191, 'anger'), + (2192, 'drive'), + (2193, 'goofy'), + (2194, 'email'), + (2195, 'music'), + (2196, 'stuff'), + (2197, 'bleep'), + (2198, 'rider'), + (2199, 'mecca'), + (2200, 'folio'), + (2201, 'setup'), + (2202, 'verso'), + (2203, 'quash'), + (2204, 'fauna'), + (2205, 'gummy'), + (2206, 'happy'), + (2207, 'newly'), + (2208, 'fussy'), + (2209, 'relic'), + (2210, 'guava'), + (2211, 'ratty'), + (2212, 'fudge'), + (2213, 'femur'), + (2214, 'chirp'), + (2215, 'forte'), + (2216, 'alibi'), + (2217, 'whine'), + (2218, 'petty'), + (2219, 'golly'), + (2220, 'plait'), + (2221, 'fleck'), + (2222, 'felon'), + (2223, 'gourd'), + (2224, 'brown'), + (2225, 'thrum'), + (2226, 'ficus'), + (2227, 'stash'), + (2228, 'decry'), + (2229, 'wiser'), + (2230, 'junta'), + (2231, 'visor'), + (2232, 'daunt'), + (2233, 'scree'), + (2234, 'impel'), + (2235, 'await'), + (2236, 'press'), + (2237, 'whose'), + (2238, 'turbo'), + (2239, 'stoop'), + (2240, 'speak'), + (2241, 'mangy'), + (2242, 'eying'), + (2243, 'inlet'), + (2244, 'crone'), + (2245, 'pulse'), + (2246, 'mossy'), + (2247, 'staid'), + (2248, 'hence'), + (2249, 'pinch'), + (2250, 'teddy'), + (2251, 'sully'), + (2252, 'snore'), + (2253, 'ripen'), + (2254, 'snowy'), + (2255, 'attic'), + (2256, 'going'), + (2257, 'leach'), + (2258, 'mouth'), + (2259, 'hound'), + (2260, 'clump'), + (2261, 'tonal'), + (2262, 'bigot'), + (2263, 'peril'), + (2264, 'piece'), + (2265, 'blame'), + (2266, 'haute'), + (2267, 'spied'), + (2268, 'undid'), + (2269, 'intro'), + (2270, 'basal'), + (2271, 'shine'), + (2272, 'gecko'), + (2273, 'rodeo'), + (2274, 'guard'), + (2275, 'steer'), + (2276, 'loamy'), + (2277, 'scamp'), + (2278, 'scram'), + (2279, 'manly'), + (2280, 'hello'), + (2281, 'vaunt'), + (2282, 'organ'), + (2283, 'feral'), + (2284, 'knock'), + (2285, 'extra'), + (2286, 'condo'), + (2287, 'adapt'), + (2288, 'willy'), + (2289, 'polka'), + (2290, 'rayon'), + (2291, 'skirt'), + (2292, 'faith'), + (2293, 'torso'), + (2294, 'match'), + (2295, 'mercy'), + (2296, 'tepid'), + (2297, 'sleek'), + (2298, 'riser'), + (2299, 'twixt'), + (2300, 'peace'), + (2301, 'flush'), + (2302, 'catty'), + (2303, 'login'), + (2304, 'eject'), + (2305, 'roger'), + (2306, 'rival'), + (2307, 'untie'), + (2308, 'refit'), + (2309, 'aorta'), + (2310, 'adult'), + (2311, 'judge'), + (2312, 'rower'), + (2313, 'artsy'), + (2314, 'rural'), + (2315, 'shave'); + +insert into public.wordle_dictionary (word) values + ('aahed'), + ('aalii'), + ('aargh'), + ('aarti'), + ('abaca'), + ('abaci'), + ('aback'), + ('abacs'), + ('abaft'), + ('abaka'), + ('abamp'), + ('aband'), + ('abase'), + ('abash'), + ('abask'), + ('abate'), + ('abaya'), + ('abbas'), + ('abbed'), + ('abbes'), + ('abbey'), + ('abbot'), + ('abcee'), + ('abeam'), + ('abear'), + ('abele'), + ('abers'), + ('abets'), + ('abhor'), + ('abide'), + ('abies'), + ('abled'), + ('abler'), + ('ables'), + ('ablet'), + ('ablow'), + ('abmho'), + ('abode'), + ('abohm'), + ('aboil'), + ('aboma'), + ('aboon'), + ('abord'), + ('abore'), + ('abort'), + ('about'), + ('above'), + ('abram'), + ('abray'), + ('abrim'), + ('abrin'), + ('abris'), + ('absey'), + ('absit'), + ('abuna'), + ('abune'), + ('abuse'), + ('abuts'), + ('abuzz'), + ('abyes'), + ('abysm'), + ('abyss'), + ('acais'), + ('acari'), + ('accas'), + ('accoy'), + ('acerb'), + ('acers'), + ('aceta'), + ('achar'), + ('ached'), + ('aches'), + ('achoo'), + ('acids'), + ('acidy'), + ('acing'), + ('acini'), + ('ackee'), + ('acker'), + ('acmes'), + ('acmic'), + ('acned'), + ('acnes'), + ('acock'), + ('acold'), + ('acorn'), + ('acred'), + ('acres'), + ('acrid'), + ('acros'), + ('acted'), + ('actin'), + ('acton'), + ('actor'), + ('acute'), + ('acyls'), + ('adage'), + ('adapt'), + ('adaws'), + ('adays'), + ('adbot'), + ('addax'), + ('added'), + ('adder'), + ('addio'), + ('addle'), + ('adeem'), + ('adept'), + ('adhan'), + ('adieu'), + ('adios'), + ('adits'), + ('adman'), + ('admen'), + ('admin'), + ('admit'), + ('admix'), + ('adobe'), + ('adobo'), + ('adopt'), + ('adore'), + ('adorn'), + ('adown'), + ('adoze'), + ('adrad'), + ('adred'), + ('adsum'), + ('aduki'), + ('adult'), + ('adunc'), + ('adust'), + ('advew'), + ('adyta'), + ('adzed'), + ('adzes'), + ('aecia'), + ('aedes'), + ('aegis'), + ('aeons'), + ('aerie'), + ('aeros'), + ('aesir'), + ('afald'), + ('afara'), + ('afars'), + ('afear'), + ('affix'), + ('afire'), + ('aflaj'), + ('afoot'), + ('afore'), + ('afoul'), + ('afrit'), + ('afros'), + ('after'), + ('again'), + ('agama'), + ('agami'), + ('agape'), + ('agars'), + ('agast'), + ('agate'), + ('agave'), + ('agaze'), + ('agene'), + ('agent'), + ('agers'), + ('agger'), + ('aggie'), + ('aggri'), + ('aggro'), + ('aggry'), + ('aghas'), + ('agila'), + ('agile'), + ('aging'), + ('agios'), + ('agism'), + ('agist'), + ('agita'), + ('aglee'), + ('aglet'), + ('agley'), + ('agloo'), + ('aglow'), + ('aglus'), + ('agmas'), + ('agoge'), + ('agone'), + ('agons'), + ('agony'), + ('agood'), + ('agora'), + ('agree'), + ('agria'), + ('agrin'), + ('agros'), + ('agued'), + ('agues'), + ('aguna'), + ('aguti'), + ('ahead'), + ('aheap'), + ('ahent'), + ('ahigh'), + ('ahind'), + ('ahing'), + ('ahint'), + ('ahold'), + ('ahull'), + ('ahuru'), + ('aidas'), + ('aided'), + ('aider'), + ('aides'), + ('aidoi'), + ('aidos'), + ('aiery'), + ('aigas'), + ('aight'), + ('ailed'), + ('aimed'), + ('aimer'), + ('ainee'), + ('ainga'), + ('aioli'), + ('aired'), + ('airer'), + ('airns'), + ('airth'), + ('airts'), + ('aisle'), + ('aitch'), + ('aitus'), + ('aiver'), + ('aiyee'), + ('aizle'), + ('ajies'), + ('ajiva'), + ('ajuga'), + ('ajwan'), + ('akees'), + ('akela'), + ('akene'), + ('aking'), + ('akita'), + ('akkas'), + ('alaap'), + ('alack'), + ('alamo'), + ('aland'), + ('alane'), + ('alang'), + ('alans'), + ('alant'), + ('alapa'), + ('alaps'), + ('alarm'), + ('alary'), + ('alate'), + ('alays'), + ('albas'), + ('albee'), + ('album'), + ('alcid'), + ('alcos'), + ('aldea'), + ('alder'), + ('aldol'), + ('aleck'), + ('alecs'), + ('alefs'), + ('aleft'), + ('aleph'), + ('alert'), + ('alews'), + ('aleye'), + ('alfas'), + ('algae'), + ('algal'), + ('algas'), + ('algid'), + ('algin'), + ('algor'), + ('algum'), + ('alias'), + ('alibi'), + ('alien'), + ('alifs'), + ('align'), + ('alike'), + ('aline'), + ('alist'), + ('alive'), + ('aliya'), + ('alkie'), + ('alkos'), + ('alkyd'), + ('alkyl'), + ('allay'), + ('allee'), + ('allel'), + ('alley'), + ('allis'), + ('allod'), + ('allot'), + ('allow'), + ('alloy'), + ('allyl'), + ('almah'), + ('almas'), + ('almeh'), + ('almes'), + ('almud'), + ('almug'), + ('alods'), + ('aloed'), + ('aloes'), + ('aloft'), + ('aloha'), + ('aloin'), + ('alone'), + ('along'), + ('aloof'), + ('aloos'), + ('aloud'), + ('alowe'), + ('alpha'), + ('altar'), + ('alter'), + ('altho'), + ('altos'), + ('alula'), + ('alums'), + ('alure'), + ('alvar'), + ('alway'), + ('amahs'), + ('amain'), + ('amass'), + ('amate'), + ('amaut'), + ('amaze'), + ('amban'), + ('amber'), + ('ambit'), + ('amble'), + ('ambos'), + ('ambry'), + ('ameba'), + ('ameer'), + ('amend'), + ('amene'), + ('amens'), + ('ament'), + ('amias'), + ('amice'), + ('amici'), + ('amide'), + ('amido'), + ('amids'), + ('amies'), + ('amiga'), + ('amigo'), + ('amine'), + ('amino'), + ('amins'), + ('amirs'), + ('amiss'), + ('amity'), + ('amlas'), + ('amman'), + ('ammon'), + ('ammos'), + ('amnia'), + ('amnic'), + ('amnio'), + ('amoks'), + ('amole'), + ('among'), + ('amort'), + ('amour'), + ('amove'), + ('amowt'), + ('amped'), + ('ample'), + ('amply'), + ('ampul'), + ('amrit'), + ('amuck'), + ('amuse'), + ('amyls'), + ('anana'), + ('anata'), + ('ancho'), + ('ancle'), + ('ancon'), + ('andro'), + ('anear'), + ('anele'), + ('anent'), + ('angas'), + ('angel'), + ('anger'), + ('angle'), + ('anglo'), + ('angry'), + ('angst'), + ('anigh'), + ('anile'), + ('anils'), + ('anima'), + ('anime'), + ('animi'), + ('anion'), + ('anise'), + ('anker'), + ('ankhs'), + ('ankle'), + ('ankus'), + ('anlas'), + ('annal'), + ('annas'), + ('annat'), + ('annex'), + ('annoy'), + ('annul'), + ('anoas'), + ('anode'), + ('anole'), + ('anomy'), + ('ansae'), + ('antae'), + ('antar'), + ('antas'), + ('anted'), + ('antes'), + ('antic'), + ('antis'), + ('antra'), + ('antre'), + ('antsy'), + ('anura'), + ('anvil'), + ('anyon'), + ('aorta'), + ('apace'), + ('apage'), + ('apaid'), + ('apart'), + ('apayd'), + ('apays'), + ('apeak'), + ('apeek'), + ('apers'), + ('apert'), + ('apery'), + ('apgar'), + ('aphid'), + ('aphis'), + ('apian'), + ('aping'), + ('apiol'), + ('apish'), + ('apism'), + ('apnea'), + ('apode'), + ('apods'), + ('apoop'), + ('aport'), + ('appal'), + ('appay'), + ('appel'), + ('apple'), + ('apply'), + ('appro'), + ('appui'), + ('appuy'), + ('apres'), + ('apron'), + ('apses'), + ('apsis'), + ('apsos'), + ('apted'), + ('apter'), + ('aptly'), + ('aquae'), + ('aquas'), + ('araba'), + ('araks'), + ('arame'), + ('arars'), + ('arbas'), + ('arbor'), + ('arced'), + ('archi'), + ('arcos'), + ('arcus'), + ('ardeb'), + ('ardor'), + ('ardri'), + ('aread'), + ('areae'), + ('areal'), + ('arear'), + ('areas'), + ('areca'), + ('aredd'), + ('arede'), + ('arefy'), + ('areic'), + ('arena'), + ('arene'), + ('arepa'), + ('arere'), + ('arete'), + ('arets'), + ('arett'), + ('argal'), + ('argan'), + ('argil'), + ('argle'), + ('argol'), + ('argon'), + ('argot'), + ('argue'), + ('argus'), + ('arhat'), + ('arias'), + ('ariel'), + ('ariki'), + ('arils'), + ('ariot'), + ('arise'), + ('arish'), + ('arked'), + ('arled'), + ('arles'), + ('armed'), + ('armer'), + ('armet'), + ('armil'), + ('armor'), + ('arnas'), + ('arnut'), + ('aroba'), + ('aroha'), + ('aroid'), + ('aroma'), + ('arose'), + ('arpas'), + ('arpen'), + ('arrah'), + ('arras'), + ('array'), + ('arret'), + ('arris'), + ('arrow'), + ('arroz'), + ('arsed'), + ('arses'), + ('arsey'), + ('arsis'), + ('arson'), + ('artal'), + ('artel'), + ('artic'), + ('artis'), + ('artsy'), + ('aruhe'), + ('arums'), + ('arval'), + ('arvee'), + ('arvos'), + ('aryls'), + ('asana'), + ('ascon'), + ('ascot'), + ('ascus'), + ('asdic'), + ('ashed'), + ('ashen'), + ('ashes'), + ('ashet'), + ('aside'), + ('asked'), + ('asker'), + ('askew'), + ('askoi'), + ('askos'), + ('aspen'), + ('asper'), + ('aspic'), + ('aspie'), + ('aspis'), + ('aspro'), + ('assai'), + ('assam'), + ('assay'), + ('asses'), + ('asset'), + ('assez'), + ('assot'), + ('aster'), + ('astir'), + ('astun'), + ('asura'), + ('asway'), + ('aswim'), + ('asyla'), + ('ataps'), + ('ataxy'), + ('atigi'), + ('atilt'), + ('atimy'), + ('atlas'), + ('atman'), + ('atmas'), + ('atmos'), + ('atocs'), + ('atoke'), + ('atoks'), + ('atoll'), + ('atoms'), + ('atomy'), + ('atone'), + ('atony'), + ('atopy'), + ('atria'), + ('atrip'), + ('attap'), + ('attar'), + ('attic'), + ('atuas'), + ('audad'), + ('audio'), + ('audit'), + ('auger'), + ('aught'), + ('augur'), + ('aulas'), + ('aulic'), + ('auloi'), + ('aulos'), + ('aumil'), + ('aunes'), + ('aunts'), + ('aunty'), + ('aurae'), + ('aural'), + ('aurar'), + ('auras'), + ('aurei'), + ('aures'), + ('auric'), + ('auris'), + ('aurum'), + ('autos'), + ('auxin'), + ('avail'), + ('avale'), + ('avant'), + ('avast'), + ('avels'), + ('avens'), + ('avers'), + ('avert'), + ('avgas'), + ('avian'), + ('avine'), + ('avion'), + ('avise'), + ('aviso'), + ('avize'), + ('avoid'), + ('avows'), + ('avyze'), + ('await'), + ('awake'), + ('award'), + ('aware'), + ('awarn'), + ('awash'), + ('awato'), + ('awave'), + ('aways'), + ('awdls'), + ('aweel'), + ('aweto'), + ('awful'), + ('awing'), + ('awmry'), + ('awned'), + ('awner'), + ('awoke'), + ('awols'), + ('awork'), + ('axels'), + ('axial'), + ('axile'), + ('axils'), + ('axing'), + ('axiom'), + ('axion'), + ('axite'), + ('axled'), + ('axles'), + ('axman'), + ('axmen'), + ('axoid'), + ('axone'), + ('axons'), + ('ayahs'), + ('ayaya'), + ('ayelp'), + ('aygre'), + ('ayins'), + ('ayont'), + ('ayres'), + ('ayrie'), + ('azans'), + ('azide'), + ('azido'), + ('azine'), + ('azlon'), + ('azoic'), + ('azole'), + ('azons'), + ('azote'), + ('azoth'), + ('azuki'), + ('azure'), + ('azurn'), + ('azury'), + ('azygy'), + ('azyme'), + ('azyms'), + ('baaed'), + ('baals'), + ('babas'), + ('babel'), + ('babes'), + ('babka'), + ('baboo'), + ('babul'), + ('babus'), + ('bacca'), + ('bacco'), + ('baccy'), + ('bacha'), + ('bachs'), + ('backs'), + ('bacon'), + ('baddy'), + ('badge'), + ('badly'), + ('baels'), + ('baffs'), + ('baffy'), + ('bafts'), + ('bagel'), + ('baggy'), + ('baghs'), + ('bagie'), + ('bahts'), + ('bahus'), + ('bahut'), + ('bails'), + ('bairn'), + ('baisa'), + ('baith'), + ('baits'), + ('baiza'), + ('baize'), + ('bajan'), + ('bajra'), + ('bajri'), + ('bajus'), + ('baked'), + ('baken'), + ('baker'), + ('bakes'), + ('bakra'), + ('balas'), + ('balds'), + ('baldy'), + ('baled'), + ('baler'), + ('bales'), + ('balks'), + ('balky'), + ('balls'), + ('bally'), + ('balms'), + ('balmy'), + ('baloo'), + ('balsa'), + ('balti'), + ('balun'), + ('balus'), + ('bambi'), + ('banak'), + ('banal'), + ('banco'), + ('bancs'), + ('banda'), + ('bandh'), + ('bands'), + ('bandy'), + ('baned'), + ('banes'), + ('bangs'), + ('bania'), + ('banjo'), + ('banks'), + ('banns'), + ('bants'), + ('bantu'), + ('banty'), + ('banya'), + ('bapus'), + ('barbe'), + ('barbs'), + ('barby'), + ('barca'), + ('barde'), + ('bardo'), + ('bards'), + ('bardy'), + ('bared'), + ('barer'), + ('bares'), + ('barfi'), + ('barfs'), + ('barge'), + ('baric'), + ('barks'), + ('barky'), + ('barms'), + ('barmy'), + ('barns'), + ('barny'), + ('baron'), + ('barps'), + ('barra'), + ('barre'), + ('barro'), + ('barry'), + ('barye'), + ('basal'), + ('basan'), + ('based'), + ('basen'), + ('baser'), + ('bases'), + ('basho'), + ('basic'), + ('basij'), + ('basil'), + ('basin'), + ('basis'), + ('basks'), + ('bason'), + ('basse'), + ('bassi'), + ('basso'), + ('bassy'), + ('basta'), + ('baste'), + ('basti'), + ('basto'), + ('basts'), + ('batch'), + ('bated'), + ('bates'), + ('bathe'), + ('baths'), + ('batik'), + ('baton'), + ('batta'), + ('batts'), + ('battu'), + ('batty'), + ('bauds'), + ('bauks'), + ('baulk'), + ('baurs'), + ('bavin'), + ('bawds'), + ('bawdy'), + ('bawks'), + ('bawls'), + ('bawns'), + ('bawrs'), + ('bawty'), + ('bayed'), + ('bayer'), + ('bayes'), + ('bayle'), + ('bayou'), + ('bayts'), + ('bazar'), + ('bazoo'), + ('beach'), + ('beads'), + ('beady'), + ('beaks'), + ('beaky'), + ('beals'), + ('beams'), + ('beamy'), + ('beano'), + ('beans'), + ('beany'), + ('beard'), + ('beare'), + ('bears'), + ('beast'), + ('beath'), + ('beats'), + ('beaty'), + ('beaus'), + ('beaut'), + ('beaux'), + ('bebop'), + ('becap'), + ('becke'), + ('becks'), + ('bedad'), + ('bedel'), + ('bedes'), + ('bedew'), + ('bedim'), + ('bedye'), + ('beech'), + ('beedi'), + ('beefs'), + ('beefy'), + ('beeps'), + ('beers'), + ('beery'), + ('beets'), + ('befit'), + ('befog'), + ('begad'), + ('began'), + ('begar'), + ('begat'), + ('begem'), + ('beget'), + ('begin'), + ('begot'), + ('begum'), + ('begun'), + ('beige'), + ('beigy'), + ('being'), + ('beins'), + ('bekah'), + ('belah'), + ('belar'), + ('belay'), + ('belch'), + ('belee'), + ('belga'), + ('belie'), + ('belle'), + ('bells'), + ('belly'), + ('belon'), + ('below'), + ('belts'), + ('bemad'), + ('bemas'), + ('bemix'), + ('bemud'), + ('bench'), + ('bends'), + ('bendy'), + ('benes'), + ('benet'), + ('benga'), + ('benis'), + ('benne'), + ('benni'), + ('benny'), + ('bento'), + ('bents'), + ('benty'), + ('bepat'), + ('beray'), + ('beres'), + ('beret'), + ('bergs'), + ('berko'), + ('berks'), + ('berme'), + ('berms'), + ('berob'), + ('berry'), + ('berth'), + ('beryl'), + ('besat'), + ('besaw'), + ('besee'), + ('beses'), + ('beset'), + ('besit'), + ('besom'), + ('besot'), + ('besti'), + ('bests'), + ('betas'), + ('beted'), + ('betel'), + ('betes'), + ('beths'), + ('betid'), + ('beton'), + ('betta'), + ('betty'), + ('bevel'), + ('bever'), + ('bevor'), + ('bevue'), + ('bevvy'), + ('bewet'), + ('bewig'), + ('bezel'), + ('bezes'), + ('bezil'), + ('bezzy'), + ('bhais'), + ('bhaji'), + ('bhang'), + ('bhats'), + ('bhels'), + ('bhoot'), + ('bhuna'), + ('bhuts'), + ('biach'), + ('biali'), + ('bialy'), + ('bibbs'), + ('bibes'), + ('bible'), + ('biccy'), + ('bicep'), + ('bices'), + ('biddy'), + ('bided'), + ('bider'), + ('bides'), + ('bidet'), + ('bidis'), + ('bidon'), + ('bield'), + ('biers'), + ('biffo'), + ('biffs'), + ('biffy'), + ('bifid'), + ('bigae'), + ('biggs'), + ('biggy'), + ('bigha'), + ('bight'), + ('bigly'), + ('bigos'), + ('bigot'), + ('bijou'), + ('biked'), + ('biker'), + ('bikes'), + ('bikie'), + ('bilbo'), + ('bilby'), + ('biled'), + ('biles'), + ('bilge'), + ('bilgy'), + ('bilks'), + ('bills'), + ('billy'), + ('bimah'), + ('bimas'), + ('bimbo'), + ('binal'), + ('bindi'), + ('binds'), + ('biner'), + ('bines'), + ('binge'), + ('bingo'), + ('bings'), + ('bingy'), + ('binit'), + ('binks'), + ('bints'), + ('biogs'), + ('biome'), + ('biont'), + ('biota'), + ('biped'), + ('bipod'), + ('birch'), + ('birds'), + ('birks'), + ('birle'), + ('birls'), + ('biros'), + ('birrs'), + ('birse'), + ('birsy'), + ('birth'), + ('bises'), + ('bisks'), + ('bisom'), + ('bison'), + ('bitch'), + ('biter'), + ('bites'), + ('bitos'), + ('bitou'), + ('bitsy'), + ('bitte'), + ('bitts'), + ('bitty'), + ('bivia'), + ('bivvy'), + ('bizes'), + ('bizzo'), + ('bizzy'), + ('blabs'), + ('black'), + ('blade'), + ('blads'), + ('blady'), + ('blaer'), + ('blaes'), + ('blaff'), + ('blags'), + ('blahs'), + ('blain'), + ('blame'), + ('blams'), + ('bland'), + ('blank'), + ('blare'), + ('blart'), + ('blase'), + ('blash'), + ('blast'), + ('blate'), + ('blats'), + ('blatt'), + ('blaud'), + ('blawn'), + ('blaws'), + ('blays'), + ('blaze'), + ('bleak'), + ('blear'), + ('bleat'), + ('blebs'), + ('blech'), + ('bleed'), + ('bleep'), + ('blees'), + ('blend'), + ('blent'), + ('blert'), + ('bless'), + ('blest'), + ('blets'), + ('bleys'), + ('blimp'), + ('blimy'), + ('blind'), + ('bling'), + ('blini'), + ('blink'), + ('blins'), + ('bliny'), + ('blips'), + ('bliss'), + ('blist'), + ('blite'), + ('blits'), + ('blitz'), + ('blive'), + ('bloat'), + ('blobs'), + ('block'), + ('blocs'), + ('blogs'), + ('bloke'), + ('blond'), + ('blood'), + ('blook'), + ('bloom'), + ('bloop'), + ('blore'), + ('blots'), + ('blown'), + ('blows'), + ('blowy'), + ('blubs'), + ('blude'), + ('bluds'), + ('bludy'), + ('blued'), + ('bluer'), + ('blues'), + ('bluet'), + ('bluey'), + ('bluff'), + ('bluid'), + ('blume'), + ('blunk'), + ('blunt'), + ('blurb'), + ('blurs'), + ('blurt'), + ('blush'), + ('blype'), + ('boabs'), + ('boaks'), + ('board'), + ('boars'), + ('boart'), + ('boast'), + ('boats'), + ('bobac'), + ('bobak'), + ('bobas'), + ('bobby'), + ('bobol'), + ('bobos'), + ('bocca'), + ('bocce'), + ('bocci'), + ('boche'), + ('bocks'), + ('boded'), + ('bodes'), + ('bodge'), + ('bodhi'), + ('bodle'), + ('boeps'), + ('boets'), + ('boeuf'), + ('boffo'), + ('boffs'), + ('bogan'), + ('bogey'), + ('boggy'), + ('bogie'), + ('bogle'), + ('bogue'), + ('bogus'), + ('bohea'), + ('bohos'), + ('boils'), + ('boing'), + ('boink'), + ('boite'), + ('boked'), + ('bokeh'), + ('bokes'), + ('bokos'), + ('bolar'), + ('bolas'), + ('bolds'), + ('boles'), + ('bolix'), + ('bolls'), + ('bolos'), + ('bolts'), + ('bolus'), + ('bomas'), + ('bombe'), + ('bombo'), + ('bombs'), + ('bonce'), + ('bonds'), + ('boned'), + ('boner'), + ('bones'), + ('boney'), + ('bongo'), + ('bongs'), + ('bonie'), + ('bonks'), + ('bonne'), + ('bonny'), + ('bonus'), + ('bonza'), + ('bonze'), + ('booai'), + ('booay'), + ('boobs'), + ('booby'), + ('boody'), + ('booed'), + ('boofy'), + ('boogy'), + ('boohs'), + ('books'), + ('booky'), + ('bools'), + ('booms'), + ('boomy'), + ('boong'), + ('boons'), + ('boord'), + ('boors'), + ('boose'), + ('boost'), + ('booth'), + ('boots'), + ('booty'), + ('booze'), + ('boozy'), + ('boppy'), + ('borak'), + ('boral'), + ('boras'), + ('borax'), + ('borde'), + ('bords'), + ('bored'), + ('boree'), + ('borel'), + ('borer'), + ('bores'), + ('borgo'), + ('boric'), + ('borks'), + ('borms'), + ('borna'), + ('borne'), + ('boron'), + ('borts'), + ('borty'), + ('bortz'), + ('bosie'), + ('bosks'), + ('bosky'), + ('bosom'), + ('boson'), + ('bossy'), + ('bosun'), + ('botas'), + ('botch'), + ('botel'), + ('botes'), + ('bothy'), + ('botte'), + ('botts'), + ('botty'), + ('bouge'), + ('bough'), + ('bouks'), + ('boule'), + ('boult'), + ('bound'), + ('bouns'), + ('bourd'), + ('bourg'), + ('bourn'), + ('bouse'), + ('bousy'), + ('bouts'), + ('bovid'), + ('bowat'), + ('bowed'), + ('bowel'), + ('bower'), + ('bowes'), + ('bowet'), + ('bowie'), + ('bowls'), + ('bowne'), + ('bowrs'), + ('bowse'), + ('boxed'), + ('boxen'), + ('boxer'), + ('boxes'), + ('boxla'), + ('boxty'), + ('boyar'), + ('boyau'), + ('boyed'), + ('boyfs'), + ('boygs'), + ('boyla'), + ('boyos'), + ('boysy'), + ('bozos'), + ('braai'), + ('brace'), + ('brach'), + ('brack'), + ('bract'), + ('brads'), + ('braes'), + ('brags'), + ('braid'), + ('brail'), + ('brain'), + ('brake'), + ('braks'), + ('braky'), + ('brame'), + ('brand'), + ('brane'), + ('brank'), + ('brans'), + ('brant'), + ('brash'), + ('brass'), + ('brast'), + ('brats'), + ('brava'), + ('brave'), + ('bravi'), + ('bravo'), + ('brawl'), + ('brawn'), + ('braws'), + ('braxy'), + ('brays'), + ('braza'), + ('braze'), + ('bread'), + ('break'), + ('bream'), + ('brede'), + ('breds'), + ('breed'), + ('breem'), + ('breer'), + ('brees'), + ('breid'), + ('breis'), + ('breme'), + ('brens'), + ('brent'), + ('brere'), + ('brers'), + ('breve'), + ('brews'), + ('breys'), + ('briar'), + ('bribe'), + ('brick'), + ('bride'), + ('brief'), + ('brier'), + ('bries'), + ('brigs'), + ('briki'), + ('briks'), + ('brill'), + ('brims'), + ('brine'), + ('bring'), + ('brink'), + ('brins'), + ('briny'), + ('brios'), + ('brise'), + ('brisk'), + ('briss'), + ('brith'), + ('brits'), + ('britt'), + ('brize'), + ('broad'), + ('broch'), + ('brock'), + ('brods'), + ('brogh'), + ('brogs'), + ('broil'), + ('broke'), + ('brome'), + ('bromo'), + ('bronc'), + ('brond'), + ('brood'), + ('brook'), + ('brool'), + ('broom'), + ('broos'), + ('brose'), + ('brosy'), + ('broth'), + ('brown'), + ('brows'), + ('brugh'), + ('bruin'), + ('bruit'), + ('brule'), + ('brume'), + ('brung'), + ('brunt'), + ('brush'), + ('brusk'), + ('brust'), + ('brute'), + ('bruts'), + ('buats'), + ('buaze'), + ('bubal'), + ('bubas'), + ('bubba'), + ('bubbe'), + ('bubby'), + ('bubus'), + ('buchu'), + ('bucko'), + ('bucks'), + ('bucku'), + ('budas'), + ('buddy'), + ('budge'), + ('budis'), + ('budos'), + ('buffa'), + ('buffe'), + ('buffi'), + ('buffo'), + ('buffs'), + ('buffy'), + ('bufos'), + ('bufty'), + ('buggy'), + ('bugle'), + ('buhls'), + ('buhrs'), + ('buiks'), + ('build'), + ('built'), + ('buist'), + ('bukes'), + ('bulbs'), + ('bulge'), + ('bulgy'), + ('bulks'), + ('bulky'), + ('bulla'), + ('bulls'), + ('bully'), + ('bulse'), + ('bumbo'), + ('bumfs'), + ('bumph'), + ('bumps'), + ('bumpy'), + ('bunas'), + ('bunce'), + ('bunch'), + ('bunco'), + ('bunde'), + ('bundh'), + ('bunds'), + ('bundt'), + ('bundu'), + ('bundy'), + ('bungs'), + ('bungy'), + ('bunia'), + ('bunje'), + ('bunjy'), + ('bunko'), + ('bunks'), + ('bunns'), + ('bunny'), + ('bunts'), + ('bunty'), + ('bunya'), + ('buoys'), + ('buppy'), + ('buran'), + ('buras'), + ('burbs'), + ('burds'), + ('buret'), + ('burfi'), + ('burgh'), + ('burgs'), + ('burin'), + ('burka'), + ('burke'), + ('burks'), + ('burls'), + ('burly'), + ('burns'), + ('burnt'), + ('buroo'), + ('burps'), + ('burqa'), + ('burro'), + ('burrs'), + ('burry'), + ('bursa'), + ('burse'), + ('burst'), + ('busby'), + ('bused'), + ('buses'), + ('bushy'), + ('busks'), + ('busky'), + ('bussu'), + ('busti'), + ('busts'), + ('busty'), + ('butch'), + ('buteo'), + ('butes'), + ('butle'), + ('butoh'), + ('butte'), + ('butts'), + ('butty'), + ('butut'), + ('butyl'), + ('buxom'), + ('buyer'), + ('buzzy'), + ('bwana'), + ('bwazi'), + ('byded'), + ('bydes'), + ('byked'), + ('bykes'), + ('bylaw'), + ('byres'), + ('byrls'), + ('byssi'), + ('bytes'), + ('byway'), + ('caaed'), + ('cabal'), + ('cabas'), + ('cabby'), + ('caber'), + ('cabin'), + ('cable'), + ('cabob'), + ('caboc'), + ('cabre'), + ('cacao'), + ('cacas'), + ('cache'), + ('cacks'), + ('cacky'), + ('cacti'), + ('caddy'), + ('cadee'), + ('cades'), + ('cadet'), + ('cadge'), + ('cadgy'), + ('cadie'), + ('cadis'), + ('cadre'), + ('caeca'), + ('caese'), + ('cafes'), + ('caffs'), + ('caged'), + ('cager'), + ('cages'), + ('cagey'), + ('cagot'), + ('cahow'), + ('caids'), + ('cains'), + ('caird'), + ('cairn'), + ('cajon'), + ('cajun'), + ('caked'), + ('cakes'), + ('cakey'), + ('calfs'), + ('calid'), + ('calif'), + ('calix'), + ('calks'), + ('calla'), + ('calls'), + ('calms'), + ('calmy'), + ('calos'), + ('calpa'), + ('calps'), + ('calve'), + ('calyx'), + ('caman'), + ('camas'), + ('camel'), + ('cameo'), + ('cames'), + ('camis'), + ('camos'), + ('campi'), + ('campo'), + ('camps'), + ('campy'), + ('camus'), + ('canal'), + ('candy'), + ('caned'), + ('caneh'), + ('caner'), + ('canes'), + ('cangs'), + ('canid'), + ('canna'), + ('canns'), + ('canny'), + ('canoe'), + ('canon'), + ('canso'), + ('canst'), + ('canto'), + ('cants'), + ('canty'), + ('capas'), + ('caped'), + ('caper'), + ('capes'), + ('capex'), + ('caphs'), + ('capiz'), + ('caple'), + ('capon'), + ('capos'), + ('capot'), + ('capri'), + ('capul'), + ('caput'), + ('carap'), + ('carat'), + ('carbo'), + ('carbs'), + ('carby'), + ('cardi'), + ('cards'), + ('cardy'), + ('cared'), + ('carer'), + ('cares'), + ('caret'), + ('carex'), + ('cargo'), + ('carks'), + ('carle'), + ('carls'), + ('carns'), + ('carny'), + ('carob'), + ('carol'), + ('carom'), + ('caron'), + ('carpi'), + ('carps'), + ('carrs'), + ('carry'), + ('carse'), + ('carta'), + ('carte'), + ('carts'), + ('carve'), + ('carvy'), + ('casas'), + ('casco'), + ('cased'), + ('cases'), + ('casks'), + ('casky'), + ('caste'), + ('casts'), + ('casus'), + ('catch'), + ('cater'), + ('cates'), + ('catty'), + ('cauda'), + ('cauks'), + ('cauld'), + ('caulk'), + ('cauls'), + ('caums'), + ('caups'), + ('cauri'), + ('causa'), + ('cause'), + ('cavas'), + ('caved'), + ('cavel'), + ('caver'), + ('caves'), + ('cavie'), + ('cavil'), + ('cawed'), + ('cawks'), + ('caxon'), + ('cease'), + ('ceaze'), + ('cebid'), + ('cecal'), + ('cecum'), + ('cedar'), + ('ceded'), + ('ceder'), + ('cedes'), + ('cedis'), + ('ceiba'), + ('ceili'), + ('ceils'), + ('celeb'), + ('cella'), + ('celli'), + ('cello'), + ('cells'), + ('celom'), + ('celts'), + ('cense'), + ('cento'), + ('cents'), + ('centu'), + ('ceorl'), + ('cepes'), + ('cerci'), + ('cered'), + ('ceres'), + ('cerge'), + ('ceria'), + ('ceric'), + ('cerne'), + ('ceroc'), + ('ceros'), + ('certs'), + ('certy'), + ('cesse'), + ('cesta'), + ('cesti'), + ('cetes'), + ('cetyl'), + ('cezve'), + ('chace'), + ('chack'), + ('chaco'), + ('chado'), + ('chads'), + ('chafe'), + ('chaff'), + ('chaft'), + ('chain'), + ('chair'), + ('chais'), + ('chalk'), + ('chals'), + ('champ'), + ('chams'), + ('chana'), + ('chang'), + ('chank'), + ('chant'), + ('chaos'), + ('chape'), + ('chaps'), + ('chapt'), + ('chara'), + ('chard'), + ('chare'), + ('chark'), + ('charm'), + ('charr'), + ('chars'), + ('chart'), + ('chary'), + ('chase'), + ('chasm'), + ('chats'), + ('chave'), + ('chavs'), + ('chawk'), + ('chaws'), + ('chaya'), + ('chays'), + ('cheap'), + ('cheat'), + ('check'), + ('cheek'), + ('cheep'), + ('cheer'), + ('chefs'), + ('cheka'), + ('chela'), + ('chelp'), + ('chemo'), + ('chems'), + ('chere'), + ('chert'), + ('chess'), + ('chest'), + ('cheth'), + ('chevy'), + ('chews'), + ('chewy'), + ('chiao'), + ('chias'), + ('chibs'), + ('chica'), + ('chich'), + ('chick'), + ('chico'), + ('chics'), + ('chide'), + ('chief'), + ('chiel'), + ('chiks'), + ('child'), + ('chile'), + ('chili'), + ('chill'), + ('chimb'), + ('chime'), + ('chimo'), + ('chimp'), + ('china'), + ('chine'), + ('ching'), + ('chink'), + ('chino'), + ('chins'), + ('chips'), + ('chirk'), + ('chirl'), + ('chirm'), + ('chiro'), + ('chirp'), + ('chirr'), + ('chirt'), + ('chiru'), + ('chits'), + ('chive'), + ('chivs'), + ('chivy'), + ('chizz'), + ('chock'), + ('choco'), + ('chocs'), + ('chode'), + ('chogs'), + ('choil'), + ('choir'), + ('choke'), + ('choko'), + ('choky'), + ('chola'), + ('choli'), + ('cholo'), + ('chomp'), + ('chons'), + ('choof'), + ('chook'), + ('choom'), + ('choon'), + ('chops'), + ('chord'), + ('chore'), + ('chose'), + ('chota'), + ('chott'), + ('chout'), + ('choux'), + ('chowk'), + ('chows'), + ('chubs'), + ('chuck'), + ('chufa'), + ('chuff'), + ('chugs'), + ('chump'), + ('chums'), + ('chunk'), + ('churl'), + ('churn'), + ('churr'), + ('chuse'), + ('chute'), + ('chuts'), + ('chyle'), + ('chyme'), + ('chynd'), + ('cibol'), + ('cided'), + ('cider'), + ('cides'), + ('ciels'), + ('cigar'), + ('ciggy'), + ('cilia'), + ('cills'), + ('cimar'), + ('cimex'), + ('cinch'), + ('cinct'), + ('cines'), + ('cinqs'), + ('cions'), + ('cippi'), + ('circa'), + ('circs'), + ('cires'), + ('cirls'), + ('cirri'), + ('cisco'), + ('cissy'), + ('cists'), + ('cital'), + ('cited'), + ('citer'), + ('cites'), + ('cives'), + ('civet'), + ('civic'), + ('civie'), + ('civil'), + ('civvy'), + ('clach'), + ('clack'), + ('clade'), + ('clads'), + ('claes'), + ('clags'), + ('claim'), + ('clame'), + ('clamp'), + ('clams'), + ('clang'), + ('clank'), + ('clans'), + ('claps'), + ('clapt'), + ('claro'), + ('clart'), + ('clary'), + ('clash'), + ('clasp'), + ('class'), + ('clast'), + ('clats'), + ('claut'), + ('clave'), + ('clavi'), + ('claws'), + ('clays'), + ('clean'), + ('clear'), + ('cleat'), + ('cleck'), + ('cleek'), + ('cleep'), + ('clefs'), + ('cleft'), + ('clegs'), + ('cleik'), + ('clems'), + ('clepe'), + ('clept'), + ('clerk'), + ('cleve'), + ('clews'), + ('click'), + ('clied'), + ('clies'), + ('cliff'), + ('clift'), + ('climb'), + ('clime'), + ('cline'), + ('cling'), + ('clink'), + ('clint'), + ('clipe'), + ('clips'), + ('clipt'), + ('clits'), + ('cloak'), + ('cloam'), + ('clock'), + ('clods'), + ('cloff'), + ('clogs'), + ('cloke'), + ('clomb'), + ('clomp'), + ('clone'), + ('clonk'), + ('clons'), + ('cloop'), + ('cloot'), + ('clops'), + ('close'), + ('clote'), + ('cloth'), + ('clots'), + ('cloud'), + ('clour'), + ('clous'), + ('clout'), + ('clove'), + ('clown'), + ('clows'), + ('cloye'), + ('cloys'), + ('cloze'), + ('clubs'), + ('cluck'), + ('clued'), + ('clues'), + ('cluey'), + ('clump'), + ('clung'), + ('clunk'), + ('clype'), + ('cnida'), + ('coach'), + ('coact'), + ('coady'), + ('coala'), + ('coals'), + ('coaly'), + ('coapt'), + ('coarb'), + ('coast'), + ('coate'), + ('coati'), + ('coats'), + ('cobbs'), + ('cobby'), + ('cobia'), + ('coble'), + ('cobra'), + ('cobza'), + ('cocas'), + ('cocci'), + ('cocco'), + ('cocks'), + ('cocky'), + ('cocoa'), + ('cocos'), + ('codas'), + ('codec'), + ('coded'), + ('coden'), + ('coder'), + ('codes'), + ('codex'), + ('codon'), + ('coeds'), + ('coffs'), + ('cogie'), + ('cogon'), + ('cogue'), + ('cohab'), + ('cohen'), + ('cohoe'), + ('cohog'), + ('cohos'), + ('coifs'), + ('coign'), + ('coils'), + ('coins'), + ('coirs'), + ('coits'), + ('coked'), + ('cokes'), + ('colas'), + ('colby'), + ('colds'), + ('coled'), + ('coles'), + ('coley'), + ('colic'), + ('colin'), + ('colls'), + ('colly'), + ('colog'), + ('colon'), + ('color'), + ('colts'), + ('colza'), + ('comae'), + ('comal'), + ('comas'), + ('combe'), + ('combi'), + ('combo'), + ('combs'), + ('comby'), + ('comer'), + ('comes'), + ('comet'), + ('comfy'), + ('comic'), + ('comix'), + ('comma'), + ('commo'), + ('comms'), + ('commy'), + ('compo'), + ('comps'), + ('compt'), + ('comte'), + ('comus'), + ('conch'), + ('condo'), + ('coned'), + ('cones'), + ('coney'), + ('confs'), + ('conga'), + ('conge'), + ('congo'), + ('conia'), + ('conic'), + ('conin'), + ('conks'), + ('conky'), + ('conne'), + ('conns'), + ('conte'), + ('conto'), + ('conus'), + ('convo'), + ('cooch'), + ('cooed'), + ('cooee'), + ('cooer'), + ('cooey'), + ('coofs'), + ('cooks'), + ('cooky'), + ('cools'), + ('cooly'), + ('coomb'), + ('cooms'), + ('coomy'), + ('coons'), + ('coops'), + ('coopt'), + ('coost'), + ('coots'), + ('cooze'), + ('copal'), + ('copay'), + ('coped'), + ('copen'), + ('coper'), + ('copes'), + ('coppy'), + ('copra'), + ('copse'), + ('copsy'), + ('coqui'), + ('coral'), + ('coram'), + ('corbe'), + ('corby'), + ('cords'), + ('cored'), + ('corer'), + ('cores'), + ('corey'), + ('corgi'), + ('coria'), + ('corks'), + ('corky'), + ('corms'), + ('corni'), + ('corno'), + ('corns'), + ('cornu'), + ('corny'), + ('corps'), + ('corse'), + ('corso'), + ('cosec'), + ('cosed'), + ('coses'), + ('coset'), + ('cosey'), + ('cosie'), + ('costa'), + ('coste'), + ('costs'), + ('cotan'), + ('coted'), + ('cotes'), + ('coths'), + ('cotta'), + ('cotts'), + ('couch'), + ('coude'), + ('cough'), + ('could'), + ('count'), + ('coupe'), + ('coups'), + ('courb'), + ('courd'), + ('coure'), + ('cours'), + ('court'), + ('couta'), + ('couth'), + ('coved'), + ('coven'), + ('cover'), + ('coves'), + ('covet'), + ('covey'), + ('covin'), + ('cowal'), + ('cowan'), + ('cowed'), + ('cower'), + ('cowks'), + ('cowls'), + ('cowps'), + ('cowry'), + ('coxae'), + ('coxal'), + ('coxed'), + ('coxes'), + ('coxib'), + ('coyau'), + ('coyed'), + ('coyer'), + ('coyly'), + ('coypu'), + ('cozed'), + ('cozen'), + ('cozes'), + ('cozey'), + ('cozie'), + ('craal'), + ('crabs'), + ('crack'), + ('craft'), + ('crags'), + ('craic'), + ('craig'), + ('crake'), + ('crame'), + ('cramp'), + ('crams'), + ('crane'), + ('crank'), + ('crans'), + ('crape'), + ('craps'), + ('crapy'), + ('crare'), + ('crash'), + ('crass'), + ('crate'), + ('crave'), + ('crawl'), + ('craws'), + ('crays'), + ('craze'), + ('crazy'), + ('creak'), + ('cream'), + ('credo'), + ('creds'), + ('creed'), + ('creek'), + ('creel'), + ('creep'), + ('crees'), + ('creme'), + ('crems'), + ('crena'), + ('crepe'), + ('creps'), + ('crept'), + ('crepy'), + ('cress'), + ('crest'), + ('crewe'), + ('crews'), + ('crias'), + ('cribs'), + ('crick'), + ('cried'), + ('crier'), + ('cries'), + ('crime'), + ('crimp'), + ('crims'), + ('crine'), + ('crios'), + ('cripe'), + ('crips'), + ('crise'), + ('crisp'), + ('crith'), + ('crits'), + ('croak'), + ('croci'), + ('crock'), + ('crocs'), + ('croft'), + ('crogs'), + ('cromb'), + ('crome'), + ('crone'), + ('cronk'), + ('crons'), + ('crony'), + ('crook'), + ('crool'), + ('croon'), + ('crops'), + ('crore'), + ('cross'), + ('crost'), + ('croup'), + ('crout'), + ('crowd'), + ('crown'), + ('crows'), + ('croze'), + ('cruck'), + ('crude'), + ('crudo'), + ('cruds'), + ('crudy'), + ('cruel'), + ('crues'), + ('cruet'), + ('cruft'), + ('crumb'), + ('crump'), + ('crunk'), + ('cruor'), + ('crura'), + ('cruse'), + ('crush'), + ('crust'), + ('crusy'), + ('cruve'), + ('crwth'), + ('cryer'), + ('crypt'), + ('ctene'), + ('cubby'), + ('cubeb'), + ('cubed'), + ('cuber'), + ('cubes'), + ('cubic'), + ('cubit'), + ('cuddy'), + ('cuffo'), + ('cuffs'), + ('cuifs'), + ('cuing'), + ('cuish'), + ('cuits'), + ('cukes'), + ('culch'), + ('culet'), + ('culex'), + ('culls'), + ('cully'), + ('culms'), + ('culpa'), + ('culti'), + ('cults'), + ('culty'), + ('cumec'), + ('cumin'), + ('cundy'), + ('cunei'), + ('cunit'), + ('cunts'), + ('cupel'), + ('cupid'), + ('cuppa'), + ('cuppy'), + ('curat'), + ('curbs'), + ('curch'), + ('curds'), + ('curdy'), + ('cured'), + ('curer'), + ('cures'), + ('curet'), + ('curfs'), + ('curia'), + ('curie'), + ('curio'), + ('curli'), + ('curls'), + ('curly'), + ('curns'), + ('curny'), + ('currs'), + ('curry'), + ('curse'), + ('cursi'), + ('curst'), + ('curve'), + ('curvy'), + ('cusec'), + ('cushy'), + ('cusks'), + ('cusps'), + ('cuspy'), + ('cusso'), + ('cusum'), + ('cutch'), + ('cuter'), + ('cutes'), + ('cutey'), + ('cutie'), + ('cutin'), + ('cutis'), + ('cutto'), + ('cutty'), + ('cutup'), + ('cuvee'), + ('cuzes'), + ('cwtch'), + ('cyano'), + ('cyans'), + ('cyber'), + ('cycad'), + ('cycas'), + ('cycle'), + ('cyclo'), + ('cyder'), + ('cylix'), + ('cymae'), + ('cymar'), + ('cymas'), + ('cymes'), + ('cymol'), + ('cynic'), + ('cysts'), + ('cytes'), + ('cyton'), + ('czars'), + ('daals'), + ('dabba'), + ('daces'), + ('dacha'), + ('dacks'), + ('dadah'), + ('dadas'), + ('daddy'), + ('dados'), + ('daffs'), + ('daffy'), + ('dagga'), + ('daggy'), + ('dagos'), + ('dahls'), + ('daiko'), + ('daily'), + ('daine'), + ('daint'), + ('dairy'), + ('daisy'), + ('daker'), + ('daled'), + ('dales'), + ('dalis'), + ('dalle'), + ('dally'), + ('dalts'), + ('daman'), + ('damar'), + ('dames'), + ('damme'), + ('damns'), + ('damps'), + ('dampy'), + ('dance'), + ('dancy'), + ('dandy'), + ('dangs'), + ('danio'), + ('danks'), + ('danny'), + ('dants'), + ('daraf'), + ('darbs'), + ('darcy'), + ('dared'), + ('darer'), + ('dares'), + ('darga'), + ('dargs'), + ('daric'), + ('daris'), + ('darks'), + ('darky'), + ('darns'), + ('darre'), + ('darts'), + ('darzi'), + ('dashi'), + ('dashy'), + ('datal'), + ('dated'), + ('dater'), + ('dates'), + ('datos'), + ('datto'), + ('datum'), + ('daube'), + ('daubs'), + ('dauby'), + ('dauds'), + ('dault'), + ('daunt'), + ('daurs'), + ('dauts'), + ('daven'), + ('davit'), + ('dawah'), + ('dawds'), + ('dawed'), + ('dawen'), + ('dawks'), + ('dawns'), + ('dawts'), + ('dayan'), + ('daych'), + ('daynt'), + ('dazed'), + ('dazer'), + ('dazes'), + ('deads'), + ('deair'), + ('deals'), + ('dealt'), + ('deans'), + ('deare'), + ('dearn'), + ('dears'), + ('deary'), + ('deash'), + ('death'), + ('deave'), + ('deaws'), + ('deawy'), + ('debag'), + ('debar'), + ('debby'), + ('debel'), + ('debes'), + ('debit'), + ('debts'), + ('debud'), + ('debug'), + ('debur'), + ('debus'), + ('debut'), + ('debye'), + ('decad'), + ('decaf'), + ('decal'), + ('decan'), + ('decay'), + ('decko'), + ('decks'), + ('decor'), + ('decos'), + ('decoy'), + ('decry'), + ('dedal'), + ('deeds'), + ('deedy'), + ('deely'), + ('deems'), + ('deens'), + ('deeps'), + ('deere'), + ('deers'), + ('deets'), + ('deeve'), + ('deevs'), + ('defat'), + ('defer'), + ('deffo'), + ('defis'), + ('defog'), + ('degas'), + ('degum'), + ('degus'), + ('deice'), + ('deids'), + ('deify'), + ('deign'), + ('deils'), + ('deism'), + ('deist'), + ('deity'), + ('deked'), + ('dekes'), + ('dekko'), + ('delay'), + ('deled'), + ('deles'), + ('delfs'), + ('delft'), + ('delis'), + ('dells'), + ('delly'), + ('delos'), + ('delph'), + ('delta'), + ('delts'), + ('delve'), + ('deman'), + ('demes'), + ('demic'), + ('demit'), + ('demob'), + ('demoi'), + ('demon'), + ('demos'), + ('dempt'), + ('demur'), + ('denar'), + ('denay'), + ('dench'), + ('denes'), + ('denet'), + ('denim'), + ('denis'), + ('dense'), + ('dents'), + ('deoxy'), + ('depot'), + ('depth'), + ('derat'), + ('deray'), + ('derby'), + ('dered'), + ('deres'), + ('derig'), + ('derma'), + ('derms'), + ('derns'), + ('derny'), + ('deros'), + ('derro'), + ('derry'), + ('derth'), + ('dervs'), + ('desex'), + ('deshi'), + ('desis'), + ('desks'), + ('desse'), + ('deter'), + ('detox'), + ('deuce'), + ('devas'), + ('devel'), + ('devil'), + ('devis'), + ('devon'), + ('devos'), + ('devot'), + ('dewan'), + ('dewar'), + ('dewax'), + ('dewed'), + ('dexes'), + ('dexie'), + ('dhaba'), + ('dhaks'), + ('dhals'), + ('dhikr'), + ('dhobi'), + ('dhole'), + ('dholl'), + ('dhols'), + ('dhoti'), + ('dhows'), + ('dhuti'), + ('diact'), + ('dials'), + ('diane'), + ('diary'), + ('diazo'), + ('dibbs'), + ('diced'), + ('dicer'), + ('dices'), + ('dicey'), + ('dicht'), + ('dicks'), + ('dicky'), + ('dicot'), + ('dicta'), + ('dicts'), + ('dicty'), + ('diddy'), + ('didie'), + ('didos'), + ('didst'), + ('diebs'), + ('diels'), + ('diene'), + ('diets'), + ('diffs'), + ('dight'), + ('digit'), + ('dikas'), + ('diked'), + ('diker'), + ('dikes'), + ('dikey'), + ('dildo'), + ('dilli'), + ('dills'), + ('dilly'), + ('dimbo'), + ('dimer'), + ('dimes'), + ('dimly'), + ('dimps'), + ('dinar'), + ('dined'), + ('diner'), + ('dines'), + ('dinge'), + ('dingo'), + ('dings'), + ('dingy'), + ('dinic'), + ('dinks'), + ('dinky'), + ('dinna'), + ('dinos'), + ('dints'), + ('diode'), + ('diols'), + ('diota'), + ('dippy'), + ('dipso'), + ('diram'), + ('direr'), + ('dirge'), + ('dirke'), + ('dirks'), + ('dirls'), + ('dirts'), + ('dirty'), + ('disas'), + ('disci'), + ('disco'), + ('discs'), + ('dishy'), + ('disks'), + ('disme'), + ('dital'), + ('ditas'), + ('ditch'), + ('dited'), + ('dites'), + ('ditsy'), + ('ditto'), + ('ditts'), + ('ditty'), + ('ditzy'), + ('divan'), + ('divas'), + ('dived'), + ('diver'), + ('dives'), + ('divis'), + ('divna'), + ('divos'), + ('divot'), + ('divvy'), + ('diwan'), + ('dixie'), + ('dixit'), + ('diyas'), + ('dizen'), + ('dizzy'), + ('djinn'), + ('djins'), + ('doabs'), + ('doats'), + ('dobby'), + ('dobes'), + ('dobie'), + ('dobla'), + ('dobra'), + ('dobro'), + ('docht'), + ('docks'), + ('docos'), + ('docus'), + ('doddy'), + ('dodge'), + ('dodgy'), + ('dodos'), + ('doeks'), + ('doers'), + ('doest'), + ('doeth'), + ('doffs'), + ('dogan'), + ('doges'), + ('dogey'), + ('doggo'), + ('doggy'), + ('dogie'), + ('dogma'), + ('dohyo'), + ('doilt'), + ('doily'), + ('doing'), + ('doits'), + ('dojos'), + ('dolce'), + ('dolci'), + ('doled'), + ('doles'), + ('dolia'), + ('dolls'), + ('dolly'), + ('dolma'), + ('dolor'), + ('dolos'), + ('dolts'), + ('domal'), + ('domed'), + ('domes'), + ('domic'), + ('donah'), + ('donas'), + ('donee'), + ('doner'), + ('donga'), + ('dongs'), + ('donko'), + ('donna'), + ('donne'), + ('donny'), + ('donor'), + ('donsy'), + ('donut'), + ('doobs'), + ('dooce'), + ('doody'), + ('dooks'), + ('doole'), + ('dools'), + ('dooly'), + ('dooms'), + ('doomy'), + ('doona'), + ('doorn'), + ('doors'), + ('doozy'), + ('dopas'), + ('doped'), + ('doper'), + ('dopes'), + ('dopey'), + ('dorad'), + ('dorba'), + ('dorbs'), + ('doree'), + ('dores'), + ('doric'), + ('doris'), + ('dorks'), + ('dorky'), + ('dorms'), + ('dormy'), + ('dorps'), + ('dorrs'), + ('dorsa'), + ('dorse'), + ('dorts'), + ('dorty'), + ('dosai'), + ('dosas'), + ('dosed'), + ('doseh'), + ('doser'), + ('doses'), + ('dosha'), + ('dotal'), + ('doted'), + ('doter'), + ('dotes'), + ('dotty'), + ('douar'), + ('doubt'), + ('douce'), + ('doucs'), + ('dough'), + ('douks'), + ('doula'), + ('douma'), + ('doums'), + ('doups'), + ('doura'), + ('douse'), + ('douts'), + ('doved'), + ('doven'), + ('dover'), + ('doves'), + ('dovie'), + ('dowar'), + ('dowds'), + ('dowdy'), + ('dowed'), + ('dowel'), + ('dower'), + ('dowie'), + ('dowle'), + ('dowls'), + ('dowly'), + ('downa'), + ('downs'), + ('downy'), + ('dowps'), + ('dowry'), + ('dowse'), + ('dowts'), + ('doxed'), + ('doxes'), + ('doxie'), + ('doyen'), + ('doyly'), + ('dozed'), + ('dozen'), + ('dozer'), + ('dozes'), + ('drabs'), + ('drack'), + ('draco'), + ('draff'), + ('draft'), + ('drags'), + ('drail'), + ('drain'), + ('drake'), + ('drama'), + ('drams'), + ('drank'), + ('drant'), + ('drape'), + ('draps'), + ('drats'), + ('drave'), + ('drawl'), + ('drawn'), + ('draws'), + ('drays'), + ('dread'), + ('dream'), + ('drear'), + ('dreck'), + ('dreed'), + ('dreer'), + ('drees'), + ('dregs'), + ('dreks'), + ('drent'), + ('drere'), + ('dress'), + ('drest'), + ('dreys'), + ('dribs'), + ('drice'), + ('dried'), + ('drier'), + ('dries'), + ('drift'), + ('drill'), + ('drily'), + ('drink'), + ('drips'), + ('dript'), + ('drive'), + ('droid'), + ('droil'), + ('droit'), + ('droke'), + ('drole'), + ('droll'), + ('drome'), + ('drone'), + ('drony'), + ('droob'), + ('droog'), + ('drook'), + ('drool'), + ('droop'), + ('drops'), + ('dropt'), + ('dross'), + ('drouk'), + ('drove'), + ('drown'), + ('drows'), + ('drubs'), + ('drugs'), + ('druid'), + ('drums'), + ('drunk'), + ('drupe'), + ('druse'), + ('drusy'), + ('druxy'), + ('dryad'), + ('dryas'), + ('dryer'), + ('dryly'), + ('dsobo'), + ('dsomo'), + ('duads'), + ('duals'), + ('duans'), + ('duars'), + ('dubbo'), + ('ducal'), + ('ducat'), + ('duces'), + ('duchy'), + ('ducks'), + ('ducky'), + ('ducts'), + ('duddy'), + ('duded'), + ('dudes'), + ('duels'), + ('duets'), + ('duett'), + ('duffs'), + ('dufus'), + ('duing'), + ('duits'), + ('dukas'), + ('duked'), + ('dukes'), + ('dukka'), + ('dulce'), + ('dules'), + ('dulia'), + ('dulls'), + ('dully'), + ('dulse'), + ('dumas'), + ('dumbo'), + ('dumbs'), + ('dumka'), + ('dumky'), + ('dummy'), + ('dumps'), + ('dumpy'), + ('dunam'), + ('dunce'), + ('dunch'), + ('dunes'), + ('dungs'), + ('dungy'), + ('dunks'), + ('dunno'), + ('dunny'), + ('dunsh'), + ('dunts'), + ('duomi'), + ('duomo'), + ('duped'), + ('duper'), + ('dupes'), + ('duple'), + ('duply'), + ('duppy'), + ('dural'), + ('duras'), + ('dured'), + ('dures'), + ('durgy'), + ('durns'), + ('duroc'), + ('duros'), + ('duroy'), + ('durra'), + ('durrs'), + ('durry'), + ('durst'), + ('durum'), + ('durzi'), + ('dusks'), + ('dusky'), + ('dusts'), + ('dusty'), + ('dutch'), + ('duvet'), + ('duxes'), + ('dwaal'), + ('dwale'), + ('dwalm'), + ('dwams'), + ('dwang'), + ('dwarf'), + ('dwaum'), + ('dweeb'), + ('dwell'), + ('dwelt'), + ('dwile'), + ('dwine'), + ('dyads'), + ('dyers'), + ('dying'), + ('dyked'), + ('dykes'), + ('dykey'), + ('dykon'), + ('dynel'), + ('dynes'), + ('dzhos'), + ('eager'), + ('eagle'), + ('eagre'), + ('ealed'), + ('eales'), + ('eaned'), + ('eards'), + ('eared'), + ('earls'), + ('early'), + ('earns'), + ('earnt'), + ('earst'), + ('earth'), + ('eased'), + ('easel'), + ('easer'), + ('eases'), + ('easle'), + ('easts'), + ('eaten'), + ('eater'), + ('eathe'), + ('eaved'), + ('eaves'), + ('ebbed'), + ('ebbet'), + ('ebons'), + ('ebony'), + ('ebook'), + ('ecads'), + ('eched'), + ('eches'), + ('echos'), + ('eclat'), + ('ecrus'), + ('edema'), + ('edged'), + ('edger'), + ('edges'), + ('edict'), + ('edify'), + ('edile'), + ('edits'), + ('educe'), + ('educt'), + ('eejit'), + ('eensy'), + ('eerie'), + ('eeven'), + ('eevns'), + ('effed'), + ('egads'), + ('egers'), + ('egest'), + ('eggar'), + ('egged'), + ('egger'), + ('egmas'), + ('egret'), + ('ehing'), + ('eider'), + ('eidos'), + ('eight'), + ('eigne'), + ('eiked'), + ('eikon'), + ('eilds'), + ('eisel'), + ('eject'), + ('ejido'), + ('eking'), + ('ekkas'), + ('elain'), + ('eland'), + ('elans'), + ('elate'), + ('elbow'), + ('elchi'), + ('elder'), + ('eldin'), + ('elect'), + ('elegy'), + ('elemi'), + ('elfed'), + ('elfin'), + ('eliad'), + ('elide'), + ('elint'), + ('elite'), + ('elmen'), + ('eloge'), + ('elogy'), + ('eloin'), + ('elope'), + ('elops'), + ('elpee'), + ('elsin'), + ('elude'), + ('elute'), + ('elvan'), + ('elven'), + ('elver'), + ('elves'), + ('emacs'), + ('email'), + ('embar'), + ('embay'), + ('embed'), + ('ember'), + ('embog'), + ('embow'), + ('embox'), + ('embus'), + ('emcee'), + ('emeer'), + ('emend'), + ('emerg'), + ('emery'), + ('emeus'), + ('emics'), + ('emirs'), + ('emits'), + ('emmas'), + ('emmer'), + ('emmet'), + ('emmew'), + ('emmys'), + ('emoji'), + ('emong'), + ('emote'), + ('emove'), + ('empts'), + ('empty'), + ('emule'), + ('emure'), + ('emyde'), + ('emyds'), + ('enact'), + ('enarm'), + ('enate'), + ('ended'), + ('ender'), + ('endew'), + ('endow'), + ('endue'), + ('enema'), + ('enemy'), + ('enews'), + ('enfix'), + ('eniac'), + ('enjoy'), + ('enlit'), + ('enmew'), + ('ennog'), + ('ennui'), + ('enoki'), + ('enols'), + ('enorm'), + ('enows'), + ('enrol'), + ('ensew'), + ('ensky'), + ('ensue'), + ('enter'), + ('entia'), + ('entry'), + ('enure'), + ('enurn'), + ('envoi'), + ('envoy'), + ('enzym'), + ('eorls'), + ('eosin'), + ('epact'), + ('epees'), + ('ephah'), + ('ephas'), + ('ephod'), + ('ephor'), + ('epics'), + ('epoch'), + ('epode'), + ('epopt'), + ('epoxy'), + ('epris'), + ('equal'), + ('eques'), + ('equid'), + ('equip'), + ('erase'), + ('erbia'), + ('erect'), + ('erevs'), + ('ergon'), + ('ergos'), + ('ergot'), + ('erhus'), + ('erica'), + ('erick'), + ('erics'), + ('ering'), + ('erned'), + ('ernes'), + ('erode'), + ('erose'), + ('erred'), + ('error'), + ('erses'), + ('eruct'), + ('erugo'), + ('erupt'), + ('eruvs'), + ('erven'), + ('ervil'), + ('escar'), + ('escot'), + ('esile'), + ('eskar'), + ('esker'), + ('esnes'), + ('essay'), + ('esses'), + ('ester'), + ('estoc'), + ('estop'), + ('estro'), + ('etage'), + ('etape'), + ('etats'), + ('etens'), + ('ethal'), + ('ether'), + ('ethic'), + ('ethne'), + ('ethos'), + ('ethyl'), + ('etics'), + ('etnas'), + ('ettin'), + ('ettle'), + ('etude'), + ('etuis'), + ('etwee'), + ('etyma'), + ('eughs'), + ('euked'), + ('eupad'), + ('euros'), + ('eusol'), + ('evade'), + ('evens'), + ('event'), + ('evert'), + ('every'), + ('evets'), + ('evhoe'), + ('evict'), + ('evils'), + ('evite'), + ('evohe'), + ('evoke'), + ('ewers'), + ('ewest'), + ('ewhow'), + ('ewked'), + ('exact'), + ('exalt'), + ('exams'), + ('excel'), + ('exeat'), + ('execs'), + ('exeem'), + ('exeme'), + ('exert'), + ('exfil'), + ('exies'), + ('exile'), + ('exine'), + ('exing'), + ('exist'), + ('exits'), + ('exode'), + ('exome'), + ('exons'), + ('expat'), + ('expel'), + ('expos'), + ('extol'), + ('extra'), + ('exude'), + ('exuls'), + ('exult'), + ('exurb'), + ('eyass'), + ('eyers'), + ('eying'), + ('eyots'), + ('eyras'), + ('eyres'), + ('eyrie'), + ('eyrir'), + ('ezine'), + ('fabby'), + ('fable'), + ('faced'), + ('facer'), + ('faces'), + ('facet'), + ('facia'), + ('facta'), + ('facts'), + ('faddy'), + ('faded'), + ('fader'), + ('fades'), + ('fadge'), + ('fados'), + ('faena'), + ('faery'), + ('faffs'), + ('faffy'), + ('faggy'), + ('fagin'), + ('fagot'), + ('faiks'), + ('fails'), + ('faine'), + ('fains'), + ('faint'), + ('fairs'), + ('fairy'), + ('faith'), + ('faked'), + ('faker'), + ('fakes'), + ('fakey'), + ('fakie'), + ('fakir'), + ('falaj'), + ('falls'), + ('false'), + ('famed'), + ('fames'), + ('fanal'), + ('fancy'), + ('fands'), + ('fanes'), + ('fanga'), + ('fango'), + ('fangs'), + ('fanks'), + ('fanny'), + ('fanon'), + ('fanos'), + ('fanum'), + ('faqir'), + ('farad'), + ('farce'), + ('farci'), + ('farcy'), + ('fards'), + ('fared'), + ('farer'), + ('fares'), + ('farle'), + ('farls'), + ('farms'), + ('faros'), + ('farro'), + ('farse'), + ('farts'), + ('fasci'), + ('fasti'), + ('fasts'), + ('fatal'), + ('fated'), + ('fates'), + ('fatly'), + ('fatso'), + ('fatty'), + ('fatwa'), + ('faugh'), + ('fauld'), + ('fault'), + ('fauna'), + ('fauns'), + ('faurd'), + ('fauts'), + ('fauve'), + ('favas'), + ('favel'), + ('faver'), + ('faves'), + ('favor'), + ('favus'), + ('fawns'), + ('fawny'), + ('faxed'), + ('faxes'), + ('fayed'), + ('fayer'), + ('fayne'), + ('fayre'), + ('fazed'), + ('fazes'), + ('feals'), + ('feare'), + ('fears'), + ('feart'), + ('fease'), + ('feast'), + ('feats'), + ('feaze'), + ('fecal'), + ('feces'), + ('fecht'), + ('fecit'), + ('fecks'), + ('fedex'), + ('feebs'), + ('feeds'), + ('feels'), + ('feens'), + ('feers'), + ('feese'), + ('feeze'), + ('fehme'), + ('feign'), + ('feint'), + ('feist'), + ('felch'), + ('felid'), + ('fella'), + ('fells'), + ('felly'), + ('felon'), + ('felts'), + ('felty'), + ('femal'), + ('femes'), + ('femme'), + ('femmy'), + ('femur'), + ('fence'), + ('fends'), + ('fendy'), + ('fenis'), + ('fenks'), + ('fenny'), + ('fents'), + ('feods'), + ('feoff'), + ('feral'), + ('ferer'), + ('feres'), + ('feria'), + ('ferly'), + ('fermi'), + ('ferms'), + ('ferns'), + ('ferny'), + ('ferry'), + ('fesse'), + ('festa'), + ('fests'), + ('festy'), + ('fetal'), + ('fetas'), + ('fetch'), + ('feted'), + ('fetes'), + ('fetid'), + ('fetor'), + ('fetta'), + ('fetts'), + ('fetus'), + ('fetwa'), + ('feuar'), + ('feuds'), + ('feued'), + ('fever'), + ('fewer'), + ('feyed'), + ('feyer'), + ('feyly'), + ('fezes'), + ('fezzy'), + ('fiars'), + ('fiats'), + ('fiber'), + ('fibre'), + ('fibro'), + ('fices'), + ('fiche'), + ('fichu'), + ('ficin'), + ('ficos'), + ('ficus'), + ('fides'), + ('fidge'), + ('fidos'), + ('fiefs'), + ('field'), + ('fiend'), + ('fient'), + ('fiere'), + ('fiers'), + ('fiery'), + ('fiest'), + ('fifed'), + ('fifer'), + ('fifes'), + ('fifis'), + ('fifth'), + ('fifty'), + ('figgy'), + ('fight'), + ('figos'), + ('fiked'), + ('fikes'), + ('filar'), + ('filch'), + ('filed'), + ('filer'), + ('files'), + ('filet'), + ('filii'), + ('filks'), + ('fille'), + ('fillo'), + ('fills'), + ('filly'), + ('filmi'), + ('films'), + ('filmy'), + ('filos'), + ('filth'), + ('filum'), + ('final'), + ('finca'), + ('finch'), + ('finds'), + ('fined'), + ('finer'), + ('fines'), + ('finis'), + ('finks'), + ('finny'), + ('finos'), + ('fiord'), + ('fiqhs'), + ('fique'), + ('fired'), + ('firer'), + ('fires'), + ('firie'), + ('firks'), + ('firms'), + ('firns'), + ('firry'), + ('first'), + ('firth'), + ('fiscs'), + ('fishy'), + ('fisks'), + ('fists'), + ('fisty'), + ('fitch'), + ('fitly'), + ('fitna'), + ('fitte'), + ('fitts'), + ('fiver'), + ('fives'), + ('fixed'), + ('fixer'), + ('fixes'), + ('fixit'), + ('fizzy'), + ('fjeld'), + ('fjord'), + ('flabs'), + ('flack'), + ('flaff'), + ('flags'), + ('flail'), + ('flair'), + ('flake'), + ('flaks'), + ('flaky'), + ('flame'), + ('flamm'), + ('flams'), + ('flamy'), + ('flane'), + ('flank'), + ('flans'), + ('flaps'), + ('flare'), + ('flary'), + ('flash'), + ('flask'), + ('flats'), + ('flava'), + ('flawn'), + ('flaws'), + ('flawy'), + ('flaxy'), + ('flays'), + ('fleam'), + ('fleas'), + ('fleck'), + ('fleek'), + ('fleer'), + ('flees'), + ('fleet'), + ('flegs'), + ('fleme'), + ('flesh'), + ('fleur'), + ('flews'), + ('flexi'), + ('flexo'), + ('fleys'), + ('flick'), + ('flics'), + ('flied'), + ('flier'), + ('flies'), + ('flimp'), + ('flims'), + ('fling'), + ('flint'), + ('flips'), + ('flirs'), + ('flirt'), + ('flisk'), + ('flite'), + ('flits'), + ('flitt'), + ('float'), + ('flobs'), + ('flock'), + ('flocs'), + ('floes'), + ('flogs'), + ('flong'), + ('flood'), + ('floor'), + ('flops'), + ('flora'), + ('flors'), + ('flory'), + ('flosh'), + ('floss'), + ('flota'), + ('flote'), + ('flour'), + ('flout'), + ('flown'), + ('flows'), + ('flubs'), + ('flued'), + ('flues'), + ('fluey'), + ('fluff'), + ('fluid'), + ('fluke'), + ('fluky'), + ('flume'), + ('flump'), + ('flung'), + ('flunk'), + ('fluor'), + ('flurr'), + ('flush'), + ('flute'), + ('fluty'), + ('fluyt'), + ('flyby'), + ('flyer'), + ('flype'), + ('flyte'), + ('foals'), + ('foams'), + ('foamy'), + ('focal'), + ('focus'), + ('foehn'), + ('fogey'), + ('foggy'), + ('fogie'), + ('fogle'), + ('fogou'), + ('fohns'), + ('foids'), + ('foils'), + ('foins'), + ('foist'), + ('folds'), + ('foley'), + ('folia'), + ('folic'), + ('folie'), + ('folio'), + ('folks'), + ('folky'), + ('folly'), + ('fomes'), + ('fonda'), + ('fonds'), + ('fondu'), + ('fones'), + ('fonly'), + ('fonts'), + ('foods'), + ('foody'), + ('fools'), + ('foots'), + ('footy'), + ('foram'), + ('foray'), + ('forbs'), + ('forby'), + ('force'), + ('fordo'), + ('fords'), + ('forel'), + ('fores'), + ('forex'), + ('forge'), + ('forgo'), + ('forks'), + ('forky'), + ('forme'), + ('forms'), + ('forte'), + ('forth'), + ('forts'), + ('forty'), + ('forum'), + ('forza'), + ('forze'), + ('fossa'), + ('fosse'), + ('fouat'), + ('fouds'), + ('fouer'), + ('fouet'), + ('foule'), + ('fouls'), + ('found'), + ('fount'), + ('fours'), + ('fouth'), + ('fovea'), + ('fowls'), + ('fowth'), + ('foxed'), + ('foxes'), + ('foxie'), + ('foyer'), + ('foyle'), + ('foyne'), + ('frabs'), + ('frack'), + ('fract'), + ('frags'), + ('frail'), + ('fraim'), + ('frame'), + ('franc'), + ('frank'), + ('frape'), + ('fraps'), + ('frass'), + ('frate'), + ('frati'), + ('frats'), + ('fraud'), + ('fraus'), + ('frays'), + ('freak'), + ('freed'), + ('freer'), + ('frees'), + ('freet'), + ('freit'), + ('fremd'), + ('frena'), + ('freon'), + ('frere'), + ('fresh'), + ('frets'), + ('friar'), + ('fribs'), + ('fried'), + ('frier'), + ('fries'), + ('frigs'), + ('frill'), + ('frise'), + ('frisk'), + ('frist'), + ('frith'), + ('frits'), + ('fritt'), + ('fritz'), + ('frize'), + ('frizz'), + ('frock'), + ('froes'), + ('frogs'), + ('frond'), + ('frons'), + ('front'), + ('frore'), + ('frorn'), + ('frory'), + ('frosh'), + ('frost'), + ('froth'), + ('frown'), + ('frows'), + ('frowy'), + ('froze'), + ('frugs'), + ('fruit'), + ('frump'), + ('frush'), + ('frust'), + ('fryer'), + ('fubar'), + ('fubby'), + ('fubsy'), + ('fucks'), + ('fucus'), + ('fuddy'), + ('fudge'), + ('fudgy'), + ('fuels'), + ('fuero'), + ('fuffs'), + ('fuffy'), + ('fugal'), + ('fuggy'), + ('fugie'), + ('fugio'), + ('fugle'), + ('fugly'), + ('fugue'), + ('fugus'), + ('fujis'), + ('fulls'), + ('fully'), + ('fumed'), + ('fumer'), + ('fumes'), + ('fumet'), + ('fundi'), + ('funds'), + ('fundy'), + ('fungi'), + ('fungo'), + ('fungs'), + ('funks'), + ('funky'), + ('funny'), + ('fural'), + ('furan'), + ('furca'), + ('furls'), + ('furol'), + ('furor'), + ('furrs'), + ('furry'), + ('furth'), + ('furze'), + ('furzy'), + ('fused'), + ('fusee'), + ('fusel'), + ('fuses'), + ('fusil'), + ('fusks'), + ('fussy'), + ('fusts'), + ('fusty'), + ('futon'), + ('fuzed'), + ('fuzee'), + ('fuzes'), + ('fuzil'), + ('fuzzy'), + ('fyces'), + ('fyked'), + ('fykes'), + ('fyles'), + ('fyrds'), + ('fytte'), + ('gabba'), + ('gabby'), + ('gable'), + ('gaddi'), + ('gades'), + ('gadge'), + ('gadid'), + ('gadis'), + ('gadje'), + ('gadjo'), + ('gadso'), + ('gaffe'), + ('gaffs'), + ('gaged'), + ('gager'), + ('gages'), + ('gaids'), + ('gaily'), + ('gains'), + ('gairs'), + ('gaita'), + ('gaits'), + ('gaitt'), + ('gajos'), + ('galah'), + ('galas'), + ('galax'), + ('galea'), + ('galed'), + ('gales'), + ('galls'), + ('gally'), + ('galop'), + ('galut'), + ('galvo'), + ('gamas'), + ('gamay'), + ('gamba'), + ('gambe'), + ('gambo'), + ('gambs'), + ('gamed'), + ('gamer'), + ('games'), + ('gamey'), + ('gamic'), + ('gamin'), + ('gamma'), + ('gamme'), + ('gammy'), + ('gamps'), + ('gamut'), + ('ganch'), + ('gandy'), + ('ganef'), + ('ganev'), + ('gangs'), + ('ganja'), + ('ganof'), + ('gants'), + ('gaols'), + ('gaped'), + ('gaper'), + ('gapes'), + ('gapos'), + ('gappy'), + ('garbe'), + ('garbo'), + ('garbs'), + ('garda'), + ('gares'), + ('garis'), + ('garms'), + ('garni'), + ('garre'), + ('garth'), + ('garum'), + ('gases'), + ('gasps'), + ('gaspy'), + ('gassy'), + ('gasts'), + ('gatch'), + ('gated'), + ('gater'), + ('gates'), + ('gaths'), + ('gator'), + ('gauch'), + ('gaucy'), + ('gauds'), + ('gaudy'), + ('gauge'), + ('gauje'), + ('gault'), + ('gaums'), + ('gaumy'), + ('gaunt'), + ('gaups'), + ('gaurs'), + ('gauss'), + ('gauze'), + ('gauzy'), + ('gavel'), + ('gavot'), + ('gawcy'), + ('gawds'), + ('gawks'), + ('gawky'), + ('gawps'), + ('gawsy'), + ('gayal'), + ('gayer'), + ('gayly'), + ('gazal'), + ('gazar'), + ('gazed'), + ('gazer'), + ('gazes'), + ('gazon'), + ('gazoo'), + ('geals'), + ('geans'), + ('geare'), + ('gears'), + ('geats'), + ('gebur'), + ('gecko'), + ('gecks'), + ('geeks'), + ('geeky'), + ('geeps'), + ('geese'), + ('geest'), + ('geist'), + ('geits'), + ('gelds'), + ('gelee'), + ('gelid'), + ('gelly'), + ('gelts'), + ('gemel'), + ('gemma'), + ('gemmy'), + ('gemot'), + ('genal'), + ('genas'), + ('genes'), + ('genet'), + ('genic'), + ('genie'), + ('genii'), + ('genip'), + ('genny'), + ('genoa'), + ('genom'), + ('genre'), + ('genro'), + ('gents'), + ('genty'), + ('genua'), + ('genus'), + ('geode'), + ('geoid'), + ('gerah'), + ('gerbe'), + ('geres'), + ('gerle'), + ('germs'), + ('germy'), + ('gerne'), + ('gesse'), + ('gesso'), + ('geste'), + ('gests'), + ('getas'), + ('getup'), + ('geums'), + ('geyan'), + ('geyer'), + ('ghast'), + ('ghats'), + ('ghaut'), + ('ghazi'), + ('ghees'), + ('ghest'), + ('ghost'), + ('ghoul'), + ('ghyll'), + ('giant'), + ('gibed'), + ('gibel'), + ('giber'), + ('gibes'), + ('gibli'), + ('gibus'), + ('giddy'), + ('gifts'), + ('gigas'), + ('gighe'), + ('gigot'), + ('gigue'), + ('gilas'), + ('gilds'), + ('gilet'), + ('gills'), + ('gilly'), + ('gilpy'), + ('gilts'), + ('gimel'), + ('gimme'), + ('gimps'), + ('gimpy'), + ('ginch'), + ('ginge'), + ('gings'), + ('ginks'), + ('ginny'), + ('ginzo'), + ('gipon'), + ('gippo'), + ('gippy'), + ('gipsy'), + ('girds'), + ('girls'), + ('girly'), + ('girns'), + ('giron'), + ('giros'), + ('girrs'), + ('girsh'), + ('girth'), + ('girts'), + ('gismo'), + ('gisms'), + ('gists'), + ('gitch'), + ('gites'), + ('giust'), + ('gived'), + ('given'), + ('giver'), + ('gives'), + ('gizmo'), + ('glace'), + ('glade'), + ('glads'), + ('glady'), + ('glaik'), + ('glair'), + ('glams'), + ('gland'), + ('glans'), + ('glare'), + ('glary'), + ('glass'), + ('glaum'), + ('glaur'), + ('glaze'), + ('glazy'), + ('gleam'), + ('glean'), + ('gleba'), + ('glebe'), + ('gleby'), + ('glede'), + ('gleds'), + ('gleed'), + ('gleek'), + ('glees'), + ('gleet'), + ('gleis'), + ('glens'), + ('glent'), + ('gleys'), + ('glial'), + ('glias'), + ('glibs'), + ('glide'), + ('gliff'), + ('glift'), + ('glike'), + ('glime'), + ('glims'), + ('glint'), + ('glisk'), + ('glits'), + ('glitz'), + ('gloam'), + ('gloat'), + ('globe'), + ('globi'), + ('globs'), + ('globy'), + ('glode'), + ('glogg'), + ('gloms'), + ('gloom'), + ('gloop'), + ('glops'), + ('glory'), + ('gloss'), + ('glost'), + ('glout'), + ('glove'), + ('glows'), + ('gloze'), + ('glued'), + ('gluer'), + ('glues'), + ('gluey'), + ('glugs'), + ('glume'), + ('glums'), + ('gluon'), + ('glute'), + ('gluts'), + ('glyph'), + ('gnarl'), + ('gnarr'), + ('gnars'), + ('gnash'), + ('gnats'), + ('gnawn'), + ('gnaws'), + ('gnome'), + ('gnows'), + ('goads'), + ('goafs'), + ('goals'), + ('goary'), + ('goats'), + ('goaty'), + ('goban'), + ('gobar'), + ('gobbi'), + ('gobbo'), + ('gobby'), + ('gobis'), + ('gobos'), + ('godet'), + ('godly'), + ('godso'), + ('goels'), + ('goers'), + ('goest'), + ('goeth'), + ('goety'), + ('gofer'), + ('goffs'), + ('gogga'), + ('gogos'), + ('goier'), + ('going'), + ('gojis'), + ('golds'), + ('goldy'), + ('golem'), + ('goles'), + ('golfs'), + ('golly'), + ('golpe'), + ('golps'), + ('gombo'), + ('gomer'), + ('gompa'), + ('gonad'), + ('gonch'), + ('gonef'), + ('goner'), + ('gongs'), + ('gonia'), + ('gonif'), + ('gonks'), + ('gonna'), + ('gonof'), + ('gonys'), + ('gonzo'), + ('gooby'), + ('goods'), + ('goody'), + ('gooey'), + ('goofs'), + ('goofy'), + ('googs'), + ('gooks'), + ('gooky'), + ('goold'), + ('gools'), + ('gooly'), + ('goons'), + ('goony'), + ('goops'), + ('goopy'), + ('goors'), + ('goory'), + ('goose'), + ('goosy'), + ('gopak'), + ('gopik'), + ('goral'), + ('goras'), + ('gored'), + ('gores'), + ('gorge'), + ('goris'), + ('gorms'), + ('gormy'), + ('gorps'), + ('gorse'), + ('gorsy'), + ('gosht'), + ('gosse'), + ('gotch'), + ('goths'), + ('gothy'), + ('gotta'), + ('gouch'), + ('gouge'), + ('gouks'), + ('goura'), + ('gourd'), + ('gouts'), + ('gouty'), + ('gowan'), + ('gowds'), + ('gowfs'), + ('gowks'), + ('gowls'), + ('gowns'), + ('goxes'), + ('goyim'), + ('goyle'), + ('graal'), + ('grabs'), + ('grace'), + ('grade'), + ('grads'), + ('graff'), + ('graft'), + ('grail'), + ('grain'), + ('graip'), + ('grama'), + ('grame'), + ('gramp'), + ('grams'), + ('grana'), + ('grand'), + ('grans'), + ('grant'), + ('grape'), + ('graph'), + ('grapy'), + ('grasp'), + ('grass'), + ('grate'), + ('grave'), + ('gravs'), + ('gravy'), + ('grays'), + ('graze'), + ('great'), + ('grebe'), + ('grebo'), + ('grece'), + ('greed'), + ('greek'), + ('green'), + ('grees'), + ('greet'), + ('grege'), + ('grego'), + ('grein'), + ('grens'), + ('grese'), + ('greve'), + ('grews'), + ('greys'), + ('grice'), + ('gride'), + ('grids'), + ('grief'), + ('griff'), + ('grift'), + ('grigs'), + ('grike'), + ('grill'), + ('grime'), + ('grimy'), + ('grind'), + ('grins'), + ('griot'), + ('gripe'), + ('grips'), + ('gript'), + ('gripy'), + ('grise'), + ('grist'), + ('grisy'), + ('grith'), + ('grits'), + ('grize'), + ('groan'), + ('groat'), + ('grody'), + ('grogs'), + ('groin'), + ('groks'), + ('groma'), + ('grone'), + ('groof'), + ('groom'), + ('grope'), + ('gross'), + ('grosz'), + ('grots'), + ('grouf'), + ('group'), + ('grout'), + ('grove'), + ('grovy'), + ('growl'), + ('grown'), + ('grows'), + ('grrls'), + ('grrrl'), + ('grubs'), + ('grued'), + ('gruel'), + ('grues'), + ('grufe'), + ('gruff'), + ('grume'), + ('grump'), + ('grund'), + ('grunt'), + ('gryce'), + ('gryde'), + ('gryke'), + ('grype'), + ('grypt'), + ('guaco'), + ('guana'), + ('guano'), + ('guans'), + ('guard'), + ('guars'), + ('guava'), + ('gucks'), + ('gucky'), + ('gudes'), + ('guess'), + ('guest'), + ('guffs'), + ('gugas'), + ('guide'), + ('guids'), + ('guild'), + ('guile'), + ('guilt'), + ('guimp'), + ('guiro'), + ('guise'), + ('gulag'), + ('gular'), + ('gulas'), + ('gulch'), + ('gules'), + ('gulet'), + ('gulfs'), + ('gulfy'), + ('gulls'), + ('gully'), + ('gulph'), + ('gulps'), + ('gulpy'), + ('gumbo'), + ('gumma'), + ('gummi'), + ('gummy'), + ('gumps'), + ('gundy'), + ('gunge'), + ('gungy'), + ('gunks'), + ('gunky'), + ('gunny'), + ('guppy'), + ('guqin'), + ('gurdy'), + ('gurge'), + ('gurls'), + ('gurly'), + ('gurns'), + ('gurry'), + ('gursh'), + ('gurus'), + ('gushy'), + ('gusla'), + ('gusle'), + ('gusli'), + ('gussy'), + ('gusto'), + ('gusts'), + ('gusty'), + ('gutsy'), + ('gutta'), + ('gutty'), + ('guyed'), + ('guyle'), + ('guyot'), + ('guyse'), + ('gwine'), + ('gyals'), + ('gyans'), + ('gybed'), + ('gybes'), + ('gyeld'), + ('gymps'), + ('gynae'), + ('gynie'), + ('gynny'), + ('gynos'), + ('gyoza'), + ('gypos'), + ('gyppo'), + ('gyppy'), + ('gypsy'), + ('gyral'), + ('gyred'), + ('gyres'), + ('gyron'), + ('gyros'), + ('gyrus'), + ('gytes'), + ('gyved'), + ('gyves'), + ('haafs'), + ('haars'), + ('habit'), + ('hable'), + ('habus'), + ('hacek'), + ('hacks'), + ('hadal'), + ('haded'), + ('hades'), + ('hadji'), + ('hadst'), + ('haems'), + ('haets'), + ('haffs'), + ('hafiz'), + ('hafts'), + ('haggs'), + ('hahas'), + ('haick'), + ('haika'), + ('haiks'), + ('haiku'), + ('hails'), + ('haily'), + ('hains'), + ('haint'), + ('hairs'), + ('hairy'), + ('haith'), + ('hajes'), + ('hajis'), + ('hajji'), + ('hakam'), + ('hakas'), + ('hakea'), + ('hakes'), + ('hakim'), + ('hakus'), + ('halal'), + ('haled'), + ('haler'), + ('hales'), + ('halfa'), + ('halfs'), + ('halid'), + ('hallo'), + ('halls'), + ('halma'), + ('halms'), + ('halon'), + ('halos'), + ('halse'), + ('halts'), + ('halva'), + ('halve'), + ('halwa'), + ('hamal'), + ('hamba'), + ('hamed'), + ('hames'), + ('hammy'), + ('hamza'), + ('hanap'), + ('hance'), + ('hanch'), + ('hands'), + ('handy'), + ('hangi'), + ('hangs'), + ('hanks'), + ('hanky'), + ('hansa'), + ('hanse'), + ('hants'), + ('haole'), + ('haoma'), + ('hapax'), + ('haply'), + ('happi'), + ('happy'), + ('hapus'), + ('haram'), + ('hards'), + ('hardy'), + ('hared'), + ('harem'), + ('hares'), + ('harim'), + ('harks'), + ('harls'), + ('harms'), + ('harns'), + ('haros'), + ('harps'), + ('harpy'), + ('harry'), + ('harsh'), + ('harts'), + ('hashy'), + ('hasks'), + ('hasps'), + ('hasta'), + ('haste'), + ('hasty'), + ('hatch'), + ('hated'), + ('hater'), + ('hates'), + ('hatha'), + ('hauds'), + ('haufs'), + ('haugh'), + ('hauld'), + ('haulm'), + ('hauls'), + ('hault'), + ('hauns'), + ('haunt'), + ('hause'), + ('haute'), + ('haven'), + ('haver'), + ('haves'), + ('havoc'), + ('hawed'), + ('hawks'), + ('hawms'), + ('hawse'), + ('hayed'), + ('hayer'), + ('hayey'), + ('hayle'), + ('hazan'), + ('hazed'), + ('hazel'), + ('hazer'), + ('hazes'), + ('heads'), + ('heady'), + ('heald'), + ('heals'), + ('heame'), + ('heaps'), + ('heapy'), + ('heard'), + ('heare'), + ('hears'), + ('heart'), + ('heast'), + ('heath'), + ('heats'), + ('heave'), + ('heavy'), + ('heben'), + ('hebes'), + ('hecht'), + ('hecks'), + ('heder'), + ('hedge'), + ('hedgy'), + ('heeds'), + ('heedy'), + ('heels'), + ('heeze'), + ('hefte'), + ('hefts'), + ('hefty'), + ('heids'), + ('heigh'), + ('heils'), + ('heirs'), + ('heist'), + ('hejab'), + ('hejra'), + ('heled'), + ('heles'), + ('helio'), + ('helix'), + ('hello'), + ('hells'), + ('helms'), + ('helos'), + ('helot'), + ('helps'), + ('helve'), + ('hemal'), + ('hemes'), + ('hemic'), + ('hemin'), + ('hemps'), + ('hempy'), + ('hence'), + ('hench'), + ('hends'), + ('henge'), + ('henna'), + ('henny'), + ('henry'), + ('hents'), + ('hepar'), + ('herbs'), + ('herby'), + ('herds'), + ('heres'), + ('herls'), + ('herma'), + ('herms'), + ('herns'), + ('heron'), + ('heros'), + ('herry'), + ('herse'), + ('hertz'), + ('herye'), + ('hesps'), + ('hests'), + ('hetes'), + ('heths'), + ('heuch'), + ('heugh'), + ('hevea'), + ('hewed'), + ('hewer'), + ('hewgh'), + ('hexad'), + ('hexed'), + ('hexer'), + ('hexes'), + ('hexyl'), + ('heyed'), + ('hiant'), + ('hicks'), + ('hided'), + ('hider'), + ('hides'), + ('hiems'), + ('highs'), + ('hight'), + ('hijab'), + ('hijra'), + ('hiked'), + ('hiker'), + ('hikes'), + ('hikoi'), + ('hilar'), + ('hilch'), + ('hillo'), + ('hills'), + ('hilly'), + ('hilts'), + ('hilum'), + ('hilus'), + ('himbo'), + ('hinau'), + ('hinds'), + ('hinge'), + ('hings'), + ('hinky'), + ('hinny'), + ('hints'), + ('hiois'), + ('hiply'), + ('hippo'), + ('hippy'), + ('hired'), + ('hiree'), + ('hirer'), + ('hires'), + ('hissy'), + ('hists'), + ('hitch'), + ('hithe'), + ('hived'), + ('hiver'), + ('hives'), + ('hizen'), + ('hoaed'), + ('hoagy'), + ('hoard'), + ('hoars'), + ('hoary'), + ('hoast'), + ('hobby'), + ('hobos'), + ('hocks'), + ('hocus'), + ('hodad'), + ('hodja'), + ('hoers'), + ('hogan'), + ('hogen'), + ('hoggs'), + ('hoghs'), + ('hohed'), + ('hoick'), + ('hoied'), + ('hoiks'), + ('hoing'), + ('hoise'), + ('hoist'), + ('hokas'), + ('hoked'), + ('hokes'), + ('hokey'), + ('hokis'), + ('hokku'), + ('hokum'), + ('holds'), + ('holed'), + ('holes'), + ('holey'), + ('holks'), + ('holla'), + ('hollo'), + ('holly'), + ('holme'), + ('holms'), + ('holon'), + ('holos'), + ('holts'), + ('homas'), + ('homed'), + ('homer'), + ('homes'), + ('homey'), + ('homie'), + ('homme'), + ('homos'), + ('honan'), + ('honda'), + ('honds'), + ('honed'), + ('honer'), + ('hones'), + ('honey'), + ('hongi'), + ('hongs'), + ('honks'), + ('honky'), + ('honor'), + ('hooch'), + ('hoods'), + ('hoody'), + ('hooey'), + ('hoofs'), + ('hooka'), + ('hooks'), + ('hooky'), + ('hooly'), + ('hoons'), + ('hoops'), + ('hoord'), + ('hoors'), + ('hoosh'), + ('hoots'), + ('hooty'), + ('hoove'), + ('hopak'), + ('hoped'), + ('hoper'), + ('hopes'), + ('hoppy'), + ('horah'), + ('horal'), + ('horas'), + ('horde'), + ('horis'), + ('horks'), + ('horme'), + ('horns'), + ('horny'), + ('horse'), + ('horst'), + ('horsy'), + ('hosed'), + ('hosel'), + ('hosen'), + ('hoser'), + ('hoses'), + ('hosey'), + ('hosta'), + ('hosts'), + ('hotch'), + ('hotel'), + ('hoten'), + ('hotly'), + ('hotty'), + ('houff'), + ('houfs'), + ('hough'), + ('hound'), + ('houri'), + ('hours'), + ('house'), + ('houts'), + ('hovea'), + ('hoved'), + ('hovel'), + ('hoven'), + ('hover'), + ('hoves'), + ('howbe'), + ('howdy'), + ('howes'), + ('howff'), + ('howfs'), + ('howks'), + ('howls'), + ('howre'), + ('howso'), + ('hoxed'), + ('hoxes'), + ('hoyas'), + ('hoyed'), + ('hoyle'), + ('hubby'), + ('hucks'), + ('hudna'), + ('hudud'), + ('huers'), + ('huffs'), + ('huffy'), + ('huger'), + ('huggy'), + ('huhus'), + ('huias'), + ('hulas'), + ('hules'), + ('hulks'), + ('hulky'), + ('hullo'), + ('hulls'), + ('hully'), + ('human'), + ('humas'), + ('humfs'), + ('humic'), + ('humid'), + ('humor'), + ('humph'), + ('humps'), + ('humpy'), + ('humus'), + ('hunch'), + ('hunks'), + ('hunky'), + ('hunts'), + ('hurds'), + ('hurls'), + ('hurly'), + ('hurra'), + ('hurry'), + ('hurst'), + ('hurts'), + ('hushy'), + ('husks'), + ('husky'), + ('husos'), + ('hussy'), + ('hutch'), + ('hutia'), + ('huzza'), + ('huzzy'), + ('hwyls'), + ('hydra'), + ('hydro'), + ('hyena'), + ('hyens'), + ('hygge'), + ('hying'), + ('hykes'), + ('hylas'), + ('hyleg'), + ('hyles'), + ('hylic'), + ('hymen'), + ('hymns'), + ('hynde'), + ('hyoid'), + ('hyped'), + ('hyper'), + ('hypes'), + ('hypha'), + ('hyphy'), + ('hypos'), + ('hyrax'), + ('hyson'), + ('hythe'), + ('iambi'), + ('iambs'), + ('ibrik'), + ('icers'), + ('iched'), + ('iches'), + ('ichor'), + ('icier'), + ('icily'), + ('icing'), + ('icker'), + ('ickle'), + ('icons'), + ('ictal'), + ('ictic'), + ('ictus'), + ('idant'), + ('ideal'), + ('ideas'), + ('idees'), + ('ident'), + ('idiom'), + ('idiot'), + ('idled'), + ('idler'), + ('idles'), + ('idola'), + ('idols'), + ('idyll'), + ('idyls'), + ('iftar'), + ('igapo'), + ('igged'), + ('igloo'), + ('iglus'), + ('ihram'), + ('ikans'), + ('ikats'), + ('ikons'), + ('ileac'), + ('ileal'), + ('ileum'), + ('ileus'), + ('iliac'), + ('iliad'), + ('ilial'), + ('ilium'), + ('iller'), + ('illth'), + ('image'), + ('imago'), + ('imams'), + ('imari'), + ('imaum'), + ('imbar'), + ('imbed'), + ('imbue'), + ('imide'), + ('imido'), + ('imids'), + ('imine'), + ('imino'), + ('immew'), + ('immit'), + ('immix'), + ('imped'), + ('impel'), + ('impis'), + ('imply'), + ('impot'), + ('impro'), + ('imshi'), + ('imshy'), + ('inane'), + ('inapt'), + ('inarm'), + ('inbox'), + ('inbye'), + ('incel'), + ('incle'), + ('incog'), + ('incur'), + ('incus'), + ('incut'), + ('indew'), + ('index'), + ('india'), + ('indie'), + ('indol'), + ('indow'), + ('indri'), + ('indue'), + ('inept'), + ('inerm'), + ('inert'), + ('infer'), + ('infix'), + ('infos'), + ('infra'), + ('ingan'), + ('ingle'), + ('ingot'), + ('inion'), + ('inked'), + ('inker'), + ('inkle'), + ('inlay'), + ('inlet'), + ('inned'), + ('inner'), + ('innit'), + ('inorb'), + ('input'), + ('inrun'), + ('inset'), + ('inspo'), + ('intel'), + ('inter'), + ('intil'), + ('intis'), + ('intra'), + ('intro'), + ('inula'), + ('inure'), + ('inurn'), + ('inust'), + ('invar'), + ('inwit'), + ('iodic'), + ('iodid'), + ('iodin'), + ('ionic'), + ('iotas'), + ('ippon'), + ('irade'), + ('irate'), + ('irids'), + ('iring'), + ('irked'), + ('iroko'), + ('irone'), + ('irons'), + ('irony'), + ('isbas'), + ('ishes'), + ('isled'), + ('isles'), + ('islet'), + ('isnae'), + ('issei'), + ('issue'), + ('istle'), + ('itchy'), + ('items'), + ('ither'), + ('ivied'), + ('ivies'), + ('ivory'), + ('ixias'), + ('ixnay'), + ('ixora'), + ('ixtle'), + ('izard'), + ('izars'), + ('izzat'), + ('jaaps'), + ('jabot'), + ('jacal'), + ('jacks'), + ('jacky'), + ('jaded'), + ('jades'), + ('jafas'), + ('jaffa'), + ('jagas'), + ('jager'), + ('jaggs'), + ('jaggy'), + ('jagir'), + ('jagra'), + ('jails'), + ('jaker'), + ('jakes'), + ('jakey'), + ('jalap'), + ('jalop'), + ('jambe'), + ('jambo'), + ('jambs'), + ('jambu'), + ('james'), + ('jammy'), + ('jamon'), + ('janes'), + ('janns'), + ('janny'), + ('janty'), + ('japan'), + ('japed'), + ('japer'), + ('japes'), + ('jarks'), + ('jarls'), + ('jarps'), + ('jarta'), + ('jarul'), + ('jasey'), + ('jaspe'), + ('jasps'), + ('jatos'), + ('jauks'), + ('jaunt'), + ('jaups'), + ('javas'), + ('javel'), + ('jawan'), + ('jawed'), + ('jaxie'), + ('jazzy'), + ('jeans'), + ('jeats'), + ('jebel'), + ('jedis'), + ('jeels'), + ('jeely'), + ('jeeps'), + ('jeers'), + ('jeeze'), + ('jefes'), + ('jeffs'), + ('jehad'), + ('jehus'), + ('jelab'), + ('jello'), + ('jells'), + ('jelly'), + ('jembe'), + ('jemmy'), + ('jenny'), + ('jeons'), + ('jerid'), + ('jerks'), + ('jerky'), + ('jerry'), + ('jesse'), + ('jests'), + ('jesus'), + ('jetes'), + ('jeton'), + ('jetty'), + ('jeune'), + ('jewed'), + ('jewel'), + ('jewie'), + ('jhala'), + ('jiaos'), + ('jibba'), + ('jibbs'), + ('jibed'), + ('jiber'), + ('jibes'), + ('jiffs'), + ('jiffy'), + ('jiggy'), + ('jigot'), + ('jihad'), + ('jills'), + ('jilts'), + ('jimmy'), + ('jimpy'), + ('jingo'), + ('jinks'), + ('jinne'), + ('jinni'), + ('jinns'), + ('jirds'), + ('jirga'), + ('jirre'), + ('jisms'), + ('jived'), + ('jiver'), + ('jives'), + ('jivey'), + ('jnana'), + ('jobed'), + ('jobes'), + ('jocko'), + ('jocks'), + ('jocky'), + ('jocos'), + ('jodel'), + ('joeys'), + ('johns'), + ('joins'), + ('joint'), + ('joist'), + ('joked'), + ('joker'), + ('jokes'), + ('jokey'), + ('jokol'), + ('joled'), + ('joles'), + ('jolls'), + ('jolly'), + ('jolts'), + ('jolty'), + ('jomon'), + ('jomos'), + ('jones'), + ('jongs'), + ('jonty'), + ('jooks'), + ('joram'), + ('jorum'), + ('jotas'), + ('jotty'), + ('jotun'), + ('joual'), + ('jougs'), + ('jouks'), + ('joule'), + ('jours'), + ('joust'), + ('jowar'), + ('jowed'), + ('jowls'), + ('jowly'), + ('joyed'), + ('jubas'), + ('jubes'), + ('jucos'), + ('judas'), + ('judge'), + ('judgy'), + ('judos'), + ('jugal'), + ('jugum'), + ('juice'), + ('juicy'), + ('jujus'), + ('juked'), + ('jukes'), + ('jukus'), + ('julep'), + ('jumar'), + ('jumbo'), + ('jumby'), + ('jumps'), + ('jumpy'), + ('junco'), + ('junks'), + ('junky'), + ('junta'), + ('junto'), + ('jupes'), + ('jupon'), + ('jural'), + ('jurat'), + ('jurel'), + ('jures'), + ('juror'), + ('justs'), + ('jutes'), + ('jutty'), + ('juves'), + ('juvie'), + ('kaama'), + ('kabab'), + ('kabar'), + ('kabob'), + ('kacha'), + ('kacks'), + ('kadai'), + ('kades'), + ('kadis'), + ('kafir'), + ('kagos'), + ('kagus'), + ('kahal'), + ('kaiak'), + ('kaids'), + ('kaies'), + ('kaifs'), + ('kaika'), + ('kaiks'), + ('kails'), + ('kaims'), + ('kaing'), + ('kains'), + ('kakas'), + ('kakis'), + ('kalam'), + ('kales'), + ('kalif'), + ('kalis'), + ('kalpa'), + ('kamas'), + ('kames'), + ('kamik'), + ('kamis'), + ('kamme'), + ('kanae'), + ('kanas'), + ('kandy'), + ('kaneh'), + ('kanes'), + ('kanga'), + ('kangs'), + ('kanji'), + ('kants'), + ('kanzu'), + ('kaons'), + ('kapas'), + ('kaphs'), + ('kapok'), + ('kapow'), + ('kappa'), + ('kapus'), + ('kaput'), + ('karas'), + ('karat'), + ('karks'), + ('karma'), + ('karns'), + ('karoo'), + ('karos'), + ('karri'), + ('karst'), + ('karsy'), + ('karts'), + ('karzy'), + ('kasha'), + ('kasme'), + ('katal'), + ('katas'), + ('katis'), + ('katti'), + ('kaugh'), + ('kauri'), + ('kauru'), + ('kaury'), + ('kaval'), + ('kavas'), + ('kawas'), + ('kawau'), + ('kawed'), + ('kayak'), + ('kayle'), + ('kayos'), + ('kazis'), + ('kazoo'), + ('kbars'), + ('kebab'), + ('kebar'), + ('kebob'), + ('kecks'), + ('kedge'), + ('kedgy'), + ('keech'), + ('keefs'), + ('keeks'), + ('keels'), + ('keema'), + ('keeno'), + ('keens'), + ('keeps'), + ('keets'), + ('keeve'), + ('kefir'), + ('kehua'), + ('keirs'), + ('kelep'), + ('kelim'), + ('kells'), + ('kelly'), + ('kelps'), + ('kelpy'), + ('kelts'), + ('kelty'), + ('kembo'), + ('kembs'), + ('kemps'), + ('kempt'), + ('kempy'), + ('kenaf'), + ('kench'), + ('kendo'), + ('kenos'), + ('kente'), + ('kents'), + ('kepis'), + ('kerbs'), + ('kerel'), + ('kerfs'), + ('kerky'), + ('kerma'), + ('kerne'), + ('kerns'), + ('keros'), + ('kerry'), + ('kerve'), + ('kesar'), + ('kests'), + ('ketas'), + ('ketch'), + ('ketes'), + ('ketol'), + ('kevel'), + ('kevil'), + ('kexes'), + ('keyed'), + ('keyer'), + ('khadi'), + ('khafs'), + ('khaki'), + ('khans'), + ('khaph'), + ('khats'), + ('khaya'), + ('khazi'), + ('kheda'), + ('kheth'), + ('khets'), + ('khoja'), + ('khors'), + ('khoum'), + ('khuds'), + ('kiaat'), + ('kiack'), + ('kiang'), + ('kibbe'), + ('kibbi'), + ('kibei'), + ('kibes'), + ('kibla'), + ('kicks'), + ('kicky'), + ('kiddo'), + ('kiddy'), + ('kidel'), + ('kidge'), + ('kiefs'), + ('kiers'), + ('kieve'), + ('kievs'), + ('kight'), + ('kikes'), + ('kikoi'), + ('kiley'), + ('kilim'), + ('kills'), + ('kilns'), + ('kilos'), + ('kilps'), + ('kilts'), + ('kilty'), + ('kimbo'), + ('kinas'), + ('kinda'), + ('kinds'), + ('kindy'), + ('kines'), + ('kings'), + ('kinin'), + ('kinks'), + ('kinky'), + ('kinos'), + ('kiore'), + ('kiosk'), + ('kipes'), + ('kippa'), + ('kipps'), + ('kirby'), + ('kirks'), + ('kirns'), + ('kirri'), + ('kisan'), + ('kissy'), + ('kists'), + ('kited'), + ('kiter'), + ('kites'), + ('kithe'), + ('kiths'), + ('kitty'), + ('kitul'), + ('kivas'), + ('kiwis'), + ('klang'), + ('klaps'), + ('klett'), + ('klick'), + ('klieg'), + ('kliks'), + ('klong'), + ('kloof'), + ('kluge'), + ('klutz'), + ('knack'), + ('knags'), + ('knaps'), + ('knarl'), + ('knars'), + ('knaur'), + ('knave'), + ('knawe'), + ('knead'), + ('kneed'), + ('kneel'), + ('knees'), + ('knell'), + ('knelt'), + ('knife'), + ('knish'), + ('knits'), + ('knive'), + ('knobs'), + ('knock'), + ('knoll'), + ('knops'), + ('knosp'), + ('knots'), + ('knout'), + ('knowe'), + ('known'), + ('knows'), + ('knubs'), + ('knurl'), + ('knurr'), + ('knurs'), + ('knuts'), + ('koala'), + ('koans'), + ('koaps'), + ('koban'), + ('kobos'), + ('koels'), + ('koffs'), + ('kofta'), + ('kogal'), + ('kohas'), + ('kohen'), + ('kohls'), + ('koine'), + ('kojis'), + ('kokam'), + ('kokas'), + ('koker'), + ('kokra'), + ('kokum'), + ('kolas'), + ('kolos'), + ('kombu'), + ('konbu'), + ('kondo'), + ('konks'), + ('kooks'), + ('kooky'), + ('koori'), + ('kopek'), + ('kophs'), + ('kopje'), + ('koppa'), + ('korai'), + ('koras'), + ('korat'), + ('kores'), + ('korma'), + ('koros'), + ('korun'), + ('korus'), + ('koses'), + ('kotch'), + ('kotos'), + ('kotow'), + ('koura'), + ('kraal'), + ('krabs'), + ('kraft'), + ('krais'), + ('krait'), + ('krang'), + ('krans'), + ('kranz'), + ('kraut'), + ('krays'), + ('kreep'), + ('kreng'), + ('krewe'), + ('krill'), + ('krona'), + ('krone'), + ('kroon'), + ('krubi'), + ('krunk'), + ('ksars'), + ('kubie'), + ('kudos'), + ('kudus'), + ('kudzu'), + ('kufis'), + ('kugel'), + ('kuias'), + ('kukri'), + ('kukus'), + ('kulak'), + ('kulan'), + ('kulas'), + ('kulfi'), + ('kumis'), + ('kumys'), + ('kuris'), + ('kurre'), + ('kurta'), + ('kurus'), + ('kusso'), + ('kutas'), + ('kutch'), + ('kutis'), + ('kutus'), + ('kuzus'), + ('kvass'), + ('kvell'), + ('kwela'), + ('kyack'), + ('kyaks'), + ('kyang'), + ('kyars'), + ('kyats'), + ('kybos'), + ('kydst'), + ('kyles'), + ('kylie'), + ('kylin'), + ('kylix'), + ('kyloe'), + ('kynde'), + ('kynds'), + ('kypes'), + ('kyrie'), + ('kytes'), + ('kythe'), + ('laari'), + ('labda'), + ('label'), + ('labia'), + ('labis'), + ('labor'), + ('labra'), + ('laced'), + ('lacer'), + ('laces'), + ('lacet'), + ('lacey'), + ('lacks'), + ('laddy'), + ('laded'), + ('laden'), + ('lader'), + ('lades'), + ('ladle'), + ('laers'), + ('laevo'), + ('lagan'), + ('lager'), + ('lahal'), + ('lahar'), + ('laich'), + ('laics'), + ('laids'), + ('laigh'), + ('laika'), + ('laiks'), + ('laird'), + ('lairs'), + ('lairy'), + ('laith'), + ('laity'), + ('laked'), + ('laker'), + ('lakes'), + ('lakhs'), + ('lakin'), + ('laksa'), + ('laldy'), + ('lalls'), + ('lamas'), + ('lambs'), + ('lamby'), + ('lamed'), + ('lamer'), + ('lames'), + ('lamia'), + ('lammy'), + ('lamps'), + ('lanai'), + ('lanas'), + ('lance'), + ('lanch'), + ('lande'), + ('lands'), + ('lanes'), + ('lanks'), + ('lanky'), + ('lants'), + ('lapel'), + ('lapin'), + ('lapis'), + ('lapje'), + ('lapse'), + ('larch'), + ('lards'), + ('lardy'), + ('laree'), + ('lares'), + ('large'), + ('largo'), + ('laris'), + ('larks'), + ('larky'), + ('larns'), + ('larnt'), + ('larum'), + ('larva'), + ('lased'), + ('laser'), + ('lases'), + ('lassi'), + ('lasso'), + ('lassu'), + ('lassy'), + ('lasts'), + ('latah'), + ('latch'), + ('lated'), + ('laten'), + ('later'), + ('latex'), + ('lathe'), + ('lathi'), + ('laths'), + ('lathy'), + ('latke'), + ('latte'), + ('latus'), + ('lauan'), + ('lauch'), + ('lauds'), + ('laufs'), + ('laugh'), + ('laund'), + ('laura'), + ('laval'), + ('lavas'), + ('laved'), + ('laver'), + ('laves'), + ('lavra'), + ('lavvy'), + ('lawed'), + ('lawer'), + ('lawin'), + ('lawks'), + ('lawns'), + ('lawny'), + ('laxed'), + ('laxer'), + ('laxes'), + ('laxly'), + ('layed'), + ('layer'), + ('layin'), + ('layup'), + ('lazar'), + ('lazed'), + ('lazes'), + ('lazos'), + ('lazzi'), + ('lazzo'), + ('leach'), + ('leads'), + ('leady'), + ('leafs'), + ('leafy'), + ('leaks'), + ('leaky'), + ('leams'), + ('leans'), + ('leant'), + ('leany'), + ('leaps'), + ('leapt'), + ('leare'), + ('learn'), + ('lears'), + ('leary'), + ('lease'), + ('leash'), + ('least'), + ('leats'), + ('leave'), + ('leavy'), + ('leaze'), + ('leben'), + ('leccy'), + ('ledes'), + ('ledge'), + ('ledgy'), + ('ledum'), + ('leear'), + ('leech'), + ('leeks'), + ('leeps'), + ('leers'), + ('leery'), + ('leese'), + ('leets'), + ('leeze'), + ('lefte'), + ('lefts'), + ('lefty'), + ('legal'), + ('leger'), + ('leges'), + ('legge'), + ('leggo'), + ('leggy'), + ('legit'), + ('lehrs'), + ('lehua'), + ('leirs'), + ('leish'), + ('leman'), + ('lemed'), + ('lemel'), + ('lemes'), + ('lemma'), + ('lemme'), + ('lemon'), + ('lemur'), + ('lends'), + ('lenes'), + ('lengs'), + ('lenis'), + ('lenos'), + ('lense'), + ('lenti'), + ('lento'), + ('leone'), + ('leper'), + ('lepid'), + ('lepra'), + ('lepta'), + ('lered'), + ('leres'), + ('lerps'), + ('lesbo'), + ('leses'), + ('lests'), + ('letch'), + ('lethe'), + ('letup'), + ('leuch'), + ('leuco'), + ('leuds'), + ('leugh'), + ('levas'), + ('levee'), + ('level'), + ('lever'), + ('leves'), + ('levin'), + ('levis'), + ('lewis'), + ('lexes'), + ('lexis'), + ('lezes'), + ('lezza'), + ('lezzy'), + ('liana'), + ('liane'), + ('liang'), + ('liard'), + ('liars'), + ('liart'), + ('libel'), + ('liber'), + ('libra'), + ('libri'), + ('lichi'), + ('licht'), + ('licit'), + ('licks'), + ('lidar'), + ('lidos'), + ('liefs'), + ('liege'), + ('liens'), + ('liers'), + ('lieus'), + ('lieve'), + ('lifer'), + ('lifes'), + ('lifts'), + ('ligan'), + ('liger'), + ('ligge'), + ('light'), + ('ligne'), + ('liked'), + ('liken'), + ('liker'), + ('likes'), + ('likin'), + ('lilac'), + ('lills'), + ('lilos'), + ('lilts'), + ('liman'), + ('limas'), + ('limax'), + ('limba'), + ('limbi'), + ('limbo'), + ('limbs'), + ('limby'), + ('limed'), + ('limen'), + ('limes'), + ('limey'), + ('limit'), + ('limma'), + ('limns'), + ('limos'), + ('limpa'), + ('limps'), + ('linac'), + ('linch'), + ('linds'), + ('lindy'), + ('lined'), + ('linen'), + ('liner'), + ('lines'), + ('liney'), + ('linga'), + ('lingo'), + ('lings'), + ('lingy'), + ('linin'), + ('links'), + ('linky'), + ('linns'), + ('linny'), + ('linos'), + ('lints'), + ('linty'), + ('linum'), + ('linux'), + ('lions'), + ('lipas'), + ('lipes'), + ('lipid'), + ('lipin'), + ('lipos'), + ('lippy'), + ('liras'), + ('lirks'), + ('lirot'), + ('lisks'), + ('lisle'), + ('lisps'), + ('lists'), + ('litai'), + ('litas'), + ('lited'), + ('liter'), + ('lites'), + ('lithe'), + ('litho'), + ('liths'), + ('litre'), + ('lived'), + ('liven'), + ('liver'), + ('lives'), + ('livid'), + ('livor'), + ('livre'), + ('llama'), + ('llano'), + ('loach'), + ('loads'), + ('loafs'), + ('loams'), + ('loamy'), + ('loans'), + ('loast'), + ('loath'), + ('loave'), + ('lobar'), + ('lobby'), + ('lobed'), + ('lobes'), + ('lobos'), + ('lobus'), + ('local'), + ('loche'), + ('lochs'), + ('locie'), + ('locis'), + ('locks'), + ('locos'), + ('locum'), + ('locus'), + ('loden'), + ('lodes'), + ('lodge'), + ('loess'), + ('lofts'), + ('lofty'), + ('logan'), + ('loges'), + ('loggy'), + ('logia'), + ('logic'), + ('logie'), + ('login'), + ('logoi'), + ('logon'), + ('logos'), + ('lohan'), + ('loids'), + ('loins'), + ('loipe'), + ('loirs'), + ('lokes'), + ('lolls'), + ('lolly'), + ('lolog'), + ('lomas'), + ('lomed'), + ('lomes'), + ('loner'), + ('longa'), + ('longe'), + ('longs'), + ('looby'), + ('looed'), + ('looey'), + ('loofa'), + ('loofs'), + ('looie'), + ('looks'), + ('looky'), + ('looms'), + ('loons'), + ('loony'), + ('loops'), + ('loopy'), + ('loord'), + ('loose'), + ('loots'), + ('loped'), + ('loper'), + ('lopes'), + ('loppy'), + ('loral'), + ('loran'), + ('lords'), + ('lordy'), + ('lorel'), + ('lores'), + ('loric'), + ('loris'), + ('lorry'), + ('losed'), + ('losel'), + ('losen'), + ('loser'), + ('loses'), + ('lossy'), + ('lotah'), + ('lotas'), + ('lotes'), + ('lotic'), + ('lotos'), + ('lotsa'), + ('lotta'), + ('lotte'), + ('lotto'), + ('lotus'), + ('loued'), + ('lough'), + ('louie'), + ('louis'), + ('louma'), + ('lound'), + ('louns'), + ('loupe'), + ('loups'), + ('loure'), + ('lours'), + ('loury'), + ('louse'), + ('lousy'), + ('louts'), + ('lovat'), + ('loved'), + ('lover'), + ('loves'), + ('lovey'), + ('lovie'), + ('lowan'), + ('lowed'), + ('lower'), + ('lowes'), + ('lowly'), + ('lownd'), + ('lowne'), + ('lowns'), + ('lowps'), + ('lowry'), + ('lowse'), + ('lowts'), + ('loxed'), + ('loxes'), + ('loyal'), + ('lozen'), + ('luach'), + ('luaus'), + ('lubed'), + ('lubes'), + ('lubra'), + ('luces'), + ('lucid'), + ('lucks'), + ('lucky'), + ('lucre'), + ('ludes'), + ('ludic'), + ('ludos'), + ('luffa'), + ('luffs'), + ('luged'), + ('luger'), + ('luges'), + ('lulls'), + ('lulus'), + ('lumas'), + ('lumbi'), + ('lumen'), + ('lumme'), + ('lummy'), + ('lumps'), + ('lumpy'), + ('lunar'), + ('lunas'), + ('lunch'), + ('lunes'), + ('lunet'), + ('lunge'), + ('lungi'), + ('lungs'), + ('lunks'), + ('lunts'), + ('lupin'), + ('lupus'), + ('lurch'), + ('lured'), + ('lurer'), + ('lures'), + ('lurex'), + ('lurgi'), + ('lurgy'), + ('lurid'), + ('lurks'), + ('lurry'), + ('lurve'), + ('luser'), + ('lushy'), + ('lusks'), + ('lusts'), + ('lusty'), + ('lusus'), + ('lutea'), + ('luted'), + ('luter'), + ('lutes'), + ('luvvy'), + ('luxed'), + ('luxer'), + ('luxes'), + ('lweis'), + ('lyams'), + ('lyard'), + ('lyart'), + ('lyase'), + ('lycea'), + ('lycee'), + ('lycra'), + ('lying'), + ('lymes'), + ('lymph'), + ('lynch'), + ('lynes'), + ('lyres'), + ('lyric'), + ('lysed'), + ('lyses'), + ('lysin'), + ('lysis'), + ('lysol'), + ('lyssa'), + ('lyted'), + ('lytes'), + ('lythe'), + ('lytic'), + ('lytta'), + ('maaed'), + ('maare'), + ('maars'), + ('mabes'), + ('macas'), + ('macaw'), + ('maced'), + ('macer'), + ('maces'), + ('mache'), + ('machi'), + ('macho'), + ('machs'), + ('macks'), + ('macle'), + ('macon'), + ('macro'), + ('madam'), + ('madge'), + ('madid'), + ('madly'), + ('madre'), + ('maerl'), + ('mafia'), + ('mafic'), + ('mages'), + ('maggs'), + ('magic'), + ('magma'), + ('magot'), + ('magus'), + ('mahoe'), + ('mahua'), + ('mahwa'), + ('maids'), + ('maiko'), + ('maiks'), + ('maile'), + ('maill'), + ('mails'), + ('maims'), + ('mains'), + ('maire'), + ('mairs'), + ('maise'), + ('maist'), + ('maize'), + ('major'), + ('makar'), + ('maker'), + ('makes'), + ('makis'), + ('makos'), + ('malam'), + ('malar'), + ('malas'), + ('malax'), + ('males'), + ('malic'), + ('malik'), + ('malis'), + ('malls'), + ('malms'), + ('malmy'), + ('malts'), + ('malty'), + ('malus'), + ('malva'), + ('malwa'), + ('mamas'), + ('mamba'), + ('mambo'), + ('mamee'), + ('mamey'), + ('mamie'), + ('mamma'), + ('mammy'), + ('manas'), + ('manat'), + ('mandi'), + ('maneb'), + ('maned'), + ('maneh'), + ('manes'), + ('manet'), + ('manga'), + ('mange'), + ('mango'), + ('mangs'), + ('mangy'), + ('mania'), + ('manic'), + ('manis'), + ('manky'), + ('manly'), + ('manna'), + ('manor'), + ('manos'), + ('manse'), + ('manta'), + ('manto'), + ('manty'), + ('manul'), + ('manus'), + ('mapau'), + ('maple'), + ('maqui'), + ('marae'), + ('marah'), + ('maras'), + ('march'), + ('marcs'), + ('mardy'), + ('mares'), + ('marge'), + ('margs'), + ('maria'), + ('marid'), + ('marka'), + ('marks'), + ('marle'), + ('marls'), + ('marly'), + ('marms'), + ('maron'), + ('maror'), + ('marra'), + ('marri'), + ('marry'), + ('marse'), + ('marsh'), + ('marts'), + ('marvy'), + ('masas'), + ('mased'), + ('maser'), + ('mases'), + ('mashy'), + ('masks'), + ('mason'), + ('massa'), + ('masse'), + ('massy'), + ('masts'), + ('masty'), + ('masus'), + ('matai'), + ('match'), + ('mated'), + ('mater'), + ('mates'), + ('matey'), + ('maths'), + ('matin'), + ('matlo'), + ('matte'), + ('matts'), + ('matza'), + ('matzo'), + ('mauby'), + ('mauds'), + ('mauls'), + ('maund'), + ('mauri'), + ('mausy'), + ('mauts'), + ('mauve'), + ('mauzy'), + ('maven'), + ('mavie'), + ('mavin'), + ('mavis'), + ('mawed'), + ('mawks'), + ('mawky'), + ('mawns'), + ('mawrs'), + ('maxed'), + ('maxes'), + ('maxim'), + ('maxis'), + ('mayan'), + ('mayas'), + ('maybe'), + ('mayed'), + ('mayor'), + ('mayos'), + ('mayst'), + ('mazed'), + ('mazer'), + ('mazes'), + ('mazey'), + ('mazut'), + ('mbira'), + ('meads'), + ('meals'), + ('mealy'), + ('meane'), + ('means'), + ('meant'), + ('meany'), + ('meare'), + ('mease'), + ('meath'), + ('meats'), + ('meaty'), + ('mebos'), + ('mecca'), + ('mechs'), + ('mecks'), + ('medal'), + ('media'), + ('medic'), + ('medii'), + ('medle'), + ('meeds'), + ('meers'), + ('meets'), + ('meffs'), + ('meins'), + ('meint'), + ('meiny'), + ('meith'), + ('mekka'), + ('melas'), + ('melba'), + ('melds'), + ('melee'), + ('melic'), + ('melik'), + ('mells'), + ('melon'), + ('melts'), + ('melty'), + ('memes'), + ('memos'), + ('menad'), + ('mends'), + ('mened'), + ('menes'), + ('menge'), + ('mengs'), + ('mensa'), + ('mense'), + ('mensh'), + ('menta'), + ('mento'), + ('menus'), + ('meous'), + ('meows'), + ('merch'), + ('mercs'), + ('mercy'), + ('merde'), + ('mered'), + ('merel'), + ('merer'), + ('meres'), + ('merge'), + ('meril'), + ('meris'), + ('merit'), + ('merks'), + ('merle'), + ('merls'), + ('merry'), + ('merse'), + ('mesal'), + ('mesas'), + ('mesel'), + ('meses'), + ('meshy'), + ('mesic'), + ('mesne'), + ('meson'), + ('messy'), + ('mesto'), + ('metal'), + ('meted'), + ('meter'), + ('metes'), + ('metho'), + ('meths'), + ('metic'), + ('metif'), + ('metis'), + ('metol'), + ('metre'), + ('metro'), + ('meuse'), + ('meved'), + ('meves'), + ('mewed'), + ('mewls'), + ('meynt'), + ('mezes'), + ('mezze'), + ('mezzo'), + ('mhorr'), + ('miaou'), + ('miaow'), + ('miasm'), + ('miaul'), + ('micas'), + ('miche'), + ('micht'), + ('micks'), + ('micky'), + ('micos'), + ('micra'), + ('micro'), + ('middy'), + ('midge'), + ('midgy'), + ('midis'), + ('midst'), + ('miens'), + ('mieve'), + ('miffs'), + ('miffy'), + ('mifty'), + ('miggs'), + ('might'), + ('mihas'), + ('mihis'), + ('miked'), + ('mikes'), + ('mikra'), + ('mikva'), + ('milch'), + ('milds'), + ('miler'), + ('miles'), + ('milfs'), + ('milia'), + ('milko'), + ('milks'), + ('milky'), + ('mille'), + ('mills'), + ('milor'), + ('milos'), + ('milpa'), + ('milts'), + ('milty'), + ('miltz'), + ('mimed'), + ('mimeo'), + ('mimer'), + ('mimes'), + ('mimic'), + ('mimsy'), + ('minae'), + ('minar'), + ('minas'), + ('mince'), + ('mincy'), + ('minds'), + ('mined'), + ('miner'), + ('mines'), + ('minge'), + ('mings'), + ('mingy'), + ('minim'), + ('minis'), + ('minke'), + ('minks'), + ('minny'), + ('minor'), + ('minos'), + ('mints'), + ('minty'), + ('minus'), + ('mired'), + ('mires'), + ('mirex'), + ('mirid'), + ('mirin'), + ('mirks'), + ('mirky'), + ('mirly'), + ('miros'), + ('mirth'), + ('mirvs'), + ('mirza'), + ('misch'), + ('misdo'), + ('miser'), + ('mises'), + ('misgo'), + ('misos'), + ('missa'), + ('missy'), + ('mists'), + ('misty'), + ('mitch'), + ('miter'), + ('mites'), + ('mitis'), + ('mitre'), + ('mitts'), + ('mixed'), + ('mixen'), + ('mixer'), + ('mixes'), + ('mixte'), + ('mixup'), + ('mizen'), + ('mizzy'), + ('mneme'), + ('moans'), + ('moats'), + ('mobby'), + ('mobes'), + ('mobey'), + ('mobie'), + ('moble'), + ('mocha'), + ('mochi'), + ('mochs'), + ('mochy'), + ('mocks'), + ('modal'), + ('model'), + ('modem'), + ('moder'), + ('modes'), + ('modge'), + ('modii'), + ('modus'), + ('moers'), + ('mofos'), + ('moggy'), + ('mogul'), + ('mohel'), + ('mohos'), + ('mohrs'), + ('mohua'), + ('mohur'), + ('moile'), + ('moils'), + ('moira'), + ('moire'), + ('moist'), + ('moits'), + ('mojos'), + ('mokes'), + ('mokis'), + ('mokos'), + ('molal'), + ('molar'), + ('molas'), + ('molds'), + ('moldy'), + ('moled'), + ('moles'), + ('molla'), + ('molls'), + ('molly'), + ('molto'), + ('molts'), + ('molys'), + ('momes'), + ('momma'), + ('mommy'), + ('momus'), + ('monad'), + ('monal'), + ('monas'), + ('monde'), + ('mondo'), + ('moner'), + ('money'), + ('mongo'), + ('mongs'), + ('monic'), + ('monie'), + ('monks'), + ('monos'), + ('monte'), + ('month'), + ('monty'), + ('moobs'), + ('mooch'), + ('moods'), + ('moody'), + ('mooed'), + ('mooks'), + ('moola'), + ('mooli'), + ('mools'), + ('mooly'), + ('moong'), + ('moons'), + ('moony'), + ('moops'), + ('moors'), + ('moory'), + ('moose'), + ('moots'), + ('moove'), + ('moped'), + ('moper'), + ('mopes'), + ('mopey'), + ('moppy'), + ('mopsy'), + ('mopus'), + ('morae'), + ('moral'), + ('moras'), + ('morat'), + ('moray'), + ('morel'), + ('mores'), + ('moria'), + ('morne'), + ('morns'), + ('moron'), + ('morph'), + ('morra'), + ('morro'), + ('morse'), + ('morts'), + ('mosed'), + ('moses'), + ('mosey'), + ('mosks'), + ('mosso'), + ('mossy'), + ('moste'), + ('mosts'), + ('moted'), + ('motel'), + ('moten'), + ('motes'), + ('motet'), + ('motey'), + ('moths'), + ('mothy'), + ('motif'), + ('motis'), + ('motor'), + ('motte'), + ('motto'), + ('motts'), + ('motty'), + ('motus'), + ('motza'), + ('mouch'), + ('moues'), + ('mould'), + ('mouls'), + ('moult'), + ('mound'), + ('mount'), + ('moups'), + ('mourn'), + ('mouse'), + ('moust'), + ('mousy'), + ('mouth'), + ('moved'), + ('mover'), + ('moves'), + ('movie'), + ('mowas'), + ('mowed'), + ('mower'), + ('mowra'), + ('moxas'), + ('moxie'), + ('moyas'), + ('moyle'), + ('moyls'), + ('mozed'), + ('mozes'), + ('mozos'), + ('mpret'), + ('mucho'), + ('mucic'), + ('mucid'), + ('mucin'), + ('mucks'), + ('mucky'), + ('mucor'), + ('mucro'), + ('mucus'), + ('muddy'), + ('mudge'), + ('mudir'), + ('mudra'), + ('muffs'), + ('mufti'), + ('mugga'), + ('muggs'), + ('muggy'), + ('muhly'), + ('muids'), + ('muils'), + ('muirs'), + ('muist'), + ('mujik'), + ('mulch'), + ('mulct'), + ('muled'), + ('mules'), + ('muley'), + ('mulga'), + ('mulie'), + ('mulla'), + ('mulls'), + ('mulse'), + ('mulsh'), + ('mumms'), + ('mummy'), + ('mumps'), + ('mumsy'), + ('mumus'), + ('munch'), + ('munga'), + ('munge'), + ('mungo'), + ('mungs'), + ('munis'), + ('munts'), + ('muntu'), + ('muons'), + ('mural'), + ('muras'), + ('mured'), + ('mures'), + ('murex'), + ('murid'), + ('murks'), + ('murky'), + ('murls'), + ('murly'), + ('murra'), + ('murre'), + ('murri'), + ('murrs'), + ('murry'), + ('murti'), + ('murva'), + ('musar'), + ('musca'), + ('mused'), + ('muser'), + ('muses'), + ('muset'), + ('musha'), + ('mushy'), + ('music'), + ('musit'), + ('musks'), + ('musky'), + ('musos'), + ('musse'), + ('mussy'), + ('musth'), + ('musts'), + ('musty'), + ('mutch'), + ('muted'), + ('muter'), + ('mutes'), + ('mutha'), + ('mutis'), + ('muton'), + ('mutts'), + ('muxed'), + ('muxes'), + ('muzak'), + ('muzzy'), + ('mvule'), + ('myall'), + ('mylar'), + ('mynah'), + ('mynas'), + ('myoid'), + ('myoma'), + ('myope'), + ('myops'), + ('myopy'), + ('myrrh'), + ('mysid'), + ('mythi'), + ('myths'), + ('mythy'), + ('myxos'), + ('mzees'), + ('naams'), + ('naans'), + ('nabes'), + ('nabis'), + ('nabks'), + ('nabla'), + ('nabob'), + ('nache'), + ('nacho'), + ('nacre'), + ('nadas'), + ('nadir'), + ('naeve'), + ('naevi'), + ('naffs'), + ('nagas'), + ('naggy'), + ('nagor'), + ('nahal'), + ('naiad'), + ('naifs'), + ('naiks'), + ('nails'), + ('naira'), + ('nairu'), + ('naive'), + ('naked'), + ('naker'), + ('nakfa'), + ('nalas'), + ('naled'), + ('nalla'), + ('named'), + ('namer'), + ('names'), + ('namma'), + ('namus'), + ('nanas'), + ('nance'), + ('nancy'), + ('nandu'), + ('nanna'), + ('nanny'), + ('nanos'), + ('nanua'), + ('napas'), + ('naped'), + ('napes'), + ('napoo'), + ('nappa'), + ('nappe'), + ('nappy'), + ('naras'), + ('narco'), + ('narcs'), + ('nards'), + ('nares'), + ('naric'), + ('naris'), + ('narks'), + ('narky'), + ('narre'), + ('nasal'), + ('nashi'), + ('nasty'), + ('natal'), + ('natch'), + ('nates'), + ('natis'), + ('natty'), + ('nauch'), + ('naunt'), + ('naval'), + ('navar'), + ('navel'), + ('naves'), + ('navew'), + ('navvy'), + ('nawab'), + ('nazes'), + ('nazir'), + ('nazis'), + ('nduja'), + ('neafe'), + ('neals'), + ('neaps'), + ('nears'), + ('neath'), + ('neats'), + ('nebek'), + ('nebel'), + ('necks'), + ('neddy'), + ('needs'), + ('needy'), + ('neeld'), + ('neele'), + ('neemb'), + ('neems'), + ('neeps'), + ('neese'), + ('neeze'), + ('negro'), + ('negus'), + ('neifs'), + ('neigh'), + ('neist'), + ('neive'), + ('nelis'), + ('nelly'), + ('nemas'), + ('nemns'), + ('nempt'), + ('nenes'), + ('neons'), + ('neper'), + ('nepit'), + ('neral'), + ('nerds'), + ('nerdy'), + ('nerka'), + ('nerks'), + ('nerol'), + ('nerts'), + ('nertz'), + ('nerve'), + ('nervy'), + ('nests'), + ('netes'), + ('netop'), + ('netts'), + ('netty'), + ('neuks'), + ('neume'), + ('neums'), + ('nevel'), + ('never'), + ('neves'), + ('nevus'), + ('newbs'), + ('newed'), + ('newel'), + ('newer'), + ('newie'), + ('newly'), + ('newsy'), + ('newts'), + ('nexts'), + ('nexus'), + ('ngaio'), + ('ngana'), + ('ngati'), + ('ngoma'), + ('ngwee'), + ('nicad'), + ('nicer'), + ('niche'), + ('nicht'), + ('nicks'), + ('nicol'), + ('nidal'), + ('nided'), + ('nides'), + ('nidor'), + ('nidus'), + ('niece'), + ('niefs'), + ('nieve'), + ('nifes'), + ('niffs'), + ('niffy'), + ('nifty'), + ('niger'), + ('nighs'), + ('night'), + ('nihil'), + ('nikab'), + ('nikah'), + ('nikau'), + ('nills'), + ('nimbi'), + ('nimbs'), + ('nimps'), + ('niner'), + ('nines'), + ('ninja'), + ('ninny'), + ('ninon'), + ('ninth'), + ('nipas'), + ('nippy'), + ('niqab'), + ('nirls'), + ('nirly'), + ('nisei'), + ('nisse'), + ('nisus'), + ('niter'), + ('nites'), + ('nitid'), + ('niton'), + ('nitre'), + ('nitro'), + ('nitry'), + ('nitty'), + ('nival'), + ('nixed'), + ('nixer'), + ('nixes'), + ('nixie'), + ('nizam'), + ('nkosi'), + ('noahs'), + ('nobby'), + ('noble'), + ('nobly'), + ('nocks'), + ('nodal'), + ('noddy'), + ('nodes'), + ('nodus'), + ('noels'), + ('noggs'), + ('nohow'), + ('noils'), + ('noily'), + ('noint'), + ('noirs'), + ('noise'), + ('noisy'), + ('noles'), + ('nolls'), + ('nolos'), + ('nomad'), + ('nomas'), + ('nomen'), + ('nomes'), + ('nomic'), + ('nomoi'), + ('nomos'), + ('nonas'), + ('nonce'), + ('nones'), + ('nonet'), + ('nongs'), + ('nonis'), + ('nonny'), + ('nonyl'), + ('noobs'), + ('nooit'), + ('nooks'), + ('nooky'), + ('noons'), + ('noops'), + ('noose'), + ('nopal'), + ('noria'), + ('noris'), + ('norks'), + ('norma'), + ('norms'), + ('north'), + ('nosed'), + ('noser'), + ('noses'), + ('nosey'), + ('notal'), + ('notch'), + ('noted'), + ('noter'), + ('notes'), + ('notum'), + ('nould'), + ('noule'), + ('nouls'), + ('nouns'), + ('nouny'), + ('noups'), + ('novae'), + ('novas'), + ('novel'), + ('novum'), + ('noway'), + ('nowed'), + ('nowls'), + ('nowts'), + ('nowty'), + ('noxal'), + ('noxes'), + ('noyau'), + ('noyed'), + ('noyes'), + ('nubby'), + ('nubia'), + ('nucha'), + ('nuddy'), + ('nuder'), + ('nudes'), + ('nudge'), + ('nudie'), + ('nudzh'), + ('nuffs'), + ('nugae'), + ('nuked'), + ('nukes'), + ('nulla'), + ('nulls'), + ('numbs'), + ('numen'), + ('nummy'), + ('nunny'), + ('nurds'), + ('nurdy'), + ('nurls'), + ('nurrs'), + ('nurse'), + ('nutso'), + ('nutsy'), + ('nutty'), + ('nyaff'), + ('nyala'), + ('nying'), + ('nylon'), + ('nymph'), + ('nyssa'), + ('oaked'), + ('oaken'), + ('oaker'), + ('oakum'), + ('oared'), + ('oases'), + ('oasis'), + ('oasts'), + ('oaten'), + ('oater'), + ('oaths'), + ('oaves'), + ('obang'), + ('obeah'), + ('obeli'), + ('obese'), + ('obeys'), + ('obias'), + ('obied'), + ('obiit'), + ('obits'), + ('objet'), + ('oboes'), + ('obole'), + ('oboli'), + ('obols'), + ('occam'), + ('occur'), + ('ocean'), + ('ocher'), + ('oches'), + ('ochre'), + ('ochry'), + ('ocker'), + ('ocrea'), + ('octad'), + ('octal'), + ('octan'), + ('octas'), + ('octet'), + ('octyl'), + ('oculi'), + ('odahs'), + ('odals'), + ('odder'), + ('oddly'), + ('odeon'), + ('odeum'), + ('odism'), + ('odist'), + ('odium'), + ('odors'), + ('odour'), + ('odyle'), + ('odyls'), + ('ofays'), + ('offal'), + ('offed'), + ('offer'), + ('offie'), + ('oflag'), + ('often'), + ('ofter'), + ('ogams'), + ('ogeed'), + ('ogees'), + ('oggin'), + ('ogham'), + ('ogive'), + ('ogled'), + ('ogler'), + ('ogles'), + ('ogmic'), + ('ogres'), + ('ohias'), + ('ohing'), + ('ohmic'), + ('ohone'), + ('oidia'), + ('oiled'), + ('oiler'), + ('oinks'), + ('oints'), + ('ojime'), + ('okapi'), + ('okays'), + ('okehs'), + ('okras'), + ('oktas'), + ('olden'), + ('older'), + ('oldie'), + ('oleic'), + ('olein'), + ('olent'), + ('oleos'), + ('oleum'), + ('olios'), + ('olive'), + ('ollas'), + ('ollav'), + ('oller'), + ('ollie'), + ('ology'), + ('olpae'), + ('olpes'), + ('omasa'), + ('omber'), + ('ombre'), + ('ombus'), + ('omega'), + ('omens'), + ('omers'), + ('omits'), + ('omlah'), + ('omovs'), + ('omrah'), + ('oncer'), + ('onces'), + ('oncet'), + ('oncus'), + ('onely'), + ('oners'), + ('onery'), + ('onion'), + ('onium'), + ('onkus'), + ('onlay'), + ('onned'), + ('onset'), + ('ontic'), + ('oobit'), + ('oohed'), + ('oomph'), + ('oonts'), + ('ooped'), + ('oorie'), + ('ooses'), + ('ootid'), + ('oozed'), + ('oozes'), + ('opahs'), + ('opals'), + ('opens'), + ('opepe'), + ('opera'), + ('opine'), + ('oping'), + ('opium'), + ('oppos'), + ('opsin'), + ('opted'), + ('opter'), + ('optic'), + ('orach'), + ('oracy'), + ('orals'), + ('orang'), + ('orant'), + ('orate'), + ('orbed'), + ('orbit'), + ('orcas'), + ('orcin'), + ('order'), + ('ordos'), + ('oread'), + ('orfes'), + ('organ'), + ('orgia'), + ('orgic'), + ('orgue'), + ('oribi'), + ('oriel'), + ('orixa'), + ('orles'), + ('orlon'), + ('orlop'), + ('ormer'), + ('ornis'), + ('orpin'), + ('orris'), + ('ortho'), + ('orval'), + ('orzos'), + ('oscar'), + ('oshac'), + ('osier'), + ('osmic'), + ('osmol'), + ('ossia'), + ('ostia'), + ('otaku'), + ('otary'), + ('other'), + ('ottar'), + ('otter'), + ('ottos'), + ('oubit'), + ('oucht'), + ('ouens'), + ('ought'), + ('ouija'), + ('oulks'), + ('oumas'), + ('ounce'), + ('oundy'), + ('oupas'), + ('ouped'), + ('ouphe'), + ('ouphs'), + ('ourie'), + ('ousel'), + ('ousts'), + ('outby'), + ('outdo'), + ('outed'), + ('outer'), + ('outgo'), + ('outre'), + ('outro'), + ('outta'), + ('ouzel'), + ('ouzos'), + ('ovals'), + ('ovary'), + ('ovate'), + ('ovels'), + ('ovens'), + ('overs'), + ('overt'), + ('ovine'), + ('ovist'), + ('ovoid'), + ('ovoli'), + ('ovolo'), + ('ovule'), + ('owche'), + ('owies'), + ('owing'), + ('owled'), + ('owler'), + ('owlet'), + ('owned'), + ('owner'), + ('owres'), + ('owrie'), + ('owsen'), + ('oxbow'), + ('oxers'), + ('oxeye'), + ('oxide'), + ('oxids'), + ('oxies'), + ('oxime'), + ('oxims'), + ('oxlip'), + ('oxter'), + ('oyers'), + ('ozeki'), + ('ozone'), + ('ozzie'), + ('paals'), + ('paans'), + ('pacas'), + ('paced'), + ('pacer'), + ('paces'), + ('pacey'), + ('pacha'), + ('packs'), + ('pacos'), + ('pacta'), + ('pacts'), + ('paddy'), + ('padis'), + ('padle'), + ('padma'), + ('padre'), + ('padri'), + ('paean'), + ('paedo'), + ('paeon'), + ('pagan'), + ('paged'), + ('pager'), + ('pages'), + ('pagle'), + ('pagod'), + ('pagri'), + ('paiks'), + ('pails'), + ('pains'), + ('paint'), + ('paire'), + ('pairs'), + ('paisa'), + ('paise'), + ('pakka'), + ('palas'), + ('palay'), + ('palea'), + ('paled'), + ('paler'), + ('pales'), + ('palet'), + ('palis'), + ('palki'), + ('palla'), + ('palls'), + ('pally'), + ('palms'), + ('palmy'), + ('palpi'), + ('palps'), + ('palsa'), + ('palsy'), + ('pampa'), + ('panax'), + ('pance'), + ('panda'), + ('pands'), + ('pandy'), + ('paned'), + ('panel'), + ('panes'), + ('panga'), + ('pangs'), + ('panic'), + ('panim'), + ('panko'), + ('panne'), + ('panni'), + ('pansy'), + ('panto'), + ('pants'), + ('panty'), + ('paoli'), + ('paolo'), + ('papal'), + ('papas'), + ('papaw'), + ('paper'), + ('papes'), + ('pappi'), + ('pappy'), + ('parae'), + ('paras'), + ('parch'), + ('pardi'), + ('pards'), + ('pardy'), + ('pared'), + ('paren'), + ('pareo'), + ('parer'), + ('pares'), + ('pareu'), + ('parev'), + ('parge'), + ('pargo'), + ('paris'), + ('parka'), + ('parki'), + ('parks'), + ('parky'), + ('parle'), + ('parly'), + ('parma'), + ('parol'), + ('parps'), + ('parra'), + ('parrs'), + ('parry'), + ('parse'), + ('parti'), + ('parts'), + ('party'), + ('parve'), + ('parvo'), + ('paseo'), + ('pases'), + ('pasha'), + ('pashm'), + ('paska'), + ('paspy'), + ('passe'), + ('pasta'), + ('paste'), + ('pasts'), + ('pasty'), + ('patch'), + ('pated'), + ('paten'), + ('pater'), + ('pates'), + ('paths'), + ('patin'), + ('patio'), + ('patka'), + ('patly'), + ('patsy'), + ('patte'), + ('patty'), + ('patus'), + ('pauas'), + ('pauls'), + ('pause'), + ('pavan'), + ('paved'), + ('paven'), + ('paver'), + ('paves'), + ('pavid'), + ('pavin'), + ('pavis'), + ('pawas'), + ('pawaw'), + ('pawed'), + ('pawer'), + ('pawks'), + ('pawky'), + ('pawls'), + ('pawns'), + ('paxes'), + ('payed'), + ('payee'), + ('payer'), + ('payor'), + ('paysd'), + ('peace'), + ('peach'), + ('peage'), + ('peags'), + ('peaks'), + ('peaky'), + ('peals'), + ('peans'), + ('peare'), + ('pearl'), + ('pears'), + ('peart'), + ('pease'), + ('peats'), + ('peaty'), + ('peavy'), + ('peaze'), + ('pebas'), + ('pecan'), + ('pechs'), + ('pecke'), + ('pecks'), + ('pecky'), + ('pedal'), + ('pedes'), + ('pedis'), + ('pedro'), + ('peece'), + ('peeks'), + ('peels'), + ('peens'), + ('peeoy'), + ('peepe'), + ('peeps'), + ('peers'), + ('peery'), + ('peeve'), + ('peggy'), + ('peghs'), + ('peins'), + ('peise'), + ('peize'), + ('pekan'), + ('pekes'), + ('pekin'), + ('pekoe'), + ('pelas'), + ('pelau'), + ('peles'), + ('pelfs'), + ('pells'), + ('pelma'), + ('pelon'), + ('pelta'), + ('pelts'), + ('penal'), + ('pence'), + ('pends'), + ('pendu'), + ('pened'), + ('penes'), + ('pengo'), + ('penie'), + ('penis'), + ('penks'), + ('penna'), + ('penne'), + ('penni'), + ('penny'), + ('pents'), + ('peons'), + ('peony'), + ('pepla'), + ('pepos'), + ('peppy'), + ('pepsi'), + ('perai'), + ('perce'), + ('perch'), + ('percs'), + ('perdu'), + ('perdy'), + ('perea'), + ('peres'), + ('peril'), + ('peris'), + ('perks'), + ('perky'), + ('perms'), + ('perns'), + ('perog'), + ('perps'), + ('perry'), + ('perse'), + ('perst'), + ('perts'), + ('perve'), + ('pervo'), + ('pervs'), + ('pervy'), + ('pesky'), + ('pesos'), + ('pesto'), + ('pests'), + ('pesty'), + ('petal'), + ('petar'), + ('peter'), + ('petit'), + ('petre'), + ('petri'), + ('petti'), + ('petto'), + ('petty'), + ('pewee'), + ('pewit'), + ('peyse'), + ('phage'), + ('phang'), + ('phare'), + ('pharm'), + ('phase'), + ('pheer'), + ('phene'), + ('pheon'), + ('phese'), + ('phial'), + ('phish'), + ('phizz'), + ('phlox'), + ('phoca'), + ('phone'), + ('phono'), + ('phons'), + ('phony'), + ('photo'), + ('phots'), + ('phpht'), + ('phuts'), + ('phyla'), + ('phyle'), + ('piani'), + ('piano'), + ('pians'), + ('pibal'), + ('pical'), + ('picas'), + ('piccy'), + ('picks'), + ('picky'), + ('picot'), + ('picra'), + ('picul'), + ('piece'), + ('piend'), + ('piers'), + ('piert'), + ('pieta'), + ('piets'), + ('piety'), + ('piezo'), + ('piggy'), + ('pight'), + ('pigmy'), + ('piing'), + ('pikas'), + ('pikau'), + ('piked'), + ('piker'), + ('pikes'), + ('pikey'), + ('pikis'), + ('pikul'), + ('pilae'), + ('pilaf'), + ('pilao'), + ('pilar'), + ('pilau'), + ('pilaw'), + ('pilch'), + ('pilea'), + ('piled'), + ('pilei'), + ('piler'), + ('piles'), + ('pilis'), + ('pills'), + ('pilot'), + ('pilow'), + ('pilum'), + ('pilus'), + ('pimas'), + ('pimps'), + ('pinas'), + ('pinch'), + ('pined'), + ('pines'), + ('piney'), + ('pingo'), + ('pings'), + ('pinko'), + ('pinks'), + ('pinky'), + ('pinna'), + ('pinny'), + ('pinon'), + ('pinot'), + ('pinta'), + ('pinto'), + ('pints'), + ('pinup'), + ('pions'), + ('piony'), + ('pious'), + ('pioye'), + ('pioys'), + ('pipal'), + ('pipas'), + ('piped'), + ('piper'), + ('pipes'), + ('pipet'), + ('pipis'), + ('pipit'), + ('pippy'), + ('pipul'), + ('pique'), + ('pirai'), + ('pirls'), + ('pirns'), + ('pirog'), + ('pisco'), + ('pises'), + ('pisky'), + ('pisos'), + ('pissy'), + ('piste'), + ('pitas'), + ('pitch'), + ('piths'), + ('pithy'), + ('piton'), + ('pitot'), + ('pitta'), + ('piums'), + ('pivot'), + ('pixel'), + ('pixes'), + ('pixie'), + ('pized'), + ('pizes'), + ('pizza'), + ('plaas'), + ('place'), + ('plack'), + ('plage'), + ('plaid'), + ('plain'), + ('plait'), + ('plane'), + ('plank'), + ('plans'), + ('plant'), + ('plaps'), + ('plash'), + ('plasm'), + ('plast'), + ('plate'), + ('plats'), + ('platt'), + ('platy'), + ('playa'), + ('plays'), + ('plaza'), + ('plead'), + ('pleas'), + ('pleat'), + ('plebe'), + ('plebs'), + ('plena'), + ('pleon'), + ('plesh'), + ('plews'), + ('plica'), + ('plied'), + ('plier'), + ('plies'), + ('plims'), + ('pling'), + ('plink'), + ('ploat'), + ('plods'), + ('plong'), + ('plonk'), + ('plook'), + ('plops'), + ('plots'), + ('plotz'), + ('plouk'), + ('plows'), + ('ploye'), + ('ploys'), + ('pluck'), + ('plues'), + ('pluff'), + ('plugs'), + ('plumb'), + ('plume'), + ('plump'), + ('plums'), + ('plumy'), + ('plunk'), + ('pluot'), + ('plush'), + ('pluto'), + ('plyer'), + ('poach'), + ('poaka'), + ('poake'), + ('poboy'), + ('pocks'), + ('pocky'), + ('podal'), + ('poddy'), + ('podex'), + ('podge'), + ('podgy'), + ('podia'), + ('poems'), + ('poeps'), + ('poesy'), + ('poets'), + ('pogey'), + ('pogge'), + ('pogos'), + ('pohed'), + ('poilu'), + ('poind'), + ('point'), + ('poise'), + ('pokal'), + ('poked'), + ('poker'), + ('pokes'), + ('pokey'), + ('pokie'), + ('polar'), + ('poled'), + ('poler'), + ('poles'), + ('poley'), + ('polio'), + ('polis'), + ('polje'), + ('polka'), + ('polks'), + ('polls'), + ('polly'), + ('polos'), + ('polts'), + ('polyp'), + ('polys'), + ('pombe'), + ('pomes'), + ('pommy'), + ('pomos'), + ('pomps'), + ('ponce'), + ('poncy'), + ('ponds'), + ('pones'), + ('poney'), + ('ponga'), + ('pongo'), + ('pongs'), + ('pongy'), + ('ponks'), + ('ponts'), + ('ponty'), + ('ponzu'), + ('pooch'), + ('poods'), + ('pooed'), + ('poofs'), + ('poofy'), + ('poohs'), + ('pooja'), + ('pooka'), + ('pooks'), + ('pools'), + ('poons'), + ('poops'), + ('poopy'), + ('poori'), + ('poort'), + ('poots'), + ('poove'), + ('poovy'), + ('popes'), + ('poppa'), + ('poppy'), + ('popsy'), + ('porae'), + ('poral'), + ('porch'), + ('pored'), + ('porer'), + ('pores'), + ('porge'), + ('porgy'), + ('porin'), + ('porks'), + ('porky'), + ('porno'), + ('porns'), + ('porny'), + ('porta'), + ('ports'), + ('porty'), + ('posed'), + ('poser'), + ('poses'), + ('posey'), + ('posho'), + ('posit'), + ('posse'), + ('posts'), + ('potae'), + ('potch'), + ('poted'), + ('potes'), + ('potin'), + ('potoo'), + ('potsy'), + ('potto'), + ('potts'), + ('potty'), + ('pouch'), + ('pouff'), + ('poufs'), + ('pouke'), + ('pouks'), + ('poule'), + ('poulp'), + ('poult'), + ('pound'), + ('poupe'), + ('poupt'), + ('pours'), + ('pouts'), + ('pouty'), + ('powan'), + ('power'), + ('powin'), + ('pownd'), + ('powns'), + ('powny'), + ('powre'), + ('poxed'), + ('poxes'), + ('poynt'), + ('poyou'), + ('poyse'), + ('pozzy'), + ('praam'), + ('prads'), + ('prahu'), + ('prams'), + ('prana'), + ('prang'), + ('prank'), + ('praos'), + ('prase'), + ('prate'), + ('prats'), + ('pratt'), + ('praty'), + ('praus'), + ('prawn'), + ('prays'), + ('predy'), + ('preed'), + ('preen'), + ('prees'), + ('preif'), + ('prems'), + ('premy'), + ('prent'), + ('preon'), + ('preop'), + ('preps'), + ('presa'), + ('prese'), + ('press'), + ('prest'), + ('preve'), + ('prexy'), + ('preys'), + ('prial'), + ('price'), + ('prick'), + ('pricy'), + ('pride'), + ('pried'), + ('prief'), + ('prier'), + ('pries'), + ('prigs'), + ('prill'), + ('prima'), + ('prime'), + ('primi'), + ('primo'), + ('primp'), + ('prims'), + ('primy'), + ('prink'), + ('print'), + ('prion'), + ('prior'), + ('prise'), + ('prism'), + ('priss'), + ('privy'), + ('prize'), + ('proas'), + ('probe'), + ('probs'), + ('prods'), + ('proem'), + ('profs'), + ('progs'), + ('proin'), + ('proke'), + ('prole'), + ('proll'), + ('promo'), + ('proms'), + ('prone'), + ('prong'), + ('pronk'), + ('proof'), + ('props'), + ('prore'), + ('prose'), + ('proso'), + ('pross'), + ('prost'), + ('prosy'), + ('proto'), + ('proud'), + ('proul'), + ('prove'), + ('prowl'), + ('prows'), + ('proxy'), + ('proyn'), + ('prude'), + ('prune'), + ('prunt'), + ('pruta'), + ('pryer'), + ('pryse'), + ('psalm'), + ('pseud'), + ('pshaw'), + ('psion'), + ('psoae'), + ('psoai'), + ('psoas'), + ('psora'), + ('psych'), + ('psyop'), + ('pubco'), + ('pubes'), + ('pubic'), + ('pubis'), + ('pucan'), + ('pucer'), + ('puces'), + ('pucka'), + ('pucks'), + ('puddy'), + ('pudge'), + ('pudgy'), + ('pudic'), + ('pudor'), + ('pudsy'), + ('pudus'), + ('puers'), + ('puffa'), + ('puffs'), + ('puffy'), + ('puggy'), + ('pugil'), + ('puhas'), + ('pujah'), + ('pujas'), + ('pukas'), + ('puked'), + ('puker'), + ('pukes'), + ('pukey'), + ('pukka'), + ('pukus'), + ('pulao'), + ('pulas'), + ('puled'), + ('puler'), + ('pules'), + ('pulik'), + ('pulis'), + ('pulka'), + ('pulks'), + ('pulli'), + ('pulls'), + ('pully'), + ('pulmo'), + ('pulps'), + ('pulpy'), + ('pulse'), + ('pulus'), + ('pumas'), + ('pumie'), + ('pumps'), + ('punas'), + ('punce'), + ('punch'), + ('punga'), + ('pungs'), + ('punji'), + ('punka'), + ('punks'), + ('punky'), + ('punny'), + ('punto'), + ('punts'), + ('punty'), + ('pupae'), + ('pupal'), + ('pupas'), + ('pupil'), + ('puppy'), + ('pupus'), + ('purda'), + ('pured'), + ('puree'), + ('purer'), + ('pures'), + ('purge'), + ('purin'), + ('puris'), + ('purls'), + ('purpy'), + ('purrs'), + ('purse'), + ('pursy'), + ('purty'), + ('puses'), + ('pushy'), + ('pusle'), + ('pussy'), + ('putid'), + ('puton'), + ('putti'), + ('putto'), + ('putts'), + ('putty'), + ('puzel'), + ('pwned'), + ('pyats'), + ('pyets'), + ('pygal'), + ('pygmy'), + ('pyins'), + ('pylon'), + ('pyned'), + ('pynes'), + ('pyoid'), + ('pyots'), + ('pyral'), + ('pyran'), + ('pyres'), + ('pyrex'), + ('pyric'), + ('pyros'), + ('pyxed'), + ('pyxes'), + ('pyxie'), + ('pyxis'), + ('pzazz'), + ('qadis'), + ('qaids'), + ('qajaq'), + ('qanat'), + ('qapik'), + ('qibla'), + ('qophs'), + ('qorma'), + ('quack'), + ('quads'), + ('quaff'), + ('quags'), + ('quail'), + ('quair'), + ('quais'), + ('quake'), + ('quaky'), + ('quale'), + ('qualm'), + ('quant'), + ('quare'), + ('quark'), + ('quart'), + ('quash'), + ('quasi'), + ('quass'), + ('quate'), + ('quats'), + ('quayd'), + ('quays'), + ('qubit'), + ('quean'), + ('queen'), + ('queer'), + ('quell'), + ('queme'), + ('quena'), + ('quern'), + ('query'), + ('quest'), + ('queue'), + ('queyn'), + ('queys'), + ('quich'), + ('quick'), + ('quids'), + ('quiet'), + ('quiff'), + ('quill'), + ('quilt'), + ('quims'), + ('quina'), + ('quine'), + ('quino'), + ('quins'), + ('quint'), + ('quipo'), + ('quips'), + ('quipu'), + ('quire'), + ('quirk'), + ('quirt'), + ('quist'), + ('quite'), + ('quits'), + ('quoad'), + ('quods'), + ('quoif'), + ('quoin'), + ('quoit'), + ('quoll'), + ('quonk'), + ('quops'), + ('quota'), + ('quote'), + ('quoth'), + ('qursh'), + ('quyte'), + ('rabat'), + ('rabbi'), + ('rabic'), + ('rabid'), + ('rabis'), + ('raced'), + ('racer'), + ('races'), + ('rache'), + ('racks'), + ('racon'), + ('radar'), + ('radge'), + ('radii'), + ('radio'), + ('radix'), + ('radon'), + ('raffs'), + ('rafts'), + ('ragas'), + ('ragde'), + ('raged'), + ('ragee'), + ('rager'), + ('rages'), + ('ragga'), + ('raggs'), + ('raggy'), + ('ragis'), + ('ragus'), + ('rahed'), + ('rahui'), + ('raias'), + ('raids'), + ('raiks'), + ('raile'), + ('rails'), + ('raine'), + ('rains'), + ('rainy'), + ('raird'), + ('raise'), + ('raita'), + ('raits'), + ('rajah'), + ('rajas'), + ('rajes'), + ('raked'), + ('rakee'), + ('raker'), + ('rakes'), + ('rakia'), + ('rakis'), + ('rakus'), + ('rales'), + ('rally'), + ('ralph'), + ('ramal'), + ('ramee'), + ('ramen'), + ('ramet'), + ('ramie'), + ('ramin'), + ('ramis'), + ('rammy'), + ('ramps'), + ('ramus'), + ('ranas'), + ('rance'), + ('ranch'), + ('rands'), + ('randy'), + ('ranee'), + ('ranga'), + ('range'), + ('rangi'), + ('rangs'), + ('rangy'), + ('ranid'), + ('ranis'), + ('ranke'), + ('ranks'), + ('rants'), + ('raped'), + ('raper'), + ('rapes'), + ('raphe'), + ('rapid'), + ('rappe'), + ('rared'), + ('raree'), + ('rarer'), + ('rares'), + ('rarks'), + ('rased'), + ('raser'), + ('rases'), + ('rasps'), + ('raspy'), + ('rasse'), + ('rasta'), + ('ratal'), + ('ratan'), + ('ratas'), + ('ratch'), + ('rated'), + ('ratel'), + ('rater'), + ('rates'), + ('ratha'), + ('rathe'), + ('raths'), + ('ratio'), + ('ratoo'), + ('ratos'), + ('ratty'), + ('ratus'), + ('rauns'), + ('raupo'), + ('raved'), + ('ravel'), + ('raven'), + ('raver'), + ('raves'), + ('ravey'), + ('ravin'), + ('rawer'), + ('rawin'), + ('rawly'), + ('rawns'), + ('raxed'), + ('raxes'), + ('rayah'), + ('rayas'), + ('rayed'), + ('rayle'), + ('rayne'), + ('rayon'), + ('razed'), + ('razee'), + ('razer'), + ('razes'), + ('razoo'), + ('razor'), + ('reach'), + ('react'), + ('readd'), + ('reads'), + ('ready'), + ('reais'), + ('reaks'), + ('realm'), + ('realo'), + ('reals'), + ('reame'), + ('reams'), + ('reamy'), + ('reans'), + ('reaps'), + ('rearm'), + ('rears'), + ('reast'), + ('reata'), + ('reate'), + ('reave'), + ('rebar'), + ('rebbe'), + ('rebec'), + ('rebel'), + ('rebid'), + ('rebit'), + ('rebop'), + ('rebus'), + ('rebut'), + ('rebuy'), + ('recal'), + ('recap'), + ('recce'), + ('recco'), + ('reccy'), + ('recit'), + ('recks'), + ('recon'), + ('recta'), + ('recti'), + ('recto'), + ('recur'), + ('recut'), + ('redan'), + ('redds'), + ('reddy'), + ('reded'), + ('redes'), + ('redia'), + ('redid'), + ('redip'), + ('redly'), + ('redon'), + ('redos'), + ('redox'), + ('redry'), + ('redub'), + ('redux'), + ('redye'), + ('reech'), + ('reede'), + ('reeds'), + ('reedy'), + ('reefs'), + ('reefy'), + ('reeks'), + ('reeky'), + ('reels'), + ('reens'), + ('reest'), + ('reeve'), + ('refed'), + ('refel'), + ('refer'), + ('reffo'), + ('refis'), + ('refit'), + ('refix'), + ('refly'), + ('refry'), + ('regal'), + ('regar'), + ('reges'), + ('reggo'), + ('regie'), + ('regma'), + ('regna'), + ('regos'), + ('regur'), + ('rehab'), + ('rehem'), + ('reifs'), + ('reify'), + ('reign'), + ('reiki'), + ('reiks'), + ('reink'), + ('reins'), + ('reird'), + ('reist'), + ('reive'), + ('rejig'), + ('rejon'), + ('reked'), + ('rekes'), + ('rekey'), + ('relax'), + ('relay'), + ('relet'), + ('relic'), + ('relie'), + ('relit'), + ('rello'), + ('reman'), + ('remap'), + ('remen'), + ('remet'), + ('remex'), + ('remit'), + ('remix'), + ('renal'), + ('renay'), + ('rends'), + ('renew'), + ('reney'), + ('renga'), + ('renig'), + ('renin'), + ('renne'), + ('renos'), + ('rente'), + ('rents'), + ('reoil'), + ('reorg'), + ('repay'), + ('repeg'), + ('repel'), + ('repin'), + ('repla'), + ('reply'), + ('repos'), + ('repot'), + ('repps'), + ('repro'), + ('reran'), + ('rerig'), + ('rerun'), + ('resat'), + ('resaw'), + ('resay'), + ('resee'), + ('reses'), + ('reset'), + ('resew'), + ('resid'), + ('resin'), + ('resit'), + ('resod'), + ('resow'), + ('resto'), + ('rests'), + ('resty'), + ('resus'), + ('retag'), + ('retax'), + ('retch'), + ('retem'), + ('retia'), + ('retie'), + ('retox'), + ('retro'), + ('retry'), + ('reuse'), + ('revel'), + ('revet'), + ('revie'), + ('revue'), + ('rewan'), + ('rewax'), + ('rewed'), + ('rewet'), + ('rewin'), + ('rewon'), + ('rewth'), + ('rexes'), + ('rezes'), + ('rheas'), + ('rheme'), + ('rheum'), + ('rhies'), + ('rhime'), + ('rhine'), + ('rhino'), + ('rhody'), + ('rhomb'), + ('rhone'), + ('rhumb'), + ('rhyme'), + ('rhyne'), + ('rhyta'), + ('riads'), + ('rials'), + ('riant'), + ('riata'), + ('ribas'), + ('ribby'), + ('ribes'), + ('riced'), + ('ricer'), + ('rices'), + ('ricey'), + ('richt'), + ('ricin'), + ('ricks'), + ('rider'), + ('rides'), + ('ridge'), + ('ridgy'), + ('ridic'), + ('riels'), + ('riems'), + ('rieve'), + ('rifer'), + ('riffs'), + ('rifle'), + ('rifte'), + ('rifts'), + ('rifty'), + ('riggs'), + ('right'), + ('rigid'), + ('rigol'), + ('rigor'), + ('riled'), + ('riles'), + ('riley'), + ('rille'), + ('rills'), + ('rimae'), + ('rimed'), + ('rimer'), + ('rimes'), + ('rimus'), + ('rinds'), + ('rindy'), + ('rines'), + ('rings'), + ('rinks'), + ('rinse'), + ('rioja'), + ('riots'), + ('riped'), + ('ripen'), + ('riper'), + ('ripes'), + ('ripps'), + ('risen'), + ('riser'), + ('rises'), + ('rishi'), + ('risks'), + ('risky'), + ('risps'), + ('risus'), + ('rites'), + ('ritts'), + ('ritzy'), + ('rival'), + ('rivas'), + ('rived'), + ('rivel'), + ('riven'), + ('river'), + ('rives'), + ('rivet'), + ('riyal'), + ('rizas'), + ('roach'), + ('roads'), + ('roams'), + ('roans'), + ('roars'), + ('roary'), + ('roast'), + ('roate'), + ('robed'), + ('robes'), + ('robin'), + ('roble'), + ('robot'), + ('rocks'), + ('rocky'), + ('roded'), + ('rodeo'), + ('rodes'), + ('roger'), + ('rogue'), + ('roguy'), + ('rohes'), + ('roids'), + ('roils'), + ('roily'), + ('roins'), + ('roist'), + ('rojak'), + ('rojis'), + ('roked'), + ('roker'), + ('rokes'), + ('rolag'), + ('roles'), + ('rolfs'), + ('rolls'), + ('romal'), + ('roman'), + ('romeo'), + ('romps'), + ('ronde'), + ('rondo'), + ('roneo'), + ('rones'), + ('ronin'), + ('ronne'), + ('ronte'), + ('ronts'), + ('roods'), + ('roofs'), + ('roofy'), + ('rooks'), + ('rooky'), + ('rooms'), + ('roomy'), + ('roons'), + ('roops'), + ('roopy'), + ('roosa'), + ('roose'), + ('roost'), + ('roots'), + ('rooty'), + ('roped'), + ('roper'), + ('ropes'), + ('ropey'), + ('roque'), + ('roral'), + ('rores'), + ('roric'), + ('rorid'), + ('rorie'), + ('rorts'), + ('rorty'), + ('rosed'), + ('roses'), + ('roset'), + ('roshi'), + ('rosin'), + ('rosit'), + ('rosti'), + ('rosts'), + ('rotal'), + ('rotan'), + ('rotas'), + ('rotch'), + ('roted'), + ('rotes'), + ('rotis'), + ('rotls'), + ('roton'), + ('rotor'), + ('rotos'), + ('rotte'), + ('rouen'), + ('roues'), + ('rouge'), + ('rough'), + ('roule'), + ('rouls'), + ('roums'), + ('round'), + ('roups'), + ('roupy'), + ('rouse'), + ('roust'), + ('route'), + ('routh'), + ('routs'), + ('roved'), + ('roven'), + ('rover'), + ('roves'), + ('rowan'), + ('rowdy'), + ('rowed'), + ('rowel'), + ('rowen'), + ('rower'), + ('rowie'), + ('rowme'), + ('rownd'), + ('rowth'), + ('rowts'), + ('royal'), + ('royne'), + ('royst'), + ('rozet'), + ('rozit'), + ('ruana'), + ('rubai'), + ('rubby'), + ('rubel'), + ('rubes'), + ('rubin'), + ('ruble'), + ('rubli'), + ('rubus'), + ('ruche'), + ('rucks'), + ('rudas'), + ('rudds'), + ('ruddy'), + ('ruder'), + ('rudes'), + ('rudie'), + ('rudis'), + ('rueda'), + ('ruers'), + ('ruffe'), + ('ruffs'), + ('rugae'), + ('rugal'), + ('rugby'), + ('ruggy'), + ('ruing'), + ('ruins'), + ('rukhs'), + ('ruled'), + ('ruler'), + ('rules'), + ('rumal'), + ('rumba'), + ('rumbo'), + ('rumen'), + ('rumes'), + ('rumly'), + ('rummy'), + ('rumor'), + ('rumpo'), + ('rumps'), + ('rumpy'), + ('runch'), + ('runds'), + ('runed'), + ('runes'), + ('rungs'), + ('runic'), + ('runny'), + ('runts'), + ('runty'), + ('rupee'), + ('rupia'), + ('rural'), + ('rurps'), + ('rurus'), + ('rusas'), + ('ruses'), + ('rushy'), + ('rusks'), + ('rusma'), + ('russe'), + ('rusts'), + ('rusty'), + ('ruths'), + ('rutin'), + ('rutty'), + ('ryals'), + ('rybat'), + ('ryked'), + ('rykes'), + ('rymme'), + ('rynds'), + ('ryots'), + ('ryper'), + ('saags'), + ('sabal'), + ('sabed'), + ('saber'), + ('sabes'), + ('sabha'), + ('sabin'), + ('sabir'), + ('sable'), + ('sabot'), + ('sabra'), + ('sabre'), + ('sacks'), + ('sacra'), + ('saddo'), + ('sades'), + ('sadhe'), + ('sadhu'), + ('sadis'), + ('sadly'), + ('sados'), + ('sadza'), + ('safed'), + ('safer'), + ('safes'), + ('sagas'), + ('sager'), + ('sages'), + ('saggy'), + ('sagos'), + ('sagum'), + ('saheb'), + ('sahib'), + ('saice'), + ('saick'), + ('saics'), + ('saids'), + ('saiga'), + ('sails'), + ('saims'), + ('saine'), + ('sains'), + ('saint'), + ('sairs'), + ('saist'), + ('saith'), + ('sajou'), + ('sakai'), + ('saker'), + ('sakes'), + ('sakia'), + ('sakis'), + ('sakti'), + ('salad'), + ('salal'), + ('salat'), + ('salep'), + ('sales'), + ('salet'), + ('salic'), + ('salix'), + ('salle'), + ('sally'), + ('salmi'), + ('salol'), + ('salon'), + ('salop'), + ('salpa'), + ('salps'), + ('salsa'), + ('salse'), + ('salto'), + ('salts'), + ('salty'), + ('salue'), + ('salut'), + ('salve'), + ('salvo'), + ('saman'), + ('samas'), + ('samba'), + ('sambo'), + ('samek'), + ('samel'), + ('samen'), + ('sames'), + ('samey'), + ('samfu'), + ('sammy'), + ('sampi'), + ('samps'), + ('sands'), + ('sandy'), + ('saned'), + ('saner'), + ('sanes'), + ('sanga'), + ('sangh'), + ('sango'), + ('sangs'), + ('sanko'), + ('sansa'), + ('santo'), + ('sants'), + ('saola'), + ('sapan'), + ('sapid'), + ('sapor'), + ('sappy'), + ('saran'), + ('sards'), + ('sared'), + ('saree'), + ('sarge'), + ('sargo'), + ('sarin'), + ('saris'), + ('sarks'), + ('sarky'), + ('sarod'), + ('saros'), + ('sarus'), + ('saser'), + ('sasin'), + ('sasse'), + ('sassy'), + ('satai'), + ('satay'), + ('sated'), + ('satem'), + ('sates'), + ('satin'), + ('satis'), + ('satyr'), + ('sauba'), + ('sauce'), + ('sauch'), + ('saucy'), + ('saugh'), + ('sauls'), + ('sault'), + ('sauna'), + ('saunt'), + ('saury'), + ('saute'), + ('sauts'), + ('saved'), + ('saver'), + ('saves'), + ('savey'), + ('savin'), + ('savor'), + ('savoy'), + ('savvy'), + ('sawah'), + ('sawed'), + ('sawer'), + ('saxes'), + ('sayed'), + ('sayer'), + ('sayid'), + ('sayne'), + ('sayon'), + ('sayst'), + ('sazes'), + ('scabs'), + ('scads'), + ('scaff'), + ('scags'), + ('scail'), + ('scala'), + ('scald'), + ('scale'), + ('scall'), + ('scalp'), + ('scaly'), + ('scamp'), + ('scams'), + ('scand'), + ('scans'), + ('scant'), + ('scapa'), + ('scape'), + ('scapi'), + ('scare'), + ('scarf'), + ('scarp'), + ('scars'), + ('scart'), + ('scary'), + ('scath'), + ('scats'), + ('scatt'), + ('scaud'), + ('scaup'), + ('scaur'), + ('scaws'), + ('sceat'), + ('scena'), + ('scend'), + ('scene'), + ('scent'), + ('schav'), + ('schmo'), + ('schul'), + ('schwa'), + ('scion'), + ('sclim'), + ('scody'), + ('scoff'), + ('scogs'), + ('scold'), + ('scone'), + ('scoog'), + ('scoop'), + ('scoot'), + ('scopa'), + ('scope'), + ('scops'), + ('score'), + ('scorn'), + ('scots'), + ('scoug'), + ('scoup'), + ('scour'), + ('scout'), + ('scowl'), + ('scowp'), + ('scows'), + ('scrab'), + ('scrae'), + ('scrag'), + ('scram'), + ('scran'), + ('scrap'), + ('scrat'), + ('scraw'), + ('scray'), + ('scree'), + ('screw'), + ('scrim'), + ('scrip'), + ('scrob'), + ('scrod'), + ('scrog'), + ('scrow'), + ('scrub'), + ('scrum'), + ('scuba'), + ('scudi'), + ('scudo'), + ('scuds'), + ('scuff'), + ('scuft'), + ('scugs'), + ('sculk'), + ('scull'), + ('sculp'), + ('sculs'), + ('scums'), + ('scups'), + ('scurf'), + ('scurs'), + ('scuse'), + ('scuta'), + ('scute'), + ('scuts'), + ('scuzz'), + ('scyes'), + ('sdayn'), + ('sdein'), + ('seals'), + ('seame'), + ('seams'), + ('seamy'), + ('seans'), + ('seare'), + ('sears'), + ('sease'), + ('seats'), + ('seaze'), + ('sebum'), + ('secco'), + ('sechs'), + ('sects'), + ('sedan'), + ('seder'), + ('sedes'), + ('sedge'), + ('sedgy'), + ('sedum'), + ('seeds'), + ('seedy'), + ('seeks'), + ('seeld'), + ('seels'), + ('seely'), + ('seems'), + ('seeps'), + ('seepy'), + ('seers'), + ('sefer'), + ('segar'), + ('segni'), + ('segno'), + ('segol'), + ('segos'), + ('segue'), + ('sehri'), + ('seifs'), + ('seils'), + ('seine'), + ('seirs'), + ('seise'), + ('seism'), + ('seity'), + ('seiza'), + ('seize'), + ('sekos'), + ('sekts'), + ('selah'), + ('seles'), + ('selfs'), + ('sella'), + ('selle'), + ('sells'), + ('selva'), + ('semee'), + ('semen'), + ('semes'), + ('semie'), + ('semis'), + ('senas'), + ('sends'), + ('senes'), + ('sengi'), + ('senna'), + ('senor'), + ('sensa'), + ('sense'), + ('sensi'), + ('sente'), + ('senti'), + ('sents'), + ('senvy'), + ('senza'), + ('sepad'), + ('sepal'), + ('sepia'), + ('sepic'), + ('sepoy'), + ('septa'), + ('septs'), + ('serac'), + ('serai'), + ('seral'), + ('sered'), + ('serer'), + ('seres'), + ('serfs'), + ('serge'), + ('seric'), + ('serif'), + ('serin'), + ('serks'), + ('seron'), + ('serow'), + ('serra'), + ('serre'), + ('serrs'), + ('serry'), + ('serum'), + ('serve'), + ('servo'), + ('sesey'), + ('sessa'), + ('setae'), + ('setal'), + ('seton'), + ('setts'), + ('setup'), + ('seven'), + ('sever'), + ('sewan'), + ('sewar'), + ('sewed'), + ('sewel'), + ('sewen'), + ('sewer'), + ('sewin'), + ('sexed'), + ('sexer'), + ('sexes'), + ('sexto'), + ('sexts'), + ('seyen'), + ('shack'), + ('shade'), + ('shads'), + ('shady'), + ('shaft'), + ('shags'), + ('shahs'), + ('shake'), + ('shako'), + ('shakt'), + ('shaky'), + ('shale'), + ('shall'), + ('shalm'), + ('shalt'), + ('shaly'), + ('shama'), + ('shame'), + ('shams'), + ('shand'), + ('shank'), + ('shans'), + ('shape'), + ('shaps'), + ('shard'), + ('share'), + ('shark'), + ('sharn'), + ('sharp'), + ('shash'), + ('shaul'), + ('shave'), + ('shawl'), + ('shawm'), + ('shawn'), + ('shaws'), + ('shaya'), + ('shays'), + ('shchi'), + ('sheaf'), + ('sheal'), + ('shear'), + ('sheas'), + ('sheds'), + ('sheel'), + ('sheen'), + ('sheep'), + ('sheer'), + ('sheet'), + ('sheik'), + ('shelf'), + ('shell'), + ('shend'), + ('shent'), + ('sheol'), + ('sherd'), + ('shere'), + ('shero'), + ('shets'), + ('sheva'), + ('shewn'), + ('shews'), + ('shiai'), + ('shied'), + ('shiel'), + ('shier'), + ('shies'), + ('shift'), + ('shill'), + ('shily'), + ('shims'), + ('shine'), + ('shins'), + ('shiny'), + ('ships'), + ('shire'), + ('shirk'), + ('shirr'), + ('shirs'), + ('shirt'), + ('shish'), + ('shiso'), + ('shist'), + ('shite'), + ('shits'), + ('shiur'), + ('shiva'), + ('shive'), + ('shivs'), + ('shlep'), + ('shlub'), + ('shmek'), + ('shmoe'), + ('shoal'), + ('shoat'), + ('shock'), + ('shoed'), + ('shoer'), + ('shoes'), + ('shogi'), + ('shogs'), + ('shoji'), + ('shojo'), + ('shola'), + ('shone'), + ('shook'), + ('shool'), + ('shoon'), + ('shoos'), + ('shoot'), + ('shope'), + ('shops'), + ('shore'), + ('shorl'), + ('shorn'), + ('short'), + ('shote'), + ('shots'), + ('shott'), + ('shout'), + ('shove'), + ('showd'), + ('shown'), + ('shows'), + ('showy'), + ('shoyu'), + ('shred'), + ('shrew'), + ('shris'), + ('shrow'), + ('shrub'), + ('shrug'), + ('shtik'), + ('shtum'), + ('shtup'), + ('shuck'), + ('shule'), + ('shuln'), + ('shuls'), + ('shuns'), + ('shunt'), + ('shura'), + ('shush'), + ('shute'), + ('shuts'), + ('shwas'), + ('shyer'), + ('shyly'), + ('sials'), + ('sibbs'), + ('sibyl'), + ('sices'), + ('sicht'), + ('sicko'), + ('sicks'), + ('sicky'), + ('sidas'), + ('sided'), + ('sider'), + ('sides'), + ('sidha'), + ('sidhe'), + ('sidle'), + ('siege'), + ('sield'), + ('siens'), + ('sient'), + ('sieth'), + ('sieur'), + ('sieve'), + ('sifts'), + ('sighs'), + ('sight'), + ('sigil'), + ('sigla'), + ('sigma'), + ('signa'), + ('signs'), + ('sijos'), + ('sikas'), + ('siker'), + ('sikes'), + ('silds'), + ('siled'), + ('silen'), + ('siler'), + ('siles'), + ('silex'), + ('silks'), + ('silky'), + ('sills'), + ('silly'), + ('silos'), + ('silts'), + ('silty'), + ('silva'), + ('simar'), + ('simas'), + ('simba'), + ('simis'), + ('simps'), + ('simul'), + ('since'), + ('sinds'), + ('sined'), + ('sines'), + ('sinew'), + ('singe'), + ('sings'), + ('sinhs'), + ('sinks'), + ('sinky'), + ('sinus'), + ('siped'), + ('sipes'), + ('sippy'), + ('sired'), + ('siree'), + ('siren'), + ('sires'), + ('sirih'), + ('siris'), + ('siroc'), + ('sirra'), + ('sirup'), + ('sisal'), + ('sises'), + ('sissy'), + ('sista'), + ('sists'), + ('sitar'), + ('sited'), + ('sites'), + ('sithe'), + ('sitka'), + ('situp'), + ('situs'), + ('siver'), + ('sixer'), + ('sixes'), + ('sixmo'), + ('sixte'), + ('sixth'), + ('sixty'), + ('sizar'), + ('sized'), + ('sizel'), + ('sizer'), + ('sizes'), + ('skags'), + ('skail'), + ('skald'), + ('skank'), + ('skart'), + ('skate'), + ('skats'), + ('skatt'), + ('skaws'), + ('skean'), + ('skear'), + ('skeds'), + ('skeed'), + ('skeef'), + ('skeen'), + ('skeer'), + ('skees'), + ('skeet'), + ('skegg'), + ('skegs'), + ('skein'), + ('skelf'), + ('skell'), + ('skelm'), + ('skelp'), + ('skene'), + ('skens'), + ('skeos'), + ('skeps'), + ('skers'), + ('skets'), + ('skews'), + ('skids'), + ('skied'), + ('skier'), + ('skies'), + ('skiey'), + ('skiff'), + ('skill'), + ('skimo'), + ('skimp'), + ('skims'), + ('skink'), + ('skins'), + ('skint'), + ('skios'), + ('skips'), + ('skirl'), + ('skirr'), + ('skirt'), + ('skite'), + ('skits'), + ('skive'), + ('skivy'), + ('sklim'), + ('skoal'), + ('skody'), + ('skoff'), + ('skogs'), + ('skols'), + ('skool'), + ('skort'), + ('skosh'), + ('skran'), + ('skrik'), + ('skuas'), + ('skugs'), + ('skulk'), + ('skull'), + ('skunk'), + ('skyed'), + ('skyer'), + ('skyey'), + ('skyfs'), + ('skyre'), + ('skyrs'), + ('skyte'), + ('slabs'), + ('slack'), + ('slade'), + ('slaes'), + ('slags'), + ('slaid'), + ('slain'), + ('slake'), + ('slams'), + ('slane'), + ('slang'), + ('slank'), + ('slant'), + ('slaps'), + ('slart'), + ('slash'), + ('slate'), + ('slats'), + ('slaty'), + ('slave'), + ('slaws'), + ('slays'), + ('slebs'), + ('sleds'), + ('sleek'), + ('sleep'), + ('sleer'), + ('sleet'), + ('slept'), + ('slews'), + ('sleys'), + ('slice'), + ('slick'), + ('slide'), + ('slier'), + ('slily'), + ('slime'), + ('slims'), + ('slimy'), + ('sling'), + ('slink'), + ('slipe'), + ('slips'), + ('slipt'), + ('slish'), + ('slits'), + ('slive'), + ('sloan'), + ('slobs'), + ('sloes'), + ('slogs'), + ('sloid'), + ('slojd'), + ('slomo'), + ('sloom'), + ('sloop'), + ('sloot'), + ('slope'), + ('slops'), + ('slopy'), + ('slorm'), + ('slosh'), + ('sloth'), + ('slots'), + ('slove'), + ('slows'), + ('sloyd'), + ('slubb'), + ('slubs'), + ('slued'), + ('slues'), + ('sluff'), + ('slugs'), + ('sluit'), + ('slump'), + ('slums'), + ('slung'), + ('slunk'), + ('slurb'), + ('slurp'), + ('slurs'), + ('sluse'), + ('slush'), + ('sluts'), + ('slyer'), + ('slyly'), + ('slype'), + ('smaak'), + ('smack'), + ('smaik'), + ('small'), + ('smalm'), + ('smalt'), + ('smarm'), + ('smart'), + ('smash'), + ('smaze'), + ('smear'), + ('smeek'), + ('smees'), + ('smeik'), + ('smeke'), + ('smell'), + ('smelt'), + ('smerk'), + ('smews'), + ('smile'), + ('smirk'), + ('smirr'), + ('smirs'), + ('smite'), + ('smith'), + ('smits'), + ('smock'), + ('smogs'), + ('smoke'), + ('smoko'), + ('smoky'), + ('smolt'), + ('smoor'), + ('smoot'), + ('smore'), + ('smorg'), + ('smote'), + ('smout'), + ('smowt'), + ('smugs'), + ('smurs'), + ('smush'), + ('smuts'), + ('snabs'), + ('snack'), + ('snafu'), + ('snags'), + ('snail'), + ('snake'), + ('snaky'), + ('snaps'), + ('snare'), + ('snarf'), + ('snark'), + ('snarl'), + ('snars'), + ('snary'), + ('snash'), + ('snath'), + ('snaws'), + ('snead'), + ('sneak'), + ('sneap'), + ('snebs'), + ('sneck'), + ('sneds'), + ('sneed'), + ('sneer'), + ('snees'), + ('snell'), + ('snibs'), + ('snick'), + ('snide'), + ('snies'), + ('sniff'), + ('snift'), + ('snigs'), + ('snipe'), + ('snips'), + ('snipy'), + ('snirt'), + ('snits'), + ('snobs'), + ('snods'), + ('snoek'), + ('snoep'), + ('snogs'), + ('snoke'), + ('snood'), + ('snook'), + ('snool'), + ('snoop'), + ('snoot'), + ('snore'), + ('snort'), + ('snots'), + ('snout'), + ('snowk'), + ('snows'), + ('snowy'), + ('snubs'), + ('snuck'), + ('snuff'), + ('snugs'), + ('snush'), + ('snyes'), + ('soaks'), + ('soaps'), + ('soapy'), + ('soare'), + ('soars'), + ('soave'), + ('sobas'), + ('sober'), + ('socas'), + ('soces'), + ('socko'), + ('socks'), + ('socle'), + ('sodas'), + ('soddy'), + ('sodic'), + ('sodom'), + ('sofar'), + ('sofas'), + ('softa'), + ('softs'), + ('softy'), + ('soger'), + ('soggy'), + ('sohur'), + ('soils'), + ('soily'), + ('sojas'), + ('sojus'), + ('sokah'), + ('soken'), + ('sokes'), + ('sokol'), + ('solah'), + ('solan'), + ('solar'), + ('solas'), + ('solde'), + ('soldi'), + ('soldo'), + ('solds'), + ('soled'), + ('solei'), + ('soler'), + ('soles'), + ('solid'), + ('solon'), + ('solos'), + ('solum'), + ('solus'), + ('solve'), + ('soman'), + ('somas'), + ('sonar'), + ('sonce'), + ('sonde'), + ('sones'), + ('songs'), + ('sonic'), + ('sonly'), + ('sonne'), + ('sonny'), + ('sonse'), + ('sonsy'), + ('sooey'), + ('sooks'), + ('sooky'), + ('soole'), + ('sools'), + ('sooms'), + ('soops'), + ('soote'), + ('sooth'), + ('soots'), + ('sooty'), + ('sophs'), + ('sophy'), + ('sopor'), + ('soppy'), + ('sopra'), + ('soral'), + ('soras'), + ('sorbo'), + ('sorbs'), + ('sorda'), + ('sordo'), + ('sords'), + ('sored'), + ('soree'), + ('sorel'), + ('sorer'), + ('sores'), + ('sorex'), + ('sorgo'), + ('sorns'), + ('sorra'), + ('sorry'), + ('sorta'), + ('sorts'), + ('sorus'), + ('soths'), + ('sotol'), + ('souce'), + ('souct'), + ('sough'), + ('souks'), + ('souls'), + ('soums'), + ('sound'), + ('soups'), + ('soupy'), + ('sours'), + ('souse'), + ('south'), + ('souts'), + ('sowar'), + ('sowce'), + ('sowed'), + ('sower'), + ('sowff'), + ('sowfs'), + ('sowle'), + ('sowls'), + ('sowms'), + ('sownd'), + ('sowne'), + ('sowps'), + ('sowse'), + ('sowth'), + ('soyas'), + ('soyle'), + ('soyuz'), + ('sozin'), + ('space'), + ('spacy'), + ('spade'), + ('spado'), + ('spaed'), + ('spaer'), + ('spaes'), + ('spags'), + ('spahi'), + ('spail'), + ('spain'), + ('spait'), + ('spake'), + ('spald'), + ('spale'), + ('spall'), + ('spalt'), + ('spams'), + ('spane'), + ('spang'), + ('spank'), + ('spans'), + ('spard'), + ('spare'), + ('spark'), + ('spars'), + ('spart'), + ('spasm'), + ('spate'), + ('spats'), + ('spaul'), + ('spawl'), + ('spawn'), + ('spaws'), + ('spayd'), + ('spays'), + ('spaza'), + ('spazz'), + ('speak'), + ('speal'), + ('spean'), + ('spear'), + ('speat'), + ('speck'), + ('specs'), + ('spect'), + ('speed'), + ('speel'), + ('speer'), + ('speil'), + ('speir'), + ('speks'), + ('speld'), + ('spelk'), + ('spell'), + ('spelt'), + ('spend'), + ('spent'), + ('speos'), + ('sperm'), + ('spets'), + ('speug'), + ('spews'), + ('spewy'), + ('spial'), + ('spica'), + ('spice'), + ('spick'), + ('spics'), + ('spicy'), + ('spide'), + ('spied'), + ('spiel'), + ('spier'), + ('spies'), + ('spiff'), + ('spifs'), + ('spike'), + ('spiks'), + ('spiky'), + ('spile'), + ('spill'), + ('spilt'), + ('spims'), + ('spina'), + ('spine'), + ('spink'), + ('spins'), + ('spiny'), + ('spire'), + ('spirt'), + ('spiry'), + ('spite'), + ('spits'), + ('spitz'), + ('spivs'), + ('splat'), + ('splay'), + ('split'), + ('splog'), + ('spode'), + ('spods'), + ('spoil'), + ('spoke'), + ('spoof'), + ('spook'), + ('spool'), + ('spoom'), + ('spoon'), + ('spoor'), + ('spoot'), + ('spore'), + ('spork'), + ('sport'), + ('sposh'), + ('spots'), + ('spout'), + ('sprad'), + ('sprag'), + ('sprat'), + ('spray'), + ('spred'), + ('spree'), + ('sprew'), + ('sprig'), + ('sprit'), + ('sprod'), + ('sprog'), + ('sprue'), + ('sprug'), + ('spuds'), + ('spued'), + ('spuer'), + ('spues'), + ('spugs'), + ('spule'), + ('spume'), + ('spumy'), + ('spunk'), + ('spurn'), + ('spurs'), + ('spurt'), + ('sputa'), + ('spyal'), + ('spyre'), + ('squab'), + ('squad'), + ('squat'), + ('squaw'), + ('squeg'), + ('squib'), + ('squid'), + ('squit'), + ('squiz'), + ('stabs'), + ('stack'), + ('stade'), + ('staff'), + ('stage'), + ('stags'), + ('stagy'), + ('staid'), + ('staig'), + ('stain'), + ('stair'), + ('stake'), + ('stale'), + ('stalk'), + ('stall'), + ('stamp'), + ('stand'), + ('stane'), + ('stang'), + ('stank'), + ('staph'), + ('staps'), + ('stare'), + ('stark'), + ('starn'), + ('starr'), + ('stars'), + ('start'), + ('stash'), + ('state'), + ('stats'), + ('staun'), + ('stave'), + ('staws'), + ('stays'), + ('stead'), + ('steak'), + ('steal'), + ('steam'), + ('stean'), + ('stear'), + ('stedd'), + ('stede'), + ('steds'), + ('steed'), + ('steek'), + ('steel'), + ('steem'), + ('steen'), + ('steep'), + ('steer'), + ('steil'), + ('stein'), + ('stela'), + ('stele'), + ('stell'), + ('steme'), + ('stems'), + ('stend'), + ('steno'), + ('stens'), + ('stent'), + ('steps'), + ('stept'), + ('stere'), + ('stern'), + ('stets'), + ('stews'), + ('stewy'), + ('steys'), + ('stich'), + ('stick'), + ('stied'), + ('sties'), + ('stiff'), + ('stilb'), + ('stile'), + ('still'), + ('stilt'), + ('stime'), + ('stims'), + ('stimy'), + ('sting'), + ('stink'), + ('stint'), + ('stipa'), + ('stipe'), + ('stire'), + ('stirk'), + ('stirp'), + ('stirs'), + ('stive'), + ('stivy'), + ('stoae'), + ('stoai'), + ('stoas'), + ('stoat'), + ('stobs'), + ('stock'), + ('stoep'), + ('stogy'), + ('stoic'), + ('stoit'), + ('stoke'), + ('stole'), + ('stoln'), + ('stoma'), + ('stomp'), + ('stond'), + ('stone'), + ('stong'), + ('stonk'), + ('stonn'), + ('stony'), + ('stood'), + ('stook'), + ('stool'), + ('stoop'), + ('stoor'), + ('stope'), + ('stops'), + ('stopt'), + ('store'), + ('stork'), + ('storm'), + ('story'), + ('stoss'), + ('stots'), + ('stott'), + ('stoun'), + ('stoup'), + ('stour'), + ('stout'), + ('stove'), + ('stown'), + ('stowp'), + ('stows'), + ('strad'), + ('strae'), + ('strag'), + ('strak'), + ('strap'), + ('straw'), + ('stray'), + ('strep'), + ('strew'), + ('stria'), + ('strig'), + ('strim'), + ('strip'), + ('strop'), + ('strow'), + ('stroy'), + ('strum'), + ('strut'), + ('stubs'), + ('stuck'), + ('stude'), + ('studs'), + ('study'), + ('stuff'), + ('stull'), + ('stulm'), + ('stumm'), + ('stump'), + ('stums'), + ('stung'), + ('stunk'), + ('stuns'), + ('stunt'), + ('stupa'), + ('stupe'), + ('sture'), + ('sturt'), + ('styed'), + ('styes'), + ('style'), + ('styli'), + ('stylo'), + ('styme'), + ('stymy'), + ('styre'), + ('styte'), + ('suave'), + ('subah'), + ('subas'), + ('subby'), + ('suber'), + ('subha'), + ('succi'), + ('sucks'), + ('sucky'), + ('sucre'), + ('sudds'), + ('sudor'), + ('sudsy'), + ('suede'), + ('suent'), + ('suers'), + ('suete'), + ('suets'), + ('suety'), + ('sugan'), + ('sugar'), + ('sughs'), + ('sugos'), + ('suhur'), + ('suids'), + ('suing'), + ('suint'), + ('suite'), + ('suits'), + ('sujee'), + ('sukhs'), + ('sukuk'), + ('sulci'), + ('sulfa'), + ('sulfo'), + ('sulks'), + ('sulky'), + ('sully'), + ('sulph'), + ('sulus'), + ('sumac'), + ('sumis'), + ('summa'), + ('sumos'), + ('sumph'), + ('sumps'), + ('sunis'), + ('sunks'), + ('sunna'), + ('sunns'), + ('sunny'), + ('sunup'), + ('super'), + ('supes'), + ('supra'), + ('surah'), + ('sural'), + ('suras'), + ('surat'), + ('surds'), + ('sured'), + ('surer'), + ('sures'), + ('surfs'), + ('surfy'), + ('surge'), + ('surgy'), + ('surly'), + ('surra'), + ('sused'), + ('suses'), + ('sushi'), + ('susus'), + ('sutor'), + ('sutra'), + ('sutta'), + ('swabs'), + ('swack'), + ('swads'), + ('swage'), + ('swags'), + ('swail'), + ('swain'), + ('swale'), + ('swaly'), + ('swami'), + ('swamp'), + ('swamy'), + ('swang'), + ('swank'), + ('swans'), + ('swaps'), + ('swapt'), + ('sward'), + ('sware'), + ('swarf'), + ('swarm'), + ('swart'), + ('swash'), + ('swath'), + ('swats'), + ('swayl'), + ('sways'), + ('sweal'), + ('swear'), + ('sweat'), + ('swede'), + ('sweed'), + ('sweel'), + ('sweep'), + ('sweer'), + ('swees'), + ('sweet'), + ('sweir'), + ('swell'), + ('swelt'), + ('swept'), + ('swerf'), + ('sweys'), + ('swies'), + ('swift'), + ('swigs'), + ('swile'), + ('swill'), + ('swims'), + ('swine'), + ('swing'), + ('swink'), + ('swipe'), + ('swire'), + ('swirl'), + ('swish'), + ('swiss'), + ('swith'), + ('swits'), + ('swive'), + ('swizz'), + ('swobs'), + ('swole'), + ('swoln'), + ('swoon'), + ('swoop'), + ('swops'), + ('swopt'), + ('sword'), + ('swore'), + ('sworn'), + ('swots'), + ('swoun'), + ('swung'), + ('sybbe'), + ('sybil'), + ('syboe'), + ('sybow'), + ('sycee'), + ('syces'), + ('sycon'), + ('syens'), + ('syker'), + ('sykes'), + ('sylis'), + ('sylph'), + ('sylva'), + ('symar'), + ('synch'), + ('syncs'), + ('synds'), + ('syned'), + ('synes'), + ('synod'), + ('synth'), + ('syped'), + ('sypes'), + ('syphs'), + ('syrah'), + ('syren'), + ('syrup'), + ('sysop'), + ('sythe'), + ('syver'), + ('taals'), + ('taata'), + ('tabby'), + ('taber'), + ('tabes'), + ('tabid'), + ('tabis'), + ('tabla'), + ('table'), + ('taboo'), + ('tabor'), + ('tabun'), + ('tabus'), + ('tacan'), + ('taces'), + ('tacet'), + ('tache'), + ('tacho'), + ('tachs'), + ('tacit'), + ('tacks'), + ('tacky'), + ('tacos'), + ('tacts'), + ('taels'), + ('taffy'), + ('tafia'), + ('taggy'), + ('tagma'), + ('tahas'), + ('tahrs'), + ('taiga'), + ('taigs'), + ('taiko'), + ('tails'), + ('tains'), + ('taint'), + ('taira'), + ('taish'), + ('taits'), + ('tajes'), + ('takas'), + ('taken'), + ('taker'), + ('takes'), + ('takhi'), + ('takin'), + ('takis'), + ('takky'), + ('talak'), + ('talaq'), + ('talar'), + ('talas'), + ('talcs'), + ('talcy'), + ('talea'), + ('taler'), + ('tales'), + ('talks'), + ('talky'), + ('talls'), + ('tally'), + ('talma'), + ('talon'), + ('talpa'), + ('taluk'), + ('talus'), + ('tamal'), + ('tamed'), + ('tamer'), + ('tames'), + ('tamin'), + ('tamis'), + ('tammy'), + ('tamps'), + ('tanas'), + ('tanga'), + ('tangi'), + ('tango'), + ('tangs'), + ('tangy'), + ('tanhs'), + ('tanka'), + ('tanks'), + ('tanky'), + ('tanna'), + ('tansy'), + ('tanti'), + ('tanto'), + ('tanty'), + ('tapas'), + ('taped'), + ('tapen'), + ('taper'), + ('tapes'), + ('tapet'), + ('tapir'), + ('tapis'), + ('tappa'), + ('tapus'), + ('taras'), + ('tardo'), + ('tardy'), + ('tared'), + ('tares'), + ('targa'), + ('targe'), + ('tarns'), + ('taroc'), + ('tarok'), + ('taros'), + ('tarot'), + ('tarps'), + ('tarre'), + ('tarry'), + ('tarsi'), + ('tarts'), + ('tarty'), + ('tasar'), + ('tased'), + ('taser'), + ('tases'), + ('tasks'), + ('tassa'), + ('tasse'), + ('tasso'), + ('taste'), + ('tasty'), + ('tatar'), + ('tater'), + ('tates'), + ('taths'), + ('tatie'), + ('tatou'), + ('tatts'), + ('tatty'), + ('tatus'), + ('taube'), + ('tauld'), + ('taunt'), + ('tauon'), + ('taupe'), + ('tauts'), + ('tavah'), + ('tavas'), + ('taver'), + ('tawai'), + ('tawas'), + ('tawed'), + ('tawer'), + ('tawie'), + ('tawny'), + ('tawse'), + ('tawts'), + ('taxed'), + ('taxer'), + ('taxes'), + ('taxis'), + ('taxol'), + ('taxon'), + ('taxor'), + ('taxus'), + ('tayra'), + ('tazza'), + ('tazze'), + ('teach'), + ('teade'), + ('teads'), + ('teaed'), + ('teaks'), + ('teals'), + ('teams'), + ('tears'), + ('teary'), + ('tease'), + ('teats'), + ('teaze'), + ('techs'), + ('techy'), + ('tecta'), + ('teddy'), + ('teels'), + ('teems'), + ('teend'), + ('teene'), + ('teens'), + ('teeny'), + ('teers'), + ('teeth'), + ('teffs'), + ('teggs'), + ('tegua'), + ('tegus'), + ('tehrs'), + ('teiid'), + ('teils'), + ('teind'), + ('teins'), + ('telae'), + ('telco'), + ('teles'), + ('telex'), + ('telia'), + ('telic'), + ('tells'), + ('telly'), + ('teloi'), + ('telos'), + ('temed'), + ('temes'), + ('tempi'), + ('tempo'), + ('temps'), + ('tempt'), + ('temse'), + ('tench'), + ('tends'), + ('tendu'), + ('tenes'), + ('tenet'), + ('tenge'), + ('tenia'), + ('tenne'), + ('tenno'), + ('tenny'), + ('tenon'), + ('tenor'), + ('tense'), + ('tenth'), + ('tents'), + ('tenty'), + ('tenue'), + ('tepal'), + ('tepas'), + ('tepee'), + ('tepid'), + ('tepoy'), + ('terai'), + ('teras'), + ('terce'), + ('terek'), + ('teres'), + ('terfe'), + ('terfs'), + ('terga'), + ('terms'), + ('terne'), + ('terns'), + ('terra'), + ('terry'), + ('terse'), + ('terts'), + ('tesla'), + ('testa'), + ('teste'), + ('tests'), + ('testy'), + ('tetes'), + ('teths'), + ('tetra'), + ('tetri'), + ('teuch'), + ('teugh'), + ('tewed'), + ('tewel'), + ('tewit'), + ('texas'), + ('texes'), + ('texts'), + ('thack'), + ('thagi'), + ('thaim'), + ('thale'), + ('thali'), + ('thana'), + ('thane'), + ('thang'), + ('thank'), + ('thans'), + ('thanx'), + ('tharm'), + ('thars'), + ('thaws'), + ('thawy'), + ('thebe'), + ('theca'), + ('theed'), + ('theek'), + ('thees'), + ('theft'), + ('thegn'), + ('theic'), + ('thein'), + ('their'), + ('thelf'), + ('thema'), + ('theme'), + ('thens'), + ('theow'), + ('there'), + ('therm'), + ('these'), + ('thesp'), + ('theta'), + ('thete'), + ('thews'), + ('thewy'), + ('thick'), + ('thief'), + ('thigh'), + ('thigs'), + ('thilk'), + ('thill'), + ('thine'), + ('thing'), + ('think'), + ('thins'), + ('thiol'), + ('third'), + ('thirl'), + ('thoft'), + ('thole'), + ('tholi'), + ('thong'), + ('thorn'), + ('thoro'), + ('thorp'), + ('those'), + ('thous'), + ('thowl'), + ('thrae'), + ('thraw'), + ('three'), + ('threw'), + ('thrid'), + ('thrip'), + ('throb'), + ('throe'), + ('throw'), + ('thrum'), + ('thuds'), + ('thugs'), + ('thuja'), + ('thumb'), + ('thump'), + ('thunk'), + ('thurl'), + ('thuya'), + ('thyme'), + ('thymi'), + ('thymy'), + ('tians'), + ('tiara'), + ('tiars'), + ('tibia'), + ('tical'), + ('ticca'), + ('ticed'), + ('tices'), + ('tichy'), + ('ticks'), + ('ticky'), + ('tidal'), + ('tiddy'), + ('tided'), + ('tides'), + ('tiers'), + ('tiffs'), + ('tifos'), + ('tifts'), + ('tiger'), + ('tiges'), + ('tight'), + ('tigon'), + ('tikas'), + ('tikes'), + ('tikis'), + ('tikka'), + ('tilak'), + ('tilde'), + ('tiled'), + ('tiler'), + ('tiles'), + ('tills'), + ('tilly'), + ('tilth'), + ('tilts'), + ('timbo'), + ('timed'), + ('timer'), + ('times'), + ('timid'), + ('timon'), + ('timps'), + ('tinas'), + ('tinct'), + ('tinds'), + ('tinea'), + ('tined'), + ('tines'), + ('tinge'), + ('tings'), + ('tinks'), + ('tinny'), + ('tints'), + ('tinty'), + ('tipis'), + ('tippy'), + ('tipsy'), + ('tired'), + ('tires'), + ('tirls'), + ('tiros'), + ('tirrs'), + ('titan'), + ('titch'), + ('titer'), + ('tithe'), + ('titis'), + ('title'), + ('titre'), + ('titty'), + ('titup'), + ('tiyin'), + ('tiyns'), + ('tizes'), + ('tizzy'), + ('toads'), + ('toady'), + ('toast'), + ('toaze'), + ('tocks'), + ('tocky'), + ('tocos'), + ('today'), + ('todde'), + ('toddy'), + ('toeas'), + ('toffs'), + ('toffy'), + ('tofts'), + ('tofus'), + ('togae'), + ('togas'), + ('toged'), + ('toges'), + ('togue'), + ('tohos'), + ('toile'), + ('toils'), + ('toing'), + ('toise'), + ('toits'), + ('tokay'), + ('toked'), + ('token'), + ('toker'), + ('tokes'), + ('tokos'), + ('tolan'), + ('tolar'), + ('tolas'), + ('toled'), + ('toles'), + ('tolls'), + ('tolly'), + ('tolts'), + ('tolus'), + ('tolyl'), + ('toman'), + ('tombs'), + ('tomes'), + ('tomia'), + ('tommy'), + ('tomos'), + ('tonal'), + ('tondi'), + ('tondo'), + ('toned'), + ('toner'), + ('tones'), + ('toney'), + ('tonga'), + ('tongs'), + ('tonic'), + ('tonka'), + ('tonks'), + ('tonne'), + ('tonus'), + ('tools'), + ('tooms'), + ('toons'), + ('tooth'), + ('toots'), + ('topaz'), + ('toped'), + ('topee'), + ('topek'), + ('toper'), + ('topes'), + ('tophe'), + ('tophi'), + ('tophs'), + ('topic'), + ('topis'), + ('topoi'), + ('topos'), + ('toppy'), + ('toque'), + ('torah'), + ('toran'), + ('toras'), + ('torch'), + ('torcs'), + ('tores'), + ('toric'), + ('torii'), + ('toros'), + ('torot'), + ('torrs'), + ('torse'), + ('torsi'), + ('torsk'), + ('torso'), + ('torta'), + ('torte'), + ('torts'), + ('torus'), + ('tosas'), + ('tosed'), + ('toses'), + ('toshy'), + ('tossy'), + ('total'), + ('toted'), + ('totem'), + ('toter'), + ('totes'), + ('totty'), + ('touch'), + ('tough'), + ('touks'), + ('touns'), + ('tours'), + ('touse'), + ('tousy'), + ('touts'), + ('touze'), + ('touzy'), + ('towed'), + ('towel'), + ('tower'), + ('towie'), + ('towns'), + ('towny'), + ('towse'), + ('towsy'), + ('towts'), + ('towze'), + ('towzy'), + ('toxic'), + ('toxin'), + ('toyed'), + ('toyer'), + ('toyon'), + ('toyos'), + ('tozed'), + ('tozes'), + ('tozie'), + ('trabs'), + ('trace'), + ('track'), + ('tract'), + ('trade'), + ('trads'), + ('tragi'), + ('traik'), + ('trail'), + ('train'), + ('trait'), + ('tramp'), + ('trams'), + ('trank'), + ('tranq'), + ('trans'), + ('trant'), + ('trape'), + ('traps'), + ('trapt'), + ('trash'), + ('trass'), + ('trats'), + ('tratt'), + ('trave'), + ('trawl'), + ('trayf'), + ('trays'), + ('tread'), + ('treat'), + ('treck'), + ('treed'), + ('treen'), + ('trees'), + ('trefa'), + ('treif'), + ('treks'), + ('trema'), + ('trems'), + ('trend'), + ('tress'), + ('trest'), + ('trets'), + ('trews'), + ('treyf'), + ('treys'), + ('triac'), + ('triad'), + ('trial'), + ('tribe'), + ('trice'), + ('trick'), + ('tride'), + ('tried'), + ('trier'), + ('tries'), + ('triff'), + ('trigo'), + ('trigs'), + ('trike'), + ('trild'), + ('trill'), + ('trims'), + ('trine'), + ('trins'), + ('triol'), + ('trior'), + ('trios'), + ('tripe'), + ('trips'), + ('tripy'), + ('trist'), + ('trite'), + ('troad'), + ('troak'), + ('troat'), + ('trock'), + ('trode'), + ('trods'), + ('trogs'), + ('trois'), + ('troke'), + ('troll'), + ('tromp'), + ('trona'), + ('tronc'), + ('trone'), + ('tronk'), + ('trons'), + ('troop'), + ('trooz'), + ('trope'), + ('troth'), + ('trots'), + ('trout'), + ('trove'), + ('trows'), + ('troys'), + ('truce'), + ('truck'), + ('trued'), + ('truer'), + ('trues'), + ('trugo'), + ('trugs'), + ('trull'), + ('truly'), + ('trump'), + ('trunk'), + ('truss'), + ('trust'), + ('truth'), + ('tryer'), + ('tryke'), + ('tryma'), + ('tryps'), + ('tryst'), + ('tsade'), + ('tsadi'), + ('tsars'), + ('tsked'), + ('tsuba'), + ('tsubo'), + ('tuans'), + ('tuart'), + ('tuath'), + ('tubae'), + ('tubal'), + ('tubar'), + ('tubas'), + ('tubby'), + ('tubed'), + ('tuber'), + ('tubes'), + ('tucks'), + ('tufas'), + ('tuffe'), + ('tuffs'), + ('tufts'), + ('tufty'), + ('tugra'), + ('tuile'), + ('tuina'), + ('tuism'), + ('tuktu'), + ('tules'), + ('tulip'), + ('tulle'), + ('tulpa'), + ('tulsi'), + ('tumid'), + ('tummy'), + ('tumor'), + ('tumps'), + ('tumpy'), + ('tunas'), + ('tunds'), + ('tuned'), + ('tuner'), + ('tunes'), + ('tungs'), + ('tunic'), + ('tunny'), + ('tupek'), + ('tupik'), + ('tuple'), + ('tuque'), + ('turbo'), + ('turds'), + ('turfs'), + ('turfy'), + ('turks'), + ('turme'), + ('turms'), + ('turns'), + ('turnt'), + ('turps'), + ('turrs'), + ('tushy'), + ('tusks'), + ('tusky'), + ('tutee'), + ('tutor'), + ('tutti'), + ('tutty'), + ('tutus'), + ('tuxes'), + ('tuyer'), + ('twaes'), + ('twain'), + ('twals'), + ('twang'), + ('twank'), + ('twats'), + ('tways'), + ('tweak'), + ('tweed'), + ('tweel'), + ('tween'), + ('tweep'), + ('tweer'), + ('tweet'), + ('twerk'), + ('twerp'), + ('twice'), + ('twier'), + ('twigs'), + ('twill'), + ('twilt'), + ('twine'), + ('twink'), + ('twins'), + ('twiny'), + ('twire'), + ('twirl'), + ('twirp'), + ('twist'), + ('twite'), + ('twits'), + ('twixt'), + ('twoer'), + ('twyer'), + ('tyees'), + ('tyers'), + ('tying'), + ('tyiyn'), + ('tykes'), + ('tyler'), + ('tymps'), + ('tynde'), + ('tyned'), + ('tynes'), + ('typal'), + ('typed'), + ('types'), + ('typey'), + ('typic'), + ('typos'), + ('typps'), + ('typto'), + ('tyran'), + ('tyred'), + ('tyres'), + ('tyros'), + ('tythe'), + ('tzars'), + ('udals'), + ('udder'), + ('udons'), + ('ugali'), + ('ugged'), + ('uhlan'), + ('uhuru'), + ('ukase'), + ('ulama'), + ('ulans'), + ('ulcer'), + ('ulema'), + ('ulmin'), + ('ulnad'), + ('ulnae'), + ('ulnar'), + ('ulnas'), + ('ulpan'), + ('ultra'), + ('ulvas'), + ('ulyie'), + ('ulzie'), + ('umami'), + ('umbel'), + ('umber'), + ('umble'), + ('umbos'), + ('umbra'), + ('umbre'), + ('umiac'), + ('umiak'), + ('umiaq'), + ('ummah'), + ('ummas'), + ('ummed'), + ('umped'), + ('umphs'), + ('umpie'), + ('umpty'), + ('umrah'), + ('umras'), + ('unais'), + ('unapt'), + ('unarm'), + ('unary'), + ('unaus'), + ('unbag'), + ('unban'), + ('unbar'), + ('unbed'), + ('unbid'), + ('unbox'), + ('uncap'), + ('unces'), + ('uncia'), + ('uncle'), + ('uncos'), + ('uncoy'), + ('uncus'), + ('uncut'), + ('undam'), + ('undee'), + ('under'), + ('undid'), + ('undos'), + ('undue'), + ('undug'), + ('uneth'), + ('unfed'), + ('unfit'), + ('unfix'), + ('ungag'), + ('unget'), + ('ungod'), + ('ungot'), + ('ungum'), + ('unhat'), + ('unhip'), + ('unica'), + ('unify'), + ('union'), + ('unite'), + ('units'), + ('unity'), + ('unjam'), + ('unked'), + ('unket'), + ('unkid'), + ('unlaw'), + ('unlay'), + ('unled'), + ('unlet'), + ('unlid'), + ('unlit'), + ('unman'), + ('unmet'), + ('unmew'), + ('unmix'), + ('unpay'), + ('unpeg'), + ('unpen'), + ('unpin'), + ('unred'), + ('unrid'), + ('unrig'), + ('unrip'), + ('unsaw'), + ('unsay'), + ('unsee'), + ('unset'), + ('unsew'), + ('unsex'), + ('unsod'), + ('untax'), + ('untie'), + ('until'), + ('untin'), + ('unwed'), + ('unwet'), + ('unwit'), + ('unwon'), + ('unzip'), + ('upbow'), + ('upbye'), + ('updos'), + ('updry'), + ('upend'), + ('upjet'), + ('uplay'), + ('upled'), + ('uplit'), + ('upped'), + ('upper'), + ('upran'), + ('uprun'), + ('upsee'), + ('upset'), + ('upsey'), + ('uptak'), + ('upter'), + ('uptie'), + ('uraei'), + ('urali'), + ('uraos'), + ('urare'), + ('urari'), + ('urase'), + ('urate'), + ('urban'), + ('urbex'), + ('urbia'), + ('urdee'), + ('ureal'), + ('ureas'), + ('uredo'), + ('ureic'), + ('urena'), + ('urent'), + ('urged'), + ('urger'), + ('urges'), + ('urial'), + ('urine'), + ('urite'), + ('urman'), + ('urnal'), + ('urned'), + ('urped'), + ('ursae'), + ('ursid'), + ('urson'), + ('urubu'), + ('urvas'), + ('usage'), + ('users'), + ('usher'), + ('using'), + ('usnea'), + ('usque'), + ('usual'), + ('usure'), + ('usurp'), + ('usury'), + ('uteri'), + ('utile'), + ('utter'), + ('uveal'), + ('uveas'), + ('uvula'), + ('vacua'), + ('vaded'), + ('vades'), + ('vagal'), + ('vague'), + ('vagus'), + ('vails'), + ('vaire'), + ('vairs'), + ('vairy'), + ('vakas'), + ('vakil'), + ('vales'), + ('valet'), + ('valid'), + ('valis'), + ('valor'), + ('valse'), + ('value'), + ('valve'), + ('vamps'), + ('vampy'), + ('vanda'), + ('vaned'), + ('vanes'), + ('vangs'), + ('vants'), + ('vaped'), + ('vaper'), + ('vapes'), + ('vapid'), + ('vapor'), + ('varan'), + ('varas'), + ('vardy'), + ('varec'), + ('vares'), + ('varia'), + ('varix'), + ('varna'), + ('varus'), + ('varve'), + ('vasal'), + ('vases'), + ('vasts'), + ('vasty'), + ('vatic'), + ('vatus'), + ('vauch'), + ('vault'), + ('vaunt'), + ('vaute'), + ('vauts'), + ('vawte'), + ('vaxes'), + ('veale'), + ('veals'), + ('vealy'), + ('veena'), + ('veeps'), + ('veers'), + ('veery'), + ('vegan'), + ('vegas'), + ('veges'), + ('vegie'), + ('vegos'), + ('vehme'), + ('veils'), + ('veily'), + ('veins'), + ('veiny'), + ('velar'), + ('velds'), + ('veldt'), + ('veles'), + ('vells'), + ('velum'), + ('venae'), + ('venal'), + ('vends'), + ('vendu'), + ('veney'), + ('venge'), + ('venin'), + ('venom'), + ('vents'), + ('venue'), + ('venus'), + ('verbs'), + ('verge'), + ('verra'), + ('verry'), + ('verse'), + ('verso'), + ('verst'), + ('verts'), + ('vertu'), + ('verve'), + ('vespa'), + ('vesta'), + ('vests'), + ('vetch'), + ('vexed'), + ('vexer'), + ('vexes'), + ('vexil'), + ('vezir'), + ('vials'), + ('viand'), + ('vibes'), + ('vibex'), + ('vibey'), + ('vicar'), + ('viced'), + ('vices'), + ('vichy'), + ('video'), + ('viers'), + ('views'), + ('viewy'), + ('vifda'), + ('viffs'), + ('vigas'), + ('vigia'), + ('vigil'), + ('vigor'), + ('vilde'), + ('viler'), + ('villa'), + ('villi'), + ('vills'), + ('vimen'), + ('vinal'), + ('vinas'), + ('vinca'), + ('vined'), + ('viner'), + ('vines'), + ('vinew'), + ('vinic'), + ('vinos'), + ('vints'), + ('vinyl'), + ('viola'), + ('viold'), + ('viols'), + ('viper'), + ('viral'), + ('vired'), + ('vireo'), + ('vires'), + ('virga'), + ('virge'), + ('virid'), + ('virls'), + ('virtu'), + ('virus'), + ('visas'), + ('vised'), + ('vises'), + ('visie'), + ('visit'), + ('visne'), + ('vison'), + ('visor'), + ('vista'), + ('visto'), + ('vitae'), + ('vital'), + ('vitas'), + ('vitex'), + ('vitro'), + ('vitta'), + ('vivas'), + ('vivat'), + ('vivda'), + ('viver'), + ('vives'), + ('vivid'), + ('vixen'), + ('vizir'), + ('vizor'), + ('vleis'), + ('vlies'), + ('vlogs'), + ('voars'), + ('vocab'), + ('vocal'), + ('voces'), + ('voddy'), + ('vodka'), + ('vodou'), + ('vodun'), + ('voema'), + ('vogie'), + ('vogue'), + ('voice'), + ('voids'), + ('voila'), + ('voile'), + ('voips'), + ('volae'), + ('volar'), + ('voled'), + ('voles'), + ('volet'), + ('volks'), + ('volta'), + ('volte'), + ('volti'), + ('volts'), + ('volva'), + ('volve'), + ('vomer'), + ('vomit'), + ('voted'), + ('voter'), + ('votes'), + ('vouch'), + ('vouge'), + ('voulu'), + ('vowed'), + ('vowel'), + ('vower'), + ('voxel'), + ('vozhd'), + ('vraic'), + ('vrils'), + ('vroom'), + ('vrous'), + ('vrouw'), + ('vrows'), + ('vuggs'), + ('vuggy'), + ('vughs'), + ('vughy'), + ('vulgo'), + ('vulns'), + ('vulva'), + ('vutty'), + ('vying'), + ('waacs'), + ('wacke'), + ('wacko'), + ('wacks'), + ('wacky'), + ('wadds'), + ('waddy'), + ('waded'), + ('wader'), + ('wades'), + ('wadge'), + ('wadis'), + ('wadts'), + ('wafer'), + ('waffs'), + ('wafts'), + ('waged'), + ('wager'), + ('wages'), + ('wagga'), + ('wagon'), + ('wagyu'), + ('wahoo'), + ('waide'), + ('waifs'), + ('waift'), + ('wails'), + ('wains'), + ('wairs'), + ('waist'), + ('waite'), + ('waits'), + ('waive'), + ('wakas'), + ('waked'), + ('waken'), + ('waker'), + ('wakes'), + ('wakfs'), + ('waldo'), + ('walds'), + ('waled'), + ('waler'), + ('wales'), + ('walie'), + ('walis'), + ('walks'), + ('walla'), + ('walls'), + ('wally'), + ('walty'), + ('waltz'), + ('wamed'), + ('wames'), + ('wamus'), + ('wands'), + ('waned'), + ('wanes'), + ('waney'), + ('wangs'), + ('wanks'), + ('wanky'), + ('wanle'), + ('wanly'), + ('wanna'), + ('wants'), + ('wanty'), + ('wanze'), + ('waqfs'), + ('warbs'), + ('warby'), + ('wards'), + ('wared'), + ('wares'), + ('warez'), + ('warks'), + ('warms'), + ('warns'), + ('warps'), + ('warre'), + ('warst'), + ('warts'), + ('warty'), + ('wases'), + ('washy'), + ('wasms'), + ('wasps'), + ('waspy'), + ('waste'), + ('wasts'), + ('watap'), + ('watch'), + ('water'), + ('watts'), + ('wauff'), + ('waugh'), + ('wauks'), + ('waulk'), + ('wauls'), + ('waurs'), + ('waved'), + ('waver'), + ('waves'), + ('wavey'), + ('wawas'), + ('wawes'), + ('wawls'), + ('waxed'), + ('waxen'), + ('waxer'), + ('waxes'), + ('wayed'), + ('wazir'), + ('wazoo'), + ('weald'), + ('weals'), + ('weamb'), + ('weans'), + ('wears'), + ('weary'), + ('weave'), + ('webby'), + ('weber'), + ('wecht'), + ('wedel'), + ('wedge'), + ('wedgy'), + ('weeds'), + ('weedy'), + ('weeke'), + ('weeks'), + ('weels'), + ('weems'), + ('weens'), + ('weeny'), + ('weeps'), + ('weepy'), + ('weest'), + ('weete'), + ('weets'), + ('wefte'), + ('wefts'), + ('weids'), + ('weigh'), + ('weils'), + ('weird'), + ('weirs'), + ('weise'), + ('weize'), + ('wekas'), + ('welch'), + ('welds'), + ('welke'), + ('welks'), + ('welkt'), + ('wells'), + ('welly'), + ('welsh'), + ('welts'), + ('wembs'), + ('wench'), + ('wends'), + ('wenge'), + ('wenny'), + ('wents'), + ('weros'), + ('wersh'), + ('wests'), + ('wetas'), + ('wetly'), + ('wexed'), + ('wexes'), + ('whack'), + ('whale'), + ('whamo'), + ('whams'), + ('whang'), + ('whaps'), + ('whare'), + ('wharf'), + ('whata'), + ('whats'), + ('whaup'), + ('whaur'), + ('wheal'), + ('whear'), + ('wheat'), + ('wheel'), + ('wheen'), + ('wheep'), + ('wheft'), + ('whelk'), + ('whelm'), + ('whelp'), + ('whens'), + ('where'), + ('whets'), + ('whews'), + ('wheys'), + ('which'), + ('whids'), + ('whiff'), + ('whift'), + ('whigs'), + ('while'), + ('whilk'), + ('whims'), + ('whine'), + ('whins'), + ('whiny'), + ('whios'), + ('whips'), + ('whipt'), + ('whirl'), + ('whirr'), + ('whirs'), + ('whish'), + ('whisk'), + ('whiss'), + ('whist'), + ('white'), + ('whits'), + ('whity'), + ('whizz'), + ('whole'), + ('whomp'), + ('whoof'), + ('whoop'), + ('whoot'), + ('whops'), + ('whore'), + ('whorl'), + ('whort'), + ('whose'), + ('whoso'), + ('whows'), + ('whump'), + ('whups'), + ('whyda'), + ('wicca'), + ('wicks'), + ('wicky'), + ('widdy'), + ('widen'), + ('wider'), + ('wides'), + ('widow'), + ('width'), + ('wield'), + ('wiels'), + ('wifed'), + ('wifes'), + ('wifey'), + ('wifie'), + ('wifty'), + ('wigan'), + ('wigga'), + ('wiggy'), + ('wight'), + ('wikis'), + ('wilco'), + ('wilds'), + ('wiled'), + ('wiles'), + ('wilga'), + ('wilis'), + ('wilja'), + ('wills'), + ('willy'), + ('wilts'), + ('wimps'), + ('wimpy'), + ('wince'), + ('winch'), + ('winds'), + ('windy'), + ('wined'), + ('wines'), + ('winey'), + ('winge'), + ('wings'), + ('wingy'), + ('winks'), + ('winna'), + ('winns'), + ('winos'), + ('winze'), + ('wiped'), + ('wiper'), + ('wipes'), + ('wired'), + ('wirer'), + ('wires'), + ('wirra'), + ('wised'), + ('wiser'), + ('wises'), + ('wisha'), + ('wisht'), + ('wisps'), + ('wispy'), + ('wists'), + ('witan'), + ('witch'), + ('wited'), + ('wites'), + ('withe'), + ('withs'), + ('withy'), + ('witty'), + ('wived'), + ('wiver'), + ('wives'), + ('wizen'), + ('wizes'), + ('woads'), + ('woald'), + ('wocks'), + ('wodge'), + ('woful'), + ('wojus'), + ('woken'), + ('woker'), + ('wokka'), + ('wolds'), + ('wolfs'), + ('wolly'), + ('wolve'), + ('woman'), + ('wombs'), + ('womby'), + ('women'), + ('womyn'), + ('wonga'), + ('wongi'), + ('wonks'), + ('wonky'), + ('wonts'), + ('woods'), + ('woody'), + ('wooed'), + ('wooer'), + ('woofs'), + ('woofy'), + ('woold'), + ('wools'), + ('wooly'), + ('woons'), + ('woops'), + ('woopy'), + ('woose'), + ('woosh'), + ('wootz'), + ('woozy'), + ('words'), + ('wordy'), + ('works'), + ('world'), + ('worms'), + ('wormy'), + ('worry'), + ('worse'), + ('worst'), + ('worth'), + ('worts'), + ('would'), + ('wound'), + ('woven'), + ('wowed'), + ('wowee'), + ('woxen'), + ('wrack'), + ('wrang'), + ('wraps'), + ('wrapt'), + ('wrast'), + ('wrate'), + ('wrath'), + ('wrawl'), + ('wreak'), + ('wreck'), + ('wrens'), + ('wrest'), + ('wrick'), + ('wried'), + ('wrier'), + ('wries'), + ('wring'), + ('wrist'), + ('write'), + ('writs'), + ('wroke'), + ('wrong'), + ('wroot'), + ('wrote'), + ('wroth'), + ('wrung'), + ('wryer'), + ('wryly'), + ('wuddy'), + ('wudus'), + ('wulls'), + ('wurst'), + ('wuses'), + ('wushu'), + ('wussy'), + ('wuxia'), + ('wyled'), + ('wyles'), + ('wynds'), + ('wynns'), + ('wyted'), + ('wytes'), + ('xebec'), + ('xenia'), + ('xenic'), + ('xenon'), + ('xeric'), + ('xerox'), + ('xerus'), + ('xoana'), + ('xrays'), + ('xylan'), + ('xylem'), + ('xylic'), + ('xylol'), + ('xylyl'), + ('xysti'), + ('xysts'), + ('yaars'), + ('yabas'), + ('yabba'), + ('yabby'), + ('yacca'), + ('yacht'), + ('yacka'), + ('yacks'), + ('yaffs'), + ('yager'), + ('yages'), + ('yagis'), + ('yahoo'), + ('yaird'), + ('yakka'), + ('yakow'), + ('yales'), + ('yamen'), + ('yampy'), + ('yamun'), + ('yangs'), + ('yanks'), + ('yapok'), + ('yapon'), + ('yapps'), + ('yappy'), + ('yarak'), + ('yarco'), + ('yards'), + ('yarer'), + ('yarfa'), + ('yarks'), + ('yarns'), + ('yarrs'), + ('yarta'), + ('yarto'), + ('yates'), + ('yauds'), + ('yauld'), + ('yaups'), + ('yawed'), + ('yawey'), + ('yawls'), + ('yawns'), + ('yawny'), + ('yawps'), + ('ybore'), + ('yclad'), + ('ycled'), + ('ycond'), + ('ydrad'), + ('ydred'), + ('yeads'), + ('yeahs'), + ('yealm'), + ('yeans'), + ('yeard'), + ('yearn'), + ('years'), + ('yeast'), + ('yecch'), + ('yechs'), + ('yechy'), + ('yedes'), + ('yeeds'), + ('yeesh'), + ('yeggs'), + ('yelks'), + ('yells'), + ('yelms'), + ('yelps'), + ('yelts'), + ('yenta'), + ('yente'), + ('yerba'), + ('yerds'), + ('yerks'), + ('yeses'), + ('yesks'), + ('yests'), + ('yesty'), + ('yetis'), + ('yetts'), + ('yeuks'), + ('yeuky'), + ('yeven'), + ('yeves'), + ('yewen'), + ('yexed'), + ('yexes'), + ('yfere'), + ('yield'), + ('yiked'), + ('yikes'), + ('yills'), + ('yince'), + ('yipes'), + ('yippy'), + ('yirds'), + ('yirks'), + ('yirrs'), + ('yirth'), + ('yites'), + ('yitie'), + ('ylems'), + ('ylike'), + ('ylkes'), + ('ymolt'), + ('ympes'), + ('yobbo'), + ('yobby'), + ('yocks'), + ('yodel'), + ('yodhs'), + ('yodle'), + ('yogas'), + ('yogee'), + ('yoghs'), + ('yogic'), + ('yogin'), + ('yogis'), + ('yoick'), + ('yojan'), + ('yoked'), + ('yokel'), + ('yoker'), + ('yokes'), + ('yokul'), + ('yolks'), + ('yolky'), + ('yomim'), + ('yomps'), + ('yonic'), + ('yonis'), + ('yonks'), + ('yoofs'), + ('yoops'), + ('yores'), + ('yorks'), + ('yorps'), + ('youks'), + ('young'), + ('yourn'), + ('yours'), + ('yourt'), + ('youse'), + ('youth'), + ('yowed'), + ('yowes'), + ('yowie'), + ('yowls'), + ('yowza'), + ('yrapt'), + ('yrent'), + ('yrivd'), + ('yrneh'), + ('ysame'), + ('ytost'), + ('yuans'), + ('yucas'), + ('yucca'), + ('yucch'), + ('yucko'), + ('yucks'), + ('yucky'), + ('yufts'), + ('yugas'), + ('yuked'), + ('yukes'), + ('yukky'), + ('yukos'), + ('yulan'), + ('yules'), + ('yummo'), + ('yummy'), + ('yumps'), + ('yupon'), + ('yuppy'), + ('yurta'), + ('yurts'), + ('yuzus'), + ('zabra'), + ('zacks'), + ('zaida'), + ('zaidy'), + ('zaire'), + ('zakat'), + ('zaman'), + ('zambo'), + ('zamia'), + ('zanja'), + ('zante'), + ('zanza'), + ('zanze'), + ('zappy'), + ('zarfs'), + ('zaris'), + ('zatis'), + ('zaxes'), + ('zayin'), + ('zazen'), + ('zeals'), + ('zebec'), + ('zebra'), + ('zebub'), + ('zebus'), + ('zedas'), + ('zeins'), + ('zendo'), + ('zerda'), + ('zerks'), + ('zeros'), + ('zests'), + ('zesty'), + ('zetas'), + ('zexes'), + ('zezes'), + ('zhomo'), + ('zibet'), + ('ziffs'), + ('zigan'), + ('zilas'), + ('zilch'), + ('zilla'), + ('zills'), + ('zimbi'), + ('zimbs'), + ('zinco'), + ('zincs'), + ('zincy'), + ('zineb'), + ('zines'), + ('zings'), + ('zingy'), + ('zinke'), + ('zinky'), + ('zippo'), + ('zippy'), + ('ziram'), + ('zitis'), + ('zizel'), + ('zizit'), + ('zlote'), + ('zloty'), + ('zoaea'), + ('zobos'), + ('zobus'), + ('zocco'), + ('zoeae'), + ('zoeal'), + ('zoeas'), + ('zoism'), + ('zoist'), + ('zombi'), + ('zonae'), + ('zonal'), + ('zonda'), + ('zoned'), + ('zoner'), + ('zones'), + ('zonks'), + ('zooea'), + ('zooey'), + ('zooid'), + ('zooks'), + ('zooms'), + ('zoons'), + ('zooty'), + ('zoppa'), + ('zoppo'), + ('zoril'), + ('zoris'), + ('zorro'), + ('zouks'), + ('zowee'), + ('zowie'), + ('zulus'), + ('zupan'), + ('zupas'), + ('zuppa'), + ('zurfs'), + ('zuzim'), + ('zygal'), + ('zygon'), + ('zymes'), + ('zymic'); + +commit;