Last active
September 20, 2022 06:06
-
-
Save arik-so/09b7d3567562b60fff43974020c33eb5 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #[cfg(test)] | |
| mod tests { | |
| use std::cmp::min; | |
| use bitcoin::hashes::Hash; | |
| use bitcoin::hashes::hex::ToHex; | |
| use secp256k1::rand; | |
| use secp256k1::rand::Rng; | |
| #[test] | |
| /// | |
| /// Entropy bits to word count: | |
| /// 128 bits => 12 words | |
| /// 160 bits => 15 words | |
| /// 192 bits => 18 words | |
| /// 224 bits => 21 words | |
| /// 256 bits => 24 words // technically max supported | |
| /// 288 bits => 27 words | |
| /// 320 bits => 30 words | |
| fn generate_sorted_mnemonic() { | |
| let entropy_bits = 128; | |
| assert!(entropy_bits >= 128, "Entropy must be at least 128 bits"); | |
| assert_eq!(entropy_bits % 32, 0, "Entropy must be a multiple of 32 bits"); | |
| let final_word_count = (entropy_bits * 3) / 32; | |
| let entropy_bytes = entropy_bits / 8; | |
| let mut rng = rand::thread_rng(); | |
| loop { | |
| let mut random_bytes = vec![0u8; entropy_bytes]; | |
| for current_byte in random_bytes.iter_mut() { | |
| *current_byte = rng.gen() | |
| } | |
| let undenals = octets_to_undenals(&random_bytes); | |
| println!("undenals:"); | |
| print_undenals(&undenals); | |
| let mut sorted_undenals = sort_undenals_preserving_last(&undenals.clone()); | |
| println!("sorted undenals:"); | |
| print_undenals(&sorted_undenals); | |
| let sorted_bytes = undenals_to_octets(&sorted_undenals); | |
| let sorted_bytes = sorted_bytes[0..random_bytes.len()].to_vec(); | |
| println!("sorted bytes:"); | |
| print_bytes(&sorted_bytes); | |
| // this condition may not necessarily be met | |
| // assert_eq!(random_bytes.last(), sorted_bytes.last()); | |
| // now, let's calculate the checksum | |
| let hash = bitcoin::hashes::sha256::Hash::hash(&sorted_bytes).to_vec(); | |
| // println!("hash: {}", hash.to_hex()); | |
| let mut checksummed_bytes = sorted_bytes.clone(); | |
| let bits_to_append = entropy_bits / 32; | |
| let bytes_to_append = (bits_to_append + 7) / 8; | |
| checksummed_bytes.extend_from_slice(&hash[0..bytes_to_append]); | |
| // println!("raw checksummed bytes:"); | |
| // print_bytes(&checksummed_bytes); | |
| let last_byte_bits_to_preserve = (bits_to_append % 8) as u32; | |
| if last_byte_bits_to_preserve != 0 { | |
| let last_byte_mask = 255 - 2u8.pow(8 - last_byte_bits_to_preserve) + 1; | |
| // println!("last byte mask: {:b}", last_byte_mask); | |
| let last_index = checksummed_bytes.len() - 1; | |
| let last_byte = checksummed_bytes[last_index]; | |
| checksummed_bytes[last_index] = (last_byte & last_byte_mask); | |
| } | |
| println!("checksummed bytes:"); | |
| print_bytes(&checksummed_bytes); | |
| let untrimmed_checksummed_undenals = octets_to_undenals(&checksummed_bytes); | |
| let checksummed_undenals = untrimmed_checksummed_undenals[0..final_word_count].to_vec(); | |
| println!("checksummed undenals:"); | |
| print_undenals(&checksummed_undenals); | |
| let mut resorted_undenals = checksummed_undenals.clone(); | |
| resorted_undenals.sort(); | |
| if checksummed_undenals == resorted_undenals { | |
| println!("finalized mnemonic: {}", checksummed_bytes.to_hex()); | |
| let dictionary = get_mnemonic_words(); | |
| let mut words = Vec::with_capacity(checksummed_undenals.len()); | |
| for current_value in checksummed_undenals { | |
| let current_word = &dictionary[current_value as usize]; | |
| words.push(current_word.to_owned()); | |
| } | |
| println!("mnemonic phrase: {}", words.join(" ")); | |
| break; | |
| } | |
| } | |
| } | |
| fn sort_undenals_preserving_last(undenals: &[u16]) -> Vec<u16> { | |
| let mut sorted_undenals = undenals.to_vec(); | |
| sorted_undenals.sort(); | |
| sorted_undenals | |
| // let count = undenals.len(); | |
| // let mut sortable_undenals = (&undenals[0..count-1]).to_vec(); | |
| // sortable_undenals.sort(); | |
| // sortable_undenals.push(undenals[count-1]); | |
| // sortable_undenals | |
| } | |
| fn octets_to_undenals(octets: &[u8]) -> Vec<u16> { | |
| let bits = octets.len() * 8; | |
| let undenal_length = (bits + 10) / 11; | |
| let mut current_byte_index = 0; | |
| let mut remaining_byte_bits = 8; | |
| let mut undenals = vec![0u16; undenal_length]; | |
| let mut current_undenal_index = 0; | |
| let max_undenal = 2u16.pow(11) - 1; | |
| for current_undenal in undenals.iter_mut() { | |
| let mut remaining_undenal_bits = 11; | |
| current_undenal_index += 1; | |
| while remaining_undenal_bits > 0 { | |
| if current_byte_index >= octets.len() { | |
| break; | |
| } | |
| let current_byte = octets[current_byte_index] as u16; | |
| let bits_to_consume = min(remaining_byte_bits, remaining_undenal_bits); | |
| let offset = remaining_undenal_bits-remaining_byte_bits; | |
| // println!("offset: {}", offset); | |
| let delta = if offset >= 0 { | |
| current_byte << offset | |
| } else { | |
| // print!("O{}>>{} + ", current_byte_index+1, -offset); | |
| current_byte >> (-offset) | |
| }; | |
| let restricted_delta = delta & max_undenal; | |
| *current_undenal += restricted_delta; | |
| remaining_undenal_bits -= bits_to_consume; | |
| remaining_byte_bits -= bits_to_consume; | |
| if remaining_byte_bits == 0 { | |
| current_byte_index += 1; | |
| remaining_byte_bits = 8; | |
| } | |
| } | |
| } | |
| undenals | |
| } | |
| fn undenals_to_octets(undenals: &[u16]) -> Vec<u8> { | |
| let bits = undenals.len() * 11; | |
| let octet_length = (bits + 7) / 8; | |
| let mut current_undenal_index = 0; | |
| let mut remaining_undenal_bits = 11; | |
| let mut octets = vec![0u8; octet_length]; | |
| let mut current_byte_index = 0; | |
| let max_bit = 255; | |
| for current_byte in octets.iter_mut() { | |
| let mut remaining_bits = 8; | |
| while remaining_bits > 0 { | |
| if current_undenal_index >= undenals.len() { | |
| break; | |
| } | |
| let current_undenal = undenals[current_undenal_index] as u16; | |
| let bits_to_consume = min(remaining_undenal_bits, remaining_bits); | |
| let offset = remaining_bits - remaining_undenal_bits; | |
| let delta = if offset >= 0 { | |
| current_undenal << offset | |
| } else { | |
| current_undenal >> (-offset) | |
| }; | |
| let restricted_delta = (delta & max_bit) as u8; | |
| *current_byte += restricted_delta; | |
| remaining_bits -= bits_to_consume; | |
| remaining_undenal_bits -= bits_to_consume; | |
| if remaining_undenal_bits == 0 { | |
| current_undenal_index += 1; | |
| remaining_undenal_bits = 11; | |
| } | |
| } | |
| } | |
| octets | |
| } | |
| fn print_undenals(undenals: &[u16]){ | |
| println!("{:?}", undenals); | |
| for current_undenal in undenals { | |
| print!("{:011b} ", current_undenal) | |
| } | |
| print!("\n"); | |
| } | |
| fn print_bytes(bytes: &[u8]){ | |
| println!("{:?}", bytes); | |
| for current_byte in bytes { | |
| print!("{:08b} ", current_byte) | |
| } | |
| print!("\n"); | |
| } | |
| fn get_mnemonic_words() -> Vec<String> { | |
| vec![ | |
| "abandon".to_string(), | |
| "ability".to_string(), | |
| "able".to_string(), | |
| "about".to_string(), | |
| "above".to_string(), | |
| "absent".to_string(), | |
| "absorb".to_string(), | |
| "abstract".to_string(), | |
| "absurd".to_string(), | |
| "abuse".to_string(), | |
| "access".to_string(), | |
| "accident".to_string(), | |
| "account".to_string(), | |
| "accuse".to_string(), | |
| "achieve".to_string(), | |
| "acid".to_string(), | |
| "acoustic".to_string(), | |
| "acquire".to_string(), | |
| "across".to_string(), | |
| "act".to_string(), | |
| "action".to_string(), | |
| "actor".to_string(), | |
| "actress".to_string(), | |
| "actual".to_string(), | |
| "adapt".to_string(), | |
| "add".to_string(), | |
| "addict".to_string(), | |
| "address".to_string(), | |
| "adjust".to_string(), | |
| "admit".to_string(), | |
| "adult".to_string(), | |
| "advance".to_string(), | |
| "advice".to_string(), | |
| "aerobic".to_string(), | |
| "affair".to_string(), | |
| "afford".to_string(), | |
| "afraid".to_string(), | |
| "again".to_string(), | |
| "age".to_string(), | |
| "agent".to_string(), | |
| "agree".to_string(), | |
| "ahead".to_string(), | |
| "aim".to_string(), | |
| "air".to_string(), | |
| "airport".to_string(), | |
| "aisle".to_string(), | |
| "alarm".to_string(), | |
| "album".to_string(), | |
| "alcohol".to_string(), | |
| "alert".to_string(), | |
| "alien".to_string(), | |
| "all".to_string(), | |
| "alley".to_string(), | |
| "allow".to_string(), | |
| "almost".to_string(), | |
| "alone".to_string(), | |
| "alpha".to_string(), | |
| "already".to_string(), | |
| "also".to_string(), | |
| "alter".to_string(), | |
| "always".to_string(), | |
| "amateur".to_string(), | |
| "amazing".to_string(), | |
| "among".to_string(), | |
| "amount".to_string(), | |
| "amused".to_string(), | |
| "analyst".to_string(), | |
| "anchor".to_string(), | |
| "ancient".to_string(), | |
| "anger".to_string(), | |
| "angle".to_string(), | |
| "angry".to_string(), | |
| "animal".to_string(), | |
| "ankle".to_string(), | |
| "announce".to_string(), | |
| "annual".to_string(), | |
| "another".to_string(), | |
| "answer".to_string(), | |
| "antenna".to_string(), | |
| "antique".to_string(), | |
| "anxiety".to_string(), | |
| "any".to_string(), | |
| "apart".to_string(), | |
| "apology".to_string(), | |
| "appear".to_string(), | |
| "apple".to_string(), | |
| "approve".to_string(), | |
| "april".to_string(), | |
| "arch".to_string(), | |
| "arctic".to_string(), | |
| "area".to_string(), | |
| "arena".to_string(), | |
| "argue".to_string(), | |
| "arm".to_string(), | |
| "armed".to_string(), | |
| "armor".to_string(), | |
| "army".to_string(), | |
| "around".to_string(), | |
| "arrange".to_string(), | |
| "arrest".to_string(), | |
| "arrive".to_string(), | |
| "arrow".to_string(), | |
| "art".to_string(), | |
| "artefact".to_string(), | |
| "artist".to_string(), | |
| "artwork".to_string(), | |
| "ask".to_string(), | |
| "aspect".to_string(), | |
| "assault".to_string(), | |
| "asset".to_string(), | |
| "assist".to_string(), | |
| "assume".to_string(), | |
| "asthma".to_string(), | |
| "athlete".to_string(), | |
| "atom".to_string(), | |
| "attack".to_string(), | |
| "attend".to_string(), | |
| "attitude".to_string(), | |
| "attract".to_string(), | |
| "auction".to_string(), | |
| "audit".to_string(), | |
| "august".to_string(), | |
| "aunt".to_string(), | |
| "author".to_string(), | |
| "auto".to_string(), | |
| "autumn".to_string(), | |
| "average".to_string(), | |
| "avocado".to_string(), | |
| "avoid".to_string(), | |
| "awake".to_string(), | |
| "aware".to_string(), | |
| "away".to_string(), | |
| "awesome".to_string(), | |
| "awful".to_string(), | |
| "awkward".to_string(), | |
| "axis".to_string(), | |
| "baby".to_string(), | |
| "bachelor".to_string(), | |
| "bacon".to_string(), | |
| "badge".to_string(), | |
| "bag".to_string(), | |
| "balance".to_string(), | |
| "balcony".to_string(), | |
| "ball".to_string(), | |
| "bamboo".to_string(), | |
| "banana".to_string(), | |
| "banner".to_string(), | |
| "bar".to_string(), | |
| "barely".to_string(), | |
| "bargain".to_string(), | |
| "barrel".to_string(), | |
| "base".to_string(), | |
| "basic".to_string(), | |
| "basket".to_string(), | |
| "battle".to_string(), | |
| "beach".to_string(), | |
| "bean".to_string(), | |
| "beauty".to_string(), | |
| "because".to_string(), | |
| "become".to_string(), | |
| "beef".to_string(), | |
| "before".to_string(), | |
| "begin".to_string(), | |
| "behave".to_string(), | |
| "behind".to_string(), | |
| "believe".to_string(), | |
| "below".to_string(), | |
| "belt".to_string(), | |
| "bench".to_string(), | |
| "benefit".to_string(), | |
| "best".to_string(), | |
| "betray".to_string(), | |
| "better".to_string(), | |
| "between".to_string(), | |
| "beyond".to_string(), | |
| "bicycle".to_string(), | |
| "bid".to_string(), | |
| "bike".to_string(), | |
| "bind".to_string(), | |
| "biology".to_string(), | |
| "bird".to_string(), | |
| "birth".to_string(), | |
| "bitter".to_string(), | |
| "black".to_string(), | |
| "blade".to_string(), | |
| "blame".to_string(), | |
| "blanket".to_string(), | |
| "blast".to_string(), | |
| "bleak".to_string(), | |
| "bless".to_string(), | |
| "blind".to_string(), | |
| "blood".to_string(), | |
| "blossom".to_string(), | |
| "blouse".to_string(), | |
| "blue".to_string(), | |
| "blur".to_string(), | |
| "blush".to_string(), | |
| "board".to_string(), | |
| "boat".to_string(), | |
| "body".to_string(), | |
| "boil".to_string(), | |
| "bomb".to_string(), | |
| "bone".to_string(), | |
| "bonus".to_string(), | |
| "book".to_string(), | |
| "boost".to_string(), | |
| "border".to_string(), | |
| "boring".to_string(), | |
| "borrow".to_string(), | |
| "boss".to_string(), | |
| "bottom".to_string(), | |
| "bounce".to_string(), | |
| "box".to_string(), | |
| "boy".to_string(), | |
| "bracket".to_string(), | |
| "brain".to_string(), | |
| "brand".to_string(), | |
| "brass".to_string(), | |
| "brave".to_string(), | |
| "bread".to_string(), | |
| "breeze".to_string(), | |
| "brick".to_string(), | |
| "bridge".to_string(), | |
| "brief".to_string(), | |
| "bright".to_string(), | |
| "bring".to_string(), | |
| "brisk".to_string(), | |
| "broccoli".to_string(), | |
| "broken".to_string(), | |
| "bronze".to_string(), | |
| "broom".to_string(), | |
| "brother".to_string(), | |
| "brown".to_string(), | |
| "brush".to_string(), | |
| "bubble".to_string(), | |
| "buddy".to_string(), | |
| "budget".to_string(), | |
| "buffalo".to_string(), | |
| "build".to_string(), | |
| "bulb".to_string(), | |
| "bulk".to_string(), | |
| "bullet".to_string(), | |
| "bundle".to_string(), | |
| "bunker".to_string(), | |
| "burden".to_string(), | |
| "burger".to_string(), | |
| "burst".to_string(), | |
| "bus".to_string(), | |
| "business".to_string(), | |
| "busy".to_string(), | |
| "butter".to_string(), | |
| "buyer".to_string(), | |
| "buzz".to_string(), | |
| "cabbage".to_string(), | |
| "cabin".to_string(), | |
| "cable".to_string(), | |
| "cactus".to_string(), | |
| "cage".to_string(), | |
| "cake".to_string(), | |
| "call".to_string(), | |
| "calm".to_string(), | |
| "camera".to_string(), | |
| "camp".to_string(), | |
| "can".to_string(), | |
| "canal".to_string(), | |
| "cancel".to_string(), | |
| "candy".to_string(), | |
| "cannon".to_string(), | |
| "canoe".to_string(), | |
| "canvas".to_string(), | |
| "canyon".to_string(), | |
| "capable".to_string(), | |
| "capital".to_string(), | |
| "captain".to_string(), | |
| "car".to_string(), | |
| "carbon".to_string(), | |
| "card".to_string(), | |
| "cargo".to_string(), | |
| "carpet".to_string(), | |
| "carry".to_string(), | |
| "cart".to_string(), | |
| "case".to_string(), | |
| "cash".to_string(), | |
| "casino".to_string(), | |
| "castle".to_string(), | |
| "casual".to_string(), | |
| "cat".to_string(), | |
| "catalog".to_string(), | |
| "catch".to_string(), | |
| "category".to_string(), | |
| "cattle".to_string(), | |
| "caught".to_string(), | |
| "cause".to_string(), | |
| "caution".to_string(), | |
| "cave".to_string(), | |
| "ceiling".to_string(), | |
| "celery".to_string(), | |
| "cement".to_string(), | |
| "census".to_string(), | |
| "century".to_string(), | |
| "cereal".to_string(), | |
| "certain".to_string(), | |
| "chair".to_string(), | |
| "chalk".to_string(), | |
| "champion".to_string(), | |
| "change".to_string(), | |
| "chaos".to_string(), | |
| "chapter".to_string(), | |
| "charge".to_string(), | |
| "chase".to_string(), | |
| "chat".to_string(), | |
| "cheap".to_string(), | |
| "check".to_string(), | |
| "cheese".to_string(), | |
| "chef".to_string(), | |
| "cherry".to_string(), | |
| "chest".to_string(), | |
| "chicken".to_string(), | |
| "chief".to_string(), | |
| "child".to_string(), | |
| "chimney".to_string(), | |
| "choice".to_string(), | |
| "choose".to_string(), | |
| "chronic".to_string(), | |
| "chuckle".to_string(), | |
| "chunk".to_string(), | |
| "churn".to_string(), | |
| "cigar".to_string(), | |
| "cinnamon".to_string(), | |
| "circle".to_string(), | |
| "citizen".to_string(), | |
| "city".to_string(), | |
| "civil".to_string(), | |
| "claim".to_string(), | |
| "clap".to_string(), | |
| "clarify".to_string(), | |
| "claw".to_string(), | |
| "clay".to_string(), | |
| "clean".to_string(), | |
| "clerk".to_string(), | |
| "clever".to_string(), | |
| "click".to_string(), | |
| "client".to_string(), | |
| "cliff".to_string(), | |
| "climb".to_string(), | |
| "clinic".to_string(), | |
| "clip".to_string(), | |
| "clock".to_string(), | |
| "clog".to_string(), | |
| "close".to_string(), | |
| "cloth".to_string(), | |
| "cloud".to_string(), | |
| "clown".to_string(), | |
| "club".to_string(), | |
| "clump".to_string(), | |
| "cluster".to_string(), | |
| "clutch".to_string(), | |
| "coach".to_string(), | |
| "coast".to_string(), | |
| "coconut".to_string(), | |
| "code".to_string(), | |
| "coffee".to_string(), | |
| "coil".to_string(), | |
| "coin".to_string(), | |
| "collect".to_string(), | |
| "color".to_string(), | |
| "column".to_string(), | |
| "combine".to_string(), | |
| "come".to_string(), | |
| "comfort".to_string(), | |
| "comic".to_string(), | |
| "common".to_string(), | |
| "company".to_string(), | |
| "concert".to_string(), | |
| "conduct".to_string(), | |
| "confirm".to_string(), | |
| "congress".to_string(), | |
| "connect".to_string(), | |
| "consider".to_string(), | |
| "control".to_string(), | |
| "convince".to_string(), | |
| "cook".to_string(), | |
| "cool".to_string(), | |
| "copper".to_string(), | |
| "copy".to_string(), | |
| "coral".to_string(), | |
| "core".to_string(), | |
| "corn".to_string(), | |
| "correct".to_string(), | |
| "cost".to_string(), | |
| "cotton".to_string(), | |
| "couch".to_string(), | |
| "country".to_string(), | |
| "couple".to_string(), | |
| "course".to_string(), | |
| "cousin".to_string(), | |
| "cover".to_string(), | |
| "coyote".to_string(), | |
| "crack".to_string(), | |
| "cradle".to_string(), | |
| "craft".to_string(), | |
| "cram".to_string(), | |
| "crane".to_string(), | |
| "crash".to_string(), | |
| "crater".to_string(), | |
| "crawl".to_string(), | |
| "crazy".to_string(), | |
| "cream".to_string(), | |
| "credit".to_string(), | |
| "creek".to_string(), | |
| "crew".to_string(), | |
| "cricket".to_string(), | |
| "crime".to_string(), | |
| "crisp".to_string(), | |
| "critic".to_string(), | |
| "crop".to_string(), | |
| "cross".to_string(), | |
| "crouch".to_string(), | |
| "crowd".to_string(), | |
| "crucial".to_string(), | |
| "cruel".to_string(), | |
| "cruise".to_string(), | |
| "crumble".to_string(), | |
| "crunch".to_string(), | |
| "crush".to_string(), | |
| "cry".to_string(), | |
| "crystal".to_string(), | |
| "cube".to_string(), | |
| "culture".to_string(), | |
| "cup".to_string(), | |
| "cupboard".to_string(), | |
| "curious".to_string(), | |
| "current".to_string(), | |
| "curtain".to_string(), | |
| "curve".to_string(), | |
| "cushion".to_string(), | |
| "custom".to_string(), | |
| "cute".to_string(), | |
| "cycle".to_string(), | |
| "dad".to_string(), | |
| "damage".to_string(), | |
| "damp".to_string(), | |
| "dance".to_string(), | |
| "danger".to_string(), | |
| "daring".to_string(), | |
| "dash".to_string(), | |
| "daughter".to_string(), | |
| "dawn".to_string(), | |
| "day".to_string(), | |
| "deal".to_string(), | |
| "debate".to_string(), | |
| "debris".to_string(), | |
| "decade".to_string(), | |
| "december".to_string(), | |
| "decide".to_string(), | |
| "decline".to_string(), | |
| "decorate".to_string(), | |
| "decrease".to_string(), | |
| "deer".to_string(), | |
| "defense".to_string(), | |
| "define".to_string(), | |
| "defy".to_string(), | |
| "degree".to_string(), | |
| "delay".to_string(), | |
| "deliver".to_string(), | |
| "demand".to_string(), | |
| "demise".to_string(), | |
| "denial".to_string(), | |
| "dentist".to_string(), | |
| "deny".to_string(), | |
| "depart".to_string(), | |
| "depend".to_string(), | |
| "deposit".to_string(), | |
| "depth".to_string(), | |
| "deputy".to_string(), | |
| "derive".to_string(), | |
| "describe".to_string(), | |
| "desert".to_string(), | |
| "design".to_string(), | |
| "desk".to_string(), | |
| "despair".to_string(), | |
| "destroy".to_string(), | |
| "detail".to_string(), | |
| "detect".to_string(), | |
| "develop".to_string(), | |
| "device".to_string(), | |
| "devote".to_string(), | |
| "diagram".to_string(), | |
| "dial".to_string(), | |
| "diamond".to_string(), | |
| "diary".to_string(), | |
| "dice".to_string(), | |
| "diesel".to_string(), | |
| "diet".to_string(), | |
| "differ".to_string(), | |
| "digital".to_string(), | |
| "dignity".to_string(), | |
| "dilemma".to_string(), | |
| "dinner".to_string(), | |
| "dinosaur".to_string(), | |
| "direct".to_string(), | |
| "dirt".to_string(), | |
| "disagree".to_string(), | |
| "discover".to_string(), | |
| "disease".to_string(), | |
| "dish".to_string(), | |
| "dismiss".to_string(), | |
| "disorder".to_string(), | |
| "display".to_string(), | |
| "distance".to_string(), | |
| "divert".to_string(), | |
| "divide".to_string(), | |
| "divorce".to_string(), | |
| "dizzy".to_string(), | |
| "doctor".to_string(), | |
| "document".to_string(), | |
| "dog".to_string(), | |
| "doll".to_string(), | |
| "dolphin".to_string(), | |
| "domain".to_string(), | |
| "donate".to_string(), | |
| "donkey".to_string(), | |
| "donor".to_string(), | |
| "door".to_string(), | |
| "dose".to_string(), | |
| "double".to_string(), | |
| "dove".to_string(), | |
| "draft".to_string(), | |
| "dragon".to_string(), | |
| "drama".to_string(), | |
| "drastic".to_string(), | |
| "draw".to_string(), | |
| "dream".to_string(), | |
| "dress".to_string(), | |
| "drift".to_string(), | |
| "drill".to_string(), | |
| "drink".to_string(), | |
| "drip".to_string(), | |
| "drive".to_string(), | |
| "drop".to_string(), | |
| "drum".to_string(), | |
| "dry".to_string(), | |
| "duck".to_string(), | |
| "dumb".to_string(), | |
| "dune".to_string(), | |
| "during".to_string(), | |
| "dust".to_string(), | |
| "dutch".to_string(), | |
| "duty".to_string(), | |
| "dwarf".to_string(), | |
| "dynamic".to_string(), | |
| "eager".to_string(), | |
| "eagle".to_string(), | |
| "early".to_string(), | |
| "earn".to_string(), | |
| "earth".to_string(), | |
| "easily".to_string(), | |
| "east".to_string(), | |
| "easy".to_string(), | |
| "echo".to_string(), | |
| "ecology".to_string(), | |
| "economy".to_string(), | |
| "edge".to_string(), | |
| "edit".to_string(), | |
| "educate".to_string(), | |
| "effort".to_string(), | |
| "egg".to_string(), | |
| "eight".to_string(), | |
| "either".to_string(), | |
| "elbow".to_string(), | |
| "elder".to_string(), | |
| "electric".to_string(), | |
| "elegant".to_string(), | |
| "element".to_string(), | |
| "elephant".to_string(), | |
| "elevator".to_string(), | |
| "elite".to_string(), | |
| "else".to_string(), | |
| "embark".to_string(), | |
| "embody".to_string(), | |
| "embrace".to_string(), | |
| "emerge".to_string(), | |
| "emotion".to_string(), | |
| "employ".to_string(), | |
| "empower".to_string(), | |
| "empty".to_string(), | |
| "enable".to_string(), | |
| "enact".to_string(), | |
| "end".to_string(), | |
| "endless".to_string(), | |
| "endorse".to_string(), | |
| "enemy".to_string(), | |
| "energy".to_string(), | |
| "enforce".to_string(), | |
| "engage".to_string(), | |
| "engine".to_string(), | |
| "enhance".to_string(), | |
| "enjoy".to_string(), | |
| "enlist".to_string(), | |
| "enough".to_string(), | |
| "enrich".to_string(), | |
| "enroll".to_string(), | |
| "ensure".to_string(), | |
| "enter".to_string(), | |
| "entire".to_string(), | |
| "entry".to_string(), | |
| "envelope".to_string(), | |
| "episode".to_string(), | |
| "equal".to_string(), | |
| "equip".to_string(), | |
| "era".to_string(), | |
| "erase".to_string(), | |
| "erode".to_string(), | |
| "erosion".to_string(), | |
| "error".to_string(), | |
| "erupt".to_string(), | |
| "escape".to_string(), | |
| "essay".to_string(), | |
| "essence".to_string(), | |
| "estate".to_string(), | |
| "eternal".to_string(), | |
| "ethics".to_string(), | |
| "evidence".to_string(), | |
| "evil".to_string(), | |
| "evoke".to_string(), | |
| "evolve".to_string(), | |
| "exact".to_string(), | |
| "example".to_string(), | |
| "excess".to_string(), | |
| "exchange".to_string(), | |
| "excite".to_string(), | |
| "exclude".to_string(), | |
| "excuse".to_string(), | |
| "execute".to_string(), | |
| "exercise".to_string(), | |
| "exhaust".to_string(), | |
| "exhibit".to_string(), | |
| "exile".to_string(), | |
| "exist".to_string(), | |
| "exit".to_string(), | |
| "exotic".to_string(), | |
| "expand".to_string(), | |
| "expect".to_string(), | |
| "expire".to_string(), | |
| "explain".to_string(), | |
| "expose".to_string(), | |
| "express".to_string(), | |
| "extend".to_string(), | |
| "extra".to_string(), | |
| "eye".to_string(), | |
| "eyebrow".to_string(), | |
| "fabric".to_string(), | |
| "face".to_string(), | |
| "faculty".to_string(), | |
| "fade".to_string(), | |
| "faint".to_string(), | |
| "faith".to_string(), | |
| "fall".to_string(), | |
| "false".to_string(), | |
| "fame".to_string(), | |
| "family".to_string(), | |
| "famous".to_string(), | |
| "fan".to_string(), | |
| "fancy".to_string(), | |
| "fantasy".to_string(), | |
| "farm".to_string(), | |
| "fashion".to_string(), | |
| "fat".to_string(), | |
| "fatal".to_string(), | |
| "father".to_string(), | |
| "fatigue".to_string(), | |
| "fault".to_string(), | |
| "favorite".to_string(), | |
| "feature".to_string(), | |
| "february".to_string(), | |
| "federal".to_string(), | |
| "fee".to_string(), | |
| "feed".to_string(), | |
| "feel".to_string(), | |
| "female".to_string(), | |
| "fence".to_string(), | |
| "festival".to_string(), | |
| "fetch".to_string(), | |
| "fever".to_string(), | |
| "few".to_string(), | |
| "fiber".to_string(), | |
| "fiction".to_string(), | |
| "field".to_string(), | |
| "figure".to_string(), | |
| "file".to_string(), | |
| "film".to_string(), | |
| "filter".to_string(), | |
| "final".to_string(), | |
| "find".to_string(), | |
| "fine".to_string(), | |
| "finger".to_string(), | |
| "finish".to_string(), | |
| "fire".to_string(), | |
| "firm".to_string(), | |
| "first".to_string(), | |
| "fiscal".to_string(), | |
| "fish".to_string(), | |
| "fit".to_string(), | |
| "fitness".to_string(), | |
| "fix".to_string(), | |
| "flag".to_string(), | |
| "flame".to_string(), | |
| "flash".to_string(), | |
| "flat".to_string(), | |
| "flavor".to_string(), | |
| "flee".to_string(), | |
| "flight".to_string(), | |
| "flip".to_string(), | |
| "float".to_string(), | |
| "flock".to_string(), | |
| "floor".to_string(), | |
| "flower".to_string(), | |
| "fluid".to_string(), | |
| "flush".to_string(), | |
| "fly".to_string(), | |
| "foam".to_string(), | |
| "focus".to_string(), | |
| "fog".to_string(), | |
| "foil".to_string(), | |
| "fold".to_string(), | |
| "follow".to_string(), | |
| "food".to_string(), | |
| "foot".to_string(), | |
| "force".to_string(), | |
| "forest".to_string(), | |
| "forget".to_string(), | |
| "fork".to_string(), | |
| "fortune".to_string(), | |
| "forum".to_string(), | |
| "forward".to_string(), | |
| "fossil".to_string(), | |
| "foster".to_string(), | |
| "found".to_string(), | |
| "fox".to_string(), | |
| "fragile".to_string(), | |
| "frame".to_string(), | |
| "frequent".to_string(), | |
| "fresh".to_string(), | |
| "friend".to_string(), | |
| "fringe".to_string(), | |
| "frog".to_string(), | |
| "front".to_string(), | |
| "frost".to_string(), | |
| "frown".to_string(), | |
| "frozen".to_string(), | |
| "fruit".to_string(), | |
| "fuel".to_string(), | |
| "fun".to_string(), | |
| "funny".to_string(), | |
| "furnace".to_string(), | |
| "fury".to_string(), | |
| "future".to_string(), | |
| "gadget".to_string(), | |
| "gain".to_string(), | |
| "galaxy".to_string(), | |
| "gallery".to_string(), | |
| "game".to_string(), | |
| "gap".to_string(), | |
| "garage".to_string(), | |
| "garbage".to_string(), | |
| "garden".to_string(), | |
| "garlic".to_string(), | |
| "garment".to_string(), | |
| "gas".to_string(), | |
| "gasp".to_string(), | |
| "gate".to_string(), | |
| "gather".to_string(), | |
| "gauge".to_string(), | |
| "gaze".to_string(), | |
| "general".to_string(), | |
| "genius".to_string(), | |
| "genre".to_string(), | |
| "gentle".to_string(), | |
| "genuine".to_string(), | |
| "gesture".to_string(), | |
| "ghost".to_string(), | |
| "giant".to_string(), | |
| "gift".to_string(), | |
| "giggle".to_string(), | |
| "ginger".to_string(), | |
| "giraffe".to_string(), | |
| "girl".to_string(), | |
| "give".to_string(), | |
| "glad".to_string(), | |
| "glance".to_string(), | |
| "glare".to_string(), | |
| "glass".to_string(), | |
| "glide".to_string(), | |
| "glimpse".to_string(), | |
| "globe".to_string(), | |
| "gloom".to_string(), | |
| "glory".to_string(), | |
| "glove".to_string(), | |
| "glow".to_string(), | |
| "glue".to_string(), | |
| "goat".to_string(), | |
| "goddess".to_string(), | |
| "gold".to_string(), | |
| "good".to_string(), | |
| "goose".to_string(), | |
| "gorilla".to_string(), | |
| "gospel".to_string(), | |
| "gossip".to_string(), | |
| "govern".to_string(), | |
| "gown".to_string(), | |
| "grab".to_string(), | |
| "grace".to_string(), | |
| "grain".to_string(), | |
| "grant".to_string(), | |
| "grape".to_string(), | |
| "grass".to_string(), | |
| "gravity".to_string(), | |
| "great".to_string(), | |
| "green".to_string(), | |
| "grid".to_string(), | |
| "grief".to_string(), | |
| "grit".to_string(), | |
| "grocery".to_string(), | |
| "group".to_string(), | |
| "grow".to_string(), | |
| "grunt".to_string(), | |
| "guard".to_string(), | |
| "guess".to_string(), | |
| "guide".to_string(), | |
| "guilt".to_string(), | |
| "guitar".to_string(), | |
| "gun".to_string(), | |
| "gym".to_string(), | |
| "habit".to_string(), | |
| "hair".to_string(), | |
| "half".to_string(), | |
| "hammer".to_string(), | |
| "hamster".to_string(), | |
| "hand".to_string(), | |
| "happy".to_string(), | |
| "harbor".to_string(), | |
| "hard".to_string(), | |
| "harsh".to_string(), | |
| "harvest".to_string(), | |
| "hat".to_string(), | |
| "have".to_string(), | |
| "hawk".to_string(), | |
| "hazard".to_string(), | |
| "head".to_string(), | |
| "health".to_string(), | |
| "heart".to_string(), | |
| "heavy".to_string(), | |
| "hedgehog".to_string(), | |
| "height".to_string(), | |
| "hello".to_string(), | |
| "helmet".to_string(), | |
| "help".to_string(), | |
| "hen".to_string(), | |
| "hero".to_string(), | |
| "hidden".to_string(), | |
| "high".to_string(), | |
| "hill".to_string(), | |
| "hint".to_string(), | |
| "hip".to_string(), | |
| "hire".to_string(), | |
| "history".to_string(), | |
| "hobby".to_string(), | |
| "hockey".to_string(), | |
| "hold".to_string(), | |
| "hole".to_string(), | |
| "holiday".to_string(), | |
| "hollow".to_string(), | |
| "home".to_string(), | |
| "honey".to_string(), | |
| "hood".to_string(), | |
| "hope".to_string(), | |
| "horn".to_string(), | |
| "horror".to_string(), | |
| "horse".to_string(), | |
| "hospital".to_string(), | |
| "host".to_string(), | |
| "hotel".to_string(), | |
| "hour".to_string(), | |
| "hover".to_string(), | |
| "hub".to_string(), | |
| "huge".to_string(), | |
| "human".to_string(), | |
| "humble".to_string(), | |
| "humor".to_string(), | |
| "hundred".to_string(), | |
| "hungry".to_string(), | |
| "hunt".to_string(), | |
| "hurdle".to_string(), | |
| "hurry".to_string(), | |
| "hurt".to_string(), | |
| "husband".to_string(), | |
| "hybrid".to_string(), | |
| "ice".to_string(), | |
| "icon".to_string(), | |
| "idea".to_string(), | |
| "identify".to_string(), | |
| "idle".to_string(), | |
| "ignore".to_string(), | |
| "ill".to_string(), | |
| "illegal".to_string(), | |
| "illness".to_string(), | |
| "image".to_string(), | |
| "imitate".to_string(), | |
| "immense".to_string(), | |
| "immune".to_string(), | |
| "impact".to_string(), | |
| "impose".to_string(), | |
| "improve".to_string(), | |
| "impulse".to_string(), | |
| "inch".to_string(), | |
| "include".to_string(), | |
| "income".to_string(), | |
| "increase".to_string(), | |
| "index".to_string(), | |
| "indicate".to_string(), | |
| "indoor".to_string(), | |
| "industry".to_string(), | |
| "infant".to_string(), | |
| "inflict".to_string(), | |
| "inform".to_string(), | |
| "inhale".to_string(), | |
| "inherit".to_string(), | |
| "initial".to_string(), | |
| "inject".to_string(), | |
| "injury".to_string(), | |
| "inmate".to_string(), | |
| "inner".to_string(), | |
| "innocent".to_string(), | |
| "input".to_string(), | |
| "inquiry".to_string(), | |
| "insane".to_string(), | |
| "insect".to_string(), | |
| "inside".to_string(), | |
| "inspire".to_string(), | |
| "install".to_string(), | |
| "intact".to_string(), | |
| "interest".to_string(), | |
| "into".to_string(), | |
| "invest".to_string(), | |
| "invite".to_string(), | |
| "involve".to_string(), | |
| "iron".to_string(), | |
| "island".to_string(), | |
| "isolate".to_string(), | |
| "issue".to_string(), | |
| "item".to_string(), | |
| "ivory".to_string(), | |
| "jacket".to_string(), | |
| "jaguar".to_string(), | |
| "jar".to_string(), | |
| "jazz".to_string(), | |
| "jealous".to_string(), | |
| "jeans".to_string(), | |
| "jelly".to_string(), | |
| "jewel".to_string(), | |
| "job".to_string(), | |
| "join".to_string(), | |
| "joke".to_string(), | |
| "journey".to_string(), | |
| "joy".to_string(), | |
| "judge".to_string(), | |
| "juice".to_string(), | |
| "jump".to_string(), | |
| "jungle".to_string(), | |
| "junior".to_string(), | |
| "junk".to_string(), | |
| "just".to_string(), | |
| "kangaroo".to_string(), | |
| "keen".to_string(), | |
| "keep".to_string(), | |
| "ketchup".to_string(), | |
| "key".to_string(), | |
| "kick".to_string(), | |
| "kid".to_string(), | |
| "kidney".to_string(), | |
| "kind".to_string(), | |
| "kingdom".to_string(), | |
| "kiss".to_string(), | |
| "kit".to_string(), | |
| "kitchen".to_string(), | |
| "kite".to_string(), | |
| "kitten".to_string(), | |
| "kiwi".to_string(), | |
| "knee".to_string(), | |
| "knife".to_string(), | |
| "knock".to_string(), | |
| "know".to_string(), | |
| "lab".to_string(), | |
| "label".to_string(), | |
| "labor".to_string(), | |
| "ladder".to_string(), | |
| "lady".to_string(), | |
| "lake".to_string(), | |
| "lamp".to_string(), | |
| "language".to_string(), | |
| "laptop".to_string(), | |
| "large".to_string(), | |
| "later".to_string(), | |
| "latin".to_string(), | |
| "laugh".to_string(), | |
| "laundry".to_string(), | |
| "lava".to_string(), | |
| "law".to_string(), | |
| "lawn".to_string(), | |
| "lawsuit".to_string(), | |
| "layer".to_string(), | |
| "lazy".to_string(), | |
| "leader".to_string(), | |
| "leaf".to_string(), | |
| "learn".to_string(), | |
| "leave".to_string(), | |
| "lecture".to_string(), | |
| "left".to_string(), | |
| "leg".to_string(), | |
| "legal".to_string(), | |
| "legend".to_string(), | |
| "leisure".to_string(), | |
| "lemon".to_string(), | |
| "lend".to_string(), | |
| "length".to_string(), | |
| "lens".to_string(), | |
| "leopard".to_string(), | |
| "lesson".to_string(), | |
| "letter".to_string(), | |
| "level".to_string(), | |
| "liar".to_string(), | |
| "liberty".to_string(), | |
| "library".to_string(), | |
| "license".to_string(), | |
| "life".to_string(), | |
| "lift".to_string(), | |
| "light".to_string(), | |
| "like".to_string(), | |
| "limb".to_string(), | |
| "limit".to_string(), | |
| "link".to_string(), | |
| "lion".to_string(), | |
| "liquid".to_string(), | |
| "list".to_string(), | |
| "little".to_string(), | |
| "live".to_string(), | |
| "lizard".to_string(), | |
| "load".to_string(), | |
| "loan".to_string(), | |
| "lobster".to_string(), | |
| "local".to_string(), | |
| "lock".to_string(), | |
| "logic".to_string(), | |
| "lonely".to_string(), | |
| "long".to_string(), | |
| "loop".to_string(), | |
| "lottery".to_string(), | |
| "loud".to_string(), | |
| "lounge".to_string(), | |
| "love".to_string(), | |
| "loyal".to_string(), | |
| "lucky".to_string(), | |
| "luggage".to_string(), | |
| "lumber".to_string(), | |
| "lunar".to_string(), | |
| "lunch".to_string(), | |
| "luxury".to_string(), | |
| "lyrics".to_string(), | |
| "machine".to_string(), | |
| "mad".to_string(), | |
| "magic".to_string(), | |
| "magnet".to_string(), | |
| "maid".to_string(), | |
| "mail".to_string(), | |
| "main".to_string(), | |
| "major".to_string(), | |
| "make".to_string(), | |
| "mammal".to_string(), | |
| "man".to_string(), | |
| "manage".to_string(), | |
| "mandate".to_string(), | |
| "mango".to_string(), | |
| "mansion".to_string(), | |
| "manual".to_string(), | |
| "maple".to_string(), | |
| "marble".to_string(), | |
| "march".to_string(), | |
| "margin".to_string(), | |
| "marine".to_string(), | |
| "market".to_string(), | |
| "marriage".to_string(), | |
| "mask".to_string(), | |
| "mass".to_string(), | |
| "master".to_string(), | |
| "match".to_string(), | |
| "material".to_string(), | |
| "math".to_string(), | |
| "matrix".to_string(), | |
| "matter".to_string(), | |
| "maximum".to_string(), | |
| "maze".to_string(), | |
| "meadow".to_string(), | |
| "mean".to_string(), | |
| "measure".to_string(), | |
| "meat".to_string(), | |
| "mechanic".to_string(), | |
| "medal".to_string(), | |
| "media".to_string(), | |
| "melody".to_string(), | |
| "melt".to_string(), | |
| "member".to_string(), | |
| "memory".to_string(), | |
| "mention".to_string(), | |
| "menu".to_string(), | |
| "mercy".to_string(), | |
| "merge".to_string(), | |
| "merit".to_string(), | |
| "merry".to_string(), | |
| "mesh".to_string(), | |
| "message".to_string(), | |
| "metal".to_string(), | |
| "method".to_string(), | |
| "middle".to_string(), | |
| "midnight".to_string(), | |
| "milk".to_string(), | |
| "million".to_string(), | |
| "mimic".to_string(), | |
| "mind".to_string(), | |
| "minimum".to_string(), | |
| "minor".to_string(), | |
| "minute".to_string(), | |
| "miracle".to_string(), | |
| "mirror".to_string(), | |
| "misery".to_string(), | |
| "miss".to_string(), | |
| "mistake".to_string(), | |
| "mix".to_string(), | |
| "mixed".to_string(), | |
| "mixture".to_string(), | |
| "mobile".to_string(), | |
| "model".to_string(), | |
| "modify".to_string(), | |
| "mom".to_string(), | |
| "moment".to_string(), | |
| "monitor".to_string(), | |
| "monkey".to_string(), | |
| "monster".to_string(), | |
| "month".to_string(), | |
| "moon".to_string(), | |
| "moral".to_string(), | |
| "more".to_string(), | |
| "morning".to_string(), | |
| "mosquito".to_string(), | |
| "mother".to_string(), | |
| "motion".to_string(), | |
| "motor".to_string(), | |
| "mountain".to_string(), | |
| "mouse".to_string(), | |
| "move".to_string(), | |
| "movie".to_string(), | |
| "much".to_string(), | |
| "muffin".to_string(), | |
| "mule".to_string(), | |
| "multiply".to_string(), | |
| "muscle".to_string(), | |
| "museum".to_string(), | |
| "mushroom".to_string(), | |
| "music".to_string(), | |
| "must".to_string(), | |
| "mutual".to_string(), | |
| "myself".to_string(), | |
| "mystery".to_string(), | |
| "myth".to_string(), | |
| "naive".to_string(), | |
| "name".to_string(), | |
| "napkin".to_string(), | |
| "narrow".to_string(), | |
| "nasty".to_string(), | |
| "nation".to_string(), | |
| "nature".to_string(), | |
| "near".to_string(), | |
| "neck".to_string(), | |
| "need".to_string(), | |
| "negative".to_string(), | |
| "neglect".to_string(), | |
| "neither".to_string(), | |
| "nephew".to_string(), | |
| "nerve".to_string(), | |
| "nest".to_string(), | |
| "net".to_string(), | |
| "network".to_string(), | |
| "neutral".to_string(), | |
| "never".to_string(), | |
| "news".to_string(), | |
| "next".to_string(), | |
| "nice".to_string(), | |
| "night".to_string(), | |
| "noble".to_string(), | |
| "noise".to_string(), | |
| "nominee".to_string(), | |
| "noodle".to_string(), | |
| "normal".to_string(), | |
| "north".to_string(), | |
| "nose".to_string(), | |
| "notable".to_string(), | |
| "note".to_string(), | |
| "nothing".to_string(), | |
| "notice".to_string(), | |
| "novel".to_string(), | |
| "now".to_string(), | |
| "nuclear".to_string(), | |
| "number".to_string(), | |
| "nurse".to_string(), | |
| "nut".to_string(), | |
| "oak".to_string(), | |
| "obey".to_string(), | |
| "object".to_string(), | |
| "oblige".to_string(), | |
| "obscure".to_string(), | |
| "observe".to_string(), | |
| "obtain".to_string(), | |
| "obvious".to_string(), | |
| "occur".to_string(), | |
| "ocean".to_string(), | |
| "october".to_string(), | |
| "odor".to_string(), | |
| "off".to_string(), | |
| "offer".to_string(), | |
| "office".to_string(), | |
| "often".to_string(), | |
| "oil".to_string(), | |
| "okay".to_string(), | |
| "old".to_string(), | |
| "olive".to_string(), | |
| "olympic".to_string(), | |
| "omit".to_string(), | |
| "once".to_string(), | |
| "one".to_string(), | |
| "onion".to_string(), | |
| "online".to_string(), | |
| "only".to_string(), | |
| "open".to_string(), | |
| "opera".to_string(), | |
| "opinion".to_string(), | |
| "oppose".to_string(), | |
| "option".to_string(), | |
| "orange".to_string(), | |
| "orbit".to_string(), | |
| "orchard".to_string(), | |
| "order".to_string(), | |
| "ordinary".to_string(), | |
| "organ".to_string(), | |
| "orient".to_string(), | |
| "original".to_string(), | |
| "orphan".to_string(), | |
| "ostrich".to_string(), | |
| "other".to_string(), | |
| "outdoor".to_string(), | |
| "outer".to_string(), | |
| "output".to_string(), | |
| "outside".to_string(), | |
| "oval".to_string(), | |
| "oven".to_string(), | |
| "over".to_string(), | |
| "own".to_string(), | |
| "owner".to_string(), | |
| "oxygen".to_string(), | |
| "oyster".to_string(), | |
| "ozone".to_string(), | |
| "pact".to_string(), | |
| "paddle".to_string(), | |
| "page".to_string(), | |
| "pair".to_string(), | |
| "palace".to_string(), | |
| "palm".to_string(), | |
| "panda".to_string(), | |
| "panel".to_string(), | |
| "panic".to_string(), | |
| "panther".to_string(), | |
| "paper".to_string(), | |
| "parade".to_string(), | |
| "parent".to_string(), | |
| "park".to_string(), | |
| "parrot".to_string(), | |
| "party".to_string(), | |
| "pass".to_string(), | |
| "patch".to_string(), | |
| "path".to_string(), | |
| "patient".to_string(), | |
| "patrol".to_string(), | |
| "pattern".to_string(), | |
| "pause".to_string(), | |
| "pave".to_string(), | |
| "payment".to_string(), | |
| "peace".to_string(), | |
| "peanut".to_string(), | |
| "pear".to_string(), | |
| "peasant".to_string(), | |
| "pelican".to_string(), | |
| "pen".to_string(), | |
| "penalty".to_string(), | |
| "pencil".to_string(), | |
| "people".to_string(), | |
| "pepper".to_string(), | |
| "perfect".to_string(), | |
| "permit".to_string(), | |
| "person".to_string(), | |
| "pet".to_string(), | |
| "phone".to_string(), | |
| "photo".to_string(), | |
| "phrase".to_string(), | |
| "physical".to_string(), | |
| "piano".to_string(), | |
| "picnic".to_string(), | |
| "picture".to_string(), | |
| "piece".to_string(), | |
| "pig".to_string(), | |
| "pigeon".to_string(), | |
| "pill".to_string(), | |
| "pilot".to_string(), | |
| "pink".to_string(), | |
| "pioneer".to_string(), | |
| "pipe".to_string(), | |
| "pistol".to_string(), | |
| "pitch".to_string(), | |
| "pizza".to_string(), | |
| "place".to_string(), | |
| "planet".to_string(), | |
| "plastic".to_string(), | |
| "plate".to_string(), | |
| "play".to_string(), | |
| "please".to_string(), | |
| "pledge".to_string(), | |
| "pluck".to_string(), | |
| "plug".to_string(), | |
| "plunge".to_string(), | |
| "poem".to_string(), | |
| "poet".to_string(), | |
| "point".to_string(), | |
| "polar".to_string(), | |
| "pole".to_string(), | |
| "police".to_string(), | |
| "pond".to_string(), | |
| "pony".to_string(), | |
| "pool".to_string(), | |
| "popular".to_string(), | |
| "portion".to_string(), | |
| "position".to_string(), | |
| "possible".to_string(), | |
| "post".to_string(), | |
| "potato".to_string(), | |
| "pottery".to_string(), | |
| "poverty".to_string(), | |
| "powder".to_string(), | |
| "power".to_string(), | |
| "practice".to_string(), | |
| "praise".to_string(), | |
| "predict".to_string(), | |
| "prefer".to_string(), | |
| "prepare".to_string(), | |
| "present".to_string(), | |
| "pretty".to_string(), | |
| "prevent".to_string(), | |
| "price".to_string(), | |
| "pride".to_string(), | |
| "primary".to_string(), | |
| "print".to_string(), | |
| "priority".to_string(), | |
| "prison".to_string(), | |
| "private".to_string(), | |
| "prize".to_string(), | |
| "problem".to_string(), | |
| "process".to_string(), | |
| "produce".to_string(), | |
| "profit".to_string(), | |
| "program".to_string(), | |
| "project".to_string(), | |
| "promote".to_string(), | |
| "proof".to_string(), | |
| "property".to_string(), | |
| "prosper".to_string(), | |
| "protect".to_string(), | |
| "proud".to_string(), | |
| "provide".to_string(), | |
| "public".to_string(), | |
| "pudding".to_string(), | |
| "pull".to_string(), | |
| "pulp".to_string(), | |
| "pulse".to_string(), | |
| "pumpkin".to_string(), | |
| "punch".to_string(), | |
| "pupil".to_string(), | |
| "puppy".to_string(), | |
| "purchase".to_string(), | |
| "purity".to_string(), | |
| "purpose".to_string(), | |
| "purse".to_string(), | |
| "push".to_string(), | |
| "put".to_string(), | |
| "puzzle".to_string(), | |
| "pyramid".to_string(), | |
| "quality".to_string(), | |
| "quantum".to_string(), | |
| "quarter".to_string(), | |
| "question".to_string(), | |
| "quick".to_string(), | |
| "quit".to_string(), | |
| "quiz".to_string(), | |
| "quote".to_string(), | |
| "rabbit".to_string(), | |
| "raccoon".to_string(), | |
| "race".to_string(), | |
| "rack".to_string(), | |
| "radar".to_string(), | |
| "radio".to_string(), | |
| "rail".to_string(), | |
| "rain".to_string(), | |
| "raise".to_string(), | |
| "rally".to_string(), | |
| "ramp".to_string(), | |
| "ranch".to_string(), | |
| "random".to_string(), | |
| "range".to_string(), | |
| "rapid".to_string(), | |
| "rare".to_string(), | |
| "rate".to_string(), | |
| "rather".to_string(), | |
| "raven".to_string(), | |
| "raw".to_string(), | |
| "razor".to_string(), | |
| "ready".to_string(), | |
| "real".to_string(), | |
| "reason".to_string(), | |
| "rebel".to_string(), | |
| "rebuild".to_string(), | |
| "recall".to_string(), | |
| "receive".to_string(), | |
| "recipe".to_string(), | |
| "record".to_string(), | |
| "recycle".to_string(), | |
| "reduce".to_string(), | |
| "reflect".to_string(), | |
| "reform".to_string(), | |
| "refuse".to_string(), | |
| "region".to_string(), | |
| "regret".to_string(), | |
| "regular".to_string(), | |
| "reject".to_string(), | |
| "relax".to_string(), | |
| "release".to_string(), | |
| "relief".to_string(), | |
| "rely".to_string(), | |
| "remain".to_string(), | |
| "remember".to_string(), | |
| "remind".to_string(), | |
| "remove".to_string(), | |
| "render".to_string(), | |
| "renew".to_string(), | |
| "rent".to_string(), | |
| "reopen".to_string(), | |
| "repair".to_string(), | |
| "repeat".to_string(), | |
| "replace".to_string(), | |
| "report".to_string(), | |
| "require".to_string(), | |
| "rescue".to_string(), | |
| "resemble".to_string(), | |
| "resist".to_string(), | |
| "resource".to_string(), | |
| "response".to_string(), | |
| "result".to_string(), | |
| "retire".to_string(), | |
| "retreat".to_string(), | |
| "return".to_string(), | |
| "reunion".to_string(), | |
| "reveal".to_string(), | |
| "review".to_string(), | |
| "reward".to_string(), | |
| "rhythm".to_string(), | |
| "rib".to_string(), | |
| "ribbon".to_string(), | |
| "rice".to_string(), | |
| "rich".to_string(), | |
| "ride".to_string(), | |
| "ridge".to_string(), | |
| "rifle".to_string(), | |
| "right".to_string(), | |
| "rigid".to_string(), | |
| "ring".to_string(), | |
| "riot".to_string(), | |
| "ripple".to_string(), | |
| "risk".to_string(), | |
| "ritual".to_string(), | |
| "rival".to_string(), | |
| "river".to_string(), | |
| "road".to_string(), | |
| "roast".to_string(), | |
| "robot".to_string(), | |
| "robust".to_string(), | |
| "rocket".to_string(), | |
| "romance".to_string(), | |
| "roof".to_string(), | |
| "rookie".to_string(), | |
| "room".to_string(), | |
| "rose".to_string(), | |
| "rotate".to_string(), | |
| "rough".to_string(), | |
| "round".to_string(), | |
| "route".to_string(), | |
| "royal".to_string(), | |
| "rubber".to_string(), | |
| "rude".to_string(), | |
| "rug".to_string(), | |
| "rule".to_string(), | |
| "run".to_string(), | |
| "runway".to_string(), | |
| "rural".to_string(), | |
| "sad".to_string(), | |
| "saddle".to_string(), | |
| "sadness".to_string(), | |
| "safe".to_string(), | |
| "sail".to_string(), | |
| "salad".to_string(), | |
| "salmon".to_string(), | |
| "salon".to_string(), | |
| "salt".to_string(), | |
| "salute".to_string(), | |
| "same".to_string(), | |
| "sample".to_string(), | |
| "sand".to_string(), | |
| "satisfy".to_string(), | |
| "satoshi".to_string(), | |
| "sauce".to_string(), | |
| "sausage".to_string(), | |
| "save".to_string(), | |
| "say".to_string(), | |
| "scale".to_string(), | |
| "scan".to_string(), | |
| "scare".to_string(), | |
| "scatter".to_string(), | |
| "scene".to_string(), | |
| "scheme".to_string(), | |
| "school".to_string(), | |
| "science".to_string(), | |
| "scissors".to_string(), | |
| "scorpion".to_string(), | |
| "scout".to_string(), | |
| "scrap".to_string(), | |
| "screen".to_string(), | |
| "script".to_string(), | |
| "scrub".to_string(), | |
| "sea".to_string(), | |
| "search".to_string(), | |
| "season".to_string(), | |
| "seat".to_string(), | |
| "second".to_string(), | |
| "secret".to_string(), | |
| "section".to_string(), | |
| "security".to_string(), | |
| "seed".to_string(), | |
| "seek".to_string(), | |
| "segment".to_string(), | |
| "select".to_string(), | |
| "sell".to_string(), | |
| "seminar".to_string(), | |
| "senior".to_string(), | |
| "sense".to_string(), | |
| "sentence".to_string(), | |
| "series".to_string(), | |
| "service".to_string(), | |
| "session".to_string(), | |
| "settle".to_string(), | |
| "setup".to_string(), | |
| "seven".to_string(), | |
| "shadow".to_string(), | |
| "shaft".to_string(), | |
| "shallow".to_string(), | |
| "share".to_string(), | |
| "shed".to_string(), | |
| "shell".to_string(), | |
| "sheriff".to_string(), | |
| "shield".to_string(), | |
| "shift".to_string(), | |
| "shine".to_string(), | |
| "ship".to_string(), | |
| "shiver".to_string(), | |
| "shock".to_string(), | |
| "shoe".to_string(), | |
| "shoot".to_string(), | |
| "shop".to_string(), | |
| "short".to_string(), | |
| "shoulder".to_string(), | |
| "shove".to_string(), | |
| "shrimp".to_string(), | |
| "shrug".to_string(), | |
| "shuffle".to_string(), | |
| "shy".to_string(), | |
| "sibling".to_string(), | |
| "sick".to_string(), | |
| "side".to_string(), | |
| "siege".to_string(), | |
| "sight".to_string(), | |
| "sign".to_string(), | |
| "silent".to_string(), | |
| "silk".to_string(), | |
| "silly".to_string(), | |
| "silver".to_string(), | |
| "similar".to_string(), | |
| "simple".to_string(), | |
| "since".to_string(), | |
| "sing".to_string(), | |
| "siren".to_string(), | |
| "sister".to_string(), | |
| "situate".to_string(), | |
| "six".to_string(), | |
| "size".to_string(), | |
| "skate".to_string(), | |
| "sketch".to_string(), | |
| "ski".to_string(), | |
| "skill".to_string(), | |
| "skin".to_string(), | |
| "skirt".to_string(), | |
| "skull".to_string(), | |
| "slab".to_string(), | |
| "slam".to_string(), | |
| "sleep".to_string(), | |
| "slender".to_string(), | |
| "slice".to_string(), | |
| "slide".to_string(), | |
| "slight".to_string(), | |
| "slim".to_string(), | |
| "slogan".to_string(), | |
| "slot".to_string(), | |
| "slow".to_string(), | |
| "slush".to_string(), | |
| "small".to_string(), | |
| "smart".to_string(), | |
| "smile".to_string(), | |
| "smoke".to_string(), | |
| "smooth".to_string(), | |
| "snack".to_string(), | |
| "snake".to_string(), | |
| "snap".to_string(), | |
| "sniff".to_string(), | |
| "snow".to_string(), | |
| "soap".to_string(), | |
| "soccer".to_string(), | |
| "social".to_string(), | |
| "sock".to_string(), | |
| "soda".to_string(), | |
| "soft".to_string(), | |
| "solar".to_string(), | |
| "soldier".to_string(), | |
| "solid".to_string(), | |
| "solution".to_string(), | |
| "solve".to_string(), | |
| "someone".to_string(), | |
| "song".to_string(), | |
| "soon".to_string(), | |
| "sorry".to_string(), | |
| "sort".to_string(), | |
| "soul".to_string(), | |
| "sound".to_string(), | |
| "soup".to_string(), | |
| "source".to_string(), | |
| "south".to_string(), | |
| "space".to_string(), | |
| "spare".to_string(), | |
| "spatial".to_string(), | |
| "spawn".to_string(), | |
| "speak".to_string(), | |
| "special".to_string(), | |
| "speed".to_string(), | |
| "spell".to_string(), | |
| "spend".to_string(), | |
| "sphere".to_string(), | |
| "spice".to_string(), | |
| "spider".to_string(), | |
| "spike".to_string(), | |
| "spin".to_string(), | |
| "spirit".to_string(), | |
| "split".to_string(), | |
| "spoil".to_string(), | |
| "sponsor".to_string(), | |
| "spoon".to_string(), | |
| "sport".to_string(), | |
| "spot".to_string(), | |
| "spray".to_string(), | |
| "spread".to_string(), | |
| "spring".to_string(), | |
| "spy".to_string(), | |
| "square".to_string(), | |
| "squeeze".to_string(), | |
| "squirrel".to_string(), | |
| "stable".to_string(), | |
| "stadium".to_string(), | |
| "staff".to_string(), | |
| "stage".to_string(), | |
| "stairs".to_string(), | |
| "stamp".to_string(), | |
| "stand".to_string(), | |
| "start".to_string(), | |
| "state".to_string(), | |
| "stay".to_string(), | |
| "steak".to_string(), | |
| "steel".to_string(), | |
| "stem".to_string(), | |
| "step".to_string(), | |
| "stereo".to_string(), | |
| "stick".to_string(), | |
| "still".to_string(), | |
| "sting".to_string(), | |
| "stock".to_string(), | |
| "stomach".to_string(), | |
| "stone".to_string(), | |
| "stool".to_string(), | |
| "story".to_string(), | |
| "stove".to_string(), | |
| "strategy".to_string(), | |
| "street".to_string(), | |
| "strike".to_string(), | |
| "strong".to_string(), | |
| "struggle".to_string(), | |
| "student".to_string(), | |
| "stuff".to_string(), | |
| "stumble".to_string(), | |
| "style".to_string(), | |
| "subject".to_string(), | |
| "submit".to_string(), | |
| "subway".to_string(), | |
| "success".to_string(), | |
| "such".to_string(), | |
| "sudden".to_string(), | |
| "suffer".to_string(), | |
| "sugar".to_string(), | |
| "suggest".to_string(), | |
| "suit".to_string(), | |
| "summer".to_string(), | |
| "sun".to_string(), | |
| "sunny".to_string(), | |
| "sunset".to_string(), | |
| "super".to_string(), | |
| "supply".to_string(), | |
| "supreme".to_string(), | |
| "sure".to_string(), | |
| "surface".to_string(), | |
| "surge".to_string(), | |
| "surprise".to_string(), | |
| "surround".to_string(), | |
| "survey".to_string(), | |
| "suspect".to_string(), | |
| "sustain".to_string(), | |
| "swallow".to_string(), | |
| "swamp".to_string(), | |
| "swap".to_string(), | |
| "swarm".to_string(), | |
| "swear".to_string(), | |
| "sweet".to_string(), | |
| "swift".to_string(), | |
| "swim".to_string(), | |
| "swing".to_string(), | |
| "switch".to_string(), | |
| "sword".to_string(), | |
| "symbol".to_string(), | |
| "symptom".to_string(), | |
| "syrup".to_string(), | |
| "system".to_string(), | |
| "table".to_string(), | |
| "tackle".to_string(), | |
| "tag".to_string(), | |
| "tail".to_string(), | |
| "talent".to_string(), | |
| "talk".to_string(), | |
| "tank".to_string(), | |
| "tape".to_string(), | |
| "target".to_string(), | |
| "task".to_string(), | |
| "taste".to_string(), | |
| "tattoo".to_string(), | |
| "taxi".to_string(), | |
| "teach".to_string(), | |
| "team".to_string(), | |
| "tell".to_string(), | |
| "ten".to_string(), | |
| "tenant".to_string(), | |
| "tennis".to_string(), | |
| "tent".to_string(), | |
| "term".to_string(), | |
| "test".to_string(), | |
| "text".to_string(), | |
| "thank".to_string(), | |
| "that".to_string(), | |
| "theme".to_string(), | |
| "then".to_string(), | |
| "theory".to_string(), | |
| "there".to_string(), | |
| "they".to_string(), | |
| "thing".to_string(), | |
| "this".to_string(), | |
| "thought".to_string(), | |
| "three".to_string(), | |
| "thrive".to_string(), | |
| "throw".to_string(), | |
| "thumb".to_string(), | |
| "thunder".to_string(), | |
| "ticket".to_string(), | |
| "tide".to_string(), | |
| "tiger".to_string(), | |
| "tilt".to_string(), | |
| "timber".to_string(), | |
| "time".to_string(), | |
| "tiny".to_string(), | |
| "tip".to_string(), | |
| "tired".to_string(), | |
| "tissue".to_string(), | |
| "title".to_string(), | |
| "toast".to_string(), | |
| "tobacco".to_string(), | |
| "today".to_string(), | |
| "toddler".to_string(), | |
| "toe".to_string(), | |
| "together".to_string(), | |
| "toilet".to_string(), | |
| "token".to_string(), | |
| "tomato".to_string(), | |
| "tomorrow".to_string(), | |
| "tone".to_string(), | |
| "tongue".to_string(), | |
| "tonight".to_string(), | |
| "tool".to_string(), | |
| "tooth".to_string(), | |
| "top".to_string(), | |
| "topic".to_string(), | |
| "topple".to_string(), | |
| "torch".to_string(), | |
| "tornado".to_string(), | |
| "tortoise".to_string(), | |
| "toss".to_string(), | |
| "total".to_string(), | |
| "tourist".to_string(), | |
| "toward".to_string(), | |
| "tower".to_string(), | |
| "town".to_string(), | |
| "toy".to_string(), | |
| "track".to_string(), | |
| "trade".to_string(), | |
| "traffic".to_string(), | |
| "tragic".to_string(), | |
| "train".to_string(), | |
| "transfer".to_string(), | |
| "trap".to_string(), | |
| "trash".to_string(), | |
| "travel".to_string(), | |
| "tray".to_string(), | |
| "treat".to_string(), | |
| "tree".to_string(), | |
| "trend".to_string(), | |
| "trial".to_string(), | |
| "tribe".to_string(), | |
| "trick".to_string(), | |
| "trigger".to_string(), | |
| "trim".to_string(), | |
| "trip".to_string(), | |
| "trophy".to_string(), | |
| "trouble".to_string(), | |
| "truck".to_string(), | |
| "true".to_string(), | |
| "truly".to_string(), | |
| "trumpet".to_string(), | |
| "trust".to_string(), | |
| "truth".to_string(), | |
| "try".to_string(), | |
| "tube".to_string(), | |
| "tuition".to_string(), | |
| "tumble".to_string(), | |
| "tuna".to_string(), | |
| "tunnel".to_string(), | |
| "turkey".to_string(), | |
| "turn".to_string(), | |
| "turtle".to_string(), | |
| "twelve".to_string(), | |
| "twenty".to_string(), | |
| "twice".to_string(), | |
| "twin".to_string(), | |
| "twist".to_string(), | |
| "two".to_string(), | |
| "type".to_string(), | |
| "typical".to_string(), | |
| "ugly".to_string(), | |
| "umbrella".to_string(), | |
| "unable".to_string(), | |
| "unaware".to_string(), | |
| "uncle".to_string(), | |
| "uncover".to_string(), | |
| "under".to_string(), | |
| "undo".to_string(), | |
| "unfair".to_string(), | |
| "unfold".to_string(), | |
| "unhappy".to_string(), | |
| "uniform".to_string(), | |
| "unique".to_string(), | |
| "unit".to_string(), | |
| "universe".to_string(), | |
| "unknown".to_string(), | |
| "unlock".to_string(), | |
| "until".to_string(), | |
| "unusual".to_string(), | |
| "unveil".to_string(), | |
| "update".to_string(), | |
| "upgrade".to_string(), | |
| "uphold".to_string(), | |
| "upon".to_string(), | |
| "upper".to_string(), | |
| "upset".to_string(), | |
| "urban".to_string(), | |
| "urge".to_string(), | |
| "usage".to_string(), | |
| "use".to_string(), | |
| "used".to_string(), | |
| "useful".to_string(), | |
| "useless".to_string(), | |
| "usual".to_string(), | |
| "utility".to_string(), | |
| "vacant".to_string(), | |
| "vacuum".to_string(), | |
| "vague".to_string(), | |
| "valid".to_string(), | |
| "valley".to_string(), | |
| "valve".to_string(), | |
| "van".to_string(), | |
| "vanish".to_string(), | |
| "vapor".to_string(), | |
| "various".to_string(), | |
| "vast".to_string(), | |
| "vault".to_string(), | |
| "vehicle".to_string(), | |
| "velvet".to_string(), | |
| "vendor".to_string(), | |
| "venture".to_string(), | |
| "venue".to_string(), | |
| "verb".to_string(), | |
| "verify".to_string(), | |
| "version".to_string(), | |
| "very".to_string(), | |
| "vessel".to_string(), | |
| "veteran".to_string(), | |
| "viable".to_string(), | |
| "vibrant".to_string(), | |
| "vicious".to_string(), | |
| "victory".to_string(), | |
| "video".to_string(), | |
| "view".to_string(), | |
| "village".to_string(), | |
| "vintage".to_string(), | |
| "violin".to_string(), | |
| "virtual".to_string(), | |
| "virus".to_string(), | |
| "visa".to_string(), | |
| "visit".to_string(), | |
| "visual".to_string(), | |
| "vital".to_string(), | |
| "vivid".to_string(), | |
| "vocal".to_string(), | |
| "voice".to_string(), | |
| "void".to_string(), | |
| "volcano".to_string(), | |
| "volume".to_string(), | |
| "vote".to_string(), | |
| "voyage".to_string(), | |
| "wage".to_string(), | |
| "wagon".to_string(), | |
| "wait".to_string(), | |
| "walk".to_string(), | |
| "wall".to_string(), | |
| "walnut".to_string(), | |
| "want".to_string(), | |
| "warfare".to_string(), | |
| "warm".to_string(), | |
| "warrior".to_string(), | |
| "wash".to_string(), | |
| "wasp".to_string(), | |
| "waste".to_string(), | |
| "water".to_string(), | |
| "wave".to_string(), | |
| "way".to_string(), | |
| "wealth".to_string(), | |
| "weapon".to_string(), | |
| "wear".to_string(), | |
| "weasel".to_string(), | |
| "weather".to_string(), | |
| "web".to_string(), | |
| "wedding".to_string(), | |
| "weekend".to_string(), | |
| "weird".to_string(), | |
| "welcome".to_string(), | |
| "west".to_string(), | |
| "wet".to_string(), | |
| "whale".to_string(), | |
| "what".to_string(), | |
| "wheat".to_string(), | |
| "wheel".to_string(), | |
| "when".to_string(), | |
| "where".to_string(), | |
| "whip".to_string(), | |
| "whisper".to_string(), | |
| "wide".to_string(), | |
| "width".to_string(), | |
| "wife".to_string(), | |
| "wild".to_string(), | |
| "will".to_string(), | |
| "win".to_string(), | |
| "window".to_string(), | |
| "wine".to_string(), | |
| "wing".to_string(), | |
| "wink".to_string(), | |
| "winner".to_string(), | |
| "winter".to_string(), | |
| "wire".to_string(), | |
| "wisdom".to_string(), | |
| "wise".to_string(), | |
| "wish".to_string(), | |
| "witness".to_string(), | |
| "wolf".to_string(), | |
| "woman".to_string(), | |
| "wonder".to_string(), | |
| "wood".to_string(), | |
| "wool".to_string(), | |
| "word".to_string(), | |
| "work".to_string(), | |
| "world".to_string(), | |
| "worry".to_string(), | |
| "worth".to_string(), | |
| "wrap".to_string(), | |
| "wreck".to_string(), | |
| "wrestle".to_string(), | |
| "wrist".to_string(), | |
| "write".to_string(), | |
| "wrong".to_string(), | |
| "yard".to_string(), | |
| "year".to_string(), | |
| "yellow".to_string(), | |
| "you".to_string(), | |
| "young".to_string(), | |
| "youth".to_string(), | |
| "zebra".to_string(), | |
| "zero".to_string(), | |
| "zone".to_string(), | |
| "zoo".to_string(), | |
| ] | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment