aboutsummaryrefslogtreecommitdiff
path: root/app/src/main
diff options
context:
space:
mode:
authorglowinthedark <48893368+glowinthedark@users.noreply.github.com>2020-02-29 21:46:31 +0100
committerGitHub <noreply@github.com>2020-03-01 02:16:31 +0530
commit947e41105b3fdfb7ce9734fb25119c46695f7bba (patch)
tree74c63b130b262a06ea068e10ffc20c1dd69d4897 /app/src/main
parentbea3cd5457e331f04a9aeb5c99267f14908f5eaa (diff)
Add xkpasswd-style password generator (#633)
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
Diffstat (limited to 'app/src/main')
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/UserPreference.kt90
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/crypto/PgpActivity.kt20
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/pwgenxkpwd/CapsType.kt9
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/pwgenxkpwd/PasswordBuilder.kt166
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/pwgenxkpwd/XkpwdDictionary.kt58
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/ui/dialogs/PasswordGeneratorDialogFragment.kt9
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/ui/dialogs/XkPasswordGeneratorDialogFragment.kt160
-rw-r--r--app/src/main/res/layout/fragment_xkpwgen.xml142
-rw-r--r--app/src/main/res/raw/xkpwdict.txt9000
-rw-r--r--app/src/main/res/values/arrays.xml29
-rw-r--r--app/src/main/res/values/strings.xml21
-rw-r--r--app/src/main/res/xml/preference.xml24
12 files changed, 9718 insertions, 10 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt b/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt
index 50d5bcad..24ed62df 100644
--- a/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt
+++ b/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt
@@ -15,6 +15,7 @@ import android.os.Bundle
import android.os.Environment
import android.provider.DocumentsContract
import android.provider.Settings
+import android.text.TextUtils
import android.view.MenuItem
import android.view.accessibility.AccessibilityManager
import android.widget.Toast
@@ -23,6 +24,7 @@ import androidx.biometric.BiometricManager
import androidx.core.content.getSystemService
import androidx.documentfile.provider.DocumentFile
import androidx.preference.CheckBoxPreference
+import androidx.preference.ListPreference
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import androidx.preference.PreferenceManager
@@ -32,6 +34,7 @@ import com.google.android.material.snackbar.Snackbar
import com.zeapo.pwdstore.autofill.AutofillPreferenceActivity
import com.zeapo.pwdstore.crypto.PgpActivity
import com.zeapo.pwdstore.git.GitActivity
+import com.zeapo.pwdstore.pwgenxkpwd.XkpwdDictionary
import com.zeapo.pwdstore.sshkeygen.ShowSshKeyFragment
import com.zeapo.pwdstore.sshkeygen.SshKeyGenActivity
import com.zeapo.pwdstore.utils.PasswordRepository
@@ -312,6 +315,51 @@ class UserPreference : AppCompatActivity() {
}
}
}
+
+ val prefCustomXkpwdDictionary = findPreference<Preference>("pref_key_custom_dict")
+ prefCustomXkpwdDictionary?.onPreferenceClickListener = ClickListener {
+ callingActivity.storeCustomDictionaryPath()
+ true
+ }
+ val dictUri = sharedPreferences.getString("pref_key_custom_dict", "")
+
+ if (!TextUtils.isEmpty(dictUri)) {
+ setCustomDictSummary(prefCustomXkpwdDictionary, Uri.parse(dictUri))
+ }
+
+ val prefIsCustomDict = findPreference<CheckBoxPreference>("pref_key_is_custom_dict")
+ val prefCustomDictPicker = findPreference<Preference>("pref_key_custom_dict")
+ val prefPwgenType = findPreference<ListPreference>("pref_key_pwgen_type")
+ showHideDependentPrefs(prefPwgenType?.value, prefIsCustomDict, prefCustomDictPicker)
+
+ prefPwgenType?.onPreferenceChangeListener = ChangeListener() { _, newValue ->
+ showHideDependentPrefs(newValue, prefIsCustomDict, prefCustomDictPicker)
+ true
+ }
+
+ prefIsCustomDict?.onPreferenceChangeListener = ChangeListener() { _, newValue ->
+ if (!(newValue as Boolean)) {
+ val customDictFile = File(context.filesDir, XkpwdDictionary.XKPWD_CUSTOM_DICT_FILE)
+ if (customDictFile.exists()) {
+ FileUtils.deleteQuietly(customDictFile)
+ }
+ prefCustomDictPicker?.setSummary(R.string.xkpwgen_pref_custom_dict_picker_summary)
+ }
+ true
+ }
+ }
+
+ private fun showHideDependentPrefs(newValue: Any?, prefIsCustomDict: CheckBoxPreference?, prefCustomDictPicker: Preference?) {
+ when (newValue as String) {
+ PgpActivity.KEY_PWGEN_TYPE_CLASSIC -> {
+ prefIsCustomDict?.isVisible = false
+ prefCustomDictPicker?.isVisible = false
+ }
+ PgpActivity.KEY_PWGEN_TYPE_XKPASSWD -> {
+ prefIsCustomDict?.isVisible = true
+ prefCustomDictPicker?.isVisible = true
+ }
+ }
}
override fun onResume() {
@@ -396,6 +444,17 @@ class UserPreference : AppCompatActivity() {
}
}
+ /**
+ * Pick custom xkpwd dictionary from sdcard
+ */
+ private fun storeCustomDictionaryPath() {
+ val intent = Intent(Intent.ACTION_OPEN_DOCUMENT).apply {
+ addCategory(Intent.CATEGORY_OPENABLE)
+ type = "*/*"
+ }
+ startActivityForResult(intent, SET_CUSTOM_XKPWD_DICT)
+ }
+
@Throws(IOException::class)
private fun copySshKey(uri: Uri) {
// TODO: Check if valid SSH Key before import
@@ -516,6 +575,27 @@ class UserPreference : AppCompatActivity() {
}
}
}
+ SET_CUSTOM_XKPWD_DICT -> {
+ val uri: Uri = data.data ?: throw IOException("Unable to open file")
+
+ Toast.makeText(
+ this,
+ this.resources.getString(R.string.xkpwgen_custom_dict_imported, uri.path),
+ Toast.LENGTH_SHORT
+ ).show()
+ val prefs = PreferenceManager.getDefaultSharedPreferences(applicationContext)
+
+ prefs.edit().putString("pref_key_custom_dict", uri.toString()).apply()
+
+ val customDictPref = prefsFragment.findPreference<Preference>("pref_key_custom_dict")
+ setCustomDictSummary(customDictPref, uri)
+ // copy user selected file to internal storage
+ val inputStream = this.contentResolver.openInputStream(uri)
+ val customDictFile = File(this.filesDir.toString(), XkpwdDictionary.XKPWD_CUSTOM_DICT_FILE)
+ FileUtils.copyInputStreamToFile(inputStream, customDictFile)
+
+ setResult(Activity.RESULT_OK)
+ }
}
}
super.onActivityResult(requestCode, resultCode, data)
@@ -599,6 +679,16 @@ class UserPreference : AppCompatActivity() {
private const val SELECT_GIT_DIRECTORY = 4
private const val EXPORT_PASSWORDS = 5
private const val EDIT_GIT_CONFIG = 6
+ private const val SET_CUSTOM_XKPWD_DICT = 7
private const val TAG = "UserPreference"
+
+ /**
+ * Set custom dictionary summary
+ */
+ @JvmStatic
+ private fun setCustomDictSummary(customDictPref: Preference?, uri: Uri) {
+ val fileName = uri.path?.substring(uri.path?.lastIndexOf(":")!! + 1)
+ customDictPref?.setSummary("Selected dictionary: " + fileName)
+ }
}
}
diff --git a/app/src/main/java/com/zeapo/pwdstore/crypto/PgpActivity.kt b/app/src/main/java/com/zeapo/pwdstore/crypto/PgpActivity.kt
index 4e49dfe3..42878171 100644
--- a/app/src/main/java/com/zeapo/pwdstore/crypto/PgpActivity.kt
+++ b/app/src/main/java/com/zeapo/pwdstore/crypto/PgpActivity.kt
@@ -38,6 +38,7 @@ import com.zeapo.pwdstore.PasswordEntry
import com.zeapo.pwdstore.R
import com.zeapo.pwdstore.UserPreference
import com.zeapo.pwdstore.ui.dialogs.PasswordGeneratorDialogFragment
+import com.zeapo.pwdstore.ui.dialogs.XkPasswordGeneratorDialogFragment
import com.zeapo.pwdstore.utils.Otp
import java.io.ByteArrayInputStream
import java.io.ByteArrayOutputStream
@@ -142,8 +143,12 @@ class PgpActivity : AppCompatActivity(), OpenPgpServiceConnection.OnBound {
setContentView(R.layout.encrypt_layout)
generate_password?.setOnClickListener {
- PasswordGeneratorDialogFragment()
- .show(supportFragmentManager, "generator")
+ when (settings.getString("pref_key_pwgen_type", KEY_PWGEN_TYPE_CLASSIC)) {
+ KEY_PWGEN_TYPE_CLASSIC -> PasswordGeneratorDialogFragment()
+ .show(supportFragmentManager, "generator")
+ KEY_PWGEN_TYPE_XKPASSWD -> XkPasswordGeneratorDialogFragment()
+ .show(supportFragmentManager, "xkpwgenerator")
+ }
}
title = getString(R.string.new_password_title)
@@ -505,8 +510,12 @@ class PgpActivity : AppCompatActivity(), OpenPgpServiceConnection.OnBound {
private fun editPassword() {
setContentView(R.layout.encrypt_layout)
generate_password?.setOnClickListener {
- PasswordGeneratorDialogFragment()
- .show(supportFragmentManager, "generator")
+ when (settings.getString("pref_key_pwgen_type", KEY_PWGEN_TYPE_CLASSIC)) {
+ KEY_PWGEN_TYPE_CLASSIC -> PasswordGeneratorDialogFragment()
+ .show(supportFragmentManager, "generator")
+ KEY_PWGEN_TYPE_XKPASSWD -> XkPasswordGeneratorDialogFragment()
+ .show(supportFragmentManager, "xkpwgenerator")
+ }
}
title = getString(R.string.edit_password_title)
@@ -853,6 +862,9 @@ class PgpActivity : AppCompatActivity(), OpenPgpServiceConnection.OnBound {
const val TAG = "PgpActivity"
+ const val KEY_PWGEN_TYPE_CLASSIC = "classic"
+ const val KEY_PWGEN_TYPE_XKPASSWD = "xkpasswd"
+
private var delayTask: DelayShow? = null
/**
diff --git a/app/src/main/java/com/zeapo/pwdstore/pwgenxkpwd/CapsType.kt b/app/src/main/java/com/zeapo/pwdstore/pwgenxkpwd/CapsType.kt
new file mode 100644
index 00000000..a0311b8d
--- /dev/null
+++ b/app/src/main/java/com/zeapo/pwdstore/pwgenxkpwd/CapsType.kt
@@ -0,0 +1,9 @@
+/*
+ * Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved.
+ * SPDX-License-Identifier: GPL-3.0-only
+ */
+package com.zeapo.pwdstore.pwgenxkpwd
+
+enum class CapsType {
+ lowercase, UPPERCASE, TitleCase, Sentencecase, As_iS
+}
diff --git a/app/src/main/java/com/zeapo/pwdstore/pwgenxkpwd/PasswordBuilder.kt b/app/src/main/java/com/zeapo/pwdstore/pwgenxkpwd/PasswordBuilder.kt
new file mode 100644
index 00000000..a526490f
--- /dev/null
+++ b/app/src/main/java/com/zeapo/pwdstore/pwgenxkpwd/PasswordBuilder.kt
@@ -0,0 +1,166 @@
+/*
+ * Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved.
+ * SPDX-License-Identifier: GPL-3.0-only
+ */
+package com.zeapo.pwdstore.pwgenxkpwd
+
+import android.content.Context
+import com.zeapo.pwdstore.R
+import com.zeapo.pwdstore.pwgen.PasswordGenerator
+import com.zeapo.pwdstore.pwgen.PasswordGenerator.PasswordGeneratorExeption
+import java.io.IOException
+import java.security.SecureRandom
+import java.util.ArrayList
+import java.util.Locale
+
+class PasswordBuilder(ctx: Context) {
+
+ private var numSymbols = 0
+ private var isAppendSymbolsSeparator = false
+ private var context = ctx
+ private var numWords = 3
+ private var maxWordLength = 9
+ private var minWordLength = 5
+ private var separator = "."
+ private var capsType = CapsType.Sentencecase
+ private var prependDigits = 0
+ private var numDigits = 0
+ private var isPrependWithSeparator = false
+ private var isAppendNumberSeparator = false
+
+ fun setNumberOfWords(amount: Int) = apply {
+ numWords = amount
+ }
+
+ fun setMinimumWordLength(min: Int) = apply {
+ minWordLength = min
+ }
+
+ fun setMaximumWordLength(max: Int) = apply {
+ maxWordLength = max
+ }
+
+ fun setSeparator(separator: String) = apply {
+ this.separator = separator
+ }
+
+ fun setCapitalization(capitalizationScheme: CapsType) = apply {
+ capsType = capitalizationScheme
+ }
+
+ @JvmOverloads
+ fun prependNumbers(numDigits: Int, addSeparator: Boolean = true) = apply {
+ prependDigits = numDigits
+ isPrependWithSeparator = addSeparator
+ }
+
+ @JvmOverloads
+ fun appendNumbers(numDigits: Int, addSeparator: Boolean = false) = apply {
+ this.numDigits = numDigits
+ isAppendNumberSeparator = addSeparator
+ }
+
+ @JvmOverloads
+ fun appendSymbols(numSymbols: Int, addSeparator: Boolean = false) = apply {
+ this.numSymbols = numSymbols
+ isAppendSymbolsSeparator = addSeparator
+ }
+
+ private fun generateRandomNumberSequence(totalNumbers: Int): String {
+ val secureRandom = SecureRandom()
+ val numbers = StringBuilder(totalNumbers)
+
+ for (i in 0 until totalNumbers) {
+ numbers.append(secureRandom.nextInt(10))
+ }
+ return numbers.toString()
+ }
+
+ private fun generateRandomSymbolSequence(numSymbols: Int): String {
+ val secureRandom = SecureRandom()
+ val numbers = StringBuilder(numSymbols)
+
+ for (i in 0 until numSymbols) {
+ numbers.append(SYMBOLS[secureRandom.nextInt(SYMBOLS.length)])
+ }
+ return numbers.toString()
+ }
+
+ @Throws(PasswordGenerator.PasswordGeneratorExeption::class)
+ fun create(): String {
+ val wordBank = ArrayList<String>()
+ val secureRandom = SecureRandom()
+ val password = StringBuilder()
+
+ if (prependDigits != 0) {
+ password.append(generateRandomNumberSequence(prependDigits))
+ if (isPrependWithSeparator) {
+ password.append(separator)
+ }
+ }
+ try {
+ val dictionary = XkpwdDictionary(context)
+ val words = dictionary.words
+ for (wordLength in words.keys) {
+ if (wordLength in minWordLength..maxWordLength) {
+ wordBank.addAll(words[wordLength]!!)
+ }
+ }
+
+ if (wordBank.size == 0) {
+ throw PasswordGeneratorExeption(context.getString(R.string.xkpwgen_builder_error, minWordLength, maxWordLength))
+ }
+
+ for (i in 0 until numWords) {
+ val randomIndex = secureRandom.nextInt(wordBank.size)
+ var s = wordBank[randomIndex]
+
+ if (capsType != CapsType.As_iS) {
+ s = s.toLowerCase(Locale.getDefault())
+ when (capsType) {
+ CapsType.UPPERCASE -> s = s.toUpperCase(Locale.getDefault())
+ CapsType.Sentencecase -> {
+ if (i == 0) {
+ s = capitalize(s)
+ }
+ }
+ CapsType.TitleCase -> {
+ s = capitalize(s)
+ }
+ }
+ }
+ password.append(s)
+ wordBank.removeAt(randomIndex)
+ if (i + 1 < numWords) {
+ password.append(separator)
+ }
+ }
+ } catch (e: IOException) {
+ throw PasswordGeneratorExeption("Failed generating password!")
+ }
+ if (numDigits != 0) {
+ if (isAppendNumberSeparator) {
+ password.append(separator)
+ }
+ password.append(generateRandomNumberSequence(numDigits))
+ }
+ if (numSymbols != 0) {
+ if (isAppendSymbolsSeparator) {
+ password.append(separator)
+ }
+ password.append(generateRandomSymbolSequence(numSymbols))
+ }
+ return password.toString()
+ }
+
+ private fun capitalize(s: String): String {
+ var result = s
+ val lower = result.toLowerCase(Locale.getDefault())
+ result = lower.substring(0, 1).toUpperCase(Locale.getDefault()) + result.substring(1)
+ return result
+ }
+
+ companion object {
+ private const val SYMBOLS = "!@\$%^&*-_+=:|~?/.;#"
+ }
+}
diff --git a/app/src/main/java/com/zeapo/pwdstore/pwgenxkpwd/XkpwdDictionary.kt b/app/src/main/java/com/zeapo/pwdstore/pwgenxkpwd/XkpwdDictionary.kt
new file mode 100644
index 00000000..27f8fbd0
--- /dev/null
+++ b/app/src/main/java/com/zeapo/pwdstore/pwgenxkpwd/XkpwdDictionary.kt
@@ -0,0 +1,58 @@
+/*
+ * Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved.
+ * SPDX-License-Identifier: GPL-3.0-only
+ */
+package com.zeapo.pwdstore.pwgenxkpwd
+
+import android.content.Context
+import android.text.TextUtils
+import androidx.preference.PreferenceManager
+import com.zeapo.pwdstore.R
+import java.io.File
+import java.util.ArrayList
+import java.util.HashMap
+
+class XkpwdDictionary(context: Context) {
+ val words: HashMap<Int, ArrayList<String>> = HashMap()
+
+ init {
+ val prefs = PreferenceManager.getDefaultSharedPreferences(context)
+
+ var lines: List<String> = listOf()
+
+ if (prefs.getBoolean("pref_key_is_custom_dict", false)) {
+
+ val uri = prefs.getString("pref_key_custom_dict", "")
+
+ if (!TextUtils.isEmpty(uri)) {
+ val customDictFile = File(context.filesDir, XKPWD_CUSTOM_DICT_FILE)
+
+ if (customDictFile.exists() && customDictFile.canRead()) {
+ lines = customDictFile.inputStream().bufferedReader().readLines()
+ }
+ }
+ }
+
+ if (lines.isEmpty()) {
+ lines = context.getResources().openRawResource(R.raw.xkpwdict).bufferedReader().readLines()
+ }
+
+ for (word in lines) {
+ if (!word.trim { it <= ' ' }.contains(" ")) {
+ val length = word.trim { it <= ' ' }.length
+
+ if (length > 0) {
+ if (!words.containsKey(length)) {
+ words[length] = ArrayList()
+ }
+ val strings = words[length]!!
+ strings.add(word.trim { it <= ' ' })
+ }
+ }
+ }
+ }
+
+ companion object {
+ const val XKPWD_CUSTOM_DICT_FILE = "custom_dict.txt"
+ }
+}
diff --git a/app/src/main/java/com/zeapo/pwdstore/ui/dialogs/PasswordGeneratorDialogFragment.kt b/app/src/main/java/com/zeapo/pwdstore/ui/dialogs/PasswordGeneratorDialogFragment.kt
index af344bd4..26b6190f 100644
--- a/app/src/main/java/com/zeapo/pwdstore/ui/dialogs/PasswordGeneratorDialogFragment.kt
+++ b/app/src/main/java/com/zeapo/pwdstore/ui/dialogs/PasswordGeneratorDialogFragment.kt
@@ -4,7 +4,6 @@
*/
package com.zeapo.pwdstore.ui.dialogs
-import android.app.Activity
import android.app.Dialog
import android.content.Context
import android.graphics.Typeface
@@ -26,7 +25,7 @@ import com.zeapo.pwdstore.pwgen.PasswordGenerator.setPrefs
class PasswordGeneratorDialogFragment : DialogFragment() {
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val builder = MaterialAlertDialogBuilder(requireContext())
- val callingActivity: Activity = requireActivity()
+ val callingActivity = requireActivity()
val inflater = callingActivity.layoutInflater
val view = inflater.inflate(R.layout.fragment_pwgen, null)
val monoTypeface = Typeface.createFromAsset(callingActivity.assets, "fonts/sourcecodepro.ttf")
@@ -49,8 +48,8 @@ class PasswordGeneratorDialogFragment : DialogFragment() {
val edit = callingActivity.findViewById<EditText>(R.id.crypto_password_edit)
edit.setText(passwordText.text)
}
- builder.setNegativeButton(resources.getString(R.string.dialog_cancel)) { _, _ -> }
- builder.setNeutralButton(resources.getString(R.string.pwgen_generate), null)
+ builder.setNeutralButton(resources.getString(R.string.dialog_cancel)) { _, _ -> }
+ builder.setNegativeButton(resources.getString(R.string.pwgen_generate), null)
val dialog = builder.setTitle(this.resources.getString(R.string.pwgen_title)).create()
dialog.setOnShowListener {
setPreferences()
@@ -60,7 +59,7 @@ class PasswordGeneratorDialogFragment : DialogFragment() {
Toast.makeText(requireActivity(), e.message, Toast.LENGTH_SHORT).show()
passwordText.text = ""
}
- dialog.getButton(AlertDialog.BUTTON_NEUTRAL).setOnClickListener {
+ dialog.getButton(AlertDialog.BUTTON_NEGATIVE).setOnClickListener {
setPreferences()
try {
passwordText.text = generate(callingActivity.applicationContext)[0]
diff --git a/app/src/main/java/com/zeapo/pwdstore/ui/dialogs/XkPasswordGeneratorDialogFragment.kt b/app/src/main/java/com/zeapo/pwdstore/ui/dialogs/XkPasswordGeneratorDialogFragment.kt
new file mode 100644
index 00000000..f42b6536
--- /dev/null
+++ b/app/src/main/java/com/zeapo/pwdstore/ui/dialogs/XkPasswordGeneratorDialogFragment.kt
@@ -0,0 +1,160 @@
+/*
+ * Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved.
+ * SPDX-License-Identifier: GPL-3.0-only
+ */
+package com.zeapo.pwdstore.ui.dialogs
+
+import android.app.Dialog
+import android.content.Context
+import android.content.SharedPreferences
+import android.graphics.Typeface
+import android.os.Bundle
+import android.widget.CheckBox
+import android.widget.EditText
+import android.widget.Spinner
+import android.widget.Toast
+import androidx.appcompat.app.AlertDialog
+import androidx.appcompat.widget.AppCompatEditText
+import androidx.appcompat.widget.AppCompatTextView
+import androidx.fragment.app.DialogFragment
+import com.google.android.material.dialog.MaterialAlertDialogBuilder
+import com.zeapo.pwdstore.R
+import com.zeapo.pwdstore.pwgen.PasswordGenerator
+import com.zeapo.pwdstore.pwgenxkpwd.CapsType
+import com.zeapo.pwdstore.pwgenxkpwd.PasswordBuilder
+import timber.log.Timber
+
+/** A placeholder fragment containing a simple view. */
+class XkPasswordGeneratorDialogFragment : DialogFragment() {
+
+ private lateinit var editSeparator: AppCompatEditText
+ private lateinit var editNumWords: AppCompatEditText
+ private lateinit var cbSymbols: CheckBox
+ private lateinit var spinnerCapsType: Spinner
+ private lateinit var cbNumbers: CheckBox
+ private lateinit var prefs: SharedPreferences
+ private lateinit var spinnerNumbersCount: Spinner
+ private lateinit var spinnerSymbolsCount: Spinner
+
+ override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
+ val builder = MaterialAlertDialogBuilder(requireContext())
+ val callingActivity = requireActivity()
+ val inflater = callingActivity.layoutInflater
+ val view = inflater.inflate(R.layout.fragment_xkpwgen, null)
+
+ val monoTypeface = Typeface.createFromAsset(callingActivity.assets, "fonts/sourcecodepro.ttf")
+
+ builder.setView(view)
+
+ prefs = callingActivity.getSharedPreferences("PasswordGenerator", Context.MODE_PRIVATE)
+
+ cbNumbers = view.findViewById<CheckBox>(R.id.xknumerals)
+ cbNumbers.isChecked = prefs.getBoolean(PREF_KEY_USE_NUMERALS, false)
+
+ spinnerNumbersCount = view.findViewById<Spinner>(R.id.xk_numbers_count)
+
+ val storedNumbersCount = prefs.getInt(PREF_KEY_NUMBERS_COUNT, 0)
+ spinnerNumbersCount.setSelection(storedNumbersCount)
+
+ cbSymbols = view.findViewById<CheckBox>(R.id.xksymbols)
+ cbSymbols.isChecked = prefs.getBoolean(PREF_KEY_USE_SYMBOLS, false) != false
+ spinnerSymbolsCount = view.findViewById<Spinner>(R.id.xk_symbols_count)
+ val symbolsCount = prefs.getInt(PREF_KEY_SYMBOLS_COUNT, 0)
+ spinnerSymbolsCount.setSelection(symbolsCount)
+
+ val previousStoredCapStyle: String = try {
+ prefs.getString(PREF_KEY_CAPITALS_STYLE, DEFAULT_CAPS_STYLE)!!
+ } catch (e: Exception) {
+ Timber.tag("xkpw").e(e)
+ DEFAULT_CAPS_STYLE
+ }
+ spinnerCapsType = view.findViewById<Spinner>(R.id.xkCapType)
+
+ val lastCapitalsStyleIndex: Int
+
+ lastCapitalsStyleIndex = try {
+ CapsType.valueOf(previousStoredCapStyle).ordinal
+ } catch (e: Exception) {
+ Timber.tag("xkpw").e(e)
+ DEFAULT_CAPS_INDEX
+ }
+ spinnerCapsType.setSelection(lastCapitalsStyleIndex)
+
+ editNumWords = view.findViewById<AppCompatEditText>(R.id.xk_num_words)
+ editNumWords.setText(prefs.getString(PREF_KEY_NUM_WORDS, DEFAULT_NUMBER_OF_WORDS))
+
+ editSeparator = view.findViewById<AppCompatEditText>(R.id.xk_separator)
+ editSeparator.setText(prefs.getString(PREF_KEY_SEPARATOR, DEFAULT_WORD_SEPARATOR))
+
+ val passwordText: AppCompatTextView = view.findViewById(R.id.xkPasswordText)
+ passwordText.typeface = monoTypeface
+
+ builder.setPositiveButton(resources.getString(R.string.dialog_ok)) { _, _ ->
+ setPreferences()
+ val edit = callingActivity.findViewById<EditText>(R.id.crypto_password_edit)
+ edit.setText(passwordText.text)
+ }
+
+ // flip neutral and negative buttons
+ builder.setNeutralButton(resources.getString(R.string.dialog_cancel)) { _, _ -> }
+ builder.setNegativeButton(resources.getString(R.string.pwgen_generate), null)
+
+ val dialog = builder.setTitle(this.resources.getString(R.string.xkpwgen_title)).create()
+
+ dialog.setOnShowListener {
+ setPreferences()
+ makeAndSetPassword(passwordText)
+
+ dialog.getButton(AlertDialog.BUTTON_NEGATIVE).setOnClickListener {
+ setPreferences()
+ makeAndSetPassword(passwordText)
+ }
+ }
+ return dialog
+ }
+
+ private fun makeAndSetPassword(passwordText: AppCompatTextView) {
+ try {
+ passwordText.text = PasswordBuilder(requireContext())
+ .setNumberOfWords(Integer.valueOf(editNumWords.text.toString()))
+ .setMinimumWordLength(DEFAULT_MIN_WORD_LENGTH)
+ .setMaximumWordLength(DEFAULT_MAX_WORD_LENGTH)
+ .setSeparator(editSeparator.text.toString())
+ .appendNumbers(if (cbNumbers.isChecked) Integer.parseInt(spinnerNumbersCount.selectedItem as String) else 0)
+ .appendSymbols(if (cbSymbols.isChecked) Integer.parseInt(spinnerSymbolsCount.selectedItem as String) else 0)
+ .setCapitalization(CapsType.valueOf(spinnerCapsType.selectedItem.toString())).create()
+ } catch (e: PasswordGenerator.PasswordGeneratorExeption) {
+ Toast.makeText(requireActivity(), e.message, Toast.LENGTH_SHORT).show()
+ Timber.tag("xkpw").e(e, "failure generating xkpasswd")
+ passwordText.text = FALLBACK_ERROR_PASS
+ }
+ }
+
+ private fun setPreferences() {
+ prefs.edit().putBoolean(PREF_KEY_USE_NUMERALS, cbNumbers.isChecked)
+ .putBoolean(PREF_KEY_USE_SYMBOLS, cbSymbols.isChecked)
+ .putString(PREF_KEY_CAPITALS_STYLE, spinnerCapsType.selectedItem.toString())
+ .putString(PREF_KEY_NUM_WORDS, editNumWords.text.toString())
+ .putString(PREF_KEY_SEPARATOR, editSeparator.text.toString())
+ .putInt(PREF_KEY_NUMBERS_COUNT, Integer.parseInt(spinnerNumbersCount.selectedItem as String) - 1)
+ .putInt(PREF_KEY_SYMBOLS_COUNT, Integer.parseInt(spinnerSymbolsCount.selectedItem as String) - 1)
+ .apply()
+ }
+
+ companion object {
+ const val PREF_KEY_USE_NUMERALS = "pref_key_use_numerals"
+ const val PREF_KEY_USE_SYMBOLS = "pref_key_use_symbols"
+ const val PREF_KEY_CAPITALS_STYLE = "pref_key_capitals_style"
+ const val PREF_KEY_NUM_WORDS = "pref_key_num_words"
+ const val PREF_KEY_SEPARATOR = "pref_key_separator"
+ const val PREF_KEY_NUMBERS_COUNT = "pref_key_xkpwgen_numbers_count"
+ const val PREF_KEY_SYMBOLS_COUNT = "pref_key_symbols_count"
+ val DEFAULT_CAPS_STYLE = CapsType.Sentencecase.name
+ val DEFAULT_CAPS_INDEX = CapsType.Sentencecase.ordinal
+ const val DEFAULT_NUMBER_OF_WORDS = "3"
+ const val DEFAULT_WORD_SEPARATOR = "."
+ const val DEFAULT_MIN_WORD_LENGTH = 3
+ const val DEFAULT_MAX_WORD_LENGTH = 9
+ const val FALLBACK_ERROR_PASS = "42"
+ }
+}
diff --git a/app/src/main/res/layout/fragment_xkpwgen.xml b/app/src/main/res/layout/fragment_xkpwgen.xml
new file mode 100644
index 00000000..6e9ebd29
--- /dev/null
+++ b/app/src/main/res/layout/fragment_xkpwgen.xml
@@ -0,0 +1,142 @@
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:paddingLeft="24dp"
+ android:paddingTop="20dp"
+ android:paddingRight="24dp"
+ android:paddingBottom="20dp"
+ tools:context=".MainActivityFragment">
+
+ <androidx.appcompat.widget.AppCompatTextView
+ android:id="@+id/xkPasswordText"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="8dp"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:textIsSelectable="true" />
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:baselineAligned="false"
+ android:orientation="horizontal"
+ android:weightSum="2">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_weight=".6"
+ android:orientation="vertical">
+
+ <androidx.appcompat.widget.AppCompatTextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="8dp"
+ android:text="@string/pwgen_include"
+ android:textAppearance="?android:attr/textAppearanceSmall" />
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <CheckBox
+ android:id="@+id/xknumerals"
+ android:layout_width="wrap_content"
+ android:gravity="center_vertical"
+ android:text="@string/xkpwgen_numbers"
+ android:layout_height="wrap_content" />
+
+ <Spinner
+ android:id="@+id/xk_numbers_count"
+ android:layout_width="fill_parent"
+ android:minWidth="40dp"
+ android:dropDownWidth="40dp"
+ android:gravity="center_vertical"
+ android:layout_height="wrap_content"
+ android:entries="@array/xk_range_1_10"
+ android:entryValues="@array/xk_range_1_10"
+ android:spinnerMode="dropdown" />
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <CheckBox
+ android:id="@+id/xksymbols"
+ android:layout_width="wrap_content"
+ android:gravity="center_vertical"
+ android:text="@string/xkpwgen_symbols"
+ android:layout_height="wrap_content"/>
+
+ <Spinner
+ android:id="@+id/xk_symbols_count"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center_vertical"
+ android:minWidth="40dp"
+ android:dropDownWidth="40dp"
+ android:entries="@array/xk_range_1_10"
+ android:entryValues="@array/xk_range_1_10"
+ android:spinnerMode="dropdown" />
+ </LinearLayout>
+
+ <Spinner
+ android:id="@+id/xkCapType"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:entries="@array/capitalization_type_values"
+ android:entryValues="@array/capitalization_type_values"
+ android:spinnerMode="dropdown" />
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_weight="1.4"
+ android:orientation="vertical">
+
+ <androidx.appcompat.widget.AppCompatTextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="8dp"
+ android:text="@string/xkpwgen_length"
+ android:textAppearance="?android:attr/textAppearanceSmall" />
+
+ <EditText
+ android:id="@+id/xk_num_words"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="8dp"
+ android:maxLength="2"
+ android:ems="10"
+ android:inputType="number" />
+
+ <androidx.appcompat.widget.AppCompatTextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="8dp"
+ android:text="@string/xkpwgen_separator"
+ android:textAppearance="?android:attr/textAppearanceSmall" />
+
+ <EditText
+ android:id="@+id/xk_separator"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="8dp"
+ android:ems="10"
+ android:autofillHints=""
+ android:hint="@string/xkpwgen_separator_character"
+ android:inputType="text" />
+ </LinearLayout>
+ </LinearLayout>
+ </LinearLayout>
+</ScrollView>
diff --git a/app/src/main/res/raw/xkpwdict.txt b/app/src/main/res/raw/xkpwdict.txt
new file mode 100644
index 00000000..8823c037
--- /dev/null
+++ b/app/src/main/res/raw/xkpwdict.txt
@@ -0,0 +1,9000 @@
+fresis
+plinapherium
+vahes
+voictink
+outimil
+catahons
+allenter
+parts
+nonuessy
+hopatheaers
+gizapper
+readmisotic
+hemas
+pries
+zultible
+delletaming
+welextery
+horisticia
+slics
+tockmendprost
+fidersa
+chnese
+metic
+holigial
+yatinsia
+nesse
+glinglysilly
+ingesmarro
+dyinchorte
+alued
+swogordiggiid
+ingtal
+verednessined
+exagus
+haetamantsic
+coela
+inolopee
+promphous
+dereslisers
+preateatosian
+sprentous
+tisanhomincy
+slontmon
+mifers
+aphilikoness
+metiogo
+aphanthysile
+motalednes
+overinred
+agered
+hoompagitoly
+ouste
+acrouses
+floidologe
+spilivetisms
+suronaters
+hover
+eutbollumnes
+baear
+ploranepar
+efernii
+distent
+nunies
+gopicisher
+phize
+slopoin
+rildic
+noinon
+pernauve
+pornindness
+nonart
+olizing
+limulthoct
+bessic
+blecoma
+rismone
+faubly
+sperom
+unmatortinan
+questy
+ophist
+verion
+magialictoide
+luous
+primicry
+unsulathode
+ytizonlan
+elown
+dones
+oickene
+dusts
+flisness
+copte
+stiolartrapes
+pneyests
+unfalinansed
+enzoly
+carawed
+mening
+unsteberred
+sumbecormend
+abliphon
+wigatrant
+ingiefoozzly
+puback
+luminicke
+taseara
+teutchoo
+emiabling
+tratimbe
+nueness
+atism
+siatlith
+slerm
+recized
+milogred
+phiresce
+anickness
+syackyan
+eptickwing
+nicarlasherty
+raliperm
+mothetionus
+larbulant
+unuck
+dunonmetorme
+gralft
+misticats
+smoal
+plamerm
+nubus
+filing
+unleggeronate
+brosoodec
+etheaterus
+subcofine
+inted
+eptery
+fientracta
+unfellum
+sorasirnated
+heryogy
+rediarcouse
+tring
+unestous
+niping
+befaus
+intale
+subspaseters
+posillity
+annucaft
+therackylphy
+subration
+abdulated
+diption
+seader
+isiansatelp
+zotte
+fureologing
+ansely
+poodipents
+satirubial
+pilsing
+clized
+submus
+uninalish
+inizanting
+faulematic
+admirefailing
+bantery
+cletrale
+golor
+brose
+prehoxilver
+cipacet
+unass
+solitomether
+ephans
+unebouggins
+kolotopory
+tabaries
+pridditefale
+sallines
+ellatal
+irchysts
+undemikens
+petemilly
+encrious
+preeslusly
+pisosigrammot
+tervary
+novablextred
+entinetia
+esmelly
+kammoweripa
+acculotiont
+evite
+outhle
+unpers
+nolosicali
+dedintevients
+vishak
+carightal
+hometbanopas
+hyron
+domelerer
+crytionsm
+zolehoracia
+kersining
+phesiscogfunt
+searmang
+matoneraggran
+mondeable
+unfeopicastum
+imbebomyrlyng
+prodae
+rejus
+stived
+chiplabsougly
+licidgess
+halcitingin
+disits
+dinnesquadae
+eurategly
+sormally
+plevene
+pseurisbed
+ceptize
+hyperanatly
+clogertil
+sembai
+nulushnics
+aings
+sultion
+undany
+undespes
+menes
+affmateasente
+demoente
+suped
+potes
+dearan
+shexse
+inarocradwind
+ramakied
+sageste
+nomishneary
+vitess
+undably
+psychbarably
+khargal
+flionsock
+flash
+pighs
+orpin
+sitlectally
+plarthrur
+dirubte
+audives
+nophea
+suffea
+cathodandead
+datic
+munsautured
+hysturams
+reennove
+pidition
+uking
+culgalicastic
+poldly
+aphort
+nonsperfer
+sumbsal
+drivern
+knouphiconit
+undrieseuropy
+thrinama
+dacon
+conta
+pente
+furau
+inied
+waspatignen
+parchea
+sared
+unmin
+spolum
+volest
+lefibulan
+stesquist
+atinarm
+cychomats
+squilinte
+ardste
+affle
+eascropliness
+diptoppies
+unmempo
+loreruiss
+prels
+dearactinit
+aseper
+etrabling
+chypupec
+baurpreme
+equoncriont
+peneis
+rankyly
+kally
+hesue
+histal
+lisemats
+noryned
+calism
+maspereceizes
+lized
+sweeruciing
+midaste
+anego
+prochyos
+prolpane
+unseutates
+tainey
+symachus
+lanader
+urize
+irraff
+preforviver
+anartites
+spotunisous
+stranne
+puthis
+pawarilogrado
+augoilikernon
+shalts
+miders
+piciler
+triandies
+theatimisma
+unctescal
+nonae
+unking
+woridd
+iriomanture
+kakers
+rapperegge
+ablike
+senanon
+moleyed
+horthicater
+crory
+solly
+soremaile
+pherb
+clishydors
+suremblemic
+ounhencher
+samper
+afferbentic
+unhockakate
+suped
+pinathytic
+fravituffic
+tratizinle
+prest
+mentable
+nonadrostries
+arize
+valize
+moscous
+emijigged
+prearnes
+carchtheld
+copionalae
+acadenicity
+thring
+overs
+zonabloutsum
+pretted
+lugly
+cingon
+cestably
+fasum
+dered
+hetoguee
+triciferfe
+lesited
+grater
+reveri
+clows
+deless
+bicurnisted
+laked
+isibrarmales
+forized
+distorly
+bookallers
+mutamited
+allon
+chipiumpan
+dility
+reamuses
+anarropillic
+ealeneter
+wittously
+tratualic
+olian
+seandurishu
+hetilationint
+hablerip
+ungeostas
+turebromyrity
+gulenu
+polining
+actonce
+skeproardea
+extulle
+emptotocaliss
+unanchabeard
+cosed
+spiting
+pathylle
+dilcitide
+tholgendlic
+union
+hypaseding
+inclanickner
+enize
+photomy
+pygers
+pharying
+baspeang
+proammithus
+spallic
+seliting
+axomeon
+jardanth
+derouthiis
+prealionesse
+sulous
+preapyr
+prescits
+comentaeous
+diuss
+deersowarte
+glocceackhe
+buchms
+sneupped
+teusly
+vismotatren
+mismas
+athbudencity
+wooro
+unamy
+locatotome
+tefended
+saltopropper
+enonverooldy
+relath
+unclucage
+olopoly
+hechtly
+dardomcallus
+repilid
+minfierung
+aviant
+ancomellasir
+thablent
+tortess
+polider
+susnes
+nonasm
+winclertess
+appettest
+crolarin
+rention
+andyol
+stvelly
+sustertive
+buroverhen
+fosteree
+subwoodess
+cateting
+sownlicionie
+nodic
+rente
+happunshness
+arcers
+biedeprets
+snerspoly
+buchorific
+antitiontles
+sholebiclost
+ampor
+colatistom
+medplogitran
+unbed
+faity
+engly
+ingly
+sphobity
+titaicastic
+cealing
+erroaffly
+clana
+pagodocculate
+romeled
+aditale
+herthydrager
+unsuffer
+nodole
+croppayphora
+acote
+wardspined
+lated
+reoly
+debalante
+ebrashapach
+guling
+rebowee
+undecionaled
+teureally
+cophrivesian
+alique
+woralce
+undinve
+mionsagelian
+noneet
+abied
+catis
+muncyes
+lantenegitize
+velly
+psyng
+parlontoms
+estalla
+hersuric
+olocke
+inguerind
+caliss
+unoncheifs
+cometed
+chriesseing
+overtew
+merly
+meters
+pothemen
+overthoneole
+kinagillm
+matetterus
+foranatize
+unchrierver
+viskioncea
+preptylomy
+vansm
+arejachanes
+miairrupluts
+tatily
+podgerry
+unymic
+exuram
+gluse
+diverprottoni
+pered
+dydrou
+pribegaticaph
+sylogranhosm
+legal
+tablexpants
+tatie
+frabless
+hyphophobeab
+peribler
+rulize
+jocking
+husness
+bifiets
+lated
+gencon
+snally
+swist
+peroge
+araphoen
+balit
+jarides
+corip
+fentaut
+prelamons
+smicary
+aquin
+kinedor
+autilan
+ovendier
+bariggist
+lingly
+unkwietwing
+antaph
+ruscer
+escocks
+pauseambarkal
+vamlahate
+lubbisity
+raperinger
+asariness
+awkeamingon
+mulamican
+pricallstim
+reasive
+gragromagot
+tousnainesus
+unnesed
+fiess
+revelognewis
+unjaperinlial
+aftyged
+dents
+posofied
+bastealip
+calianred
+culaint
+argearchnes
+niloplint
+colve
+gismettelint
+blendi
+wariterarbiga
+sauxodepts
+coely
+subelly
+hoping
+aponne
+influsnest
+binguers
+thingon
+menbosiser
+epreotoxyla
+fatintrast
+inines
+brallaven
+untorical
+uncidpatic
+cless
+starmanth
+cones
+sectered
+applartly
+canck
+insubs
+bionicompic
+cranter
+felis
+actin
+overres
+holot
+intion
+inoblestely
+nopoded
+refass
+scrospore
+preedebiss
+balendrail
+prinenea
+sorchellon
+coimetrue
+alsuboing
+ovestion
+seredle
+stinfrenhy
+rebtraciga
+carraceness
+cankmess
+tradrudemer
+karials
+lyzed
+thilione
+deing
+remicariopy
+assed
+chrinize
+surers
+werinethous
+yabailic
+nothras
+lashed
+donings
+unater
+veriatines
+adbally
+enleavindety
+ceaungeo
+prenstioule
+ungly
+brasubsubbero
+laism
+objectous
+inisifice
+jumenthile
+pyroniss
+subic
+buing
+opery
+tatenter
+toetimne
+rhial
+tralous
+conisic
+insheignae
+beciop
+retatere
+minized
+unchor
+ositas
+shistiter
+clookoid
+seletion
+elian
+suphodiata
+ganis
+artheam
+antint
+undifyiner
+haistrotic
+abing
+unroanes
+telattlithe
+imoniecion
+miscodyls
+loust
+notologgalic
+scars
+moplaryingus
+osiogly
+retremy
+bostogess
+acracksh
+raphrerf
+bitagmopores
+alwedid
+jultimmulite
+rusly
+snativiss
+acooptortedul
+orethosisrize
+biastanled
+flessa
+unablaterbar
+skers
+monal
+encemper
+sentege
+guichorturi
+reptinies
+comidaphark
+pawidiglesed
+calitess
+surrhy
+snetrapping
+khimited
+kishan
+crodotin
+redender
+gertribbithan
+stepat
+glint
+chipetatheres
+burochemooly
+bailve
+eline
+scolabled
+stetion
+tifulitical
+anted
+hypots
+reiric
+dignous
+teroseazia
+poneumicaus
+bayiss
+staft
+cross
+nonnatin
+menchs
+gomareria
+pecal
+ethery
+johan
+prempeted
+ferivenorging
+extions
+douserstra
+ampla
+muttic
+waciadrom
+solishedet
+clendi
+utmastishiss
+batalliness
+amendom
+futguers
+snetervis
+pyrobegous
+fibidied
+pepiresionrid
+consh
+elogat
+chentor
+progs
+snesilleadion
+flaripmenly
+shioutic
+jurubmajary
+sulands
+precens
+lushangomy
+unkis
+nuelay
+diftiontiatch
+premise
+facephia
+aning
+inlar
+unest
+heemphy
+proniveskis
+berous
+plall
+stisays
+darculters
+colistocalled
+aditic
+handed
+bofty
+ceofrooi
+cousigent
+hanacomsimmil
+blogglatily
+suratiotoond
+prochels
+trist
+botivingly
+unpreor
+graphoelly
+spred
+ommic
+scronaug
+tablenal
+cless
+perbacclited
+nonantism
+bactiony
+paship
+turous
+dents
+pawed
+chievirery
+matilinge
+addly
+carysia
+aproatione
+cropeticares
+pante
+supplemped
+diggener
+miterover
+triones
+vendic
+trodarent
+nosque
+mislikertie
+roxbrate
+afian
+quenergan
+cragerierma
+wepors
+thawards
+vichums
+woleharrande
+prelismetumet
+reted
+periontoming
+sosivormove
+unpern
+roole
+necephtess
+chiong
+chawn
+unria
+zatic
+placely
+hyperizedos
+cycoi
+gragal
+gynater
+sionation
+bacalt
+sweenock
+deppliked
+repole
+scuists
+elincutgled
+hytoloyemid
+squets
+comelmided
+guily
+bionduts
+sultinstrigh
+sulanativer
+myeritiass
+heatic
+soining
+munned
+drussichrong
+paberhets
+pineuppruts
+striers
+bachar
+olopholaziess
+unblecomire
+chergalest
+nownpol
+bially
+catwerest
+derpying
+uniste
+outaioulle
+clirecouslo
+hidruff
+resticafluels
+rophess
+poseeculable
+itenda
+drootanceme
+dirbing
+reeca
+corisis
+sileu
+sisetiogy
+hoinks
+dineentic
+reelerly
+overned
+rosquation
+mulealcoet
+berin
+mialings
+entinthemer
+biblecul
+jansenia
+hythmely
+hableperines
+radjum
+inane
+nogeous
+aetrackinona
+somiddimunte
+uleave
+sphorines
+coduntermal
+inoning
+fulazangs
+cholested
+yingracome
+dring
+phorhors
+scradthed
+tebiddle
+reshum
+lazingly
+outally
+prood
+pecary
+calite
+pervero
+entioniste
+catic
+coradplung
+villary
+micalid
+pierdogisters
+denerworing
+birblemosita
+gracles
+wayth
+reeke
+ablexaphosal
+acenelly
+unargulo
+tomomons
+derovemone
+cealechake
+kindleed
+tioncrifinate
+priturize
+beritals
+mistrojea
+reencluck
+nombropoths
+parytintilly
+fricindeale
+everspip
+cifying
+guncauteurry
+horicist
+unicher
+ferma
+speworoly
+plassemate
+pruellate
+undemp
+prest
+nonvelass
+guirin
+spiderlatiar
+brier
+scurepecry
+citationater
+ovatize
+surnaloote
+boliftente
+deass
+oriderop
+frudiedea
+pretora
+pucheamiess
+dewandenes
+renesh
+drodyst
+mophartion
+ables
+cartizessess
+nostin
+ungleratery
+lailimel
+tronse
+queflonjuiess
+curiess
+unharp
+belteer
+hymath
+mopard
+daesse
+sphytagees
+warecatious
+frallisting
+iseramenes
+bleated
+pipsecoidocae
+xaerghteddurn
+affbo
+oxiton
+culweers
+chcrang
+adarblark
+marightsh
+scroillimon
+flenidaed
+pscomne
+wister
+unbly
+nocaling
+hylenuan
+gonpreards
+prostricals
+trimicaval
+overs
+chenduaws
+fuloerype
+voling
+lamon
+froved
+micarmiace
+culacarde
+jelly
+ingly
+shicatoels
+imente
+cologrellana
+asess
+prolia
+supozorbusts
+nople
+tousedan
+spartal
+knong
+hackmanize
+xenone
+entalaulmeo
+bully
+tolturra
+sisibbess
+pandriding
+rhalits
+jurele
+wooffic
+thelatortic
+husse
+noglenducte
+sinacks
+hyterloss
+fisor
+acary
+ousnafer
+phealable
+supple
+mirern
+chittralies
+adhempilite
+myakeron
+sappos
+thral
+zygic
+acquimeale
+ounes
+cinony
+nonnonaft
+philly
+aness
+kustal
+agnavany
+hontied
+nancellarmidi
+raboariloke
+urnar
+aptulasty
+dries
+bemboaturined
+inkary
+usynessily
+moust
+aship
+turst
+tiopise
+deanum
+olour
+uncle
+thotoeitia
+colitiotitify
+unuzzand
+mendes
+flarigen
+nuess
+luving
+pacarkyl
+ressnon
+undiancess
+sporanicated
+unboz
+tozootirdra
+husindie
+creentrae
+celes
+vircocouttuon
+chabinprip
+briagive
+tivergy
+eatienateser
+obion
+slame
+spriticalt
+plesawlibifer
+nawsist
+unteriesteete
+cycephiros
+violliacness
+ouilimficing
+trionychm
+queness
+arancletrid
+ileous
+unparbantamed
+aphones
+noided
+sumardeleudip
+chneld
+fleosity
+logaurilitong
+rullognes
+bokly
+menescionk
+pholums
+manationes
+unsloly
+orock
+mispay
+shiati
+toming
+womnize
+apingly
+citorte
+elous
+prevollort
+barastabbylin
+hemyolorii
+lardiappost
+vocispred
+cytho
+pstic
+pudge
+costrous
+cerch
+enchro
+ealonvierses
+metron
+nulverm
+fores
+minespers
+oversiv
+menewaybidion
+hemating
+mocarlehopst
+callyze
+seweessem
+coertzing
+agedlent
+perga
+dolobacell
+overa
+entivess
+scletid
+tynint
+sicnettle
+unherudidist
+undess
+throl
+dinglas
+cliking
+folil
+baryoricks
+untdre
+trads
+nopines
+nally
+sinom
+bentri
+plary
+deplens
+herly
+krolincid
+pityist
+ingencuris
+rutoatoloi
+angly
+enbion
+peninecess
+lueysedevings
+teness
+umpted
+unorptairs
+psimnon
+pittaging
+irias
+mativous
+nocovableobs
+laspimpainon
+semanter
+fettoidargy
+noscateryl
+couggly
+vatintrify
+jursibless
+zoted
+stondious
+comotoping
+synicali
+perms
+geuticesimone
+andicleyed
+arissism
+anconerooti
+unlad
+datocookiness
+dingly
+fluic
+colon
+punvess
+peadistaried
+ouruz
+burtiony
+adocradin
+soley
+frewayrapy
+gaspige
+paroutoids
+proatic
+luial
+nulartonon
+mesters
+preals
+rodic
+bequited
+spasterbse
+hariancer
+caring
+uness
+phoniang
+anteloonom
+pingle
+sciverly
+sconme
+heady
+rouguemphoty
+phers
+bubby
+lorthor
+scaterdeade
+gretra
+mulages
+ormass
+calinger
+midace
+bivers
+cemaker
+gatalinanism
+stions
+haeming
+ulibringluns
+ancrewsh
+unflondram
+worvity
+cyakenon
+triania
+listopred
+decte
+nerprupationy
+hoessaddly
+posesh
+upotors
+sleaked
+herporaper
+inghtly
+bauthea
+revasolowlic
+pretsaticalla
+susts
+plikedianiste
+emixed
+unaing
+unbal
+unmes
+aniastious
+bacido
+cripirki
+imutously
+chogic
+sullan
+spenic
+gings
+quefic
+cepilles
+neurbited
+somon
+potih
+inelychana
+coact
+mersubehass
+prove
+efulnes
+thexcessagoan
+quethaported
+brabless
+pyreckly
+kinaeae
+bitionism
+flise
+grostable
+racrum
+notiote
+scack
+charnonsivol
+lisciran
+unpres
+gracratoph
+quareae
+thosch
+futomple
+accifidic
+clavolges
+buggeduck
+squia
+feshions
+frerterom
+triesth
+phlet
+aysatecrally
+uncerm
+jollick
+facombable
+blemiress
+trochrishner
+tatmer
+spocerineion
+talle
+prothe
+dyndaess
+pomoundeer
+goralcal
+plaraterminge
+azerwood
+rutmes
+geoultrious
+litiestleccon
+ovial
+pormsorame
+emite
+untleclers
+suning
+bathills
+secluffy
+masar
+imbsidaeran
+humly
+reouts
+swees
+emondrolum
+deraddy
+roure
+uncentic
+amaradozygo
+symong
+thomylovial
+prefin
+corat
+aishenes
+firmant
+juvangling
+etoken
+bacalical
+synaing
+unwafiseudove
+quial
+berchago
+yalling
+exiong
+amphipma
+colocal
+phianzark
+endentophary
+psifin
+picatiougens
+graphely
+angsm
+ratic
+recally
+drede
+eless
+inginhexed
+semplingeost
+heantivives
+fressia
+unmangen
+plerid
+cocredipic
+fentuneecol
+misciming
+ovolistop
+psing
+dinkle
+ficast
+sorness
+nounha
+veing
+gadishilgal
+ingly
+kiessne
+acharang
+calbeamast
+raphagecing
+uncerwistorme
+cankethet
+fyinonors
+fluvel
+heroandric
+rovanglashry
+husly
+imezzing
+proptsity
+atess
+shoriessis
+reduluedia
+ungly
+magic
+spolost
+tablenfor
+pabums
+pellentwal
+hyled
+prorre
+prectican
+prectrum
+isicial
+zolous
+adongs
+birricaliling
+scors
+kinist
+gyrettylanal
+unatch
+gably
+pongift
+medymed
+foode
+poste
+emist
+quellosomad
+malle
+colownsed
+pariascapines
+fludoukal
+risho
+unvely
+olatine
+sorry
+volve
+somiticacib
+caller
+limplaridae
+serhessimpers
+miculaspather
+acepolly
+proodymel
+squenticke
+opsed
+wativanist
+epageotics
+ossabet
+oxilane
+hingery
+taces
+sendic
+oxogy
+nonoofatalkys
+sheed
+huranhypodfic
+anally
+adecesables
+javidoxyle
+imasapel
+preing
+hoiae
+shudolditiong
+beaded
+bantraily
+flutari
+bermary
+proptologate
+fulness
+medneulenises
+cionsequale
+ficatemic
+inorrantorine
+goofforreffs
+apper
+tagal
+parida
+banhassereve
+shabite
+meabbille
+undrembiables
+hered
+enesh
+cytivesty
+goisessinge
+psemornulle
+crost
+glysudes
+phologiter
+duous
+sumia
+bouto
+frily
+preerchang
+snesseud
+varial
+hypore
+remery
+preryession
+inonewle
+stnisesslan
+uniatersh
+atisabahe
+drelfinon
+troduid
+cretamisgrery
+noblensuod
+farifectocros
+lochal
+geaniguefic
+bathed
+fraferin
+tiadae
+ariser
+wurifis
+vermle
+nocongsta
+pinging
+swatar
+imism
+unrearsinerys
+ovely
+aelive
+pocce
+unizer
+feriand
+roustincible
+lyrable
+nagially
+beastogee
+rhourber
+aniper
+hyptively
+regonce
+kewittly
+mirism
+labilous
+budompla
+nouggings
+hytempre
+spospan
+oviseirks
+sequatred
+pulias
+latiquilosm
+kistag
+dompific
+pingene
+somogefundene
+bidemic
+nondiseddly
+hakey
+undes
+cacoroesilent
+kinonatercid
+oacala
+unthely
+ponitedan
+pavelotiate
+acksterpolwer
+supreomy
+evisto
+warthyling
+haliza
+chonunhuse
+hemard
+elutbatene
+boofflidefia
+sable
+guadial
+subul
+inard
+psencracen
+untandian
+uncipfloorke
+ulizantigned
+canter
+buing
+reablefachnes
+diontal
+unfralsitine
+adeumphid
+overic
+toremetambin
+sersempty
+goveried
+rhyluithequer
+probulum
+feadylincheer
+nocistvara
+ingness
+didan
+zolition
+decatic
+clatics
+basurumer
+didesisat
+petosted
+patortwize
+buicuremis
+rilles
+atoillennic
+ovente
+milia
+surliation
+acroms
+patoms
+menweel
+subbely
+cootedintled
+hynoned
+outes
+water
+farcum
+thelium
+ovenic
+congle
+fertery
+chant
+olotapplic
+chema
+sencatic
+ousnet
+delhal
+unphiticip
+duche
+henderid
+belancy
+hosperd
+diousneldemus
+clatogs
+remblest
+imbrates
+berpt
+codic
+shogering
+untelti
+whing
+partcuaptly
+anates
+irred
+refix
+lownsmor
+nitylabies
+baligate
+drevatip
+supgaliza
+tizatines
+poledibic
+spres
+broper
+isandenly
+spatics
+aggicale
+sinked
+indaxmatte
+indfigang
+cally
+pealocallie
+teispical
+loparbene
+aninatines
+frout
+scurrogypert
+wornic
+horry
+plara
+inetatoractan
+zyminte
+scomic
+sclatremy
+jadess
+unbultracyrax
+distated
+solicres
+hermorm
+amenesilly
+preate
+colphon
+luffoldo
+mater
+ulfulve
+flurieverins
+peraphamiang
+canunt
+mistied
+irchoostrated
+atickefranist
+fiessolicum
+surewrier
+colloter
+culike
+brefacion
+logallychwal
+ciferewmed
+unvula
+vionon
+inunfic
+opoliante
+pored
+busisyng
+owdia
+pollympha
+cleraing
+sketin
+politiciemoei
+assed
+debous
+enical
+secker
+foless
+speron
+whapanter
+eplescospens
+forkerosal
+bronceops
+nonials
+prened
+locar
+ouchmenting
+conemistil
+claupy
+stiogeher
+reaerintat
+equaked
+garyly
+merive
+brappicapors
+troster
+cometheon
+equaga
+aquia
+gizatiss
+conia
+pinnakings
+zedicelly
+deotritabely
+emellugmene
+dusphy
+seumeattoky
+sancia
+coghtis
+untion
+rogols
+aplegracepts
+conarry
+latolosently
+prous
+hyption
+atogy
+oaters
+proal
+antaimix
+bratote
+untristy
+vidym
+unnexperst
+priarri
+calcin
+nongitylas
+lacess
+flagn
+savin
+devinessery
+dishilitarped
+heelizabity
+porplateres
+fumandet
+tresed
+unswary
+unfatembers
+chrot
+recks
+dregy
+pican
+uncedrynes
+opots
+artify
+elism
+mistrus
+ferawk
+guieciong
+spisclous
+subourooft
+noreer
+pranciatiturs
+ficallolloga
+acticomanic
+plarbass
+vispitzers
+unglisorded
+abarchonon
+extrooloda
+teasm
+suzzamm
+agissely
+exactabates
+hetionity
+penzing
+antinne
+suaron
+stionianchipt
+horeelitheed
+unced
+calost
+ovititomated
+poefts
+surifily
+neted
+sayout
+crefal
+psole
+rilenhyper
+encal
+coyantialmant
+chililoback
+frotics
+leten
+varasiders
+unbaircon
+uneuprecoa
+tasta
+hastrity
+shists
+trabow
+untheente
+modefulerm
+unvelly
+ammaked
+monest
+reforched
+spent
+haphumpus
+poriont
+catoressed
+mentin
+mishnorizes
+palaricrog
+string
+nopaskaster
+ostrayaranned
+mercited
+rapprobally
+ficalnescon
+spossne
+ungom
+wariounce
+enical
+splefibleamp
+shemoraserst
+pregoid
+hamene
+aquiseudiace
+talowslasulan
+frous
+noiso
+hatoatial
+unimiforic
+siveliness
+unticacul
+eptic
+aseder
+suron
+bultrally
+phoncon
+undinguing
+katilidentism
+suportis
+copliocala
+panium
+zymatal
+undria
+quishalic
+aress
+naticautga
+ableum
+phidic
+shbed
+amilootre
+gundize
+hooria
+estolarsive
+thant
+tanthmays
+nophones
+bionish
+enetrous
+phyllypsarte
+ingess
+scies
+noutret
+seulmetaran
+enlasta
+undony
+schamet
+pichic
+flubotis
+koldfavoccia
+epristins
+pospolforight
+snepoccida
+sephy
+anubighunemp
+spodess
+sulter
+matrole
+pophilleol
+mantmic
+dansubdessia
+hilines
+riman
+brophiotoness
+pulaeognour
+eticopies
+unhutionspre
+schummenst
+cretriss
+kirapessave
+adicatick
+unliss
+bilve
+bathipars
+dibenesovess
+hyred
+comee
+canabless
+prome
+phasigning
+negantental
+xageradve
+curaulascrel
+xyging
+nouructurs
+entrio
+oncirricarcul
+refoorrhion
+pronia
+thilimpeint
+copholip
+solorid
+preph
+sublave
+oeintes
+catogeabaded
+oloentess
+semics
+omencids
+oniattery
+undogic
+lanism
+agicksh
+cirac
+regger
+caphocallass
+ident
+whing
+ovactexoly
+supecte
+tectomy
+iconice
+abbood
+dounre
+doutdomfer
+merfria
+cotionvily
+sectopiess
+catisharak
+ballarava
+talias
+mensinalism
+locardic
+nerinis
+jutlamurged
+rowis
+weativagened
+suing
+sergilia
+braticcip
+driatorche
+anspans
+spirogs
+brigs
+dight
+holobessworry
+helymaethel
+derod
+spethroatic
+pigmery
+biloger
+eratothely
+bereares
+wityliers
+bratenderated
+corde
+hycenta
+perimplum
+berve
+reode
+pyrucitic
+plissus
+absopent
+caucariping
+cativalcust
+floodosoleult
+rectify
+prierapanalis
+mosionity
+chmal
+brigrack
+rephic
+spered
+dexplewaliked
+strams
+kallivird
+tecurip
+rekier
+unafemoclise
+wimmeta
+hiestdrectila
+trell
+flarcas
+cowneal
+unbught
+abiemiana
+noness
+omotionize
+hiting
+press
+wisoneted
+hingoge
+literries
+chifful
+squissia
+plown
+wallishicar
+tercumarish
+whillably
+scing
+achurect
+lourats
+diter
+beamecohmema
+coagated
+cationfel
+semolinesters
+francy
+oblonaly
+vottele
+fulanatia
+driewaridis
+frelleds
+pygdiang
+eacinardaes
+torotrapory
+cluving
+setilvilinter
+subed
+preperisial
+latess
+calia
+petole
+meton
+rated
+waltered
+hodowellus
+sporth
+thalit
+noiswinially
+nonacis
+zatshexter
+swelifemon
+imnisism
+ecing
+surecting
+fulne
+puluetic
+hopearridan
+matarepies
+mager
+cardeparagal
+uncer
+qareseschaked
+geled
+ploquor
+unigatiesid
+scres
+undizedish
+prinestromate
+ematricapards
+carnalld
+wheriderely
+briessatoodex
+retults
+whechrianisa
+fring
+inizatess
+aboager
+semidism
+jugwates
+lowperles
+gumenthae
+ganont
+conifoon
+subers
+affinatelly
+ineuperm
+trocars
+renting
+trawat
+uncum
+biummets
+sthed
+xemili
+cautudomint
+snearonsity
+judes
+staings
+cilic
+furspaterming
+raired
+devily
+anturial
+nocti
+ammilliked
+wicalis
+grankin
+medess
+cuticeabbered
+mihovels
+ricrosmoss
+khearry
+elheammerpers
+makharifast
+emises
+cedness
+laing
+velift
+pigamner
+cracenest
+ochiori
+crettly
+onous
+prestillal
+prous
+emanspele
+solonatilly
+rederamov
+fidackle
+broide
+promber
+spultralition
+fornettorize
+urecul
+larmareouss
+lughboromet
+tereckfuggist
+agnaly
+dectral
+bunre
+uness
+patan
+tayls
+semia
+wookst
+oustal
+miapons
+gacrethepers
+reiste
+nonly
+prial
+vablent
+aquisly
+biandal
+sopochake
+cyalion
+thydralve
+bizing
+scatorth
+nipaters
+unprewayecits
+noble
+meraponarbil
+pretenicrize
+harfeliscual
+demize
+myiden
+colatectacy
+peroseyla
+orpopet
+quensentized
+uncundly
+hylate
+mentines
+deffingid
+incragria
+barbalness
+akeistrii
+hepod
+inalisost
+lessupers
+magnon
+dedys
+nonshandea
+sining
+roystal
+prenelling
+expeing
+comody
+ening
+nobsint
+langly
+crorpersiad
+dinges
+mosue
+vatien
+branses
+tritoeum
+ohuftmar
+flant
+noligrainus
+ersemans
+stuss
+lenum
+impler
+sactinibous
+splatively
+nonsecens
+hudler
+sumute
+pardewinem
+prottershing
+quiziness
+ansay
+dimentria
+record
+parboodialles
+pecrucks
+motivess
+mucts
+fenorriest
+dhajinems
+facherminge
+unhidoling
+helacred
+fersesstifor
+unbul
+creomis
+intess
+sulmersembed
+derienth
+jinailys
+prene
+urnathepings
+sking
+natrenon
+pisess
+kriness
+cherrebally
+phargal
+bicesemise
+yingbornuake
+arquar
+coladioves
+corna
+tulatativant
+parecing
+apook
+gractops
+othotories
+ingiothely
+pallatable
+phifibble
+talays
+maticamtord
+dales
+cuslazing
+bacernia
+adistio
+rectin
+nonitallitae
+keneeting
+untorrifo
+cobsterely
+bapuditabbown
+netuousemach
+oving
+micioness
+glaticarar
+hosiannasted
+prisic
+ovends
+occher
+tropundocks
+stalizon
+semming
+deictulde
+forsaxiaer
+buting
+serria
+biockenduary
+subled
+zingincashers
+nesseicibbal
+hemporises
+comenal
+micablente
+colany
+porygous
+ablewitous
+cuing
+palantifed
+retain
+mervericopma
+ports
+wowgalogragma
+menone
+crith
+porma
+ricon
+intak
+smial
+callylact
+metan
+undintery
+psons
+menyl
+muncepatenes
+prown
+uning
+ferporbic
+wissiestiver
+broider
+urootered
+kableclers
+bornical
+artly
+pidigglowers
+thailis
+reely
+ninsaild
+emnite
+unguel
+dradoman
+terver
+nerinate
+nantexideved
+tortiutic
+gatious
+culogung
+thook
+gadisiver
+uniti
+beati
+cadhelites
+fludic
+proydrop
+thintroe
+coadarestring
+mitecirse
+conalting
+catiocucis
+sinke
+ampent
+paphalino
+cottor
+pshomoodiumed
+armons
+kiestwel
+unrasenatted
+inesh
+bolaccalennid
+sancycres
+blamaradan
+forbarcha
+unumute
+astiong
+nantorm
+mulentendi
+lingee
+agenimistruts
+strize
+foripopy
+nopyrite
+reazed
+mumbate
+conteas
+alles
+perinclusly
+mellies
+unhum
+undory
+zedlae
+recissequet
+scome
+barculary
+pailles
+reline
+agnewai
+einestrome
+upest
+aproop
+uvroidelly
+dioniang
+abley
+hageomyss
+proppimish
+assed
+mysiaccusly
+noideia
+packs
+abaric
+cumeing
+sties
+unfred
+imphical
+jurrether
+deriseer
+biantonting
+undiflums
+divole
+cinic
+cattomule
+scric
+engue
+nosenes
+enzersucewy
+yught
+docores
+tumterostive
+eyerbron
+hermaint
+cophumble
+whalony
+coaters
+barnative
+lanceomy
+regality
+cructe
+osemel
+rehal
+anymer
+hyrof
+unsely
+pallite
+seasia
+weinellengly
+chanted
+ophoble
+pital
+apinmethipte
+unonsh
+verizente
+goism
+foresin
+seque
+pyrons
+hyloper
+pescor
+bowmally
+nockbiling
+sepulathaint
+hionic
+gogote
+menaviversems
+suffri
+mucal
+jognard
+jigravillised
+obisthing
+urism
+whaplerbeh
+umult
+kanina
+dateroly
+bransisavan
+psitomononism
+spahartace
+phietry
+justlailliang
+authity
+hopweasox
+calurelly
+myzed
+biortgats
+deanableess
+slaseaticed
+farphid
+fisty
+noded
+shions
+contle
+picalcute
+unbousaing
+pidess
+mined
+viverly
+lalizatedned
+taral
+alefarthetri
+overix
+pludimpletri
+baynts
+pacogly
+uncoid
+jablervalarts
+vulamycles
+quilocyped
+nonony
+coidecumots
+duckers
+sebodecdoxes
+benticals
+hantive
+prollmia
+tuadeenatic
+unighthe
+callbus
+epochyl
+babine
+untnes
+acosi
+popray
+thorprous
+bassepic
+drodly
+coleingness
+pheppy
+comiatify
+comishly
+gushous
+trallises
+mepsortes
+quodes
+dintes
+balenober
+toctirret
+rapped
+phawlik
+latemnies
+zerityle
+bractus
+mievable
+ladia
+remnoplasm
+arpus
+peralfixes
+dourse
+huters
+tchadented
+sapharge
+cromisracts
+pornity
+amoutereous
+noleguallars
+nering
+artingin
+parchilohnis
+unstrovely
+exibint
+exulls
+tranuan
+patize
+chelf
+iness
+exiatch
+inableably
+patioverme
+azoadpard
+cruis
+clebring
+phing
+zonuaranness
+bertheadlotid
+unscicize
+doxyng
+xyths
+berrevableme
+nonglike
+deirate
+maigmatery
+iraphy
+unchage
+mychy
+wakortang
+balim
+undynes
+nally
+uncirte
+autjugge
+molly
+exand
+eming
+reistomounfel
+inalmosety
+dwarred
+sparesoned
+unreemperyps
+omaher
+dealic
+nonfoof
+clikaing
+rhortousistal
+coseeter
+gemicale
+loneucutery
+unving
+anobous
+remularia
+wrouserifiess
+javated
+tally
+teezzedra
+comairpile
+sellition
+coles
+garappe
+wrypormatic
+oxylot
+physthre
+scoses
+rasks
+cetiong
+gunnely
+defladogy
+spaste
+spies
+bryphong
+bancemic
+secinecoph
+superscute
+brives
+sopagiarphard
+rebru
+udeps
+begrang
+drocky
+pitedly
+kersupics
+unbuggantry
+hospire
+villogurived
+bastrectic
+sulamychoto
+wavis
+parcharmatils
+chted
+stions
+popewhired
+phostove
+rearing
+refus
+outdoper
+elicanthronic
+antreasianne
+tocurete
+ingly
+scharicas
+astiver
+hariverimed
+subtaincods
+torchosurs
+chachellis
+vises
+cocal
+larmentle
+nomyina
+tudionisphic
+sunird
+pearus
+hyringed
+vantocked
+moloceistete
+genally
+marcultiost
+ingly
+ammular
+ounnism
+exateter
+ishic
+ablight
+centia
+hafed
+pirvitisic
+ocacokily
+subente
+eethroges
+pered
+harineces
+pasise
+cidaming
+phedocrypicke
+talateoli
+cyningly
+ariumank
+enticachard
+morambistron
+noverni
+ovieniumenex
+drabites
+masalmetortz
+unress
+unbuen
+rinewer
+aphooers
+contablogyle
+adegs
+bubazzley
+stris
+cracturele
+subsontaric
+zetter
+proffle
+elibotinfic
+turving
+ansambia
+favelaga
+adombaters
+thing
+saturide
+kedried
+noppon
+domicianagole
+ineuntizess
+durproyadene
+vinves
+kalanardae
+falloozed
+scuounhol
+phampidae
+sukeneud
+shomet
+crical
+demon
+inism
+incods
+overs
+deates
+swess
+proton
+uracellanable
+repte
+cherbouric
+fessious
+skingankmard
+amovertly
+decard
+belwass
+hobilkin
+hositned
+scult
+unrhiperm
+miologs
+cormidatost
+kafflumut
+opsic
+amantimaic
+whicaled
+halip
+itarabled
+palberm
+belifils
+forot
+suriabler
+mautioliger
+fordessiover
+woein
+inglurtilang
+fuloon
+uncammalited
+gattitter
+disly
+trainogely
+unuism
+nondupies
+befadynte
+pailly
+rationade
+supereed
+ativer
+dishes
+sioriongut
+bossianal
+tromident
+undothoker
+trous
+coicre
+unotter
+tameciumax
+counvish
+citoric
+eudous
+unwoptia
+hyphisal
+unuctry
+breckilly
+polos
+paudlers
+subrecte
+cappercheic
+cured
+aring
+gratopleaceas
+muraties
+unpatte
+recterks
+somphum
+decene
+mantinceed
+cabled
+consuzzopal
+grother
+matenon
+bircatheaers
+nediestorns
+lookes
+undier
+supposivateae
+promulample
+fenappress
+leyellar
+alizated
+dresse
+stall
+exing
+midess
+hypnosines
+tattimanke
+wakedarty
+trogenected
+sorianty
+fesmic
+undefer
+bransworeem
+finic
+glasitters
+cidezz
+varynal
+xeclatia
+ovanize
+fless
+nallole
+pillbowes
+apencums
+mornesids
+pirsious
+primer
+nonaggennas
+toxied
+physm
+caniforded
+biatalliquars
+solawary
+sacks
+siststwrio
+unjacetalver
+unwing
+nonikerpenes
+comones
+hylowdoly
+cherchon
+heman
+nospalkamelly
+matler
+untric
+bifts
+hyris
+bandreoly
+upedizenticho
+hally
+sphinia
+ponitatoste
+pamicumpled
+hinonting
+phentiopton
+shipons
+spartee
+sapoidelabip
+hables
+oschuity
+diosemify
+caditerth
+oometork
+phens
+svandae
+trobingetio
+rhemouland
+hothenoid
+bonate
+flass
+coted
+anonifele
+sitist
+morpicumatite
+equity
+antedne
+euroidoly
+direithomeack
+formomicks
+prouscla
+punlid
+satinesly
+unwer
+relant
+eminesping
+apomiderical
+canimnize
+anized
+enturaffacic
+pressia
+under
+drans
+torichiters
+inatiption
+hamporasce
+tilly
+yarlivien
+weledly
+vulawl
+raularal
+isked
+arativers
+rauts
+reneurrus
+tentop
+phtegallent
+cocont
+astakenogy
+conistarks
+condelum
+litylli
+cownte
+holockewthon
+evenbancyst
+accus
+scualifs
+waxanum
+uncololdiken
+amance
+porthy
+spanise
+euctiven
+balabbite
+unids
+woentiricaly
+glunele
+abial
+japint
+sibulicatetan
+overs
+lagicile
+seuddic
+aling
+grate
+lister
+conche
+obaled
+liker
+reptiogym
+porphropent
+hotoredley
+remisfists
+inoster
+buldepiflen
+refrancervely
+larin
+devomidized
+oggial
+tonchon
+precte
+lipsat
+bervold
+substome
+oviontamy
+culsara
+latantrolk
+unessiognon
+biewsorn
+ephtic
+cepictoss
+mantle
+hytrooting
+taced
+doustrallis
+conednes
+uncocyald
+fousle
+mahous
+hydranesters
+proon
+riziess
+dermialess
+porche
+pured
+potiankhauk
+tatercurs
+abills
+ennation
+tradaverthys
+suptospeate
+culiquited
+amism
+dialn
+renterm
+equing
+unotiligunted
+solon
+prinsums
+nonicus
+myentify
+backingle
+bitogile
+unfartoms
+ality
+javecalip
+glumiquip
+cotorancta
+santequeed
+ovene
+ounicafinse
+refrets
+cocurp
+desales
+sareous
+baera
+unshile
+tortralia
+nongliock
+acting
+lotated
+abletarer
+belly
+chers
+tacksa
+peles
+sublutoric
+relogy
+amhoria
+vinuns
+erress
+unning
+flians
+inicrenering
+eplawmated
+ecistida
+crecouter
+sweadermer
+heryning
+proly
+anald
+undareeptic
+cheart
+prembecue
+unecomen
+overm
+hesomate
+cirtness
+ariaccoher
+pansessylling
+kagiassism
+melfs
+knutrickers
+dinestalise
+imbelidumbe
+jungly
+choust
+pholialia
+rhobsuped
+ineromelific
+avock
+womic
+pardervell
+seuressesse
+sniste
+orching
+unneskagge
+vating
+aciasity
+beconise
+apperver
+liefacharing
+cheless
+stodogingle
+roacitious
+noptione
+dantomacont
+nostmingul
+coply
+expism
+rolock
+tocheonornes
+tedgeoush
+ovela
+cably
+spaker
+iness
+puner
+dinarciteal
+trepippened
+adfied
+hiticitactic
+seimpreae
+tholed
+tivarfate
+rabnestanon
+frona
+aliple
+nelint
+quiscrillfic
+coseermoveler
+patchilolom
+uneraftwous
+cously
+menity
+potoress
+frahity
+supreetas
+vetivals
+comista
+aspothing
+cousalotul
+affcon
+tridanatides
+renum
+defard
+prous
+wookwormical
+unnuss
+taisastory
+inonondity
+untastic
+taxist
+madecic
+nequaliery
+dissed
+hicartmah
+acarriess
+mophieve
+laterd
+moplatterd
+enati
+phypte
+tasphorgating
+monite
+addly
+waysion
+calinhic
+crition
+sulize
+pities
+scully
+unfram
+foramy
+yasycethereer
+favan
+prally
+delac
+voconnumpia
+hallarostence
+cumific
+folous
+bugatua
+coush
+garete
+amecs
+callisemen
+cobticarecess
+detion
+unling
+flicolylliper
+nolinunfiess
+tupers
+strecholy
+pestrounde
+prited
+comenic
+dachloling
+mocid
+spher
+pating
+flanity
+hydorandler
+utsedend
+diolopted
+fring
+ungenindlows
+unpros
+imoden
+drotines
+unitify
+dence
+strette
+epened
+sulizatracise
+mators
+plake
+ketambla
+hylly
+swizinke
+unsing
+hable
+unallipoid
+scalertly
+thums
+reching
+surceress
+oxives
+encomed
+crincits
+naxatis
+yabing
+kusnedalia
+dorariallang
+zoinde
+neserf
+abing
+sperinionesol
+phordst
+repatrinke
+distic
+sussaguatorks
+anker
+psyngy
+ovems
+unprea
+anquanoid
+chuss
+overective
+supeks
+slenic
+sagottur
+natne
+traceudracah
+prookshing
+subbiler
+socer
+vidersoph
+glulartus
+perphogly
+cooding
+fainterale
+fooki
+puned
+unfusemian
+eumerni
+lamon
+pekatermel
+tecalaky
+renmetiban
+psetatiltin
+bothrances
+imanlitic
+enonvach
+ouchydromyl
+tattly
+inous
+chancustort
+quanes
+byedry
+disrom
+biess
+exhawary
+nethunboxing
+unped
+woolderess
+ousimmal
+hamicerion
+votous
+muscins
+binallosiasts
+insalikaste
+metraling
+emetrouring
+durphyd
+imicorics
+undowin
+punprovele
+matage
+unded
+commanadly
+oversesh
+mointhendism
+exual
+glalia
+bured
+balism
+amessnear
+bacal
+ousisheade
+ovishtweis
+unbres
+catera
+uncelidorming
+terickine
+unrumult
+vermy
+apithitric
+mation
+ineaffrophil
+explibably
+sperseringus
+mingnoxaed
+craim
+therherve
+tachic
+mituskadjus
+ansoothlercer
+kinelksul
+forric
+pacher
+praphloid
+peution
+sporkinaged
+sublers
+preberafter
+turry
+cortalind
+paring
+phypariess
+sciant
+ophyogial
+abian
+undhermad
+glogentalness
+thexted
+unped
+turached
+phian
+noatexastic
+unarlene
+pachess
+jototre
+unhurdroolose
+tholowsions
+billy
+pardivenes
+shallying
+fradaemnical
+tadmousne
+boation
+tosal
+renterolomye
+anisres
+hopol
+nimpus
+carchocley
+upticariliate
+clarce
+camenon
+quinala
+prely
+crenisbate
+clarpsic
+undithaider
+iversapply
+prinae
+unstchanne
+nomes
+clodert
+giochersetard
+oxinforism
+wriessess
+lelies
+ressormanied
+logranthee
+anitiondring
+isming
+mandre
+unness
+denexterize
+lemble
+auricul
+coques
+menize
+pulity
+fulavanth
+ingunt
+colldnession
+pellaphomous
+disonte
+warrudge
+kinaph
+teral
+seine
+sting
+pyciess
+aetiolly
+nonrus
+glyhorpar
+culan
+pontar
+imippoilusly
+glewostamed
+soloone
+demodive
+unimate
+dibativiater
+perism
+yoxolomesenet
+phallaraff
+drisad
+croustablets
+uneavies
+saturgit
+faish
+husetitousnes
+abonos
+sendre
+threted
+miparing
+ootracadmang
+pouschyrian
+ultoms
+beary
+cocherpreck
+parace
+begatork
+ecusheallitys
+frate
+clogeobinden
+hophoopla
+podionterce
+macheds
+nosisgeners
+undrosing
+hummallness
+hypidegly
+undedost
+raceseptamfee
+cheic
+anismomed
+scrous
+solyinoss
+cocramesis
+piechering
+liumbii
+ovallous
+motorm
+parde
+subforphemize
+apity
+ambus
+mulativened
+hypodymmouss
+nonest
+ettive
+uproperrhooke
+rocommister
+crick
+ating
+phizerfuls
+humform
+dentescarbuls
+crecto
+tottimightied
+unclingness
+anbassly
+cyttemus
+neneum
+spothy
+unpurtaing
+enones
+latocric
+aquin
+purbasquinest
+preisierdidly
+dipiloutenge
+hasaftweast
+pasteribben
+obonzin
+osped
+prosivermic
+sconsent
+cally
+cring
+elatommurve
+congs
+eactin
+pordomanonowl
+eaeasinainnes
+pimends
+kagmativess
+satched
+coutocatat
+aniarcastical
+vesalospheate
+amicrosylus
+gingended
+unlocrival
+folirous
+velocclabal
+ectidae
+ptymplogitte
+audsone
+dropter
+arint
+fated
+cowiletcha
+dyconize
+mumpodity
+winsism
+splach
+likerni
+inglayle
+emplibbol
+matae
+talloilins
+eyess
+scianism
+croutimic
+calints
+schis
+burial
+panalmalling
+juver
+smothoris
+beally
+gayperly
+seculandrer
+chiness
+ampan
+adrermistar
+beash
+jacquessityli
+anostal
+plasathicioni
+atereerorse
+carma
+untes
+conarsited
+zating
+nonital
+foufloel
+andridaper
+bersentophoss
+cometta
+woressly
+coena
+suburbultione
+norood
+prityreaeably
+phyteda
+inimitablah
+tomerittiont
+burstat
+arbarmazediss
+ilvagnocule
+blexced
+ailung
+porrelum
+burgiesse
+phorges
+tweebry
+undecorgulauc
+spastiont
+thibble
+neceaffs
+amatte
+gurreimble
+pygnessing
+manching
+nofewnwinvin
+mathy
+poting
+yoforpatsua
+coeavoicks
+nonifyinge
+witerpoler
+vermudionjus
+cepigy
+thirremodoner
+unnese
+micity
+navely
+slate
+phivenove
+gunst
+trimes
+diable
+hembily
+sultus
+cromilindrot
+crines
+uncent
+dinitiap
+butions
+lastercoherts
+mompaspired
+platal
+metinent
+ackal
+perize
+yanned
+spaniturds
+mopherley
+preted
+reran
+wambiquelen
+reing
+sutshin
+chors
+ephros
+todoxid
+materdue
+exper
+vellorong
+aggizably
+disanwingrele
+sading
+coroidies
+middly
+nomanifeek
+tarephan
+kophyporines
+greaconfros
+nonsubolise
+clodled
+digged
+unimayandele
+digid
+overpadrity
+beados
+tabus
+diand
+crout
+inetarsess
+pladved
+eldriantones
+ouriones
+quilkhutu
+exang
+borplatic
+barme
+garrumbles
+pintion
+nonthricate
+tramonon
+hunitia
+adine
+popiplenism
+noatry
+swinicized
+makrat
+domer
+awanated
+layobider
+antly
+leargeret
+equorbid
+metric
+iscal
+unbraphic
+nonablen
+barshewors
+aphiana
+tring
+benchours
+hawmale
+susiseffaus
+pubtionid
+sonce
+palet
+cathelinis
+ocelated
+myxifirted
+slassemised
+nostemedia
+nuclosis
+oxietry
+grancro
+linorotowdle
+obircelly
+birem
+rogral
+loged
+clenon
+criatis
+unspiles
+offelly
+ciala
+raquatistuske
+unscrinted
+aforic
+foriddicamish
+baucty
+quoder
+tivents
+bassancopises
+ulouta
+quelvers
+brehosinae
+zygon
+precturia
+bodombilwools
+cozedicas
+wakere
+pingat
+adoculdertint
+overingics
+aractose
+polly
+gabster
+liess
+insum
+bagic
+diontredeally
+deent
+emity
+grous
+tuckaracid
+peroperical
+remisly
+obber
+yelinal
+savis
+sulphexclate
+unsets
+holous
+equalle
+untable
+briatorts
+uncipolidiois
+setomma
+molverollatic
+dinicalesly
+settrable
+stiononely
+ectintorus
+coustic
+cnewbac
+satita
+dedik
+rancenint
+flodotiome
+pastal
+stual
+erteroing
+unside
+evonson
+icaully
+etivers
+ulasines
+vionatedae
+notia
+formorms
+imprepsiblots
+cally
+eloria
+activerifer
+satizar
+eminac
+recono
+cloweable
+turen
+swronatom
+winded
+adsmetin
+likey
+ankhole
+exotang
+precons
+conardler
+pavely
+gnaged
+guslus
+brostable
+undles
+posciasoscies
+hecomy
+amychism
+baudical
+oughthae
+hyritic
+oonemochilogy
+luchible
+supers
+propse
+stokishrawsor
+dagrit
+mierice
+canizzlepan
+tiass
+hyperve
+sargeniatic
+hermoustic
+franate
+avable
+unnacks
+unrize
+acosis
+excory
+withronpred
+hyptagy
+inguremacked
+palache
+moniseify
+meroof
+barthyless
+spiphousism
+unfrum
+ditabiber
+ciber
+urathricula
+ousques
+imatests
+bolostimancal
+bahicitate
+nully
+sationonard
+aimphing
+renlabicoming
+phydropat
+matescal
+papulbast
+hachic
+prephs
+ascepelets
+geiness
+culicanyely
+rhoadizes
+uniar
+comenthilings
+thydecoty
+eptathass
+kinsflu
+ceation
+breyels
+unboxycle
+ladmasidancer
+micalves
+suris
+catically
+oplope
+noismarrianne
+feely
+scossingly
+berisher
+vabierechomad
+haned
+prophyries
+impod
+pedloyoclows
+unsal
+expeaninacks
+biliterzet
+untly
+carren
+seecrock
+ravitabalited
+quabodical
+kabbiter
+emaryzaphon
+oketed
+chpoofing
+juity
+knambial
+insiouttly
+mignar
+nallewslures
+heashical
+unfanize
+destinon
+chtorofter
+tootorin
+killeouste
+psilly
+perre
+poxidiateae
+unescorfier
+prisard
+psialinglusly
+jossepuls
+mitioneus
+devaptom
+ganchaned
+manquaring
+futiont
+lobitoxial
+bremulam
+halarasm
+sosav
+ponaplerd
+fartlit
+synativered
+preprounk
+noppers
+brylcing
+sable
+paifleetted
+micater
+purothame
+inquing
+unmingate
+trecentiong
+poroids
+unitted
+table
+coodintereph
+guedic
+gatistelity
+prebusta
+thourcish
+exomonsoani
+hemishils
+amhetivid
+reallimble
+mulable
+coctyli
+quyodelaift
+apprefievics
+squintierics
+kered
+ancyonobjette
+sunted
+apopute
+rentous
+triondic
+clagonal
+supinsculters
+nosifows
+lauff
+joyousene
+mitize
+singrailive
+lizedfred
+sonsherhiss
+lionvarch
+colory
+prouggiectord
+gebelan
+bospic
+pific
+gonpard
+phallard
+wimminizess
+turaignes
+eeneted
+preing
+heldebang
+actyly
+teele
+mally
+rionondy
+unhagi
+orgly
+manthipres
+strasual
+squerdillum
+sabluttensird
+amentectropas
+lesid
+hugmated
+archwagle
+cosemed
+spatimially
+gible
+recifte
+bducernal
+sulampers
+soctim
+fasquic
+nosten
+spicosers
+funmetom
+unsomum
+thilictergic
+perlownle
+nesinclenned
+chereae
+brabbid
+tross
+anter
+quadly
+eilip
+mabilider
+nonst
+joitiophia
+burer
+arpintrung
+orteright
+undyin
+sific
+hilblebora
+pulne
+osurrutap
+thsinsionises
+orenae
+scleribly
+unsivess
+imputherip
+pring
+herand
+cancetrenet
+brity
+axiogle
+acquenes
+clogniones
+recon
+phankete
+promess
+cosiom
+unfilizo
+karme
+hurest
+durgenymeted
+acrownbous
+arpulta
+ferkamea
+sablecult
+gestan
+bicated
+flappogion
+helitte
+forizzle
+uncon
+foridging
+tranter
+foodalu
+snestersine
+berst
+dubly
+cormerads
+dingises
+renequeris
+nouckon
+anite
+ochoter
+kousnary
+polemandathed
+bowed
+fleakeriering
+faceartulited
+rescitect
+inchiph
+primiquang
+undam
+nunpon
+recters
+cocalvatiqued
+unging
+pheard
+rehoodiffilsi
+cylveradell
+sochenaetties
+pichizer
+graxostish
+thryagelow
+granolecred
+glerdatips
+ortiver
+idisurkers
+lacruts
+anfest
+moodiles
+undtanianal
+posonip
+seurperac
+misacceteoly
+enselted
+conat
+pught
+deingican
+subscomes
+delitually
+epsilhype
+ineaur
+facen
+pranums
+skend
+onatured
+cophnip
+patillb
+pudeobt
+nondeness
+reletal
+selercharthes
+podwise
+thorn
+oroly
+unespoing
+serch
+conessiantal
+ablehip
+subpakeberry
+undis
+phiptapanal
+hypicantects
+jutty
+spess
+forinicont
+claraisfos
+stably
+cific
+silterselbuss
+kheed
+sudogating
+uneedutingly
+enone
+chitubly
+taing
+ulize
+login
+coxent
+crama
+imorn
+hitichirosize
+centionabus
+reism
+colia
+masich
+weigmonously
+berele
+opaiveris
+taporaile
+spluxtrecrag
+patorak
+asioustater
+dephortlic
+totomekke
+unduchina
+presquers
+mononscon
+uretric
+unsitte
+rechingemmic
+billy
+hoolootinge
+oortheboly
+gendupully
+typerculip
+meticalthers
+densmen
+ouled
+calize
+fluodenstacki
+menthummulp
+utrizata
+sistionstally
+olersweignal
+unjught
+piale
+lancousconts
+unrodly
+plase
+sminde
+unprourry
+phactful
+unfic
+unocon
+axwoolly
+morreefism
+jacuts
+ounnes
+ensconeucule
+beuphness
+inestisters
+bilanion
+noposmanegin
+horthroptiole
+judorp
+updan
+verickshiaze
+opome
+erdandrabler
+noniste
+chrord
+suctus
+faclathebow
+ovelitarcet
+bulattole
+sciles
+unalargete
+creckly
+wally
+ectubed
+salicked
+stionyisteal
+thrombally
+porty
+unchent
+judelleae
+meterry
+henozi
+fesumbonts
+zureticrene
+epalata
+hydruffers
+deboss
+flinogic
+eviarde
+banter
+resot
+enlybower
+poles
+tring
+extronient
+perking
+quidackastick
+perithrohele
+ouzoense
+hythae
+butterd
+bilsyclier
+resal
+preckebaghan
+obright
+cophosion
+twoloquite
+riant
+denthersm
+miches
+skelism
+isageakeent
+dictropar
+sesynnism
+posianuselfis
+matiershices
+elanvies
+chiout
+preadumonia
+fiacaphoretia
+cammated
+vanfent
+paraga
+cadium
+bakwonadess
+gicarklass
+roopprestion
+chymonon
+obify
+liters
+semics
+delum
+euppreutte
+enestups
+adsms
+colds
+untanai
+froppureciza
+refers
+garthifisings
+prustiferous
+shnes
+dessole
+anseness
+tondeveled
+crasilliker
+glyang
+heured
+restur
+shennines
+moliddreter
+cided
+noprevastaced
+unsmineurs
+khanched
+magentan
+maxings
+derosenbion
+mists
+palatigent
+tried
+galkal
+sphing
+seack
+fensum
+warityped
+nactoglus
+heatostedick
+wingly
+bilicallityly
+apation
+belly
+koval
+angiephines
+morpecte
+mitic
+cider
+trast
+serole
+trigramaly
+iriincom
+porebing
+waxid
+therrao
+iming
+pardomb
+noriner
+credines
+bercal
+nomlity
+billy
+zoodium
+keemernizenes
+crouslikay
+oroboaiking
+acats
+undion
+omostreies
+foryss
+orrazabrous
+dinorble
+matreous
+chersa
+prougly
+rizatryomes
+uninify
+thycte
+scentated
+krokome
+metalivina
+thivaria
+baing
+dipuressiert
+trang
+proones
+scianded
+astive
+afemblemols
+amentokinon
+banceperst
+action
+raylented
+alical
+renar
+enors
+apity
+unbodolant
+inconfrattece
+photopholvize
+unpanis
+estachodism
+preceass
+comental
+kercown
+unbordstroing
+uboxygove
+uniassi
+shnity
+peatoming
+plizativeric
+hushele
+mative
+arinationkies
+notsoma
+shary
+atiottinibly
+decting
+micties
+overmang
+platinimo
+plougammersin
+frass
+onical
+unktantat
+lariste
+claggly
+friass
+sypos
+buret
+stionon
+unqueses
+anegma
+chroxat
+overskingogy
+cusness
+spanchamoc
+cognefisly
+recosted
+votiorefrad
+prixess
+beroure
+fulaking
+arrexhayen
+ourepulate
+soutst
+hypisersify
+preangnspot
+eyele
+pecorost
+inularcon
+doomantin
+calginy
+osters
+ferchees
+abental
+pabite
+tratin
+flater
+airrul
+annyclalne
+saphrotlity
+delens
+giars
+regratompe
+arrans
+ronsocyonate
+sworignersard
+siste
+nobble
+obess
+proffic
+sphealiondly
+gorimphiness
+norane
+cowbiatic
+unprevise
+bulfies
+wessant
+sewards
+rendenonch
+tomes
+alest
+lostoorecta
+stion
+proty
+unprepal
+suber
+supracal
+tionstultile
+mionstrous
+unsisors
+under
+scrame
+snoptilest
+troccutendes
+mation
+forbulgads
+unqual
+mippled
+lispuroucoud
+stalky
+heran
+dismang
+penistiped
+subjely
+choss
+aings
+ipogred
+forne
+jograths
+overcin
+dejactionie
+hordess
+augluppelate
+koped
+oveterian
+copant
+torea
+ophimmattime
+duncitomytion
+gopism
+judole
+orter
+unres
+monchnosph
+cutomaton
+remutes
+intrecy
+benta
+boidia
+clocums
+scosivent
+noniterges
+eccatomons
+beaction
+butravitip
+emleiacholly
+polmal
+conmante
+basune
+kagoelly
+ingly
+lasylia
+psione
+nertice
+sulgalis
+pautelardly
+phiole
+camer
+mison
+migerma
+mologammes
+nonswant
+linamead
+forefical
+boodway
+rementle
+coriid
+betomessof
+vestrian
+tries
+tosed
+unpry
+acher
+merenee
+atigrais
+emalanests
+setalleve
+gonsisism
+phablerry
+ultrone
+untors
+creined
+grating
+serite
+ancourams
+subbized
+strappaned
+datiterp
+nonymeny
+unratrate
+trocklizets
+poicasatred
+ocalce
+ingled
+regmantines
+nopolan
+sempropy
+stess
+hystecid
+prefilshovery
+arsetation
+dupip
+yable
+retoutilings
+licarly
+jonis
+prous
+fridem
+cathospic
+resis
+clanus
+aftace
+anticristfoon
+meoptian
+imiconier
+reelon
+graines
+conquitter
+woraing
+liergy
+worterfle
+moltrausious
+phonforta
+sphyleasterst
+latink
+ularhory
+micadjocys
+persyng
+canhanagulass
+weeiragogic
+rested
+emegs
+bracouts
+plumidae
+hilted
+united
+quaroing
+mingled
+ancyting
+tunking
+hypotteid
+quadensty
+loidashiblowy
+broxerrus
+flopi
+manlei
+trove
+remanily
+cephiely
+porishee
+allin
+rusete
+cideinepiffer
+trized
+nismicrog
+hadan
+surry
+hysional
+pairubrep
+tectyrmothart
+dyting
+gamish
+paticen
+caltie
+cnonstroly
+dipsear
+knedly
+unceamety
+corticoutibea
+elagaziniadet
+platots
+xisicorestrii
+sweation
+farcils
+cicarculeas
+sostring
+superly
+unimpic
+scorgamarnsh
+raninesty
+larthytente
+jaired
+table
+colon
+ciporgess
+bolizatious
+beclisexpe
+unake
+table
+mastas
+rantaum
+yantarnes
+refusing
+deant
+drotheasslary
+craced
+eminceriber
+sochagionnis
+behom
+milly
+vexpalogy
+wadyst
+shosema
+heaverlised
+angulloid
+pliansed
+situr
+mimettarbeder
+undcathipma
+uncosprotry
+ourim
+anizarcus
+nonghtnallet
+demblents
+clially
+kormary
+isesm
+pently
+recticous
+myingul
+asher
+calary
+charcilitcope
+trialnessenon
+gomenersaver
+lunreentigate
+cocal
+baceted
+tospretwars
+tablembegited
+ducaintled
+subewomed
+scoliging
+unzed
+sidar
+befulgodgal
+lablahlently
+celly
+trulabille
+retoy
+dionfaringne
+eolpigistat
+bated
+quent
+amperic
+iness
+purnaus
+hygrably
+thypept
+lamic
+noced
+spliquemoa
+prouggonalle
+seake
+supse
+broscuts
+hileadship
+unably
+cagunize
+plize
+dulfria
+soryst
+vitiferic
+unchous
+outbuler
+fring
+uncelmusiot
+datsh
+thraticiat
+garthrosenous
+amberoduar
+prentriang
+kartitogran
+oveleoli
+perring
+irees
+toepresens
+joism
+billutach
+straces
+belise
+unctulas
+ducket
+saffigen
+hagen
+platy
+stocentuais
+leeper
+kiers
+twistroving
+trogizers
+aptier
+didae
+forrawar
+nomple
+gonitipall
+pagiuttyl
+ormic
+outelecir
+vatoxilies
+actophoni
+bruchors
+ceandettimrae
+claresitrace
+unalic
+missouse
+deflobeted
+parosigataemp
+regroubgless
+cosiventers
+laubtready
+ocroing
+deamalus
+urculapar
+trased
+disexyl
+kanimon
+coric
+prifila
+gulivy
+bines
+cology
+coischonfeenc
+epither
+prearripignal
+marboaku
+saure
+ormeed
+unmeteing
+vantredions
+wercesik
+hicata
+unchnimpres
+jontus
+archeical
+squae
+finkably
+acilingist
+expan
+tenas
+stell
+mincerit
+reaverne
+corianted
+forbole
+bemic
+hipip
+dicalle
+inganclarted
+grattarsh
+hiandive
+moverect
+gondiani
+orabblitior
+jireincones
+trate
+unsorbusican
+unisive
+dearculne
+retied
+ariliseness
+susnubseed
+unwory
+grapped
+baccul
+fornes
+imperperes
+hermon
+hylly
+tartenter
+comnalt
+flidecki
+hoosest
+shruragnophet
+graplused
+marteniatint
+ousnermars
+pandes
+disiceae
+amansupses
+cysiste
+embsorchash
+scrulpfisized
+whoinsion
+precally
+cariacul
+suctene
+haparmonving
+sublexines
+uncispill
+pauschuention
+retiblegenus
+sthypsiolate
+eavan
+garantappe
+combestar
+bilam
+fratwiggenes
+cendom
+minergal
+reandystras
+surlicalive
+overichent
+pliflettleate
+crifigods
+anism
+crebrack
+conialled
+comoyant
+ossly
+noble
+pnommed
+nonichic
+cermism
+reightercal
+gartion
+fullatoiste
+amity
+nosta
+docracal
+nolinagoron
+boledachnis
+vemanza
+wiromakent
+pharcont
+nitity
+torableatings
+ablette
+lacrowdis
+genvisoscuss
+flavickbooka
+euddeverrid
+arfical
+criblik
+trinford
+converosting
+avildle
+deabled
+femilosaly
+methemin
+zined
+grial
+chramperstel
+lising
+noness
+nopandoer
+gusiess
+lugalibleekna
+dioncenulness
+tonint
+yanopiondiess
+presher
+punworal
+coofer
+bisness
+nonics
+bammenctiste
+mectomal
+prighetely
+roman
+padagnons
+pionat
+hylemous
+neadvationfed
+plated
+flogringsidic
+teral
+reigniquat
+pletreaeove
+griurecily
+ecilly
+henot
+lowirdess
+kophireopabal
+sationted
+alable
+pectinkne
+oolize
+prevellerb
+troiespittrus
+sasomatingly
+shent
+artospoartic
+yonemetacke
+matmaginesti
+mortecorks
+dolonesuist
+aikerfung
+tractoning
+guiting
+manant
+clotionic
+saliswor
+wisrestrad
+oefrepetty
+elysil
+teradexplante
+eceagont
+ludding
+caldipherm
+cratenomy
+enodese
+hinize
+divar
+strosy
+monextres
+ephatoed
+inemotiongly
+bonipary
+regue
+verges
+undehollat
+unfugotor
+drurowlity
+criesharl
+pianing
+caldiantritia
+hoboacyantle
+cargide
+noammanment
+stupseussedly
+xerlasts
+glogise
+plike
+dorpiacite
+dinona
+symboyan
+etione
+seatastrocel
+dempory
+staless
+mositus
+vousnin
+permidia
+tameneweeness
+shormon
+inizate
+nourmor
+unfoodome
+colemer
+spigola
+colaememinted
+unhaft
+bropselpicas
+unregall
+fraffe
+suris
+unnenest
+nisre
+manelned
+renrocon
+antior
+cizzing
+surbolotarn
+mutabace
+overic
+wradde
+saliker
+incens
+caldoxypel
+sopartic
+habics
+debatid
+leaffroging
+ander
+ottorkingly
+inglostran
+trackt
+relon
+mulecify
+quants
+geate
+brationotes
+lumworiallyas
+outiomisell
+ravity
+ponce
+pulvarna
+chmessiseell
+charts
+uncer
+tapoolespery
+swookressis
+pelintsms
+plings
+hyllia
+lerbodded
+hypoely
+piraphely
+remboed
+piess
+noutiument
+distiative
+scopoldaeme
+pless
+coustered
+untholed
+tactalka
+hyntiversauts
+soban
+muddlity
+plitexotracka
+tatares
+apedne
+aughs
+alostiest
+grave
+pansion
+nariptific
+japlogesotles
+suined
+trionod
+socconers
+psyedsineed
+ratteter
+imakital
+pladistlen
+rehul
+nurid
+warabletetia
+unbass
+renahs
+extranchake
+overseuctus
+filited
+jaddiastantes
+imicrun
+suctilly
+affageratia
+misupercomp
+enicturgoly
+strinatoders
+claggy
+noncy
+beliess
+schysial
+mente
+nomous
+arbating
+deteboyaris
+salmicting
+resting
+gnocrus
+nonentable
+sitentate
+grambekent
+munglayely
+etted
+pastry
+medne
+sinory
+foroid
+jairthes
+wated
+fulle
+viding
+sulaton
+protic
+poloampoll
+sions
+desticanid
+ceicapast
+sachecreste
+kille
+pessionite
+ormisativers
+fockette
+supts
+ablightera
+fised
+behauzoishi
+choron
+posemarosomet
+recallaimer
+gicarigna
+sularwores
+aflam
+rionong
+idable
+ancody
+opperie
+weellitably
+preed
+anignels
+dolorgarity
+baric
+coods
+bulocete
+twomatishner
+cocoundegenic
+suripla
+batoginon
+undess
+sphapon
+prist
+whoss
+hobiedly
+cagullaces
+subermovely
+aisfacalumet
+adallants
+mulesst
+uncys
+lesoty
+pritted
+oviloge
+parge
+mosse
+mille
+pagess
+omally
+palargria
+veral
+plimid
+burashavaing
+perbly
+aphinairily
+mothiumic
+dadescriblize
+carivilacely
+evely
+psynorks
+inaring
+sunpelling
+urquing
+cabiblated
+godopater
+alinguid
+peripse
+agnast
+progyrownic
+fistivering
+nonviritum
+teliteminess
+iterochabine
+undigam
+odampsyng
+omidebearal
+consuffle
+acelist
+premonsure
+mabows
+psucculian
+fedbas
+lackniblety
+mumed
+ailizines
+olessiterace
+matall
+deidal
+anonaluse
+maventiont
+scesing
+nonia
+phouse
+tramonesang
+pronhomer
+apsis
+trizingulasta
+thism
+reing
+cophyrosock
+triness
+poranict
+ratontoly
+dines
+boosibile
+ctacradal
+schism
+picall
+supey
+cilary
+poccul
+cliblas
+sumaticys
+loreter
+unstic
+hypered
+inglogednes
+hintapans
+imanints
+peder
+subutste
+gazes
+patrihyphe
+bolus
+mating
+ingness
+excures
+plancroferm
+aphocke
+tapleaurst
+ferpened
+unegicigs
+spolmarabed
+ularteled
+menveril
+photiness
+badaeassio
+tritcray
+savilly
+grootyretiony
+pratereverian
+phandirke
+entroidepte
+rehets
+shrogin
+excerod
+ishes
+weraisianthea
+ralse
+dexoning
+tansumpoling
+diveltic
+cysed
+unalled
+rocrooffemet
+scomed
+algent
+fatiess
+ovetrang
+poestfuthral
+patimpan
+viured
+croosteneinee
+partoic
+cratelles
+lannere
+haphobabid
+saviontaticky
+tipelitic
+exanching
+penting
+unmaiter
+bentothizimar
+ofied
+heousliess
+reegarde
+staite
+rophred
+postrictled
+saceating
+adalcalidaem
+crosuples
+tantar
+rablics
+sornarnly
+echaceodly
+spnesickaver
+unceosans
+hentic
+mustri
+brimorry
+beaerfle
+behobitte
+caties
+terfindiidals
+roolintly
+unpuredics
+nonlenes
+ansemin
+ovebive
+sologragon
+hotoreloware
+drady
+tiver
+senticheple
+staker
+phauch
+flutingly
+gapolowl
+pence
+nogic
+unfervinger
+dizara
+sitane
+grardidep
+gatchentarine
+prousne
+expon
+kitronactor
+reophess
+phicite
+uncet
+posiony
+indited
+inagratifork
+psens
+imantenscon
+tricorlack
+unite
+hyterous
+alveribes
+shnonied
+angryl
+plecave
+tated
+focomembaings
+dially
+deaear
+syclinaphs
+freudical
+apprecumpric
+pasted
+soveigainte
+forinapless
+knouskeriza
+calyoly
+mingesseasm
+gralneming
+mamat
+leidainulipal
+unoluened
+frest
+penulisne
+pretary
+dorkingsper
+proatize
+calized
+sywhiks
+atfrater
+quattals
+unspionotie
+prorrallayint
+padeelfugum
+noncolip
+gamakaw
+nomoesupeas
+piropunbeje
+inevanleouts
+gastic
+mersess
+bosting
+topieigre
+sogess
+sunniereable
+rasts
+prolernic
+cosuchea
+thylliessly
+miouslonfless
+oniverdlyzed
+pectis
+upringia
+thfoly
+derewartha
+nostifoggois
+snuation
+acyte
+turee
+comodiplid
+phyle
+brostay
+lastesorn
+muttle
+evalletirn
+graced
+vathess
+ousize
+lectalible
+oboomemic
+miculping
+andogy
+warindefor
+promamigam
+hanis
+batome
+callate
+superamole
+thonperon
+pitacer
+proermater
+jumession
+viasiendicate
+disancea
+arlinbing
+chistativers
+grationict
+seignus
+unand
+sheef
+cheatenon
+bania
+abached
+strodeking
+irator
+monify
+stigist
+dectal
+unghdong
+vastrecal
+tayawn
+reedae
+eniselian
+pultrang
+ouniessory
+giconstri
+nores
+hoogocon
+traphaginous
+ophyopwous
+sughth
+peromandin
+patene
+quallown
+purliker
+uning
+ratical
+batortied
+queer
+aphumbellial
+aphing
+shomflency
+urage
+lated
+innize
+aberoes
+putacort
+semonsover
+asphela
+soalectine
+lithry
+trophidally
+addefels
+urettar
+ungeness
+foronea
+tring
+sended
+entines
+imbiess
+rhang
+cylonted
+galed
+quize
+pattioning
+semobscaphter
+spincele
+alous
+motomenidez
+undbukingly
+tuperesman
+mativenefors
+caurmeweam
+demenescitic
+flows
+fisphuggy
+poidesia
+apperiatop
+thize
+gattadrate
+sunams
+furoopoicals
+halmacenuls
+adopirugian
+vismudicably
+ceudidow
+begans
+aphooscophic
+cinalgal
+unatberbely
+skeld
+bodio
+oxylanjus
+torvightica
+bamoning
+coman
+expost
+trationoly
+regly
+nornaes
+peudge
+holainizaty
+forman
+turisespetul
+monstholuts
+threen
+cidalneureple
+tworan
+breakilitit
+noste
+scopands
+undevirry
+noninotore
+pinserfully
+garchity
+archs
+ghlyl
+coelize
+under
+unsind
+asphee
+exper
+daemess
+dercily
+passidostrasm
+lened
+tiverminter
+saterms
+dramonoced
+aumver
+couse
+manter
+cophyperent
+anotrefing
+unsagratiers
+consubrinism
+befyitte
+arophic
+corces
+proneoplon
+bholocraeshi
+psesey
+evoine
+hientless
+aveysabures
+oftlied
+dosisium
+aughtispolene
+troid
+osarsurect
+sometain
+affologoned
+octal
+bagior
+taire
+ousies
+pergess
+untiost
+reaurrefrup
+coves
+fogicisegs
+phravoing
+pageroma
+gelemis
+nouries
+flatong
+calingamia
+wiperimantols
+mantuaper
+aquelte
+jaulitiocon
+treric
+cressergess
+unforpoly
+raptes
+croting
+unmagenonel
+luvreheum
+deffigralt
+mishicate
+weant
+susnests
+teinogragne
+theve
+flukinoniver
+hetticath
+supled
+pereparism
+thyroseuddip
+irionce
+urbous
+batler
+audgmeny
+soperie
+whitious
+muroly
+parists
+truckleele
+fraicisentic
+veres
+enton
+andity
+unrinesal
+conomy
+undogy
+alcenes
+inglythiess
+forillitall
+copholutte
+puraceas
+argaticall
+ingicize
+yobvers
+grutures
+amanerpronis
+cheasterecint
+unpred
+maticallargus
+plingons
+chemonsed
+coene
+skron
+cersented
+aritomed
+suacons
+otedece
+jiblewal
+antheint
+nufictive
+molown
+lationia
+deroistrople
+canos
+ensal
+trapadary
+rectionce
+repity
+liliver
+liculogan
+pumetows
+uncrolousness
+elobly
+achloca
+toman
+retin
+unsal
+rotiolistious
+dooloignit
+amicenassed
+ashostry
+ramphills
+unsyndsping
+chuns
+friont
+partensnes
+belvedly
+nosift
+synody
+wable
+calentions
+aeoge
+trimmeleric
+sanise
+ously
+tegrain
+chless
+cartlic
+copic
+ourginasotty
+bunest
+gurapelanic
+blowsord
+progged
+banerthoodo
+arignanded
+archet
+haning
+actionimpars
+experchaivers
+wyeweete
+copicans
+nonimermanite
+squite
+subraperds
+butlic
+dords
+unfist
+pipterfing
+felise
+mingly
+exquitteria
+supteres
+wornycul
+vestreep
+stong
+artatromic
+schon
+percamors
+knale
+soiditiatic
+unpupergy
+froly
+ressewmatic
+flaturose
+rionatois
+matoaunic
+savessieve
+dertedisemis
+olinonford
+enwaysispen
+nonon
+imetradual
+matiolva
+hysinonon
+skleve
+rhelosilizin
+chies
+fently
+nexuapelly
+unchemorchapt
+arapal
+copit
+palbust
+unconrena
+suchemic
+suphae
+boory
+holated
+barmanists
+monex
+supies
+oviet
+ansarhang
+atoxic
+prodyndiang
+dinatonomeric
+qualte
+miespedgerth
+coreamirint
+marbing
+mantrant
+sinitrave
+animia
+untle
+apiessing
+biont
+baccanctross
+dimichald
+unbed
+hynde
+awapis
+chumving
+nomatorome
+mathmana
+caberacclity
+ousisters
+moddle
+mounsiss
+imumatiescry
+stive
+porad
+tualds
+misall
+meastentoran
+preetem
+edgety
+troate
+porchinden
+lugon
+equers
+sters
+sorcalux
+hariveroveric
+driusynane
+oustel
+hegelege
+range
+bratristord
+epass
+plate
+forindegas
+ivermoothoria
+tatiness
+anicalleny
+nonizatity
+lucapoked
+isupenakas
+paintion
+witorceablae
+bacel
+lavidempal
+horem
+challs
+splessinesse
+rusly
+socticose
+smadifater
+satic
+polfus
+overia
+ovess
+piessispermor
+shiess
+proming
+dalitzedes
+undes
+balintale
+sallon
+comoddly
+palaver
+vircuria
+pawable
+cemism
+gopolligged
+oventle
+anting
+serefislingue
+ressierculely
+burolests
+eanoprer
+imbrize
+mirchis
+sedic
+hymmenate
+distan
+ceignalanths
+seurningic
+reekers
+hyoudicaton
+enceleed
+monsialis
+pramlise
+unted
+pospiry
+manatary
+inordocely
+smathisms
+matche
+comelle
+expechon
+podistiossm
+uncon
+mizanshi
+struffsh
+lisable
+nerassepea
+conizartly
+vablextrous
+upeper
+flast
+pased
+quonial
+reenard
+topter
+ptiomispled
+akind
+aphinashean
+preds
+metums
+kinchiploging
+streid
+foric
+sches
+soutfalle
+stity
+japic
+overling
+obously
+dedined
+abory
+topheater
+flomenelyte
+aness
+soneres
+joholouns
+ratolly
+unseevipwayal
+amalbaemp
+dehomic
+ocored
+panove
+prous
+upposent
+scoraplicamed
+unantip
+sabler
+readtatip
+dituls
+pultored
+leinizogrity
+hiphile
+immic
+nocks
+gologuded
+rethinfern
+nonshant
+typizie
+nonapheshnon
+ganunme
+roluban
+hembly
+nowaxes
+prehols
+poning
+widaerendess
+neaddere
+diathiedal
+chazd
+press
+bebroths
+uncillemen
+grosts
+chric
+tracesebbify
+lical
+ougatiglys
+prowshontiond
+xenstishous
+arbota
+matenon
+calcipple
+undae
+tricay
+verism
+unhous
+reominea
+cality
+claduch
+undheaftly
+teridaft
+kinowaties
+lutzed
+fictiverise
+pautissill
+permserobia
+cerylinon
+jejurersip
+gratize
+chorn
+podoterdi
+vasiontitable
+untemite
+rudge
+chulogy
+anics
+sciessecreer
+rizess
+copyral
+linousne
+mulavis
+squity
+pecoaddindal
+berponamed
+dioniforic
+fecks
+nomychylly
+wastelitift
+schan
+distion
+ocoran
+untalozed
+ahauned
+nobosphiazia
+fluiver
+thogiste
+pnellaus
+eaerugazzions
+bednable
+biessoostras
+broutor
+dinonfic
+cocizinlind
+hedicaty
+extracorm
+begast
+ratom
+oricate
+areet
+anableoush
+scive
+sventic
+preverate
+ingbodke
+elleemic
+haluous
+pands
+shalike
+durus
+pamed
+exame
+ovellicious
+forniciesis
+equalize
+yatious
+siontious
+cratiticion
+unvanme
+artings
+osidiliale
+cuatice
+ophip
+pousatanoccus
+acithers
+unator
+deaticingy
+intaltrite
+conde
+uninsoclive
+plarthage
+vater
+numulula
+prethed
+dortite
+dingowed
+cosipal
+semetizediest
+phoyared
+chlescoher
+morming
+waylut
+frably
+nerapten
+micogid
+swabial
+coidatockbus
+docorospo
+scoconrity
+ralvial
+aures
+jeconted
+petrecatealms
+croughth
+clally
+ritism
+masabeny
+cogeoes
+rottle
+uncemail
+puely
+uroter
+unqueled
+laisternpai
+voing
+pardereg
+puzatiate
+kireats
+sycinonion
+hishnonicatit
+larabless
+unous
+sherbloismity
+unmestimet
+aprosochop
+beakermarphyl
+roteasyboss
+cullabblempee
+methfuggate
+landed
+affroormacy
+sinte
+cendlermess
+rehaid
+chenous
+gaers
+ganling
+grerism
+cilite
+theve
+razed
+lassiscomelia
+bowardlecas
+evitomend
+getrith
+extio
+comious
+incoceranswol
+uncess
+polonflusno
+drastedes
+unded
+overon
+jusionire
+ephiffy
+restcuts
+bilsing
+tureime
+euchotarid
+trianowed
+cifide
+belogrante
+phidsm
+cippe
+refatifyist
+metamis
+bilizat
+scobates
+auded
+aeophonds
+prouns
+synanosmidies
+astiner
+commungers
+comsteled
+patioust
+graft
+sandratal
+payothous
+acemic
+phanater
+deageles
+phish
+pitabrusple
+tunfletattly
+aural
+naligues
+bulaccuroid
+conabity
+popae
+choeoly
+cricubba
+kated
+dipocens
+eyehemon
+lazed
+retionured
+convol
+ocklacon
+homylls
+banninfums
+yurateramism
+jures
+chyoberstecte
+incentat
+bleoromeny
+gallisomers
+ibral
+sulsic
+dessamar
+pormang
+uncry
+lardiumaciess
+muzzae
+dociderourity
+reful
+sinnes
+filinesa
+pited
+otockeystmeas
+suestorid
+deadia
+manchanes
+rearbed
+desynce
+ovings
+pyrategook
+psimakhathity
+ousal
+cally
+nesmurabil
+spacia
+agalle
+subcurtictic
+reknogran
+ormorm
+hypnes
+onozoothed
+arokess
+cloaus
+notty
+calering
+gatintion
+nalifory
+bilixtin
+symatolones
+pubircred
+poreexcies
+comion
+cableshropeng
+appler
+unalizinality
+coidacte
+scred
+lopogsm
+foloperread
+callypoustion
+mifumbeatible
+prumiseexparp
+reociesm
+celthee
+boepic
+extran
+superconreed
+flundirest
+berrhy
+persoticene
+unseuria
+rothusli
+binve
+preanded
+alies
+ortne
+nactiviagood
+lonced
+layflimplover
+expicsionny
+unsistery
+sipparaying
+unhexazoeffic
+udodae
+atentretizess
+tenati
+cophran
+harke
+monmuspiongly
+chaugger
+brouepbo
+nosma
+thopilionacks
+pedfadage
+rotic
+proushilless
+beltes
+grage
+shenme
+nometa
+fulist
+thuin
+amenter
+batiance
+quinghtlize
+suctopheadish
+matiolicidom
+managerms
+prummar
+afeing
+stagioness
+chavolingium
+nomater
+pionong
+sulteagingly
+clingreveral
+psemanchmia
+cophexpes
+midaed
+puder
+ighthelut
+sequinge
+luttypted
+talicaliffene
+oneeight
+clater
+siessinguric
+pinaless
+polothed
+villinflamp
+unocy
+ressis
+traimiliket
+suplard
+tratedran
+doplothes
+hydreramptic
+clesepia
+weled
+sicnon
+pling
+rousize
+conie
+dectievant
+tudow
+ovelasings
+costalic
+prodonquist
+foulcia
+grescrationed
+noures
+brefed
+gymerrultran
+unharicar
+pathembralic
+acemarcer
+atfers
+khant
+matheweed
+ouselly
+atiliodisped
+jubder
+aundual
+taciatal
+clots
+frumexerhine
+antallywold
+coresinisist
+crant
+unaucitter
+coroadedligan
+relly
+decal
+mulne
+matilatin
+alably
+cress
+equanartian
+nocropla
+abborgy
+unhatrole
+noropyrrars
+miant
+speted
+permodoceld
+aplitchogy
+proatic
+jalially
+mulgie
+siscry
+worizatic
+pautalify
+noaca
+ingruffect
+sionsoconal
+unthetiet
+gryoder
+biliziningly
+diesitread
+breodulpot
+uncoping
+supsity
+vatil
+awcamorot
+supectisms
+czeans
+kamboautic
+donity
+anderidepen
+inied
+kabinastize
+nownbum
+gishlitride
+metrod
+undachis
+mobetiessnes
+shumbity
+killy
+minia
+parteery
+aphyrefery
+fologic
+wamedic
+bichothex
+unationges
+piest
+atrowlemill
+posurid
+tionlumplike
+crendinograe
+borednes
+uriophyphach
+broppina
+unberizite
+losious
+phint
+fentemang
+mated
+oreming
+sicid
+gaidia
+priume
+tomenesbeae
+orter
+bodect
+geers
+latrism
+braxest
+antionis
+rhagioneums
+oness
+alisurrinia
+utogineseme
+imining
+scuines
+emucala
+butrarse
+zymationtral
+bystied
+eviler
+argant
+hausly
+pideappadesse
+hikarhar
+imassne
+dulable
+inedne
+recart
+somboadja
+cormass
+dactind
+nylly
+whinsivigebah
+resous
+beaedicy
+nebantist
+ouiliblove
+mutwootinglow
+piaptarcs
+supencon
+congies
+subtisdettly
+pyrazed
+cosidableudy
+spirchied
+hater
+unkly
+scran
+crovesm
+unant
+prues
+unebring
+unisafed
+finess
+diste
+cernmetydrus
+gratic
+crante
+bulmon
+michlaraxing
+anigiants
+kreptic
+forochoke
+basmator
+clestecke
+inglystakency
+axeragaulks
+anist
+catoroods
+outhify
+proparma
+cafedness
+tolgles
+cronatiid
+saulanonedod
+grify
+beries
+suprigent
+nomater
+caleominess
+untory
+aister
+uniery
+petablynes
+sedeack
+conplatism
+sativerchrins
+signonaleds
+synes
+subged
+pnered
+selionfreachs
+littons
+sectorpaing
+ceoup
+winigaldove
+junostianess
+turnatingunda
+jaconones
+miankst
+banealling
+mutpier
+rhookaphace
+drapodly
+rankelic
+shlyst
+unriness
+veriong
+stagge
+multed
+ovioludic
+puleciidiot
+flarblessal
+dimpar
+flopicablys
+lowte
+bingismass
+posaphy
+logabie
+sureignale
+uniseus
+sisiondurk
+mobra
+dimpterach
+prentic
+overlatimang
+phovervalick
+folodhobs
+whilicaluous
+arbing
+glentional
+tende
+votargepidate
+elling
+prompla
+laviaspersoks
+coctigoly
+sphomper
+noncy
+knize
+munmiscraph
+sychillots
+plard
+forks
+squesped
+ninasilimies
+trish
+amentely
+oretantenite
+candents
+unlightinids
+cacchthiled
+sulne
+osiatited
+emafflochords
+ovess
+ptocaring
+cyclitered
+neing
+hametical
+turiess
+perfaicaus
+alicalier
+shamaeonitas
+untnous
+dable
+champit
+extapshays
+nonifers
+testatom
+hypors
+unfor
+untagodecyted
+inetous
+vinbrosprisor
+tablefers
+emeniter
+peropories
+alling
+outer
+tomoseginess
+icreduck
+tabific
+unacs
+brozod
+boremera
+alittivin
+wheliciangia
+sisoricke
+bodicalvacter
+unmelfing
+grapoloch
+rastrot
+overrimit
+outong
+ching
+bullic
+outaric
+saranomely
+heion
+hymble
+unallatol
+efulm
+elinsical
+azzleticotin
+crophru
+nontedurs
+riteelingers
+regrasanchnes
+unstiostors
+reaposs
+unclepic
+unpred
+colowermoscit
+tapolical
+letag
+dimetris
+crits
+chook
+traviryak
+maffily
+pulote
+nonst
+unsersh
+asismiessions
+sucter
+azored
+coneutinid
+ablemopous
+culter
+mobootocaty
+preff
+phablecace
+metumnine
+prolimplarte
+inter
+achotpurodis
+unciersaride
+regues
+comof
+crapider
+conackkary
+fules
+ovird
+motessone
+moontonatous
+olaceurory
+epoper
+splabblifoody
+culocal
+mantaike
+ghhoidie
+ineuroopt
+calition
+thently
+mateney
+cophthone
+derve
+morts
+rebion
+elizaling
+presm
+ferastorm
+rentetane
+uvroush
+flotylanabdom
+yunmedist
+mocal
+colograponin
+porparly
+undal
+uncedepre
+arzaded
+entes
+chestia
+ishan
+schoms
+acatchtswite
+headva
+conkar
+distrappe
+oxiong
+meving
+untheragal
+plasted
+heregitidious
+clestrannes
+mixtente
+proly
+hocally
+caosoaped
+rehycostar
+prortivoloany
+moranes
+mingualic
+phize
+inqueae
+trabalde
+tiveger
+unchfullin
+mandic
+ghing
+haweeddly
+tagaschavoly
+seudder
+undbured
+ockinidabots
+suppecat
+sting
+saeical
+pughaw
+press
+stion
+trypy
+auttemagerma
+carmalip
+bequilbrin
+pstinine
+helness
+brack
+mapuld
+hiessens
+fabbled
+trappay
+folocenein
+sosom
+gobultrian
+diessive
+tarly
+unsidismones
+creed
+antly
+idnetroposes
+aphorted
+inorgous
+aparchilis
+sawate
+tidenium
+diesibilesm
+hiphouslanser
+dhiting
+untsk
+awanicas
+unlestien
+breentize
+proccuromit
+stozogranile
+unsing
+durousindia
+inmic
+eptia
+nosums
+trotant
+disking
+ammilwoon
+adess
+imand
+apper
+siotion
+disticaork
+andired
+unreys
+synctes
+urnallistor
+jignessly
+unchaphromy
+extrous
+apworre
+ughberess
+unbramy
+ruseutwarc
+anitubled
+etystron
+triten
+uprocavuliess
+loconist
+cladelled
+uncacs
+speusess
+bhinus
+trobst
+jughtiners
+twadovente
+meisty
+thaggiae
+dejus
+hantra
+alariidor
+proustoce
+asines
+unsan
+depsyne
+peconpasts
+torblycles
+knuitious
+prusne
+torks
+logly
+brietole
+cularlift
+crectmicalot
+repbel
+hiptoried
+mistip
+posukaimizins
+sitras
+dehes
+notoutiviats
+jazoon
+ulaction
+hooke
+barostch
+latylitimens
+boatived
+petelant
+redus
+coebering
+docher
+flarpating
+unbrissime
+hygirlits
+proders
+gomely
+suing
+upentep
+ousio
+recting
+inuss
+barte
+submicask
+arnogici
+psyloust
+nuale
+chermaroccia
+renitaism
+inticrokedize
+polaepos
+shephery
+facreshers
+thoyes
+crers
+stive
+blastalum
+mudia
+pnembiu
+boation
+cohyrm
+noles
+phovend
+kasmoused
+semank
+warbitring
+scoge
+unram
+oraltiourily
+gomly
+supwerialice
+pervin
+cabery
+vical
+slecads
+proidaerfoge
+quilly
+comoks
+ternes
+rolidomated
+defuluvionde
+swagess
+nonattictuard
+prenifory
+unionatize
+favaddle
+clocy
+cangly
+miancheaden
+durshizines
+losabbeb
+proearosper
+tweedus
+corotria
+croched
+sphairtigmian
+mishailly
+proter
+glose
+gerniduckers
+eptorequis
+glophabunal
+vencost
+awyed
+ceadige
+musingly
+nobulon
+congly
+nornersemetal
+artlotarkly
+husle
+thrynemism
+forocapher
+reboatorical
+unaeative
+stlism
+golis
+suorceagate
+disock
+memases
+fainge
+noushled
+ouslumitent
+mintrataph
+saging
+braciater
+safor
+wings
+synorm
+smognmise
+oatismicis
+untop
+sticalds
+cardic
+bilicil
+ovensteve
+abors
+emomoutous
+comoffined
+subtemether
+virity
+laism
+addicones
+corow
+osprehron
+nostatops
+bulnes
+graeaky
+culaylok
+ovetitearsing
+stolworows
+queacquaric
+mousheling
+biltre
+hebitenes
+kaplusnery
+promong
+bentick
+caling
+seding
+renulantedis
+thorormets
+propariumite
+sphrejugic
+hiceoly
+ostratilist
+pertic
+brocadiate
+sciate
+undiuman
+featik
+weekiecest
+unalleryin
+bubed
+shous
+errolardraw
+shochappely
+bathateattee
+steddled
+trupporitiong
+maralsedism
+enter
+roschred
+sonatorings
+waysting
+nognoncong
+vantenich
+everia
+trablet
+bolded
+phled
+chably
+euding
+plarive
+omast
+outciptors
+luidedle
+sulisomous
+suraish
+prensist
+progalish
+prover
+mutrumster
+phorled
+mennonds
+musnesuble
+nomyx
+tessivens
+nospang
+lubachemets
+bewinalped
+pardiess
+haphalters
+unines
+catical
+oromurita
+citutfulchron
+sulaisenandes
+lumeenous
+graming
+perefus
+tarilines
+undse
+sonspithenes
+obionistal
+ovativotorria
+lansionker
+frourin
+myablenon
+penticals
+mophalicoming
+refuncied
+blate
+unflene
+ching
+mockled
+indecks
+prime
+feiling
+kiney
+exenter
+nocitriress
+putwa
+calism
+irorte
+gutersterrus
+opolinitio
+diumee
+criletsisate
+ringlyclae
+entiperring
+jamby
+unpanite
+heroarlistric
+geened
+mortionds
+gulatopt
+weeheologess
+spicks
+ponveres
+culgintrium
+ovenourphyla
+bercuslest
+iment
+shboocabbi
+azygongnite
+phiter
+analle
+rakermisas
+phroxerogy
+zemal
+rhubstaricous
+elareentonal
+sanid
+traked
+habsopic
+likerson
+ovismyl
+rogroster
+upstorang
+ingeous
+skimber
+goucrogencle
+colis
+vanstamptions
+trial
+nonectionogic
+chorso
+somoddawings
+nobly
+sibbles
+unray
+cylite
+chetchertrals
+kamerfic
+kamor
+invadrutfulne
+aurasm
+heaed
+parhexe
+chlyted
+exhampoiroid
+coebed
+lahalle
+wagnous
+latic
+foriansenud
+halogeemuzze
+unnuist
+unwascoms
+bazing
+bartiness
+outory
+hettactice
+brauthump
+tomate
+rewootprotole
+ticaloquis
+surinicke
+canlymone
+chightflecal
+frity
+sopealle
+repla
+pranded
+enconout
+phystrove
+shlydinextia
+barquer
+morping
+omotipucties
+pelical
+crode
+sylogrided
+palting
+coroc
+keysimeltia
+phoaxiel
+fulabled
+pretrus
+exobas
+hurrersthyry
+couns
+sudia
+semiliaceted
+hexertic
+arist
+fighest
+ouism
+dipprang
+manthios
+proophip
+abightneaw
+vusly
+gorenetiass
+prouggit
+glinex
+prize
+inter
+heally
+quipse
+nonnia
+jecera
+copstisist
+enderraphetke
+rediezine
+eatitabelly
+rertiver
+joking
+ominde
+botownle
+diphinsoptify
+nonaphy
+seiked
+equatrin
+nondes
+bation
+moril
+aphirced
+caral
+diembus
+rherring
+phaecelly
+lowdoss
+parbury
+overmic
+unwrostsweed
+lical
+rhapiles
+zothels
+juturosts
+kelitercheawl
+ablet
+jundeni
+cosissubile
+dalinter
+agant
+calcint
+supentic
+ruperefule
+ircheoge
+remitysally
+unispoling
+pindrolin
+shitize
+athent
+wable
+inger
+elearies
+previd
+sclotolla
+splasts
+inaped
+barrous
+foludender
+oases
+hybasity
+pyinge
+antrulcum
+asesins
+nontavouguton
+droling
+milobaries
+mular
+moidian
+inecipariusly
+mitaterehers
+oughtfun
+paphoriberted
+emiter
+pelvers
+wager
+mopecting
+tautoconwress
+fignae
+odiviabolshre
+decuripicephe
+unchurale
+depidiparry
+popharimanct
+unignal
+ingistram
+eigeaftly
+magracturna
+upents
+perish
+super
+snammeles
+diciantle
+lonesmon
+pootslogrover
+smierittle
+oveltackbal
+imenteoludla
+troust
+dexable
+spradetroms
+dianicaride
+mismic
+foomer
+aritridic
+squawking
+ousse
+unarommetrol
+somnic
+stics
+dallings
+oxanja
+galcalidefed
+culicaldelles
+clascadorse
+nonic
+begaturnatid
+hessithly
+mendograing
+ilessod
+prochee
+nonstaice
+syntells
+inessectible
+whimaterond
+supen
+cistartip
+adored
+acerpsalotesm
+sinwiltia
+cheass
+erallandic
+spail
+metickeled
+whaends
+cephil
+oblumroponesi
+etratic
+slayna
+galluts
+podure
+taricaline
+cocon
+cluinsubbity
+parmid
+tweekticled
+doled
+prianongame
+conativing
+irdemelae
+pacettiergy
+hypones
+legarhanond
+weadaly
+prenze
+puttigmenred
+gologge
+beverlyclooma
+wingly
+ecomones
+corings
+furocs
+myinonsubbled
+waras
+pugammingly
+silly
+mania
+torne
+firle
+ostrocully
+consist
+ammericate
+snasant
+diroblessly
+crejuiling
+dosifieries
+cytaus
+unprobrossly
+prify
+plitily
+therian
+mittless
+vatogi
+dermarkabstry
+noyled
+conjis
+psycola
+tattlee
+chiclaged
+ingly
+demnianning
+gontode
+storkingly
+stonspor
+ariarism
+dicadytions
+pipose
+procint
+pawnium
+staltrously
+trizate
+super
+overic
+clonly
+hiestater
+diciamerm
+bitical
+jecrolds
+polubetandhon
+uperpolly
+queopermoser
+wormacele
+ackered
+shish
+emetic
+silitte
+palify
+enhaed
+jurnescale
+mocloggly
+cablectne
+unwitres
+tacklitter
+loonally
+lontivel
+entric
+overang
+polaning
+unrost
+aphypod
+flatresing
+chdid
+urrerfur
+tollate
+foroutreriet
+coplolimaoly
+drourenreter
+satephymbirs
+billy
+poeots
+tompluxial
+conkine
+manoncors
+digus
+emelyclate
+dapton
+eloustoia
+uphaentracke
+djudraparia
+comer
+nothed
+rangly
+tansualed
+deria
+cadae
+perectreve
+nolops
+obecteness
+inessantim
+hucke
+mealarity
+idant
+plubardingres
+mindesslars
+shilophy
+mancifoech
+brophy
+pionardace
+sodlings
+urlabled
+heascene
+aquiney
+recroaposike
+egisounnet
+copse
+gangermably
+gaslic
+atlet
+unmen
+reteree
+suploid
+lasin
+siseleoidae
+uncetessm
+billy
+lilie
+reakimic
+pagic
+ablensce
+sultituncaty
+mical
+arlous
+tatiosaclous
+laturenazerol
+cibrids
+inesh
+ovokonsopigh
+unate
+suffeepyene
+fistelly
+nocomishulper
+nopolvulne
+billocal
+exatokets
+mumpleiting
+pines
+tracully
+phanicon
+kityis
+plepropees
+ritranned
+unver
+ingle
+egults
+econg
+aplaudinths
+emata
+grammoush
+sweergatil
+remoing
+actogitte
+jacks
+comelanters
+bopaing
+chlowle
+groual
+imass
+feril
+fegal
+ingeexhaver
+gaticasmote
+encenetic
+paphy
+faust
+bataccey
+yurers
+scinisal
+calitic
+dempiging
+comed
+gentiver
+coment
+taugn
+huromobythery
+nicult
+aspholinick
+ochawyni
+aponifick
+atousint
+unitages
+sneber
+preckbilter
+pilly
+sterawis
+speassemilip
+colde
+probessally
+bemastic
+tatic
+suming
+tiochents
+mousnel
+uninglotic
+condanciled
+mactal
+unswelyze
+colobilandate
+fluous
+achnic
+trapyoiste
+seassly
+tusne
+nochyonsubads
+scialuble
+scral
+dites
+inwarheal
+unrillizate
+tinscils
+ocory
+nominduce
+gating
+totaliched
+aryoching
+unonstin
+unter
+hymid
+undae
+unpus
+cuceattionets
+dedurew
+eucivvilited
+coriatupec
+niumickatryst
+mating
+cunresh
+prestscut
+outanne
+vinuiring
+podolteate
+miess
+tapogy
+mixtrableted
+mitiver
+mantion
+cacioughtne
+prepharte
+wichal
+uness
+ovencess
+antrated
+hesteroon
+egraghang
+mical
+suinallitita
+herticavy
+ismay
+gricrouser
+goracty
+homenth
+dighteely
+cumic
+piendery
+grocyly
+penes
+slinaris
+cheritus
+ovecta
+slychic
+prouse
+coginfacitt
+rounhan
+roply
+anolinde
+benninvagron
+unpopiess
+lagra
+petrimodmin
+thmed
+ellunemerses
+brostilock
+schalcialated
+tumdeve
+ungident
+epable
+logrovele
+fideho
+straty
+dismis
+prectoric
+cantar
+foacerwable
+tabillorne
+artonying
+alibluevomer
+forer
+dolizia
+trontatte
+bress
+scerwaddlemse
+ocous
+tiogil
+series
+arlids
+ellinvarus
+mooniahmes
+hemptert
+ephorked
+slish
+balelle
+uninal
+didgmachers
+eurisdocry
+nictrouncoran
+traguounbily
+trimbricae
+gablegis
+matribatic
+oversh
+cappeng
+entemuless
+scler
+modonappeerve
+perpose
+ceomagon
+pescrusnons
+difte
+nonessuper
+slyphanesor
+micysim
+subootic
+cousainfoly
+phypottion
+prowayl
+dings
+selatont
+forenyed
+thawed
+encoph
+ilbusle
+pones
+cutercumn
+ostummeman
+repard
+mucchrecting
+rerticrighthy
+hanist
+dryte
+coetrey
+piefla
+sulceacking
+hermorne
+roboyoding
+malisha
+clace
+revaliswoks
+occid
+squoutowning
+erinterlic
+graporn
+chish
+miavighlomish
+unvous
+hermanyxects
+macendeste
+patoust
+wistum
+adism
+pollismosoned
+pnedic
+nonasty
+amincting
+panal
+coettesel
+shens
+euxiennize
+knauraling
+hydae
+piensemic
+caravelly
+mativet
+spisrechypic
+coraceo
+decryper
+fagimenes
+pintgate
+turgeae
+ciontemetaw
+morme
+lopic
+boannesynal
+overseutis
+unrebrally
+girceis
+bilize
+psiken
+jecant
+aphoum
+diument
+plognalimmel
+puker
+quingicize
+phativerable
+cateers
+frocism
+kriatomess
+waudgy
+wanate
+psultiss
+nulairele
+aunic
+phiforopte
+podpauckma
+nolion
+genficowliss
+morager
+fiber
+unhanison
+spoly
+overoclapotio
+perea
+ourouck
+jemindernic
+nikanimmuts
+unpalled
+cphaguite
+inguseae
+gamipporily
+noidisbycle
+endemaric
+inexacheatic
+alciblescid
+supprotiells
+phian
+ovighted
+ovist
+festarcen
+tousceph
+trita
+holde
+exputiless
+apaximoon
+fingle
+undedul
+actious
+ingst
+oukute
+shipuped
+conperephold
+unand
+corded
+crist
+unpos
+cultes
+cintionvous
+magra
+stwortile
+brophy
+eptipbrutrack
+cusilepeigh
+thalkation
+dipolth
+sersister
+trygo
+scalbilies
+prelling
+sader
+sacaunways
+unsocavivers
+impess
+permitionst
+unist
+hesentritanic
+paleful
+gontiver
+menoddly
+mirecal
+denfory
+praty
+fulacealizes
+entle
+mugation
+aphoss
+hambuthormon
+laeoutsat
+unprea
+cophoth
+saffoloens
+camysts
+blity
+unfie
+mainebliene
+perof
+derounmed
+lented
+clesouss
+cluounetly
+hortler
+coposs
+reacidai
+spily
+abless
+frurumid
+dizariene
+herophita
+torhodelic
+voltylviren
+super
+unglavot
+remmals
+lacarruggs
+nomautompro
+donalabate
+terii
+biene
+bartialle
+phadrabys
+nessiliss
+drest
+trizesonilim
+tredroning
+megrectivist
+diumbulpirial
+glyclant
+cloniter
+droziner
+affeleekling
+wrazing
+alsints
+soadly
+briate
+cotherodally
+seepharies
+stetaric
+meter
+sperdming
+savalne
+latlegmes
+ephaempatenic
+cologia
+scrality
+bodotora
+saticamet
+macidell
+ockervast
+sulingne
+quahoves
+artozied
+untelataby
+viffiesucky
+eurficisism
+caveoroic
+mipibly
+biumourprect
+brier
+ablen
+neasic
+prant
+ouffids
+eprier
+ormined
+adding
+phies
+bolte
+seredles
+frinstenic
+overgion
+nomong
+merbstrusnes
+eurbiatiots
+dency
+penests
+atums
+rizintabla
+ruatonost
+theder
+beass
+knarbraciid
+oxytive
+ronsts
+eupthious
+dipticale
+nophanabu
+natally
+exadmemac
+nognaromers
+premish
+wority
+ploss
+harbrolocuass
+conky
+recoterl
+obdisly
+priticonsh
+hante
+posismonver
+secens
+patilea
+humpbous
+tunsugge
+expepanopion
+troperoled
+tiont
+nonsurectalma
+ressh
+mitiority
+rapped
+niand
+reout
+herstaner
+djoidal
+yactidiabley
+fooduc
+drocull
+armastes
+coloperiid
+liticial
+reamailluge
+unhogenous
+bashipete
+unkinchasibe
+dinxideboa
+landectom
+nones
+snetria
+ablarcial
+mycla
+sudismsors
+dicaria
+placquistaged
+ching
+livarin
+pooker
+proatobablasm
+rapon
+trist
+uncrectryxery
+difaillaate
+finon
+nably
+unchend
+vitthrionise
+thotics
+jeaess
+larcona
+venchant
+resek
+noncian
+tabnophooseds
+baterfaw
+crapyre
+prable
+astur
+swayle
+hyptes
+trygoomon
+monignost
+forpharmater
+oxera
+exarted
+adishexottly
+cyprogliate
+tacry
+thergente
+recalian
+aftivis
+haphider
+unstio
+mitagneasis
+honic
+flies
+difilized
+subeass
+nontetortat
+sconed
+droider
+tulge
+bakergoopper
+munban
+anesqual
+hythri
+haking
+derle
+druded
+prepia
+hypodulpor
+unsnese
+chortz
+cychinguloth
+hyock
+piuminouted
+lophia
+assoma
+slawereevol
+dilds
+polike
+nopidiatole
+vercaken
+plars
+unden
+booscusnerete
+inocrolli
+gestees
+coodystly
+burate
+pematicifers
+extractioning
+assentock
+spreedawalne
+therpiatrier
+stost
+cathrong
+calned
+diangbely
+atisoolone
+unclesines
+crosic
+spershless
+sworthentish
+phicadess
+overess
+sulth
+unpukohy
+lenic
+unparsigitive
+parth
+adeboged
+aning
+dylue
+mingedisibal
+mistiveminga
+unerwiedishic
+undisting
+untulailison
+proof
+imanoianter
+incers
+garitioleing
+dileing
+pigaung
+helis
+preous
+sonsed
+vering
+gligambalatic
+soress
+etrater
+perlisised
+gerbus
+zoads
+arceated
+cotremon
+eneogue
+rexacal
+hydarailliver
+humot
+ciosince
+nishus
+mickly
+growitic
+applatines
+disiouttes
+gymyroft
+pradjete
+cristleri
+hydrous
+stramous
+grath
+undam
+fadelicao
+aelly
+secathorks
+retrownes
+carsid
+canics
+innia
+trieress
+virammulawnic
+sputsm
+entingbetojer
+lutry
+prephonesty
+unlibinaphlid
+alaric
+aiscover
+aistaning
+piersious
+lutly
+turboundinia
+beforien
+chillanclas
+hetic
+ainly
+apidarticias
+propiturgeng
+orleping
+chemickst
+ambome
+shoparturect
+aquintesti
+charper
+proic
+derlawnes
+tacheridaes
+ecard
+poloss
+ticidia
+aenth
+skiess
+eevolitic
+ejummouted
+tedia
+betion
+clacricon
+unistos
+moroaniculne
+inescriseudic
+rattions
+shmedly
+trocalls
+aherser
+menoitalismi
+agisoliodilys
+paliat
+matiospest
+pomenessity
+netbiled
+prioutal
+ances
+saing
+acquia
+laints
+ration
+hedialous
+agetheake
+lapergaliumst
+deric
+scentraphally
+fagrediodly
+dicuad
+tabledis
+doust
+cupic
+orisainulened
+fantit
+untele
+nopatiesis
+mercurimpax
+reancong
+ringly
+berming
+imuses
+schepulleess
+tiong
+exhaf
+uncip
+proplanart
+uptercated
+trove
+sumeterseming
+nonced
+inartubstorus
+aptivitne
+nessugaus
+retatel
+aliene
+throoin
+aminterermula
+dyary
+fulater
+geustchioner
+pidis
+folorotisted
+erhum
+undromy
+sestaleess
+sinawkedect
+bramardonae
+anate
+cansper
+cighthot
+subsuddlis
+agoeflutban
+amomnatchal
+doalate
+costrant
+lident
+wingness
+purnan
+bliting
+makahme
+hytome
+glyer
+calintness
+phots
+galigescows
+vationst
+ticambants
+hobshant
+japtism
+ematevize
+secernics
+imprupelled
+buttad
+paring
+caminising
+sking
+unpereing
+inguity
+wilimpulte
+fultromataval
+emnot
+tional
+mareer
+imused
+zonpume
+balky
+turiandeadrus
+gnintlypophic
+ferokinre
+igueuct
+gonemper
+nobionishmon
+phomotoirer
+ductiurum
+irebrovetrock
+anextes
+bopis
+runsmar
+phally
+soplogaradsm
+subootot
+obard
+idieve
+dedae
+behupers
+simuland
+napen
+stoncies
+unbarbomines
+quitia
+ousomyes
+casitimmus
+retish
+monartiversh
+immoders
+picitier
+gurnify
+teriable
+brous
+marrinke
+undea
+pelootcre
+hologible
+cutol
+hedier
+caverentast
+brichae
+ostid
+synaddepeny
+cidal
+sasitter
+ospal
+blizzleta
+chmorousts
+epanitze
+reculed
+bebran
+pally
+repret
+aralneti
+billwayisona
+tonachine
+dictabipingly
+coephther
+cropse
+sencon
+aphoaphank
+ordichal
+restismied
+aters
+untrely
+tomphamism
+reitrizably
+labstenting
+ovelland
+nerealid
+ragly
+trublions
+iwing
+grater
+unansynirl
+ecussot
+emenersess
+tainiofass
+scleimete
+caute
+untess
+bionepoing
+unpis
+prepole
+pical
+pripus
+hytarits
+forricaliker
+apiluses
+inlist
+callepies
+idechene
+reepraing
+stiting
+unsemipezed
+whared
+shthyang
+zaity
+medne
+couscrosa
+aouiftericial
+fluvia
+yumilarm
+holud
+unchnest
+inisallan
+ingible
+nonals
+monies
+musnest
+rholdiver
+prola
+junproce
+trinted
+flevitter
+undernwern
+forte
+supyconepse
+coplint
+tionas
+trept
+undgicatot
+periony
+arkioen
+iminamidiosm
+engoost
+nated
+radandae
+pringe
+hallinateloil
+nopeternae
+unaces
+rhymad
+yoglakine
+suggeeking
+midefectablan
+trostion
+snesurgente
+foreae
+placia
+itatty
+innia
+hablecule
+tuatic
+kiesishish
+cantomycler
+myogusia
+fraing
+lared
+actritheremia
+aformergisms
+gationallass
+titienthraily
+lainess
+caoro
+warizerles
+barmy
+cress
+fosoluetous
+juditiocelly
+pliant
+necoiled
+myedusessized
+crysisadephic
+lylly
+sulshing
+gring
+guliarhue
+noble
+unchroong
+vagedia
+irtical
+notony
+coyan
+stolaserfory
+unefulluver
+bally
+micamolut
+fordisten
+corph
+psylinted
+schrounfechy
+orplatomes
+allate
+cozonthovess
+nonst
+damerod
+clogigraxing
+endyphic
+coxintela
+flily
+disammonidate
+oseexapio
+bableuro
+coputs
+saled
+derioagrit
+jambed
+tionpramene
+copely
+blachinplants
+mabled
+resio
+squationg
+entia
+jacking
+ingue
+ladjawdeing
+ouarniscon
+regonilic
+migagniery
+pirtmaxmaced
+unmines
+grastai
+glypherial
+aensatoplect
+slingla
+bledes
+bliblinee
+cherid
+docid
+elableggly
+dized
+tater
+bogingly
+undanter
+gless
+expas
+twise
+pulfic
+nollinnic
+arrecs
+hamorky
+upeneudist
+tioniatious
+ettorommen
+hydravaless
+wistolingul
+scurrumetam
+hitoncitie
+rentonexple
+viteltite
+biong
+pticheists
+funpute
+bervic
+stmal
+rewinaral
+maintrupse
+undeculphist
+neudies
+bagis
+aricalid
+colusiania
+ingly
+pluts
+acerioning
+krerapates
+inglize
+ancreal
+squilly
+viliazill
+racent
+menceracki
+gestasation
+undis
+contefied
+demsimial
+pally
+equed
+dromod
+henogitiess
+ectoingnes
+vanicitry
+cidikieries
+mensimid
+alialindifish
+nonclowping
+podophum
+thernicides
+salizestilly
+bractfugal
+presm
+renianon
+distura
+troners
+cuderaftas
+curoliness
+countlasty
+qualomente
+swerboate
+ainalse
+develoe
+fecosillut
+mirle
+gotal
+nooman
+charhythed
+aphocatic
+ickeepaing
+glyze
+fardpaeently
+triecatopre
+unadomed
+cumrous
+ismated
+pycofle
+exhia
+preepogithets
+imbid
+rousyne
+inionan
+cliss
+pingurophous
+hynert
+unmal
+metes
+dolse
+unidled
+santist
+submince
+epsyna
+hanes
+crull
+planic
+verigraphan
+surped
+culieurines
+sacition
+bumium
+hulal
+ducet
+ruism
+bilancermette
+tries
+pralize
+sulfrisele
+scrads
+legraku
+pulan
+cabletre
+presibegaulte
+caste
+cously
+larsiverace
+stespely
+syperson
+desommer
+citamy
+humonis
+bruppele
+fisidaher
+fatwafte
+enous
+noune
+joustrue
+odownizings
+whicausconta
+phicarrills
+halie
+pinath
+liserdrows
+submered
+maluartilicar
+unhearet
+racetin
+hylly
+iness
+suzzita
+prosly
+wunisarbser
+phetreincate
+winonke
+idisinial
+brashed
+etrabe
+rudobrovulan
+deplele
+backer
+beadjams
+somerspinver
+mognalk
+nonick
+istorilly
+unourns
+nangly
+nyison
+fulam
+nolds
+farcent
+belorierig
+mainess
+spervex
+podony
+teeramiess
+renes
+merne
+nalogmake
+ekiesishasing
+exisromed
+hasas
+melshinymowte
+sephrooles
+anklier
+hipoiture
+nesteroink
+nocharts
+ocaphastabled
+minin
+henindry
+ependeryly
+iverminest
+punmaric
+lucoadueist
+proticits
+ptingnial
+cractingent
+dageounper
+brourvelowar
+gymatinil
+coniess
+volike
+oussudissa
+buron
+gonidamucila
+bumasopagy
+hexperieschy
+bomardly
+neyeronary
+grahdome
+unsubless
+noverha
+paparbight
+caver
+diffelize
+bacer
+crumishil
+fizer
+aning
+apanae
+warter
+sechnos
+quatichement
+unquily
+coniso
+cyable
+geothrieric
+sallodiators
+mulvers
+chinerque
+ishoryous
+grefrenting
+metanciant
+seenonic
+fluing
+colunment
+vetracus
+resuper
+bewiscring
+prids
+yednestris
+actry
+afidally
+bakisalites
+canthmeraza
+scrode
+metalicalagan
+vately
+cosper
+veradectuadia
+cornomessisce
+afreseurnatic
+sulan
+kagrateriar
+bingelifical
+azoaceret
+tenely
+sclitorrele
+secolory
+derrus
+excielic
+press
+mister
+laxic
+unsermeminter
+brafess
+schuralgend
+mactied
+surgeirk
+lodae
+unantrot
+deagum
+nonashical
+obrifenned
+rectia
+steded
+suttalarble
+stong
+parate
+pannurin
+tailes
+curac
+joicarefic
+wilike
+hoplogy
+pubst
+polod
+dhaviroping
+enizimerely
+hitilles
+wayce
+torics
+melwomy
+brate
+sating
+priambrize
+hipcon
+oblinste
+pulatisters
+batomativily
+tormestorind
+bratal
+preamys
+demunnuplumie
+billing
+exesched
+antol
+laging
+macenia
+hatoly
+ficoylet
+emairre
+stong
+ragines
+magingly
+eynagy
+phyposs
+oventsupets
+sponned
+presslowelew
+fluclove
+berakingarn
+loratter
+metifaceness
+ovelizaman
+bowdest
+apies
+lateness
+brackerm
+tring
+cockse
+datied
+seraitively
+uthubforints
+ethaphers
+calphylling
+cortheadile
+psemande
+disconfly
+mitate
+ampitaing
+jitallogia
+matisterria
+brote
+cotyleron
+pechous
+disma
+ashibool
+olcelly
+purageable
+veious
+ospode
+achfuns
+unerle
+latundianer
+osopluivoite
+arbintsh
+tophor
+heableys
+blever
+scitae
+swarappee
+nostil
+luddean
+staporionom
+horion
+water
+traver
+efealne
+calipsa
+brielch
+materetels
+marnes
+retioni
+chemicall
+subul
+mition
+magmarged
+lestic
+nonmirial
+sperome
+olorn
+scaleous
+plarcia
+ineistors
+hurreadox
+barium
+ganonon
+hulpis
+heesqualite
+imple
+methouse
+aptiversm
+agesty
+tonsus
+logala
+reelted
+ackle
+froodixen
+riappitmely
+stoonism
+hoopty
+centroperfile
+lewitaimaing
+uniscingenon
+cassors
+tataller
+moritiongo
+trunred
+spoel
+remente
+hemiplashly
+amplocler
+occravan
+lishiginess
+tactroecred
+surse
+mimatiness
+culiced
+ulableadhefus
+vitivers
+mactifyidie
+defumos
+locheching
+leackediam
+nonagracemers
+sloaucken
+becorous
+bilothamy
+uncoverepic
+myridiess
+aurps
+achaned
+mudectic
+mentrondivera
+unizemna
+nomprecism
+sperks
+decton
+sting
+chous
+thiffogra
+daelymatict
+teled
+iroicarlic
+unbrite
+craddoingury
+drascid
+konicars
+trimbly
+mopaule
+nonlinangen
+orkent
+appyrollmo
+feros
+chier
+probinunche
+woormanovere
+blythatcroc
+appings
+volormis
+cabiliusnes
+unintity
+refrevicale
+aumprecor
+ticurous
+batal
+quire
+aulum
+misablerct
+compleeter
+emins
+plonary
+unbang
+caphagase
+matiopt
+aricarty
+exoding
+prouvist
+readia
+matchappria
+unkso
+krucismaury
+tasingly
+gogroontinded
+detrint
+miscacreric
+tanstar
+fored
+wincenidity
+dankable
+oodness
+ortin
+coryptotive
+ellsmatot
+sluslellic
+nores
+irwidevine
+psyperin
+cotmana
+lasesanauttu
+abentler
+untidaeranted
+responflotars
+palforete
+besbysiong
+caperless
+cloquiniss
+warteng
+nugan
+orpos
+fugus
+greptive
+undecum
+overoidifidar
+yadmoly
+capperic
+fligly
+proseled
+squade
+grize
+bolan
+obultatic
+roencul
+equist
+eviatinced
+minin
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index e3b7a68f..6b757fd6 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/app/src/main/res/values/arrays.xml
@@ -19,4 +19,33 @@
<item>FILE_FIRST</item>
<item>INDEPENDENT</item>
</string-array>
+ <string-array name="capitalization_type_entries">
+ <item>0</item>
+ <item>1</item>
+ <item>2</item>
+ <item>3</item>
+ </string-array>
+ <string-array name="capitalization_type_values">
+ <item>lowercase</item>
+ <item>UPPERCASE</item>
+ <item>TitleCase</item>
+ <item>Sentencecase</item>
+ </string-array>
+ <string-array name="xk_range_1_10">
+ <item>1</item>
+ <item>2</item>
+ <item>3</item>
+ <item>4</item>
+ <item>5</item>
+ <item>6</item>
+ <item>7</item>
+ <item>8</item>
+ <item>9</item>
+ <item>10</item>
+ </string-array>
+ <string-array name="pwgen_provider">
+ <item>classic</item>
+ <item>xkpasswd</item>
+ </string-array>
+
</resources>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index ae8ec622..b244a877 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -190,6 +190,25 @@
<string name="pwgen_no_chars_error">No characters included</string>
<string name="pwgen_length_too_short_error">Length too short for selected criteria</string>
+ <!-- XKPWD password generator -->
+ <string name="xkpwgen_title">Xkpasswd Generator</string>
+ <string name="xkpwgen_length">Total words</string>
+ <string name="xkpwgen_separator">Separator</string>
+ <string name="xkpwgen_custom_dict_imported">Custom wordlist: %1$s</string>
+ <string name="xkpwgen_separator_character">separator character</string>
+ <string name="xkpwgen_numbers">numbers:</string>
+ <string name="xkpwgen_symbols">symbols:</string>
+ <string name="xkpwgen_builder_error">Selected dictionary does not contain enough words of given length %1$d..%2$d</string>
+
+ <!-- XKPWD prefs -->
+ <string name="xkpwgen_pref_gentype_title">Password generator type</string>
+ <string name="xkpwgen_pref_custom_dict_title">Custom wordlist</string>
+ <string name="xkpwgen_pref_custom_dict_summary_on">Using custom wordlist file</string>
+ <string name="xkpwgen_pref_custom_dict_summary_off">Using built-in wordlist</string>
+ <string name="xkpwgen_pref_custom_dict_picker_title">Custom worldlist file</string>
+ <string name="xkpwgen_pref_custom_dict_picker_summary">Tap to pick a custom wordlist file containing one word per line</string>
+
+
<!-- ssh keygen fragment -->
<string name="ssh_keygen_length">Length</string>
<string name="ssh_keygen_passphrase">Passphrase</string>
@@ -285,4 +304,6 @@
<string name="pref_search_on_start_hint">Open search bar when app is launched</string>
<string name="pref_search_from_root">Always search from root</string>
<string name="pref_search_from_root_hint">Search from root of store regardless of currently open directory</string>
+ <string name="password_generator_category_title">Password Generator</string>
+
</resources>
diff --git a/app/src/main/res/xml/preference.xml b/app/src/main/res/xml/preference.xml
index dfbb44a4..3d91cbfa 100644
--- a/app/src/main/res/xml/preference.xml
+++ b/app/src/main/res/xml/preference.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
-<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
<androidx.preference.PreferenceCategory android:title="@string/pref_git_title">
<androidx.preference.Preference
android:key="git_server_info"
@@ -48,6 +49,27 @@
android:title="@string/pref_key_title" />
</androidx.preference.PreferenceCategory>
+ <androidx.preference.PreferenceCategory android:title="@string/password_generator_category_title">
+ <androidx.preference.ListPreference
+ android:key="pref_key_pwgen_type"
+ android:title="@string/xkpwgen_pref_gentype_title"
+ android:defaultValue="classic"
+ android:entries="@array/pwgen_provider"
+ android:entryValues="@array/pwgen_provider"
+ app:useSimpleSummaryProvider="true"
+ android:persistent="true" />
+ <androidx.preference.CheckBoxPreference
+ android:key="pref_key_is_custom_dict"
+ android:title="@string/xkpwgen_pref_custom_dict_title"
+ android:summaryOn="@string/xkpwgen_pref_custom_dict_summary_on"
+ android:summaryOff="@string/xkpwgen_pref_custom_dict_summary_off"/>
+ <androidx.preference.Preference
+ android:key="pref_key_custom_dict"
+ android:title="@string/xkpwgen_pref_custom_dict_picker_title"
+ android:summary="@string/xkpwgen_pref_custom_dict_picker_summary"
+ android:dependency="pref_key_is_custom_dict"/>
+ </androidx.preference.PreferenceCategory>
+
<androidx.preference.PreferenceCategory android:title="@string/pref_general_title">
<androidx.preference.EditTextPreference
android:defaultValue="45"