packages feed

cardano-addresses 4.0.0 → 4.0.1

raw patch · 30 files changed

+13289/−329 lines, 30 filesdep ~cardano-cryptodep ~optparse-applicativePVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: cardano-crypto, optparse-applicative

API changes (from Hackage documentation)

- Cardano.Address.Style.Byron: ($sel:derivationPath:Byron) :: Byron depth key -> DerivationPath depth
- Cardano.Address.Style.Byron: ($sel:getKey:Byron) :: Byron depth key -> key
- Cardano.Address.Style.Byron: ($sel:payloadPassphrase:Byron) :: Byron depth key -> ScrubbedBytes
- Cardano.Address.Style.Byron: [$sel:infoAddressRoot:AddressInfo] :: AddressInfo -> !ByteString
- Cardano.Address.Style.Byron: [$sel:infoNetworkTag:AddressInfo] :: AddressInfo -> !Maybe NetworkTag
- Cardano.Address.Style.Byron: [$sel:infoPayload:AddressInfo] :: AddressInfo -> !PayloadInfo
- Cardano.Address.Style.Shelley: [$sel:infoAddressType:AddressInfo] :: AddressInfo -> !Word8
- Cardano.Address.Style.Shelley: [$sel:infoNetworkTag:AddressInfo] :: AddressInfo -> !NetworkTag
- Cardano.Address.Style.Shelley: [$sel:infoSpendingKeyHash:AddressInfo] :: AddressInfo -> !Maybe ByteString
- Cardano.Address.Style.Shelley: [$sel:infoSpendingScriptHash:AddressInfo] :: AddressInfo -> !Maybe ByteString
- Cardano.Address.Style.Shelley: [$sel:infoStakeKeyHash:AddressInfo] :: AddressInfo -> !Maybe ByteString
- Cardano.Address.Style.Shelley: [$sel:infoStakeReference:AddressInfo] :: AddressInfo -> !Maybe ReferenceInfo
- Cardano.Address.Style.Shelley: [$sel:infoStakeScriptHash:AddressInfo] :: AddressInfo -> !Maybe ByteString
+ Cardano.Address.Style.Byron: [infoAddressRoot] :: AddressInfo -> !ByteString
+ Cardano.Address.Style.Byron: [infoNetworkTag] :: AddressInfo -> !Maybe NetworkTag
+ Cardano.Address.Style.Byron: [infoPayload] :: AddressInfo -> !PayloadInfo
+ Cardano.Address.Style.Byron: derivationPath :: Byron depth key -> DerivationPath depth
+ Cardano.Address.Style.Byron: getKey :: Byron depth key -> key
+ Cardano.Address.Style.Byron: payloadPassphrase :: Byron depth key -> ScrubbedBytes
+ Cardano.Address.Style.Shelley: [infoAddressType] :: AddressInfo -> !Word8
+ Cardano.Address.Style.Shelley: [infoNetworkTag] :: AddressInfo -> !NetworkTag
+ Cardano.Address.Style.Shelley: [infoSpendingKeyHash] :: AddressInfo -> !Maybe ByteString
+ Cardano.Address.Style.Shelley: [infoSpendingScriptHash] :: AddressInfo -> !Maybe ByteString
+ Cardano.Address.Style.Shelley: [infoStakeKeyHash] :: AddressInfo -> !Maybe ByteString
+ Cardano.Address.Style.Shelley: [infoStakeReference] :: AddressInfo -> !Maybe ReferenceInfo
+ Cardano.Address.Style.Shelley: [infoStakeScriptHash] :: AddressInfo -> !Maybe ByteString
+ Cardano.Mnemonic: data Dictionary
+ Cardano.Mnemonic: mkMnemonicWithDict :: forall (mw :: Nat) (ent :: Nat) (csz :: Nat). (ConsistentEntropy ent mw csz, EntropySize mw ~ ent) => [Text] -> Dictionary -> Either (MkMnemonicError csz) (Mnemonic mw)
+ Cardano.Mnemonic: mnemonicToTextWithDict :: forall (mw :: Nat). Mnemonic mw -> Dictionary -> [Text]
- Cardano.Address: class PaymentAddress key => DelegationAddress key
+ Cardano.Address: class PaymentAddress key => DelegationAddress (key :: Depth -> Type -> Type)
- Cardano.Address: class HasNetworkDiscriminant key => PaymentAddress key
+ Cardano.Address: class HasNetworkDiscriminant key => PaymentAddress (key :: Depth -> Type -> Type)
- Cardano.Address: class PaymentAddress key => PointerAddress key
+ Cardano.Address: class PaymentAddress key => PointerAddress (key :: Depth -> Type -> Type)
- Cardano.Address: class HasNetworkDiscriminant key => StakeAddress key
+ Cardano.Address: class HasNetworkDiscriminant key => StakeAddress (key :: Depth -> Type -> Type)
- Cardano.Address.Derivation: coerceWholeDomainIndex :: Index ty depth0 -> Index 'WholeDomain depth1
+ Cardano.Address.Derivation: coerceWholeDomainIndex :: forall (ty :: DerivationType) (depth0 :: Depth) (depth1 :: Depth). Index ty depth0 -> Index 'WholeDomain depth1
- Cardano.Address.Derivation: indexFromWord32 :: forall ix derivationType depth. (ix ~ Index derivationType depth, Bounded ix) => Word32 -> Maybe ix
+ Cardano.Address.Derivation: indexFromWord32 :: forall ix (derivationType :: DerivationType) (depth :: Depth). (ix ~ Index derivationType depth, Bounded ix) => Word32 -> Maybe ix
- Cardano.Address.Derivation: nextIndex :: forall ix derivationType depth. (ix ~ Index derivationType depth, Bounded ix) => ix -> Maybe ix
+ Cardano.Address.Derivation: nextIndex :: forall ix (derivationType :: DerivationType) (depth :: Depth). (ix ~ Index derivationType depth, Bounded ix) => ix -> Maybe ix
- Cardano.Address.Derivation: type AccountIndexDerivationType key :: DerivationType;
+ Cardano.Address.Derivation: type AccountIndexDerivationType (key :: Depth -> Type -> Type) :: DerivationType;
- Cardano.Address.Derivation: type AddressIndexDerivationType key :: DerivationType;
+ Cardano.Address.Derivation: type AddressIndexDerivationType (key :: Depth -> Type -> Type) :: DerivationType;
- Cardano.Address.Derivation: type SecondFactor key :: Type;
+ Cardano.Address.Derivation: type SecondFactor (key :: Depth -> Type -> Type);
- Cardano.Address.Derivation: type WithRole key :: Type;
+ Cardano.Address.Derivation: type WithRole (key :: Depth -> Type -> Type);
- Cardano.Address.Derivation: wholeDomainIndex :: Word32 -> Index 'WholeDomain depth
+ Cardano.Address.Derivation: wholeDomainIndex :: forall (depth :: Depth). Word32 -> Index 'WholeDomain depth
- Cardano.Address.Internal: data () => DeserialiseFailure
+ Cardano.Address.Internal: data DeserialiseFailure
- Cardano.Address.Script: ActiveFromSlot :: Natural -> Script (elem :: Type)
+ Cardano.Address.Script: ActiveFromSlot :: Natural -> Script elem
- Cardano.Address.Script: ActiveUntilSlot :: Natural -> Script (elem :: Type)
+ Cardano.Address.Script: ActiveUntilSlot :: Natural -> Script elem
- Cardano.Address.Script: RequireAllOf :: ![Script elem] -> Script (elem :: Type)
+ Cardano.Address.Script: RequireAllOf :: ![Script elem] -> Script elem
- Cardano.Address.Script: RequireAnyOf :: ![Script elem] -> Script (elem :: Type)
+ Cardano.Address.Script: RequireAnyOf :: ![Script elem] -> Script elem
- Cardano.Address.Script: RequireSignatureOf :: !elem -> Script (elem :: Type)
+ Cardano.Address.Script: RequireSignatureOf :: !elem -> Script elem
- Cardano.Address.Script: RequireSomeOf :: Word8 -> ![Script elem] -> Script (elem :: Type)
+ Cardano.Address.Script: RequireSomeOf :: Word8 -> ![Script elem] -> Script elem
- Cardano.Address.Script: data Script (elem :: Type)
+ Cardano.Address.Script: data Script elem
- Cardano.Address.Style.Byron: inspectAddress :: forall m. MonadThrow m => Maybe XPub -> Address -> m Value
+ Cardano.Address.Style.Byron: inspectAddress :: MonadThrow m => Maybe XPub -> Address -> m Value
- Cardano.Address.Style.Byron: inspectByronAddress :: forall m. MonadThrow m => Maybe XPub -> Address -> m Value
+ Cardano.Address.Style.Byron: inspectByronAddress :: MonadThrow m => Maybe XPub -> Address -> m Value
- Cardano.Address.Style.Byron: liftXPrv :: XPub -> DerivationPath depth -> XPrv -> Byron depth XPrv
+ Cardano.Address.Style.Byron: liftXPrv :: forall (depth :: Depth). XPub -> DerivationPath depth -> XPrv -> Byron depth XPrv
- Cardano.Address.Style.Byron: liftXPub :: XPub -> DerivationPath depth -> XPub -> Byron depth XPub
+ Cardano.Address.Style.Byron: liftXPub :: forall (depth :: Depth). XPub -> DerivationPath depth -> XPub -> Byron depth XPub
- Cardano.Address.Style.Byron: type family DerivationPath (depth :: Depth) :: Type
+ Cardano.Address.Style.Byron: type family DerivationPath (depth :: Depth)
- Cardano.Address.Style.Icarus: liftXPrv :: XPrv -> Icarus depth XPrv
+ Cardano.Address.Style.Icarus: liftXPrv :: forall (depth :: Depth). XPrv -> Icarus depth XPrv
- Cardano.Address.Style.Icarus: liftXPub :: XPub -> Icarus depth XPub
+ Cardano.Address.Style.Icarus: liftXPub :: forall (depth :: Depth). XPub -> Icarus depth XPub
- Cardano.Address.Style.Shared: liftXPrv :: XPrv -> Shared depth XPrv
+ Cardano.Address.Style.Shared: liftXPrv :: forall (depth :: Depth). XPrv -> Shared depth XPrv
- Cardano.Address.Style.Shared: liftXPub :: XPub -> Shared depth XPub
+ Cardano.Address.Style.Shared: liftXPub :: forall (depth :: Depth). XPub -> Shared depth XPub
- Cardano.Address.Style.Shelley: liftPub :: Pub -> Shelley depth Pub
+ Cardano.Address.Style.Shelley: liftPub :: forall (depth :: Depth). Pub -> Shelley depth Pub
- Cardano.Address.Style.Shelley: liftXPrv :: XPrv -> Shelley depth XPrv
+ Cardano.Address.Style.Shelley: liftXPrv :: forall (depth :: Depth). XPrv -> Shelley depth XPrv
- Cardano.Address.Style.Shelley: liftXPub :: XPub -> Shelley depth XPub
+ Cardano.Address.Style.Shelley: liftXPub :: forall (depth :: Depth). XPub -> Shelley depth XPub
- Cardano.Codec.Cbor: deserialiseCbor :: (forall s. Decoder s a) -> ByteString -> Either DeserialiseFailure a
+ Cardano.Codec.Cbor: deserialiseCbor :: (forall s. () => Decoder s a) -> ByteString -> Either DeserialiseFailure a
- Cardano.Codec.Cbor: unsafeDeserialiseCbor :: HasCallStack => (forall s. Decoder s a) -> ByteString -> a
+ Cardano.Codec.Cbor: unsafeDeserialiseCbor :: HasCallStack => (forall s. () => Decoder s a) -> ByteString -> a
- Cardano.Mnemonic: ErrDictionary :: DictionaryError -> MkMnemonicError csz
+ Cardano.Mnemonic: ErrDictionary :: DictionaryError -> MkMnemonicError (csz :: Nat)
- Cardano.Mnemonic: ErrEntropy :: EntropyError csz -> MkMnemonicError csz
+ Cardano.Mnemonic: ErrEntropy :: EntropyError csz -> MkMnemonicError (csz :: Nat)
- Cardano.Mnemonic: ErrMnemonicWords :: MnemonicWordsError -> MkMnemonicError csz
+ Cardano.Mnemonic: ErrMnemonicWords :: MnemonicWordsError -> MkMnemonicError (csz :: Nat)
- Cardano.Mnemonic: UnexpectedEntropyError :: EntropyError csz -> MnemonicException csz
+ Cardano.Mnemonic: UnexpectedEntropyError :: EntropyError csz -> MnemonicException (csz :: Nat)
- Cardano.Mnemonic: [SomeMnemonic] :: forall mw. KnownNat mw => Mnemonic mw -> SomeMnemonic
+ Cardano.Mnemonic: [SomeMnemonic] :: forall (mw :: Nat). KnownNat mw => Mnemonic mw -> SomeMnemonic
- Cardano.Mnemonic: data () => Entropy (n :: Nat)
+ Cardano.Mnemonic: data Entropy (n :: Nat)
- Cardano.Mnemonic: data MkMnemonicError csz
+ Cardano.Mnemonic: data MkMnemonicError (csz :: Nat)
- Cardano.Mnemonic: entropyToBytes :: Entropy n -> ScrubbedBytes
+ Cardano.Mnemonic: entropyToBytes :: forall (n :: Nat). Entropy n -> ScrubbedBytes
- Cardano.Mnemonic: entropyToMnemonic :: forall mw ent csz. (ValidMnemonicSentence mw, ValidEntropySize ent, ValidChecksumSize ent csz, ent ~ EntropySize mw, mw ~ MnemonicWords ent) => Entropy ent -> Mnemonic mw
+ Cardano.Mnemonic: entropyToMnemonic :: forall (mw :: Nat) (ent :: Nat) (csz :: Nat). (ValidMnemonicSentence mw, ValidEntropySize ent, ValidChecksumSize ent csz, ent ~ EntropySize mw, mw ~ MnemonicWords ent) => Entropy ent -> Mnemonic mw
- Cardano.Mnemonic: genEntropy :: forall (ent :: Nat) csz. (ValidEntropySize ent, ValidChecksumSize ent csz) => IO (Entropy ent)
+ Cardano.Mnemonic: genEntropy :: forall (ent :: Nat) (csz :: Nat). (ValidEntropySize ent, ValidChecksumSize ent csz) => IO (Entropy ent)
- Cardano.Mnemonic: mkEntropy :: forall (ent :: Nat) csz. (ValidEntropySize ent, ValidChecksumSize ent csz) => ScrubbedBytes -> Either (EntropyError csz) (Entropy ent)
+ Cardano.Mnemonic: mkEntropy :: forall (ent :: Nat) (csz :: Nat). (ValidEntropySize ent, ValidChecksumSize ent csz) => ScrubbedBytes -> Either (EntropyError csz) (Entropy ent)
- Cardano.Mnemonic: mkMnemonic :: forall (mw :: Nat) (ent :: Nat) csz. (ConsistentEntropy ent mw csz, EntropySize mw ~ ent) => [Text] -> Either (MkMnemonicError csz) (Mnemonic mw)
+ Cardano.Mnemonic: mkMnemonic :: forall (mw :: Nat) (ent :: Nat) (csz :: Nat). (ConsistentEntropy ent mw csz, EntropySize mw ~ ent) => [Text] -> Either (MkMnemonicError csz) (Mnemonic mw)
- Cardano.Mnemonic: mnemonicToText :: Mnemonic mw -> [Text]
+ Cardano.Mnemonic: mnemonicToText :: forall (mw :: Nat). Mnemonic mw -> [Text]
- Cardano.Mnemonic: newtype MnemonicException csz
+ Cardano.Mnemonic: newtype MnemonicException (csz :: Nat)

Files

CONTRIBUTING.md view
@@ -15,13 +15,19 @@ The following people hold key responsibilities:  * @disassembler is responsible for releases-* @Crypto2099 is responsible for compilation to JavaScript and CI+* @Crypto2099 is responsible for CI * @paweljakubas is responsible for the Haskell components  Regular contributors for the Haskell components are -* @Anviking @HeinrichApfelmus @jonathanknowles @paweljakubas @paolino+* @Anviking @paweljakubas @paolino  all of whom can merge PRs and be asked to review them.  In addition, the CODEOWNERS file identifies specific reviewers who are required for PRs that affect specific components.++## Versioning standard+**Semantic Versioning** is adopted in the repository. This means that if we have, for example, version *0.4.1*, then+public API exposed by `cardano-addresses` is ensured to stay the same until *0.5.0* version.+Hence, versions *0.4.2*, *0.4.3*,... *0.4.x* are patches+with regards to *0.4.1* and client code of `cardano-addresses` is expected to stay intact and functioning correctly.
ChangeLog.md view
@@ -1,3 +1,10 @@+## [4.0.1] - 2025-10-30++### Added++- Support for other languages, i.e., `spanish`, `italian`, `french`, `korean` and `japanese` in mnemonic generation+- Extend upper bound `optparse-applicative` to `< 0.20`+ ## [4.0.0] - 2025-02-04  ### Added
README.md view
@@ -4,7 +4,6 @@  <p align="center">   <a href="https://github.com/IntersectMBO/cardano-addresses/releases"><img src="https://img.shields.io/github/v/release/IntersectMBO/cardano-addresses?color=%239b59b6&label=RELEASE&sort=semver&style=for-the-badge"/></a>-  <a href="https://www.npmjs.com/package/cardano-addresses"><img src="https://img.shields.io/npm/v/cardano-addresses?color=%239b59b6&style=for-the-badge"/></a>   <a href="https://IntersectMBO.github.io/cardano-addresses/coverage/hpc_index.html"><img src="https://IntersectMBO.github.io/cardano-addresses/coverage/badge.svg" /></a>   <br> </p>@@ -39,6 +38,24 @@ ```console $ cardano-address recovery-phrase generate --size 15 > phrase.prv exercise club noble adult miracle awkward problem olympic puppy private goddess piano fatal fashion vacuum++$ cardano-address recovery-phrase generate --size 15 --language en+joke someone lesson napkin cloud crush cattle machine toddler auction until dumb nephew atom nest++$ cardano-address recovery-phrase generate --size 15 --language it+tetro assoluto velcro cullato prassi perdonato rifugio esercito placebo zanna sogno mitezza valoroso neutrale pranzo++$ cardano-address recovery-phrase generate --size 15 --language fr+maximal saisir gendarme gazon libre cinéma maigre sabre inexact brusque légal patience étude fable tronc++$ cardano-address recovery-phrase generate --size 15 --language es+freno taza luz ciego votar tabla ilusión pomada rasgo droga alga ocio flúor resumen tiempo++$ cardano-address recovery-phrase generate --size 15 --language ja+さつたば ようちえん せめる にさんかたんそ さめる おんだん ひんぱん いおん げどく ふいうち こうさい だんな もちろん のらねこ さつたば++$ cardano-address recovery-phrase generate --size 15 --language ko+번역 자연 수건 확인 양념 가장 운동 장점 주인 망원경 전자 한문 대응 진료 시즌 ```  @@ -933,7 +950,7 @@ 1. [MeshJS](https://github.com/MeshJS/mesh) 2. [blaze-cardano](https://github.com/butaneprotocol/blaze-cardano) -Alternatively one could lean back on release [4.0.0](https://github.com/IntersectMBO/cardano-addresses/releases/tag/4.0.0)+Alternatively one could lean back on release [3.9.0](https://github.com/IntersectMBO/cardano-addresses/releases/tag/3.9.0) where Javascript was still present.  ## Contributing
cardano-addresses.cabal view
@@ -1,7 +1,7 @@ cabal-version: 1.12  name:           cardano-addresses-version:        4.0.0+version:        4.0.1 synopsis:       Utils for constructing a command-line on top of cardano-addresses. description:    Please see the README on GitHub at <https://github.com/IntersectMBO/cardano-addresses> category:       Cardano@@ -45,6 +45,14 @@       Cardano.Address.Style.Shelley       Cardano.Codec.Bech32.Prefixes       Cardano.Codec.Cbor+      Cardano.Dictionary+      Cardano.Dictionary.English+      Cardano.Dictionary.French+      Cardano.Dictionary.Generic+      Cardano.Dictionary.Italian+      Cardano.Dictionary.Japanese+      Cardano.Dictionary.Korean+      Cardano.Dictionary.Spanish       Cardano.Mnemonic       Codec.Binary.Encoding       Command@@ -75,6 +83,7 @@       Options.Applicative.Derivation       Options.Applicative.Discrimination       Options.Applicative.Governance+      Options.Applicative.MnemonicLanguage       Options.Applicative.MnemonicSize       Options.Applicative.Public       Options.Applicative.Script@@ -114,7 +123,7 @@     , hashable     , memory  >= 0.18.0 && < 0.19     , mtl >= 2.2.2-    , optparse-applicative >= 0.18.1.0 && < 0.19+    , optparse-applicative >= 0.18.1.0 && < 0.20     , process >= 1.6.13.2 && < 1.7     , safe >= 0.3.19 && < 0.4     , template-haskell >= 2.16.0.0 && < 2.24
lib/Cardano/Address.hs view
@@ -90,9 +90,9 @@     } deriving stock (Generic, Show, Eq, Ord) instance NFData Address --- Unsafe constructor for easily lifting bytes inside an 'Address'.+-- | Unsafe constructor for easily lifting bytes inside an 'Address'. ----- /!\ Use at your own risks.+-- __Use at your own risks.__ unsafeMkAddress :: ByteString -> Address unsafeMkAddress = Address @@ -230,7 +230,7 @@     addressDiscrimination :: NetworkDiscriminant key -> AddressDiscrimination     networkTag :: NetworkDiscriminant key -> NetworkTag --- Magic constant associated with a given network. This is mainly used in two+-- | Magic constant associated with a given network. This is mainly used in two -- places: -- -- (1) In 'Address' payloads, to discriminate addresses between networks.
lib/Cardano/Address/Derivation.hs view
@@ -356,10 +356,10 @@ -- Key Derivation -- --- | Key Depth in the derivation path, according to BIP-0039 / BIP-0044+-- | Key Depth in the derivation path, according to [BIP-0039](https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki) and [BIP-0044](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki). -- -- @--- root | purpose' | cointype' | account' | role | address@+-- root | purpose' | cointype' | account' | role | address -- 0th      1st         2nd        3rd       4th     5th -- @ --
lib/Cardano/Address/KeyHash.hs view
@@ -18,12 +18,17 @@  module Cardano.Address.KeyHash     (+    -- * Types       KeyHash (..)     , KeyRole (..)     , GovernanceType (..)++    -- * Conversions     , keyHashFromBytes     , keyHashFromText     , keyHashToText++    -- * Errors     , ErrKeyHashFromText     , prettyErrKeyHashFromText     ) where@@ -54,30 +59,51 @@ import qualified Data.ByteString as BS import qualified Data.Text.Encoding as T --- | Determines if one asks for deprecated HRP prefixes, '*_vkh' and '*_script'--- in accordance to CIP-0105 (on demand when flag 'cip-0105' is used) or uses default format--- specified in CIP-0129 (where additional byte is prepended to 28-byte hash).+-- | Determines if one asks for deprecated HRP prefixes, __*_vkh__ and __*_script__+-- in accordance to [CIP-0105](https://github.com/cardano-foundation/CIPs/tree/master/CIP-0105) (on demand when flag 'cip-0105' is used) or uses default format+-- specified in [CIP-0129](https://github.com/cardano-foundation/CIPs/tree/master/CIP-0129) (where additional byte is prepended to 28-byte hash). data GovernanceType = NoGovernance | CIP0129 | CIP0105     deriving (Eq, Show) --- | Determines the role a given key plays. The role basically can be mapped into derivation path+-- | Determines the role a given key plays.+--+-- The role basically can be mapped into derivation path -- which was used to derive it from the parent. Also it has a dedicated user facing HRP -- when presented in bech32 format - see 'keyHashToText' for more details.+-- -- Take notice that purpose/role (except 'Policy') are as defined below in derivation path:+--+-- @ -- m / purpose' / coin_type' / account_ix' / role / index+-- @+-- -- 'Policy' has a dedicated derivation path as follows:+--+-- @ -- m / purpose' / coin_type' / policy_ix'+-- @ --+--+-- +------------------+------------+--------+------------------------------------------------------------------------------+ -- |    KeyRole       |   purpose  |  role  |                                  CIP                                         |--- ------------------------------------------------------------------------------------------------------------------------|+-- +==================+============+========+==============================================================================+ -- | PaymentShared    |   1854H    |   0,1  | [CIP-1854](https://github.com/cardano-foundation/CIPs/tree/master/CIP-1854)  |+-- +------------------+------------+--------+------------------------------------------------------------------------------+ -- | DelegationShared |   1854H    |   2    | [CIP-1854](https://github.com/cardano-foundation/CIPs/tree/master/CIP-1854)  |+-- +------------------+------------+--------+------------------------------------------------------------------------------+ -- | Payment          |   1852H    |   0,1  | [CIP-1852](https://github.com/cardano-foundation/CIPs/tree/master/CIP-1852)  |+-- +------------------+------------+--------+------------------------------------------------------------------------------+ -- | Delegation       |   1852H    |   2    | [CIP-0011](https://github.com/cardano-foundation/CIPs/tree/master/CIP-0011)  |+-- +------------------+------------+--------+------------------------------------------------------------------------------+ -- | Representative   |   1852H    |   3    | [CIP-0105](https://github.com/cardano-foundation/CIPs/tree/master/CIP-0105)  |+-- +------------------+------------+--------+------------------------------------------------------------------------------+ -- | CommitteeCold    |   1852H    |   4    | [CIP-0105](https://github.com/cardano-foundation/CIPs/tree/master/CIP-0105)  |+-- +------------------+------------+--------+------------------------------------------------------------------------------+ -- | CommitteeHot     |   1852H    |   5    | [CIP-0105](https://github.com/cardano-foundation/CIPs/tree/master/CIP-0105)  |+-- +------------------+------------+--------+------------------------------------------------------------------------------+ -- | Policy           |   1855H    |   -    | [CIP-1855](https://github.com/cardano-foundation/CIPs/tree/master/CIP-1855)  |+-- +------------------+------------+--------+------------------------------------------------------------------------------++-- data KeyRole =       PaymentShared     | DelegationShared@@ -169,7 +195,7 @@  -- | Construct a 'KeyHash' from 'Text'. It should be -- Bech32 encoded text with one of following hrp:-+-- -- - `addr_shared_vkh` -- - `stake_shared_vkh` -- - `addr_vkh`@@ -196,7 +222,7 @@ -- - `drep_xvk` -- - `cc_cold_xvk` -- - `cc_hot_xvk`-+-- -- Raw keys will be hashed on the fly, whereas hash that are directly -- provided will remain as such. -- If if hex is encountered 'Unknown' policy key is assumed.@@ -306,7 +332,7 @@     checkBSLength bytes expLength =         BS.length bytes == expLength --- Possible errors when deserializing a key hash from text.+-- | Possible errors when deserializing a key hash from text. -- -- @since 3.0.0 data ErrKeyHashFromText@@ -317,7 +343,7 @@     | ErrKeyHashFromTextInvalidHex Int     deriving (Show, Eq) --- Possible errors when deserializing a key hash from text.+-- | Possible errors when deserializing a key hash from text. -- -- @since 3.0.0 prettyErrKeyHashFromText :: ErrKeyHashFromText -> String
lib/Cardano/Address/Script.hs view
@@ -238,13 +238,15 @@ -- One byte is prepended to script hash only in governance context. The rules how to contruct it are summarized -- below --+-- @ --   drep       0010.... --   hot        0000....    key type --   cold       0001.... -- --   scripthash ....0011    credential type+-- @ ----- This is on top of X_script, where X={drep, cc_hot, cc_hot}, which lacks the additional byte.+-- This is on top of @X_script@, where @X={drep, cc_hot, cc_hot}@, which lacks the additional byte. -- In `scriptHashFromText` we additionally -- support reading legacy X which also lacks the additional byte, and has the same payload as -- as the corresponding X_script.@@ -280,7 +282,9 @@         _ -> Nothing  -- | Construct a 'ScriptHash' from 'Text'. It should be+-- -- Bech32 encoded text with one of following hrp:+-- -- - `script` -- - `drep` -- - `cc_cold`@@ -288,6 +292,7 @@ -- - `drep_script` -- - `cc_cold_script` -- - `cc_hot_script`+-- -- If if hex is encountered it is converted in rawly fashion -- -- @since 4.0.0@@ -345,7 +350,7 @@     checkBSLength bytes expLength =         BS.length bytes == expLength --- Validation level. Required level does basic check that will make sure the script+-- | Validation level. Required level does basic check that will make sure the script -- is accepted in ledger. Recommended level collects a number of checks that will -- warn about dangerous, unwise and redundant things present in the script. --@@ -354,7 +359,7 @@     deriving (Show, Eq, Generic) instance NFData ValidationLevel --- Possible errors when deserializing a script hash from text.+-- | Possible errors when deserializing a script hash from text. -- -- @since 4.0.0 data ErrScriptHashFromText@@ -365,7 +370,7 @@     | ErrScriptHashFromTextInvalidHex     deriving (Show, Eq) --- Possible errors when deserializing a script hash from text.+-- | Possible errors when deserializing a script hash from text. -- -- @since 4.0.0 prettyErrScriptHashFromText :: ErrScriptHashFromText -> String@@ -646,7 +651,7 @@ -- Internal -- --- Examples of Script jsons:+    -- Examples of Script jsons: --"addr_shared_vkh1zxt0uvrza94h3hv4jpv0ttddgnwkvdgeyq8jf9w30mcs6y8w3nq" --"stake_shared_vkh1nqc00hvlc6cq0sfhretk0rmzw8dywmusp8retuqnnxzajtzhjg5" --{ "all" : [ "addr_shared_vkh1zxt0uvrza94h3hv4jpv0ttddgnwkvdgeyq8jf9w30mcs6y8w3nq"
lib/Cardano/Address/Script/Parser.hs view
@@ -82,26 +82,30 @@ -- it valid. We assume here that the script could -- delivered from standard input. The examples below are self-explanatory: --+-- __Example__:+--+-- @ -- 1. requiring signature--- 3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3fe+--    3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3fe ----- 2. 'any' for signature required--- any [3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3fe, 3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3f1]+-- 2. any for signature required+--    any [3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3fe, 3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3f1] ----- 3. 'all' signatures required--- all [3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3fe, 3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3f1]+-- 3. all signatures required+--    all [3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3fe, 3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3f1] ----- 4. 'at_least' 1 signature required--- at_least 1 [3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3fe, 3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3f1]+-- 4. at_least 1 signature required+--    at_least 1 [3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3fe, 3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3f1] -- -- 5. Nested script are supported--- at_least 1 [3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3fe, all [3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3f1, 3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3f1]]+--    at_least 1 [3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3fe, all [3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3f1, 3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3f1]] -- 6. 1 signature required after slot number 120--- all [3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3fe, active_from 120]+--    all [3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3fe, active_from 120] -- 7. 1 signature required until slot number 150--- all [3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3fe, active_until 150]+--    all [3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3fe, active_until 150] -- 8. 1 signature required in slot interval <145, 150)--- all [3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3fe, active_from 145, active_until 150]+--    all [3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3fe, active_from 145, active_until 150]+-- @ -- -- Parser is insensitive to whitespaces. --
lib/Cardano/Address/Style/Byron.hs view
@@ -155,7 +155,7 @@ -- it was recommended and enforced to use Hardened for account derivation and Soft for payment -- key derivation from 2019 onwards. To sum up both account index and payment index can assume -- values from 0 to 4294967295 (ie. 0xFFFFFFFF)-+-- -- == Deprecation Notice -- -- Unless you have good reason to do so (like writing backward-compatible code@@ -206,36 +206,46 @@         (Index 'WholeDomain 'AccountK, Index 'WholeDomain 'PaymentK) {-# DEPRECATED DerivationPath "see 'Cardano.Address.Style.Icarus.Icarus'" #-} ++-- | Key Derivation ----- Key Derivation+-- __Example__: ----- === Generating a root key from 'SomeMnemonic'--- > :set -XOverloadedStrings--- > :set -XTypeApplications--- > :set -XDataKinds--- > :set -XFlexibleContexts--- > import Cardano.Mnemonic ( mkSomeMnemonic )--- > import Cardano.Address ( base58 )--- > import Cardano.Address.Derivation ( toXPub )--- > import qualified Cardano.Address.Style.Byron as Byron--- >--- > let (Right mw) = mkSomeMnemonic @'[12] ["moon","fox","ostrich","quick","cactus","raven","wasp","intact","first","ring","crumble","error"]--- > let rootK = Byron.genMasterKeyFromMnemonic mw :: Byron 'RootK XPrv+-- ==== Generating a root key from 'SomeMnemonic' ----- === Deriving child keys--- === Both accIx and addIx assume values from 0 to 4294967295 (ie. 0xFFFFFFFF)--- === In case of account one can get this bound via--- === let accIxMin = minBound @(Index 'WholeDomain 'AccountK)--- === let accIxMax = maxBound @(Index 'WholeDomain 'AccountK)--- > let Just accIx = wholeDomainIndex 0x80000000--- > let acctK = Byron.deriveAccountPrivateKey rootK accIx--- >--- > let Just addIx = wholeDomainIndex 0x80000014--- > let addrK = Byron.deriveAddressPrivateKey acctK addIx--- >--- > base58 $ Byron.paymentAddress Byron.byronMainnet (toXPub <$> addrK)--- > "DdzFFzCqrhsq3KjLtT51mESbZ4RepiHPzLqEhamexVFTJpGbCXmh7qSxnHvaL88QmtVTD1E1sjx8Z1ZNDhYmcBV38ZjDST9kYVxSkhcw"-+-- @+-- >>> :set -XOverloadedStrings+-- >>> :set -XTypeApplications+-- >>> :set -XDataKinds+-- >>> :set -XFlexibleContexts+-- >>> import Cardano.Mnemonic ( mkSomeMnemonic )+-- >>> import Cardano.Address ( base58 )+-- >>> import Cardano.Address.Derivation ( toXPub )+-- >>> import qualified Cardano.Address.Style.Byron as Byron+--+-- >>> let (Right mw) = mkSomeMnemonic @'[12] ["moon","fox","ostrich","quick","cactus","raven","wasp","intact","first","ring","crumble","error"]+-- >>> let rootK = Byron.genMasterKeyFromMnemonic mw :: Byron 'RootK XPrv+-- @+--+-- ==== Deriving child keys+--+-- Both `accIx` and `addIx` assume values from 0 to 4294967295 (ie. 0xFFFFFFFF)+-- In case of account one can get this bound via+--+-- @+-- let accIxMin = minBound @(Index 'WholeDomain 'AccountK)+-- let accIxMax = maxBound @(Index 'WholeDomain 'AccountK)+--+-- >>> let Just accIx = wholeDomainIndex 0x80000000+-- >>> let acctK = Byron.deriveAccountPrivateKey rootK accIx+--+-- >>> let Just addIx = wholeDomainIndex 0x80000014+-- >>> let addrK = Byron.deriveAddressPrivateKey acctK addIx+--+-- >>> base58 $ Byron.paymentAddress Byron.byronMainnet (toXPub <$> addrK)+-- "DdzFFzCqrhsq3KjLtT51mESbZ4RepiHPzLqEhamexVFTJpGbCXmh7qSxnHvaL88QmtVTD1E1sjx8Z1ZNDhYmcBV38ZjDST9kYVxSkhcw"+-- @+-- instance Internal.GenMasterKey Byron where     type SecondFactor Byron = () @@ -318,8 +328,8 @@ -- Addresses -- -- $addresses--- === Generating a 'PaymentAddress' --+ -- | Possible errors from inspecting a Byron address -- -- @since 3.0.0@@ -345,7 +355,7 @@     FailedToDecryptPath ->         "Failed to decrypt derivation path" --- Determines whether an 'Address' is a Byron address.+-- | Determines whether an 'Address' is a Byron address. -- -- Returns a JSON object with information about the address, or throws -- 'ErrInspectAddress' if the address isn't a byron address.
lib/Cardano/Address/Style/Icarus.hs view
@@ -94,7 +94,12 @@ import Cardano.Address.Style.Byron     ( byronMainnet, byronPreprod, byronPreview, byronStaging, byronTestnet ) import Cardano.Mnemonic-    ( SomeMnemonic (..), entropyToBytes, mnemonicToEntropy, mnemonicToText )+    ( SomeMnemonic (..)+    , english+    , entropyToBytes+    , mnemonicToEntropy+    , mnemonicToTextWithDict+    ) import Codec.Binary.Encoding     ( AbstractEncoding (..), encode ) import Control.DeepSeq@@ -155,8 +160,8 @@ -- We call 'Icarus' addresses the new format of Cardano addresses which came -- after 'Cardano.Address.Style.Byron.Byron'. This is the format initially used in /Yoroi/ -- and now also used by /Daedalus/.---- | A cryptographic key for sequential-scheme address derivation, with+--+-- A cryptographic key for sequential-scheme address derivation, with -- phantom-types to disambiguate key types. -- -- @@@ -177,6 +182,9 @@ deriving instance (Functor (Icarus depth)) instance (NFData key) => NFData (Icarus depth key) +-- | Role the key assumes+--+-- @since 1.0.0 data Role     = UTxOExternal     | UTxOInternal@@ -195,41 +203,45 @@     UTxOExternal -> 0     UTxOInternal -> 1 ------ Key Derivation+-- | Key Derivation -- -- $keyDerivation ----- === Generating a root key from 'SomeMnemonic'--- > :set -XOverloadedStrings--- > :set -XTypeApplications--- > :set -XDataKinds--- > :set -XFlexibleContexts--- > import Cardano.Mnemonic ( mkSomeMnemonic )--- > import Cardano.Address ( base58 )--- > import Cardano.Address.Derivation ( toXPub )--- > import qualified Cardano.Address.Style.Icarus as Icarus--- >--- > let (Right mw) = mkSomeMnemonic @'[15] ["network","empty","cause","mean","expire","private","finger","accident","session","problem","absurd","banner","stage","void","what"]--- > let sndFactor = mempty -- Or alternatively, a second factor mnemonic transformed to bytes via someMnemonicToBytes--- > let rootK = Icarus.genMasterKeyFromMnemonic mw sndFactor :: Icarus 'RootK XPrv+-- __Example__: ----- === Deriving child keys+-- ==== Generating a root key from 'SomeMnemonic' --+-- @+-- >>> :set -XOverloadedStrings+-- >>> :set -XTypeApplications+-- >>> :set -XDataKinds+-- >>> :set -XFlexibleContexts+-- >>> import Cardano.Mnemonic ( mkSomeMnemonic )+-- >>> import Cardano.Address ( base58 )+-- >>> import Cardano.Address.Derivation ( toXPub )+-- >>> import qualified Cardano.Address.Style.Icarus as Icarus+-- >>>+-- >>> let (Right mw) = mkSomeMnemonic @'[15] ["network","empty","cause","mean","expire","private","finger","accident","session","problem","absurd","banner","stage","void","what"]+-- >>> let sndFactor = mempty -- Or alternatively, a second factor mnemonic transformed to bytes via someMnemonicToBytes+-- >>> let rootK = Icarus.genMasterKeyFromMnemonic mw sndFactor :: Icarus 'RootK XPrv+-- @+--+-- ==== Deriving child keys+-- -- Let's consider the following 3rd, 4th and 5th derivation paths @0'\/0\/14@--- === accIx assumes values from 2147483648 (ie. 0x80000000) to 4294967295 (ie. 0xFFFFFFFF)--- === addIx assume values from 0 to 2147483647 (ie. 7FFFFFFF)--- > let Just accIx = indexFromWord32 0x80000000--- === this is the same as--- > let accIx = minBound @(Index 'Hardened 'AccountK)--- > let acctK = Icarus.deriveAccountPrivateKey rootK accIx--- >--- > let Just addIx = indexFromWord32 0x00000014--- > let addrK = Icarus.deriveAddressPrivateKey acctK Icarus.UTxOExternal addIx--- >--- > base58 $ Icarus.paymentAddress Icarus.icarusMainnet (toXPub <$> addrK)--- >"Ae2tdPwUPEZ8XpsjgQPH2cJdtohkYrxJ3i5y6mVsrkZZkdpdn6mnr4Rt6wG"-+-- accIx assumes values from 2147483648 (ie. 0x80000000) to 4294967295 (ie. 0xFFFFFFFF)+-- addIx assume values from 0 to 2147483647 (ie. 7FFFFFFF)+--+-- @+-- >>> let Just accIx = indexFromWord32 0x80000000+-- // this is the same as+-- >>> let accIx = minBound @(Index 'Hardened 'AccountK)+-- >>> let acctK = Icarus.deriveAccountPrivateKey rootK accIx+-- >>> let Just addIx = indexFromWord32 0x00000014+-- >>> let addrK = Icarus.deriveAddressPrivateKey acctK Icarus.UTxOExternal addIx+-- >>> base58 $ Icarus.paymentAddress Icarus.icarusMainnet (toXPub <$> addrK)+-- >>>"Ae2tdPwUPEZ8XpsjgQPH2cJdtohkYrxJ3i5y6mVsrkZZkdpdn6mnr4Rt6wG"+-- @ instance Internal.GenMasterKey Icarus where     type SecondFactor Icarus = ScrubbedBytes @@ -349,8 +361,8 @@ -- Addresses -- -- $addresses--- === Generating a 'PaymentAddress' --+ -- | Possible errors from inspecting a Shelley address -- -- @since 3.0.0@@ -373,7 +385,7 @@     DeserialiseError e ->         format "Deserialisation error (was: {})" (show e) --- Determines whether an 'Address' is an Icarus address.+-- | Determines whether an 'Address' is an Icarus address. -- -- Returns a JSON object with information about the address, or throws -- 'ErrInspectAddress' if the address isn't an icarus address.@@ -383,52 +395,63 @@ inspectIcarusAddress = inspectAddress {-# DEPRECATED inspectIcarusAddress "use qualified 'inspectAddress' instead." #-} --- | Determines whether an 'Address' is an Icarus address.+-- | How to go from address root and the payment address ----- Returns a JSON object with information about the address, or throws--- 'ErrInspectAddress' if the address isn't an icarus address.--- λ> :set -XOverloadedStrings--- λ> :set -XTypeApplications--- λ> :set -XDataKinds--- λ> :set -XFlexibleContexts--- λ> import Cardano.Mnemonic ( mkSomeMnemonic )--- λ> import qualified Cardano.Address.Style.Icarus as Icarus--- λ> import Cardano.Address.Derivation ( toXPub )--- λ> import Cardano.Address ( base58 )--- λ> let (Right mw) = mkSomeMnemonic @'[12] ["moon","fox","ostrich","quick","cactus","raven","wasp","intact","first","ring","crumble","error"]--- λ> let sndFactor = mempty--- λ> let rootK = Icarus.genMasterKeyFromMnemonic mw sndFactor :: Icarus 'RootK XPrv--- λ> let Just accIx = indexFromWord32 0x80000000--- λ> let acctK = Icarus.deriveAccountPrivateKey rootK accIx--- λ> let Just addIx = indexFromWord32 0x00000014--- λ> let addrK = Icarus.deriveAddressPrivateKey acctK Icarus.UTxOExternal addIx--- λ> (toXPub <$> addrK)+-- ==== __Example__:+--+-- @+-- >>> :set -XOverloadedStrings+-- >>> :set -XTypeApplications+-- >>> :set -XDataKinds+-- >>> :set -XFlexibleContexts+-- >>> import Cardano.Mnemonic ( mkSomeMnemonic )+-- >>> import qualified Cardano.Address.Style.Icarus as Icarus+-- >>> import Cardano.Address.Derivation ( toXPub )+-- >>> import Cardano.Address ( base58 )+-- >>> let (Right mw) = mkSomeMnemonic @'[12] ["moon","fox","ostrich","quick","cactus","raven","wasp","intact","first","ring","crumble","error"]+-- >>> let sndFactor = mempty+-- >>> let rootK = Icarus.genMasterKeyFromMnemonic mw sndFactor :: Icarus 'RootK XPrv+-- >>> let Just accIx = indexFromWord32 0x80000000+-- >>> let acctK = Icarus.deriveAccountPrivateKey rootK accIx+-- >>> let Just addIx = indexFromWord32 0x00000014+-- >>> let addrK = Icarus.deriveAddressPrivateKey acctK Icarus.UTxOExternal addIx+-- >>> (toXPub <$> addrK) -- Icarus {getKey = XPub {xpubPublicKey = "\223\148\230\206\187\135\253\SO\151\216\183\210]}s:\151\134\174q\173\207\184\202\EM\176\170\220\216\235\&1\243", xpubChaincode = ChainCode "\\\160\196\&8~\208\165\241\138\SOH\222\ETX*\150&\214\185\196 \153\DC2\167\165\243\155\136\228\255\229~d\253"}}--- λ> base58 $ Icarus.paymentAddress icarusMainnet (toXPub <$> addrK)+-- >>> base58 $ Icarus.paymentAddress icarusMainnet (toXPub <$> addrK) -- "Ae2tdPwUPEYyzBcNXkFWKywMiZ9eSd96dQxhBQd371foiH16Y7gFgLBj9G5" ----- λ> import Cardano.Codec.Cbor--- λ> import Crypto.Hash.Algorithms (Blake2b_224, SHA3_256)--- λ> import Crypto.Hash (hash)--- λ> let blake2b224 = hash @_ @Blake2b_224--- λ> let sha3256 = hash @_ @SHA3_256--- λ> import qualified Codec.CBOR.Encoding as CBOR--- λ> let encodeXPub = CBOR.encodeBytes (xpubToBytes . Icarus.getKey $ icarusAddrKPub)--- λ> let encodeSpendingData = CBOR.encodeListLen 2 <> CBOR.encodeWord8 0 <> encodeXPub--- λ> let encodeAttrs = CBOR.encodeMapLen 0--- λ> import qualified Data.ByteArray as BA--- λ> let rootAddr = BA.convert $ blake2b224 $ sha3256 $ CBOR.toStrictByteString $ mempty <> CBOR.encodeListLen 3 <> CBOR.encodeWord8 0 <> encodeSpendingData <> encodeAttrs--- λ> encode EBase16 rootAddr+-- >>> import Cardano.Codec.Cbor+-- >>> import Crypto.Hash.Algorithms (Blake2b_224, SHA3_256)+-- >>> import Crypto.Hash (hash)+-- >>> let blake2b224 = hash @_ @Blake2b_224+-- >>> let sha3256 = hash @_ @SHA3_256+-- >>> import qualified Codec.CBOR.Encoding as CBOR+-- >>> let encodeXPub = CBOR.encodeBytes (xpubToBytes . Icarus.getKey $ icarusAddrKPub)+-- >>> let encodeSpendingData = CBOR.encodeListLen 2 <> CBOR.encodeWord8 0 <> encodeXPub+-- >>> let encodeAttrs = CBOR.encodeMapLen 0+-- >>> import qualified Data.ByteArray as BA+-- >>> let rootAddr = BA.convert $ blake2b224 $ sha3256 $ CBOR.toStrictByteString $ mempty <> CBOR.encodeListLen 3 <> CBOR.encodeWord8 0 <> encodeSpendingData <> encodeAttrs+-- >>> encode EBase16 rootAddr -- "1fdde02c9e087474aa7ab0a46ae2f6d316a92cd0fa2d4e8b1c2eebdf"+-- @ ----- $ echo Ae2tdPwUPEYyzBcNXkFWKywMiZ9eSd96dQxhBQd371foiH16Y7gFgLBj9G5 | cardano-address address inspect+-- Usage from the command-line:+--+-- @+--  echo Ae2tdPwUPEYyzBcNXkFWKywMiZ9eSd96dQxhBQd371foiH16Y7gFgLBj9G5 | cardano-address address inspect -- { --    "stake_reference": "none", --    "address_style": "Icarus", --    "address_root": "1fdde02c9e087474aa7ab0a46ae2f6d316a92cd0fa2d4e8b1c2eebdf", --    "network_tag": null, --    "address_type": 8---}+-- }+-- @++-- | Determines whether an 'Address' is an Icarus address.+--+-- Returns a JSON object with information about the address, or throws+-- 'ErrInspectAddress' if the address isn't an icarus address. -- @since 2.0.0 inspectAddress :: MonadThrow m => Address -> m Json.Value inspectAddress = either throwM (pure . toJSON) . eitherInspectAddress@@ -619,7 +642,7 @@     let seed = pbkdf2HmacSha512             $ T.encodeUtf8             $ T.intercalate " "-            $ mnemonicToText mw+            $ mnemonicToTextWithDict mw english      -- NOTE     -- SLIP-0010 refers to `iR` as the chain code. Here however, the chain code
lib/Cardano/Address/Style/Shared.hs view
@@ -123,28 +123,34 @@ -- -- $keyDerivation ----- === Generating a root key from 'SomeMnemonic'--- > :set -XOverloadedStrings--- > :set -XTypeApplications--- > :set -XDataKinds--- > import Cardano.Mnemonic ( mkSomeMnemonic )--- >--- > let (Right mw) = mkSomeMnemonic @'[15] ["network","empty","cause","mean","expire","private","finger","accident","session","problem","absurd","banner","stage","void","what"]--- > let sndFactor = mempty -- Or alternatively, a second factor mnemonic transformed to bytes via someMnemonicToBytes--- > let rootK = genMasterKeyFromMnemonic mw sndFactor :: Shared 'RootK XPrv+-- ==== Generating a root key from 'SomeMnemonic' ----- === Deriving child keys+-- @+-- >>> :set -XOverloadedStrings+-- >>> :set -XTypeApplications+-- >>> :set -XDataKinds+-- >>> import Cardano.Mnemonic ( mkSomeMnemonic )+-- @ --+-- @+-- >>> let (Right mw) = mkSomeMnemonic @'[15] ["network","empty","cause","mean","expire","private","finger","accident","session","problem","absurd","banner","stage","void","what"]+-- >>> let sndFactor = mempty -- Or alternatively, a second factor mnemonic transformed to bytes via someMnemonicToBytes+-- >>> let rootK = genMasterKeyFromMnemonic mw sndFactor :: Shared 'RootK XPrv+-- @+--+-- ==== Deriving child keys+-- -- Let's consider the following 3rd, 4th and 5th derivation paths @0'\/0\/14@ ----- > let Just accIx = indexFromWord32 0x80000000--- > let acctK = deriveAccountPrivateKey rootK accIx--- >--- > let Just addIx = indexFromWord32 0x00000014--- > let addrK = deriveAddressPrivateKey acctK UTxOExternal addIx+-- @+-- >>> let Just accIx = indexFromWord32 0x80000000+-- >>> let acctK = deriveAccountPrivateKey rootK accIx+-- >>>+-- >>> let Just addIx = indexFromWord32 0x00000014+-- >>> let addrK = deriveAddressPrivateKey acctK UTxOExternal addIx ----- > let stakeK = deriveDelegationPrivateKey acctK-+-- >>> let stakeK = deriveDelegationPrivateKey acctK+-- @ instance Internal.GenMasterKey Shared where     type SecondFactor Shared = ScrubbedBytes @@ -302,7 +308,7 @@ hashKey :: KeyRole -> Shared key XPub -> KeyHash hashKey cred = KeyHash cred . hashCredential . xpubPublicKey . getKey --- Purpose is a constant set to 1854' (or 0x8000073e) following the+-- | Purpose is a constant set to 1854' (or 0x8000073e) following the -- CIP-1854 Multi-signatures HD Wallets -- -- Hardened derivation is used at this level.
lib/Cardano/Address/Style/Shelley.hs view
@@ -190,21 +190,20 @@ -- - 'pointerAddress': for constructing delegation addresses from payment credential (public key or script) and chain pointer -- - 'stakeAddress': for constructing reward accounts from stake credential (public key or script) --- | A cryptographic key for sequential-scheme address derivation, with--- phantom-types to disambiguate key types.------ @--- let rootPrivateKey = Shelley 'RootK XPrv--- let accountPubKey  = Shelley 'AccountK XPub--- let addressPubKey  = Shelley 'PaymentK XPub--- @------ @since 2.0.0+{- | A cryptographic key for sequential-scheme address derivation, with+   phantom-types to disambiguate key types.++@+let rootPrivateKey = Shelley 'RootK XPrv+let accountPubKey  = Shelley 'AccountK XPub+let addressPubKey  = Shelley 'PaymentK XPub+@++@since 2.0.0+-} newtype Shelley (depth :: Depth) key = Shelley-    { getKey :: key-        -- ^ Extract the raw 'XPrv' or 'XPub' wrapped by this type.-        ---        -- @since 1.0.0+    {+        getKey :: key     }     deriving stock (Generic, Show, Eq) @@ -213,21 +212,20 @@  -- | Describe what the keys within an account are used for. ----- - UTxOExternal: used for public addresses sent to other parties for receiving money.--- - UTxOInternal: generated by wallet software to send change back to the wallet.--- - Stake: used for stake key(s) and delegation.--- - DRep: used for DRep key derivation--- - CCCold: used for constitutional committee cold key derivation--- - CCHot: used for constitutional committee hot key derivation--- -- @since 3.0.0 data Role     = UTxOExternal+      -- ^Used for public addresses sent to other parties for receiving money.     | UTxOInternal+      -- ^Generated by wallet software to send change back to the wallet.     | Stake+      -- ^Used for stake key(s) and delegation.     | DRep+      -- ^Used for DRep key derivation.     | CCCold+      -- ^Used for constitutional committee cold key derivation     | CCHot+      -- ^Used for constitutional committee hot key derivation     deriving (Generic, Typeable, Show, Eq, Ord, Bounded)  instance NFData Role@@ -256,28 +254,32 @@ -- -- $keyDerivation ----- === Generating a root key from 'SomeMnemonic'--- > :set -XOverloadedStrings--- > :set -XTypeApplications--- > :set -XDataKinds--- > import Cardano.Mnemonic ( mkSomeMnemonic )--- >--- > let (Right mw) = mkSomeMnemonic @'[15] ["network","empty","cause","mean","expire","private","finger","accident","session","problem","absurd","banner","stage","void","what"]--- > let sndFactor = mempty -- Or alternatively, a second factor mnemonic transformed to bytes via someMnemonicToBytes--- > let rootK = genMasterKeyFromMnemonic mw sndFactor :: Shelley 'RootK XPrv+-- ==== Generating a root key from 'SomeMnemonic' ----- === Deriving child keys+-- @+-- >>> :set -XOverloadedStrings+-- >>> :set -XTypeApplications+-- >>> :set -XDataKinds+-- >>> import Cardano.Mnemonic ( mkSomeMnemonic ) --+-- >>> let (Right mw) = mkSomeMnemonic @'[15] ["network","empty","cause","mean","expire","private","finger","accident","session","problem","absurd","banner","stage","void","what"]+-- >>> let sndFactor = mempty -- Or alternatively, a second factor mnemonic transformed to bytes via someMnemonicToBytes+-- >>> let rootK = genMasterKeyFromMnemonic mw sndFactor :: Shelley 'RootK XPrv+-- @+--+-- ==== Deriving child keys+-- -- Let's consider the following 3rd, 4th and 5th derivation paths @0'\/0\/14@ ----- > let Just accIx = indexFromWord32 0x80000000--- > let acctK = deriveAccountPrivateKey rootK accIx--- >--- > let Just addIx = indexFromWord32 0x00000014--- > let addrK = deriveAddressPrivateKey acctK UTxOExternal addIx+-- @+-- >>> let Just accIx = indexFromWord32 0x80000000+-- >>> let acctK = deriveAccountPrivateKey rootK accIx ----- > let stakeK = deriveDelegationPrivateKey acctK-+-- >>> let Just addIx = indexFromWord32 0x00000014+-- >>> let addrK = deriveAddressPrivateKey acctK UTxOExternal addIx+--+-- >>> let stakeK = deriveDelegationPrivateKey acctK+-- @ instance Internal.GenMasterKey Shelley where     type SecondFactor Shelley = ScrubbedBytes @@ -447,56 +449,66 @@ -- Addresses -- -- $addresses--- === Generating a 'PaymentAddress' from public key credential ----- > import Cardano.Address ( bech32 )--- > import Cardano.Address.Derivation ( toXPub )--- >--- > let (Right tag) = mkNetworkDiscriminant 1--- > let paymentCredential = PaymentFromExtendedKey $ (toXPub <$> addrK)--- > bech32 $ paymentAddress tag paymentCredential--- > "addr1vxpfffuj3zkp5g7ct6h4va89caxx9ayq2gvkyfvww48sdncxsce5t"+-- ==== Generating a 'PaymentAddress' from public key credential ----- === Generating a 'PaymentAddress' from script credential+-- @+-- >>> import Cardano.Address ( bech32 )+-- >>> import Cardano.Address.Derivation ( toXPub )+-- >>> let (Right tag) = mkNetworkDiscriminant 1+-- >>> let paymentCredential = PaymentFromExtendedKey $ (toXPub <$> addrK)+-- >>> bech32 $ paymentAddress tag paymentCredential+-- >>> "addr1vxpfffuj3zkp5g7ct6h4va89caxx9ayq2gvkyfvww48sdncxsce5t"+-- @ ----- > import Cardano.Address.Script.Parser ( scriptFromString )--- > import Cardano.Address.Script ( toScriptHash )--- > import Codec.Binary.Encoding ( encode )--- > import Data.Text.Encoding ( decodeUtf8 )--- >--- > let (Right tag) = mkNetworkDiscriminant 1--- > let verKey1 = "script_vkh18srsxr3khll7vl3w9mqfu55n6wzxxlxj7qzr2mhnyreluzt36ms"--- > let verKey2 = "script_vkh18srsxr3khll7vl3w9mqfu55n6wzxxlxj7qzr2mhnyrenxv223vj"--- > let scriptStr = "all [" ++ verKey1 ++ ", " ++ verKey2 ++ "]"--- > let (Right script) = scriptFromString scriptStr--- > let infoSpendingScriptHash@(ScriptHash bytes) = toScriptHash script--- > decodeUtf8 (encode EBase16 bytes)--- > "a015ae61075e25c3d9250bdcbc35c6557272127927ecf2a2d716e29f"--- > bech32 $ paymentAddress tag (PaymentFromScriptHash infoSpendingScriptHash)--- > "addr1wxspttnpqa0zts7ey59ae0p4ce2hyusj0yn7eu4z6utw98c9uxm83"+-- ==== Generating a 'PaymentAddress' from script credential ----- === Generating a 'DelegationAddress'+-- @+-- >>> import Cardano.Address.Script.Parser ( scriptFromString )+-- >>> import Cardano.Address.Script ( toScriptHash )+-- >>> import Codec.Binary.Encoding ( encode )+-- >>> import Data.Text.Encoding ( decodeUtf8 )+-- >>> let (Right tag) = mkNetworkDiscriminant 1+-- >>> let verKey1 = "script_vkh18srsxr3khll7vl3w9mqfu55n6wzxxlxj7qzr2mhnyreluzt36ms"+-- >>> let verKey2 = "script_vkh18srsxr3khll7vl3w9mqfu55n6wzxxlxj7qzr2mhnyrenxv223vj"+-- >>> let scriptStr = "all [" ++ verKey1 ++ ", " ++ verKey2 ++ "]"+-- >>> let (Right script) = scriptFromString scriptStr+-- >>> let infoSpendingScriptHash@(ScriptHash bytes) = toScriptHash script+-- >>> decodeUtf8 (encode EBase16 bytes)+-- "a015ae61075e25c3d9250bdcbc35c6557272127927ecf2a2d716e29f"+-- >>> bech32 $ paymentAddress tag (PaymentFromScriptHash infoSpendingScriptHash)+-- "addr1wxspttnpqa0zts7ey59ae0p4ce2hyusj0yn7eu4z6utw98c9uxm83"+-- @ ----- > let (Right tag) = mkNetworkDiscriminant 1--- > let paymentCredential = PaymentFromExtendedKey $ (toXPub <$> addrK)--- > let delegationCredential = DelegationFromExtendedKey $ (toXPub <$> stakeK)--- > bech32 $ delegationAddress tag paymentCredential delegationCredential--- > "addr1qxpfffuj3zkp5g7ct6h4va89caxx9ayq2gvkyfvww48sdn7nudck0fzve4346yytz3wpwv9yhlxt7jwuc7ytwx2vfkyqmkc5xa"+-- ==== Generating a 'DelegationAddress' ----- === Generating a 'PointerAddress'+-- @+-- >>> let (Right tag) = mkNetworkDiscriminant 1+-- >>> let paymentCredential = PaymentFromExtendedKey $ (toXPub <$> addrK)+-- >>> let delegationCredential = DelegationFromExtendedKey $ (toXPub <$> stakeK)+-- >>> bech32 $ delegationAddress tag paymentCredential delegationCredential+-- "addr1qxpfffuj3zkp5g7ct6h4va89caxx9ayq2gvkyfvww48sdn7nudck0fzve4346yytz3wpwv9yhlxt7jwuc7ytwx2vfkyqmkc5xa"+-- @ ----- > import Cardano.Address ( ChainPointer (..) )--- >--- > let (Right tag) = mkNetworkDiscriminant 1--- > let ptr = ChainPointer 123 1 2--- > let paymentCredential = PaymentFromExtendedKey $ (toXPub <$> addrK)--- > bech32 $ pointerAddress tag paymentCredential ptr--- > "addr1gxpfffuj3zkp5g7ct6h4va89caxx9ayq2gvkyfvww48sdnmmqypqfcp5um"+-- ==== Generating a 'PointerAddress' ----- === Generating a 'DelegationAddress' from using the same script credential in both payment and delegation--- > bech32 $ delegationAddress tag (PaymentFromScriptHash infoSpendingScriptHash) (DelegationFromScript infoSpendingScriptHash)--- > "addr1xxspttnpqa0zts7ey59ae0p4ce2hyusj0yn7eu4z6utw98aqzkhxzp67yhpajfgtmj7rt3j4wfepy7f8ane294cku20swucnrl"+-- @+-- >>> import Cardano.Address ( ChainPointer (..) )+-- >>> let (Right tag) = mkNetworkDiscriminant 1+-- >>> let ptr = ChainPointer 123 1 2+-- >>> let paymentCredential = PaymentFromExtendedKey $ (toXPub <$> addrK)+-- >>> bech32 $ pointerAddress tag paymentCredential ptr+-- "addr1gxpfffuj3zkp5g7ct6h4va89caxx9ayq2gvkyfvww48sdnmmqypqfcp5um"+-- @+--+-- ==== Generating a 'DelegationAddress' from using the same script credential in both payment and delegation+--+-- @+-- >>> bech32 $ delegationAddress tag (PaymentFromScriptHash infoSpendingScriptHash) (DelegationFromScript infoSpendingScriptHash)+-- "addr1xxspttnpqa0zts7ey59ae0p4ce2hyusj0yn7eu4z6utw98aqzkhxzp67yhpajfgtmj7rt3j4wfepy7f8ane294cku20swucnrl"+-- @ + -- | Possible errors from inspecting a Shelley, Icarus, or Byron address. -- -- @since 3.4.0@@ -546,7 +558,7 @@     ErrByron e -> "Invalid Byron address: "         <> Byron.prettyErrInspectAddress e --- Determines whether an 'Address' a Shelley address.+-- | Determines whether an 'Address' a Shelley address. -- -- Throws 'AddrError' if it's not a valid Shelley address, or a ready-to-print -- string giving details about the 'Address'.
lib/Cardano/Codec/Bech32/Prefixes.hs view
@@ -102,211 +102,275 @@   -- Addresses-+-- | addr addr :: HumanReadablePart addr = [humanReadablePart|addr|] +-- | addr_test addr_test :: HumanReadablePart addr_test = [humanReadablePart|addr_test|] +-- | script script :: HumanReadablePart script = [humanReadablePart|script|] +-- | stake stake :: HumanReadablePart stake = [humanReadablePart|stake|] +-- | stake_test stake_test :: HumanReadablePart stake_test = [humanReadablePart|stake_test|]   -- Keys-+-- | addr_vk addr_vk :: HumanReadablePart addr_vk = [humanReadablePart|addr_vk|] +-- | addr_sk addr_sk :: HumanReadablePart addr_sk = [humanReadablePart|addr_sk|] +-- | addr_xvk addr_xvk :: HumanReadablePart addr_xvk = [humanReadablePart|addr_xvk|] +-- | addr_xsk addr_xsk :: HumanReadablePart addr_xsk = [humanReadablePart|addr_xsk|] +-- | acct_vk acct_vk :: HumanReadablePart acct_vk = [humanReadablePart|acct_vk|] +-- | acct_sk acct_sk :: HumanReadablePart acct_sk = [humanReadablePart|acct_sk|] +-- | acct_xvk acct_xvk :: HumanReadablePart acct_xvk = [humanReadablePart|acct_xvk|] +-- | acct_xsk acct_xsk :: HumanReadablePart acct_xsk = [humanReadablePart|acct_xsk|] +-- | root_vk root_vk :: HumanReadablePart root_vk = [humanReadablePart|root_vk|] +-- | root_sk root_sk :: HumanReadablePart root_sk = [humanReadablePart|root_sk|] +-- | root_xvk root_xvk :: HumanReadablePart root_xvk = [humanReadablePart|root_xvk|] +-- | root_xsk root_xsk :: HumanReadablePart root_xsk = [humanReadablePart|root_xsk|] +-- | stake_vk stake_vk :: HumanReadablePart stake_vk = [humanReadablePart|stake_vk|] +-- | stake_sk stake_sk :: HumanReadablePart stake_sk = [humanReadablePart|stake_sk|] +-- | stake_xvk stake_xvk :: HumanReadablePart stake_xvk = [humanReadablePart|stake_xvk|] +-- | stake_xsk stake_xsk :: HumanReadablePart stake_xsk = [humanReadablePart|stake_xsk|] +-- | addr_shared_vk addr_shared_vk :: HumanReadablePart addr_shared_vk = [humanReadablePart|addr_shared_vk|] +-- | addr_shared_sk addr_shared_sk :: HumanReadablePart addr_shared_sk = [humanReadablePart|addr_shared_sk|] +-- | addr_shared_xvk addr_shared_xvk :: HumanReadablePart addr_shared_xvk = [humanReadablePart|addr_shared_xvk|] +-- | addr_shared_xsk addr_shared_xsk :: HumanReadablePart addr_shared_xsk = [humanReadablePart|addr_shared_xsk|] +-- | acct_shared_vk acct_shared_vk :: HumanReadablePart acct_shared_vk = [humanReadablePart|acct_shared_vk|] +-- | acct_shared_sk acct_shared_sk :: HumanReadablePart acct_shared_sk = [humanReadablePart|acct_shared_sk|] +-- | acct_shared_xvk acct_shared_xvk :: HumanReadablePart acct_shared_xvk = [humanReadablePart|acct_shared_xvk|] +-- | acct_shared_xsk acct_shared_xsk :: HumanReadablePart acct_shared_xsk = [humanReadablePart|acct_shared_xsk|] +-- | root_shared_vk root_shared_vk :: HumanReadablePart root_shared_vk = [humanReadablePart|root_shared_vk|] +-- | root_shared_sk root_shared_sk :: HumanReadablePart root_shared_sk = [humanReadablePart|root_shared_sk|] +-- | root_shared_xvk root_shared_xvk :: HumanReadablePart root_shared_xvk = [humanReadablePart|root_shared_xvk|] +-- | root_shared_xsk root_shared_xsk :: HumanReadablePart root_shared_xsk = [humanReadablePart|root_shared_xsk|] +-- | stake_shared_vk stake_shared_vk :: HumanReadablePart stake_shared_vk = [humanReadablePart|stake_shared_vk|] +-- | stake_shared_sk stake_shared_sk :: HumanReadablePart stake_shared_sk = [humanReadablePart|stake_shared_sk|] +-- | stake_shared_xvk stake_shared_xvk :: HumanReadablePart stake_shared_xvk = [humanReadablePart|stake_shared_xvk|] +-- | stake_shared_xsk stake_shared_xsk :: HumanReadablePart stake_shared_xsk = [humanReadablePart|stake_shared_xsk|]  -- Hashes-+-- | addr_vkh addr_vkh :: HumanReadablePart addr_vkh = [humanReadablePart|addr_vkh|] +-- | stake_vkh stake_vkh :: HumanReadablePart stake_vkh = [humanReadablePart|stake_vkh|] +-- | addr_shared_vkh addr_shared_vkh :: HumanReadablePart addr_shared_vkh = [humanReadablePart|addr_shared_vkh|] +-- | stake_shared_vkh stake_shared_vkh :: HumanReadablePart stake_shared_vkh = [humanReadablePart|stake_shared_vkh|]  -- Policy+-- | policy_vk policy_vk :: HumanReadablePart policy_vk = [humanReadablePart|policy_vk|] +-- | policy_xvk policy_xvk :: HumanReadablePart policy_xvk = [humanReadablePart|policy_xvk|] +-- | policy_vkh policy_vkh :: HumanReadablePart policy_vkh = [humanReadablePart|policy_vkh|] +-- | policy_xsk policy_xsk :: HumanReadablePart policy_xsk = [humanReadablePart|policy_xsk|] +-- | policy_sk policy_sk :: HumanReadablePart policy_sk = [humanReadablePart|policy_sk|]  -- Keys/hashes for CIP-0105+-- | drep_vk drep_vk :: HumanReadablePart drep_vk = [humanReadablePart|drep_vk|] +-- | drep_sk drep_sk :: HumanReadablePart drep_sk = [humanReadablePart|drep_sk|] +-- | drep_xvk drep_xvk :: HumanReadablePart drep_xvk = [humanReadablePart|drep_xvk|] +-- | drep_xsk drep_xsk :: HumanReadablePart drep_xsk = [humanReadablePart|drep_xsk|] +-- | drep_vkh drep_vkh :: HumanReadablePart drep_vkh = [humanReadablePart|drep_vkh|] +-- | drep drep :: HumanReadablePart drep = [humanReadablePart|drep|] +-- | drep_script drep_script :: HumanReadablePart drep_script = [humanReadablePart|drep_script|] +-- | cc_cold_vk cc_cold_vk :: HumanReadablePart cc_cold_vk = [humanReadablePart|cc_cold_vk|] +-- | cc_cold_sk cc_cold_sk :: HumanReadablePart cc_cold_sk = [humanReadablePart|cc_cold_sk|] +-- | cc_cold_xvk cc_cold_xvk :: HumanReadablePart cc_cold_xvk = [humanReadablePart|cc_cold_xvk|] +-- | cc_cold_vkh cc_cold_vkh :: HumanReadablePart cc_cold_vkh = [humanReadablePart|cc_cold_vkh|] +-- | cc_cold_xsk cc_cold_xsk :: HumanReadablePart cc_cold_xsk = [humanReadablePart|cc_cold_xsk|] +-- | cc_cold cc_cold :: HumanReadablePart cc_cold = [humanReadablePart|cc_cold|] +-- | cc_cold_script cc_cold_script :: HumanReadablePart cc_cold_script = [humanReadablePart|cc_cold_script|] +-- | cc_hot_vk cc_hot_vk :: HumanReadablePart cc_hot_vk = [humanReadablePart|cc_hot_vk|] +-- | cc_hot_sk cc_hot_sk :: HumanReadablePart cc_hot_sk = [humanReadablePart|cc_hot_sk|] +-- | cc_hot_xvk cc_hot_xvk :: HumanReadablePart cc_hot_xvk = [humanReadablePart|cc_hot_xvk|] +-- | cc_hot_xsk cc_hot_xsk :: HumanReadablePart cc_hot_xsk = [humanReadablePart|cc_hot_xsk|] +-- | cc_hot_vkh cc_hot_vkh :: HumanReadablePart cc_hot_vkh = [humanReadablePart|cc_hot_vkh|] +-- | cc_hot cc_hot :: HumanReadablePart cc_hot = [humanReadablePart|cc_hot|] +-- | cc_hot_script cc_hot_script :: HumanReadablePart cc_hot_script = [humanReadablePart|cc_hot_script|]
lib/Cardano/Codec/Cbor.hs view
@@ -6,7 +6,7 @@ {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} -{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK prune #-}  -- | -- Copyright: 2020 Input Output (Hong Kong) Ltd., 2021-2022 Input Output Global Inc. (IOG), 2023-2025 Intersect@@ -35,7 +35,7 @@     , deserialiseCbor     , unsafeDeserialiseCbor -     -- * Reexports from CBOR+     -- * Re-exports from CBOR     , CBOR.encodeBytes     , CBOR.toStrictByteString     , CBOR.toLazyByteString@@ -75,52 +75,52 @@ import qualified Data.ByteString as BS import qualified Data.ByteString.Lazy as BL -{--------------------------------------------------------------------------------                       Byron Address Binary Format -In the composition of a Cardano address, the following functions concern the-"Derivation Path" box.--+-------------------------------------------------------------------------------+-|                                                                               |-|                        CBOR-Serialized Object with CRC¹                       |-|                                                                               |-+-------------------------------------------------------------------------------+-                                        |-                                        |-                                        v-+-------------------------------------------------------------------------------+-|     Address Root    |     Address Attributes    |           AddrType          |-|                     |                           |                             |-|   Hash (224 bits)   |  Der. Path² + Stake + NM  |  PubKey | (Script) | Redeem |-|                     |    (open for extension)   |     (open for extension)    |-+-------------------------------------------------------------------------------+-             |                 |-             |                 |     +----------------------------------+-             v                 |     |        Derivation Path           |-+---------------------------+  |---->|                                  |-| SHA3-256                  |  |     | ChaChaPoly⁴ AccountIx/AddressIx  |-|   |> Blake2b 224          |  |     +----------------------------------+-|   |> CBOR                 |  |-|                           |  |-|  -AddrType                |  |     +----------------------------------+-|  -ASD³ (~AddrType+PubKey) |  |     |       Stake Distribution         |-|  -Address Attributes      |  |     |                                  |-+---------------------------+  |---->|  BootstrapEra | (Single | Multi) |-                               |     +----------------------------------+-                               |-                               |-                               |     +----------------------------------+-                               |     |          Network Magic           |-                               |---->|                                  |-                                     | Addr Discr: MainNet vs TestNet   |-                                     +----------------------------------+---------------------------------------------------------------------------------}---- * Encoding---- | Encode a public key to a corresponding Cardano Address. The encoding of the+-- |+-- @+--                        __Byron Address Binary Format__+--+--+-- In the composition of a Cardano address, the following functions concern the+-- "Derivation Path" box.+--+-- +-------------------------------------------------------------------------------++-- |                                                                               |+-- |                        CBOR-Serialized Object with CRC¹                       |+-- |                                                                               |+-- +-------------------------------------------------------------------------------++--                                         |+--                                         |+--                                         v+-- +-------------------------------------------------------------------------------++-- |     Address Root    |     Address Attributes    |           AddrType          |+-- |                     |                           |                             |+-- |   Hash (224 bits)   |  Der. Path² + Stake + NM  |  PubKey | (Script) | Redeem |+-- |                     |    (open for extension)   |     (open for extension)    |+-- +-------------------------------------------------------------------------------++--              |                 |+--              |                 |     +----------------------------------++--              v                 |     |        Derivation Path           |+-- +---------------------------+  |---->|                                  |+-- | SHA3-256                  |  |     | ChaChaPoly⁴ AccountIx/AddressIx  |+-- |   |> Blake2b 224          |  |     +----------------------------------++-- |   |> CBOR                 |  |+-- |                           |  |+-- |  -AddrType                |  |     +----------------------------------++-- |  -ASD³ (~AddrType+PubKey) |  |     |       Stake Distribution         |+-- |  -Address Attributes      |  |     |                                  |+-- +---------------------------+  |---->|  BootstrapEra | (Single | Multi) |+--                                |     +----------------------------------++--                                |+--                                |+--                                |     +----------------------------------++--                                |     |          Network Magic           |+--                                |---->|                                  |+--                                      | Addr Discr: MainNet vs TestNet   |+--                                      +----------------------------------++-- @+--+-- Encode a public key to a corresponding Cardano Address. The encoding of the -- attributes part of an address is left out to the caller; This allows for -- distinguishing between Sequential and Random addresses (the former doesn't -- have any attributes to encode).@@ -187,7 +187,7 @@     <> CBOR.encodeWord 2 -- Tag for 'ProtocolMagic' attribute     <> CBOR.encodeBytes (CBOR.toStrictByteString $ CBOR.encodeWord32 pm) --- This is the opposite of 'decodeDerivationPathAttr'.+-- | This is the opposite of 'decodeDerivationPathAttr'. -- -- NOTE: The caller must ensure that the passphrase length is 32 bytes. encodeDerivationPathAttr
+ lib/Cardano/Dictionary.hs view
@@ -0,0 +1,57 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE LambdaCase #-}++{-# OPTIONS_HADDOCK hide #-}++-- |+-- Copyright: 2025 Intersect+-- License: Apache-2.0++module Cardano.Dictionary+    (+    -- * Type+     SupportedDictionary (..)++    -- * Helper+    , dictionaryFromLanguage++    ) where++import Prelude++import Cardano.Dictionary.English+    ( english )+import Cardano.Dictionary.French+    ( french )+import Cardano.Dictionary.Italian+    ( italian )+import Cardano.Dictionary.Japanese+    ( japanese )+import Cardano.Dictionary.Korean+    ( korean )+import Cardano.Dictionary.Spanish+    ( spanish )+import Crypto.Encoding.BIP39.Dictionary+    ( Dictionary )+import GHC.Generics+    ( Generic )+++data SupportedDictionary =+      English+    | Italian+    | Japanese+    | French+    | Korean+    | Spanish+    deriving (Generic, Show, Bounded, Enum, Eq)++dictionaryFromLanguage :: SupportedDictionary -> Dictionary+dictionaryFromLanguage = \case+    English -> english+    Italian -> italian+    Japanese -> japanese+    French -> french+    Korean -> korean+    Spanish -> spanish
+ lib/Cardano/Dictionary/English.hs view
@@ -0,0 +1,2079 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}++{-# OPTIONS_HADDOCK hide #-}++-- |+-- Copyright: 2025 Intersect+-- License: Apache-2.0+--+-- Adopted from https://github.com/IntersectMBO/cardano-crypto/blob/develop/src/Crypto/Encoding/BIP39/english.hs++module Cardano.Dictionary.English+    (+    -- * dictionary value+     english+    ) where++import Basement.String+    ( String )+import Cardano.Dictionary.Generic+    ( toDictionary )+import Crypto.Encoding.BIP39.Dictionary+    ( Dictionary )++english :: Dictionary+english = toDictionary wordList+  where+  wordList :: [String]+  wordList =+      [ "abandon"+      , "ability"+      , "able"+      , "about"+      , "above"+      , "absent"+      , "absorb"+      , "abstract"+      , "absurd"+      , "abuse"+      , "access"+      , "accident"+      , "account"+      , "accuse"+      , "achieve"+      , "acid"+      , "acoustic"+      , "acquire"+      , "across"+      , "act"+      , "action"+      , "actor"+      , "actress"+      , "actual"+      , "adapt"+      , "add"+      , "addict"+      , "address"+      , "adjust"+      , "admit"+      , "adult"+      , "advance"+      , "advice"+      , "aerobic"+      , "affair"+      , "afford"+      , "afraid"+      , "again"+      , "age"+      , "agent"+      , "agree"+      , "ahead"+      , "aim"+      , "air"+      , "airport"+      , "aisle"+      , "alarm"+      , "album"+      , "alcohol"+      , "alert"+      , "alien"+      , "all"+      , "alley"+      , "allow"+      , "almost"+      , "alone"+      , "alpha"+      , "already"+      , "also"+      , "alter"+      , "always"+      , "amateur"+      , "amazing"+      , "among"+      , "amount"+      , "amused"+      , "analyst"+      , "anchor"+      , "ancient"+      , "anger"+      , "angle"+      , "angry"+      , "animal"+      , "ankle"+      , "announce"+      , "annual"+      , "another"+      , "answer"+      , "antenna"+      , "antique"+      , "anxiety"+      , "any"+      , "apart"+      , "apology"+      , "appear"+      , "apple"+      , "approve"+      , "april"+      , "arch"+      , "arctic"+      , "area"+      , "arena"+      , "argue"+      , "arm"+      , "armed"+      , "armor"+      , "army"+      , "around"+      , "arrange"+      , "arrest"+      , "arrive"+      , "arrow"+      , "art"+      , "artefact"+      , "artist"+      , "artwork"+      , "ask"+      , "aspect"+      , "assault"+      , "asset"+      , "assist"+      , "assume"+      , "asthma"+      , "athlete"+      , "atom"+      , "attack"+      , "attend"+      , "attitude"+      , "attract"+      , "auction"+      , "audit"+      , "august"+      , "aunt"+      , "author"+      , "auto"+      , "autumn"+      , "average"+      , "avocado"+      , "avoid"+      , "awake"+      , "aware"+      , "away"+      , "awesome"+      , "awful"+      , "awkward"+      , "axis"+      , "baby"+      , "bachelor"+      , "bacon"+      , "badge"+      , "bag"+      , "balance"+      , "balcony"+      , "ball"+      , "bamboo"+      , "banana"+      , "banner"+      , "bar"+      , "barely"+      , "bargain"+      , "barrel"+      , "base"+      , "basic"+      , "basket"+      , "battle"+      , "beach"+      , "bean"+      , "beauty"+      , "because"+      , "become"+      , "beef"+      , "before"+      , "begin"+      , "behave"+      , "behind"+      , "believe"+      , "below"+      , "belt"+      , "bench"+      , "benefit"+      , "best"+      , "betray"+      , "better"+      , "between"+      , "beyond"+      , "bicycle"+      , "bid"+      , "bike"+      , "bind"+      , "biology"+      , "bird"+      , "birth"+      , "bitter"+      , "black"+      , "blade"+      , "blame"+      , "blanket"+      , "blast"+      , "bleak"+      , "bless"+      , "blind"+      , "blood"+      , "blossom"+      , "blouse"+      , "blue"+      , "blur"+      , "blush"+      , "board"+      , "boat"+      , "body"+      , "boil"+      , "bomb"+      , "bone"+      , "bonus"+      , "book"+      , "boost"+      , "border"+      , "boring"+      , "borrow"+      , "boss"+      , "bottom"+      , "bounce"+      , "box"+      , "boy"+      , "bracket"+      , "brain"+      , "brand"+      , "brass"+      , "brave"+      , "bread"+      , "breeze"+      , "brick"+      , "bridge"+      , "brief"+      , "bright"+      , "bring"+      , "brisk"+      , "broccoli"+      , "broken"+      , "bronze"+      , "broom"+      , "brother"+      , "brown"+      , "brush"+      , "bubble"+      , "buddy"+      , "budget"+      , "buffalo"+      , "build"+      , "bulb"+      , "bulk"+      , "bullet"+      , "bundle"+      , "bunker"+      , "burden"+      , "burger"+      , "burst"+      , "bus"+      , "business"+      , "busy"+      , "butter"+      , "buyer"+      , "buzz"+      , "cabbage"+      , "cabin"+      , "cable"+      , "cactus"+      , "cage"+      , "cake"+      , "call"+      , "calm"+      , "camera"+      , "camp"+      , "can"+      , "canal"+      , "cancel"+      , "candy"+      , "cannon"+      , "canoe"+      , "canvas"+      , "canyon"+      , "capable"+      , "capital"+      , "captain"+      , "car"+      , "carbon"+      , "card"+      , "cargo"+      , "carpet"+      , "carry"+      , "cart"+      , "case"+      , "cash"+      , "casino"+      , "castle"+      , "casual"+      , "cat"+      , "catalog"+      , "catch"+      , "category"+      , "cattle"+      , "caught"+      , "cause"+      , "caution"+      , "cave"+      , "ceiling"+      , "celery"+      , "cement"+      , "census"+      , "century"+      , "cereal"+      , "certain"+      , "chair"+      , "chalk"+      , "champion"+      , "change"+      , "chaos"+      , "chapter"+      , "charge"+      , "chase"+      , "chat"+      , "cheap"+      , "check"+      , "cheese"+      , "chef"+      , "cherry"+      , "chest"+      , "chicken"+      , "chief"+      , "child"+      , "chimney"+      , "choice"+      , "choose"+      , "chronic"+      , "chuckle"+      , "chunk"+      , "churn"+      , "cigar"+      , "cinnamon"+      , "circle"+      , "citizen"+      , "city"+      , "civil"+      , "claim"+      , "clap"+      , "clarify"+      , "claw"+      , "clay"+      , "clean"+      , "clerk"+      , "clever"+      , "click"+      , "client"+      , "cliff"+      , "climb"+      , "clinic"+      , "clip"+      , "clock"+      , "clog"+      , "close"+      , "cloth"+      , "cloud"+      , "clown"+      , "club"+      , "clump"+      , "cluster"+      , "clutch"+      , "coach"+      , "coast"+      , "coconut"+      , "code"+      , "coffee"+      , "coil"+      , "coin"+      , "collect"+      , "color"+      , "column"+      , "combine"+      , "come"+      , "comfort"+      , "comic"+      , "common"+      , "company"+      , "concert"+      , "conduct"+      , "confirm"+      , "congress"+      , "connect"+      , "consider"+      , "control"+      , "convince"+      , "cook"+      , "cool"+      , "copper"+      , "copy"+      , "coral"+      , "core"+      , "corn"+      , "correct"+      , "cost"+      , "cotton"+      , "couch"+      , "country"+      , "couple"+      , "course"+      , "cousin"+      , "cover"+      , "coyote"+      , "crack"+      , "cradle"+      , "craft"+      , "cram"+      , "crane"+      , "crash"+      , "crater"+      , "crawl"+      , "crazy"+      , "cream"+      , "credit"+      , "creek"+      , "crew"+      , "cricket"+      , "crime"+      , "crisp"+      , "critic"+      , "crop"+      , "cross"+      , "crouch"+      , "crowd"+      , "crucial"+      , "cruel"+      , "cruise"+      , "crumble"+      , "crunch"+      , "crush"+      , "cry"+      , "crystal"+      , "cube"+      , "culture"+      , "cup"+      , "cupboard"+      , "curious"+      , "current"+      , "curtain"+      , "curve"+      , "cushion"+      , "custom"+      , "cute"+      , "cycle"+      , "dad"+      , "damage"+      , "damp"+      , "dance"+      , "danger"+      , "daring"+      , "dash"+      , "daughter"+      , "dawn"+      , "day"+      , "deal"+      , "debate"+      , "debris"+      , "decade"+      , "december"+      , "decide"+      , "decline"+      , "decorate"+      , "decrease"+      , "deer"+      , "defense"+      , "define"+      , "defy"+      , "degree"+      , "delay"+      , "deliver"+      , "demand"+      , "demise"+      , "denial"+      , "dentist"+      , "deny"+      , "depart"+      , "depend"+      , "deposit"+      , "depth"+      , "deputy"+      , "derive"+      , "describe"+      , "desert"+      , "design"+      , "desk"+      , "despair"+      , "destroy"+      , "detail"+      , "detect"+      , "develop"+      , "device"+      , "devote"+      , "diagram"+      , "dial"+      , "diamond"+      , "diary"+      , "dice"+      , "diesel"+      , "diet"+      , "differ"+      , "digital"+      , "dignity"+      , "dilemma"+      , "dinner"+      , "dinosaur"+      , "direct"+      , "dirt"+      , "disagree"+      , "discover"+      , "disease"+      , "dish"+      , "dismiss"+      , "disorder"+      , "display"+      , "distance"+      , "divert"+      , "divide"+      , "divorce"+      , "dizzy"+      , "doctor"+      , "document"+      , "dog"+      , "doll"+      , "dolphin"+      , "domain"+      , "donate"+      , "donkey"+      , "donor"+      , "door"+      , "dose"+      , "double"+      , "dove"+      , "draft"+      , "dragon"+      , "drama"+      , "drastic"+      , "draw"+      , "dream"+      , "dress"+      , "drift"+      , "drill"+      , "drink"+      , "drip"+      , "drive"+      , "drop"+      , "drum"+      , "dry"+      , "duck"+      , "dumb"+      , "dune"+      , "during"+      , "dust"+      , "dutch"+      , "duty"+      , "dwarf"+      , "dynamic"+      , "eager"+      , "eagle"+      , "early"+      , "earn"+      , "earth"+      , "easily"+      , "east"+      , "easy"+      , "echo"+      , "ecology"+      , "economy"+      , "edge"+      , "edit"+      , "educate"+      , "effort"+      , "egg"+      , "eight"+      , "either"+      , "elbow"+      , "elder"+      , "electric"+      , "elegant"+      , "element"+      , "elephant"+      , "elevator"+      , "elite"+      , "else"+      , "embark"+      , "embody"+      , "embrace"+      , "emerge"+      , "emotion"+      , "employ"+      , "empower"+      , "empty"+      , "enable"+      , "enact"+      , "end"+      , "endless"+      , "endorse"+      , "enemy"+      , "energy"+      , "enforce"+      , "engage"+      , "engine"+      , "enhance"+      , "enjoy"+      , "enlist"+      , "enough"+      , "enrich"+      , "enroll"+      , "ensure"+      , "enter"+      , "entire"+      , "entry"+      , "envelope"+      , "episode"+      , "equal"+      , "equip"+      , "era"+      , "erase"+      , "erode"+      , "erosion"+      , "error"+      , "erupt"+      , "escape"+      , "essay"+      , "essence"+      , "estate"+      , "eternal"+      , "ethics"+      , "evidence"+      , "evil"+      , "evoke"+      , "evolve"+      , "exact"+      , "example"+      , "excess"+      , "exchange"+      , "excite"+      , "exclude"+      , "excuse"+      , "execute"+      , "exercise"+      , "exhaust"+      , "exhibit"+      , "exile"+      , "exist"+      , "exit"+      , "exotic"+      , "expand"+      , "expect"+      , "expire"+      , "explain"+      , "expose"+      , "express"+      , "extend"+      , "extra"+      , "eye"+      , "eyebrow"+      , "fabric"+      , "face"+      , "faculty"+      , "fade"+      , "faint"+      , "faith"+      , "fall"+      , "false"+      , "fame"+      , "family"+      , "famous"+      , "fan"+      , "fancy"+      , "fantasy"+      , "farm"+      , "fashion"+      , "fat"+      , "fatal"+      , "father"+      , "fatigue"+      , "fault"+      , "favorite"+      , "feature"+      , "february"+      , "federal"+      , "fee"+      , "feed"+      , "feel"+      , "female"+      , "fence"+      , "festival"+      , "fetch"+      , "fever"+      , "few"+      , "fiber"+      , "fiction"+      , "field"+      , "figure"+      , "file"+      , "film"+      , "filter"+      , "final"+      , "find"+      , "fine"+      , "finger"+      , "finish"+      , "fire"+      , "firm"+      , "first"+      , "fiscal"+      , "fish"+      , "fit"+      , "fitness"+      , "fix"+      , "flag"+      , "flame"+      , "flash"+      , "flat"+      , "flavor"+      , "flee"+      , "flight"+      , "flip"+      , "float"+      , "flock"+      , "floor"+      , "flower"+      , "fluid"+      , "flush"+      , "fly"+      , "foam"+      , "focus"+      , "fog"+      , "foil"+      , "fold"+      , "follow"+      , "food"+      , "foot"+      , "force"+      , "forest"+      , "forget"+      , "fork"+      , "fortune"+      , "forum"+      , "forward"+      , "fossil"+      , "foster"+      , "found"+      , "fox"+      , "fragile"+      , "frame"+      , "frequent"+      , "fresh"+      , "friend"+      , "fringe"+      , "frog"+      , "front"+      , "frost"+      , "frown"+      , "frozen"+      , "fruit"+      , "fuel"+      , "fun"+      , "funny"+      , "furnace"+      , "fury"+      , "future"+      , "gadget"+      , "gain"+      , "galaxy"+      , "gallery"+      , "game"+      , "gap"+      , "garage"+      , "garbage"+      , "garden"+      , "garlic"+      , "garment"+      , "gas"+      , "gasp"+      , "gate"+      , "gather"+      , "gauge"+      , "gaze"+      , "general"+      , "genius"+      , "genre"+      , "gentle"+      , "genuine"+      , "gesture"+      , "ghost"+      , "giant"+      , "gift"+      , "giggle"+      , "ginger"+      , "giraffe"+      , "girl"+      , "give"+      , "glad"+      , "glance"+      , "glare"+      , "glass"+      , "glide"+      , "glimpse"+      , "globe"+      , "gloom"+      , "glory"+      , "glove"+      , "glow"+      , "glue"+      , "goat"+      , "goddess"+      , "gold"+      , "good"+      , "goose"+      , "gorilla"+      , "gospel"+      , "gossip"+      , "govern"+      , "gown"+      , "grab"+      , "grace"+      , "grain"+      , "grant"+      , "grape"+      , "grass"+      , "gravity"+      , "great"+      , "green"+      , "grid"+      , "grief"+      , "grit"+      , "grocery"+      , "group"+      , "grow"+      , "grunt"+      , "guard"+      , "guess"+      , "guide"+      , "guilt"+      , "guitar"+      , "gun"+      , "gym"+      , "habit"+      , "hair"+      , "half"+      , "hammer"+      , "hamster"+      , "hand"+      , "happy"+      , "harbor"+      , "hard"+      , "harsh"+      , "harvest"+      , "hat"+      , "have"+      , "hawk"+      , "hazard"+      , "head"+      , "health"+      , "heart"+      , "heavy"+      , "hedgehog"+      , "height"+      , "hello"+      , "helmet"+      , "help"+      , "hen"+      , "hero"+      , "hidden"+      , "high"+      , "hill"+      , "hint"+      , "hip"+      , "hire"+      , "history"+      , "hobby"+      , "hockey"+      , "hold"+      , "hole"+      , "holiday"+      , "hollow"+      , "home"+      , "honey"+      , "hood"+      , "hope"+      , "horn"+      , "horror"+      , "horse"+      , "hospital"+      , "host"+      , "hotel"+      , "hour"+      , "hover"+      , "hub"+      , "huge"+      , "human"+      , "humble"+      , "humor"+      , "hundred"+      , "hungry"+      , "hunt"+      , "hurdle"+      , "hurry"+      , "hurt"+      , "husband"+      , "hybrid"+      , "ice"+      , "icon"+      , "idea"+      , "identify"+      , "idle"+      , "ignore"+      , "ill"+      , "illegal"+      , "illness"+      , "image"+      , "imitate"+      , "immense"+      , "immune"+      , "impact"+      , "impose"+      , "improve"+      , "impulse"+      , "inch"+      , "include"+      , "income"+      , "increase"+      , "index"+      , "indicate"+      , "indoor"+      , "industry"+      , "infant"+      , "inflict"+      , "inform"+      , "inhale"+      , "inherit"+      , "initial"+      , "inject"+      , "injury"+      , "inmate"+      , "inner"+      , "innocent"+      , "input"+      , "inquiry"+      , "insane"+      , "insect"+      , "inside"+      , "inspire"+      , "install"+      , "intact"+      , "interest"+      , "into"+      , "invest"+      , "invite"+      , "involve"+      , "iron"+      , "island"+      , "isolate"+      , "issue"+      , "item"+      , "ivory"+      , "jacket"+      , "jaguar"+      , "jar"+      , "jazz"+      , "jealous"+      , "jeans"+      , "jelly"+      , "jewel"+      , "job"+      , "join"+      , "joke"+      , "journey"+      , "joy"+      , "judge"+      , "juice"+      , "jump"+      , "jungle"+      , "junior"+      , "junk"+      , "just"+      , "kangaroo"+      , "keen"+      , "keep"+      , "ketchup"+      , "key"+      , "kick"+      , "kid"+      , "kidney"+      , "kind"+      , "kingdom"+      , "kiss"+      , "kit"+      , "kitchen"+      , "kite"+      , "kitten"+      , "kiwi"+      , "knee"+      , "knife"+      , "knock"+      , "know"+      , "lab"+      , "label"+      , "labor"+      , "ladder"+      , "lady"+      , "lake"+      , "lamp"+      , "language"+      , "laptop"+      , "large"+      , "later"+      , "latin"+      , "laugh"+      , "laundry"+      , "lava"+      , "law"+      , "lawn"+      , "lawsuit"+      , "layer"+      , "lazy"+      , "leader"+      , "leaf"+      , "learn"+      , "leave"+      , "lecture"+      , "left"+      , "leg"+      , "legal"+      , "legend"+      , "leisure"+      , "lemon"+      , "lend"+      , "length"+      , "lens"+      , "leopard"+      , "lesson"+      , "letter"+      , "level"+      , "liar"+      , "liberty"+      , "library"+      , "license"+      , "life"+      , "lift"+      , "light"+      , "like"+      , "limb"+      , "limit"+      , "link"+      , "lion"+      , "liquid"+      , "list"+      , "little"+      , "live"+      , "lizard"+      , "load"+      , "loan"+      , "lobster"+      , "local"+      , "lock"+      , "logic"+      , "lonely"+      , "long"+      , "loop"+      , "lottery"+      , "loud"+      , "lounge"+      , "love"+      , "loyal"+      , "lucky"+      , "luggage"+      , "lumber"+      , "lunar"+      , "lunch"+      , "luxury"+      , "lyrics"+      , "machine"+      , "mad"+      , "magic"+      , "magnet"+      , "maid"+      , "mail"+      , "main"+      , "major"+      , "make"+      , "mammal"+      , "man"+      , "manage"+      , "mandate"+      , "mango"+      , "mansion"+      , "manual"+      , "maple"+      , "marble"+      , "march"+      , "margin"+      , "marine"+      , "market"+      , "marriage"+      , "mask"+      , "mass"+      , "master"+      , "match"+      , "material"+      , "math"+      , "matrix"+      , "matter"+      , "maximum"+      , "maze"+      , "meadow"+      , "mean"+      , "measure"+      , "meat"+      , "mechanic"+      , "medal"+      , "media"+      , "melody"+      , "melt"+      , "member"+      , "memory"+      , "mention"+      , "menu"+      , "mercy"+      , "merge"+      , "merit"+      , "merry"+      , "mesh"+      , "message"+      , "metal"+      , "method"+      , "middle"+      , "midnight"+      , "milk"+      , "million"+      , "mimic"+      , "mind"+      , "minimum"+      , "minor"+      , "minute"+      , "miracle"+      , "mirror"+      , "misery"+      , "miss"+      , "mistake"+      , "mix"+      , "mixed"+      , "mixture"+      , "mobile"+      , "model"+      , "modify"+      , "mom"+      , "moment"+      , "monitor"+      , "monkey"+      , "monster"+      , "month"+      , "moon"+      , "moral"+      , "more"+      , "morning"+      , "mosquito"+      , "mother"+      , "motion"+      , "motor"+      , "mountain"+      , "mouse"+      , "move"+      , "movie"+      , "much"+      , "muffin"+      , "mule"+      , "multiply"+      , "muscle"+      , "museum"+      , "mushroom"+      , "music"+      , "must"+      , "mutual"+      , "myself"+      , "mystery"+      , "myth"+      , "naive"+      , "name"+      , "napkin"+      , "narrow"+      , "nasty"+      , "nation"+      , "nature"+      , "near"+      , "neck"+      , "need"+      , "negative"+      , "neglect"+      , "neither"+      , "nephew"+      , "nerve"+      , "nest"+      , "net"+      , "network"+      , "neutral"+      , "never"+      , "news"+      , "next"+      , "nice"+      , "night"+      , "noble"+      , "noise"+      , "nominee"+      , "noodle"+      , "normal"+      , "north"+      , "nose"+      , "notable"+      , "note"+      , "nothing"+      , "notice"+      , "novel"+      , "now"+      , "nuclear"+      , "number"+      , "nurse"+      , "nut"+      , "oak"+      , "obey"+      , "object"+      , "oblige"+      , "obscure"+      , "observe"+      , "obtain"+      , "obvious"+      , "occur"+      , "ocean"+      , "october"+      , "odor"+      , "off"+      , "offer"+      , "office"+      , "often"+      , "oil"+      , "okay"+      , "old"+      , "olive"+      , "olympic"+      , "omit"+      , "once"+      , "one"+      , "onion"+      , "online"+      , "only"+      , "open"+      , "opera"+      , "opinion"+      , "oppose"+      , "option"+      , "orange"+      , "orbit"+      , "orchard"+      , "order"+      , "ordinary"+      , "organ"+      , "orient"+      , "original"+      , "orphan"+      , "ostrich"+      , "other"+      , "outdoor"+      , "outer"+      , "output"+      , "outside"+      , "oval"+      , "oven"+      , "over"+      , "own"+      , "owner"+      , "oxygen"+      , "oyster"+      , "ozone"+      , "pact"+      , "paddle"+      , "page"+      , "pair"+      , "palace"+      , "palm"+      , "panda"+      , "panel"+      , "panic"+      , "panther"+      , "paper"+      , "parade"+      , "parent"+      , "park"+      , "parrot"+      , "party"+      , "pass"+      , "patch"+      , "path"+      , "patient"+      , "patrol"+      , "pattern"+      , "pause"+      , "pave"+      , "payment"+      , "peace"+      , "peanut"+      , "pear"+      , "peasant"+      , "pelican"+      , "pen"+      , "penalty"+      , "pencil"+      , "people"+      , "pepper"+      , "perfect"+      , "permit"+      , "person"+      , "pet"+      , "phone"+      , "photo"+      , "phrase"+      , "physical"+      , "piano"+      , "picnic"+      , "picture"+      , "piece"+      , "pig"+      , "pigeon"+      , "pill"+      , "pilot"+      , "pink"+      , "pioneer"+      , "pipe"+      , "pistol"+      , "pitch"+      , "pizza"+      , "place"+      , "planet"+      , "plastic"+      , "plate"+      , "play"+      , "please"+      , "pledge"+      , "pluck"+      , "plug"+      , "plunge"+      , "poem"+      , "poet"+      , "point"+      , "polar"+      , "pole"+      , "police"+      , "pond"+      , "pony"+      , "pool"+      , "popular"+      , "portion"+      , "position"+      , "possible"+      , "post"+      , "potato"+      , "pottery"+      , "poverty"+      , "powder"+      , "power"+      , "practice"+      , "praise"+      , "predict"+      , "prefer"+      , "prepare"+      , "present"+      , "pretty"+      , "prevent"+      , "price"+      , "pride"+      , "primary"+      , "print"+      , "priority"+      , "prison"+      , "private"+      , "prize"+      , "problem"+      , "process"+      , "produce"+      , "profit"+      , "program"+      , "project"+      , "promote"+      , "proof"+      , "property"+      , "prosper"+      , "protect"+      , "proud"+      , "provide"+      , "public"+      , "pudding"+      , "pull"+      , "pulp"+      , "pulse"+      , "pumpkin"+      , "punch"+      , "pupil"+      , "puppy"+      , "purchase"+      , "purity"+      , "purpose"+      , "purse"+      , "push"+      , "put"+      , "puzzle"+      , "pyramid"+      , "quality"+      , "quantum"+      , "quarter"+      , "question"+      , "quick"+      , "quit"+      , "quiz"+      , "quote"+      , "rabbit"+      , "raccoon"+      , "race"+      , "rack"+      , "radar"+      , "radio"+      , "rail"+      , "rain"+      , "raise"+      , "rally"+      , "ramp"+      , "ranch"+      , "random"+      , "range"+      , "rapid"+      , "rare"+      , "rate"+      , "rather"+      , "raven"+      , "raw"+      , "razor"+      , "ready"+      , "real"+      , "reason"+      , "rebel"+      , "rebuild"+      , "recall"+      , "receive"+      , "recipe"+      , "record"+      , "recycle"+      , "reduce"+      , "reflect"+      , "reform"+      , "refuse"+      , "region"+      , "regret"+      , "regular"+      , "reject"+      , "relax"+      , "release"+      , "relief"+      , "rely"+      , "remain"+      , "remember"+      , "remind"+      , "remove"+      , "render"+      , "renew"+      , "rent"+      , "reopen"+      , "repair"+      , "repeat"+      , "replace"+      , "report"+      , "require"+      , "rescue"+      , "resemble"+      , "resist"+      , "resource"+      , "response"+      , "result"+      , "retire"+      , "retreat"+      , "return"+      , "reunion"+      , "reveal"+      , "review"+      , "reward"+      , "rhythm"+      , "rib"+      , "ribbon"+      , "rice"+      , "rich"+      , "ride"+      , "ridge"+      , "rifle"+      , "right"+      , "rigid"+      , "ring"+      , "riot"+      , "ripple"+      , "risk"+      , "ritual"+      , "rival"+      , "river"+      , "road"+      , "roast"+      , "robot"+      , "robust"+      , "rocket"+      , "romance"+      , "roof"+      , "rookie"+      , "room"+      , "rose"+      , "rotate"+      , "rough"+      , "round"+      , "route"+      , "royal"+      , "rubber"+      , "rude"+      , "rug"+      , "rule"+      , "run"+      , "runway"+      , "rural"+      , "sad"+      , "saddle"+      , "sadness"+      , "safe"+      , "sail"+      , "salad"+      , "salmon"+      , "salon"+      , "salt"+      , "salute"+      , "same"+      , "sample"+      , "sand"+      , "satisfy"+      , "satoshi"+      , "sauce"+      , "sausage"+      , "save"+      , "say"+      , "scale"+      , "scan"+      , "scare"+      , "scatter"+      , "scene"+      , "scheme"+      , "school"+      , "science"+      , "scissors"+      , "scorpion"+      , "scout"+      , "scrap"+      , "screen"+      , "script"+      , "scrub"+      , "sea"+      , "search"+      , "season"+      , "seat"+      , "second"+      , "secret"+      , "section"+      , "security"+      , "seed"+      , "seek"+      , "segment"+      , "select"+      , "sell"+      , "seminar"+      , "senior"+      , "sense"+      , "sentence"+      , "series"+      , "service"+      , "session"+      , "settle"+      , "setup"+      , "seven"+      , "shadow"+      , "shaft"+      , "shallow"+      , "share"+      , "shed"+      , "shell"+      , "sheriff"+      , "shield"+      , "shift"+      , "shine"+      , "ship"+      , "shiver"+      , "shock"+      , "shoe"+      , "shoot"+      , "shop"+      , "short"+      , "shoulder"+      , "shove"+      , "shrimp"+      , "shrug"+      , "shuffle"+      , "shy"+      , "sibling"+      , "sick"+      , "side"+      , "siege"+      , "sight"+      , "sign"+      , "silent"+      , "silk"+      , "silly"+      , "silver"+      , "similar"+      , "simple"+      , "since"+      , "sing"+      , "siren"+      , "sister"+      , "situate"+      , "six"+      , "size"+      , "skate"+      , "sketch"+      , "ski"+      , "skill"+      , "skin"+      , "skirt"+      , "skull"+      , "slab"+      , "slam"+      , "sleep"+      , "slender"+      , "slice"+      , "slide"+      , "slight"+      , "slim"+      , "slogan"+      , "slot"+      , "slow"+      , "slush"+      , "small"+      , "smart"+      , "smile"+      , "smoke"+      , "smooth"+      , "snack"+      , "snake"+      , "snap"+      , "sniff"+      , "snow"+      , "soap"+      , "soccer"+      , "social"+      , "sock"+      , "soda"+      , "soft"+      , "solar"+      , "soldier"+      , "solid"+      , "solution"+      , "solve"+      , "someone"+      , "song"+      , "soon"+      , "sorry"+      , "sort"+      , "soul"+      , "sound"+      , "soup"+      , "source"+      , "south"+      , "space"+      , "spare"+      , "spatial"+      , "spawn"+      , "speak"+      , "special"+      , "speed"+      , "spell"+      , "spend"+      , "sphere"+      , "spice"+      , "spider"+      , "spike"+      , "spin"+      , "spirit"+      , "split"+      , "spoil"+      , "sponsor"+      , "spoon"+      , "sport"+      , "spot"+      , "spray"+      , "spread"+      , "spring"+      , "spy"+      , "square"+      , "squeeze"+      , "squirrel"+      , "stable"+      , "stadium"+      , "staff"+      , "stage"+      , "stairs"+      , "stamp"+      , "stand"+      , "start"+      , "state"+      , "stay"+      , "steak"+      , "steel"+      , "stem"+      , "step"+      , "stereo"+      , "stick"+      , "still"+      , "sting"+      , "stock"+      , "stomach"+      , "stone"+      , "stool"+      , "story"+      , "stove"+      , "strategy"+      , "street"+      , "strike"+      , "strong"+      , "struggle"+      , "student"+      , "stuff"+      , "stumble"+      , "style"+      , "subject"+      , "submit"+      , "subway"+      , "success"+      , "such"+      , "sudden"+      , "suffer"+      , "sugar"+      , "suggest"+      , "suit"+      , "summer"+      , "sun"+      , "sunny"+      , "sunset"+      , "super"+      , "supply"+      , "supreme"+      , "sure"+      , "surface"+      , "surge"+      , "surprise"+      , "surround"+      , "survey"+      , "suspect"+      , "sustain"+      , "swallow"+      , "swamp"+      , "swap"+      , "swarm"+      , "swear"+      , "sweet"+      , "swift"+      , "swim"+      , "swing"+      , "switch"+      , "sword"+      , "symbol"+      , "symptom"+      , "syrup"+      , "system"+      , "table"+      , "tackle"+      , "tag"+      , "tail"+      , "talent"+      , "talk"+      , "tank"+      , "tape"+      , "target"+      , "task"+      , "taste"+      , "tattoo"+      , "taxi"+      , "teach"+      , "team"+      , "tell"+      , "ten"+      , "tenant"+      , "tennis"+      , "tent"+      , "term"+      , "test"+      , "text"+      , "thank"+      , "that"+      , "theme"+      , "then"+      , "theory"+      , "there"+      , "they"+      , "thing"+      , "this"+      , "thought"+      , "three"+      , "thrive"+      , "throw"+      , "thumb"+      , "thunder"+      , "ticket"+      , "tide"+      , "tiger"+      , "tilt"+      , "timber"+      , "time"+      , "tiny"+      , "tip"+      , "tired"+      , "tissue"+      , "title"+      , "toast"+      , "tobacco"+      , "today"+      , "toddler"+      , "toe"+      , "together"+      , "toilet"+      , "token"+      , "tomato"+      , "tomorrow"+      , "tone"+      , "tongue"+      , "tonight"+      , "tool"+      , "tooth"+      , "top"+      , "topic"+      , "topple"+      , "torch"+      , "tornado"+      , "tortoise"+      , "toss"+      , "total"+      , "tourist"+      , "toward"+      , "tower"+      , "town"+      , "toy"+      , "track"+      , "trade"+      , "traffic"+      , "tragic"+      , "train"+      , "transfer"+      , "trap"+      , "trash"+      , "travel"+      , "tray"+      , "treat"+      , "tree"+      , "trend"+      , "trial"+      , "tribe"+      , "trick"+      , "trigger"+      , "trim"+      , "trip"+      , "trophy"+      , "trouble"+      , "truck"+      , "true"+      , "truly"+      , "trumpet"+      , "trust"+      , "truth"+      , "try"+      , "tube"+      , "tuition"+      , "tumble"+      , "tuna"+      , "tunnel"+      , "turkey"+      , "turn"+      , "turtle"+      , "twelve"+      , "twenty"+      , "twice"+      , "twin"+      , "twist"+      , "two"+      , "type"+      , "typical"+      , "ugly"+      , "umbrella"+      , "unable"+      , "unaware"+      , "uncle"+      , "uncover"+      , "under"+      , "undo"+      , "unfair"+      , "unfold"+      , "unhappy"+      , "uniform"+      , "unique"+      , "unit"+      , "universe"+      , "unknown"+      , "unlock"+      , "until"+      , "unusual"+      , "unveil"+      , "update"+      , "upgrade"+      , "uphold"+      , "upon"+      , "upper"+      , "upset"+      , "urban"+      , "urge"+      , "usage"+      , "use"+      , "used"+      , "useful"+      , "useless"+      , "usual"+      , "utility"+      , "vacant"+      , "vacuum"+      , "vague"+      , "valid"+      , "valley"+      , "valve"+      , "van"+      , "vanish"+      , "vapor"+      , "various"+      , "vast"+      , "vault"+      , "vehicle"+      , "velvet"+      , "vendor"+      , "venture"+      , "venue"+      , "verb"+      , "verify"+      , "version"+      , "very"+      , "vessel"+      , "veteran"+      , "viable"+      , "vibrant"+      , "vicious"+      , "victory"+      , "video"+      , "view"+      , "village"+      , "vintage"+      , "violin"+      , "virtual"+      , "virus"+      , "visa"+      , "visit"+      , "visual"+      , "vital"+      , "vivid"+      , "vocal"+      , "voice"+      , "void"+      , "volcano"+      , "volume"+      , "vote"+      , "voyage"+      , "wage"+      , "wagon"+      , "wait"+      , "walk"+      , "wall"+      , "walnut"+      , "want"+      , "warfare"+      , "warm"+      , "warrior"+      , "wash"+      , "wasp"+      , "waste"+      , "water"+      , "wave"+      , "way"+      , "wealth"+      , "weapon"+      , "wear"+      , "weasel"+      , "weather"+      , "web"+      , "wedding"+      , "weekend"+      , "weird"+      , "welcome"+      , "west"+      , "wet"+      , "whale"+      , "what"+      , "wheat"+      , "wheel"+      , "when"+      , "where"+      , "whip"+      , "whisper"+      , "wide"+      , "width"+      , "wife"+      , "wild"+      , "will"+      , "win"+      , "window"+      , "wine"+      , "wing"+      , "wink"+      , "winner"+      , "winter"+      , "wire"+      , "wisdom"+      , "wise"+      , "wish"+      , "witness"+      , "wolf"+      , "woman"+      , "wonder"+      , "wood"+      , "wool"+      , "word"+      , "work"+      , "world"+      , "worry"+      , "worth"+      , "wrap"+      , "wreck"+      , "wrestle"+      , "wrist"+      , "write"+      , "wrong"+      , "yard"+      , "year"+      , "yellow"+      , "you"+      , "young"+      , "youth"+      , "zebra"+      , "zero"+      , "zone"+      , "zoo"+      ]
+ lib/Cardano/Dictionary/French.hs view
@@ -0,0 +1,2079 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}++{-# OPTIONS_HADDOCK hide #-}++-- |+-- Copyright: 2025 Intersect+-- License: Apache-2.0+--+-- Adopted from https://github.com/bloxbean/cardano-client-lib/blob/master/crypto/src/main/resources/mnemonic/wordlist/french.txt++module Cardano.Dictionary.French+    (+    -- * dictionary value+     french+    ) where++import Basement.String+    ( String )+import Cardano.Dictionary.Generic+    ( toDictionary )+import Crypto.Encoding.BIP39.Dictionary+    ( Dictionary )++french :: Dictionary+french = toDictionary wordList+  where+  wordList :: [String]+  wordList =+      ["abaisser"+      ,"abandon"+      ,"abdiquer"+      ,"abeille"+      ,"abolir"+      ,"aborder"+      ,"aboutir"+      ,"aboyer"+      ,"abrasif"+      ,"abreuver"+      ,"abriter"+      ,"abroger"+      ,"abrupt"+      ,"absence"+      ,"absolu"+      ,"absurde"+      ,"abusif"+      ,"abyssal"+      ,"académie"+      ,"acajou"+      ,"acarien"+      ,"accabler"+      ,"accepter"+      ,"acclamer"+      ,"accolade"+      ,"accroche"+      ,"accuser"+      ,"acerbe"+      ,"achat"+      ,"acheter"+      ,"aciduler"+      ,"acier"+      ,"acompte"+      ,"acquérir"+      ,"acronyme"+      ,"acteur"+      ,"actif"+      ,"actuel"+      ,"adepte"+      ,"adéquat"+      ,"adhésif"+      ,"adjectif"+      ,"adjuger"+      ,"admettre"+      ,"admirer"+      ,"adopter"+      ,"adorer"+      ,"adoucir"+      ,"adresse"+      ,"adroit"+      ,"adulte"+      ,"adverbe"+      ,"aérer"+      ,"aéronef"+      ,"affaire"+      ,"affecter"+      ,"affiche"+      ,"affreux"+      ,"affubler"+      ,"agacer"+      ,"agencer"+      ,"agile"+      ,"agiter"+      ,"agrafer"+      ,"agréable"+      ,"agrume"+      ,"aider"+      ,"aiguille"+      ,"ailier"+      ,"aimable"+      ,"aisance"+      ,"ajouter"+      ,"ajuster"+      ,"alarmer"+      ,"alchimie"+      ,"alerte"+      ,"algèbre"+      ,"algue"+      ,"aliéner"+      ,"aliment"+      ,"alléger"+      ,"alliage"+      ,"allouer"+      ,"allumer"+      ,"alourdir"+      ,"alpaga"+      ,"altesse"+      ,"alvéole"+      ,"amateur"+      ,"ambigu"+      ,"ambre"+      ,"aménager"+      ,"amertume"+      ,"amidon"+      ,"amiral"+      ,"amorcer"+      ,"amour"+      ,"amovible"+      ,"amphibie"+      ,"ampleur"+      ,"amusant"+      ,"analyse"+      ,"anaphore"+      ,"anarchie"+      ,"anatomie"+      ,"ancien"+      ,"anéantir"+      ,"angle"+      ,"angoisse"+      ,"anguleux"+      ,"animal"+      ,"annexer"+      ,"annonce"+      ,"annuel"+      ,"anodin"+      ,"anomalie"+      ,"anonyme"+      ,"anormal"+      ,"antenne"+      ,"antidote"+      ,"anxieux"+      ,"apaiser"+      ,"apéritif"+      ,"aplanir"+      ,"apologie"+      ,"appareil"+      ,"appeler"+      ,"apporter"+      ,"appuyer"+      ,"aquarium"+      ,"aqueduc"+      ,"arbitre"+      ,"arbuste"+      ,"ardeur"+      ,"ardoise"+      ,"argent"+      ,"arlequin"+      ,"armature"+      ,"armement"+      ,"armoire"+      ,"armure"+      ,"arpenter"+      ,"arracher"+      ,"arriver"+      ,"arroser"+      ,"arsenic"+      ,"artériel"+      ,"article"+      ,"aspect"+      ,"asphalte"+      ,"aspirer"+      ,"assaut"+      ,"asservir"+      ,"assiette"+      ,"associer"+      ,"assurer"+      ,"asticot"+      ,"astre"+      ,"astuce"+      ,"atelier"+      ,"atome"+      ,"atrium"+      ,"atroce"+      ,"attaque"+      ,"attentif"+      ,"attirer"+      ,"attraper"+      ,"aubaine"+      ,"auberge"+      ,"audace"+      ,"audible"+      ,"augurer"+      ,"aurore"+      ,"automne"+      ,"autruche"+      ,"avaler"+      ,"avancer"+      ,"avarice"+      ,"avenir"+      ,"averse"+      ,"aveugle"+      ,"aviateur"+      ,"avide"+      ,"avion"+      ,"aviser"+      ,"avoine"+      ,"avouer"+      ,"avril"+      ,"axial"+      ,"axiome"+      ,"badge"+      ,"bafouer"+      ,"bagage"+      ,"baguette"+      ,"baignade"+      ,"balancer"+      ,"balcon"+      ,"baleine"+      ,"balisage"+      ,"bambin"+      ,"bancaire"+      ,"bandage"+      ,"banlieue"+      ,"bannière"+      ,"banquier"+      ,"barbier"+      ,"baril"+      ,"baron"+      ,"barque"+      ,"barrage"+      ,"bassin"+      ,"bastion"+      ,"bataille"+      ,"bateau"+      ,"batterie"+      ,"baudrier"+      ,"bavarder"+      ,"belette"+      ,"bélier"+      ,"belote"+      ,"bénéfice"+      ,"berceau"+      ,"berger"+      ,"berline"+      ,"bermuda"+      ,"besace"+      ,"besogne"+      ,"bétail"+      ,"beurre"+      ,"biberon"+      ,"bicycle"+      ,"bidule"+      ,"bijou"+      ,"bilan"+      ,"bilingue"+      ,"billard"+      ,"binaire"+      ,"biologie"+      ,"biopsie"+      ,"biotype"+      ,"biscuit"+      ,"bison"+      ,"bistouri"+      ,"bitume"+      ,"bizarre"+      ,"blafard"+      ,"blague"+      ,"blanchir"+      ,"blessant"+      ,"blinder"+      ,"blond"+      ,"bloquer"+      ,"blouson"+      ,"bobard"+      ,"bobine"+      ,"boire"+      ,"boiser"+      ,"bolide"+      ,"bonbon"+      ,"bondir"+      ,"bonheur"+      ,"bonifier"+      ,"bonus"+      ,"bordure"+      ,"borne"+      ,"botte"+      ,"boucle"+      ,"boueux"+      ,"bougie"+      ,"boulon"+      ,"bouquin"+      ,"bourse"+      ,"boussole"+      ,"boutique"+      ,"boxeur"+      ,"branche"+      ,"brasier"+      ,"brave"+      ,"brebis"+      ,"brèche"+      ,"breuvage"+      ,"bricoler"+      ,"brigade"+      ,"brillant"+      ,"brioche"+      ,"brique"+      ,"brochure"+      ,"broder"+      ,"bronzer"+      ,"brousse"+      ,"broyeur"+      ,"brume"+      ,"brusque"+      ,"brutal"+      ,"bruyant"+      ,"buffle"+      ,"buisson"+      ,"bulletin"+      ,"bureau"+      ,"burin"+      ,"bustier"+      ,"butiner"+      ,"butoir"+      ,"buvable"+      ,"buvette"+      ,"cabanon"+      ,"cabine"+      ,"cachette"+      ,"cadeau"+      ,"cadre"+      ,"caféine"+      ,"caillou"+      ,"caisson"+      ,"calculer"+      ,"calepin"+      ,"calibre"+      ,"calmer"+      ,"calomnie"+      ,"calvaire"+      ,"camarade"+      ,"caméra"+      ,"camion"+      ,"campagne"+      ,"canal"+      ,"caneton"+      ,"canon"+      ,"cantine"+      ,"canular"+      ,"capable"+      ,"caporal"+      ,"caprice"+      ,"capsule"+      ,"capter"+      ,"capuche"+      ,"carabine"+      ,"carbone"+      ,"caresser"+      ,"caribou"+      ,"carnage"+      ,"carotte"+      ,"carreau"+      ,"carton"+      ,"cascade"+      ,"casier"+      ,"casque"+      ,"cassure"+      ,"causer"+      ,"caution"+      ,"cavalier"+      ,"caverne"+      ,"caviar"+      ,"cédille"+      ,"ceinture"+      ,"céleste"+      ,"cellule"+      ,"cendrier"+      ,"censurer"+      ,"central"+      ,"cercle"+      ,"cérébral"+      ,"cerise"+      ,"cerner"+      ,"cerveau"+      ,"cesser"+      ,"chagrin"+      ,"chaise"+      ,"chaleur"+      ,"chambre"+      ,"chance"+      ,"chapitre"+      ,"charbon"+      ,"chasseur"+      ,"chaton"+      ,"chausson"+      ,"chavirer"+      ,"chemise"+      ,"chenille"+      ,"chéquier"+      ,"chercher"+      ,"cheval"+      ,"chien"+      ,"chiffre"+      ,"chignon"+      ,"chimère"+      ,"chiot"+      ,"chlorure"+      ,"chocolat"+      ,"choisir"+      ,"chose"+      ,"chouette"+      ,"chrome"+      ,"chute"+      ,"cigare"+      ,"cigogne"+      ,"cimenter"+      ,"cinéma"+      ,"cintrer"+      ,"circuler"+      ,"cirer"+      ,"cirque"+      ,"citerne"+      ,"citoyen"+      ,"citron"+      ,"civil"+      ,"clairon"+      ,"clameur"+      ,"claquer"+      ,"classe"+      ,"clavier"+      ,"client"+      ,"cligner"+      ,"climat"+      ,"clivage"+      ,"cloche"+      ,"clonage"+      ,"cloporte"+      ,"cobalt"+      ,"cobra"+      ,"cocasse"+      ,"cocotier"+      ,"coder"+      ,"codifier"+      ,"coffre"+      ,"cogner"+      ,"cohésion"+      ,"coiffer"+      ,"coincer"+      ,"colère"+      ,"colibri"+      ,"colline"+      ,"colmater"+      ,"colonel"+      ,"combat"+      ,"comédie"+      ,"commande"+      ,"compact"+      ,"concert"+      ,"conduire"+      ,"confier"+      ,"congeler"+      ,"connoter"+      ,"consonne"+      ,"contact"+      ,"convexe"+      ,"copain"+      ,"copie"+      ,"corail"+      ,"corbeau"+      ,"cordage"+      ,"corniche"+      ,"corpus"+      ,"correct"+      ,"cortège"+      ,"cosmique"+      ,"costume"+      ,"coton"+      ,"coude"+      ,"coupure"+      ,"courage"+      ,"couteau"+      ,"couvrir"+      ,"coyote"+      ,"crabe"+      ,"crainte"+      ,"cravate"+      ,"crayon"+      ,"créature"+      ,"créditer"+      ,"crémeux"+      ,"creuser"+      ,"crevette"+      ,"cribler"+      ,"crier"+      ,"cristal"+      ,"critère"+      ,"croire"+      ,"croquer"+      ,"crotale"+      ,"crucial"+      ,"cruel"+      ,"crypter"+      ,"cubique"+      ,"cueillir"+      ,"cuillère"+      ,"cuisine"+      ,"cuivre"+      ,"culminer"+      ,"cultiver"+      ,"cumuler"+      ,"cupide"+      ,"curatif"+      ,"curseur"+      ,"cyanure"+      ,"cycle"+      ,"cylindre"+      ,"cynique"+      ,"daigner"+      ,"damier"+      ,"danger"+      ,"danseur"+      ,"dauphin"+      ,"débattre"+      ,"débiter"+      ,"déborder"+      ,"débrider"+      ,"débutant"+      ,"décaler"+      ,"décembre"+      ,"déchirer"+      ,"décider"+      ,"déclarer"+      ,"décorer"+      ,"décrire"+      ,"décupler"+      ,"dédale"+      ,"déductif"+      ,"déesse"+      ,"défensif"+      ,"défiler"+      ,"défrayer"+      ,"dégager"+      ,"dégivrer"+      ,"déglutir"+      ,"dégrafer"+      ,"déjeuner"+      ,"délice"+      ,"déloger"+      ,"demander"+      ,"demeurer"+      ,"démolir"+      ,"dénicher"+      ,"dénouer"+      ,"dentelle"+      ,"dénuder"+      ,"départ"+      ,"dépenser"+      ,"déphaser"+      ,"déplacer"+      ,"déposer"+      ,"déranger"+      ,"dérober"+      ,"désastre"+      ,"descente"+      ,"désert"+      ,"désigner"+      ,"désobéir"+      ,"dessiner"+      ,"destrier"+      ,"détacher"+      ,"détester"+      ,"détourer"+      ,"détresse"+      ,"devancer"+      ,"devenir"+      ,"deviner"+      ,"devoir"+      ,"diable"+      ,"dialogue"+      ,"diamant"+      ,"dicter"+      ,"différer"+      ,"digérer"+      ,"digital"+      ,"digne"+      ,"diluer"+      ,"dimanche"+      ,"diminuer"+      ,"dioxyde"+      ,"directif"+      ,"diriger"+      ,"discuter"+      ,"disposer"+      ,"dissiper"+      ,"distance"+      ,"divertir"+      ,"diviser"+      ,"docile"+      ,"docteur"+      ,"dogme"+      ,"doigt"+      ,"domaine"+      ,"domicile"+      ,"dompter"+      ,"donateur"+      ,"donjon"+      ,"donner"+      ,"dopamine"+      ,"dortoir"+      ,"dorure"+      ,"dosage"+      ,"doseur"+      ,"dossier"+      ,"dotation"+      ,"douanier"+      ,"double"+      ,"douceur"+      ,"douter"+      ,"doyen"+      ,"dragon"+      ,"draper"+      ,"dresser"+      ,"dribbler"+      ,"droiture"+      ,"duperie"+      ,"duplexe"+      ,"durable"+      ,"durcir"+      ,"dynastie"+      ,"éblouir"+      ,"écarter"+      ,"écharpe"+      ,"échelle"+      ,"éclairer"+      ,"éclipse"+      ,"éclore"+      ,"écluse"+      ,"école"+      ,"économie"+      ,"écorce"+      ,"écouter"+      ,"écraser"+      ,"écrémer"+      ,"écrivain"+      ,"écrou"+      ,"écume"+      ,"écureuil"+      ,"édifier"+      ,"éduquer"+      ,"effacer"+      ,"effectif"+      ,"effigie"+      ,"effort"+      ,"effrayer"+      ,"effusion"+      ,"égaliser"+      ,"égarer"+      ,"éjecter"+      ,"élaborer"+      ,"élargir"+      ,"électron"+      ,"élégant"+      ,"éléphant"+      ,"élève"+      ,"éligible"+      ,"élitisme"+      ,"éloge"+      ,"élucider"+      ,"éluder"+      ,"emballer"+      ,"embellir"+      ,"embryon"+      ,"émeraude"+      ,"émission"+      ,"emmener"+      ,"émotion"+      ,"émouvoir"+      ,"empereur"+      ,"employer"+      ,"emporter"+      ,"emprise"+      ,"émulsion"+      ,"encadrer"+      ,"enchère"+      ,"enclave"+      ,"encoche"+      ,"endiguer"+      ,"endosser"+      ,"endroit"+      ,"enduire"+      ,"énergie"+      ,"enfance"+      ,"enfermer"+      ,"enfouir"+      ,"engager"+      ,"engin"+      ,"englober"+      ,"énigme"+      ,"enjamber"+      ,"enjeu"+      ,"enlever"+      ,"ennemi"+      ,"ennuyeux"+      ,"enrichir"+      ,"enrobage"+      ,"enseigne"+      ,"entasser"+      ,"entendre"+      ,"entier"+      ,"entourer"+      ,"entraver"+      ,"énumérer"+      ,"envahir"+      ,"enviable"+      ,"envoyer"+      ,"enzyme"+      ,"éolien"+      ,"épaissir"+      ,"épargne"+      ,"épatant"+      ,"épaule"+      ,"épicerie"+      ,"épidémie"+      ,"épier"+      ,"épilogue"+      ,"épine"+      ,"épisode"+      ,"épitaphe"+      ,"époque"+      ,"épreuve"+      ,"éprouver"+      ,"épuisant"+      ,"équerre"+      ,"équipe"+      ,"ériger"+      ,"érosion"+      ,"erreur"+      ,"éruption"+      ,"escalier"+      ,"espadon"+      ,"espèce"+      ,"espiègle"+      ,"espoir"+      ,"esprit"+      ,"esquiver"+      ,"essayer"+      ,"essence"+      ,"essieu"+      ,"essorer"+      ,"estime"+      ,"estomac"+      ,"estrade"+      ,"étagère"+      ,"étaler"+      ,"étanche"+      ,"étatique"+      ,"éteindre"+      ,"étendoir"+      ,"éternel"+      ,"éthanol"+      ,"éthique"+      ,"ethnie"+      ,"étirer"+      ,"étoffer"+      ,"étoile"+      ,"étonnant"+      ,"étourdir"+      ,"étrange"+      ,"étroit"+      ,"étude"+      ,"euphorie"+      ,"évaluer"+      ,"évasion"+      ,"éventail"+      ,"évidence"+      ,"éviter"+      ,"évolutif"+      ,"évoquer"+      ,"exact"+      ,"exagérer"+      ,"exaucer"+      ,"exceller"+      ,"excitant"+      ,"exclusif"+      ,"excuse"+      ,"exécuter"+      ,"exemple"+      ,"exercer"+      ,"exhaler"+      ,"exhorter"+      ,"exigence"+      ,"exiler"+      ,"exister"+      ,"exotique"+      ,"expédier"+      ,"explorer"+      ,"exposer"+      ,"exprimer"+      ,"exquis"+      ,"extensif"+      ,"extraire"+      ,"exulter"+      ,"fable"+      ,"fabuleux"+      ,"facette"+      ,"facile"+      ,"facture"+      ,"faiblir"+      ,"falaise"+      ,"fameux"+      ,"famille"+      ,"farceur"+      ,"farfelu"+      ,"farine"+      ,"farouche"+      ,"fasciner"+      ,"fatal"+      ,"fatigue"+      ,"faucon"+      ,"fautif"+      ,"faveur"+      ,"favori"+      ,"fébrile"+      ,"féconder"+      ,"fédérer"+      ,"félin"+      ,"femme"+      ,"fémur"+      ,"fendoir"+      ,"féodal"+      ,"fermer"+      ,"féroce"+      ,"ferveur"+      ,"festival"+      ,"feuille"+      ,"feutre"+      ,"février"+      ,"fiasco"+      ,"ficeler"+      ,"fictif"+      ,"fidèle"+      ,"figure"+      ,"filature"+      ,"filetage"+      ,"filière"+      ,"filleul"+      ,"filmer"+      ,"filou"+      ,"filtrer"+      ,"financer"+      ,"finir"+      ,"fiole"+      ,"firme"+      ,"fissure"+      ,"fixer"+      ,"flairer"+      ,"flamme"+      ,"flasque"+      ,"flatteur"+      ,"fléau"+      ,"flèche"+      ,"fleur"+      ,"flexion"+      ,"flocon"+      ,"flore"+      ,"fluctuer"+      ,"fluide"+      ,"fluvial"+      ,"folie"+      ,"fonderie"+      ,"fongible"+      ,"fontaine"+      ,"forcer"+      ,"forgeron"+      ,"formuler"+      ,"fortune"+      ,"fossile"+      ,"foudre"+      ,"fougère"+      ,"fouiller"+      ,"foulure"+      ,"fourmi"+      ,"fragile"+      ,"fraise"+      ,"franchir"+      ,"frapper"+      ,"frayeur"+      ,"frégate"+      ,"freiner"+      ,"frelon"+      ,"frémir"+      ,"frénésie"+      ,"frère"+      ,"friable"+      ,"friction"+      ,"frisson"+      ,"frivole"+      ,"froid"+      ,"fromage"+      ,"frontal"+      ,"frotter"+      ,"fruit"+      ,"fugitif"+      ,"fuite"+      ,"fureur"+      ,"furieux"+      ,"furtif"+      ,"fusion"+      ,"futur"+      ,"gagner"+      ,"galaxie"+      ,"galerie"+      ,"gambader"+      ,"garantir"+      ,"gardien"+      ,"garnir"+      ,"garrigue"+      ,"gazelle"+      ,"gazon"+      ,"géant"+      ,"gélatine"+      ,"gélule"+      ,"gendarme"+      ,"général"+      ,"génie"+      ,"genou"+      ,"gentil"+      ,"géologie"+      ,"géomètre"+      ,"géranium"+      ,"germe"+      ,"gestuel"+      ,"geyser"+      ,"gibier"+      ,"gicler"+      ,"girafe"+      ,"givre"+      ,"glace"+      ,"glaive"+      ,"glisser"+      ,"globe"+      ,"gloire"+      ,"glorieux"+      ,"golfeur"+      ,"gomme"+      ,"gonfler"+      ,"gorge"+      ,"gorille"+      ,"goudron"+      ,"gouffre"+      ,"goulot"+      ,"goupille"+      ,"gourmand"+      ,"goutte"+      ,"graduel"+      ,"graffiti"+      ,"graine"+      ,"grand"+      ,"grappin"+      ,"gratuit"+      ,"gravir"+      ,"grenat"+      ,"griffure"+      ,"griller"+      ,"grimper"+      ,"grogner"+      ,"gronder"+      ,"grotte"+      ,"groupe"+      ,"gruger"+      ,"grutier"+      ,"gruyère"+      ,"guépard"+      ,"guerrier"+      ,"guide"+      ,"guimauve"+      ,"guitare"+      ,"gustatif"+      ,"gymnaste"+      ,"gyrostat"+      ,"habitude"+      ,"hachoir"+      ,"halte"+      ,"hameau"+      ,"hangar"+      ,"hanneton"+      ,"haricot"+      ,"harmonie"+      ,"harpon"+      ,"hasard"+      ,"hélium"+      ,"hématome"+      ,"herbe"+      ,"hérisson"+      ,"hermine"+      ,"héron"+      ,"hésiter"+      ,"heureux"+      ,"hiberner"+      ,"hibou"+      ,"hilarant"+      ,"histoire"+      ,"hiver"+      ,"homard"+      ,"hommage"+      ,"homogène"+      ,"honneur"+      ,"honorer"+      ,"honteux"+      ,"horde"+      ,"horizon"+      ,"horloge"+      ,"hormone"+      ,"horrible"+      ,"houleux"+      ,"housse"+      ,"hublot"+      ,"huileux"+      ,"humain"+      ,"humble"+      ,"humide"+      ,"humour"+      ,"hurler"+      ,"hydromel"+      ,"hygiène"+      ,"hymne"+      ,"hypnose"+      ,"idylle"+      ,"ignorer"+      ,"iguane"+      ,"illicite"+      ,"illusion"+      ,"image"+      ,"imbiber"+      ,"imiter"+      ,"immense"+      ,"immobile"+      ,"immuable"+      ,"impact"+      ,"impérial"+      ,"implorer"+      ,"imposer"+      ,"imprimer"+      ,"imputer"+      ,"incarner"+      ,"incendie"+      ,"incident"+      ,"incliner"+      ,"incolore"+      ,"indexer"+      ,"indice"+      ,"inductif"+      ,"inédit"+      ,"ineptie"+      ,"inexact"+      ,"infini"+      ,"infliger"+      ,"informer"+      ,"infusion"+      ,"ingérer"+      ,"inhaler"+      ,"inhiber"+      ,"injecter"+      ,"injure"+      ,"innocent"+      ,"inoculer"+      ,"inonder"+      ,"inscrire"+      ,"insecte"+      ,"insigne"+      ,"insolite"+      ,"inspirer"+      ,"instinct"+      ,"insulter"+      ,"intact"+      ,"intense"+      ,"intime"+      ,"intrigue"+      ,"intuitif"+      ,"inutile"+      ,"invasion"+      ,"inventer"+      ,"inviter"+      ,"invoquer"+      ,"ironique"+      ,"irradier"+      ,"irréel"+      ,"irriter"+      ,"isoler"+      ,"ivoire"+      ,"ivresse"+      ,"jaguar"+      ,"jaillir"+      ,"jambe"+      ,"janvier"+      ,"jardin"+      ,"jauger"+      ,"jaune"+      ,"javelot"+      ,"jetable"+      ,"jeton"+      ,"jeudi"+      ,"jeunesse"+      ,"joindre"+      ,"joncher"+      ,"jongler"+      ,"joueur"+      ,"jouissif"+      ,"journal"+      ,"jovial"+      ,"joyau"+      ,"joyeux"+      ,"jubiler"+      ,"jugement"+      ,"junior"+      ,"jupon"+      ,"juriste"+      ,"justice"+      ,"juteux"+      ,"juvénile"+      ,"kayak"+      ,"kimono"+      ,"kiosque"+      ,"label"+      ,"labial"+      ,"labourer"+      ,"lacérer"+      ,"lactose"+      ,"lagune"+      ,"laine"+      ,"laisser"+      ,"laitier"+      ,"lambeau"+      ,"lamelle"+      ,"lampe"+      ,"lanceur"+      ,"langage"+      ,"lanterne"+      ,"lapin"+      ,"largeur"+      ,"larme"+      ,"laurier"+      ,"lavabo"+      ,"lavoir"+      ,"lecture"+      ,"légal"+      ,"léger"+      ,"légume"+      ,"lessive"+      ,"lettre"+      ,"levier"+      ,"lexique"+      ,"lézard"+      ,"liasse"+      ,"libérer"+      ,"libre"+      ,"licence"+      ,"licorne"+      ,"liège"+      ,"lièvre"+      ,"ligature"+      ,"ligoter"+      ,"ligue"+      ,"limer"+      ,"limite"+      ,"limonade"+      ,"limpide"+      ,"linéaire"+      ,"lingot"+      ,"lionceau"+      ,"liquide"+      ,"lisière"+      ,"lister"+      ,"lithium"+      ,"litige"+      ,"littoral"+      ,"livreur"+      ,"logique"+      ,"lointain"+      ,"loisir"+      ,"lombric"+      ,"loterie"+      ,"louer"+      ,"lourd"+      ,"loutre"+      ,"louve"+      ,"loyal"+      ,"lubie"+      ,"lucide"+      ,"lucratif"+      ,"lueur"+      ,"lugubre"+      ,"luisant"+      ,"lumière"+      ,"lunaire"+      ,"lundi"+      ,"luron"+      ,"lutter"+      ,"luxueux"+      ,"machine"+      ,"magasin"+      ,"magenta"+      ,"magique"+      ,"maigre"+      ,"maillon"+      ,"maintien"+      ,"mairie"+      ,"maison"+      ,"majorer"+      ,"malaxer"+      ,"maléfice"+      ,"malheur"+      ,"malice"+      ,"mallette"+      ,"mammouth"+      ,"mandater"+      ,"maniable"+      ,"manquant"+      ,"manteau"+      ,"manuel"+      ,"marathon"+      ,"marbre"+      ,"marchand"+      ,"mardi"+      ,"maritime"+      ,"marqueur"+      ,"marron"+      ,"marteler"+      ,"mascotte"+      ,"massif"+      ,"matériel"+      ,"matière"+      ,"matraque"+      ,"maudire"+      ,"maussade"+      ,"mauve"+      ,"maximal"+      ,"méchant"+      ,"méconnu"+      ,"médaille"+      ,"médecin"+      ,"méditer"+      ,"méduse"+      ,"meilleur"+      ,"mélange"+      ,"mélodie"+      ,"membre"+      ,"mémoire"+      ,"menacer"+      ,"mener"+      ,"menhir"+      ,"mensonge"+      ,"mentor"+      ,"mercredi"+      ,"mérite"+      ,"merle"+      ,"messager"+      ,"mesure"+      ,"métal"+      ,"météore"+      ,"méthode"+      ,"métier"+      ,"meuble"+      ,"miauler"+      ,"microbe"+      ,"miette"+      ,"mignon"+      ,"migrer"+      ,"milieu"+      ,"million"+      ,"mimique"+      ,"mince"+      ,"minéral"+      ,"minimal"+      ,"minorer"+      ,"minute"+      ,"miracle"+      ,"miroiter"+      ,"missile"+      ,"mixte"+      ,"mobile"+      ,"moderne"+      ,"moelleux"+      ,"mondial"+      ,"moniteur"+      ,"monnaie"+      ,"monotone"+      ,"monstre"+      ,"montagne"+      ,"monument"+      ,"moqueur"+      ,"morceau"+      ,"morsure"+      ,"mortier"+      ,"moteur"+      ,"motif"+      ,"mouche"+      ,"moufle"+      ,"moulin"+      ,"mousson"+      ,"mouton"+      ,"mouvant"+      ,"multiple"+      ,"munition"+      ,"muraille"+      ,"murène"+      ,"murmure"+      ,"muscle"+      ,"muséum"+      ,"musicien"+      ,"mutation"+      ,"muter"+      ,"mutuel"+      ,"myriade"+      ,"myrtille"+      ,"mystère"+      ,"mythique"+      ,"nageur"+      ,"nappe"+      ,"narquois"+      ,"narrer"+      ,"natation"+      ,"nation"+      ,"nature"+      ,"naufrage"+      ,"nautique"+      ,"navire"+      ,"nébuleux"+      ,"nectar"+      ,"néfaste"+      ,"négation"+      ,"négliger"+      ,"négocier"+      ,"neige"+      ,"nerveux"+      ,"nettoyer"+      ,"neurone"+      ,"neutron"+      ,"neveu"+      ,"niche"+      ,"nickel"+      ,"nitrate"+      ,"niveau"+      ,"noble"+      ,"nocif"+      ,"nocturne"+      ,"noirceur"+      ,"noisette"+      ,"nomade"+      ,"nombreux"+      ,"nommer"+      ,"normatif"+      ,"notable"+      ,"notifier"+      ,"notoire"+      ,"nourrir"+      ,"nouveau"+      ,"novateur"+      ,"novembre"+      ,"novice"+      ,"nuage"+      ,"nuancer"+      ,"nuire"+      ,"nuisible"+      ,"numéro"+      ,"nuptial"+      ,"nuque"+      ,"nutritif"+      ,"obéir"+      ,"objectif"+      ,"obliger"+      ,"obscur"+      ,"observer"+      ,"obstacle"+      ,"obtenir"+      ,"obturer"+      ,"occasion"+      ,"occuper"+      ,"océan"+      ,"octobre"+      ,"octroyer"+      ,"octupler"+      ,"oculaire"+      ,"odeur"+      ,"odorant"+      ,"offenser"+      ,"officier"+      ,"offrir"+      ,"ogive"+      ,"oiseau"+      ,"oisillon"+      ,"olfactif"+      ,"olivier"+      ,"ombrage"+      ,"omettre"+      ,"onctueux"+      ,"onduler"+      ,"onéreux"+      ,"onirique"+      ,"opale"+      ,"opaque"+      ,"opérer"+      ,"opinion"+      ,"opportun"+      ,"opprimer"+      ,"opter"+      ,"optique"+      ,"orageux"+      ,"orange"+      ,"orbite"+      ,"ordonner"+      ,"oreille"+      ,"organe"+      ,"orgueil"+      ,"orifice"+      ,"ornement"+      ,"orque"+      ,"ortie"+      ,"osciller"+      ,"osmose"+      ,"ossature"+      ,"otarie"+      ,"ouragan"+      ,"ourson"+      ,"outil"+      ,"outrager"+      ,"ouvrage"+      ,"ovation"+      ,"oxyde"+      ,"oxygène"+      ,"ozone"+      ,"paisible"+      ,"palace"+      ,"palmarès"+      ,"palourde"+      ,"palper"+      ,"panache"+      ,"panda"+      ,"pangolin"+      ,"paniquer"+      ,"panneau"+      ,"panorama"+      ,"pantalon"+      ,"papaye"+      ,"papier"+      ,"papoter"+      ,"papyrus"+      ,"paradoxe"+      ,"parcelle"+      ,"paresse"+      ,"parfumer"+      ,"parler"+      ,"parole"+      ,"parrain"+      ,"parsemer"+      ,"partager"+      ,"parure"+      ,"parvenir"+      ,"passion"+      ,"pastèque"+      ,"paternel"+      ,"patience"+      ,"patron"+      ,"pavillon"+      ,"pavoiser"+      ,"payer"+      ,"paysage"+      ,"peigne"+      ,"peintre"+      ,"pelage"+      ,"pélican"+      ,"pelle"+      ,"pelouse"+      ,"peluche"+      ,"pendule"+      ,"pénétrer"+      ,"pénible"+      ,"pensif"+      ,"pénurie"+      ,"pépite"+      ,"péplum"+      ,"perdrix"+      ,"perforer"+      ,"période"+      ,"permuter"+      ,"perplexe"+      ,"persil"+      ,"perte"+      ,"peser"+      ,"pétale"+      ,"petit"+      ,"pétrir"+      ,"peuple"+      ,"pharaon"+      ,"phobie"+      ,"phoque"+      ,"photon"+      ,"phrase"+      ,"physique"+      ,"piano"+      ,"pictural"+      ,"pièce"+      ,"pierre"+      ,"pieuvre"+      ,"pilote"+      ,"pinceau"+      ,"pipette"+      ,"piquer"+      ,"pirogue"+      ,"piscine"+      ,"piston"+      ,"pivoter"+      ,"pixel"+      ,"pizza"+      ,"placard"+      ,"plafond"+      ,"plaisir"+      ,"planer"+      ,"plaque"+      ,"plastron"+      ,"plateau"+      ,"pleurer"+      ,"plexus"+      ,"pliage"+      ,"plomb"+      ,"plonger"+      ,"pluie"+      ,"plumage"+      ,"pochette"+      ,"poésie"+      ,"poète"+      ,"pointe"+      ,"poirier"+      ,"poisson"+      ,"poivre"+      ,"polaire"+      ,"policier"+      ,"pollen"+      ,"polygone"+      ,"pommade"+      ,"pompier"+      ,"ponctuel"+      ,"pondérer"+      ,"poney"+      ,"portique"+      ,"position"+      ,"posséder"+      ,"posture"+      ,"potager"+      ,"poteau"+      ,"potion"+      ,"pouce"+      ,"poulain"+      ,"poumon"+      ,"pourpre"+      ,"poussin"+      ,"pouvoir"+      ,"prairie"+      ,"pratique"+      ,"précieux"+      ,"prédire"+      ,"préfixe"+      ,"prélude"+      ,"prénom"+      ,"présence"+      ,"prétexte"+      ,"prévoir"+      ,"primitif"+      ,"prince"+      ,"prison"+      ,"priver"+      ,"problème"+      ,"procéder"+      ,"prodige"+      ,"profond"+      ,"progrès"+      ,"proie"+      ,"projeter"+      ,"prologue"+      ,"promener"+      ,"propre"+      ,"prospère"+      ,"protéger"+      ,"prouesse"+      ,"proverbe"+      ,"prudence"+      ,"pruneau"+      ,"psychose"+      ,"public"+      ,"puceron"+      ,"puiser"+      ,"pulpe"+      ,"pulsar"+      ,"punaise"+      ,"punitif"+      ,"pupitre"+      ,"purifier"+      ,"puzzle"+      ,"pyramide"+      ,"quasar"+      ,"querelle"+      ,"question"+      ,"quiétude"+      ,"quitter"+      ,"quotient"+      ,"racine"+      ,"raconter"+      ,"radieux"+      ,"ragondin"+      ,"raideur"+      ,"raisin"+      ,"ralentir"+      ,"rallonge"+      ,"ramasser"+      ,"rapide"+      ,"rasage"+      ,"ratisser"+      ,"ravager"+      ,"ravin"+      ,"rayonner"+      ,"réactif"+      ,"réagir"+      ,"réaliser"+      ,"réanimer"+      ,"recevoir"+      ,"réciter"+      ,"réclamer"+      ,"récolter"+      ,"recruter"+      ,"reculer"+      ,"recycler"+      ,"rédiger"+      ,"redouter"+      ,"refaire"+      ,"réflexe"+      ,"réformer"+      ,"refrain"+      ,"refuge"+      ,"régalien"+      ,"région"+      ,"réglage"+      ,"régulier"+      ,"réitérer"+      ,"rejeter"+      ,"rejouer"+      ,"relatif"+      ,"relever"+      ,"relief"+      ,"remarque"+      ,"remède"+      ,"remise"+      ,"remonter"+      ,"remplir"+      ,"remuer"+      ,"renard"+      ,"renfort"+      ,"renifler"+      ,"renoncer"+      ,"rentrer"+      ,"renvoi"+      ,"replier"+      ,"reporter"+      ,"reprise"+      ,"reptile"+      ,"requin"+      ,"réserve"+      ,"résineux"+      ,"résoudre"+      ,"respect"+      ,"rester"+      ,"résultat"+      ,"rétablir"+      ,"retenir"+      ,"réticule"+      ,"retomber"+      ,"retracer"+      ,"réunion"+      ,"réussir"+      ,"revanche"+      ,"revivre"+      ,"révolte"+      ,"révulsif"+      ,"richesse"+      ,"rideau"+      ,"rieur"+      ,"rigide"+      ,"rigoler"+      ,"rincer"+      ,"riposter"+      ,"risible"+      ,"risque"+      ,"rituel"+      ,"rival"+      ,"rivière"+      ,"rocheux"+      ,"romance"+      ,"rompre"+      ,"ronce"+      ,"rondin"+      ,"roseau"+      ,"rosier"+      ,"rotatif"+      ,"rotor"+      ,"rotule"+      ,"rouge"+      ,"rouille"+      ,"rouleau"+      ,"routine"+      ,"royaume"+      ,"ruban"+      ,"rubis"+      ,"ruche"+      ,"ruelle"+      ,"rugueux"+      ,"ruiner"+      ,"ruisseau"+      ,"ruser"+      ,"rustique"+      ,"rythme"+      ,"sabler"+      ,"saboter"+      ,"sabre"+      ,"sacoche"+      ,"safari"+      ,"sagesse"+      ,"saisir"+      ,"salade"+      ,"salive"+      ,"salon"+      ,"saluer"+      ,"samedi"+      ,"sanction"+      ,"sanglier"+      ,"sarcasme"+      ,"sardine"+      ,"saturer"+      ,"saugrenu"+      ,"saumon"+      ,"sauter"+      ,"sauvage"+      ,"savant"+      ,"savonner"+      ,"scalpel"+      ,"scandale"+      ,"scélérat"+      ,"scénario"+      ,"sceptre"+      ,"schéma"+      ,"science"+      ,"scinder"+      ,"score"+      ,"scrutin"+      ,"sculpter"+      ,"séance"+      ,"sécable"+      ,"sécher"+      ,"secouer"+      ,"sécréter"+      ,"sédatif"+      ,"séduire"+      ,"seigneur"+      ,"séjour"+      ,"sélectif"+      ,"semaine"+      ,"sembler"+      ,"semence"+      ,"séminal"+      ,"sénateur"+      ,"sensible"+      ,"sentence"+      ,"séparer"+      ,"séquence"+      ,"serein"+      ,"sergent"+      ,"sérieux"+      ,"serrure"+      ,"sérum"+      ,"service"+      ,"sésame"+      ,"sévir"+      ,"sevrage"+      ,"sextuple"+      ,"sidéral"+      ,"siècle"+      ,"siéger"+      ,"siffler"+      ,"sigle"+      ,"signal"+      ,"silence"+      ,"silicium"+      ,"simple"+      ,"sincère"+      ,"sinistre"+      ,"siphon"+      ,"sirop"+      ,"sismique"+      ,"situer"+      ,"skier"+      ,"social"+      ,"socle"+      ,"sodium"+      ,"soigneux"+      ,"soldat"+      ,"soleil"+      ,"solitude"+      ,"soluble"+      ,"sombre"+      ,"sommeil"+      ,"somnoler"+      ,"sonde"+      ,"songeur"+      ,"sonnette"+      ,"sonore"+      ,"sorcier"+      ,"sortir"+      ,"sosie"+      ,"sottise"+      ,"soucieux"+      ,"soudure"+      ,"souffle"+      ,"soulever"+      ,"soupape"+      ,"source"+      ,"soutirer"+      ,"souvenir"+      ,"spacieux"+      ,"spatial"+      ,"spécial"+      ,"sphère"+      ,"spiral"+      ,"stable"+      ,"station"+      ,"sternum"+      ,"stimulus"+      ,"stipuler"+      ,"strict"+      ,"studieux"+      ,"stupeur"+      ,"styliste"+      ,"sublime"+      ,"substrat"+      ,"subtil"+      ,"subvenir"+      ,"succès"+      ,"sucre"+      ,"suffixe"+      ,"suggérer"+      ,"suiveur"+      ,"sulfate"+      ,"superbe"+      ,"supplier"+      ,"surface"+      ,"suricate"+      ,"surmener"+      ,"surprise"+      ,"sursaut"+      ,"survie"+      ,"suspect"+      ,"syllabe"+      ,"symbole"+      ,"symétrie"+      ,"synapse"+      ,"syntaxe"+      ,"système"+      ,"tabac"+      ,"tablier"+      ,"tactile"+      ,"tailler"+      ,"talent"+      ,"talisman"+      ,"talonner"+      ,"tambour"+      ,"tamiser"+      ,"tangible"+      ,"tapis"+      ,"taquiner"+      ,"tarder"+      ,"tarif"+      ,"tartine"+      ,"tasse"+      ,"tatami"+      ,"tatouage"+      ,"taupe"+      ,"taureau"+      ,"taxer"+      ,"témoin"+      ,"temporel"+      ,"tenaille"+      ,"tendre"+      ,"teneur"+      ,"tenir"+      ,"tension"+      ,"terminer"+      ,"terne"+      ,"terrible"+      ,"tétine"+      ,"texte"+      ,"thème"+      ,"théorie"+      ,"thérapie"+      ,"thorax"+      ,"tibia"+      ,"tiède"+      ,"timide"+      ,"tirelire"+      ,"tiroir"+      ,"tissu"+      ,"titane"+      ,"titre"+      ,"tituber"+      ,"toboggan"+      ,"tolérant"+      ,"tomate"+      ,"tonique"+      ,"tonneau"+      ,"toponyme"+      ,"torche"+      ,"tordre"+      ,"tornade"+      ,"torpille"+      ,"torrent"+      ,"torse"+      ,"tortue"+      ,"totem"+      ,"toucher"+      ,"tournage"+      ,"tousser"+      ,"toxine"+      ,"traction"+      ,"trafic"+      ,"tragique"+      ,"trahir"+      ,"train"+      ,"trancher"+      ,"travail"+      ,"trèfle"+      ,"tremper"+      ,"trésor"+      ,"treuil"+      ,"triage"+      ,"tribunal"+      ,"tricoter"+      ,"trilogie"+      ,"triomphe"+      ,"tripler"+      ,"triturer"+      ,"trivial"+      ,"trombone"+      ,"tronc"+      ,"tropical"+      ,"troupeau"+      ,"tuile"+      ,"tulipe"+      ,"tumulte"+      ,"tunnel"+      ,"turbine"+      ,"tuteur"+      ,"tutoyer"+      ,"tuyau"+      ,"tympan"+      ,"typhon"+      ,"typique"+      ,"tyran"+      ,"ubuesque"+      ,"ultime"+      ,"ultrason"+      ,"unanime"+      ,"unifier"+      ,"union"+      ,"unique"+      ,"unitaire"+      ,"univers"+      ,"uranium"+      ,"urbain"+      ,"urticant"+      ,"usage"+      ,"usine"+      ,"usuel"+      ,"usure"+      ,"utile"+      ,"utopie"+      ,"vacarme"+      ,"vaccin"+      ,"vagabond"+      ,"vague"+      ,"vaillant"+      ,"vaincre"+      ,"vaisseau"+      ,"valable"+      ,"valise"+      ,"vallon"+      ,"valve"+      ,"vampire"+      ,"vanille"+      ,"vapeur"+      ,"varier"+      ,"vaseux"+      ,"vassal"+      ,"vaste"+      ,"vecteur"+      ,"vedette"+      ,"végétal"+      ,"véhicule"+      ,"veinard"+      ,"véloce"+      ,"vendredi"+      ,"vénérer"+      ,"venger"+      ,"venimeux"+      ,"ventouse"+      ,"verdure"+      ,"vérin"+      ,"vernir"+      ,"verrou"+      ,"verser"+      ,"vertu"+      ,"veston"+      ,"vétéran"+      ,"vétuste"+      ,"vexant"+      ,"vexer"+      ,"viaduc"+      ,"viande"+      ,"victoire"+      ,"vidange"+      ,"vidéo"+      ,"vignette"+      ,"vigueur"+      ,"vilain"+      ,"village"+      ,"vinaigre"+      ,"violon"+      ,"vipère"+      ,"virement"+      ,"virtuose"+      ,"virus"+      ,"visage"+      ,"viseur"+      ,"vision"+      ,"visqueux"+      ,"visuel"+      ,"vital"+      ,"vitesse"+      ,"viticole"+      ,"vitrine"+      ,"vivace"+      ,"vivipare"+      ,"vocation"+      ,"voguer"+      ,"voile"+      ,"voisin"+      ,"voiture"+      ,"volaille"+      ,"volcan"+      ,"voltiger"+      ,"volume"+      ,"vorace"+      ,"vortex"+      ,"voter"+      ,"vouloir"+      ,"voyage"+      ,"voyelle"+      ,"wagon"+      ,"xénon"+      ,"yacht"+      ,"zèbre"+      ,"zénith"+      ,"zeste"+      ,"zoologie"+      ]
+ lib/Cardano/Dictionary/Generic.hs view
@@ -0,0 +1,46 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}++{-# OPTIONS_HADDOCK hide #-}++-- |+-- Copyright: 2025 Intersect+-- License: Apache-2.0++module Cardano.Dictionary.Generic+    (+    -- * Helper+     toDictionary+    ) where++import Basement.Imports+    ( Bounded (..), Either (..), Maybe (..), error, flip, fromList, ($), (.) )+import Basement.Sized.Vect+    ( Vect (..), index, toVect )+import Basement.String+    ( String )+import Crypto.Encoding.BIP39.Dictionary+    ( Dictionary (..), DictionaryError (..), WordIndex, unWordIndex )+import Data.Maybe+    ( fromMaybe )++import qualified Data.List as L+++toDictionary :: [String] -> Dictionary+toDictionary wordList = Dictionary+    { dictionaryWordToIndex =+          \word -> case L.lookup word wordsWithIxs of+                     Just x  -> Right x+                     Nothing -> Left $ ErrInvalidDictionaryWord word+    , dictionaryTestWord = flip L.elem wordList+    , dictionaryIndexToWord = index words . unWordIndex+    , dictionaryWordSeparator = " "+    }+  where+    wordsWithIxs :: [(String, WordIndex)]+    wordsWithIxs = L.zip wordList [minBound..maxBound]++    words :: Vect 2048 String+    words = fromMaybe (error "invalid vector length") $ toVect $ fromList wordList
+ lib/Cardano/Dictionary/Italian.hs view
@@ -0,0 +1,2079 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}++{-# OPTIONS_HADDOCK hide #-}++-- |+-- Copyright: 2025 Intersect+-- License: Apache-2.0+--+-- Adopted from https://github.com/bloxbean/cardano-client-lib/blob/master/crypto/src/main/resources/mnemonic/wordlist/italian.txt++module Cardano.Dictionary.Italian+    (+    -- * dictionary value+     italian+    ) where++import Basement.String+    ( String )+import Cardano.Dictionary.Generic+    ( toDictionary )+import Crypto.Encoding.BIP39.Dictionary+    ( Dictionary )++italian :: Dictionary+italian = toDictionary wordList+  where+  wordList :: [String]+  wordList =+      ["abaco"+      ,"abbaglio"+      ,"abbinato"+      ,"abete"+      ,"abisso"+      ,"abolire"+      ,"abrasivo"+      ,"abrogato"+      ,"accadere"+      ,"accenno"+      ,"accusato"+      ,"acetone"+      ,"achille"+      ,"acido"+      ,"acqua"+      ,"acre"+      ,"acrilico"+      ,"acrobata"+      ,"acuto"+      ,"adagio"+      ,"addebito"+      ,"addome"+      ,"adeguato"+      ,"aderire"+      ,"adipe"+      ,"adottare"+      ,"adulare"+      ,"affabile"+      ,"affetto"+      ,"affisso"+      ,"affranto"+      ,"aforisma"+      ,"afoso"+      ,"africano"+      ,"agave"+      ,"agente"+      ,"agevole"+      ,"aggancio"+      ,"agire"+      ,"agitare"+      ,"agonismo"+      ,"agricolo"+      ,"agrumeto"+      ,"aguzzo"+      ,"alabarda"+      ,"alato"+      ,"albatro"+      ,"alberato"+      ,"albo"+      ,"albume"+      ,"alce"+      ,"alcolico"+      ,"alettone"+      ,"alfa"+      ,"algebra"+      ,"aliante"+      ,"alibi"+      ,"alimento"+      ,"allagato"+      ,"allegro"+      ,"allievo"+      ,"allodola"+      ,"allusivo"+      ,"almeno"+      ,"alogeno"+      ,"alpaca"+      ,"alpestre"+      ,"altalena"+      ,"alterno"+      ,"alticcio"+      ,"altrove"+      ,"alunno"+      ,"alveolo"+      ,"alzare"+      ,"amalgama"+      ,"amanita"+      ,"amarena"+      ,"ambito"+      ,"ambrato"+      ,"ameba"+      ,"america"+      ,"ametista"+      ,"amico"+      ,"ammasso"+      ,"ammenda"+      ,"ammirare"+      ,"ammonito"+      ,"amore"+      ,"ampio"+      ,"ampliare"+      ,"amuleto"+      ,"anacardo"+      ,"anagrafe"+      ,"analista"+      ,"anarchia"+      ,"anatra"+      ,"anca"+      ,"ancella"+      ,"ancora"+      ,"andare"+      ,"andrea"+      ,"anello"+      ,"angelo"+      ,"angolare"+      ,"angusto"+      ,"anima"+      ,"annegare"+      ,"annidato"+      ,"anno"+      ,"annuncio"+      ,"anonimo"+      ,"anticipo"+      ,"anzi"+      ,"apatico"+      ,"apertura"+      ,"apode"+      ,"apparire"+      ,"appetito"+      ,"appoggio"+      ,"approdo"+      ,"appunto"+      ,"aprile"+      ,"arabica"+      ,"arachide"+      ,"aragosta"+      ,"araldica"+      ,"arancio"+      ,"aratura"+      ,"arazzo"+      ,"arbitro"+      ,"archivio"+      ,"ardito"+      ,"arenile"+      ,"argento"+      ,"argine"+      ,"arguto"+      ,"aria"+      ,"armonia"+      ,"arnese"+      ,"arredato"+      ,"arringa"+      ,"arrosto"+      ,"arsenico"+      ,"arso"+      ,"artefice"+      ,"arzillo"+      ,"asciutto"+      ,"ascolto"+      ,"asepsi"+      ,"asettico"+      ,"asfalto"+      ,"asino"+      ,"asola"+      ,"aspirato"+      ,"aspro"+      ,"assaggio"+      ,"asse"+      ,"assoluto"+      ,"assurdo"+      ,"asta"+      ,"astenuto"+      ,"astice"+      ,"astratto"+      ,"atavico"+      ,"ateismo"+      ,"atomico"+      ,"atono"+      ,"attesa"+      ,"attivare"+      ,"attorno"+      ,"attrito"+      ,"attuale"+      ,"ausilio"+      ,"austria"+      ,"autista"+      ,"autonomo"+      ,"autunno"+      ,"avanzato"+      ,"avere"+      ,"avvenire"+      ,"avviso"+      ,"avvolgere"+      ,"azione"+      ,"azoto"+      ,"azzimo"+      ,"azzurro"+      ,"babele"+      ,"baccano"+      ,"bacino"+      ,"baco"+      ,"badessa"+      ,"badilata"+      ,"bagnato"+      ,"baita"+      ,"balcone"+      ,"baldo"+      ,"balena"+      ,"ballata"+      ,"balzano"+      ,"bambino"+      ,"bandire"+      ,"baraonda"+      ,"barbaro"+      ,"barca"+      ,"baritono"+      ,"barlume"+      ,"barocco"+      ,"basilico"+      ,"basso"+      ,"batosta"+      ,"battuto"+      ,"baule"+      ,"bava"+      ,"bavosa"+      ,"becco"+      ,"beffa"+      ,"belgio"+      ,"belva"+      ,"benda"+      ,"benevole"+      ,"benigno"+      ,"benzina"+      ,"bere"+      ,"berlina"+      ,"beta"+      ,"bibita"+      ,"bici"+      ,"bidone"+      ,"bifido"+      ,"biga"+      ,"bilancia"+      ,"bimbo"+      ,"binocolo"+      ,"biologo"+      ,"bipede"+      ,"bipolare"+      ,"birbante"+      ,"birra"+      ,"biscotto"+      ,"bisesto"+      ,"bisnonno"+      ,"bisonte"+      ,"bisturi"+      ,"bizzarro"+      ,"blando"+      ,"blatta"+      ,"bollito"+      ,"bonifico"+      ,"bordo"+      ,"bosco"+      ,"botanico"+      ,"bottino"+      ,"bozzolo"+      ,"braccio"+      ,"bradipo"+      ,"brama"+      ,"branca"+      ,"bravura"+      ,"bretella"+      ,"brevetto"+      ,"brezza"+      ,"briglia"+      ,"brillante"+      ,"brindare"+      ,"broccolo"+      ,"brodo"+      ,"bronzina"+      ,"brullo"+      ,"bruno"+      ,"bubbone"+      ,"buca"+      ,"budino"+      ,"buffone"+      ,"buio"+      ,"bulbo"+      ,"buono"+      ,"burlone"+      ,"burrasca"+      ,"bussola"+      ,"busta"+      ,"cadetto"+      ,"caduco"+      ,"calamaro"+      ,"calcolo"+      ,"calesse"+      ,"calibro"+      ,"calmo"+      ,"caloria"+      ,"cambusa"+      ,"camerata"+      ,"camicia"+      ,"cammino"+      ,"camola"+      ,"campale"+      ,"canapa"+      ,"candela"+      ,"cane"+      ,"canino"+      ,"canotto"+      ,"cantina"+      ,"capace"+      ,"capello"+      ,"capitolo"+      ,"capogiro"+      ,"cappero"+      ,"capra"+      ,"capsula"+      ,"carapace"+      ,"carcassa"+      ,"cardo"+      ,"carisma"+      ,"carovana"+      ,"carretto"+      ,"cartolina"+      ,"casaccio"+      ,"cascata"+      ,"caserma"+      ,"caso"+      ,"cassone"+      ,"castello"+      ,"casuale"+      ,"catasta"+      ,"catena"+      ,"catrame"+      ,"cauto"+      ,"cavillo"+      ,"cedibile"+      ,"cedrata"+      ,"cefalo"+      ,"celebre"+      ,"cellulare"+      ,"cena"+      ,"cenone"+      ,"centesimo"+      ,"ceramica"+      ,"cercare"+      ,"certo"+      ,"cerume"+      ,"cervello"+      ,"cesoia"+      ,"cespo"+      ,"ceto"+      ,"chela"+      ,"chiaro"+      ,"chicca"+      ,"chiedere"+      ,"chimera"+      ,"china"+      ,"chirurgo"+      ,"chitarra"+      ,"ciao"+      ,"ciclismo"+      ,"cifrare"+      ,"cigno"+      ,"cilindro"+      ,"ciottolo"+      ,"circa"+      ,"cirrosi"+      ,"citrico"+      ,"cittadino"+      ,"ciuffo"+      ,"civetta"+      ,"civile"+      ,"classico"+      ,"clinica"+      ,"cloro"+      ,"cocco"+      ,"codardo"+      ,"codice"+      ,"coerente"+      ,"cognome"+      ,"collare"+      ,"colmato"+      ,"colore"+      ,"colposo"+      ,"coltivato"+      ,"colza"+      ,"coma"+      ,"cometa"+      ,"commando"+      ,"comodo"+      ,"computer"+      ,"comune"+      ,"conciso"+      ,"condurre"+      ,"conferma"+      ,"congelare"+      ,"coniuge"+      ,"connesso"+      ,"conoscere"+      ,"consumo"+      ,"continuo"+      ,"convegno"+      ,"coperto"+      ,"copione"+      ,"coppia"+      ,"copricapo"+      ,"corazza"+      ,"cordata"+      ,"coricato"+      ,"cornice"+      ,"corolla"+      ,"corpo"+      ,"corredo"+      ,"corsia"+      ,"cortese"+      ,"cosmico"+      ,"costante"+      ,"cottura"+      ,"covato"+      ,"cratere"+      ,"cravatta"+      ,"creato"+      ,"credere"+      ,"cremoso"+      ,"crescita"+      ,"creta"+      ,"criceto"+      ,"crinale"+      ,"crisi"+      ,"critico"+      ,"croce"+      ,"cronaca"+      ,"crostata"+      ,"cruciale"+      ,"crusca"+      ,"cucire"+      ,"cuculo"+      ,"cugino"+      ,"cullato"+      ,"cupola"+      ,"curatore"+      ,"cursore"+      ,"curvo"+      ,"cuscino"+      ,"custode"+      ,"dado"+      ,"daino"+      ,"dalmata"+      ,"damerino"+      ,"daniela"+      ,"dannoso"+      ,"danzare"+      ,"datato"+      ,"davanti"+      ,"davvero"+      ,"debutto"+      ,"decennio"+      ,"deciso"+      ,"declino"+      ,"decollo"+      ,"decreto"+      ,"dedicato"+      ,"definito"+      ,"deforme"+      ,"degno"+      ,"delegare"+      ,"delfino"+      ,"delirio"+      ,"delta"+      ,"demenza"+      ,"denotato"+      ,"dentro"+      ,"deposito"+      ,"derapata"+      ,"derivare"+      ,"deroga"+      ,"descritto"+      ,"deserto"+      ,"desiderio"+      ,"desumere"+      ,"detersivo"+      ,"devoto"+      ,"diametro"+      ,"dicembre"+      ,"diedro"+      ,"difeso"+      ,"diffuso"+      ,"digerire"+      ,"digitale"+      ,"diluvio"+      ,"dinamico"+      ,"dinnanzi"+      ,"dipinto"+      ,"diploma"+      ,"dipolo"+      ,"diradare"+      ,"dire"+      ,"dirotto"+      ,"dirupo"+      ,"disagio"+      ,"discreto"+      ,"disfare"+      ,"disgelo"+      ,"disposto"+      ,"distanza"+      ,"disumano"+      ,"dito"+      ,"divano"+      ,"divelto"+      ,"dividere"+      ,"divorato"+      ,"doblone"+      ,"docente"+      ,"doganale"+      ,"dogma"+      ,"dolce"+      ,"domato"+      ,"domenica"+      ,"dominare"+      ,"dondolo"+      ,"dono"+      ,"dormire"+      ,"dote"+      ,"dottore"+      ,"dovuto"+      ,"dozzina"+      ,"drago"+      ,"druido"+      ,"dubbio"+      ,"dubitare"+      ,"ducale"+      ,"duna"+      ,"duomo"+      ,"duplice"+      ,"duraturo"+      ,"ebano"+      ,"eccesso"+      ,"ecco"+      ,"eclissi"+      ,"economia"+      ,"edera"+      ,"edicola"+      ,"edile"+      ,"editoria"+      ,"educare"+      ,"egemonia"+      ,"egli"+      ,"egoismo"+      ,"egregio"+      ,"elaborato"+      ,"elargire"+      ,"elegante"+      ,"elencato"+      ,"eletto"+      ,"elevare"+      ,"elfico"+      ,"elica"+      ,"elmo"+      ,"elsa"+      ,"eluso"+      ,"emanato"+      ,"emblema"+      ,"emesso"+      ,"emiro"+      ,"emotivo"+      ,"emozione"+      ,"empirico"+      ,"emulo"+      ,"endemico"+      ,"enduro"+      ,"energia"+      ,"enfasi"+      ,"enoteca"+      ,"entrare"+      ,"enzima"+      ,"epatite"+      ,"epilogo"+      ,"episodio"+      ,"epocale"+      ,"eppure"+      ,"equatore"+      ,"erario"+      ,"erba"+      ,"erboso"+      ,"erede"+      ,"eremita"+      ,"erigere"+      ,"ermetico"+      ,"eroe"+      ,"erosivo"+      ,"errante"+      ,"esagono"+      ,"esame"+      ,"esanime"+      ,"esaudire"+      ,"esca"+      ,"esempio"+      ,"esercito"+      ,"esibito"+      ,"esigente"+      ,"esistere"+      ,"esito"+      ,"esofago"+      ,"esortato"+      ,"esoso"+      ,"espanso"+      ,"espresso"+      ,"essenza"+      ,"esso"+      ,"esteso"+      ,"estimare"+      ,"estonia"+      ,"estroso"+      ,"esultare"+      ,"etilico"+      ,"etnico"+      ,"etrusco"+      ,"etto"+      ,"euclideo"+      ,"europa"+      ,"evaso"+      ,"evidenza"+      ,"evitato"+      ,"evoluto"+      ,"evviva"+      ,"fabbrica"+      ,"faccenda"+      ,"fachiro"+      ,"falco"+      ,"famiglia"+      ,"fanale"+      ,"fanfara"+      ,"fango"+      ,"fantasma"+      ,"fare"+      ,"farfalla"+      ,"farinoso"+      ,"farmaco"+      ,"fascia"+      ,"fastoso"+      ,"fasullo"+      ,"faticare"+      ,"fato"+      ,"favoloso"+      ,"febbre"+      ,"fecola"+      ,"fede"+      ,"fegato"+      ,"felpa"+      ,"feltro"+      ,"femmina"+      ,"fendere"+      ,"fenomeno"+      ,"fermento"+      ,"ferro"+      ,"fertile"+      ,"fessura"+      ,"festivo"+      ,"fetta"+      ,"feudo"+      ,"fiaba"+      ,"fiducia"+      ,"fifa"+      ,"figurato"+      ,"filo"+      ,"finanza"+      ,"finestra"+      ,"finire"+      ,"fiore"+      ,"fiscale"+      ,"fisico"+      ,"fiume"+      ,"flacone"+      ,"flamenco"+      ,"flebo"+      ,"flemma"+      ,"florido"+      ,"fluente"+      ,"fluoro"+      ,"fobico"+      ,"focaccia"+      ,"focoso"+      ,"foderato"+      ,"foglio"+      ,"folata"+      ,"folclore"+      ,"folgore"+      ,"fondente"+      ,"fonetico"+      ,"fonia"+      ,"fontana"+      ,"forbito"+      ,"forchetta"+      ,"foresta"+      ,"formica"+      ,"fornaio"+      ,"foro"+      ,"fortezza"+      ,"forzare"+      ,"fosfato"+      ,"fosso"+      ,"fracasso"+      ,"frana"+      ,"frassino"+      ,"fratello"+      ,"freccetta"+      ,"frenata"+      ,"fresco"+      ,"frigo"+      ,"frollino"+      ,"fronde"+      ,"frugale"+      ,"frutta"+      ,"fucilata"+      ,"fucsia"+      ,"fuggente"+      ,"fulmine"+      ,"fulvo"+      ,"fumante"+      ,"fumetto"+      ,"fumoso"+      ,"fune"+      ,"funzione"+      ,"fuoco"+      ,"furbo"+      ,"furgone"+      ,"furore"+      ,"fuso"+      ,"futile"+      ,"gabbiano"+      ,"gaffe"+      ,"galateo"+      ,"gallina"+      ,"galoppo"+      ,"gambero"+      ,"gamma"+      ,"garanzia"+      ,"garbo"+      ,"garofano"+      ,"garzone"+      ,"gasdotto"+      ,"gasolio"+      ,"gastrico"+      ,"gatto"+      ,"gaudio"+      ,"gazebo"+      ,"gazzella"+      ,"geco"+      ,"gelatina"+      ,"gelso"+      ,"gemello"+      ,"gemmato"+      ,"gene"+      ,"genitore"+      ,"gennaio"+      ,"genotipo"+      ,"gergo"+      ,"ghepardo"+      ,"ghiaccio"+      ,"ghisa"+      ,"giallo"+      ,"gilda"+      ,"ginepro"+      ,"giocare"+      ,"gioiello"+      ,"giorno"+      ,"giove"+      ,"girato"+      ,"girone"+      ,"gittata"+      ,"giudizio"+      ,"giurato"+      ,"giusto"+      ,"globulo"+      ,"glutine"+      ,"gnomo"+      ,"gobba"+      ,"golf"+      ,"gomito"+      ,"gommone"+      ,"gonfio"+      ,"gonna"+      ,"governo"+      ,"gracile"+      ,"grado"+      ,"grafico"+      ,"grammo"+      ,"grande"+      ,"grattare"+      ,"gravoso"+      ,"grazia"+      ,"greca"+      ,"gregge"+      ,"grifone"+      ,"grigio"+      ,"grinza"+      ,"grotta"+      ,"gruppo"+      ,"guadagno"+      ,"guaio"+      ,"guanto"+      ,"guardare"+      ,"gufo"+      ,"guidare"+      ,"ibernato"+      ,"icona"+      ,"identico"+      ,"idillio"+      ,"idolo"+      ,"idra"+      ,"idrico"+      ,"idrogeno"+      ,"igiene"+      ,"ignaro"+      ,"ignorato"+      ,"ilare"+      ,"illeso"+      ,"illogico"+      ,"illudere"+      ,"imballo"+      ,"imbevuto"+      ,"imbocco"+      ,"imbuto"+      ,"immane"+      ,"immerso"+      ,"immolato"+      ,"impacco"+      ,"impeto"+      ,"impiego"+      ,"importo"+      ,"impronta"+      ,"inalare"+      ,"inarcare"+      ,"inattivo"+      ,"incanto"+      ,"incendio"+      ,"inchino"+      ,"incisivo"+      ,"incluso"+      ,"incontro"+      ,"incrocio"+      ,"incubo"+      ,"indagine"+      ,"india"+      ,"indole"+      ,"inedito"+      ,"infatti"+      ,"infilare"+      ,"inflitto"+      ,"ingaggio"+      ,"ingegno"+      ,"inglese"+      ,"ingordo"+      ,"ingrosso"+      ,"innesco"+      ,"inodore"+      ,"inoltrare"+      ,"inondato"+      ,"insano"+      ,"insetto"+      ,"insieme"+      ,"insonnia"+      ,"insulina"+      ,"intasato"+      ,"intero"+      ,"intonaco"+      ,"intuito"+      ,"inumidire"+      ,"invalido"+      ,"invece"+      ,"invito"+      ,"iperbole"+      ,"ipnotico"+      ,"ipotesi"+      ,"ippica"+      ,"iride"+      ,"irlanda"+      ,"ironico"+      ,"irrigato"+      ,"irrorare"+      ,"isolato"+      ,"isotopo"+      ,"isterico"+      ,"istituto"+      ,"istrice"+      ,"italia"+      ,"iterare"+      ,"labbro"+      ,"labirinto"+      ,"lacca"+      ,"lacerato"+      ,"lacrima"+      ,"lacuna"+      ,"laddove"+      ,"lago"+      ,"lampo"+      ,"lancetta"+      ,"lanterna"+      ,"lardoso"+      ,"larga"+      ,"laringe"+      ,"lastra"+      ,"latenza"+      ,"latino"+      ,"lattuga"+      ,"lavagna"+      ,"lavoro"+      ,"legale"+      ,"leggero"+      ,"lembo"+      ,"lentezza"+      ,"lenza"+      ,"leone"+      ,"lepre"+      ,"lesivo"+      ,"lessato"+      ,"lesto"+      ,"letterale"+      ,"leva"+      ,"levigato"+      ,"libero"+      ,"lido"+      ,"lievito"+      ,"lilla"+      ,"limatura"+      ,"limitare"+      ,"limpido"+      ,"lineare"+      ,"lingua"+      ,"liquido"+      ,"lira"+      ,"lirica"+      ,"lisca"+      ,"lite"+      ,"litigio"+      ,"livrea"+      ,"locanda"+      ,"lode"+      ,"logica"+      ,"lombare"+      ,"londra"+      ,"longevo"+      ,"loquace"+      ,"lorenzo"+      ,"loto"+      ,"lotteria"+      ,"luce"+      ,"lucidato"+      ,"lumaca"+      ,"luminoso"+      ,"lungo"+      ,"lupo"+      ,"luppolo"+      ,"lusinga"+      ,"lusso"+      ,"lutto"+      ,"macabro"+      ,"macchina"+      ,"macero"+      ,"macinato"+      ,"madama"+      ,"magico"+      ,"maglia"+      ,"magnete"+      ,"magro"+      ,"maiolica"+      ,"malafede"+      ,"malgrado"+      ,"malinteso"+      ,"malsano"+      ,"malto"+      ,"malumore"+      ,"mana"+      ,"mancia"+      ,"mandorla"+      ,"mangiare"+      ,"manifesto"+      ,"mannaro"+      ,"manovra"+      ,"mansarda"+      ,"mantide"+      ,"manubrio"+      ,"mappa"+      ,"maratona"+      ,"marcire"+      ,"maretta"+      ,"marmo"+      ,"marsupio"+      ,"maschera"+      ,"massaia"+      ,"mastino"+      ,"materasso"+      ,"matricola"+      ,"mattone"+      ,"maturo"+      ,"mazurca"+      ,"meandro"+      ,"meccanico"+      ,"mecenate"+      ,"medesimo"+      ,"meditare"+      ,"mega"+      ,"melassa"+      ,"melis"+      ,"melodia"+      ,"meninge"+      ,"meno"+      ,"mensola"+      ,"mercurio"+      ,"merenda"+      ,"merlo"+      ,"meschino"+      ,"mese"+      ,"messere"+      ,"mestolo"+      ,"metallo"+      ,"metodo"+      ,"mettere"+      ,"miagolare"+      ,"mica"+      ,"micelio"+      ,"michele"+      ,"microbo"+      ,"midollo"+      ,"miele"+      ,"migliore"+      ,"milano"+      ,"milite"+      ,"mimosa"+      ,"minerale"+      ,"mini"+      ,"minore"+      ,"mirino"+      ,"mirtillo"+      ,"miscela"+      ,"missiva"+      ,"misto"+      ,"misurare"+      ,"mitezza"+      ,"mitigare"+      ,"mitra"+      ,"mittente"+      ,"mnemonico"+      ,"modello"+      ,"modifica"+      ,"modulo"+      ,"mogano"+      ,"mogio"+      ,"mole"+      ,"molosso"+      ,"monastero"+      ,"monco"+      ,"mondina"+      ,"monetario"+      ,"monile"+      ,"monotono"+      ,"monsone"+      ,"montato"+      ,"monviso"+      ,"mora"+      ,"mordere"+      ,"morsicato"+      ,"mostro"+      ,"motivato"+      ,"motosega"+      ,"motto"+      ,"movenza"+      ,"movimento"+      ,"mozzo"+      ,"mucca"+      ,"mucosa"+      ,"muffa"+      ,"mughetto"+      ,"mugnaio"+      ,"mulatto"+      ,"mulinello"+      ,"multiplo"+      ,"mummia"+      ,"munto"+      ,"muovere"+      ,"murale"+      ,"musa"+      ,"muscolo"+      ,"musica"+      ,"mutevole"+      ,"muto"+      ,"nababbo"+      ,"nafta"+      ,"nanometro"+      ,"narciso"+      ,"narice"+      ,"narrato"+      ,"nascere"+      ,"nastrare"+      ,"naturale"+      ,"nautica"+      ,"naviglio"+      ,"nebulosa"+      ,"necrosi"+      ,"negativo"+      ,"negozio"+      ,"nemmeno"+      ,"neofita"+      ,"neretto"+      ,"nervo"+      ,"nessuno"+      ,"nettuno"+      ,"neutrale"+      ,"neve"+      ,"nevrotico"+      ,"nicchia"+      ,"ninfa"+      ,"nitido"+      ,"nobile"+      ,"nocivo"+      ,"nodo"+      ,"nome"+      ,"nomina"+      ,"nordico"+      ,"normale"+      ,"norvegese"+      ,"nostrano"+      ,"notare"+      ,"notizia"+      ,"notturno"+      ,"novella"+      ,"nucleo"+      ,"nulla"+      ,"numero"+      ,"nuovo"+      ,"nutrire"+      ,"nuvola"+      ,"nuziale"+      ,"oasi"+      ,"obbedire"+      ,"obbligo"+      ,"obelisco"+      ,"oblio"+      ,"obolo"+      ,"obsoleto"+      ,"occasione"+      ,"occhio"+      ,"occidente"+      ,"occorrere"+      ,"occultare"+      ,"ocra"+      ,"oculato"+      ,"odierno"+      ,"odorare"+      ,"offerta"+      ,"offrire"+      ,"offuscato"+      ,"oggetto"+      ,"oggi"+      ,"ognuno"+      ,"olandese"+      ,"olfatto"+      ,"oliato"+      ,"oliva"+      ,"ologramma"+      ,"oltre"+      ,"omaggio"+      ,"ombelico"+      ,"ombra"+      ,"omega"+      ,"omissione"+      ,"ondoso"+      ,"onere"+      ,"onice"+      ,"onnivoro"+      ,"onorevole"+      ,"onta"+      ,"operato"+      ,"opinione"+      ,"opposto"+      ,"oracolo"+      ,"orafo"+      ,"ordine"+      ,"orecchino"+      ,"orefice"+      ,"orfano"+      ,"organico"+      ,"origine"+      ,"orizzonte"+      ,"orma"+      ,"ormeggio"+      ,"ornativo"+      ,"orologio"+      ,"orrendo"+      ,"orribile"+      ,"ortensia"+      ,"ortica"+      ,"orzata"+      ,"orzo"+      ,"osare"+      ,"oscurare"+      ,"osmosi"+      ,"ospedale"+      ,"ospite"+      ,"ossa"+      ,"ossidare"+      ,"ostacolo"+      ,"oste"+      ,"otite"+      ,"otre"+      ,"ottagono"+      ,"ottimo"+      ,"ottobre"+      ,"ovale"+      ,"ovest"+      ,"ovino"+      ,"oviparo"+      ,"ovocito"+      ,"ovunque"+      ,"ovviare"+      ,"ozio"+      ,"pacchetto"+      ,"pace"+      ,"pacifico"+      ,"padella"+      ,"padrone"+      ,"paese"+      ,"paga"+      ,"pagina"+      ,"palazzina"+      ,"palesare"+      ,"pallido"+      ,"palo"+      ,"palude"+      ,"pandoro"+      ,"pannello"+      ,"paolo"+      ,"paonazzo"+      ,"paprica"+      ,"parabola"+      ,"parcella"+      ,"parere"+      ,"pargolo"+      ,"pari"+      ,"parlato"+      ,"parola"+      ,"partire"+      ,"parvenza"+      ,"parziale"+      ,"passivo"+      ,"pasticca"+      ,"patacca"+      ,"patologia"+      ,"pattume"+      ,"pavone"+      ,"peccato"+      ,"pedalare"+      ,"pedonale"+      ,"peggio"+      ,"peloso"+      ,"penare"+      ,"pendice"+      ,"penisola"+      ,"pennuto"+      ,"penombra"+      ,"pensare"+      ,"pentola"+      ,"pepe"+      ,"pepita"+      ,"perbene"+      ,"percorso"+      ,"perdonato"+      ,"perforare"+      ,"pergamena"+      ,"periodo"+      ,"permesso"+      ,"perno"+      ,"perplesso"+      ,"persuaso"+      ,"pertugio"+      ,"pervaso"+      ,"pesatore"+      ,"pesista"+      ,"peso"+      ,"pestifero"+      ,"petalo"+      ,"pettine"+      ,"petulante"+      ,"pezzo"+      ,"piacere"+      ,"pianta"+      ,"piattino"+      ,"piccino"+      ,"picozza"+      ,"piega"+      ,"pietra"+      ,"piffero"+      ,"pigiama"+      ,"pigolio"+      ,"pigro"+      ,"pila"+      ,"pilifero"+      ,"pillola"+      ,"pilota"+      ,"pimpante"+      ,"pineta"+      ,"pinna"+      ,"pinolo"+      ,"pioggia"+      ,"piombo"+      ,"piramide"+      ,"piretico"+      ,"pirite"+      ,"pirolisi"+      ,"pitone"+      ,"pizzico"+      ,"placebo"+      ,"planare"+      ,"plasma"+      ,"platano"+      ,"plenario"+      ,"pochezza"+      ,"poderoso"+      ,"podismo"+      ,"poesia"+      ,"poggiare"+      ,"polenta"+      ,"poligono"+      ,"pollice"+      ,"polmonite"+      ,"polpetta"+      ,"polso"+      ,"poltrona"+      ,"polvere"+      ,"pomice"+      ,"pomodoro"+      ,"ponte"+      ,"popoloso"+      ,"porfido"+      ,"poroso"+      ,"porpora"+      ,"porre"+      ,"portata"+      ,"posa"+      ,"positivo"+      ,"possesso"+      ,"postulato"+      ,"potassio"+      ,"potere"+      ,"pranzo"+      ,"prassi"+      ,"pratica"+      ,"precluso"+      ,"predica"+      ,"prefisso"+      ,"pregiato"+      ,"prelievo"+      ,"premere"+      ,"prenotare"+      ,"preparato"+      ,"presenza"+      ,"pretesto"+      ,"prevalso"+      ,"prima"+      ,"principe"+      ,"privato"+      ,"problema"+      ,"procura"+      ,"produrre"+      ,"profumo"+      ,"progetto"+      ,"prolunga"+      ,"promessa"+      ,"pronome"+      ,"proposta"+      ,"proroga"+      ,"proteso"+      ,"prova"+      ,"prudente"+      ,"prugna"+      ,"prurito"+      ,"psiche"+      ,"pubblico"+      ,"pudica"+      ,"pugilato"+      ,"pugno"+      ,"pulce"+      ,"pulito"+      ,"pulsante"+      ,"puntare"+      ,"pupazzo"+      ,"pupilla"+      ,"puro"+      ,"quadro"+      ,"qualcosa"+      ,"quasi"+      ,"querela"+      ,"quota"+      ,"raccolto"+      ,"raddoppio"+      ,"radicale"+      ,"radunato"+      ,"raffica"+      ,"ragazzo"+      ,"ragione"+      ,"ragno"+      ,"ramarro"+      ,"ramingo"+      ,"ramo"+      ,"randagio"+      ,"rantolare"+      ,"rapato"+      ,"rapina"+      ,"rappreso"+      ,"rasatura"+      ,"raschiato"+      ,"rasente"+      ,"rassegna"+      ,"rastrello"+      ,"rata"+      ,"ravveduto"+      ,"reale"+      ,"recepire"+      ,"recinto"+      ,"recluta"+      ,"recondito"+      ,"recupero"+      ,"reddito"+      ,"redimere"+      ,"regalato"+      ,"registro"+      ,"regola"+      ,"regresso"+      ,"relazione"+      ,"remare"+      ,"remoto"+      ,"renna"+      ,"replica"+      ,"reprimere"+      ,"reputare"+      ,"resa"+      ,"residente"+      ,"responso"+      ,"restauro"+      ,"rete"+      ,"retina"+      ,"retorica"+      ,"rettifica"+      ,"revocato"+      ,"riassunto"+      ,"ribadire"+      ,"ribelle"+      ,"ribrezzo"+      ,"ricarica"+      ,"ricco"+      ,"ricevere"+      ,"riciclato"+      ,"ricordo"+      ,"ricreduto"+      ,"ridicolo"+      ,"ridurre"+      ,"rifasare"+      ,"riflesso"+      ,"riforma"+      ,"rifugio"+      ,"rigare"+      ,"rigettato"+      ,"righello"+      ,"rilassato"+      ,"rilevato"+      ,"rimanere"+      ,"rimbalzo"+      ,"rimedio"+      ,"rimorchio"+      ,"rinascita"+      ,"rincaro"+      ,"rinforzo"+      ,"rinnovo"+      ,"rinomato"+      ,"rinsavito"+      ,"rintocco"+      ,"rinuncia"+      ,"rinvenire"+      ,"riparato"+      ,"ripetuto"+      ,"ripieno"+      ,"riportare"+      ,"ripresa"+      ,"ripulire"+      ,"risata"+      ,"rischio"+      ,"riserva"+      ,"risibile"+      ,"riso"+      ,"rispetto"+      ,"ristoro"+      ,"risultato"+      ,"risvolto"+      ,"ritardo"+      ,"ritegno"+      ,"ritmico"+      ,"ritrovo"+      ,"riunione"+      ,"riva"+      ,"riverso"+      ,"rivincita"+      ,"rivolto"+      ,"rizoma"+      ,"roba"+      ,"robotico"+      ,"robusto"+      ,"roccia"+      ,"roco"+      ,"rodaggio"+      ,"rodere"+      ,"roditore"+      ,"rogito"+      ,"rollio"+      ,"romantico"+      ,"rompere"+      ,"ronzio"+      ,"rosolare"+      ,"rospo"+      ,"rotante"+      ,"rotondo"+      ,"rotula"+      ,"rovescio"+      ,"rubizzo"+      ,"rubrica"+      ,"ruga"+      ,"rullino"+      ,"rumine"+      ,"rumoroso"+      ,"ruolo"+      ,"rupe"+      ,"russare"+      ,"rustico"+      ,"sabato"+      ,"sabbiare"+      ,"sabotato"+      ,"sagoma"+      ,"salasso"+      ,"saldatura"+      ,"salgemma"+      ,"salivare"+      ,"salmone"+      ,"salone"+      ,"saltare"+      ,"saluto"+      ,"salvo"+      ,"sapere"+      ,"sapido"+      ,"saporito"+      ,"saraceno"+      ,"sarcasmo"+      ,"sarto"+      ,"sassoso"+      ,"satellite"+      ,"satira"+      ,"satollo"+      ,"saturno"+      ,"savana"+      ,"savio"+      ,"saziato"+      ,"sbadiglio"+      ,"sbalzo"+      ,"sbancato"+      ,"sbarra"+      ,"sbattere"+      ,"sbavare"+      ,"sbendare"+      ,"sbirciare"+      ,"sbloccato"+      ,"sbocciato"+      ,"sbrinare"+      ,"sbruffone"+      ,"sbuffare"+      ,"scabroso"+      ,"scadenza"+      ,"scala"+      ,"scambiare"+      ,"scandalo"+      ,"scapola"+      ,"scarso"+      ,"scatenare"+      ,"scavato"+      ,"scelto"+      ,"scenico"+      ,"scettro"+      ,"scheda"+      ,"schiena"+      ,"sciarpa"+      ,"scienza"+      ,"scindere"+      ,"scippo"+      ,"sciroppo"+      ,"scivolo"+      ,"sclerare"+      ,"scodella"+      ,"scolpito"+      ,"scomparto"+      ,"sconforto"+      ,"scoprire"+      ,"scorta"+      ,"scossone"+      ,"scozzese"+      ,"scriba"+      ,"scrollare"+      ,"scrutinio"+      ,"scuderia"+      ,"scultore"+      ,"scuola"+      ,"scuro"+      ,"scusare"+      ,"sdebitare"+      ,"sdoganare"+      ,"seccatura"+      ,"secondo"+      ,"sedano"+      ,"seggiola"+      ,"segnalato"+      ,"segregato"+      ,"seguito"+      ,"selciato"+      ,"selettivo"+      ,"sella"+      ,"selvaggio"+      ,"semaforo"+      ,"sembrare"+      ,"seme"+      ,"seminato"+      ,"sempre"+      ,"senso"+      ,"sentire"+      ,"sepolto"+      ,"sequenza"+      ,"serata"+      ,"serbato"+      ,"sereno"+      ,"serio"+      ,"serpente"+      ,"serraglio"+      ,"servire"+      ,"sestina"+      ,"setola"+      ,"settimana"+      ,"sfacelo"+      ,"sfaldare"+      ,"sfamato"+      ,"sfarzoso"+      ,"sfaticato"+      ,"sfera"+      ,"sfida"+      ,"sfilato"+      ,"sfinge"+      ,"sfocato"+      ,"sfoderare"+      ,"sfogo"+      ,"sfoltire"+      ,"sforzato"+      ,"sfratto"+      ,"sfruttato"+      ,"sfuggito"+      ,"sfumare"+      ,"sfuso"+      ,"sgabello"+      ,"sgarbato"+      ,"sgonfiare"+      ,"sgorbio"+      ,"sgrassato"+      ,"sguardo"+      ,"sibilo"+      ,"siccome"+      ,"sierra"+      ,"sigla"+      ,"signore"+      ,"silenzio"+      ,"sillaba"+      ,"simbolo"+      ,"simpatico"+      ,"simulato"+      ,"sinfonia"+      ,"singolo"+      ,"sinistro"+      ,"sino"+      ,"sintesi"+      ,"sinusoide"+      ,"sipario"+      ,"sisma"+      ,"sistole"+      ,"situato"+      ,"slitta"+      ,"slogatura"+      ,"sloveno"+      ,"smarrito"+      ,"smemorato"+      ,"smentito"+      ,"smeraldo"+      ,"smilzo"+      ,"smontare"+      ,"smottato"+      ,"smussato"+      ,"snellire"+      ,"snervato"+      ,"snodo"+      ,"sobbalzo"+      ,"sobrio"+      ,"soccorso"+      ,"sociale"+      ,"sodale"+      ,"soffitto"+      ,"sogno"+      ,"soldato"+      ,"solenne"+      ,"solido"+      ,"sollazzo"+      ,"solo"+      ,"solubile"+      ,"solvente"+      ,"somatico"+      ,"somma"+      ,"sonda"+      ,"sonetto"+      ,"sonnifero"+      ,"sopire"+      ,"soppeso"+      ,"sopra"+      ,"sorgere"+      ,"sorpasso"+      ,"sorriso"+      ,"sorso"+      ,"sorteggio"+      ,"sorvolato"+      ,"sospiro"+      ,"sosta"+      ,"sottile"+      ,"spada"+      ,"spalla"+      ,"spargere"+      ,"spatola"+      ,"spavento"+      ,"spazzola"+      ,"specie"+      ,"spedire"+      ,"spegnere"+      ,"spelatura"+      ,"speranza"+      ,"spessore"+      ,"spettrale"+      ,"spezzato"+      ,"spia"+      ,"spigoloso"+      ,"spillato"+      ,"spinoso"+      ,"spirale"+      ,"splendido"+      ,"sportivo"+      ,"sposo"+      ,"spranga"+      ,"sprecare"+      ,"spronato"+      ,"spruzzo"+      ,"spuntino"+      ,"squillo"+      ,"sradicare"+      ,"srotolato"+      ,"stabile"+      ,"stacco"+      ,"staffa"+      ,"stagnare"+      ,"stampato"+      ,"stantio"+      ,"starnuto"+      ,"stasera"+      ,"statuto"+      ,"stelo"+      ,"steppa"+      ,"sterzo"+      ,"stiletto"+      ,"stima"+      ,"stirpe"+      ,"stivale"+      ,"stizzoso"+      ,"stonato"+      ,"storico"+      ,"strappo"+      ,"stregato"+      ,"stridulo"+      ,"strozzare"+      ,"strutto"+      ,"stuccare"+      ,"stufo"+      ,"stupendo"+      ,"subentro"+      ,"succoso"+      ,"sudore"+      ,"suggerito"+      ,"sugo"+      ,"sultano"+      ,"suonare"+      ,"superbo"+      ,"supporto"+      ,"surgelato"+      ,"surrogato"+      ,"sussurro"+      ,"sutura"+      ,"svagare"+      ,"svedese"+      ,"sveglio"+      ,"svelare"+      ,"svenuto"+      ,"svezia"+      ,"sviluppo"+      ,"svista"+      ,"svizzera"+      ,"svolta"+      ,"svuotare"+      ,"tabacco"+      ,"tabulato"+      ,"tacciare"+      ,"taciturno"+      ,"tale"+      ,"talismano"+      ,"tampone"+      ,"tannino"+      ,"tara"+      ,"tardivo"+      ,"targato"+      ,"tariffa"+      ,"tarpare"+      ,"tartaruga"+      ,"tasto"+      ,"tattico"+      ,"taverna"+      ,"tavolata"+      ,"tazza"+      ,"teca"+      ,"tecnico"+      ,"telefono"+      ,"temerario"+      ,"tempo"+      ,"temuto"+      ,"tendone"+      ,"tenero"+      ,"tensione"+      ,"tentacolo"+      ,"teorema"+      ,"terme"+      ,"terrazzo"+      ,"terzetto"+      ,"tesi"+      ,"tesserato"+      ,"testato"+      ,"tetro"+      ,"tettoia"+      ,"tifare"+      ,"tigella"+      ,"timbro"+      ,"tinto"+      ,"tipico"+      ,"tipografo"+      ,"tiraggio"+      ,"tiro"+      ,"titanio"+      ,"titolo"+      ,"titubante"+      ,"tizio"+      ,"tizzone"+      ,"toccare"+      ,"tollerare"+      ,"tolto"+      ,"tombola"+      ,"tomo"+      ,"tonfo"+      ,"tonsilla"+      ,"topazio"+      ,"topologia"+      ,"toppa"+      ,"torba"+      ,"tornare"+      ,"torrone"+      ,"tortora"+      ,"toscano"+      ,"tossire"+      ,"tostatura"+      ,"totano"+      ,"trabocco"+      ,"trachea"+      ,"trafila"+      ,"tragedia"+      ,"tralcio"+      ,"tramonto"+      ,"transito"+      ,"trapano"+      ,"trarre"+      ,"trasloco"+      ,"trattato"+      ,"trave"+      ,"treccia"+      ,"tremolio"+      ,"trespolo"+      ,"tributo"+      ,"tricheco"+      ,"trifoglio"+      ,"trillo"+      ,"trincea"+      ,"trio"+      ,"tristezza"+      ,"triturato"+      ,"trivella"+      ,"tromba"+      ,"trono"+      ,"troppo"+      ,"trottola"+      ,"trovare"+      ,"truccato"+      ,"tubatura"+      ,"tuffato"+      ,"tulipano"+      ,"tumulto"+      ,"tunisia"+      ,"turbare"+      ,"turchino"+      ,"tuta"+      ,"tutela"+      ,"ubicato"+      ,"uccello"+      ,"uccisore"+      ,"udire"+      ,"uditivo"+      ,"uffa"+      ,"ufficio"+      ,"uguale"+      ,"ulisse"+      ,"ultimato"+      ,"umano"+      ,"umile"+      ,"umorismo"+      ,"uncinetto"+      ,"ungere"+      ,"ungherese"+      ,"unicorno"+      ,"unificato"+      ,"unisono"+      ,"unitario"+      ,"unte"+      ,"uovo"+      ,"upupa"+      ,"uragano"+      ,"urgenza"+      ,"urlo"+      ,"usanza"+      ,"usato"+      ,"uscito"+      ,"usignolo"+      ,"usuraio"+      ,"utensile"+      ,"utilizzo"+      ,"utopia"+      ,"vacante"+      ,"vaccinato"+      ,"vagabondo"+      ,"vagliato"+      ,"valanga"+      ,"valgo"+      ,"valico"+      ,"valletta"+      ,"valoroso"+      ,"valutare"+      ,"valvola"+      ,"vampata"+      ,"vangare"+      ,"vanitoso"+      ,"vano"+      ,"vantaggio"+      ,"vanvera"+      ,"vapore"+      ,"varano"+      ,"varcato"+      ,"variante"+      ,"vasca"+      ,"vedetta"+      ,"vedova"+      ,"veduto"+      ,"vegetale"+      ,"veicolo"+      ,"velcro"+      ,"velina"+      ,"velluto"+      ,"veloce"+      ,"venato"+      ,"vendemmia"+      ,"vento"+      ,"verace"+      ,"verbale"+      ,"vergogna"+      ,"verifica"+      ,"vero"+      ,"verruca"+      ,"verticale"+      ,"vescica"+      ,"vessillo"+      ,"vestale"+      ,"veterano"+      ,"vetrina"+      ,"vetusto"+      ,"viandante"+      ,"vibrante"+      ,"vicenda"+      ,"vichingo"+      ,"vicinanza"+      ,"vidimare"+      ,"vigilia"+      ,"vigneto"+      ,"vigore"+      ,"vile"+      ,"villano"+      ,"vimini"+      ,"vincitore"+      ,"viola"+      ,"vipera"+      ,"virgola"+      ,"virologo"+      ,"virulento"+      ,"viscoso"+      ,"visione"+      ,"vispo"+      ,"vissuto"+      ,"visura"+      ,"vita"+      ,"vitello"+      ,"vittima"+      ,"vivanda"+      ,"vivido"+      ,"viziare"+      ,"voce"+      ,"voga"+      ,"volatile"+      ,"volere"+      ,"volpe"+      ,"voragine"+      ,"vulcano"+      ,"zampogna"+      ,"zanna"+      ,"zappato"+      ,"zattera"+      ,"zavorra"+      ,"zefiro"+      ,"zelante"+      ,"zelo"+      ,"zenzero"+      ,"zerbino"+      ,"zibetto"+      ,"zinco"+      ,"zircone"+      ,"zitto"+      ,"zolla"+      ,"zotico"+      ,"zucchero"+      ,"zufolo"+      ,"zulu"+      ,"zuppa"+      ]
+ lib/Cardano/Dictionary/Japanese.hs view
@@ -0,0 +1,2079 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}++{-# OPTIONS_HADDOCK hide #-}++-- |+-- Copyright: 2025 Intersect+-- License: Apache-2.0+--+-- Adopted from https://github.com/bloxbean/cardano-client-lib/blob/master/crypto/src/main/resources/mnemonic/wordlist/japanese.txt++module Cardano.Dictionary.Japanese+    (+    -- * dictionary value+     japanese+    ) where++import Basement.String+    ( String )+import Cardano.Dictionary.Generic+    ( toDictionary )+import Crypto.Encoding.BIP39.Dictionary+    ( Dictionary )++japanese :: Dictionary+japanese = toDictionary wordList+  where+  wordList :: [String]+  wordList =+      ["あいこくしん"+      ,"あいさつ"+      ,"あいだ"+      ,"あおぞら"+      ,"あかちゃん"+      ,"あきる"+      ,"あけがた"+      ,"あける"+      ,"あこがれる"+      ,"あさい"+      ,"あさひ"+      ,"あしあと"+      ,"あじわう"+      ,"あずかる"+      ,"あずき"+      ,"あそぶ"+      ,"あたえる"+      ,"あたためる"+      ,"あたりまえ"+      ,"あたる"+      ,"あつい"+      ,"あつかう"+      ,"あっしゅく"+      ,"あつまり"+      ,"あつめる"+      ,"あてな"+      ,"あてはまる"+      ,"あひる"+      ,"あぶら"+      ,"あぶる"+      ,"あふれる"+      ,"あまい"+      ,"あまど"+      ,"あまやかす"+      ,"あまり"+      ,"あみもの"+      ,"あめりか"+      ,"あやまる"+      ,"あゆむ"+      ,"あらいぐま"+      ,"あらし"+      ,"あらすじ"+      ,"あらためる"+      ,"あらゆる"+      ,"あらわす"+      ,"ありがとう"+      ,"あわせる"+      ,"あわてる"+      ,"あんい"+      ,"あんがい"+      ,"あんこ"+      ,"あんぜん"+      ,"あんてい"+      ,"あんない"+      ,"あんまり"+      ,"いいだす"+      ,"いおん"+      ,"いがい"+      ,"いがく"+      ,"いきおい"+      ,"いきなり"+      ,"いきもの"+      ,"いきる"+      ,"いくじ"+      ,"いくぶん"+      ,"いけばな"+      ,"いけん"+      ,"いこう"+      ,"いこく"+      ,"いこつ"+      ,"いさましい"+      ,"いさん"+      ,"いしき"+      ,"いじゅう"+      ,"いじょう"+      ,"いじわる"+      ,"いずみ"+      ,"いずれ"+      ,"いせい"+      ,"いせえび"+      ,"いせかい"+      ,"いせき"+      ,"いぜん"+      ,"いそうろう"+      ,"いそがしい"+      ,"いだい"+      ,"いだく"+      ,"いたずら"+      ,"いたみ"+      ,"いたりあ"+      ,"いちおう"+      ,"いちじ"+      ,"いちど"+      ,"いちば"+      ,"いちぶ"+      ,"いちりゅう"+      ,"いつか"+      ,"いっしゅん"+      ,"いっせい"+      ,"いっそう"+      ,"いったん"+      ,"いっち"+      ,"いってい"+      ,"いっぽう"+      ,"いてざ"+      ,"いてん"+      ,"いどう"+      ,"いとこ"+      ,"いない"+      ,"いなか"+      ,"いねむり"+      ,"いのち"+      ,"いのる"+      ,"いはつ"+      ,"いばる"+      ,"いはん"+      ,"いびき"+      ,"いひん"+      ,"いふく"+      ,"いへん"+      ,"いほう"+      ,"いみん"+      ,"いもうと"+      ,"いもたれ"+      ,"いもり"+      ,"いやがる"+      ,"いやす"+      ,"いよかん"+      ,"いよく"+      ,"いらい"+      ,"いらすと"+      ,"いりぐち"+      ,"いりょう"+      ,"いれい"+      ,"いれもの"+      ,"いれる"+      ,"いろえんぴつ"+      ,"いわい"+      ,"いわう"+      ,"いわかん"+      ,"いわば"+      ,"いわゆる"+      ,"いんげんまめ"+      ,"いんさつ"+      ,"いんしょう"+      ,"いんよう"+      ,"うえき"+      ,"うえる"+      ,"うおざ"+      ,"うがい"+      ,"うかぶ"+      ,"うかべる"+      ,"うきわ"+      ,"うくらいな"+      ,"うくれれ"+      ,"うけたまわる"+      ,"うけつけ"+      ,"うけとる"+      ,"うけもつ"+      ,"うける"+      ,"うごかす"+      ,"うごく"+      ,"うこん"+      ,"うさぎ"+      ,"うしなう"+      ,"うしろがみ"+      ,"うすい"+      ,"うすぎ"+      ,"うすぐらい"+      ,"うすめる"+      ,"うせつ"+      ,"うちあわせ"+      ,"うちがわ"+      ,"うちき"+      ,"うちゅう"+      ,"うっかり"+      ,"うつくしい"+      ,"うったえる"+      ,"うつる"+      ,"うどん"+      ,"うなぎ"+      ,"うなじ"+      ,"うなずく"+      ,"うなる"+      ,"うねる"+      ,"うのう"+      ,"うぶげ"+      ,"うぶごえ"+      ,"うまれる"+      ,"うめる"+      ,"うもう"+      ,"うやまう"+      ,"うよく"+      ,"うらがえす"+      ,"うらぐち"+      ,"うらない"+      ,"うりあげ"+      ,"うりきれ"+      ,"うるさい"+      ,"うれしい"+      ,"うれゆき"+      ,"うれる"+      ,"うろこ"+      ,"うわき"+      ,"うわさ"+      ,"うんこう"+      ,"うんちん"+      ,"うんてん"+      ,"うんどう"+      ,"えいえん"+      ,"えいが"+      ,"えいきょう"+      ,"えいご"+      ,"えいせい"+      ,"えいぶん"+      ,"えいよう"+      ,"えいわ"+      ,"えおり"+      ,"えがお"+      ,"えがく"+      ,"えきたい"+      ,"えくせる"+      ,"えしゃく"+      ,"えすて"+      ,"えつらん"+      ,"えのぐ"+      ,"えほうまき"+      ,"えほん"+      ,"えまき"+      ,"えもじ"+      ,"えもの"+      ,"えらい"+      ,"えらぶ"+      ,"えりあ"+      ,"えんえん"+      ,"えんかい"+      ,"えんぎ"+      ,"えんげき"+      ,"えんしゅう"+      ,"えんぜつ"+      ,"えんそく"+      ,"えんちょう"+      ,"えんとつ"+      ,"おいかける"+      ,"おいこす"+      ,"おいしい"+      ,"おいつく"+      ,"おうえん"+      ,"おうさま"+      ,"おうじ"+      ,"おうせつ"+      ,"おうたい"+      ,"おうふく"+      ,"おうべい"+      ,"おうよう"+      ,"おえる"+      ,"おおい"+      ,"おおう"+      ,"おおどおり"+      ,"おおや"+      ,"おおよそ"+      ,"おかえり"+      ,"おかず"+      ,"おがむ"+      ,"おかわり"+      ,"おぎなう"+      ,"おきる"+      ,"おくさま"+      ,"おくじょう"+      ,"おくりがな"+      ,"おくる"+      ,"おくれる"+      ,"おこす"+      ,"おこなう"+      ,"おこる"+      ,"おさえる"+      ,"おさない"+      ,"おさめる"+      ,"おしいれ"+      ,"おしえる"+      ,"おじぎ"+      ,"おじさん"+      ,"おしゃれ"+      ,"おそらく"+      ,"おそわる"+      ,"おたがい"+      ,"おたく"+      ,"おだやか"+      ,"おちつく"+      ,"おっと"+      ,"おつり"+      ,"おでかけ"+      ,"おとしもの"+      ,"おとなしい"+      ,"おどり"+      ,"おどろかす"+      ,"おばさん"+      ,"おまいり"+      ,"おめでとう"+      ,"おもいで"+      ,"おもう"+      ,"おもたい"+      ,"おもちゃ"+      ,"おやつ"+      ,"おやゆび"+      ,"およぼす"+      ,"おらんだ"+      ,"おろす"+      ,"おんがく"+      ,"おんけい"+      ,"おんしゃ"+      ,"おんせん"+      ,"おんだん"+      ,"おんちゅう"+      ,"おんどけい"+      ,"かあつ"+      ,"かいが"+      ,"がいき"+      ,"がいけん"+      ,"がいこう"+      ,"かいさつ"+      ,"かいしゃ"+      ,"かいすいよく"+      ,"かいぜん"+      ,"かいぞうど"+      ,"かいつう"+      ,"かいてん"+      ,"かいとう"+      ,"かいふく"+      ,"がいへき"+      ,"かいほう"+      ,"かいよう"+      ,"がいらい"+      ,"かいわ"+      ,"かえる"+      ,"かおり"+      ,"かかえる"+      ,"かがく"+      ,"かがし"+      ,"かがみ"+      ,"かくご"+      ,"かくとく"+      ,"かざる"+      ,"がぞう"+      ,"かたい"+      ,"かたち"+      ,"がちょう"+      ,"がっきゅう"+      ,"がっこう"+      ,"がっさん"+      ,"がっしょう"+      ,"かなざわし"+      ,"かのう"+      ,"がはく"+      ,"かぶか"+      ,"かほう"+      ,"かほご"+      ,"かまう"+      ,"かまぼこ"+      ,"かめれおん"+      ,"かゆい"+      ,"かようび"+      ,"からい"+      ,"かるい"+      ,"かろう"+      ,"かわく"+      ,"かわら"+      ,"がんか"+      ,"かんけい"+      ,"かんこう"+      ,"かんしゃ"+      ,"かんそう"+      ,"かんたん"+      ,"かんち"+      ,"がんばる"+      ,"きあい"+      ,"きあつ"+      ,"きいろ"+      ,"ぎいん"+      ,"きうい"+      ,"きうん"+      ,"きえる"+      ,"きおう"+      ,"きおく"+      ,"きおち"+      ,"きおん"+      ,"きかい"+      ,"きかく"+      ,"きかんしゃ"+      ,"ききて"+      ,"きくばり"+      ,"きくらげ"+      ,"きけんせい"+      ,"きこう"+      ,"きこえる"+      ,"きこく"+      ,"きさい"+      ,"きさく"+      ,"きさま"+      ,"きさらぎ"+      ,"ぎじかがく"+      ,"ぎしき"+      ,"ぎじたいけん"+      ,"ぎじにってい"+      ,"ぎじゅつしゃ"+      ,"きすう"+      ,"きせい"+      ,"きせき"+      ,"きせつ"+      ,"きそう"+      ,"きぞく"+      ,"きぞん"+      ,"きたえる"+      ,"きちょう"+      ,"きつえん"+      ,"ぎっちり"+      ,"きつつき"+      ,"きつね"+      ,"きてい"+      ,"きどう"+      ,"きどく"+      ,"きない"+      ,"きなが"+      ,"きなこ"+      ,"きぬごし"+      ,"きねん"+      ,"きのう"+      ,"きのした"+      ,"きはく"+      ,"きびしい"+      ,"きひん"+      ,"きふく"+      ,"きぶん"+      ,"きぼう"+      ,"きほん"+      ,"きまる"+      ,"きみつ"+      ,"きむずかしい"+      ,"きめる"+      ,"きもだめし"+      ,"きもち"+      ,"きもの"+      ,"きゃく"+      ,"きやく"+      ,"ぎゅうにく"+      ,"きよう"+      ,"きょうりゅう"+      ,"きらい"+      ,"きらく"+      ,"きりん"+      ,"きれい"+      ,"きれつ"+      ,"きろく"+      ,"ぎろん"+      ,"きわめる"+      ,"ぎんいろ"+      ,"きんかくじ"+      ,"きんじょ"+      ,"きんようび"+      ,"ぐあい"+      ,"くいず"+      ,"くうかん"+      ,"くうき"+      ,"くうぐん"+      ,"くうこう"+      ,"ぐうせい"+      ,"くうそう"+      ,"ぐうたら"+      ,"くうふく"+      ,"くうぼ"+      ,"くかん"+      ,"くきょう"+      ,"くげん"+      ,"ぐこう"+      ,"くさい"+      ,"くさき"+      ,"くさばな"+      ,"くさる"+      ,"くしゃみ"+      ,"くしょう"+      ,"くすのき"+      ,"くすりゆび"+      ,"くせげ"+      ,"くせん"+      ,"ぐたいてき"+      ,"くださる"+      ,"くたびれる"+      ,"くちこみ"+      ,"くちさき"+      ,"くつした"+      ,"ぐっすり"+      ,"くつろぐ"+      ,"くとうてん"+      ,"くどく"+      ,"くなん"+      ,"くねくね"+      ,"くのう"+      ,"くふう"+      ,"くみあわせ"+      ,"くみたてる"+      ,"くめる"+      ,"くやくしょ"+      ,"くらす"+      ,"くらべる"+      ,"くるま"+      ,"くれる"+      ,"くろう"+      ,"くわしい"+      ,"ぐんかん"+      ,"ぐんしょく"+      ,"ぐんたい"+      ,"ぐんて"+      ,"けあな"+      ,"けいかく"+      ,"けいけん"+      ,"けいこ"+      ,"けいさつ"+      ,"げいじゅつ"+      ,"けいたい"+      ,"げいのうじん"+      ,"けいれき"+      ,"けいろ"+      ,"けおとす"+      ,"けおりもの"+      ,"げきか"+      ,"げきげん"+      ,"げきだん"+      ,"げきちん"+      ,"げきとつ"+      ,"げきは"+      ,"げきやく"+      ,"げこう"+      ,"げこくじょう"+      ,"げざい"+      ,"けさき"+      ,"げざん"+      ,"けしき"+      ,"けしごむ"+      ,"けしょう"+      ,"げすと"+      ,"けたば"+      ,"けちゃっぷ"+      ,"けちらす"+      ,"けつあつ"+      ,"けつい"+      ,"けつえき"+      ,"けっこん"+      ,"けつじょ"+      ,"けっせき"+      ,"けってい"+      ,"けつまつ"+      ,"げつようび"+      ,"げつれい"+      ,"けつろん"+      ,"げどく"+      ,"けとばす"+      ,"けとる"+      ,"けなげ"+      ,"けなす"+      ,"けなみ"+      ,"けぬき"+      ,"げねつ"+      ,"けねん"+      ,"けはい"+      ,"げひん"+      ,"けぶかい"+      ,"げぼく"+      ,"けまり"+      ,"けみかる"+      ,"けむし"+      ,"けむり"+      ,"けもの"+      ,"けらい"+      ,"けろけろ"+      ,"けわしい"+      ,"けんい"+      ,"けんえつ"+      ,"けんお"+      ,"けんか"+      ,"げんき"+      ,"けんげん"+      ,"けんこう"+      ,"けんさく"+      ,"けんしゅう"+      ,"けんすう"+      ,"げんそう"+      ,"けんちく"+      ,"けんてい"+      ,"けんとう"+      ,"けんない"+      ,"けんにん"+      ,"げんぶつ"+      ,"けんま"+      ,"けんみん"+      ,"けんめい"+      ,"けんらん"+      ,"けんり"+      ,"こあくま"+      ,"こいぬ"+      ,"こいびと"+      ,"ごうい"+      ,"こうえん"+      ,"こうおん"+      ,"こうかん"+      ,"ごうきゅう"+      ,"ごうけい"+      ,"こうこう"+      ,"こうさい"+      ,"こうじ"+      ,"こうすい"+      ,"ごうせい"+      ,"こうそく"+      ,"こうたい"+      ,"こうちゃ"+      ,"こうつう"+      ,"こうてい"+      ,"こうどう"+      ,"こうない"+      ,"こうはい"+      ,"ごうほう"+      ,"ごうまん"+      ,"こうもく"+      ,"こうりつ"+      ,"こえる"+      ,"こおり"+      ,"ごかい"+      ,"ごがつ"+      ,"ごかん"+      ,"こくご"+      ,"こくさい"+      ,"こくとう"+      ,"こくない"+      ,"こくはく"+      ,"こぐま"+      ,"こけい"+      ,"こける"+      ,"ここのか"+      ,"こころ"+      ,"こさめ"+      ,"こしつ"+      ,"こすう"+      ,"こせい"+      ,"こせき"+      ,"こぜん"+      ,"こそだて"+      ,"こたい"+      ,"こたえる"+      ,"こたつ"+      ,"こちょう"+      ,"こっか"+      ,"こつこつ"+      ,"こつばん"+      ,"こつぶ"+      ,"こてい"+      ,"こてん"+      ,"ことがら"+      ,"ことし"+      ,"ことば"+      ,"ことり"+      ,"こなごな"+      ,"こねこね"+      ,"このまま"+      ,"このみ"+      ,"このよ"+      ,"ごはん"+      ,"こひつじ"+      ,"こふう"+      ,"こふん"+      ,"こぼれる"+      ,"ごまあぶら"+      ,"こまかい"+      ,"ごますり"+      ,"こまつな"+      ,"こまる"+      ,"こむぎこ"+      ,"こもじ"+      ,"こもち"+      ,"こもの"+      ,"こもん"+      ,"こやく"+      ,"こやま"+      ,"こゆう"+      ,"こゆび"+      ,"こよい"+      ,"こよう"+      ,"こりる"+      ,"これくしょん"+      ,"ころっけ"+      ,"こわもて"+      ,"こわれる"+      ,"こんいん"+      ,"こんかい"+      ,"こんき"+      ,"こんしゅう"+      ,"こんすい"+      ,"こんだて"+      ,"こんとん"+      ,"こんなん"+      ,"こんびに"+      ,"こんぽん"+      ,"こんまけ"+      ,"こんや"+      ,"こんれい"+      ,"こんわく"+      ,"ざいえき"+      ,"さいかい"+      ,"さいきん"+      ,"ざいげん"+      ,"ざいこ"+      ,"さいしょ"+      ,"さいせい"+      ,"ざいたく"+      ,"ざいちゅう"+      ,"さいてき"+      ,"ざいりょう"+      ,"さうな"+      ,"さかいし"+      ,"さがす"+      ,"さかな"+      ,"さかみち"+      ,"さがる"+      ,"さぎょう"+      ,"さくし"+      ,"さくひん"+      ,"さくら"+      ,"さこく"+      ,"さこつ"+      ,"さずかる"+      ,"ざせき"+      ,"さたん"+      ,"さつえい"+      ,"ざつおん"+      ,"ざっか"+      ,"ざつがく"+      ,"さっきょく"+      ,"ざっし"+      ,"さつじん"+      ,"ざっそう"+      ,"さつたば"+      ,"さつまいも"+      ,"さてい"+      ,"さといも"+      ,"さとう"+      ,"さとおや"+      ,"さとし"+      ,"さとる"+      ,"さのう"+      ,"さばく"+      ,"さびしい"+      ,"さべつ"+      ,"さほう"+      ,"さほど"+      ,"さます"+      ,"さみしい"+      ,"さみだれ"+      ,"さむけ"+      ,"さめる"+      ,"さやえんどう"+      ,"さゆう"+      ,"さよう"+      ,"さよく"+      ,"さらだ"+      ,"ざるそば"+      ,"さわやか"+      ,"さわる"+      ,"さんいん"+      ,"さんか"+      ,"さんきゃく"+      ,"さんこう"+      ,"さんさい"+      ,"ざんしょ"+      ,"さんすう"+      ,"さんせい"+      ,"さんそ"+      ,"さんち"+      ,"さんま"+      ,"さんみ"+      ,"さんらん"+      ,"しあい"+      ,"しあげ"+      ,"しあさって"+      ,"しあわせ"+      ,"しいく"+      ,"しいん"+      ,"しうち"+      ,"しえい"+      ,"しおけ"+      ,"しかい"+      ,"しかく"+      ,"じかん"+      ,"しごと"+      ,"しすう"+      ,"じだい"+      ,"したうけ"+      ,"したぎ"+      ,"したて"+      ,"したみ"+      ,"しちょう"+      ,"しちりん"+      ,"しっかり"+      ,"しつじ"+      ,"しつもん"+      ,"してい"+      ,"してき"+      ,"してつ"+      ,"じてん"+      ,"じどう"+      ,"しなぎれ"+      ,"しなもの"+      ,"しなん"+      ,"しねま"+      ,"しねん"+      ,"しのぐ"+      ,"しのぶ"+      ,"しはい"+      ,"しばかり"+      ,"しはつ"+      ,"しはらい"+      ,"しはん"+      ,"しひょう"+      ,"しふく"+      ,"じぶん"+      ,"しへい"+      ,"しほう"+      ,"しほん"+      ,"しまう"+      ,"しまる"+      ,"しみん"+      ,"しむける"+      ,"じむしょ"+      ,"しめい"+      ,"しめる"+      ,"しもん"+      ,"しゃいん"+      ,"しゃうん"+      ,"しゃおん"+      ,"じゃがいも"+      ,"しやくしょ"+      ,"しゃくほう"+      ,"しゃけん"+      ,"しゃこ"+      ,"しゃざい"+      ,"しゃしん"+      ,"しゃせん"+      ,"しゃそう"+      ,"しゃたい"+      ,"しゃちょう"+      ,"しゃっきん"+      ,"じゃま"+      ,"しゃりん"+      ,"しゃれい"+      ,"じゆう"+      ,"じゅうしょ"+      ,"しゅくはく"+      ,"じゅしん"+      ,"しゅっせき"+      ,"しゅみ"+      ,"しゅらば"+      ,"じゅんばん"+      ,"しょうかい"+      ,"しょくたく"+      ,"しょっけん"+      ,"しょどう"+      ,"しょもつ"+      ,"しらせる"+      ,"しらべる"+      ,"しんか"+      ,"しんこう"+      ,"じんじゃ"+      ,"しんせいじ"+      ,"しんちく"+      ,"しんりん"+      ,"すあげ"+      ,"すあし"+      ,"すあな"+      ,"ずあん"+      ,"すいえい"+      ,"すいか"+      ,"すいとう"+      ,"ずいぶん"+      ,"すいようび"+      ,"すうがく"+      ,"すうじつ"+      ,"すうせん"+      ,"すおどり"+      ,"すきま"+      ,"すくう"+      ,"すくない"+      ,"すける"+      ,"すごい"+      ,"すこし"+      ,"ずさん"+      ,"すずしい"+      ,"すすむ"+      ,"すすめる"+      ,"すっかり"+      ,"ずっしり"+      ,"ずっと"+      ,"すてき"+      ,"すてる"+      ,"すねる"+      ,"すのこ"+      ,"すはだ"+      ,"すばらしい"+      ,"ずひょう"+      ,"ずぶぬれ"+      ,"すぶり"+      ,"すふれ"+      ,"すべて"+      ,"すべる"+      ,"ずほう"+      ,"すぼん"+      ,"すまい"+      ,"すめし"+      ,"すもう"+      ,"すやき"+      ,"すらすら"+      ,"するめ"+      ,"すれちがう"+      ,"すろっと"+      ,"すわる"+      ,"すんぜん"+      ,"すんぽう"+      ,"せあぶら"+      ,"せいかつ"+      ,"せいげん"+      ,"せいじ"+      ,"せいよう"+      ,"せおう"+      ,"せかいかん"+      ,"せきにん"+      ,"せきむ"+      ,"せきゆ"+      ,"せきらんうん"+      ,"せけん"+      ,"せこう"+      ,"せすじ"+      ,"せたい"+      ,"せたけ"+      ,"せっかく"+      ,"せっきゃく"+      ,"ぜっく"+      ,"せっけん"+      ,"せっこつ"+      ,"せっさたくま"+      ,"せつぞく"+      ,"せつだん"+      ,"せつでん"+      ,"せっぱん"+      ,"せつび"+      ,"せつぶん"+      ,"せつめい"+      ,"せつりつ"+      ,"せなか"+      ,"せのび"+      ,"せはば"+      ,"せびろ"+      ,"せぼね"+      ,"せまい"+      ,"せまる"+      ,"せめる"+      ,"せもたれ"+      ,"せりふ"+      ,"ぜんあく"+      ,"せんい"+      ,"せんえい"+      ,"せんか"+      ,"せんきょ"+      ,"せんく"+      ,"せんげん"+      ,"ぜんご"+      ,"せんさい"+      ,"せんしゅ"+      ,"せんすい"+      ,"せんせい"+      ,"せんぞ"+      ,"せんたく"+      ,"せんちょう"+      ,"せんてい"+      ,"せんとう"+      ,"せんぬき"+      ,"せんねん"+      ,"せんぱい"+      ,"ぜんぶ"+      ,"ぜんぽう"+      ,"せんむ"+      ,"せんめんじょ"+      ,"せんもん"+      ,"せんやく"+      ,"せんゆう"+      ,"せんよう"+      ,"ぜんら"+      ,"ぜんりゃく"+      ,"せんれい"+      ,"せんろ"+      ,"そあく"+      ,"そいとげる"+      ,"そいね"+      ,"そうがんきょう"+      ,"そうき"+      ,"そうご"+      ,"そうしん"+      ,"そうだん"+      ,"そうなん"+      ,"そうび"+      ,"そうめん"+      ,"そうり"+      ,"そえもの"+      ,"そえん"+      ,"そがい"+      ,"そげき"+      ,"そこう"+      ,"そこそこ"+      ,"そざい"+      ,"そしな"+      ,"そせい"+      ,"そせん"+      ,"そそぐ"+      ,"そだてる"+      ,"そつう"+      ,"そつえん"+      ,"そっかん"+      ,"そつぎょう"+      ,"そっけつ"+      ,"そっこう"+      ,"そっせん"+      ,"そっと"+      ,"そとがわ"+      ,"そとづら"+      ,"そなえる"+      ,"そなた"+      ,"そふぼ"+      ,"そぼく"+      ,"そぼろ"+      ,"そまつ"+      ,"そまる"+      ,"そむく"+      ,"そむりえ"+      ,"そめる"+      ,"そもそも"+      ,"そよかぜ"+      ,"そらまめ"+      ,"そろう"+      ,"そんかい"+      ,"そんけい"+      ,"そんざい"+      ,"そんしつ"+      ,"そんぞく"+      ,"そんちょう"+      ,"ぞんび"+      ,"ぞんぶん"+      ,"そんみん"+      ,"たあい"+      ,"たいいん"+      ,"たいうん"+      ,"たいえき"+      ,"たいおう"+      ,"だいがく"+      ,"たいき"+      ,"たいぐう"+      ,"たいけん"+      ,"たいこ"+      ,"たいざい"+      ,"だいじょうぶ"+      ,"だいすき"+      ,"たいせつ"+      ,"たいそう"+      ,"だいたい"+      ,"たいちょう"+      ,"たいてい"+      ,"だいどころ"+      ,"たいない"+      ,"たいねつ"+      ,"たいのう"+      ,"たいはん"+      ,"だいひょう"+      ,"たいふう"+      ,"たいへん"+      ,"たいほ"+      ,"たいまつばな"+      ,"たいみんぐ"+      ,"たいむ"+      ,"たいめん"+      ,"たいやき"+      ,"たいよう"+      ,"たいら"+      ,"たいりょく"+      ,"たいる"+      ,"たいわん"+      ,"たうえ"+      ,"たえる"+      ,"たおす"+      ,"たおる"+      ,"たおれる"+      ,"たかい"+      ,"たかね"+      ,"たきび"+      ,"たくさん"+      ,"たこく"+      ,"たこやき"+      ,"たさい"+      ,"たしざん"+      ,"だじゃれ"+      ,"たすける"+      ,"たずさわる"+      ,"たそがれ"+      ,"たたかう"+      ,"たたく"+      ,"ただしい"+      ,"たたみ"+      ,"たちばな"+      ,"だっかい"+      ,"だっきゃく"+      ,"だっこ"+      ,"だっしゅつ"+      ,"だったい"+      ,"たてる"+      ,"たとえる"+      ,"たなばた"+      ,"たにん"+      ,"たぬき"+      ,"たのしみ"+      ,"たはつ"+      ,"たぶん"+      ,"たべる"+      ,"たぼう"+      ,"たまご"+      ,"たまる"+      ,"だむる"+      ,"ためいき"+      ,"ためす"+      ,"ためる"+      ,"たもつ"+      ,"たやすい"+      ,"たよる"+      ,"たらす"+      ,"たりきほんがん"+      ,"たりょう"+      ,"たりる"+      ,"たると"+      ,"たれる"+      ,"たれんと"+      ,"たろっと"+      ,"たわむれる"+      ,"だんあつ"+      ,"たんい"+      ,"たんおん"+      ,"たんか"+      ,"たんき"+      ,"たんけん"+      ,"たんご"+      ,"たんさん"+      ,"たんじょうび"+      ,"だんせい"+      ,"たんそく"+      ,"たんたい"+      ,"だんち"+      ,"たんてい"+      ,"たんとう"+      ,"だんな"+      ,"たんにん"+      ,"だんねつ"+      ,"たんのう"+      ,"たんぴん"+      ,"だんぼう"+      ,"たんまつ"+      ,"たんめい"+      ,"だんれつ"+      ,"だんろ"+      ,"だんわ"+      ,"ちあい"+      ,"ちあん"+      ,"ちいき"+      ,"ちいさい"+      ,"ちえん"+      ,"ちかい"+      ,"ちから"+      ,"ちきゅう"+      ,"ちきん"+      ,"ちけいず"+      ,"ちけん"+      ,"ちこく"+      ,"ちさい"+      ,"ちしき"+      ,"ちしりょう"+      ,"ちせい"+      ,"ちそう"+      ,"ちたい"+      ,"ちたん"+      ,"ちちおや"+      ,"ちつじょ"+      ,"ちてき"+      ,"ちてん"+      ,"ちぬき"+      ,"ちぬり"+      ,"ちのう"+      ,"ちひょう"+      ,"ちへいせん"+      ,"ちほう"+      ,"ちまた"+      ,"ちみつ"+      ,"ちみどろ"+      ,"ちめいど"+      ,"ちゃんこなべ"+      ,"ちゅうい"+      ,"ちゆりょく"+      ,"ちょうし"+      ,"ちょさくけん"+      ,"ちらし"+      ,"ちらみ"+      ,"ちりがみ"+      ,"ちりょう"+      ,"ちるど"+      ,"ちわわ"+      ,"ちんたい"+      ,"ちんもく"+      ,"ついか"+      ,"ついたち"+      ,"つうか"+      ,"つうじょう"+      ,"つうはん"+      ,"つうわ"+      ,"つかう"+      ,"つかれる"+      ,"つくね"+      ,"つくる"+      ,"つけね"+      ,"つける"+      ,"つごう"+      ,"つたえる"+      ,"つづく"+      ,"つつじ"+      ,"つつむ"+      ,"つとめる"+      ,"つながる"+      ,"つなみ"+      ,"つねづね"+      ,"つのる"+      ,"つぶす"+      ,"つまらない"+      ,"つまる"+      ,"つみき"+      ,"つめたい"+      ,"つもり"+      ,"つもる"+      ,"つよい"+      ,"つるぼ"+      ,"つるみく"+      ,"つわもの"+      ,"つわり"+      ,"てあし"+      ,"てあて"+      ,"てあみ"+      ,"ていおん"+      ,"ていか"+      ,"ていき"+      ,"ていけい"+      ,"ていこく"+      ,"ていさつ"+      ,"ていし"+      ,"ていせい"+      ,"ていたい"+      ,"ていど"+      ,"ていねい"+      ,"ていひょう"+      ,"ていへん"+      ,"ていぼう"+      ,"てうち"+      ,"ておくれ"+      ,"てきとう"+      ,"てくび"+      ,"でこぼこ"+      ,"てさぎょう"+      ,"てさげ"+      ,"てすり"+      ,"てそう"+      ,"てちがい"+      ,"てちょう"+      ,"てつがく"+      ,"てつづき"+      ,"でっぱ"+      ,"てつぼう"+      ,"てつや"+      ,"でぬかえ"+      ,"てぬき"+      ,"てぬぐい"+      ,"てのひら"+      ,"てはい"+      ,"てぶくろ"+      ,"てふだ"+      ,"てほどき"+      ,"てほん"+      ,"てまえ"+      ,"てまきずし"+      ,"てみじか"+      ,"てみやげ"+      ,"てらす"+      ,"てれび"+      ,"てわけ"+      ,"てわたし"+      ,"でんあつ"+      ,"てんいん"+      ,"てんかい"+      ,"てんき"+      ,"てんぐ"+      ,"てんけん"+      ,"てんごく"+      ,"てんさい"+      ,"てんし"+      ,"てんすう"+      ,"でんち"+      ,"てんてき"+      ,"てんとう"+      ,"てんない"+      ,"てんぷら"+      ,"てんぼうだい"+      ,"てんめつ"+      ,"てんらんかい"+      ,"でんりょく"+      ,"でんわ"+      ,"どあい"+      ,"といれ"+      ,"どうかん"+      ,"とうきゅう"+      ,"どうぐ"+      ,"とうし"+      ,"とうむぎ"+      ,"とおい"+      ,"とおか"+      ,"とおく"+      ,"とおす"+      ,"とおる"+      ,"とかい"+      ,"とかす"+      ,"ときおり"+      ,"ときどき"+      ,"とくい"+      ,"とくしゅう"+      ,"とくてん"+      ,"とくに"+      ,"とくべつ"+      ,"とけい"+      ,"とける"+      ,"とこや"+      ,"とさか"+      ,"としょかん"+      ,"とそう"+      ,"とたん"+      ,"とちゅう"+      ,"とっきゅう"+      ,"とっくん"+      ,"とつぜん"+      ,"とつにゅう"+      ,"とどける"+      ,"ととのえる"+      ,"とない"+      ,"となえる"+      ,"となり"+      ,"とのさま"+      ,"とばす"+      ,"どぶがわ"+      ,"とほう"+      ,"とまる"+      ,"とめる"+      ,"ともだち"+      ,"ともる"+      ,"どようび"+      ,"とらえる"+      ,"とんかつ"+      ,"どんぶり"+      ,"ないかく"+      ,"ないこう"+      ,"ないしょ"+      ,"ないす"+      ,"ないせん"+      ,"ないそう"+      ,"なおす"+      ,"ながい"+      ,"なくす"+      ,"なげる"+      ,"なこうど"+      ,"なさけ"+      ,"なたでここ"+      ,"なっとう"+      ,"なつやすみ"+      ,"ななおし"+      ,"なにごと"+      ,"なにもの"+      ,"なにわ"+      ,"なのか"+      ,"なふだ"+      ,"なまいき"+      ,"なまえ"+      ,"なまみ"+      ,"なみだ"+      ,"なめらか"+      ,"なめる"+      ,"なやむ"+      ,"ならう"+      ,"ならび"+      ,"ならぶ"+      ,"なれる"+      ,"なわとび"+      ,"なわばり"+      ,"にあう"+      ,"にいがた"+      ,"にうけ"+      ,"におい"+      ,"にかい"+      ,"にがて"+      ,"にきび"+      ,"にくしみ"+      ,"にくまん"+      ,"にげる"+      ,"にさんかたんそ"+      ,"にしき"+      ,"にせもの"+      ,"にちじょう"+      ,"にちようび"+      ,"にっか"+      ,"にっき"+      ,"にっけい"+      ,"にっこう"+      ,"にっさん"+      ,"にっしょく"+      ,"にっすう"+      ,"にっせき"+      ,"にってい"+      ,"になう"+      ,"にほん"+      ,"にまめ"+      ,"にもつ"+      ,"にやり"+      ,"にゅういん"+      ,"にりんしゃ"+      ,"にわとり"+      ,"にんい"+      ,"にんか"+      ,"にんき"+      ,"にんげん"+      ,"にんしき"+      ,"にんずう"+      ,"にんそう"+      ,"にんたい"+      ,"にんち"+      ,"にんてい"+      ,"にんにく"+      ,"にんぷ"+      ,"にんまり"+      ,"にんむ"+      ,"にんめい"+      ,"にんよう"+      ,"ぬいくぎ"+      ,"ぬかす"+      ,"ぬぐいとる"+      ,"ぬぐう"+      ,"ぬくもり"+      ,"ぬすむ"+      ,"ぬまえび"+      ,"ぬめり"+      ,"ぬらす"+      ,"ぬんちゃく"+      ,"ねあげ"+      ,"ねいき"+      ,"ねいる"+      ,"ねいろ"+      ,"ねぐせ"+      ,"ねくたい"+      ,"ねくら"+      ,"ねこぜ"+      ,"ねこむ"+      ,"ねさげ"+      ,"ねすごす"+      ,"ねそべる"+      ,"ねだん"+      ,"ねつい"+      ,"ねっしん"+      ,"ねつぞう"+      ,"ねったいぎょ"+      ,"ねぶそく"+      ,"ねふだ"+      ,"ねぼう"+      ,"ねほりはほり"+      ,"ねまき"+      ,"ねまわし"+      ,"ねみみ"+      ,"ねむい"+      ,"ねむたい"+      ,"ねもと"+      ,"ねらう"+      ,"ねわざ"+      ,"ねんいり"+      ,"ねんおし"+      ,"ねんかん"+      ,"ねんきん"+      ,"ねんぐ"+      ,"ねんざ"+      ,"ねんし"+      ,"ねんちゃく"+      ,"ねんど"+      ,"ねんぴ"+      ,"ねんぶつ"+      ,"ねんまつ"+      ,"ねんりょう"+      ,"ねんれい"+      ,"のいず"+      ,"のおづま"+      ,"のがす"+      ,"のきなみ"+      ,"のこぎり"+      ,"のこす"+      ,"のこる"+      ,"のせる"+      ,"のぞく"+      ,"のぞむ"+      ,"のたまう"+      ,"のちほど"+      ,"のっく"+      ,"のばす"+      ,"のはら"+      ,"のべる"+      ,"のぼる"+      ,"のみもの"+      ,"のやま"+      ,"のらいぬ"+      ,"のらねこ"+      ,"のりもの"+      ,"のりゆき"+      ,"のれん"+      ,"のんき"+      ,"ばあい"+      ,"はあく"+      ,"ばあさん"+      ,"ばいか"+      ,"ばいく"+      ,"はいけん"+      ,"はいご"+      ,"はいしん"+      ,"はいすい"+      ,"はいせん"+      ,"はいそう"+      ,"はいち"+      ,"ばいばい"+      ,"はいれつ"+      ,"はえる"+      ,"はおる"+      ,"はかい"+      ,"ばかり"+      ,"はかる"+      ,"はくしゅ"+      ,"はけん"+      ,"はこぶ"+      ,"はさみ"+      ,"はさん"+      ,"はしご"+      ,"ばしょ"+      ,"はしる"+      ,"はせる"+      ,"ぱそこん"+      ,"はそん"+      ,"はたん"+      ,"はちみつ"+      ,"はつおん"+      ,"はっかく"+      ,"はづき"+      ,"はっきり"+      ,"はっくつ"+      ,"はっけん"+      ,"はっこう"+      ,"はっさん"+      ,"はっしん"+      ,"はったつ"+      ,"はっちゅう"+      ,"はってん"+      ,"はっぴょう"+      ,"はっぽう"+      ,"はなす"+      ,"はなび"+      ,"はにかむ"+      ,"はぶらし"+      ,"はみがき"+      ,"はむかう"+      ,"はめつ"+      ,"はやい"+      ,"はやし"+      ,"はらう"+      ,"はろうぃん"+      ,"はわい"+      ,"はんい"+      ,"はんえい"+      ,"はんおん"+      ,"はんかく"+      ,"はんきょう"+      ,"ばんぐみ"+      ,"はんこ"+      ,"はんしゃ"+      ,"はんすう"+      ,"はんだん"+      ,"ぱんち"+      ,"ぱんつ"+      ,"はんてい"+      ,"はんとし"+      ,"はんのう"+      ,"はんぱ"+      ,"はんぶん"+      ,"はんぺん"+      ,"はんぼうき"+      ,"はんめい"+      ,"はんらん"+      ,"はんろん"+      ,"ひいき"+      ,"ひうん"+      ,"ひえる"+      ,"ひかく"+      ,"ひかり"+      ,"ひかる"+      ,"ひかん"+      ,"ひくい"+      ,"ひけつ"+      ,"ひこうき"+      ,"ひこく"+      ,"ひさい"+      ,"ひさしぶり"+      ,"ひさん"+      ,"びじゅつかん"+      ,"ひしょ"+      ,"ひそか"+      ,"ひそむ"+      ,"ひたむき"+      ,"ひだり"+      ,"ひたる"+      ,"ひつぎ"+      ,"ひっこし"+      ,"ひっし"+      ,"ひつじゅひん"+      ,"ひっす"+      ,"ひつぜん"+      ,"ぴったり"+      ,"ぴっちり"+      ,"ひつよう"+      ,"ひてい"+      ,"ひとごみ"+      ,"ひなまつり"+      ,"ひなん"+      ,"ひねる"+      ,"ひはん"+      ,"ひびく"+      ,"ひひょう"+      ,"ひほう"+      ,"ひまわり"+      ,"ひまん"+      ,"ひみつ"+      ,"ひめい"+      ,"ひめじし"+      ,"ひやけ"+      ,"ひやす"+      ,"ひよう"+      ,"びょうき"+      ,"ひらがな"+      ,"ひらく"+      ,"ひりつ"+      ,"ひりょう"+      ,"ひるま"+      ,"ひるやすみ"+      ,"ひれい"+      ,"ひろい"+      ,"ひろう"+      ,"ひろき"+      ,"ひろゆき"+      ,"ひんかく"+      ,"ひんけつ"+      ,"ひんこん"+      ,"ひんしゅ"+      ,"ひんそう"+      ,"ぴんち"+      ,"ひんぱん"+      ,"びんぼう"+      ,"ふあん"+      ,"ふいうち"+      ,"ふうけい"+      ,"ふうせん"+      ,"ぷうたろう"+      ,"ふうとう"+      ,"ふうふ"+      ,"ふえる"+      ,"ふおん"+      ,"ふかい"+      ,"ふきん"+      ,"ふくざつ"+      ,"ふくぶくろ"+      ,"ふこう"+      ,"ふさい"+      ,"ふしぎ"+      ,"ふじみ"+      ,"ふすま"+      ,"ふせい"+      ,"ふせぐ"+      ,"ふそく"+      ,"ぶたにく"+      ,"ふたん"+      ,"ふちょう"+      ,"ふつう"+      ,"ふつか"+      ,"ふっかつ"+      ,"ふっき"+      ,"ふっこく"+      ,"ぶどう"+      ,"ふとる"+      ,"ふとん"+      ,"ふのう"+      ,"ふはい"+      ,"ふひょう"+      ,"ふへん"+      ,"ふまん"+      ,"ふみん"+      ,"ふめつ"+      ,"ふめん"+      ,"ふよう"+      ,"ふりこ"+      ,"ふりる"+      ,"ふるい"+      ,"ふんいき"+      ,"ぶんがく"+      ,"ぶんぐ"+      ,"ふんしつ"+      ,"ぶんせき"+      ,"ふんそう"+      ,"ぶんぽう"+      ,"へいあん"+      ,"へいおん"+      ,"へいがい"+      ,"へいき"+      ,"へいげん"+      ,"へいこう"+      ,"へいさ"+      ,"へいしゃ"+      ,"へいせつ"+      ,"へいそ"+      ,"へいたく"+      ,"へいてん"+      ,"へいねつ"+      ,"へいわ"+      ,"へきが"+      ,"へこむ"+      ,"べにいろ"+      ,"べにしょうが"+      ,"へらす"+      ,"へんかん"+      ,"べんきょう"+      ,"べんごし"+      ,"へんさい"+      ,"へんたい"+      ,"べんり"+      ,"ほあん"+      ,"ほいく"+      ,"ぼうぎょ"+      ,"ほうこく"+      ,"ほうそう"+      ,"ほうほう"+      ,"ほうもん"+      ,"ほうりつ"+      ,"ほえる"+      ,"ほおん"+      ,"ほかん"+      ,"ほきょう"+      ,"ぼきん"+      ,"ほくろ"+      ,"ほけつ"+      ,"ほけん"+      ,"ほこう"+      ,"ほこる"+      ,"ほしい"+      ,"ほしつ"+      ,"ほしゅ"+      ,"ほしょう"+      ,"ほせい"+      ,"ほそい"+      ,"ほそく"+      ,"ほたて"+      ,"ほたる"+      ,"ぽちぶくろ"+      ,"ほっきょく"+      ,"ほっさ"+      ,"ほったん"+      ,"ほとんど"+      ,"ほめる"+      ,"ほんい"+      ,"ほんき"+      ,"ほんけ"+      ,"ほんしつ"+      ,"ほんやく"+      ,"まいにち"+      ,"まかい"+      ,"まかせる"+      ,"まがる"+      ,"まける"+      ,"まこと"+      ,"まさつ"+      ,"まじめ"+      ,"ますく"+      ,"まぜる"+      ,"まつり"+      ,"まとめ"+      ,"まなぶ"+      ,"まぬけ"+      ,"まねく"+      ,"まほう"+      ,"まもる"+      ,"まゆげ"+      ,"まよう"+      ,"まろやか"+      ,"まわす"+      ,"まわり"+      ,"まわる"+      ,"まんが"+      ,"まんきつ"+      ,"まんぞく"+      ,"まんなか"+      ,"みいら"+      ,"みうち"+      ,"みえる"+      ,"みがく"+      ,"みかた"+      ,"みかん"+      ,"みけん"+      ,"みこん"+      ,"みじかい"+      ,"みすい"+      ,"みすえる"+      ,"みせる"+      ,"みっか"+      ,"みつかる"+      ,"みつける"+      ,"みてい"+      ,"みとめる"+      ,"みなと"+      ,"みなみかさい"+      ,"みねらる"+      ,"みのう"+      ,"みのがす"+      ,"みほん"+      ,"みもと"+      ,"みやげ"+      ,"みらい"+      ,"みりょく"+      ,"みわく"+      ,"みんか"+      ,"みんぞく"+      ,"むいか"+      ,"むえき"+      ,"むえん"+      ,"むかい"+      ,"むかう"+      ,"むかえ"+      ,"むかし"+      ,"むぎちゃ"+      ,"むける"+      ,"むげん"+      ,"むさぼる"+      ,"むしあつい"+      ,"むしば"+      ,"むじゅん"+      ,"むしろ"+      ,"むすう"+      ,"むすこ"+      ,"むすぶ"+      ,"むすめ"+      ,"むせる"+      ,"むせん"+      ,"むちゅう"+      ,"むなしい"+      ,"むのう"+      ,"むやみ"+      ,"むよう"+      ,"むらさき"+      ,"むりょう"+      ,"むろん"+      ,"めいあん"+      ,"めいうん"+      ,"めいえん"+      ,"めいかく"+      ,"めいきょく"+      ,"めいさい"+      ,"めいし"+      ,"めいそう"+      ,"めいぶつ"+      ,"めいれい"+      ,"めいわく"+      ,"めぐまれる"+      ,"めざす"+      ,"めした"+      ,"めずらしい"+      ,"めだつ"+      ,"めまい"+      ,"めやす"+      ,"めんきょ"+      ,"めんせき"+      ,"めんどう"+      ,"もうしあげる"+      ,"もうどうけん"+      ,"もえる"+      ,"もくし"+      ,"もくてき"+      ,"もくようび"+      ,"もちろん"+      ,"もどる"+      ,"もらう"+      ,"もんく"+      ,"もんだい"+      ,"やおや"+      ,"やける"+      ,"やさい"+      ,"やさしい"+      ,"やすい"+      ,"やすたろう"+      ,"やすみ"+      ,"やせる"+      ,"やそう"+      ,"やたい"+      ,"やちん"+      ,"やっと"+      ,"やっぱり"+      ,"やぶる"+      ,"やめる"+      ,"ややこしい"+      ,"やよい"+      ,"やわらかい"+      ,"ゆうき"+      ,"ゆうびんきょく"+      ,"ゆうべ"+      ,"ゆうめい"+      ,"ゆけつ"+      ,"ゆしゅつ"+      ,"ゆせん"+      ,"ゆそう"+      ,"ゆたか"+      ,"ゆちゃく"+      ,"ゆでる"+      ,"ゆにゅう"+      ,"ゆびわ"+      ,"ゆらい"+      ,"ゆれる"+      ,"ようい"+      ,"ようか"+      ,"ようきゅう"+      ,"ようじ"+      ,"ようす"+      ,"ようちえん"+      ,"よかぜ"+      ,"よかん"+      ,"よきん"+      ,"よくせい"+      ,"よくぼう"+      ,"よけい"+      ,"よごれる"+      ,"よさん"+      ,"よしゅう"+      ,"よそう"+      ,"よそく"+      ,"よっか"+      ,"よてい"+      ,"よどがわく"+      ,"よねつ"+      ,"よやく"+      ,"よゆう"+      ,"よろこぶ"+      ,"よろしい"+      ,"らいう"+      ,"らくがき"+      ,"らくご"+      ,"らくさつ"+      ,"らくだ"+      ,"らしんばん"+      ,"らせん"+      ,"らぞく"+      ,"らたい"+      ,"らっか"+      ,"られつ"+      ,"りえき"+      ,"りかい"+      ,"りきさく"+      ,"りきせつ"+      ,"りくぐん"+      ,"りくつ"+      ,"りけん"+      ,"りこう"+      ,"りせい"+      ,"りそう"+      ,"りそく"+      ,"りてん"+      ,"りねん"+      ,"りゆう"+      ,"りゅうがく"+      ,"りよう"+      ,"りょうり"+      ,"りょかん"+      ,"りょくちゃ"+      ,"りょこう"+      ,"りりく"+      ,"りれき"+      ,"りろん"+      ,"りんご"+      ,"るいけい"+      ,"るいさい"+      ,"るいじ"+      ,"るいせき"+      ,"るすばん"+      ,"るりがわら"+      ,"れいかん"+      ,"れいぎ"+      ,"れいせい"+      ,"れいぞうこ"+      ,"れいとう"+      ,"れいぼう"+      ,"れきし"+      ,"れきだい"+      ,"れんあい"+      ,"れんけい"+      ,"れんこん"+      ,"れんさい"+      ,"れんしゅう"+      ,"れんぞく"+      ,"れんらく"+      ,"ろうか"+      ,"ろうご"+      ,"ろうじん"+      ,"ろうそく"+      ,"ろくが"+      ,"ろこつ"+      ,"ろじうら"+      ,"ろしゅつ"+      ,"ろせん"+      ,"ろてん"+      ,"ろめん"+      ,"ろれつ"+      ,"ろんぎ"+      ,"ろんぱ"+      ,"ろんぶん"+      ,"ろんり"+      ,"わかす"+      ,"わかめ"+      ,"わかやま"+      ,"わかれる"+      ,"わしつ"+      ,"わじまし"+      ,"わすれもの"+      ,"わらう"+      ,"われる"+      ]
+ lib/Cardano/Dictionary/Korean.hs view
@@ -0,0 +1,2079 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}++{-# OPTIONS_HADDOCK hide #-}++-- |+-- Copyright: 2025 Intersect+-- License: Apache-2.0+--+-- Adopted from https://github.com/bloxbean/cardano-client-lib/blob/master/crypto/src/main/resources/mnemonic/wordlist/korean.txt++module Cardano.Dictionary.Korean+    (+    -- * dictionary value+     korean+    ) where++import Basement.String+    ( String )+import Cardano.Dictionary.Generic+    ( toDictionary )+import Crypto.Encoding.BIP39.Dictionary+    ( Dictionary )++korean :: Dictionary+korean = toDictionary wordList+  where+  wordList :: [String]+  wordList =+      ["가격"+      ,"가끔"+      ,"가난"+      ,"가능"+      ,"가득"+      ,"가르침"+      ,"가뭄"+      ,"가방"+      ,"가상"+      ,"가슴"+      ,"가운데"+      ,"가을"+      ,"가이드"+      ,"가입"+      ,"가장"+      ,"가정"+      ,"가족"+      ,"가죽"+      ,"각오"+      ,"각자"+      ,"간격"+      ,"간부"+      ,"간섭"+      ,"간장"+      ,"간접"+      ,"간판"+      ,"갈등"+      ,"갈비"+      ,"갈색"+      ,"갈증"+      ,"감각"+      ,"감기"+      ,"감소"+      ,"감수성"+      ,"감자"+      ,"감정"+      ,"갑자기"+      ,"강남"+      ,"강당"+      ,"강도"+      ,"강력히"+      ,"강변"+      ,"강북"+      ,"강사"+      ,"강수량"+      ,"강아지"+      ,"강원도"+      ,"강의"+      ,"강제"+      ,"강조"+      ,"같이"+      ,"개구리"+      ,"개나리"+      ,"개방"+      ,"개별"+      ,"개선"+      ,"개성"+      ,"개인"+      ,"객관적"+      ,"거실"+      ,"거액"+      ,"거울"+      ,"거짓"+      ,"거품"+      ,"걱정"+      ,"건강"+      ,"건물"+      ,"건설"+      ,"건조"+      ,"건축"+      ,"걸음"+      ,"검사"+      ,"검토"+      ,"게시판"+      ,"게임"+      ,"겨울"+      ,"견해"+      ,"결과"+      ,"결국"+      ,"결론"+      ,"결석"+      ,"결승"+      ,"결심"+      ,"결정"+      ,"결혼"+      ,"경계"+      ,"경고"+      ,"경기"+      ,"경력"+      ,"경복궁"+      ,"경비"+      ,"경상도"+      ,"경영"+      ,"경우"+      ,"경쟁"+      ,"경제"+      ,"경주"+      ,"경찰"+      ,"경치"+      ,"경향"+      ,"경험"+      ,"계곡"+      ,"계단"+      ,"계란"+      ,"계산"+      ,"계속"+      ,"계약"+      ,"계절"+      ,"계층"+      ,"계획"+      ,"고객"+      ,"고구려"+      ,"고궁"+      ,"고급"+      ,"고등학생"+      ,"고무신"+      ,"고민"+      ,"고양이"+      ,"고장"+      ,"고전"+      ,"고집"+      ,"고춧가루"+      ,"고통"+      ,"고향"+      ,"곡식"+      ,"골목"+      ,"골짜기"+      ,"골프"+      ,"공간"+      ,"공개"+      ,"공격"+      ,"공군"+      ,"공급"+      ,"공기"+      ,"공동"+      ,"공무원"+      ,"공부"+      ,"공사"+      ,"공식"+      ,"공업"+      ,"공연"+      ,"공원"+      ,"공장"+      ,"공짜"+      ,"공책"+      ,"공통"+      ,"공포"+      ,"공항"+      ,"공휴일"+      ,"과목"+      ,"과일"+      ,"과장"+      ,"과정"+      ,"과학"+      ,"관객"+      ,"관계"+      ,"관광"+      ,"관념"+      ,"관람"+      ,"관련"+      ,"관리"+      ,"관습"+      ,"관심"+      ,"관점"+      ,"관찰"+      ,"광경"+      ,"광고"+      ,"광장"+      ,"광주"+      ,"괴로움"+      ,"굉장히"+      ,"교과서"+      ,"교문"+      ,"교복"+      ,"교실"+      ,"교양"+      ,"교육"+      ,"교장"+      ,"교직"+      ,"교통"+      ,"교환"+      ,"교훈"+      ,"구경"+      ,"구름"+      ,"구멍"+      ,"구별"+      ,"구분"+      ,"구석"+      ,"구성"+      ,"구속"+      ,"구역"+      ,"구입"+      ,"구청"+      ,"구체적"+      ,"국가"+      ,"국기"+      ,"국내"+      ,"국립"+      ,"국물"+      ,"국민"+      ,"국수"+      ,"국어"+      ,"국왕"+      ,"국적"+      ,"국제"+      ,"국회"+      ,"군대"+      ,"군사"+      ,"군인"+      ,"궁극적"+      ,"권리"+      ,"권위"+      ,"권투"+      ,"귀국"+      ,"귀신"+      ,"규정"+      ,"규칙"+      ,"균형"+      ,"그날"+      ,"그냥"+      ,"그늘"+      ,"그러나"+      ,"그룹"+      ,"그릇"+      ,"그림"+      ,"그제서야"+      ,"그토록"+      ,"극복"+      ,"극히"+      ,"근거"+      ,"근교"+      ,"근래"+      ,"근로"+      ,"근무"+      ,"근본"+      ,"근원"+      ,"근육"+      ,"근처"+      ,"글씨"+      ,"글자"+      ,"금강산"+      ,"금고"+      ,"금년"+      ,"금메달"+      ,"금액"+      ,"금연"+      ,"금요일"+      ,"금지"+      ,"긍정적"+      ,"기간"+      ,"기관"+      ,"기념"+      ,"기능"+      ,"기독교"+      ,"기둥"+      ,"기록"+      ,"기름"+      ,"기법"+      ,"기본"+      ,"기분"+      ,"기쁨"+      ,"기숙사"+      ,"기술"+      ,"기억"+      ,"기업"+      ,"기온"+      ,"기운"+      ,"기원"+      ,"기적"+      ,"기준"+      ,"기침"+      ,"기혼"+      ,"기획"+      ,"긴급"+      ,"긴장"+      ,"길이"+      ,"김밥"+      ,"김치"+      ,"김포공항"+      ,"깍두기"+      ,"깜빡"+      ,"깨달음"+      ,"깨소금"+      ,"껍질"+      ,"꼭대기"+      ,"꽃잎"+      ,"나들이"+      ,"나란히"+      ,"나머지"+      ,"나물"+      ,"나침반"+      ,"나흘"+      ,"낙엽"+      ,"난방"+      ,"날개"+      ,"날씨"+      ,"날짜"+      ,"남녀"+      ,"남대문"+      ,"남매"+      ,"남산"+      ,"남자"+      ,"남편"+      ,"남학생"+      ,"낭비"+      ,"낱말"+      ,"내년"+      ,"내용"+      ,"내일"+      ,"냄비"+      ,"냄새"+      ,"냇물"+      ,"냉동"+      ,"냉면"+      ,"냉방"+      ,"냉장고"+      ,"넥타이"+      ,"넷째"+      ,"노동"+      ,"노란색"+      ,"노력"+      ,"노인"+      ,"녹음"+      ,"녹차"+      ,"녹화"+      ,"논리"+      ,"논문"+      ,"논쟁"+      ,"놀이"+      ,"농구"+      ,"농담"+      ,"농민"+      ,"농부"+      ,"농업"+      ,"농장"+      ,"농촌"+      ,"높이"+      ,"눈동자"+      ,"눈물"+      ,"눈썹"+      ,"뉴욕"+      ,"느낌"+      ,"늑대"+      ,"능동적"+      ,"능력"+      ,"다방"+      ,"다양성"+      ,"다음"+      ,"다이어트"+      ,"다행"+      ,"단계"+      ,"단골"+      ,"단독"+      ,"단맛"+      ,"단순"+      ,"단어"+      ,"단위"+      ,"단점"+      ,"단체"+      ,"단추"+      ,"단편"+      ,"단풍"+      ,"달걀"+      ,"달러"+      ,"달력"+      ,"달리"+      ,"닭고기"+      ,"담당"+      ,"담배"+      ,"담요"+      ,"담임"+      ,"답변"+      ,"답장"+      ,"당근"+      ,"당분간"+      ,"당연히"+      ,"당장"+      ,"대규모"+      ,"대낮"+      ,"대단히"+      ,"대답"+      ,"대도시"+      ,"대략"+      ,"대량"+      ,"대륙"+      ,"대문"+      ,"대부분"+      ,"대신"+      ,"대응"+      ,"대장"+      ,"대전"+      ,"대접"+      ,"대중"+      ,"대책"+      ,"대출"+      ,"대충"+      ,"대통령"+      ,"대학"+      ,"대한민국"+      ,"대합실"+      ,"대형"+      ,"덩어리"+      ,"데이트"+      ,"도대체"+      ,"도덕"+      ,"도둑"+      ,"도망"+      ,"도서관"+      ,"도심"+      ,"도움"+      ,"도입"+      ,"도자기"+      ,"도저히"+      ,"도전"+      ,"도중"+      ,"도착"+      ,"독감"+      ,"독립"+      ,"독서"+      ,"독일"+      ,"독창적"+      ,"동화책"+      ,"뒷모습"+      ,"뒷산"+      ,"딸아이"+      ,"마누라"+      ,"마늘"+      ,"마당"+      ,"마라톤"+      ,"마련"+      ,"마무리"+      ,"마사지"+      ,"마약"+      ,"마요네즈"+      ,"마을"+      ,"마음"+      ,"마이크"+      ,"마중"+      ,"마지막"+      ,"마찬가지"+      ,"마찰"+      ,"마흔"+      ,"막걸리"+      ,"막내"+      ,"막상"+      ,"만남"+      ,"만두"+      ,"만세"+      ,"만약"+      ,"만일"+      ,"만점"+      ,"만족"+      ,"만화"+      ,"많이"+      ,"말기"+      ,"말씀"+      ,"말투"+      ,"맘대로"+      ,"망원경"+      ,"매년"+      ,"매달"+      ,"매력"+      ,"매번"+      ,"매스컴"+      ,"매일"+      ,"매장"+      ,"맥주"+      ,"먹이"+      ,"먼저"+      ,"먼지"+      ,"멀리"+      ,"메일"+      ,"며느리"+      ,"며칠"+      ,"면담"+      ,"멸치"+      ,"명단"+      ,"명령"+      ,"명예"+      ,"명의"+      ,"명절"+      ,"명칭"+      ,"명함"+      ,"모금"+      ,"모니터"+      ,"모델"+      ,"모든"+      ,"모범"+      ,"모습"+      ,"모양"+      ,"모임"+      ,"모조리"+      ,"모집"+      ,"모퉁이"+      ,"목걸이"+      ,"목록"+      ,"목사"+      ,"목소리"+      ,"목숨"+      ,"목적"+      ,"목표"+      ,"몰래"+      ,"몸매"+      ,"몸무게"+      ,"몸살"+      ,"몸속"+      ,"몸짓"+      ,"몸통"+      ,"몹시"+      ,"무관심"+      ,"무궁화"+      ,"무더위"+      ,"무덤"+      ,"무릎"+      ,"무슨"+      ,"무엇"+      ,"무역"+      ,"무용"+      ,"무조건"+      ,"무지개"+      ,"무척"+      ,"문구"+      ,"문득"+      ,"문법"+      ,"문서"+      ,"문제"+      ,"문학"+      ,"문화"+      ,"물가"+      ,"물건"+      ,"물결"+      ,"물고기"+      ,"물론"+      ,"물리학"+      ,"물음"+      ,"물질"+      ,"물체"+      ,"미국"+      ,"미디어"+      ,"미사일"+      ,"미술"+      ,"미역"+      ,"미용실"+      ,"미움"+      ,"미인"+      ,"미팅"+      ,"미혼"+      ,"민간"+      ,"민족"+      ,"민주"+      ,"믿음"+      ,"밀가루"+      ,"밀리미터"+      ,"밑바닥"+      ,"바가지"+      ,"바구니"+      ,"바나나"+      ,"바늘"+      ,"바닥"+      ,"바닷가"+      ,"바람"+      ,"바이러스"+      ,"바탕"+      ,"박물관"+      ,"박사"+      ,"박수"+      ,"반대"+      ,"반드시"+      ,"반말"+      ,"반발"+      ,"반성"+      ,"반응"+      ,"반장"+      ,"반죽"+      ,"반지"+      ,"반찬"+      ,"받침"+      ,"발가락"+      ,"발걸음"+      ,"발견"+      ,"발달"+      ,"발레"+      ,"발목"+      ,"발바닥"+      ,"발생"+      ,"발음"+      ,"발자국"+      ,"발전"+      ,"발톱"+      ,"발표"+      ,"밤하늘"+      ,"밥그릇"+      ,"밥맛"+      ,"밥상"+      ,"밥솥"+      ,"방금"+      ,"방면"+      ,"방문"+      ,"방바닥"+      ,"방법"+      ,"방송"+      ,"방식"+      ,"방안"+      ,"방울"+      ,"방지"+      ,"방학"+      ,"방해"+      ,"방향"+      ,"배경"+      ,"배꼽"+      ,"배달"+      ,"배드민턴"+      ,"백두산"+      ,"백색"+      ,"백성"+      ,"백인"+      ,"백제"+      ,"백화점"+      ,"버릇"+      ,"버섯"+      ,"버튼"+      ,"번개"+      ,"번역"+      ,"번지"+      ,"번호"+      ,"벌금"+      ,"벌레"+      ,"벌써"+      ,"범위"+      ,"범인"+      ,"범죄"+      ,"법률"+      ,"법원"+      ,"법적"+      ,"법칙"+      ,"베이징"+      ,"벨트"+      ,"변경"+      ,"변동"+      ,"변명"+      ,"변신"+      ,"변호사"+      ,"변화"+      ,"별도"+      ,"별명"+      ,"별일"+      ,"병실"+      ,"병아리"+      ,"병원"+      ,"보관"+      ,"보너스"+      ,"보라색"+      ,"보람"+      ,"보름"+      ,"보상"+      ,"보안"+      ,"보자기"+      ,"보장"+      ,"보전"+      ,"보존"+      ,"보통"+      ,"보편적"+      ,"보험"+      ,"복도"+      ,"복사"+      ,"복숭아"+      ,"복습"+      ,"볶음"+      ,"본격적"+      ,"본래"+      ,"본부"+      ,"본사"+      ,"본성"+      ,"본인"+      ,"본질"+      ,"볼펜"+      ,"봉사"+      ,"봉지"+      ,"봉투"+      ,"부근"+      ,"부끄러움"+      ,"부담"+      ,"부동산"+      ,"부문"+      ,"부분"+      ,"부산"+      ,"부상"+      ,"부엌"+      ,"부인"+      ,"부작용"+      ,"부장"+      ,"부정"+      ,"부족"+      ,"부지런히"+      ,"부친"+      ,"부탁"+      ,"부품"+      ,"부회장"+      ,"북부"+      ,"북한"+      ,"분노"+      ,"분량"+      ,"분리"+      ,"분명"+      ,"분석"+      ,"분야"+      ,"분위기"+      ,"분필"+      ,"분홍색"+      ,"불고기"+      ,"불과"+      ,"불교"+      ,"불꽃"+      ,"불만"+      ,"불법"+      ,"불빛"+      ,"불안"+      ,"불이익"+      ,"불행"+      ,"브랜드"+      ,"비극"+      ,"비난"+      ,"비닐"+      ,"비둘기"+      ,"비디오"+      ,"비로소"+      ,"비만"+      ,"비명"+      ,"비밀"+      ,"비바람"+      ,"비빔밥"+      ,"비상"+      ,"비용"+      ,"비율"+      ,"비중"+      ,"비타민"+      ,"비판"+      ,"빌딩"+      ,"빗물"+      ,"빗방울"+      ,"빗줄기"+      ,"빛깔"+      ,"빨간색"+      ,"빨래"+      ,"빨리"+      ,"사건"+      ,"사계절"+      ,"사나이"+      ,"사냥"+      ,"사람"+      ,"사랑"+      ,"사립"+      ,"사모님"+      ,"사물"+      ,"사방"+      ,"사상"+      ,"사생활"+      ,"사설"+      ,"사슴"+      ,"사실"+      ,"사업"+      ,"사용"+      ,"사월"+      ,"사장"+      ,"사전"+      ,"사진"+      ,"사촌"+      ,"사춘기"+      ,"사탕"+      ,"사투리"+      ,"사흘"+      ,"산길"+      ,"산부인과"+      ,"산업"+      ,"산책"+      ,"살림"+      ,"살인"+      ,"살짝"+      ,"삼계탕"+      ,"삼국"+      ,"삼십"+      ,"삼월"+      ,"삼촌"+      ,"상관"+      ,"상금"+      ,"상대"+      ,"상류"+      ,"상반기"+      ,"상상"+      ,"상식"+      ,"상업"+      ,"상인"+      ,"상자"+      ,"상점"+      ,"상처"+      ,"상추"+      ,"상태"+      ,"상표"+      ,"상품"+      ,"상황"+      ,"새벽"+      ,"색깔"+      ,"색연필"+      ,"생각"+      ,"생명"+      ,"생물"+      ,"생방송"+      ,"생산"+      ,"생선"+      ,"생신"+      ,"생일"+      ,"생활"+      ,"서랍"+      ,"서른"+      ,"서명"+      ,"서민"+      ,"서비스"+      ,"서양"+      ,"서울"+      ,"서적"+      ,"서점"+      ,"서쪽"+      ,"서클"+      ,"석사"+      ,"석유"+      ,"선거"+      ,"선물"+      ,"선배"+      ,"선생"+      ,"선수"+      ,"선원"+      ,"선장"+      ,"선전"+      ,"선택"+      ,"선풍기"+      ,"설거지"+      ,"설날"+      ,"설렁탕"+      ,"설명"+      ,"설문"+      ,"설사"+      ,"설악산"+      ,"설치"+      ,"설탕"+      ,"섭씨"+      ,"성공"+      ,"성당"+      ,"성명"+      ,"성별"+      ,"성인"+      ,"성장"+      ,"성적"+      ,"성질"+      ,"성함"+      ,"세금"+      ,"세미나"+      ,"세상"+      ,"세월"+      ,"세종대왕"+      ,"세탁"+      ,"센터"+      ,"센티미터"+      ,"셋째"+      ,"소규모"+      ,"소극적"+      ,"소금"+      ,"소나기"+      ,"소년"+      ,"소득"+      ,"소망"+      ,"소문"+      ,"소설"+      ,"소속"+      ,"소아과"+      ,"소용"+      ,"소원"+      ,"소음"+      ,"소중히"+      ,"소지품"+      ,"소질"+      ,"소풍"+      ,"소형"+      ,"속담"+      ,"속도"+      ,"속옷"+      ,"손가락"+      ,"손길"+      ,"손녀"+      ,"손님"+      ,"손등"+      ,"손목"+      ,"손뼉"+      ,"손실"+      ,"손질"+      ,"손톱"+      ,"손해"+      ,"솔직히"+      ,"솜씨"+      ,"송아지"+      ,"송이"+      ,"송편"+      ,"쇠고기"+      ,"쇼핑"+      ,"수건"+      ,"수년"+      ,"수단"+      ,"수돗물"+      ,"수동적"+      ,"수면"+      ,"수명"+      ,"수박"+      ,"수상"+      ,"수석"+      ,"수술"+      ,"수시로"+      ,"수업"+      ,"수염"+      ,"수영"+      ,"수입"+      ,"수준"+      ,"수집"+      ,"수출"+      ,"수컷"+      ,"수필"+      ,"수학"+      ,"수험생"+      ,"수화기"+      ,"숙녀"+      ,"숙소"+      ,"숙제"+      ,"순간"+      ,"순서"+      ,"순수"+      ,"순식간"+      ,"순위"+      ,"숟가락"+      ,"술병"+      ,"술집"+      ,"숫자"+      ,"스님"+      ,"스물"+      ,"스스로"+      ,"스승"+      ,"스웨터"+      ,"스위치"+      ,"스케이트"+      ,"스튜디오"+      ,"스트레스"+      ,"스포츠"+      ,"슬쩍"+      ,"슬픔"+      ,"습관"+      ,"습기"+      ,"승객"+      ,"승리"+      ,"승부"+      ,"승용차"+      ,"승진"+      ,"시각"+      ,"시간"+      ,"시골"+      ,"시금치"+      ,"시나리오"+      ,"시댁"+      ,"시리즈"+      ,"시멘트"+      ,"시민"+      ,"시부모"+      ,"시선"+      ,"시설"+      ,"시스템"+      ,"시아버지"+      ,"시어머니"+      ,"시월"+      ,"시인"+      ,"시일"+      ,"시작"+      ,"시장"+      ,"시절"+      ,"시점"+      ,"시중"+      ,"시즌"+      ,"시집"+      ,"시청"+      ,"시합"+      ,"시험"+      ,"식구"+      ,"식기"+      ,"식당"+      ,"식량"+      ,"식료품"+      ,"식물"+      ,"식빵"+      ,"식사"+      ,"식생활"+      ,"식초"+      ,"식탁"+      ,"식품"+      ,"신고"+      ,"신규"+      ,"신념"+      ,"신문"+      ,"신발"+      ,"신비"+      ,"신사"+      ,"신세"+      ,"신용"+      ,"신제품"+      ,"신청"+      ,"신체"+      ,"신화"+      ,"실감"+      ,"실내"+      ,"실력"+      ,"실례"+      ,"실망"+      ,"실수"+      ,"실습"+      ,"실시"+      ,"실장"+      ,"실정"+      ,"실질적"+      ,"실천"+      ,"실체"+      ,"실컷"+      ,"실태"+      ,"실패"+      ,"실험"+      ,"실현"+      ,"심리"+      ,"심부름"+      ,"심사"+      ,"심장"+      ,"심정"+      ,"심판"+      ,"쌍둥이"+      ,"씨름"+      ,"씨앗"+      ,"아가씨"+      ,"아나운서"+      ,"아드님"+      ,"아들"+      ,"아쉬움"+      ,"아스팔트"+      ,"아시아"+      ,"아울러"+      ,"아저씨"+      ,"아줌마"+      ,"아직"+      ,"아침"+      ,"아파트"+      ,"아프리카"+      ,"아픔"+      ,"아홉"+      ,"아흔"+      ,"악기"+      ,"악몽"+      ,"악수"+      ,"안개"+      ,"안경"+      ,"안과"+      ,"안내"+      ,"안녕"+      ,"안동"+      ,"안방"+      ,"안부"+      ,"안주"+      ,"알루미늄"+      ,"알코올"+      ,"암시"+      ,"암컷"+      ,"압력"+      ,"앞날"+      ,"앞문"+      ,"애인"+      ,"애정"+      ,"액수"+      ,"앨범"+      ,"야간"+      ,"야단"+      ,"야옹"+      ,"약간"+      ,"약국"+      ,"약속"+      ,"약수"+      ,"약점"+      ,"약품"+      ,"약혼녀"+      ,"양념"+      ,"양력"+      ,"양말"+      ,"양배추"+      ,"양주"+      ,"양파"+      ,"어둠"+      ,"어려움"+      ,"어른"+      ,"어젯밤"+      ,"어쨌든"+      ,"어쩌다가"+      ,"어쩐지"+      ,"언니"+      ,"언덕"+      ,"언론"+      ,"언어"+      ,"얼굴"+      ,"얼른"+      ,"얼음"+      ,"얼핏"+      ,"엄마"+      ,"업무"+      ,"업종"+      ,"업체"+      ,"엉덩이"+      ,"엉망"+      ,"엉터리"+      ,"엊그제"+      ,"에너지"+      ,"에어컨"+      ,"엔진"+      ,"여건"+      ,"여고생"+      ,"여관"+      ,"여군"+      ,"여권"+      ,"여대생"+      ,"여덟"+      ,"여동생"+      ,"여든"+      ,"여론"+      ,"여름"+      ,"여섯"+      ,"여성"+      ,"여왕"+      ,"여인"+      ,"여전히"+      ,"여직원"+      ,"여학생"+      ,"여행"+      ,"역사"+      ,"역시"+      ,"역할"+      ,"연결"+      ,"연구"+      ,"연극"+      ,"연기"+      ,"연락"+      ,"연설"+      ,"연세"+      ,"연속"+      ,"연습"+      ,"연애"+      ,"연예인"+      ,"연인"+      ,"연장"+      ,"연주"+      ,"연출"+      ,"연필"+      ,"연합"+      ,"연휴"+      ,"열기"+      ,"열매"+      ,"열쇠"+      ,"열심히"+      ,"열정"+      ,"열차"+      ,"열흘"+      ,"염려"+      ,"엽서"+      ,"영국"+      ,"영남"+      ,"영상"+      ,"영양"+      ,"영역"+      ,"영웅"+      ,"영원히"+      ,"영하"+      ,"영향"+      ,"영혼"+      ,"영화"+      ,"옆구리"+      ,"옆방"+      ,"옆집"+      ,"예감"+      ,"예금"+      ,"예방"+      ,"예산"+      ,"예상"+      ,"예선"+      ,"예술"+      ,"예습"+      ,"예식장"+      ,"예약"+      ,"예전"+      ,"예절"+      ,"예정"+      ,"예컨대"+      ,"옛날"+      ,"오늘"+      ,"오락"+      ,"오랫동안"+      ,"오렌지"+      ,"오로지"+      ,"오른발"+      ,"오븐"+      ,"오십"+      ,"오염"+      ,"오월"+      ,"오전"+      ,"오직"+      ,"오징어"+      ,"오페라"+      ,"오피스텔"+      ,"오히려"+      ,"옥상"+      ,"옥수수"+      ,"온갖"+      ,"온라인"+      ,"온몸"+      ,"온종일"+      ,"온통"+      ,"올가을"+      ,"올림픽"+      ,"올해"+      ,"옷차림"+      ,"와이셔츠"+      ,"와인"+      ,"완성"+      ,"완전"+      ,"왕비"+      ,"왕자"+      ,"왜냐하면"+      ,"왠지"+      ,"외갓집"+      ,"외국"+      ,"외로움"+      ,"외삼촌"+      ,"외출"+      ,"외침"+      ,"외할머니"+      ,"왼발"+      ,"왼손"+      ,"왼쪽"+      ,"요금"+      ,"요일"+      ,"요즘"+      ,"요청"+      ,"용기"+      ,"용서"+      ,"용어"+      ,"우산"+      ,"우선"+      ,"우승"+      ,"우연히"+      ,"우정"+      ,"우체국"+      ,"우편"+      ,"운동"+      ,"운명"+      ,"운반"+      ,"운전"+      ,"운행"+      ,"울산"+      ,"울음"+      ,"움직임"+      ,"웃어른"+      ,"웃음"+      ,"워낙"+      ,"원고"+      ,"원래"+      ,"원서"+      ,"원숭이"+      ,"원인"+      ,"원장"+      ,"원피스"+      ,"월급"+      ,"월드컵"+      ,"월세"+      ,"월요일"+      ,"웨이터"+      ,"위반"+      ,"위법"+      ,"위성"+      ,"위원"+      ,"위험"+      ,"위협"+      ,"윗사람"+      ,"유난히"+      ,"유럽"+      ,"유명"+      ,"유물"+      ,"유산"+      ,"유적"+      ,"유치원"+      ,"유학"+      ,"유행"+      ,"유형"+      ,"육군"+      ,"육상"+      ,"육십"+      ,"육체"+      ,"은행"+      ,"음력"+      ,"음료"+      ,"음반"+      ,"음성"+      ,"음식"+      ,"음악"+      ,"음주"+      ,"의견"+      ,"의논"+      ,"의문"+      ,"의복"+      ,"의식"+      ,"의심"+      ,"의외로"+      ,"의욕"+      ,"의원"+      ,"의학"+      ,"이것"+      ,"이곳"+      ,"이념"+      ,"이놈"+      ,"이달"+      ,"이대로"+      ,"이동"+      ,"이렇게"+      ,"이력서"+      ,"이론적"+      ,"이름"+      ,"이민"+      ,"이발소"+      ,"이별"+      ,"이불"+      ,"이빨"+      ,"이상"+      ,"이성"+      ,"이슬"+      ,"이야기"+      ,"이용"+      ,"이웃"+      ,"이월"+      ,"이윽고"+      ,"이익"+      ,"이전"+      ,"이중"+      ,"이튿날"+      ,"이틀"+      ,"이혼"+      ,"인간"+      ,"인격"+      ,"인공"+      ,"인구"+      ,"인근"+      ,"인기"+      ,"인도"+      ,"인류"+      ,"인물"+      ,"인생"+      ,"인쇄"+      ,"인연"+      ,"인원"+      ,"인재"+      ,"인종"+      ,"인천"+      ,"인체"+      ,"인터넷"+      ,"인하"+      ,"인형"+      ,"일곱"+      ,"일기"+      ,"일단"+      ,"일대"+      ,"일등"+      ,"일반"+      ,"일본"+      ,"일부"+      ,"일상"+      ,"일생"+      ,"일손"+      ,"일요일"+      ,"일월"+      ,"일정"+      ,"일종"+      ,"일주일"+      ,"일찍"+      ,"일체"+      ,"일치"+      ,"일행"+      ,"일회용"+      ,"임금"+      ,"임무"+      ,"입대"+      ,"입력"+      ,"입맛"+      ,"입사"+      ,"입술"+      ,"입시"+      ,"입원"+      ,"입장"+      ,"입학"+      ,"자가용"+      ,"자격"+      ,"자극"+      ,"자동"+      ,"자랑"+      ,"자부심"+      ,"자식"+      ,"자신"+      ,"자연"+      ,"자원"+      ,"자율"+      ,"자전거"+      ,"자정"+      ,"자존심"+      ,"자판"+      ,"작가"+      ,"작년"+      ,"작성"+      ,"작업"+      ,"작용"+      ,"작은딸"+      ,"작품"+      ,"잔디"+      ,"잔뜩"+      ,"잔치"+      ,"잘못"+      ,"잠깐"+      ,"잠수함"+      ,"잠시"+      ,"잠옷"+      ,"잠자리"+      ,"잡지"+      ,"장관"+      ,"장군"+      ,"장기간"+      ,"장래"+      ,"장례"+      ,"장르"+      ,"장마"+      ,"장면"+      ,"장모"+      ,"장미"+      ,"장비"+      ,"장사"+      ,"장소"+      ,"장식"+      ,"장애인"+      ,"장인"+      ,"장점"+      ,"장차"+      ,"장학금"+      ,"재능"+      ,"재빨리"+      ,"재산"+      ,"재생"+      ,"재작년"+      ,"재정"+      ,"재채기"+      ,"재판"+      ,"재학"+      ,"재활용"+      ,"저것"+      ,"저고리"+      ,"저곳"+      ,"저녁"+      ,"저런"+      ,"저렇게"+      ,"저번"+      ,"저울"+      ,"저절로"+      ,"저축"+      ,"적극"+      ,"적당히"+      ,"적성"+      ,"적용"+      ,"적응"+      ,"전개"+      ,"전공"+      ,"전기"+      ,"전달"+      ,"전라도"+      ,"전망"+      ,"전문"+      ,"전반"+      ,"전부"+      ,"전세"+      ,"전시"+      ,"전용"+      ,"전자"+      ,"전쟁"+      ,"전주"+      ,"전철"+      ,"전체"+      ,"전통"+      ,"전혀"+      ,"전후"+      ,"절대"+      ,"절망"+      ,"절반"+      ,"절약"+      ,"절차"+      ,"점검"+      ,"점수"+      ,"점심"+      ,"점원"+      ,"점점"+      ,"점차"+      ,"접근"+      ,"접시"+      ,"접촉"+      ,"젓가락"+      ,"정거장"+      ,"정도"+      ,"정류장"+      ,"정리"+      ,"정말"+      ,"정면"+      ,"정문"+      ,"정반대"+      ,"정보"+      ,"정부"+      ,"정비"+      ,"정상"+      ,"정성"+      ,"정오"+      ,"정원"+      ,"정장"+      ,"정지"+      ,"정치"+      ,"정확히"+      ,"제공"+      ,"제과점"+      ,"제대로"+      ,"제목"+      ,"제발"+      ,"제법"+      ,"제삿날"+      ,"제안"+      ,"제일"+      ,"제작"+      ,"제주도"+      ,"제출"+      ,"제품"+      ,"제한"+      ,"조각"+      ,"조건"+      ,"조금"+      ,"조깅"+      ,"조명"+      ,"조미료"+      ,"조상"+      ,"조선"+      ,"조용히"+      ,"조절"+      ,"조정"+      ,"조직"+      ,"존댓말"+      ,"존재"+      ,"졸업"+      ,"졸음"+      ,"종교"+      ,"종로"+      ,"종류"+      ,"종소리"+      ,"종업원"+      ,"종종"+      ,"종합"+      ,"좌석"+      ,"죄인"+      ,"주관적"+      ,"주름"+      ,"주말"+      ,"주머니"+      ,"주먹"+      ,"주문"+      ,"주민"+      ,"주방"+      ,"주변"+      ,"주식"+      ,"주인"+      ,"주일"+      ,"주장"+      ,"주전자"+      ,"주택"+      ,"준비"+      ,"줄거리"+      ,"줄기"+      ,"줄무늬"+      ,"중간"+      ,"중계방송"+      ,"중국"+      ,"중년"+      ,"중단"+      ,"중독"+      ,"중반"+      ,"중부"+      ,"중세"+      ,"중소기업"+      ,"중순"+      ,"중앙"+      ,"중요"+      ,"중학교"+      ,"즉석"+      ,"즉시"+      ,"즐거움"+      ,"증가"+      ,"증거"+      ,"증권"+      ,"증상"+      ,"증세"+      ,"지각"+      ,"지갑"+      ,"지경"+      ,"지극히"+      ,"지금"+      ,"지급"+      ,"지능"+      ,"지름길"+      ,"지리산"+      ,"지방"+      ,"지붕"+      ,"지식"+      ,"지역"+      ,"지우개"+      ,"지원"+      ,"지적"+      ,"지점"+      ,"지진"+      ,"지출"+      ,"직선"+      ,"직업"+      ,"직원"+      ,"직장"+      ,"진급"+      ,"진동"+      ,"진로"+      ,"진료"+      ,"진리"+      ,"진짜"+      ,"진찰"+      ,"진출"+      ,"진통"+      ,"진행"+      ,"질문"+      ,"질병"+      ,"질서"+      ,"짐작"+      ,"집단"+      ,"집안"+      ,"집중"+      ,"짜증"+      ,"찌꺼기"+      ,"차남"+      ,"차라리"+      ,"차량"+      ,"차림"+      ,"차별"+      ,"차선"+      ,"차츰"+      ,"착각"+      ,"찬물"+      ,"찬성"+      ,"참가"+      ,"참기름"+      ,"참새"+      ,"참석"+      ,"참여"+      ,"참외"+      ,"참조"+      ,"찻잔"+      ,"창가"+      ,"창고"+      ,"창구"+      ,"창문"+      ,"창밖"+      ,"창작"+      ,"창조"+      ,"채널"+      ,"채점"+      ,"책가방"+      ,"책방"+      ,"책상"+      ,"책임"+      ,"챔피언"+      ,"처벌"+      ,"처음"+      ,"천국"+      ,"천둥"+      ,"천장"+      ,"천재"+      ,"천천히"+      ,"철도"+      ,"철저히"+      ,"철학"+      ,"첫날"+      ,"첫째"+      ,"청년"+      ,"청바지"+      ,"청소"+      ,"청춘"+      ,"체계"+      ,"체력"+      ,"체온"+      ,"체육"+      ,"체중"+      ,"체험"+      ,"초등학생"+      ,"초반"+      ,"초밥"+      ,"초상화"+      ,"초순"+      ,"초여름"+      ,"초원"+      ,"초저녁"+      ,"초점"+      ,"초청"+      ,"초콜릿"+      ,"촛불"+      ,"총각"+      ,"총리"+      ,"총장"+      ,"촬영"+      ,"최근"+      ,"최상"+      ,"최선"+      ,"최신"+      ,"최악"+      ,"최종"+      ,"추석"+      ,"추억"+      ,"추진"+      ,"추천"+      ,"추측"+      ,"축구"+      ,"축소"+      ,"축제"+      ,"축하"+      ,"출근"+      ,"출발"+      ,"출산"+      ,"출신"+      ,"출연"+      ,"출입"+      ,"출장"+      ,"출판"+      ,"충격"+      ,"충고"+      ,"충돌"+      ,"충분히"+      ,"충청도"+      ,"취업"+      ,"취직"+      ,"취향"+      ,"치약"+      ,"친구"+      ,"친척"+      ,"칠십"+      ,"칠월"+      ,"칠판"+      ,"침대"+      ,"침묵"+      ,"침실"+      ,"칫솔"+      ,"칭찬"+      ,"카메라"+      ,"카운터"+      ,"칼국수"+      ,"캐릭터"+      ,"캠퍼스"+      ,"캠페인"+      ,"커튼"+      ,"컨디션"+      ,"컬러"+      ,"컴퓨터"+      ,"코끼리"+      ,"코미디"+      ,"콘서트"+      ,"콜라"+      ,"콤플렉스"+      ,"콩나물"+      ,"쾌감"+      ,"쿠데타"+      ,"크림"+      ,"큰길"+      ,"큰딸"+      ,"큰소리"+      ,"큰아들"+      ,"큰어머니"+      ,"큰일"+      ,"큰절"+      ,"클래식"+      ,"클럽"+      ,"킬로"+      ,"타입"+      ,"타자기"+      ,"탁구"+      ,"탁자"+      ,"탄생"+      ,"태권도"+      ,"태양"+      ,"태풍"+      ,"택시"+      ,"탤런트"+      ,"터널"+      ,"터미널"+      ,"테니스"+      ,"테스트"+      ,"테이블"+      ,"텔레비전"+      ,"토론"+      ,"토마토"+      ,"토요일"+      ,"통계"+      ,"통과"+      ,"통로"+      ,"통신"+      ,"통역"+      ,"통일"+      ,"통장"+      ,"통제"+      ,"통증"+      ,"통합"+      ,"통화"+      ,"퇴근"+      ,"퇴원"+      ,"퇴직금"+      ,"튀김"+      ,"트럭"+      ,"특급"+      ,"특별"+      ,"특성"+      ,"특수"+      ,"특징"+      ,"특히"+      ,"튼튼히"+      ,"티셔츠"+      ,"파란색"+      ,"파일"+      ,"파출소"+      ,"판결"+      ,"판단"+      ,"판매"+      ,"판사"+      ,"팔십"+      ,"팔월"+      ,"팝송"+      ,"패션"+      ,"팩스"+      ,"팩시밀리"+      ,"팬티"+      ,"퍼센트"+      ,"페인트"+      ,"편견"+      ,"편의"+      ,"편지"+      ,"편히"+      ,"평가"+      ,"평균"+      ,"평생"+      ,"평소"+      ,"평양"+      ,"평일"+      ,"평화"+      ,"포스터"+      ,"포인트"+      ,"포장"+      ,"포함"+      ,"표면"+      ,"표정"+      ,"표준"+      ,"표현"+      ,"품목"+      ,"품질"+      ,"풍경"+      ,"풍속"+      ,"풍습"+      ,"프랑스"+      ,"프린터"+      ,"플라스틱"+      ,"피곤"+      ,"피망"+      ,"피아노"+      ,"필름"+      ,"필수"+      ,"필요"+      ,"필자"+      ,"필통"+      ,"핑계"+      ,"하느님"+      ,"하늘"+      ,"하드웨어"+      ,"하룻밤"+      ,"하반기"+      ,"하숙집"+      ,"하순"+      ,"하여튼"+      ,"하지만"+      ,"하천"+      ,"하품"+      ,"하필"+      ,"학과"+      ,"학교"+      ,"학급"+      ,"학기"+      ,"학년"+      ,"학력"+      ,"학번"+      ,"학부모"+      ,"학비"+      ,"학생"+      ,"학술"+      ,"학습"+      ,"학용품"+      ,"학원"+      ,"학위"+      ,"학자"+      ,"학점"+      ,"한계"+      ,"한글"+      ,"한꺼번에"+      ,"한낮"+      ,"한눈"+      ,"한동안"+      ,"한때"+      ,"한라산"+      ,"한마디"+      ,"한문"+      ,"한번"+      ,"한복"+      ,"한식"+      ,"한여름"+      ,"한쪽"+      ,"할머니"+      ,"할아버지"+      ,"할인"+      ,"함께"+      ,"함부로"+      ,"합격"+      ,"합리적"+      ,"항공"+      ,"항구"+      ,"항상"+      ,"항의"+      ,"해결"+      ,"해군"+      ,"해답"+      ,"해당"+      ,"해물"+      ,"해석"+      ,"해설"+      ,"해수욕장"+      ,"해안"+      ,"핵심"+      ,"핸드백"+      ,"햄버거"+      ,"햇볕"+      ,"햇살"+      ,"행동"+      ,"행복"+      ,"행사"+      ,"행운"+      ,"행위"+      ,"향기"+      ,"향상"+      ,"향수"+      ,"허락"+      ,"허용"+      ,"헬기"+      ,"현관"+      ,"현금"+      ,"현대"+      ,"현상"+      ,"현실"+      ,"현장"+      ,"현재"+      ,"현지"+      ,"혈액"+      ,"협력"+      ,"형부"+      ,"형사"+      ,"형수"+      ,"형식"+      ,"형제"+      ,"형태"+      ,"형편"+      ,"혜택"+      ,"호기심"+      ,"호남"+      ,"호랑이"+      ,"호박"+      ,"호텔"+      ,"호흡"+      ,"혹시"+      ,"홀로"+      ,"홈페이지"+      ,"홍보"+      ,"홍수"+      ,"홍차"+      ,"화면"+      ,"화분"+      ,"화살"+      ,"화요일"+      ,"화장"+      ,"화학"+      ,"확보"+      ,"확인"+      ,"확장"+      ,"확정"+      ,"환갑"+      ,"환경"+      ,"환영"+      ,"환율"+      ,"환자"+      ,"활기"+      ,"활동"+      ,"활발히"+      ,"활용"+      ,"활짝"+      ,"회견"+      ,"회관"+      ,"회복"+      ,"회색"+      ,"회원"+      ,"회장"+      ,"회전"+      ,"횟수"+      ,"횡단보도"+      ,"효율적"+      ,"후반"+      ,"후춧가루"+      ,"훈련"+      ,"훨씬"+      ,"휴식"+      ,"휴일"+      ,"흉내"+      ,"흐름"+      ,"흑백"+      ,"흑인"+      ,"흔적"+      ,"흔히"+      ,"흥미"+      ,"흥분"+      ,"희곡"+      ,"희망"+      ,"희생"+      ,"흰색"+      ,"힘껏"+      ]
+ lib/Cardano/Dictionary/Spanish.hs view
@@ -0,0 +1,2079 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}++{-# OPTIONS_HADDOCK hide #-}++-- |+-- Copyright: 2025 Intersect+-- License: Apache-2.0+--+-- Adopted from https://github.com/IntersectMBO/cardano-crypto/blob/develop/src/Crypto/Encoding/BIP39/spanish.hs++module Cardano.Dictionary.Spanish+    (+    -- * dictionary value+     spanish+    ) where++import Basement.String+    ( String )+import Cardano.Dictionary.Generic+    ( toDictionary )+import Crypto.Encoding.BIP39.Dictionary+    ( Dictionary )++spanish :: Dictionary+spanish = toDictionary wordList+  where+  wordList :: [String]+  wordList =+      ["ábaco"+      ,"abdomen"+      ,"abeja"+      ,"abierto"+      ,"abogado"+      ,"abono"+      ,"aborto"+      ,"abrazo"+      ,"abrir"+      ,"abuelo"+      ,"abuso"+      ,"acabar"+      ,"academia"+      ,"acceso"+      ,"acción"+      ,"aceite"+      ,"acelga"+      ,"acento"+      ,"aceptar"+      ,"ácido"+      ,"aclarar"+      ,"acné"+      ,"acoger"+      ,"acoso"+      ,"activo"+      ,"acto"+      ,"actriz"+      ,"actuar"+      ,"acudir"+      ,"acuerdo"+      ,"acusar"+      ,"adicto"+      ,"admitir"+      ,"adoptar"+      ,"adorno"+      ,"aduana"+      ,"adulto"+      ,"aéreo"+      ,"afectar"+      ,"afición"+      ,"afinar"+      ,"afirmar"+      ,"ágil"+      ,"agitar"+      ,"agonía"+      ,"agosto"+      ,"agotar"+      ,"agregar"+      ,"agrio"+      ,"agua"+      ,"agudo"+      ,"águila"+      ,"aguja"+      ,"ahogo"+      ,"ahorro"+      ,"aire"+      ,"aislar"+      ,"ajedrez"+      ,"ajeno"+      ,"ajuste"+      ,"alacrán"+      ,"alambre"+      ,"alarma"+      ,"alba"+      ,"álbum"+      ,"alcalde"+      ,"aldea"+      ,"alegre"+      ,"alejar"+      ,"alerta"+      ,"aleta"+      ,"alfiler"+      ,"alga"+      ,"algodón"+      ,"aliado"+      ,"aliento"+      ,"alivio"+      ,"alma"+      ,"almeja"+      ,"almíbar"+      ,"altar"+      ,"alteza"+      ,"altivo"+      ,"alto"+      ,"altura"+      ,"alumno"+      ,"alzar"+      ,"amable"+      ,"amante"+      ,"amapola"+      ,"amargo"+      ,"amasar"+      ,"ámbar"+      ,"ámbito"+      ,"ameno"+      ,"amigo"+      ,"amistad"+      ,"amor"+      ,"amparo"+      ,"amplio"+      ,"ancho"+      ,"anciano"+      ,"ancla"+      ,"andar"+      ,"andén"+      ,"anemia"+      ,"ángulo"+      ,"anillo"+      ,"ánimo"+      ,"anís"+      ,"anotar"+      ,"antena"+      ,"antiguo"+      ,"antojo"+      ,"anual"+      ,"anular"+      ,"anuncio"+      ,"añadir"+      ,"añejo"+      ,"año"+      ,"apagar"+      ,"aparato"+      ,"apetito"+      ,"apio"+      ,"aplicar"+      ,"apodo"+      ,"aporte"+      ,"apoyo"+      ,"aprender"+      ,"aprobar"+      ,"apuesta"+      ,"apuro"+      ,"arado"+      ,"araña"+      ,"arar"+      ,"árbitro"+      ,"árbol"+      ,"arbusto"+      ,"archivo"+      ,"arco"+      ,"arder"+      ,"ardilla"+      ,"arduo"+      ,"área"+      ,"árido"+      ,"aries"+      ,"armonía"+      ,"arnés"+      ,"aroma"+      ,"arpa"+      ,"arpón"+      ,"arreglo"+      ,"arroz"+      ,"arruga"+      ,"arte"+      ,"artista"+      ,"asa"+      ,"asado"+      ,"asalto"+      ,"ascenso"+      ,"asegurar"+      ,"aseo"+      ,"asesor"+      ,"asiento"+      ,"asilo"+      ,"asistir"+      ,"asno"+      ,"asombro"+      ,"áspero"+      ,"astilla"+      ,"astro"+      ,"astuto"+      ,"asumir"+      ,"asunto"+      ,"atajo"+      ,"ataque"+      ,"atar"+      ,"atento"+      ,"ateo"+      ,"ático"+      ,"atleta"+      ,"átomo"+      ,"atraer"+      ,"atroz"+      ,"atún"+      ,"audaz"+      ,"audio"+      ,"auge"+      ,"aula"+      ,"aumento"+      ,"ausente"+      ,"autor"+      ,"aval"+      ,"avance"+      ,"avaro"+      ,"ave"+      ,"avellana"+      ,"avena"+      ,"avestruz"+      ,"avión"+      ,"aviso"+      ,"ayer"+      ,"ayuda"+      ,"ayuno"+      ,"azafrán"+      ,"azar"+      ,"azote"+      ,"azúcar"+      ,"azufre"+      ,"azul"+      ,"baba"+      ,"babor"+      ,"bache"+      ,"bahía"+      ,"baile"+      ,"bajar"+      ,"balanza"+      ,"balcón"+      ,"balde"+      ,"bambú"+      ,"banco"+      ,"banda"+      ,"baño"+      ,"barba"+      ,"barco"+      ,"barniz"+      ,"barro"+      ,"báscula"+      ,"bastón"+      ,"basura"+      ,"batalla"+      ,"batería"+      ,"batir"+      ,"batuta"+      ,"baúl"+      ,"bazar"+      ,"bebé"+      ,"bebida"+      ,"bello"+      ,"besar"+      ,"beso"+      ,"bestia"+      ,"bicho"+      ,"bien"+      ,"bingo"+      ,"blanco"+      ,"bloque"+      ,"blusa"+      ,"boa"+      ,"bobina"+      ,"bobo"+      ,"boca"+      ,"bocina"+      ,"boda"+      ,"bodega"+      ,"boina"+      ,"bola"+      ,"bolero"+      ,"bolsa"+      ,"bomba"+      ,"bondad"+      ,"bonito"+      ,"bono"+      ,"bonsái"+      ,"borde"+      ,"borrar"+      ,"bosque"+      ,"bote"+      ,"botín"+      ,"bóveda"+      ,"bozal"+      ,"bravo"+      ,"brazo"+      ,"brecha"+      ,"breve"+      ,"brillo"+      ,"brinco"+      ,"brisa"+      ,"broca"+      ,"broma"+      ,"bronce"+      ,"brote"+      ,"bruja"+      ,"brusco"+      ,"bruto"+      ,"buceo"+      ,"bucle"+      ,"bueno"+      ,"buey"+      ,"bufanda"+      ,"bufón"+      ,"búho"+      ,"buitre"+      ,"bulto"+      ,"burbuja"+      ,"burla"+      ,"burro"+      ,"buscar"+      ,"butaca"+      ,"buzón"+      ,"caballo"+      ,"cabeza"+      ,"cabina"+      ,"cabra"+      ,"cacao"+      ,"cadáver"+      ,"cadena"+      ,"caer"+      ,"café"+      ,"caída"+      ,"caimán"+      ,"caja"+      ,"cajón"+      ,"cal"+      ,"calamar"+      ,"calcio"+      ,"caldo"+      ,"calidad"+      ,"calle"+      ,"calma"+      ,"calor"+      ,"calvo"+      ,"cama"+      ,"cambio"+      ,"camello"+      ,"camino"+      ,"campo"+      ,"cáncer"+      ,"candil"+      ,"canela"+      ,"canguro"+      ,"canica"+      ,"canto"+      ,"caña"+      ,"cañón"+      ,"caoba"+      ,"caos"+      ,"capaz"+      ,"capitán"+      ,"capote"+      ,"captar"+      ,"capucha"+      ,"cara"+      ,"carbón"+      ,"cárcel"+      ,"careta"+      ,"carga"+      ,"cariño"+      ,"carne"+      ,"carpeta"+      ,"carro"+      ,"carta"+      ,"casa"+      ,"casco"+      ,"casero"+      ,"caspa"+      ,"castor"+      ,"catorce"+      ,"catre"+      ,"caudal"+      ,"causa"+      ,"cazo"+      ,"cebolla"+      ,"ceder"+      ,"cedro"+      ,"celda"+      ,"célebre"+      ,"celoso"+      ,"célula"+      ,"cemento"+      ,"ceniza"+      ,"centro"+      ,"cerca"+      ,"cerdo"+      ,"cereza"+      ,"cero"+      ,"cerrar"+      ,"certeza"+      ,"césped"+      ,"cetro"+      ,"chacal"+      ,"chaleco"+      ,"champú"+      ,"chancla"+      ,"chapa"+      ,"charla"+      ,"chico"+      ,"chiste"+      ,"chivo"+      ,"choque"+      ,"choza"+      ,"chuleta"+      ,"chupar"+      ,"ciclón"+      ,"ciego"+      ,"cielo"+      ,"cien"+      ,"cierto"+      ,"cifra"+      ,"cigarro"+      ,"cima"+      ,"cinco"+      ,"cine"+      ,"cinta"+      ,"ciprés"+      ,"circo"+      ,"ciruela"+      ,"cisne"+      ,"cita"+      ,"ciudad"+      ,"clamor"+      ,"clan"+      ,"claro"+      ,"clase"+      ,"clave"+      ,"cliente"+      ,"clima"+      ,"clínica"+      ,"cobre"+      ,"cocción"+      ,"cochino"+      ,"cocina"+      ,"coco"+      ,"código"+      ,"codo"+      ,"cofre"+      ,"coger"+      ,"cohete"+      ,"cojín"+      ,"cojo"+      ,"cola"+      ,"colcha"+      ,"colegio"+      ,"colgar"+      ,"colina"+      ,"collar"+      ,"colmo"+      ,"columna"+      ,"combate"+      ,"comer"+      ,"comida"+      ,"cómodo"+      ,"compra"+      ,"conde"+      ,"conejo"+      ,"conga"+      ,"conocer"+      ,"consejo"+      ,"contar"+      ,"copa"+      ,"copia"+      ,"corazón"+      ,"corbata"+      ,"corcho"+      ,"cordón"+      ,"corona"+      ,"correr"+      ,"coser"+      ,"cosmos"+      ,"costa"+      ,"cráneo"+      ,"cráter"+      ,"crear"+      ,"crecer"+      ,"creído"+      ,"crema"+      ,"cría"+      ,"crimen"+      ,"cripta"+      ,"crisis"+      ,"cromo"+      ,"crónica"+      ,"croqueta"+      ,"crudo"+      ,"cruz"+      ,"cuadro"+      ,"cuarto"+      ,"cuatro"+      ,"cubo"+      ,"cubrir"+      ,"cuchara"+      ,"cuello"+      ,"cuento"+      ,"cuerda"+      ,"cuesta"+      ,"cueva"+      ,"cuidar"+      ,"culebra"+      ,"culpa"+      ,"culto"+      ,"cumbre"+      ,"cumplir"+      ,"cuna"+      ,"cuneta"+      ,"cuota"+      ,"cupón"+      ,"cúpula"+      ,"curar"+      ,"curioso"+      ,"curso"+      ,"curva"+      ,"cutis"+      ,"dama"+      ,"danza"+      ,"dar"+      ,"dardo"+      ,"dátil"+      ,"deber"+      ,"débil"+      ,"década"+      ,"decir"+      ,"dedo"+      ,"defensa"+      ,"definir"+      ,"dejar"+      ,"delfín"+      ,"delgado"+      ,"delito"+      ,"demora"+      ,"denso"+      ,"dental"+      ,"deporte"+      ,"derecho"+      ,"derrota"+      ,"desayuno"+      ,"deseo"+      ,"desfile"+      ,"desnudo"+      ,"destino"+      ,"desvío"+      ,"detalle"+      ,"detener"+      ,"deuda"+      ,"día"+      ,"diablo"+      ,"diadema"+      ,"diamante"+      ,"diana"+      ,"diario"+      ,"dibujo"+      ,"dictar"+      ,"diente"+      ,"dieta"+      ,"diez"+      ,"difícil"+      ,"digno"+      ,"dilema"+      ,"diluir"+      ,"dinero"+      ,"directo"+      ,"dirigir"+      ,"disco"+      ,"diseño"+      ,"disfraz"+      ,"diva"+      ,"divino"+      ,"doble"+      ,"doce"+      ,"dolor"+      ,"domingo"+      ,"don"+      ,"donar"+      ,"dorado"+      ,"dormir"+      ,"dorso"+      ,"dos"+      ,"dosis"+      ,"dragón"+      ,"droga"+      ,"ducha"+      ,"duda"+      ,"duelo"+      ,"dueño"+      ,"dulce"+      ,"dúo"+      ,"duque"+      ,"durar"+      ,"dureza"+      ,"duro"+      ,"ébano"+      ,"ebrio"+      ,"echar"+      ,"eco"+      ,"ecuador"+      ,"edad"+      ,"edición"+      ,"edificio"+      ,"editor"+      ,"educar"+      ,"efecto"+      ,"eficaz"+      ,"eje"+      ,"ejemplo"+      ,"elefante"+      ,"elegir"+      ,"elemento"+      ,"elevar"+      ,"elipse"+      ,"élite"+      ,"elixir"+      ,"elogio"+      ,"eludir"+      ,"embudo"+      ,"emitir"+      ,"emoción"+      ,"empate"+      ,"empeño"+      ,"empleo"+      ,"empresa"+      ,"enano"+      ,"encargo"+      ,"enchufe"+      ,"encía"+      ,"enemigo"+      ,"enero"+      ,"enfado"+      ,"enfermo"+      ,"engaño"+      ,"enigma"+      ,"enlace"+      ,"enorme"+      ,"enredo"+      ,"ensayo"+      ,"enseñar"+      ,"entero"+      ,"entrar"+      ,"envase"+      ,"envío"+      ,"época"+      ,"equipo"+      ,"erizo"+      ,"escala"+      ,"escena"+      ,"escolar"+      ,"escribir"+      ,"escudo"+      ,"esencia"+      ,"esfera"+      ,"esfuerzo"+      ,"espada"+      ,"espejo"+      ,"espía"+      ,"esposa"+      ,"espuma"+      ,"esquí"+      ,"estar"+      ,"este"+      ,"estilo"+      ,"estufa"+      ,"etapa"+      ,"eterno"+      ,"ética"+      ,"etnia"+      ,"evadir"+      ,"evaluar"+      ,"evento"+      ,"evitar"+      ,"exacto"+      ,"examen"+      ,"exceso"+      ,"excusa"+      ,"exento"+      ,"exigir"+      ,"exilio"+      ,"existir"+      ,"éxito"+      ,"experto"+      ,"explicar"+      ,"exponer"+      ,"extremo"+      ,"fábrica"+      ,"fábula"+      ,"fachada"+      ,"fácil"+      ,"factor"+      ,"faena"+      ,"faja"+      ,"falda"+      ,"fallo"+      ,"falso"+      ,"faltar"+      ,"fama"+      ,"familia"+      ,"famoso"+      ,"faraón"+      ,"farmacia"+      ,"farol"+      ,"farsa"+      ,"fase"+      ,"fatiga"+      ,"fauna"+      ,"favor"+      ,"fax"+      ,"febrero"+      ,"fecha"+      ,"feliz"+      ,"feo"+      ,"feria"+      ,"feroz"+      ,"fértil"+      ,"fervor"+      ,"festín"+      ,"fiable"+      ,"fianza"+      ,"fiar"+      ,"fibra"+      ,"ficción"+      ,"ficha"+      ,"fideo"+      ,"fiebre"+      ,"fiel"+      ,"fiera"+      ,"fiesta"+      ,"figura"+      ,"fijar"+      ,"fijo"+      ,"fila"+      ,"filete"+      ,"filial"+      ,"filtro"+      ,"fin"+      ,"finca"+      ,"fingir"+      ,"finito"+      ,"firma"+      ,"flaco"+      ,"flauta"+      ,"flecha"+      ,"flor"+      ,"flota"+      ,"fluir"+      ,"flujo"+      ,"flúor"+      ,"fobia"+      ,"foca"+      ,"fogata"+      ,"fogón"+      ,"folio"+      ,"folleto"+      ,"fondo"+      ,"forma"+      ,"forro"+      ,"fortuna"+      ,"forzar"+      ,"fosa"+      ,"foto"+      ,"fracaso"+      ,"frágil"+      ,"franja"+      ,"frase"+      ,"fraude"+      ,"freír"+      ,"freno"+      ,"fresa"+      ,"frío"+      ,"frito"+      ,"fruta"+      ,"fuego"+      ,"fuente"+      ,"fuerza"+      ,"fuga"+      ,"fumar"+      ,"función"+      ,"funda"+      ,"furgón"+      ,"furia"+      ,"fusil"+      ,"fútbol"+      ,"futuro"+      ,"gacela"+      ,"gafas"+      ,"gaita"+      ,"gajo"+      ,"gala"+      ,"galería"+      ,"gallo"+      ,"gamba"+      ,"ganar"+      ,"gancho"+      ,"ganga"+      ,"ganso"+      ,"garaje"+      ,"garza"+      ,"gasolina"+      ,"gastar"+      ,"gato"+      ,"gavilán"+      ,"gemelo"+      ,"gemir"+      ,"gen"+      ,"género"+      ,"genio"+      ,"gente"+      ,"geranio"+      ,"gerente"+      ,"germen"+      ,"gesto"+      ,"gigante"+      ,"gimnasio"+      ,"girar"+      ,"giro"+      ,"glaciar"+      ,"globo"+      ,"gloria"+      ,"gol"+      ,"golfo"+      ,"goloso"+      ,"golpe"+      ,"goma"+      ,"gordo"+      ,"gorila"+      ,"gorra"+      ,"gota"+      ,"goteo"+      ,"gozar"+      ,"grada"+      ,"gráfico"+      ,"grano"+      ,"grasa"+      ,"gratis"+      ,"grave"+      ,"grieta"+      ,"grillo"+      ,"gripe"+      ,"gris"+      ,"grito"+      ,"grosor"+      ,"grúa"+      ,"grueso"+      ,"grumo"+      ,"grupo"+      ,"guante"+      ,"guapo"+      ,"guardia"+      ,"guerra"+      ,"guía"+      ,"guiño"+      ,"guion"+      ,"guiso"+      ,"guitarra"+      ,"gusano"+      ,"gustar"+      ,"haber"+      ,"hábil"+      ,"hablar"+      ,"hacer"+      ,"hacha"+      ,"hada"+      ,"hallar"+      ,"hamaca"+      ,"harina"+      ,"haz"+      ,"hazaña"+      ,"hebilla"+      ,"hebra"+      ,"hecho"+      ,"helado"+      ,"helio"+      ,"hembra"+      ,"herir"+      ,"hermano"+      ,"héroe"+      ,"hervir"+      ,"hielo"+      ,"hierro"+      ,"hígado"+      ,"higiene"+      ,"hijo"+      ,"himno"+      ,"historia"+      ,"hocico"+      ,"hogar"+      ,"hoguera"+      ,"hoja"+      ,"hombre"+      ,"hongo"+      ,"honor"+      ,"honra"+      ,"hora"+      ,"hormiga"+      ,"horno"+      ,"hostil"+      ,"hoyo"+      ,"hueco"+      ,"huelga"+      ,"huerta"+      ,"hueso"+      ,"huevo"+      ,"huida"+      ,"huir"+      ,"humano"+      ,"húmedo"+      ,"humilde"+      ,"humo"+      ,"hundir"+      ,"huracán"+      ,"hurto"+      ,"icono"+      ,"ideal"+      ,"idioma"+      ,"ídolo"+      ,"iglesia"+      ,"iglú"+      ,"igual"+      ,"ilegal"+      ,"ilusión"+      ,"imagen"+      ,"imán"+      ,"imitar"+      ,"impar"+      ,"imperio"+      ,"imponer"+      ,"impulso"+      ,"incapaz"+      ,"índice"+      ,"inerte"+      ,"infiel"+      ,"informe"+      ,"ingenio"+      ,"inicio"+      ,"inmenso"+      ,"inmune"+      ,"innato"+      ,"insecto"+      ,"instante"+      ,"interés"+      ,"íntimo"+      ,"intuir"+      ,"inútil"+      ,"invierno"+      ,"ira"+      ,"iris"+      ,"ironía"+      ,"isla"+      ,"islote"+      ,"jabalí"+      ,"jabón"+      ,"jamón"+      ,"jarabe"+      ,"jardín"+      ,"jarra"+      ,"jaula"+      ,"jazmín"+      ,"jefe"+      ,"jeringa"+      ,"jinete"+      ,"jornada"+      ,"joroba"+      ,"joven"+      ,"joya"+      ,"juerga"+      ,"jueves"+      ,"juez"+      ,"jugador"+      ,"jugo"+      ,"juguete"+      ,"juicio"+      ,"junco"+      ,"jungla"+      ,"junio"+      ,"juntar"+      ,"júpiter"+      ,"jurar"+      ,"justo"+      ,"juvenil"+      ,"juzgar"+      ,"kilo"+      ,"koala"+      ,"labio"+      ,"lacio"+      ,"lacra"+      ,"lado"+      ,"ladrón"+      ,"lagarto"+      ,"lágrima"+      ,"laguna"+      ,"laico"+      ,"lamer"+      ,"lámina"+      ,"lámpara"+      ,"lana"+      ,"lancha"+      ,"langosta"+      ,"lanza"+      ,"lápiz"+      ,"largo"+      ,"larva"+      ,"lástima"+      ,"lata"+      ,"látex"+      ,"latir"+      ,"laurel"+      ,"lavar"+      ,"lazo"+      ,"leal"+      ,"lección"+      ,"leche"+      ,"lector"+      ,"leer"+      ,"legión"+      ,"legumbre"+      ,"lejano"+      ,"lengua"+      ,"lento"+      ,"leña"+      ,"león"+      ,"leopardo"+      ,"lesión"+      ,"letal"+      ,"letra"+      ,"leve"+      ,"leyenda"+      ,"libertad"+      ,"libro"+      ,"licor"+      ,"líder"+      ,"lidiar"+      ,"lienzo"+      ,"liga"+      ,"ligero"+      ,"lima"+      ,"límite"+      ,"limón"+      ,"limpio"+      ,"lince"+      ,"lindo"+      ,"línea"+      ,"lingote"+      ,"lino"+      ,"linterna"+      ,"líquido"+      ,"liso"+      ,"lista"+      ,"litera"+      ,"litio"+      ,"litro"+      ,"llaga"+      ,"llama"+      ,"llanto"+      ,"llave"+      ,"llegar"+      ,"llenar"+      ,"llevar"+      ,"llorar"+      ,"llover"+      ,"lluvia"+      ,"lobo"+      ,"loción"+      ,"loco"+      ,"locura"+      ,"lógica"+      ,"logro"+      ,"lombriz"+      ,"lomo"+      ,"lonja"+      ,"lote"+      ,"lucha"+      ,"lucir"+      ,"lugar"+      ,"lujo"+      ,"luna"+      ,"lunes"+      ,"lupa"+      ,"lustro"+      ,"luto"+      ,"luz"+      ,"maceta"+      ,"macho"+      ,"madera"+      ,"madre"+      ,"maduro"+      ,"maestro"+      ,"mafia"+      ,"magia"+      ,"mago"+      ,"maíz"+      ,"maldad"+      ,"maleta"+      ,"malla"+      ,"malo"+      ,"mamá"+      ,"mambo"+      ,"mamut"+      ,"manco"+      ,"mando"+      ,"manejar"+      ,"manga"+      ,"maniquí"+      ,"manjar"+      ,"mano"+      ,"manso"+      ,"manta"+      ,"mañana"+      ,"mapa"+      ,"máquina"+      ,"mar"+      ,"marco"+      ,"marea"+      ,"marfil"+      ,"margen"+      ,"marido"+      ,"mármol"+      ,"marrón"+      ,"martes"+      ,"marzo"+      ,"masa"+      ,"máscara"+      ,"masivo"+      ,"matar"+      ,"materia"+      ,"matiz"+      ,"matriz"+      ,"máximo"+      ,"mayor"+      ,"mazorca"+      ,"mecha"+      ,"medalla"+      ,"medio"+      ,"médula"+      ,"mejilla"+      ,"mejor"+      ,"melena"+      ,"melón"+      ,"memoria"+      ,"menor"+      ,"mensaje"+      ,"mente"+      ,"menú"+      ,"mercado"+      ,"merengue"+      ,"mérito"+      ,"mes"+      ,"mesón"+      ,"meta"+      ,"meter"+      ,"método"+      ,"metro"+      ,"mezcla"+      ,"miedo"+      ,"miel"+      ,"miembro"+      ,"miga"+      ,"mil"+      ,"milagro"+      ,"militar"+      ,"millón"+      ,"mimo"+      ,"mina"+      ,"minero"+      ,"mínimo"+      ,"minuto"+      ,"miope"+      ,"mirar"+      ,"misa"+      ,"miseria"+      ,"misil"+      ,"mismo"+      ,"mitad"+      ,"mito"+      ,"mochila"+      ,"moción"+      ,"moda"+      ,"modelo"+      ,"moho"+      ,"mojar"+      ,"molde"+      ,"moler"+      ,"molino"+      ,"momento"+      ,"momia"+      ,"monarca"+      ,"moneda"+      ,"monja"+      ,"monto"+      ,"moño"+      ,"morada"+      ,"morder"+      ,"moreno"+      ,"morir"+      ,"morro"+      ,"morsa"+      ,"mortal"+      ,"mosca"+      ,"mostrar"+      ,"motivo"+      ,"mover"+      ,"móvil"+      ,"mozo"+      ,"mucho"+      ,"mudar"+      ,"mueble"+      ,"muela"+      ,"muerte"+      ,"muestra"+      ,"mugre"+      ,"mujer"+      ,"mula"+      ,"muleta"+      ,"multa"+      ,"mundo"+      ,"muñeca"+      ,"mural"+      ,"muro"+      ,"músculo"+      ,"museo"+      ,"musgo"+      ,"música"+      ,"muslo"+      ,"nácar"+      ,"nación"+      ,"nadar"+      ,"naipe"+      ,"naranja"+      ,"nariz"+      ,"narrar"+      ,"nasal"+      ,"natal"+      ,"nativo"+      ,"natural"+      ,"náusea"+      ,"naval"+      ,"nave"+      ,"navidad"+      ,"necio"+      ,"néctar"+      ,"negar"+      ,"negocio"+      ,"negro"+      ,"neón"+      ,"nervio"+      ,"neto"+      ,"neutro"+      ,"nevar"+      ,"nevera"+      ,"nicho"+      ,"nido"+      ,"niebla"+      ,"nieto"+      ,"niñez"+      ,"niño"+      ,"nítido"+      ,"nivel"+      ,"nobleza"+      ,"noche"+      ,"nómina"+      ,"noria"+      ,"norma"+      ,"norte"+      ,"nota"+      ,"noticia"+      ,"novato"+      ,"novela"+      ,"novio"+      ,"nube"+      ,"nuca"+      ,"núcleo"+      ,"nudillo"+      ,"nudo"+      ,"nuera"+      ,"nueve"+      ,"nuez"+      ,"nulo"+      ,"número"+      ,"nutria"+      ,"oasis"+      ,"obeso"+      ,"obispo"+      ,"objeto"+      ,"obra"+      ,"obrero"+      ,"observar"+      ,"obtener"+      ,"obvio"+      ,"oca"+      ,"ocaso"+      ,"océano"+      ,"ochenta"+      ,"ocho"+      ,"ocio"+      ,"ocre"+      ,"octavo"+      ,"octubre"+      ,"oculto"+      ,"ocupar"+      ,"ocurrir"+      ,"odiar"+      ,"odio"+      ,"odisea"+      ,"oeste"+      ,"ofensa"+      ,"oferta"+      ,"oficio"+      ,"ofrecer"+      ,"ogro"+      ,"oído"+      ,"oír"+      ,"ojo"+      ,"ola"+      ,"oleada"+      ,"olfato"+      ,"olivo"+      ,"olla"+      ,"olmo"+      ,"olor"+      ,"olvido"+      ,"ombligo"+      ,"onda"+      ,"onza"+      ,"opaco"+      ,"opción"+      ,"ópera"+      ,"opinar"+      ,"oponer"+      ,"optar"+      ,"óptica"+      ,"opuesto"+      ,"oración"+      ,"orador"+      ,"oral"+      ,"órbita"+      ,"orca"+      ,"orden"+      ,"oreja"+      ,"órgano"+      ,"orgía"+      ,"orgullo"+      ,"oriente"+      ,"origen"+      ,"orilla"+      ,"oro"+      ,"orquesta"+      ,"oruga"+      ,"osadía"+      ,"oscuro"+      ,"osezno"+      ,"oso"+      ,"ostra"+      ,"otoño"+      ,"otro"+      ,"oveja"+      ,"óvulo"+      ,"óxido"+      ,"oxígeno"+      ,"oyente"+      ,"ozono"+      ,"pacto"+      ,"padre"+      ,"paella"+      ,"página"+      ,"pago"+      ,"país"+      ,"pájaro"+      ,"palabra"+      ,"palco"+      ,"paleta"+      ,"pálido"+      ,"palma"+      ,"paloma"+      ,"palpar"+      ,"pan"+      ,"panal"+      ,"pánico"+      ,"pantera"+      ,"pañuelo"+      ,"papá"+      ,"papel"+      ,"papilla"+      ,"paquete"+      ,"parar"+      ,"parcela"+      ,"pared"+      ,"parir"+      ,"paro"+      ,"párpado"+      ,"parque"+      ,"párrafo"+      ,"parte"+      ,"pasar"+      ,"paseo"+      ,"pasión"+      ,"paso"+      ,"pasta"+      ,"pata"+      ,"patio"+      ,"patria"+      ,"pausa"+      ,"pauta"+      ,"pavo"+      ,"payaso"+      ,"peatón"+      ,"pecado"+      ,"pecera"+      ,"pecho"+      ,"pedal"+      ,"pedir"+      ,"pegar"+      ,"peine"+      ,"pelar"+      ,"peldaño"+      ,"pelea"+      ,"peligro"+      ,"pellejo"+      ,"pelo"+      ,"peluca"+      ,"pena"+      ,"pensar"+      ,"peñón"+      ,"peón"+      ,"peor"+      ,"pepino"+      ,"pequeño"+      ,"pera"+      ,"percha"+      ,"perder"+      ,"pereza"+      ,"perfil"+      ,"perico"+      ,"perla"+      ,"permiso"+      ,"perro"+      ,"persona"+      ,"pesa"+      ,"pesca"+      ,"pésimo"+      ,"pestaña"+      ,"pétalo"+      ,"petróleo"+      ,"pez"+      ,"pezuña"+      ,"picar"+      ,"pichón"+      ,"pie"+      ,"piedra"+      ,"pierna"+      ,"pieza"+      ,"pijama"+      ,"pilar"+      ,"piloto"+      ,"pimienta"+      ,"pino"+      ,"pintor"+      ,"pinza"+      ,"piña"+      ,"piojo"+      ,"pipa"+      ,"pirata"+      ,"pisar"+      ,"piscina"+      ,"piso"+      ,"pista"+      ,"pitón"+      ,"pizca"+      ,"placa"+      ,"plan"+      ,"plata"+      ,"playa"+      ,"plaza"+      ,"pleito"+      ,"pleno"+      ,"plomo"+      ,"pluma"+      ,"plural"+      ,"pobre"+      ,"poco"+      ,"poder"+      ,"podio"+      ,"poema"+      ,"poesía"+      ,"poeta"+      ,"polen"+      ,"policía"+      ,"pollo"+      ,"polvo"+      ,"pomada"+      ,"pomelo"+      ,"pomo"+      ,"pompa"+      ,"poner"+      ,"porción"+      ,"portal"+      ,"posada"+      ,"poseer"+      ,"posible"+      ,"poste"+      ,"potencia"+      ,"potro"+      ,"pozo"+      ,"prado"+      ,"precoz"+      ,"pregunta"+      ,"premio"+      ,"prensa"+      ,"preso"+      ,"previo"+      ,"primo"+      ,"príncipe"+      ,"prisión"+      ,"privar"+      ,"proa"+      ,"probar"+      ,"proceso"+      ,"producto"+      ,"proeza"+      ,"profesor"+      ,"programa"+      ,"prole"+      ,"promesa"+      ,"pronto"+      ,"propio"+      ,"próximo"+      ,"prueba"+      ,"público"+      ,"puchero"+      ,"pudor"+      ,"pueblo"+      ,"puerta"+      ,"puesto"+      ,"pulga"+      ,"pulir"+      ,"pulmón"+      ,"pulpo"+      ,"pulso"+      ,"puma"+      ,"punto"+      ,"puñal"+      ,"puño"+      ,"pupa"+      ,"pupila"+      ,"puré"+      ,"quedar"+      ,"queja"+      ,"quemar"+      ,"querer"+      ,"queso"+      ,"quieto"+      ,"química"+      ,"quince"+      ,"quitar"+      ,"rábano"+      ,"rabia"+      ,"rabo"+      ,"ración"+      ,"radical"+      ,"raíz"+      ,"rama"+      ,"rampa"+      ,"rancho"+      ,"rango"+      ,"rapaz"+      ,"rápido"+      ,"rapto"+      ,"rasgo"+      ,"raspa"+      ,"rato"+      ,"rayo"+      ,"raza"+      ,"razón"+      ,"reacción"+      ,"realidad"+      ,"rebaño"+      ,"rebote"+      ,"recaer"+      ,"receta"+      ,"rechazo"+      ,"recoger"+      ,"recreo"+      ,"recto"+      ,"recurso"+      ,"red"+      ,"redondo"+      ,"reducir"+      ,"reflejo"+      ,"reforma"+      ,"refrán"+      ,"refugio"+      ,"regalo"+      ,"regir"+      ,"regla"+      ,"regreso"+      ,"rehén"+      ,"reino"+      ,"reír"+      ,"reja"+      ,"relato"+      ,"relevo"+      ,"relieve"+      ,"relleno"+      ,"reloj"+      ,"remar"+      ,"remedio"+      ,"remo"+      ,"rencor"+      ,"rendir"+      ,"renta"+      ,"reparto"+      ,"repetir"+      ,"reposo"+      ,"reptil"+      ,"res"+      ,"rescate"+      ,"resina"+      ,"respeto"+      ,"resto"+      ,"resumen"+      ,"retiro"+      ,"retorno"+      ,"retrato"+      ,"reunir"+      ,"revés"+      ,"revista"+      ,"rey"+      ,"rezar"+      ,"rico"+      ,"riego"+      ,"rienda"+      ,"riesgo"+      ,"rifa"+      ,"rígido"+      ,"rigor"+      ,"rincón"+      ,"riñón"+      ,"río"+      ,"riqueza"+      ,"risa"+      ,"ritmo"+      ,"rito"+      ,"rizo"+      ,"roble"+      ,"roce"+      ,"rociar"+      ,"rodar"+      ,"rodeo"+      ,"rodilla"+      ,"roer"+      ,"rojizo"+      ,"rojo"+      ,"romero"+      ,"romper"+      ,"ron"+      ,"ronco"+      ,"ronda"+      ,"ropa"+      ,"ropero"+      ,"rosa"+      ,"rosca"+      ,"rostro"+      ,"rotar"+      ,"rubí"+      ,"rubor"+      ,"rudo"+      ,"rueda"+      ,"rugir"+      ,"ruido"+      ,"ruina"+      ,"ruleta"+      ,"rulo"+      ,"rumbo"+      ,"rumor"+      ,"ruptura"+      ,"ruta"+      ,"rutina"+      ,"sábado"+      ,"saber"+      ,"sabio"+      ,"sable"+      ,"sacar"+      ,"sagaz"+      ,"sagrado"+      ,"sala"+      ,"saldo"+      ,"salero"+      ,"salir"+      ,"salmón"+      ,"salón"+      ,"salsa"+      ,"salto"+      ,"salud"+      ,"salvar"+      ,"samba"+      ,"sanción"+      ,"sandía"+      ,"sanear"+      ,"sangre"+      ,"sanidad"+      ,"sano"+      ,"santo"+      ,"sapo"+      ,"saque"+      ,"sardina"+      ,"sartén"+      ,"sastre"+      ,"satán"+      ,"sauna"+      ,"saxofón"+      ,"sección"+      ,"seco"+      ,"secreto"+      ,"secta"+      ,"sed"+      ,"seguir"+      ,"seis"+      ,"sello"+      ,"selva"+      ,"semana"+      ,"semilla"+      ,"senda"+      ,"sensor"+      ,"señal"+      ,"señor"+      ,"separar"+      ,"sepia"+      ,"sequía"+      ,"ser"+      ,"serie"+      ,"sermón"+      ,"servir"+      ,"sesenta"+      ,"sesión"+      ,"seta"+      ,"setenta"+      ,"severo"+      ,"sexo"+      ,"sexto"+      ,"sidra"+      ,"siesta"+      ,"siete"+      ,"siglo"+      ,"signo"+      ,"sílaba"+      ,"silbar"+      ,"silencio"+      ,"silla"+      ,"símbolo"+      ,"simio"+      ,"sirena"+      ,"sistema"+      ,"sitio"+      ,"situar"+      ,"sobre"+      ,"socio"+      ,"sodio"+      ,"sol"+      ,"solapa"+      ,"soldado"+      ,"soledad"+      ,"sólido"+      ,"soltar"+      ,"solución"+      ,"sombra"+      ,"sondeo"+      ,"sonido"+      ,"sonoro"+      ,"sonrisa"+      ,"sopa"+      ,"soplar"+      ,"soporte"+      ,"sordo"+      ,"sorpresa"+      ,"sorteo"+      ,"sostén"+      ,"sótano"+      ,"suave"+      ,"subir"+      ,"suceso"+      ,"sudor"+      ,"suegra"+      ,"suelo"+      ,"sueño"+      ,"suerte"+      ,"sufrir"+      ,"sujeto"+      ,"sultán"+      ,"sumar"+      ,"superar"+      ,"suplir"+      ,"suponer"+      ,"supremo"+      ,"sur"+      ,"surco"+      ,"sureño"+      ,"surgir"+      ,"susto"+      ,"sutil"+      ,"tabaco"+      ,"tabique"+      ,"tabla"+      ,"tabú"+      ,"taco"+      ,"tacto"+      ,"tajo"+      ,"talar"+      ,"talco"+      ,"talento"+      ,"talla"+      ,"talón"+      ,"tamaño"+      ,"tambor"+      ,"tango"+      ,"tanque"+      ,"tapa"+      ,"tapete"+      ,"tapia"+      ,"tapón"+      ,"taquilla"+      ,"tarde"+      ,"tarea"+      ,"tarifa"+      ,"tarjeta"+      ,"tarot"+      ,"tarro"+      ,"tarta"+      ,"tatuaje"+      ,"tauro"+      ,"taza"+      ,"tazón"+      ,"teatro"+      ,"techo"+      ,"tecla"+      ,"técnica"+      ,"tejado"+      ,"tejer"+      ,"tejido"+      ,"tela"+      ,"teléfono"+      ,"tema"+      ,"temor"+      ,"templo"+      ,"tenaz"+      ,"tender"+      ,"tener"+      ,"tenis"+      ,"tenso"+      ,"teoría"+      ,"terapia"+      ,"terco"+      ,"término"+      ,"ternura"+      ,"terror"+      ,"tesis"+      ,"tesoro"+      ,"testigo"+      ,"tetera"+      ,"texto"+      ,"tez"+      ,"tibio"+      ,"tiburón"+      ,"tiempo"+      ,"tienda"+      ,"tierra"+      ,"tieso"+      ,"tigre"+      ,"tijera"+      ,"tilde"+      ,"timbre"+      ,"tímido"+      ,"timo"+      ,"tinta"+      ,"tío"+      ,"típico"+      ,"tipo"+      ,"tira"+      ,"tirón"+      ,"titán"+      ,"títere"+      ,"título"+      ,"tiza"+      ,"toalla"+      ,"tobillo"+      ,"tocar"+      ,"tocino"+      ,"todo"+      ,"toga"+      ,"toldo"+      ,"tomar"+      ,"tono"+      ,"tonto"+      ,"topar"+      ,"tope"+      ,"toque"+      ,"tórax"+      ,"torero"+      ,"tormenta"+      ,"torneo"+      ,"toro"+      ,"torpedo"+      ,"torre"+      ,"torso"+      ,"tortuga"+      ,"tos"+      ,"tosco"+      ,"toser"+      ,"tóxico"+      ,"trabajo"+      ,"tractor"+      ,"traer"+      ,"tráfico"+      ,"trago"+      ,"traje"+      ,"tramo"+      ,"trance"+      ,"trato"+      ,"trauma"+      ,"trazar"+      ,"trébol"+      ,"tregua"+      ,"treinta"+      ,"tren"+      ,"trepar"+      ,"tres"+      ,"tribu"+      ,"trigo"+      ,"tripa"+      ,"triste"+      ,"triunfo"+      ,"trofeo"+      ,"trompa"+      ,"tronco"+      ,"tropa"+      ,"trote"+      ,"trozo"+      ,"truco"+      ,"trueno"+      ,"trufa"+      ,"tubería"+      ,"tubo"+      ,"tuerto"+      ,"tumba"+      ,"tumor"+      ,"túnel"+      ,"túnica"+      ,"turbina"+      ,"turismo"+      ,"turno"+      ,"tutor"+      ,"ubicar"+      ,"úlcera"+      ,"umbral"+      ,"unidad"+      ,"unir"+      ,"universo"+      ,"uno"+      ,"untar"+      ,"uña"+      ,"urbano"+      ,"urbe"+      ,"urgente"+      ,"urna"+      ,"usar"+      ,"usuario"+      ,"útil"+      ,"utopía"+      ,"uva"+      ,"vaca"+      ,"vacío"+      ,"vacuna"+      ,"vagar"+      ,"vago"+      ,"vaina"+      ,"vajilla"+      ,"vale"+      ,"válido"+      ,"valle"+      ,"valor"+      ,"válvula"+      ,"vampiro"+      ,"vara"+      ,"variar"+      ,"varón"+      ,"vaso"+      ,"vecino"+      ,"vector"+      ,"vehículo"+      ,"veinte"+      ,"vejez"+      ,"vela"+      ,"velero"+      ,"veloz"+      ,"vena"+      ,"vencer"+      ,"venda"+      ,"veneno"+      ,"vengar"+      ,"venir"+      ,"venta"+      ,"venus"+      ,"ver"+      ,"verano"+      ,"verbo"+      ,"verde"+      ,"vereda"+      ,"verja"+      ,"verso"+      ,"verter"+      ,"vía"+      ,"viaje"+      ,"vibrar"+      ,"vicio"+      ,"víctima"+      ,"vida"+      ,"vídeo"+      ,"vidrio"+      ,"viejo"+      ,"viernes"+      ,"vigor"+      ,"vil"+      ,"villa"+      ,"vinagre"+      ,"vino"+      ,"viñedo"+      ,"violín"+      ,"viral"+      ,"virgo"+      ,"virtud"+      ,"visor"+      ,"víspera"+      ,"vista"+      ,"vitamina"+      ,"viudo"+      ,"vivaz"+      ,"vivero"+      ,"vivir"+      ,"vivo"+      ,"volcán"+      ,"volumen"+      ,"volver"+      ,"voraz"+      ,"votar"+      ,"voto"+      ,"voz"+      ,"vuelo"+      ,"vulgar"+      ,"yacer"+      ,"yate"+      ,"yegua"+      ,"yema"+      ,"yerno"+      ,"yeso"+      ,"yodo"+      ,"yoga"+      ,"yogur"+      ,"zafiro"+      ,"zanja"+      ,"zapato"+      ,"zarza"+      ,"zona"+      ,"zorro"+      ,"zumo"+      ,"zurdoepl"+      ]
lib/Cardano/Mnemonic.hs view
@@ -35,8 +35,11 @@        -- * @Mnemonic@     , Mnemonic+    , mkMnemonicWithDict     , mkMnemonic+     , MkMnemonicError(..)+    , mnemonicToTextWithDict     , mnemonicToText     , mnemonicToEntropy @@ -47,7 +50,12 @@     , entropyToBytes     , entropyToMnemonic -      -- Internals & Re-export from @Crypto.Encoding.BIP39@+    -- * @Dictionary@+    , Dictionary+    , english+    , italian++      -- * Internals & Re-export from @Crypto.Encoding.BIP39@     , EntropyError(..)     , DictionaryError(..)     , MnemonicWordsError(..)@@ -70,6 +78,10 @@     ( NormalForm (..) ) import Basement.Sized.List     ( unListN )+import Cardano.Dictionary.English+    ( english )+import Cardano.Dictionary.Italian+    ( italian ) import Control.Arrow     ( left ) import Control.DeepSeq@@ -79,6 +91,7 @@ import Crypto.Encoding.BIP39     ( CheckSumBits     , ConsistentEntropy+    , Dictionary     , DictionaryError (..)     , Entropy     , EntropyError (..)@@ -119,7 +132,6 @@  import qualified Basement.Compat.Base as Basement import qualified Basement.String as Basement-import qualified Crypto.Encoding.BIP39.English as Dictionary import qualified Crypto.Random.Entropy as Crypto import qualified Data.ByteArray as BA import qualified Data.Text as T@@ -131,8 +143,8 @@ -- 'Entropy' is @96-256@ bits and is __necessarily a multiple of 32 bits__ (4 -- bytes). ----- We call 'Mnemonic' an 'Entropy' with an appended checksum calculated by--- taking the first @ent / 32@ bits of the /SHA256/ hash of it, where ent+-- 'Mnemonic' is an 'Entropy' with an appended checksum calculated by+-- taking the first @ent / 32@ bits of the /SHA256/ hash of it, where @ent@ -- designates the 'Entropy' size in bits. -- -- The concatenated result is split into groups of @11@ bits, each encoding a@@ -158,7 +170,7 @@ -- | 256 bits (32 bytes) | 8 bits        | 24 words        | excess behave track soul table wear ocean cash stay nature item turtle palm soccer lunch horror start stumble month panic right must lock dress | -- +---------------------+---------------+-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------+ --- A opaque 'Mnemonic' type.+-- | A opaque 'Mnemonic' type. data Mnemonic (mw :: Nat) = Mnemonic     { mnemonicToEntropy  :: Entropy (EntropySize mw)         -- ^ Convert a 'Mnemonic' back to an 'Entropy'.@@ -167,7 +179,7 @@     , mnemonicToSentence :: MnemonicSentence mw     } deriving stock (Eq, Show) --- This wraps EntropyError of "Cardano.Encoding.BIP39"+-- | This wraps EntropyError of "Cardano.Encoding.BIP39" newtype MnemonicException csz =     UnexpectedEntropyError (EntropyError csz)     -- ^ Invalid entropy length or checksum@@ -188,7 +200,7 @@ deriving instance Eq MnemonicWordsError deriving instance Eq DictionaryError --- NFData instances+-- | NFData instances instance NFData (Mnemonic mw) where     rnf (Mnemonic ent ws) = toNormalForm ent `seq` toNormalForm ws instance NFData (EntropyError csz) where@@ -205,12 +217,12 @@  -- | Smart-constructor for the 'Entropy'. Make sure the 'ByteString' comes from a highly random source or use 'genEntropy'. ----- __example__:+-- __Example__: -- -- >>> mkEntropy @160 bytes -- Entropy {} :: Entropy 160 ----- __property__:+-- __Property__: -- -- prop> mkEntropy (entropyToBytes ent) == Right ent --@@ -223,7 +235,7 @@  -- | Generate Entropy of a given size using a cryptographically secure random seed. ----- __example:__+-- __Example:__ -- -- >>> genEntropy @128 -- Entropy {} :: Entropy 128@@ -241,32 +253,33 @@     in         (eitherToIO . mkEntropy) =<< Crypto.getEntropy (size `div` 8) --- | Smart-constructor for 'Mnemonic'. Requires a type application to+-- | Smart-constructor for 'Mnemonic' for arbitrary dictionary. Requires a type application to -- disambiguate the mnemonic size. ----- __example__:+-- __Example__: ----- >>> mkMnemonic @15 sentence+-- >>> mkMnemonicWithDict @15 sentence dictionary -- Mnemonic {} :: Mnemonic 15 ----- __property__:+-- __Property__: ----- prop> mkMnemonic (mnemonicToText mnemonic) == Right mnemonic+-- prop> mkMnemonicWithDict (mnemonicToTextWithDict mnemonic dictionary) dictionary == Right mnemonic ----- @since 1.0.0-mkMnemonic+-- @since 4.0.1+mkMnemonicWithDict     :: forall (mw :: Nat) (ent :: Nat) csz.      ( ConsistentEntropy ent mw csz      , EntropySize mw ~ ent      )     => [Text]+    -> Dictionary     -> Either (MkMnemonicError csz) (Mnemonic mw)-mkMnemonic wordsm = do+mkMnemonicWithDict wordsm dictionary = do     phrase <- left ErrMnemonicWords         $ mnemonicPhrase @mw (toUtf8String <$> wordsm)      sentence <- left ErrDictionary-        $ mnemonicPhraseToMnemonicSentence Dictionary.english phrase+        $ mnemonicPhraseToMnemonicSentence dictionary phrase      entropy <- left ErrEntropy         $ wordsToEntropy sentence@@ -276,6 +289,29 @@         , mnemonicToSentence = sentence         } +-- | Smart-constructor for English 'Mnemonic'. Requires a type application to+-- disambiguate the mnemonic size.+--+-- __Example__:+--+-- >>> mkMnemonic @15 sentence+-- Mnemonic {} :: Mnemonic 15+--+-- __Property__:+--+-- prop> mkMnemonic (mnemonicToText mnemonic) == Right mnemonic+--+-- @since 1.0.0+mkMnemonic+    :: forall (mw :: Nat) (ent :: Nat) csz.+     ( ConsistentEntropy ent mw csz+     , EntropySize mw ~ ent+     )+    => [Text]+    -> Either (MkMnemonicError csz) (Mnemonic mw)+mkMnemonic = flip mkMnemonicWithDict english++ -- | Convert an Entropy to a corresponding Mnemonic Sentence. Since 'Entropy' -- and 'Mnemonic' can only be created through smart-constructors, this function -- cannot fail and is total.@@ -316,18 +352,28 @@  instance (KnownNat csz) => Basement.Exception (MnemonicException csz) --- | Convert a 'Mnemonic' to a sentence of English mnemonic words.+-- | Convert a 'Mnemonic' to a sentence of a specified dictionary mnemonic words. ----- @since 1.0.0-mnemonicToText+-- @since 4.0.1+mnemonicToTextWithDict     :: Mnemonic mw+    -> Dictionary     -> [Text]-mnemonicToText =-    map (fromUtf8String . dictionaryIndexToWord Dictionary.english)+mnemonicToTextWithDict mnemonic dictionary =+    map (fromUtf8String . dictionaryIndexToWord dictionary)     . unListN     . mnemonicSentenceToListN     . mnemonicToSentence+    $ mnemonic +-- | Convert a 'Mnemonic' to a sentence of English mnemonic words.+--+-- @since 1.0.0+mnemonicToText+    :: Mnemonic mw+    -> [Text]+mnemonicToText = flip mnemonicToTextWithDict english+ -- | Convert a 'SomeMnemonic' to bytes. -- -- @since 1.0.1@@ -354,14 +400,14 @@ -- | This class enables caller to parse text list of variable length -- into mnemonic sentences. ----- Note that the given 'Nat's **have** to be valid mnemonic sizes, otherwise the+-- Note that the given 'Nat's __have__ to be valid mnemonic sizes, otherwise the -- underlying code won't even compile, with not-so-friendly error messages. class MkSomeMnemonic (sz :: [Nat]) where     -- | Construct a mnemonic from a list of words. This function is particularly useful when the     -- number of words is not necessarily known at runtime. The function is however /ambiguous/ and     -- requires thereby a type application.     ---    -- __examples:__+    -- __Examples:__     --     -- >>> mkSomeMnemonic @'[ 12 ] [ "test", "child", "burst", "immense", "armed", "parrot", "company", "walk", "dog" ]     -- Left "Invalid number of words: 12 words are expected."@@ -426,7 +472,7 @@     MkSomeMnemonic (mw ': '[])   where     mkSomeMnemonic parts = do-        bimap (MkSomeMnemonicError . pretty) SomeMnemonic (mkMnemonic @mw parts)+        bimap (MkSomeMnemonicError . pretty) SomeMnemonic (mkMnemonicWithDict @mw parts english)       where         pretty = \case             ErrMnemonicWords ErrWrongNumberOfWords{} ->
lib/Command/RecoveryPhrase/Generate.hs view
@@ -18,10 +18,14 @@ import Prelude hiding     ( mod ) +import Cardano.Dictionary+    ( SupportedDictionary (..), dictionaryFromLanguage ) import Cardano.Mnemonic-    ( entropyToMnemonic, genEntropy, mnemonicToText )+    ( entropyToMnemonic, genEntropy, mnemonicToTextWithDict ) import Options.Applicative     ( CommandFields, Mod, command, helper, info, progDesc )+import Options.Applicative.MnemonicLanguage+    ( mnemonicLanguageOpt ) import Options.Applicative.MnemonicSize     ( MnemonicSize (..), mnemonicSizeOpt ) @@ -30,25 +34,27 @@ import qualified Data.Text.Encoding as T  -newtype Cmd = Generate+data Cmd = Generate     { size :: MnemonicSize+    , language :: SupportedDictionary     } deriving (Show)  mod :: (Cmd -> parent) -> Mod CommandFields parent mod liftCmd = command "generate" $     info (helper <*> fmap liftCmd parser) $ mempty-        <> progDesc "Generate an English recovery phrase"+        <> progDesc "Generate a recovery phrase for a specified mnemonic size and language."   where     parser = Generate         <$> mnemonicSizeOpt+        <*> mnemonicLanguageOpt  run :: Cmd -> IO ()-run Generate{size} = do+run Generate{size,language} = do     m <- case size of-        MS_9  -> mnemonicToText @9  . entropyToMnemonic <$> genEntropy-        MS_12 -> mnemonicToText @12 . entropyToMnemonic <$> genEntropy-        MS_15 -> mnemonicToText @15 . entropyToMnemonic <$> genEntropy-        MS_18 -> mnemonicToText @18 . entropyToMnemonic <$> genEntropy-        MS_21 -> mnemonicToText @21 . entropyToMnemonic <$> genEntropy-        MS_24 -> mnemonicToText @24 . entropyToMnemonic <$> genEntropy-    B8.putStrLn $ T.encodeUtf8 $ T.unwords m+        MS_9  -> mnemonicToTextWithDict @9  . entropyToMnemonic <$> genEntropy+        MS_12 -> mnemonicToTextWithDict @12 . entropyToMnemonic <$> genEntropy+        MS_15 -> mnemonicToTextWithDict @15 . entropyToMnemonic <$> genEntropy+        MS_18 -> mnemonicToTextWithDict @18 . entropyToMnemonic <$> genEntropy+        MS_21 -> mnemonicToTextWithDict @21 . entropyToMnemonic <$> genEntropy+        MS_24 -> mnemonicToTextWithDict @24 . entropyToMnemonic <$> genEntropy+    B8.putStrLn $ T.encodeUtf8 $ T.unwords $ m $ dictionaryFromLanguage language
lib/Data/Word7.hs view
@@ -37,6 +37,7 @@   -- | A 'Word7' algebraic data-type.+-- -- @since 2.0.0 newtype Word7 = Word7 Word8   deriving (Eq, Show)
+ lib/Options/Applicative/MnemonicLanguage.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE LambdaCase #-}++{-# OPTIONS_HADDOCK hide #-}++-- |+-- Copyright: 2025 Intersect+-- License: Apache-2.0++module Options.Applicative.MnemonicLanguage+    (+    -- * Applicative Parser+      mnemonicLanguageOpt++    -- * Helpers+    , supportedDictionaryToString+    , supportedDictionaryFromString++    ) where++import Prelude++import Cardano.Dictionary+    ( SupportedDictionary (..) )+import Data.List+    ( intercalate )+import Data.List.Extra+    ( enumerate )+import Options.Applicative+    ( Parser+    , completer+    , eitherReader+    , help+    , listCompleter+    , long+    , metavar+    , option+    , showDefaultWith+    , value+    )+++-- | SupportedDictionary displays according to two-letter [ISO 639-1 Code](https://www.loc.gov/standards/iso639-2/php/code_list.php)+supportedDictionaryToString :: SupportedDictionary -> String+supportedDictionaryToString English = "en"+supportedDictionaryToString Italian = "it"+supportedDictionaryToString Japanese = "ja"+supportedDictionaryToString French = "fr"+supportedDictionaryToString Korean = "ko"+supportedDictionaryToString Spanish = "es"++languageStrs :: [String]+languageStrs = supportedDictionaryToString <$> enumerate++supportedDictionaryFromString :: String -> Either String SupportedDictionary+supportedDictionaryFromString = \case+    "en" -> Right English+    "it" -> Right Italian+    "ja" -> Right Japanese+    "fr" -> Right French+    "ko" -> Right Korean+    "es" -> Right Spanish+    _ -> Left $ mempty+           <> "Invalid supported dictionary. The following are available: "+           <> intercalate ", " languageStrs+           <>"."++--+-- Applicative Parser+--++mnemonicLanguageOpt :: Parser SupportedDictionary+mnemonicLanguageOpt = option (eitherReader supportedDictionaryFromString) $ mempty+    <> long "language"+    <> metavar "STR"+    <> help ( "Language of mnemonic words to generate. Must be one of: "+             <> intercalate ", " languageStrs+             <> ".")+    <> value English+    <> showDefaultWith supportedDictionaryToString+    <> completer (listCompleter languageStrs)
test/Cardano/Address/Style/ByronSpec.hs view
@@ -43,7 +43,7 @@ import Data.Text     ( Text ) import Test.Arbitrary-    ( unsafeMkMnemonic )+    ( unsafeMkEnglishMnemonic ) import Test.Hspec     ( Expectation, Spec, describe, it, shouldBe ) import Test.QuickCheck@@ -111,7 +111,7 @@ generateTest (GenerateKeyFromSeed mnemonic rootXPrv)  =     getKey masterKey `shouldBe` getKey rootXPrv   where-    mw = SomeMnemonic $ unsafeMkMnemonic @12 mnemonic+    mw = SomeMnemonic $ unsafeMkEnglishMnemonic @12 mnemonic     masterKey = genMasterKeyFromMnemonic mw () :: Byron 'RootK XPrv  generateTest1 :: GenerateKeyFromSeed
test/Cardano/MnemonicSpec.hs view
@@ -12,6 +12,8 @@  import Prelude +import Cardano.Dictionary+    ( SupportedDictionary, dictionaryFromLanguage ) import Cardano.Mnemonic     ( Entropy     , EntropyError@@ -24,9 +26,11 @@     , genEntropy     , mkEntropy     , mkMnemonic+    , mkMnemonicWithDict     , mkSomeMnemonic     , mnemonicToEntropy     , mnemonicToText+    , mnemonicToTextWithDict     ) import Control.Monad     ( forM_ )@@ -104,6 +108,36 @@      prop "(24) mkMnemonic . mnemonicToText == pure" $         \(mw :: Mnemonic 24) -> (mkMnemonic @24 . mnemonicToText) mw === pure mw++    prop "(9) mkMnemonicWithDict . mnemonicToTextWithDict == pure" $+        \(lang :: SupportedDictionary, mw :: Mnemonic 9) -> do+          let dict = dictionaryFromLanguage lang+          mkMnemonicWithDict @9 (mnemonicToTextWithDict mw dict) dict === pure mw++    prop "(12) mkMnemonicWithDict . mnemonicToTextWithDict == pure" $+        \(lang :: SupportedDictionary, mw :: Mnemonic 12) -> do+          let dict = dictionaryFromLanguage lang+          mkMnemonicWithDict @12 (mnemonicToTextWithDict mw dict) dict === pure mw++    prop "(15) mkMnemonicWithDict . mnemonicToTextWithDict == pure" $+        \(lang :: SupportedDictionary, mw :: Mnemonic 15) -> do+          let dict = dictionaryFromLanguage lang+          mkMnemonicWithDict @15 (mnemonicToTextWithDict mw dict) dict === pure mw++    prop "(18) mkMnemonicWithDict . mnemonicToTextWithDict == pure" $+        \(lang :: SupportedDictionary, mw :: Mnemonic 18) -> do+          let dict = dictionaryFromLanguage lang+          mkMnemonicWithDict @18 (mnemonicToTextWithDict mw dict) dict === pure mw++    prop "(21) mkMnemonicWithDict . mnemonicToTextWithDict == pure" $+        \(lang :: SupportedDictionary, mw :: Mnemonic 21) -> do+          let dict = dictionaryFromLanguage lang+          mkMnemonicWithDict @21 (mnemonicToTextWithDict mw dict) dict === pure mw++    prop "(24) mkMnemonicWithDict . mnemonicToTextWithDict == pure" $+        \(lang :: SupportedDictionary, mw :: Mnemonic 24) -> do+          let dict = dictionaryFromLanguage lang+          mkMnemonicWithDict @24 (mnemonicToTextWithDict mw dict) dict === pure mw      describe "MkSomeMnemonic" $ do         let noInDictErr =
test/Test/Arbitrary.hs view
@@ -14,7 +14,8 @@ {-# OPTIONS_GHC -fno-warn-deprecations #-}  module Test.Arbitrary-    ( unsafeMkMnemonic+    ( unsafeMkMnemonicWithDict+    , unsafeMkEnglishMnemonic     , unsafeMkSomeMnemonicFromEntropy     , unsafeFromHex     , unsafeFromRight@@ -55,17 +56,21 @@     ) import Cardano.Address.Style.Shelley     ( Shelley )+import Cardano.Dictionary+    ( SupportedDictionary (..) ) import Cardano.Mnemonic     ( ConsistentEntropy+    , Dictionary     , Entropy     , EntropySize     , Mnemonic     , MnemonicException (..)     , MnemonicWords     , SomeMnemonic (..)+    , english     , entropyToMnemonic     , mkEntropy-    , mkMnemonic+    , mkMnemonicWithDict     ) import Codec.Binary.Bech32     ( HumanReadablePart )@@ -276,6 +281,17 @@         , Icarus.UTxOInternal         ] +instance Arbitrary SupportedDictionary where+    shrink = genericShrink+    arbitrary = elements+        [ English+        , French+        , Italian+        , Japanese+        , Korean+        , Spanish+        ]+ -- -- Extra Instances --@@ -318,13 +334,23 @@ unsafeMkEntropy = either (error . show) id . mkEntropy . BA.convert  -- | Build 'Mnemonic' from literals-unsafeMkMnemonic+unsafeMkEnglishMnemonic     :: forall mw n csz     .  (ConsistentEntropy n mw csz, EntropySize mw ~ n, HasCallStack)     => [Text]     -> Mnemonic mw-unsafeMkMnemonic m =-    case mkMnemonic m of+unsafeMkEnglishMnemonic =+    flip unsafeMkMnemonicWithDict english++-- | Build 'Mnemonic' from literals+unsafeMkMnemonicWithDict+    :: forall mw n csz+    .  (ConsistentEntropy n mw csz, EntropySize mw ~ n, HasCallStack)+    => [Text]+    -> Dictionary+    -> Mnemonic mw+unsafeMkMnemonicWithDict m dict =+    case mkMnemonicWithDict m dict of         Left e -> error $ "unsafeMnemonic: " <> show e         Right a -> a