@elmethis/vue 0.14.0 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.vue.mjs CHANGED
@@ -1,32 +1,32 @@
1
1
  import "@elmethis/core/tokens.css";
2
2
  import { Fragment as e, computed as t, createTextVNode as n, createVNode as r, defineComponent as i, h as a, inject as o, isVNode as s, mergeProps as c, normalizeStyle as l, onBeforeUnmount as u, onMounted as d, onUnmounted as f, provide as p, ref as m, shallowRef as h, useId as g, watch as _ } from "vue";
3
- import { Catalog as ee, ComponentContext as te, MessageProcessor as v } from "@a2ui/web_core/v0_9";
4
- import { AudioPlayerApi as ne, BASIC_COMPONENTS as re, BASIC_FUNCTIONS as y, ButtonApi as ie, CardApi as ae, CheckBoxApi as oe, ChoicePickerApi as se, ColumnApi as ce, DateTimeInputApi as le, DividerApi as ue, IconApi as de, ImageApi as fe, ListApi as pe, ModalApi as me, RowApi as he, SliderApi as ge, TabsApi as _e, TextApi as ve, TextFieldApi as ye, VideoApi as be } from "@a2ui/web_core/v0_9/basic_catalog";
5
- import { clsx as b } from "clsx";
6
- import { useClipboard as xe, useClipboardItems as Se, useVModel as Ce } from "@vueuse/core";
3
+ import { Catalog as ee, ComponentContext as v, MessageProcessor as y } from "@a2ui/web_core/v0_9";
4
+ import { AudioPlayerApi as te, BASIC_COMPONENTS as ne, BASIC_FUNCTIONS as b, ButtonApi as re, CardApi as ie, CheckBoxApi as ae, ChoicePickerApi as oe, ColumnApi as se, DateTimeInputApi as ce, DividerApi as le, IconApi as ue, ImageApi as de, ListApi as fe, ModalApi as pe, RowApi as me, SliderApi as he, TabsApi as ge, TextApi as _e, TextFieldApi as ve, VideoApi as ye } from "@a2ui/web_core/v0_9/basic_catalog";
5
+ import { clsx as x } from "clsx";
6
+ import { useClipboard as be, useClipboardItems as xe, useVModel as Se } from "@vueuse/core";
7
7
  import "zod";
8
- import { renderToString as we } from "katex";
9
- import { mdiAlert as Te, mdiAlertCircleOutline as Ee, mdiAlertOctagram as De, mdiApplicationOutline as Oe, mdiArrowDownDropCircleOutline as ke, mdiCheckCircle as Ae, mdiCheckCircleOutline as je, mdiChevronRight as Me, mdiClipboardCheckOutline as Ne, mdiClipboardOutline as Pe, mdiCodeTags as Fe, mdiDownload as Ie, mdiEyeOffOutline as Le, mdiEyeOutline as Re, mdiFastForward10 as ze, mdiFile as Be, mdiFolderOpen as Ve, mdiFormatColorFill as He, mdiFormatQuoteClose as Ue, mdiFormatQuoteOpen as We, mdiHexadecimal as Ge, mdiHome as Ke, mdiInformation as qe, mdiLightbulbOn as Je, mdiLinkVariant as Ye, mdiMenuDown as Xe, mdiMessageImageOutline as Ze, mdiMusicNote as Qe, mdiOpenInNew as $e, mdiPause as et, mdiPlay as tt, mdiPlus as nt, mdiRewind10 as rt, mdiShieldAlert as it, mdiText as at, mdiTextLong as ot, mdiTrashCanOutline as st, mdiVolumeHigh as ct, mdiVolumeLow as lt, mdiVolumeMedium as ut, mdiVolumeOff as dt } from "@mdi/js";
10
- import { AudioApi as ft, BlockImageApi as pt, BlockQuoteApi as mt, BookmarkApi as ht, CalloutApi as gt, CodeBlockApi as _t, ColumnApi as vt, ColumnListApi as yt, ContentTabApi as bt, ContentTabsApi as xt, DividerApi as St, FileApi as Ct, HeadingApi as wt, HtmlApi as Tt, IconApi as Et, KatexApi as Dt, LANGUAGES as Ot, LinkTextApi as kt, ListApi as At, ListItemApi as jt, MermaidApi as Mt, NotionCalloutApi as Nt, ParagraphApi as Pt, RichTextApi as Ft, TableApi as It, TableCellApi as Lt, TableRowApi as Rt, ToggleApi as zt, UnsupportedApi as Bt, VideoApi as Vt, languageIcons as Ht, normalizeLanguage as Ut } from "@elmethis/core";
11
- import { codeToHtml as Wt } from "shiki";
12
- import Gt from "@46ki75/ikuma-theme/dark";
13
- import Kt from "@46ki75/ikuma-theme/light";
14
- import { marked as qt } from "marked";
15
- var x = {
8
+ import { renderToString as Ce } from "katex";
9
+ import { mdiAlert as we, mdiAlertCircleOutline as Te, mdiAlertOctagram as Ee, mdiApplicationOutline as De, mdiArrowDownDropCircleOutline as Oe, mdiCheckCircle as ke, mdiCheckCircleOutline as Ae, mdiChevronRight as je, mdiClipboardCheckOutline as Me, mdiClipboardOutline as Ne, mdiCodeTags as Pe, mdiDownload as Fe, mdiEyeOffOutline as Ie, mdiEyeOutline as Le, mdiFastForward10 as Re, mdiFile as ze, mdiFolderOpen as Be, mdiFormatColorFill as Ve, mdiFormatQuoteClose as He, mdiFormatQuoteOpen as Ue, mdiHexadecimal as We, mdiHome as Ge, mdiInformation as Ke, mdiLightbulbOn as qe, mdiLinkVariant as Je, mdiMenuDown as Ye, mdiMessageImageOutline as Xe, mdiMusicNote as Ze, mdiOpenInNew as Qe, mdiPause as $e, mdiPlay as et, mdiPlus as tt, mdiRewind10 as nt, mdiShieldAlert as rt, mdiText as it, mdiTextLong as at, mdiTrashCanOutline as ot, mdiVolumeHigh as st, mdiVolumeLow as ct, mdiVolumeMedium as lt, mdiVolumeOff as ut } from "@mdi/js";
10
+ import { AudioApi as dt, BlockImageApi as ft, BlockQuoteApi as pt, BookmarkApi as mt, CalloutApi as ht, CodeBlockApi as gt, ColumnApi as _t, ColumnListApi as vt, ContentTabApi as yt, ContentTabsApi as bt, DividerApi as xt, FileApi as St, HeadingApi as Ct, HtmlApi as wt, IconApi as Tt, KatexApi as Et, LANGUAGES as Dt, LinkTextApi as Ot, ListApi as kt, ListItemApi as At, MermaidApi as jt, NotionCalloutApi as Mt, ParagraphApi as Nt, RichTextApi as Pt, TableApi as Ft, TableCellApi as It, TableRowApi as Lt, ToggleApi as Rt, UnsupportedApi as zt, VideoApi as Bt, languageIcons as Vt, normalizeLanguage as Ht } from "@elmethis/core";
11
+ import { codeToHtml as Ut } from "shiki";
12
+ import Wt from "@46ki75/ikuma-theme/dark";
13
+ import Gt from "@46ki75/ikuma-theme/light";
14
+ import { marked as Kt } from "marked";
15
+ var S = {
16
16
  "elm-tabs": "_elm-tabs_whoym_1",
17
17
  "tab-container": "_tab-container_whoym_13",
18
18
  tab: "_tab_whoym_13",
19
19
  active: "_active_whoym_41",
20
20
  "tab-content": "_tab-content_whoym_52",
21
21
  "tab-content-inner": "_tab-content-inner_whoym_57"
22
- }, S = {
22
+ }, C = {
23
23
  "elm-collapse": "_elm-collapse_12wiu_1",
24
24
  row: "_row_12wiu_5",
25
25
  open: "_open_12wiu_11",
26
26
  column: "_column_12wiu_16",
27
27
  both: "_both_12wiu_27",
28
28
  inner: "_inner_12wiu_44"
29
- }, Jt = /* @__PURE__ */ i({
29
+ }, qt = /* @__PURE__ */ i({
30
30
  name: "ElmCollapse",
31
31
  props: {
32
32
  isOpen: {
@@ -44,26 +44,26 @@ var x = {
44
44
  },
45
45
  setup(e, { slots: t }) {
46
46
  return () => r("div", {
47
- class: b(S["elm-collapse"], e.isOpen && S.open, e.direction === "row" && S.row, e.direction === "column" && S.column, e.direction === "both" && S.both),
47
+ class: x(C["elm-collapse"], e.isOpen && C.open, e.direction === "row" && C.row, e.direction === "column" && C.column, e.direction === "both" && C.both),
48
48
  style: { "--elmethis-scoped-transition-timing-function": e.transitionTimingFunction }
49
- }, [r("div", { class: S.inner }, [t.default?.()])]);
49
+ }, [r("div", { class: C.inner }, [t.default?.()])]);
50
50
  }
51
51
  });
52
52
  //#endregion
53
53
  //#region src/hooks/use-bindable-signal.ts
54
- function Yt(e) {
54
+ function Jt(e) {
55
55
  let { props: t, key: n, emit: r, defaultValue: i } = e;
56
- return Ce(t, n, r, {
56
+ return Se(t, n, r, {
57
57
  passive: !0,
58
58
  defaultValue: i
59
59
  });
60
60
  }
61
61
  //#endregion
62
62
  //#region src/components/containments/tabs-context.ts
63
- var Xt = Symbol("elm.tabs"), Zt = (e) => {
63
+ var Yt = Symbol("elm.tabs"), Xt = (e) => {
64
64
  if (e == null) throw Error("ElmTabs subcomponents must be used within <ElmTabs>");
65
65
  return e;
66
- }, Qt = /* @__PURE__ */ i({
66
+ }, Zt = /* @__PURE__ */ i({
67
67
  name: "ElmTabs",
68
68
  props: {
69
69
  value: {
@@ -81,13 +81,13 @@ var Xt = Symbol("elm.tabs"), Zt = (e) => {
81
81
  },
82
82
  emits: ["update:value"],
83
83
  setup(e, { emit: t, slots: n }) {
84
- let i = Yt({
84
+ let i = Jt({
85
85
  props: e,
86
86
  key: "value",
87
87
  emit: t,
88
88
  defaultValue: e.defaultValue ?? ""
89
89
  });
90
- return p(Xt, {
90
+ return p(Yt, {
91
91
  selectedValue: i,
92
92
  setSelectedValue: (e) => {
93
93
  i.value = e;
@@ -95,41 +95,41 @@ var Xt = Symbol("elm.tabs"), Zt = (e) => {
95
95
  get transitionTimingFunction() {
96
96
  return e.transitionTimingFunction;
97
97
  }
98
- }), () => r("div", { class: b(x["elm-tabs"]) }, [n.default?.()]);
98
+ }), () => r("div", { class: x(S["elm-tabs"]) }, [n.default?.()]);
99
99
  }
100
- }), $t = /* @__PURE__ */ i({
100
+ }), Qt = /* @__PURE__ */ i({
101
101
  name: "ElmTabList",
102
102
  setup(e, { slots: t }) {
103
- return () => r("div", { class: b(x["tab-container"]) }, [t.default?.()]);
103
+ return () => r("div", { class: x(S["tab-container"]) }, [t.default?.()]);
104
104
  }
105
- }), en = /* @__PURE__ */ i({
105
+ }), $t = /* @__PURE__ */ i({
106
106
  name: "ElmTab",
107
107
  props: { value: {
108
108
  type: String,
109
109
  required: !0
110
110
  } },
111
111
  setup(e, { slots: t }) {
112
- let n = Zt(o(Xt));
112
+ let n = Xt(o(Yt));
113
113
  return () => r("div", {
114
- class: b(x.tab, n.selectedValue.value === e.value && x.active),
114
+ class: x(S.tab, n.selectedValue.value === e.value && S.active),
115
115
  onClick: () => n.setSelectedValue(e.value)
116
116
  }, [t.default?.()]);
117
117
  }
118
- }), tn = /* @__PURE__ */ i({
118
+ }), en = /* @__PURE__ */ i({
119
119
  name: "ElmTabPanel",
120
120
  props: { value: {
121
121
  type: String,
122
122
  required: !0
123
123
  } },
124
124
  setup(e, { slots: t }) {
125
- let n = Zt(o(Xt));
126
- return () => r("div", { class: b(x["tab-content"]) }, [r(Jt, {
125
+ let n = Xt(o(Yt));
126
+ return () => r("div", { class: x(S["tab-content"]) }, [r(qt, {
127
127
  direction: "row",
128
128
  isOpen: n.selectedValue.value === e.value,
129
129
  transitionTimingFunction: n.transitionTimingFunction
130
- }, { default: () => [r("div", { class: x["tab-content-inner"] }, [t.default?.()])] })]);
130
+ }, { default: () => [r("div", { class: S["tab-content-inner"] }, [t.default?.()])] })]);
131
131
  }
132
- }), nn = {
132
+ }), tn = {
133
133
  "elm-heading": "_elm-heading_1fuld_1",
134
134
  h1: "_h1_1fuld_12",
135
135
  h2: "_h2_1fuld_34",
@@ -138,7 +138,7 @@ var Xt = Symbol("elm.tabs"), Zt = (e) => {
138
138
  h4: "_h4_1fuld_86",
139
139
  h5: "_h5_1fuld_90",
140
140
  h6: "_h6_1fuld_94"
141
- }, C = { text: "_text_zme4t_1" }, rn = { "elm-fragment-identifier": "_elm-fragment-identifier_xb2v4_1" }, an = /* @__PURE__ */ i({
141
+ }, w = { text: "_text_zme4t_1" }, nn = { "elm-fragment-identifier": "_elm-fragment-identifier_xb2v4_1" }, rn = /* @__PURE__ */ i({
142
142
  name: "ElmFragmentIdentifier",
143
143
  inheritAttrs: !1,
144
144
  props: { id: {
@@ -153,19 +153,19 @@ var Xt = Symbol("elm.tabs"), Zt = (e) => {
153
153
  return () => {
154
154
  let { class: a, ...o } = t;
155
155
  return r("span", c({
156
- class: b(rn["elm-fragment-identifier"], a),
156
+ class: x(nn["elm-fragment-identifier"], a),
157
157
  onClick: () => i(e.id)
158
158
  }, o), [n("#")]);
159
159
  };
160
160
  }
161
- }), on = Object.freeze({
161
+ }), an = Object.freeze({
162
162
  1: 1.5,
163
163
  2: 1.4,
164
164
  3: 1.3,
165
165
  4: 1.2,
166
166
  5: 1.15,
167
167
  6: 1.1
168
- }), sn = /* @__PURE__ */ i({
168
+ }), on = /* @__PURE__ */ i({
169
169
  name: "ElmHeading",
170
170
  props: {
171
171
  level: {
@@ -183,20 +183,20 @@ var Xt = Symbol("elm.tabs"), Zt = (e) => {
183
183
  },
184
184
  setup(e, { slots: t }) {
185
185
  return () => r(`h${e.level}`, {
186
- class: b(nn["elm-heading"], C.text, nn[`h${e.level}`]),
187
- style: { "--elmethis-scoped-font-size": `${on[e.level]}em` },
186
+ class: x(tn["elm-heading"], w.text, tn[`h${e.level}`]),
187
+ style: { "--elmethis-scoped-font-size": `${an[e.level]}em` },
188
188
  id: e.id
189
189
  }, { default: () => [
190
190
  r("span", null, [e.text]),
191
191
  t.default?.(),
192
- e.id && r("span", { style: { padding: "0.5rem" } }, [r(an, { id: e.id }, null)]),
192
+ e.id && r("span", { style: { padding: "0.5rem" } }, [r(rn, { id: e.id }, null)]),
193
193
  e.level === 2 && r("span", {
194
- class: nn["h2-underline"],
194
+ class: tn["h2-underline"],
195
195
  "aria-hidden": "true"
196
196
  }, null)
197
197
  ] });
198
198
  }
199
- }), cn = {
199
+ }), sn = {
200
200
  "elm-inline-text": "_elm-inline-text_uf3sg_1",
201
201
  code: "_code_uf3sg_13",
202
202
  kbd: "_kbd_uf3sg_25",
@@ -205,7 +205,7 @@ var Xt = Symbol("elm.tabs"), Zt = (e) => {
205
205
  "ogp-text": "_ogp-text_uf3sg_104",
206
206
  "ogp-title": "_ogp-title_uf3sg_109",
207
207
  "ogp-description": "_ogp-description_uf3sg_115"
208
- }, ln = { "elm-inline-icon": "_elm-inline-icon_1qs0i_1" }, w = /* @__PURE__ */ i({
208
+ }, cn = { "elm-inline-icon": "_elm-inline-icon_1qs0i_1" }, T = /* @__PURE__ */ i({
209
209
  name: "ElmInlineIcon",
210
210
  inheritAttrs: !1,
211
211
  props: {
@@ -233,16 +233,16 @@ var Xt = Symbol("elm.tabs"), Zt = (e) => {
233
233
  setup(e, { attrs: t }) {
234
234
  return () => {
235
235
  let { class: n, ...i } = t;
236
- return r("span", c({ class: b(ln["elm-inline-icon"], n) }, i), [r("img", {
236
+ return r("span", c({ class: x(cn["elm-inline-icon"], n) }, i), [r("img", {
237
237
  src: e.src,
238
238
  alt: e.alt,
239
- class: ln["elm-inline-icon"],
239
+ class: cn["elm-inline-icon"],
240
240
  width: e.width ?? e.size,
241
241
  height: e.height ?? e.size
242
242
  }, null)]);
243
243
  };
244
244
  }
245
- }), T = /* @__PURE__ */ i({
245
+ }), E = /* @__PURE__ */ i({
246
246
  name: "ElmInlineText",
247
247
  inheritAttrs: !1,
248
248
  props: {
@@ -299,16 +299,16 @@ var Xt = Symbol("elm.tabs"), Zt = (e) => {
299
299
  return () => {
300
300
  let { class: i, style: a, ...o } = t, s = n.default?.();
301
301
  return e.href && (s = r("a", {
302
- class: cn.link,
302
+ class: sn.link,
303
303
  href: e.href,
304
304
  target: "_blank",
305
305
  rel: "noopener noreferrer"
306
- }, [e.favicon && r(w, {
306
+ }, [e.favicon && r(T, {
307
307
  src: e.favicon,
308
308
  alt: "favicon"
309
309
  }, null), s])), e.kbd && ((function() {
310
310
  return s;
311
- })(), s = r("kbd", { class: cn.kbd }, [s])), e.strikethrough && ((function() {
311
+ })(), s = r("kbd", { class: sn.kbd }, [s])), e.strikethrough && ((function() {
312
312
  return s;
313
313
  })(), s = r("del", null, [s])), e.italic && ((function() {
314
314
  return s;
@@ -318,8 +318,8 @@ var Xt = Symbol("elm.tabs"), Zt = (e) => {
318
318
  return s;
319
319
  })(), s = r("strong", null, [s])), e.code && ((function() {
320
320
  return s;
321
- })(), s = r("code", { class: cn.code }, [s])), e.ruby && (s = r("ruby", { class: cn["elm-inline-text"] }, [r("span", null, [s]), r("rt", null, [e.ruby])])), r("span", c({
322
- class: b(cn["elm-inline-text"], C.text, i),
321
+ })(), s = r("code", { class: sn.code }, [s])), e.ruby && (s = r("ruby", { class: sn["elm-inline-text"] }, [r("span", null, [s]), r("rt", null, [e.ruby])])), r("span", c({
322
+ class: x(sn["elm-inline-text"], w.text, i),
323
323
  style: [a, {
324
324
  "--elmethis-scoped-color": e.color,
325
325
  "--elmethis-scoped-font-size": e.size,
@@ -328,7 +328,7 @@ var Xt = Symbol("elm.tabs"), Zt = (e) => {
328
328
  }, o), [s]);
329
329
  };
330
330
  }
331
- }), un = { "elm-paragraph": "_elm-paragraph_y4o6n_1" }, dn = /* @__PURE__ */ i({
331
+ }), ln = { "elm-paragraph": "_elm-paragraph_y4o6n_1" }, un = /* @__PURE__ */ i({
332
332
  name: "ElmParagraph",
333
333
  inheritAttrs: !1,
334
334
  props: {
@@ -345,7 +345,7 @@ var Xt = Symbol("elm.tabs"), Zt = (e) => {
345
345
  return () => {
346
346
  let { class: i, style: a, ...o } = t;
347
347
  return r("p", c({
348
- class: b(un["elm-paragraph"], C.text, i),
348
+ class: x(ln["elm-paragraph"], w.text, i),
349
349
  style: [a, {
350
350
  "--elmethis-scoped-color": e.color,
351
351
  "--elmethis-scoped-background-color": e.backgroundColor
@@ -353,77 +353,77 @@ var Xt = Symbol("elm.tabs"), Zt = (e) => {
353
353
  }, o), [n.default?.()]);
354
354
  };
355
355
  }
356
- }), E = {
357
- "elm-a2ui": "_elm-a2ui_ttxdd_1",
358
- surface: "_surface_ttxdd_18",
359
- text: "_text_ttxdd_26",
360
- "text-h1": "_text-h1_ttxdd_31",
361
- "text-h2": "_text-h2_ttxdd_36",
362
- "text-h3": "_text-h3_ttxdd_41",
363
- "text-h4": "_text-h4_ttxdd_46",
364
- "text-h5": "_text-h5_ttxdd_51",
365
- "text-body": "_text-body_ttxdd_56",
366
- row: "_row_ttxdd_62",
367
- column: "_column_ttxdd_68",
368
- "child-wrap": "_child-wrap_ttxdd_75",
369
- list: "_list_ttxdd_79",
370
- "list-horizontal": "_list-horizontal_ttxdd_86",
371
- "list-item": "_list-item_ttxdd_90",
372
- card: "_card_ttxdd_96",
373
- button: "_button_ttxdd_106",
374
- "button-primary": "_button-primary_ttxdd_125",
375
- image: "_image_ttxdd_137",
376
- icon: "_icon_ttxdd_145",
377
- divider: "_divider_ttxdd_154",
378
- "divider-vertical": "_divider-vertical_ttxdd_160",
379
- "text-field": "_text-field_ttxdd_170",
380
- label: "_label_ttxdd_176",
381
- input: "_input_ttxdd_182",
382
- checkbox: "_checkbox_ttxdd_195",
383
- "checkbox-label": "_checkbox-label_ttxdd_203",
384
- slider: "_slider_ttxdd_207",
385
- modal: "_modal_ttxdd_214",
386
- "modal-content": "_modal-content_ttxdd_218",
387
- video: "_video_ttxdd_224",
388
- audio: "_audio_ttxdd_225",
389
- "choice-picker": "_choice-picker_ttxdd_232",
390
- "choice-picker-label": "_choice-picker-label_ttxdd_238",
391
- "choice-picker-options": "_choice-picker-options_ttxdd_244",
392
- "choice-picker-option": "_choice-picker-option_ttxdd_244",
393
- "datetime-input": "_datetime-input_ttxdd_261"
356
+ }), D = {
357
+ "elm-a2ui": "_elm-a2ui_16dbe_1",
358
+ surface: "_surface_16dbe_18",
359
+ text: "_text_16dbe_26",
360
+ "text-h1": "_text-h1_16dbe_31",
361
+ "text-h2": "_text-h2_16dbe_36",
362
+ "text-h3": "_text-h3_16dbe_41",
363
+ "text-h4": "_text-h4_16dbe_46",
364
+ "text-h5": "_text-h5_16dbe_51",
365
+ "text-body": "_text-body_16dbe_56",
366
+ row: "_row_16dbe_62",
367
+ column: "_column_16dbe_68",
368
+ "child-wrap": "_child-wrap_16dbe_75",
369
+ list: "_list_16dbe_79",
370
+ "list-horizontal": "_list-horizontal_16dbe_86",
371
+ "list-item": "_list-item_16dbe_90",
372
+ card: "_card_16dbe_96",
373
+ button: "_button_16dbe_106",
374
+ "button-primary": "_button-primary_16dbe_125",
375
+ image: "_image_16dbe_137",
376
+ icon: "_icon_16dbe_145",
377
+ divider: "_divider_16dbe_154",
378
+ "divider-vertical": "_divider-vertical_16dbe_160",
379
+ "text-field": "_text-field_16dbe_170",
380
+ label: "_label_16dbe_176",
381
+ input: "_input_16dbe_182",
382
+ checkbox: "_checkbox_16dbe_195",
383
+ "checkbox-label": "_checkbox-label_16dbe_203",
384
+ slider: "_slider_16dbe_207",
385
+ modal: "_modal_16dbe_214",
386
+ "modal-content": "_modal-content_16dbe_218",
387
+ video: "_video_16dbe_224",
388
+ audio: "_audio_16dbe_225",
389
+ "choice-picker": "_choice-picker_16dbe_232",
390
+ "choice-picker-label": "_choice-picker-label_16dbe_238",
391
+ "choice-picker-options": "_choice-picker-options_16dbe_244",
392
+ "choice-picker-option": "_choice-picker-option_16dbe_244",
393
+ "datetime-input": "_datetime-input_16dbe_261"
394
394
  };
395
395
  //#endregion
396
396
  //#region \0@oxc-project+runtime@0.123.0/helpers/typeof.js
397
- function fn(e) {
397
+ function dn(e) {
398
398
  "@babel/helpers - typeof";
399
- return fn = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) {
399
+ return dn = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) {
400
400
  return typeof e;
401
401
  } : function(e) {
402
402
  return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
403
- }, fn(e);
403
+ }, dn(e);
404
404
  }
405
405
  //#endregion
406
406
  //#region \0@oxc-project+runtime@0.123.0/helpers/toPrimitive.js
407
- function pn(e, t) {
408
- if (fn(e) != "object" || !e) return e;
407
+ function fn(e, t) {
408
+ if (dn(e) != "object" || !e) return e;
409
409
  var n = e[Symbol.toPrimitive];
410
410
  if (n !== void 0) {
411
411
  var r = n.call(e, t || "default");
412
- if (fn(r) != "object") return r;
412
+ if (dn(r) != "object") return r;
413
413
  throw TypeError("@@toPrimitive must return a primitive value.");
414
414
  }
415
415
  return (t === "string" ? String : Number)(e);
416
416
  }
417
417
  //#endregion
418
418
  //#region \0@oxc-project+runtime@0.123.0/helpers/toPropertyKey.js
419
- function mn(e) {
420
- var t = pn(e, "string");
421
- return fn(t) == "symbol" ? t : t + "";
419
+ function pn(e) {
420
+ var t = fn(e, "string");
421
+ return dn(t) == "symbol" ? t : t + "";
422
422
  }
423
423
  //#endregion
424
424
  //#region \0@oxc-project+runtime@0.123.0/helpers/defineProperty.js
425
- function hn(e, t, n) {
426
- return (t = mn(t)) in e ? Object.defineProperty(e, t, {
425
+ function mn(e, t, n) {
426
+ return (t = pn(t)) in e ? Object.defineProperty(e, t, {
427
427
  value: n,
428
428
  enumerable: !0,
429
429
  configurable: !0,
@@ -432,15 +432,15 @@ function hn(e, t, n) {
432
432
  }
433
433
  //#endregion
434
434
  //#region src/components/a2ui/catalog/catalog.ts
435
- function D(e, t) {
435
+ function O(e, t) {
436
436
  return {
437
437
  name: e.name,
438
438
  render: t
439
439
  };
440
440
  }
441
- var gn = class e {
441
+ var hn = class e {
442
442
  constructor(e = []) {
443
- hn(this, "entries", void 0);
443
+ mn(this, "entries", void 0);
444
444
  let t = /* @__PURE__ */ new Map();
445
445
  for (let n of e) t.set(n.name, n);
446
446
  this.entries = t;
@@ -457,7 +457,7 @@ var gn = class e {
457
457
  else n.set(r.name, r);
458
458
  return new e(n.values());
459
459
  }
460
- }, _n = {
460
+ }, gn = {
461
461
  start: "flex-start",
462
462
  end: "flex-end",
463
463
  center: "center",
@@ -465,12 +465,12 @@ var gn = class e {
465
465
  spaceAround: "space-around",
466
466
  spaceEvenly: "space-evenly",
467
467
  stretch: "stretch"
468
- }, vn = {
468
+ }, _n = {
469
469
  start: "flex-start",
470
470
  end: "flex-end",
471
471
  center: "center",
472
472
  stretch: "stretch"
473
- }, yn = {
473
+ }, vn = {
474
474
  contain: "contain",
475
475
  cover: "cover",
476
476
  fill: "fill",
@@ -479,15 +479,15 @@ var gn = class e {
479
479
  };
480
480
  //#endregion
481
481
  //#region src/components/a2ui/catalog/basic-catalog.tsx
482
- function bn(e) {
482
+ function yn(e) {
483
483
  return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !s(e);
484
484
  }
485
- var xn = {
485
+ var bn = {
486
486
  shortText: "text",
487
487
  number: "number",
488
488
  obscured: "password"
489
489
  };
490
- function Sn(e) {
490
+ function xn(e) {
491
491
  switch (e) {
492
492
  case "h1": return 1;
493
493
  case "h2": return 2;
@@ -497,84 +497,84 @@ function Sn(e) {
497
497
  default: return 1;
498
498
  }
499
499
  }
500
- var Cn = new gn([
501
- D(ve, ({ props: e, resolve: t }) => {
500
+ var Sn = new hn([
501
+ O(_e, ({ props: e, resolve: t }) => {
502
502
  let n = t(e.text), i = e.variant ?? "body";
503
- return i === "caption" ? r(T, null, bn(n) ? n : { default: () => [n] }) : i === "body" ? r(dn, null, bn(n) ? n : { default: () => [n] }) : r(sn, { level: Sn(i) }, bn(n) ? n : { default: () => [n] });
503
+ return i === "caption" ? r(E, null, yn(n) ? n : { default: () => [n] }) : i === "body" ? r(un, null, yn(n) ? n : { default: () => [n] }) : r(on, { level: xn(i) }, yn(n) ? n : { default: () => [n] });
504
504
  }),
505
- D(he, ({ props: e, childRefs: t, renderChild: n }) => r("div", {
506
- class: E.row,
505
+ O(me, ({ props: e, childRefs: t, renderChild: n }) => r("div", {
506
+ class: D.row,
507
507
  style: {
508
- justifyContent: _n[e.justify ?? "start"],
509
- alignItems: vn[e.align ?? "center"]
508
+ justifyContent: gn[e.justify ?? "start"],
509
+ alignItems: _n[e.align ?? "center"]
510
510
  }
511
511
  }, [t(e.children).map(({ id: e, path: t }, i) => r("span", {
512
512
  key: `${e}:${i}`,
513
- class: E["child-wrap"]
513
+ class: D["child-wrap"]
514
514
  }, [n(e, t, i)]))])),
515
- D(ce, ({ props: e, childRefs: t, renderChild: n }) => r("div", { class: E.column }, [t(e.children).map(({ id: e, path: t }, i) => r("span", {
515
+ O(se, ({ props: e, childRefs: t, renderChild: n }) => r("div", { class: D.column }, [t(e.children).map(({ id: e, path: t }, i) => r("span", {
516
516
  key: `${e}:${i}`,
517
- class: E["child-wrap"]
517
+ class: D["child-wrap"]
518
518
  }, [n(e, t, i)]))])),
519
- D(pe, ({ props: e, childRefs: t, renderChild: n }) => r("div", { class: b(E.list, e.direction === "horizontal" && E["list-horizontal"]) }, [t(e.children).map(({ id: e, path: t }, i) => r("div", {
519
+ O(fe, ({ props: e, childRefs: t, renderChild: n }) => r("div", { class: x(D.list, e.direction === "horizontal" && D["list-horizontal"]) }, [t(e.children).map(({ id: e, path: t }, i) => r("div", {
520
520
  key: `${e}:${i}`,
521
- class: E["list-item"]
521
+ class: D["list-item"]
522
522
  }, [n(e, t, i)]))])),
523
- D(ae, ({ props: e, renderChild: t }) => r("div", { class: E.card }, [t(e.child)])),
524
- D(ie, ({ props: e, renderChild: t, dispatchAction: n }) => r("div", {
523
+ O(ie, ({ props: e, renderChild: t }) => r("div", { class: D.card }, [t(e.child)])),
524
+ O(re, ({ props: e, renderChild: t, dispatchAction: n }) => r("div", {
525
525
  role: "button",
526
526
  tabindex: 0,
527
- class: b(E.button, e.variant === "primary" && E["button-primary"]),
527
+ class: x(D.button, e.variant === "primary" && D["button-primary"]),
528
528
  onClick: e.action ? () => n("action") : void 0,
529
529
  onKeydown: e.action ? (e) => {
530
530
  (e.key === "Enter" || e.key === " ") && (e.preventDefault(), n("action"));
531
531
  } : void 0
532
532
  }, [t(e.child)])),
533
- D(fe, ({ props: e, resolve: t }) => r("img", {
534
- class: E.image,
533
+ O(de, ({ props: e, resolve: t }) => r("img", {
534
+ class: D.image,
535
535
  src: t(e.url),
536
536
  alt: e.description ? t(e.description) : "",
537
- style: { objectFit: yn[e.fit ?? "cover"] }
537
+ style: { objectFit: vn[e.fit ?? "cover"] }
538
538
  }, null)),
539
- D(de, ({ props: e, resolve: t }) => {
539
+ O(ue, ({ props: e, resolve: t }) => {
540
540
  let n = t(e.name);
541
541
  return r("span", {
542
- class: E.icon,
542
+ class: D.icon,
543
543
  "aria-label": n,
544
544
  "data-icon": n
545
545
  }, null);
546
546
  }),
547
- D(ue, ({ props: e }) => r("div", {
548
- class: b(E.divider, e.axis === "vertical" && E["divider-vertical"]),
547
+ O(le, ({ props: e }) => r("div", {
548
+ class: x(D.divider, e.axis === "vertical" && D["divider-vertical"]),
549
549
  role: "separator"
550
550
  }, null)),
551
- D(ye, ({ props: e, resolve: t, setBinding: n }) => {
551
+ O(ve, ({ props: e, resolve: t, setBinding: n }) => {
552
552
  let i = e.variant ?? "shortText", a = e.value ? t(e.value) : "";
553
- return r("div", { class: E["text-field"] }, [r("label", { class: E.label }, [t(e.label)]), i === "longText" ? r("textarea", {
554
- class: E.input,
553
+ return r("div", { class: D["text-field"] }, [r("label", { class: D.label }, [t(e.label)]), i === "longText" ? r("textarea", {
554
+ class: D.input,
555
555
  value: a,
556
556
  onInput: (e) => n("value", e.target.value),
557
557
  onChange: (e) => n("value", e.target.value)
558
558
  }, null) : r("input", {
559
- class: E.input,
560
- type: xn[i] ?? "text",
559
+ class: D.input,
560
+ type: bn[i] ?? "text",
561
561
  value: a,
562
562
  onInput: (e) => n("value", e.target.value),
563
563
  onChange: (e) => n("value", e.target.value)
564
564
  }, null)]);
565
565
  }),
566
- D(oe, ({ props: e, ctx: t, resolve: n, setBinding: i }) => {
566
+ O(ae, ({ props: e, ctx: t, resolve: n, setBinding: i }) => {
567
567
  let a = e.value, o = typeof a == "boolean" ? a : !!(t.dataContext.resolveDynamicValue(a) ?? !1);
568
- return r("label", { class: E.checkbox }, [r("input", {
568
+ return r("label", { class: D.checkbox }, [r("input", {
569
569
  type: "checkbox",
570
570
  checked: o,
571
571
  onChange: (e) => i("value", e.target.checked)
572
- }, null), r("span", { class: E["checkbox-label"] }, [n(e.label)])]);
572
+ }, null), r("span", { class: D["checkbox-label"] }, [n(e.label)])]);
573
573
  }),
574
- D(ge, ({ props: e, ctx: t, setBinding: n }) => {
574
+ O(he, ({ props: e, ctx: t, setBinding: n }) => {
575
575
  let i = e.value, a = typeof i == "number" ? i : Number(t.dataContext.resolveDynamicValue(i) ?? 0);
576
576
  return r("input", {
577
- class: E.slider,
577
+ class: D.slider,
578
578
  type: "range",
579
579
  value: a,
580
580
  min: e.min ?? 0,
@@ -583,45 +583,45 @@ var Cn = new gn([
583
583
  onChange: (e) => n("value", Number(e.target.value))
584
584
  }, null);
585
585
  }),
586
- D(_e, ({ props: e, resolve: t, renderChild: n }) => {
586
+ O(ge, ({ props: e, resolve: t, renderChild: n }) => {
587
587
  let i;
588
- return r(Qt, { defaultValue: "0" }, { default: () => [r($t, null, bn(i = e.tabs.map((e, n) => {
588
+ return r(Zt, { defaultValue: "0" }, { default: () => [r(Qt, null, yn(i = e.tabs.map((e, n) => {
589
589
  let i;
590
- return r(en, {
590
+ return r($t, {
591
591
  key: n,
592
592
  value: String(n)
593
- }, bn(i = t(e.title)) ? i : { default: () => [i] });
593
+ }, yn(i = t(e.title)) ? i : { default: () => [i] });
594
594
  })) ? i : { default: () => [i] }), e.tabs.map((e, t) => {
595
595
  let i;
596
- return r(tn, {
596
+ return r(en, {
597
597
  key: t,
598
598
  value: String(t)
599
- }, bn(i = n(e.child)) ? i : { default: () => [i] });
599
+ }, yn(i = n(e.child)) ? i : { default: () => [i] });
600
600
  })] });
601
601
  }),
602
- D(me, ({ props: e, renderChild: t }) => r("div", { class: E.modal }, [t(e.trigger), r("div", { class: E["modal-content"] }, [t(e.content)])])),
603
- D(be, ({ props: e, resolve: t }) => r("video", {
604
- class: E.video,
602
+ O(pe, ({ props: e, renderChild: t }) => r("div", { class: D.modal }, [t(e.trigger), r("div", { class: D["modal-content"] }, [t(e.content)])])),
603
+ O(ye, ({ props: e, resolve: t }) => r("video", {
604
+ class: D.video,
605
605
  controls: !0,
606
606
  src: t(e.url)
607
607
  }, null)),
608
- D(ne, ({ props: e, resolve: t }) => r("audio", {
609
- class: E.audio,
608
+ O(te, ({ props: e, resolve: t }) => r("audio", {
609
+ class: D.audio,
610
610
  controls: !0,
611
611
  src: t(e.url)
612
612
  }, null)),
613
- D(se, ({ props: e, componentId: t, ctx: n, resolve: i, setBinding: a }) => {
613
+ O(oe, ({ props: e, componentId: t, ctx: n, resolve: i, setBinding: a }) => {
614
614
  let o = e.value, s = Array.isArray(o) ? o : n.dataContext.resolveDynamicValue(o) ?? [], c = Array.isArray(s) ? s : [], l = (e.variant ?? "mutuallyExclusive") === "multipleSelection";
615
615
  return r("div", {
616
- class: E["choice-picker"],
616
+ class: D["choice-picker"],
617
617
  "data-choice-picker": t,
618
618
  onChange: (e) => {
619
619
  let t = e.currentTarget, n = t.querySelectorAll("input"), r = n.length > 0 && n[0].type === "checkbox", i = Array.from(t.querySelectorAll("input:checked")).map((e) => e.value);
620
620
  a("value", r ? i : i.slice(0, 1));
621
621
  }
622
- }, [e.label ? r("span", { class: E["choice-picker-label"] }, [i(e.label)]) : null, r("div", { class: E["choice-picker-options"] }, [e.options.map((e) => r("label", {
622
+ }, [e.label ? r("span", { class: D["choice-picker-label"] }, [i(e.label)]) : null, r("div", { class: D["choice-picker-options"] }, [e.options.map((e) => r("label", {
623
623
  key: e.value,
624
- class: E["choice-picker-option"]
624
+ class: D["choice-picker-option"]
625
625
  }, [r("input", {
626
626
  type: l ? "checkbox" : "radio",
627
627
  name: t,
@@ -629,10 +629,10 @@ var Cn = new gn([
629
629
  checked: c.includes(e.value)
630
630
  }, null), r("span", null, [i(e.label)])]))])]);
631
631
  }),
632
- D(le, ({ props: e, resolve: t, setBinding: n }) => {
632
+ O(ce, ({ props: e, resolve: t, setBinding: n }) => {
633
633
  let i = e.enableDate ?? !1, a = e.enableTime ?? !1, o = i && a ? "datetime-local" : i ? "date" : a ? "time" : "text";
634
- return r("div", { class: E["datetime-input"] }, [e.label ? r("label", { class: E.label }, [t(e.label)]) : null, r("input", {
635
- class: E.input,
634
+ return r("div", { class: D["datetime-input"] }, [e.label ? r("label", { class: D.label }, [t(e.label)]) : null, r("input", {
635
+ class: D.input,
636
636
  type: o,
637
637
  value: e.value ? t(e.value) : "",
638
638
  min: e.min == null ? void 0 : String(e.min),
@@ -641,7 +641,7 @@ var Cn = new gn([
641
641
  onChange: (e) => n("value", e.target.value)
642
642
  }, null)]);
643
643
  })
644
- ]), wn = "root", Tn = Symbol("elmethis.a2ui.surface"), En = Symbol("elmethis.a2ui.catalog"), Dn = Symbol("elmethis.a2ui.ancestors"), On = /* @__PURE__ */ i({
644
+ ]), Cn = "root", wn = Symbol("elmethis.a2ui.surface"), Tn = Symbol("elmethis.a2ui.catalog"), En = Symbol("elmethis.a2ui.ancestors"), Dn = /* @__PURE__ */ i({
645
645
  name: "ComponentHost",
646
646
  props: {
647
647
  id: {
@@ -658,8 +658,8 @@ var Cn = new gn([
658
658
  }
659
659
  },
660
660
  setup(e) {
661
- let t = o(Tn, void 0), i = o(En, void 0), a = o(Dn, []), s = a.includes(e.id);
662
- p(Dn, [...a, e.id]);
661
+ let t = o(wn, void 0), i = o(Tn, void 0), a = o(En, []), s = a.includes(e.id);
662
+ p(En, [...a, e.id]);
663
663
  let c = m(0), l = m(!1), u = [], h = null;
664
664
  return d(() => {
665
665
  if (!t) return;
@@ -704,7 +704,7 @@ var Cn = new gn([
704
704
  fontWeight: 600
705
705
  }
706
706
  }, [n("Unknown component: "), a.type]);
707
- let u = new te(t, e.id, e.basePath), d = (e) => typeof e == "string" ? e : e == null ? "" : typeof e == "object" ? u.dataContext.resolveDynamicValue(e) ?? "" : String(e), f = (n) => {
707
+ let u = new v(t, e.id, e.basePath), d = (e) => typeof e == "string" ? e : e == null ? "" : typeof e == "object" ? u.dataContext.resolveDynamicValue(e) ?? "" : String(e), f = (n) => {
708
708
  if (Array.isArray(n)) return n.filter((e) => typeof e == "string").map((t) => ({
709
709
  id: t,
710
710
  path: e.basePath
@@ -717,7 +717,7 @@ var Cn = new gn([
717
717
  })) : [];
718
718
  }
719
719
  return [];
720
- }, p = (t, n = e.basePath, i = 0) => r(On, {
720
+ }, p = (t, n = e.basePath, i = 0) => r(Dn, {
721
721
  key: t,
722
722
  id: t,
723
723
  basePath: n,
@@ -738,7 +738,7 @@ var Cn = new gn([
738
738
  let i = r.properties[e];
739
739
  if (!i || typeof i != "object" || !("path" in i)) return;
740
740
  let a = i.path;
741
- new te(t, m).dataContext.set(a, n);
741
+ new v(t, m).dataContext.set(a, n);
742
742
  },
743
743
  dispatchAction: (e = "action") => {
744
744
  if (!t) return;
@@ -746,7 +746,7 @@ var Cn = new gn([
746
746
  if (!n) return;
747
747
  let r = n.properties[e];
748
748
  if (!r) return;
749
- let i = new te(t, m), a = (e) => {
749
+ let i = new v(t, m), a = (e) => {
750
750
  if (typeof e != "object" || !e) return e;
751
751
  if ("path" in e || "call" in e) return i.dataContext.resolveDynamicValue(e);
752
752
  if (Array.isArray(e)) return e.map(a);
@@ -768,7 +768,7 @@ var Cn = new gn([
768
768
  });
769
769
  //#endregion
770
770
  //#region src/components/a2ui/stream-json-lines.ts
771
- async function kn(e, { signal: t, onMessage: n, onError: r }) {
771
+ async function On(e, { signal: t, onMessage: n, onError: r }) {
772
772
  if (t?.aborted) return;
773
773
  let i = e.getReader(), a = new TextDecoder(), o = "", s = () => {
774
774
  i.cancel().catch(() => {});
@@ -801,19 +801,19 @@ async function kn(e, { signal: t, onMessage: n, onError: r }) {
801
801
  }
802
802
  //#endregion
803
803
  //#region src/components/a2ui/elm-a2ui.tsx
804
- var An = "https://a2ui.org/specification/v0_9/basic_catalog.json", jn = /* @__PURE__ */ i({
804
+ var kn = "https://a2ui.org/specification/v0_9/basic_catalog.json", An = /* @__PURE__ */ i({
805
805
  name: "A2uiSurfaceView",
806
806
  props: { surface: {
807
807
  type: Object,
808
808
  required: !0
809
809
  } },
810
810
  setup(e) {
811
- return p(Tn, e.surface), p(Dn, []), () => r("div", { class: E.surface }, [r(On, {
812
- id: wn,
811
+ return p(wn, e.surface), p(En, []), () => r("div", { class: D.surface }, [r(Dn, {
812
+ id: Cn,
813
813
  basePath: "/"
814
814
  }, null)]);
815
815
  }
816
- }), Mn = /* @__PURE__ */ i({
816
+ }), jn = /* @__PURE__ */ i({
817
817
  name: "A2uiSurface",
818
818
  props: {
819
819
  surface: {
@@ -826,12 +826,12 @@ var An = "https://a2ui.org/specification/v0_9/basic_catalog.json", jn = /* @__PU
826
826
  }
827
827
  },
828
828
  setup(e) {
829
- return p(En, e.catalog ?? Cn), p(Tn, e.surface), p(Dn, []), () => r("div", { class: E.surface }, [r(On, {
830
- id: wn,
829
+ return p(Tn, e.catalog ?? Sn), p(wn, e.surface), p(En, []), () => r("div", { class: D.surface }, [r(Dn, {
830
+ id: Cn,
831
831
  basePath: "/"
832
832
  }, null)]);
833
833
  }
834
- }), Nn = /* @__PURE__ */ i({
834
+ }), Mn = /* @__PURE__ */ i({
835
835
  name: "ElmA2ui",
836
836
  props: {
837
837
  url: {
@@ -856,7 +856,7 @@ var An = "https://a2ui.org/specification/v0_9/basic_catalog.json", jn = /* @__PU
856
856
  }
857
857
  },
858
858
  setup(e) {
859
- p(En, e.catalog ?? Cn);
859
+ p(Tn, e.catalog ?? Sn);
860
860
  let t = m([]), n = m(0), i = /* @__PURE__ */ new Map(), a = null, o = async () => {
861
861
  let r = e.catalogId, o = e.messages ? [...e.messages] : [...t.value], s = a;
862
862
  if (s !== null && s.catalogId === r && o.length >= s.messages.length && s.messages.every((e, t) => e === o[t]) && s) {
@@ -874,13 +874,13 @@ var An = "https://a2ui.org/specification/v0_9/basic_catalog.json", jn = /* @__PU
874
874
  for (let e of s.subs) e.unsubscribe();
875
875
  s.processor.model.dispose();
876
876
  }
877
- let c = new Set([An]);
877
+ let c = new Set([kn]);
878
878
  r && c.add(r);
879
879
  for (let e of o) if (e && typeof e == "object" && "createSurface" in e) {
880
880
  let t = e.createSurface?.catalogId;
881
881
  typeof t == "string" && c.add(t);
882
882
  }
883
- let l = new v(Array.from(c).map((e) => new ee(e, re, y))), u = /* @__PURE__ */ new Map(), d = [];
883
+ let l = new y(Array.from(c).map((e) => new ee(e, ne, b))), u = /* @__PURE__ */ new Map(), d = [];
884
884
  d.push(l.model.onSurfaceCreated.subscribe((e) => {
885
885
  u.set(e.id, e), n.value++;
886
886
  })), d.push(l.model.onSurfaceDeleted.subscribe((e) => {
@@ -915,7 +915,7 @@ var An = "https://a2ui.org/specification/v0_9/basic_catalog.json", jn = /* @__PU
915
915
  headers: e.headers,
916
916
  signal: n
917
917
  }).then(async (e) => {
918
- e.body && await kn(e.body, {
918
+ e.body && await On(e.body, {
919
919
  signal: n,
920
920
  onMessage: (e) => {
921
921
  e && typeof e == "object" && t.value.push(e);
@@ -932,12 +932,12 @@ var An = "https://a2ui.org/specification/v0_9/basic_catalog.json", jn = /* @__PU
932
932
  for (let e of a.subs) e.unsubscribe();
933
933
  a.processor.model.dispose();
934
934
  }
935
- }), () => (n.value, r("div", { class: E["elm-a2ui"] }, [Array.from(i.values()).map((e) => r(jn, {
935
+ }), () => (n.value, r("div", { class: D["elm-a2ui"] }, [Array.from(i.values()).map((e) => r(An, {
936
936
  key: e.id,
937
937
  surface: e
938
938
  }, null))]));
939
939
  }
940
- }), Pn = { "elm-katex": "_elm-katex_e25qs_5" }, Fn = /* @__PURE__ */ i({
940
+ }), Nn = { "elm-katex": "_elm-katex_e25qs_5" }, Pn = /* @__PURE__ */ i({
941
941
  name: "ElmKatex",
942
942
  props: {
943
943
  expression: {
@@ -950,27 +950,27 @@ var An = "https://a2ui.org/specification/v0_9/basic_catalog.json", jn = /* @__PU
950
950
  }
951
951
  },
952
952
  setup(e) {
953
- let n = t(() => we(e.expression, {
953
+ let n = t(() => Ce(e.expression, {
954
954
  displayMode: e.block,
955
955
  output: "mathml"
956
956
  }));
957
957
  return () => r("div", {
958
- class: b(C.text, e.block ? Pn["elm-katex"] : void 0),
958
+ class: x(w.text, e.block ? Nn["elm-katex"] : void 0),
959
959
  innerHTML: n.value
960
960
  }, null);
961
961
  }
962
- }), In = {
962
+ }), Fn = {
963
963
  "elm-code-block": "_elm-code-block_6itf9_1",
964
964
  "language-icon": "_language-icon_6itf9_16",
965
965
  caption: "_caption_6itf9_21",
966
966
  "copy-icon": "_copy-icon_6itf9_28",
967
967
  divider: "_divider_6itf9_32",
968
968
  code: "_code_6itf9_39"
969
- }, Ln = (e, t, n) => t === "id" ? `${e}-${n}` : e.replace(/url\(#([^)]+)\)/g, `url(#$1-${n})`), Rn = (e, t) => {
969
+ }, In = (e, t, n) => t === "id" ? `${e}-${n}` : e.replace(/url\(#([^)]+)\)/g, `url(#$1-${n})`), Ln = (e, t) => {
970
970
  let n = {};
971
- for (let [r, i] of Object.entries(e.attrs ?? {})) n[r] = Ln(i, r, t);
972
- return e.style && (n.style = e.style), a(e.tag, n, e.children?.map((e) => Rn(e, t)));
973
- }, zn = /* @__PURE__ */ i({
971
+ for (let [r, i] of Object.entries(e.attrs ?? {})) n[r] = In(i, r, t);
972
+ return e.style && (n.style = e.style), a(e.tag, n, e.children?.map((e) => Ln(e, t)));
973
+ }, Rn = /* @__PURE__ */ i({
974
974
  name: "LanguageGlyph",
975
975
  props: {
976
976
  icon: {
@@ -990,9 +990,9 @@ var An = "https://a2ui.org/specification/v0_9/basic_catalog.json", jn = /* @__PU
990
990
  width: e.size,
991
991
  height: e.size,
992
992
  ...e.icon.attrs
993
- }, e.icon.children.map((e) => Rn(e, t)));
993
+ }, e.icon.children.map((e) => Ln(e, t)));
994
994
  }
995
- }), Bn = { "elm-mdi-icon": "_elm-mdi-icon_ihskx_1" }, O = /* @__PURE__ */ i({
995
+ }), zn = { "elm-mdi-icon": "_elm-mdi-icon_ihskx_1" }, k = /* @__PURE__ */ i({
996
996
  name: "ElmMdiIcon",
997
997
  inheritAttrs: !1,
998
998
  props: {
@@ -1021,7 +1021,7 @@ var An = "https://a2ui.org/specification/v0_9/basic_catalog.json", jn = /* @__PU
1021
1021
  return () => {
1022
1022
  let { class: n, style: i, ...a } = t;
1023
1023
  return r("svg", c({
1024
- class: b(Bn["elm-mdi-icon"], n),
1024
+ class: x(zn["elm-mdi-icon"], n),
1025
1025
  style: [{
1026
1026
  "--elmethis-scoped-color": e.lightColor ?? e.color,
1027
1027
  "--dark-color": e.darkColor ?? e.color
@@ -1036,7 +1036,7 @@ var An = "https://a2ui.org/specification/v0_9/basic_catalog.json", jn = /* @__PU
1036
1036
  }, a), [r("path", { d: e.d }, null)]);
1037
1037
  };
1038
1038
  }
1039
- }), Vn = /* @__PURE__ */ i({
1039
+ }), Bn = /* @__PURE__ */ i({
1040
1040
  name: "ElmLanguageIcon",
1041
1041
  props: {
1042
1042
  size: {
@@ -1050,17 +1050,17 @@ var An = "https://a2ui.org/specification/v0_9/basic_catalog.json", jn = /* @__PU
1050
1050
  },
1051
1051
  setup(e) {
1052
1052
  return () => {
1053
- let t = Ut(e.language);
1054
- return t === "file" ? r(O, {
1055
- d: Fe,
1053
+ let t = Ht(e.language);
1054
+ return t === "file" ? r(k, {
1055
+ d: Pe,
1056
1056
  size: String(e.size)
1057
- }, null) : a(zn, {
1058
- icon: Ht[t],
1057
+ }, null) : a(Rn, {
1058
+ icon: Vt[t],
1059
1059
  size: e.size
1060
1060
  });
1061
1061
  };
1062
1062
  }
1063
- }), Hn = { "elm-shiki-highlighter": "_elm-shiki-highlighter_j5tas_1" }, Un = /* @__PURE__ */ i({
1063
+ }), Vn = { "elm-shiki-highlighter": "_elm-shiki-highlighter_j5tas_1" }, Hn = /* @__PURE__ */ i({
1064
1064
  name: "ElmShikiHighlighter",
1065
1065
  inheritAttrs: !1,
1066
1066
  props: {
@@ -1080,11 +1080,11 @@ var An = "https://a2ui.org/specification/v0_9/basic_catalog.json", jn = /* @__PU
1080
1080
  return;
1081
1081
  }
1082
1082
  try {
1083
- let i = await Wt(e, {
1083
+ let i = await Ut(e, {
1084
1084
  lang: t,
1085
1085
  themes: {
1086
- dark: Gt,
1087
- light: Kt
1086
+ dark: Wt,
1087
+ light: Gt
1088
1088
  },
1089
1089
  defaultColor: !1,
1090
1090
  colorReplacements: {
@@ -1105,16 +1105,16 @@ var An = "https://a2ui.org/specification/v0_9/basic_catalog.json", jn = /* @__PU
1105
1105
  }, { immediate: !0 }), () => {
1106
1106
  let { class: e, ...i } = t;
1107
1107
  return r("pre", c({
1108
- class: b(Hn["elm-shiki-highlighter"], e),
1108
+ class: x(Vn["elm-shiki-highlighter"], e),
1109
1109
  innerHTML: n.value
1110
1110
  }, i), null);
1111
1111
  };
1112
1112
  }
1113
- }), Wn = {
1113
+ }), Un = {
1114
1114
  "use-clipboard": "_use-clipboard_mb0qt_1",
1115
1115
  "use-clipboard-icon-copied": "_use-clipboard-icon-copied_mb0qt_15"
1116
- }, Gn = (e) => {
1117
- let n = e.delay ?? 1500, a = xe({ copiedDuring: n }), o = Se({ copiedDuring: n }), s = t(() => a.copied.value || o.copied.value), c = async () => {
1116
+ }, Wn = (e) => {
1117
+ let n = e.delay ?? 1500, a = be({ copiedDuring: n }), o = xe({ copiedDuring: n }), s = t(() => a.copied.value || o.copied.value), c = async () => {
1118
1118
  let t = e.content;
1119
1119
  typeof t == "string" ? await a.copy(t) : await o.copy(t.map((e) => new ClipboardItem(e)));
1120
1120
  };
@@ -1124,18 +1124,18 @@ var An = "https://a2ui.org/specification/v0_9/basic_catalog.json", jn = /* @__PU
1124
1124
  name: "CopyButton",
1125
1125
  setup() {
1126
1126
  return () => r("span", {
1127
- class: b(Wn["use-clipboard"], e.class),
1127
+ class: x(Un["use-clipboard"], e.class),
1128
1128
  style: e.style,
1129
1129
  onClick: c
1130
- }, [r(O, {
1131
- class: b(s.value && Wn["use-clipboard-icon-copied"]),
1132
- d: s.value ? Ne : Pe,
1130
+ }, [r(k, {
1131
+ class: x(s.value && Un["use-clipboard-icon-copied"]),
1132
+ d: s.value ? Me : Ne,
1133
1133
  size: "1.25rem"
1134
1134
  }, null)]);
1135
1135
  }
1136
1136
  })
1137
1137
  };
1138
- }, Kn = /* @__PURE__ */ i({
1138
+ }, Gn = /* @__PURE__ */ i({
1139
1139
  name: "ElmCodeBlock",
1140
1140
  props: {
1141
1141
  code: {
@@ -1152,19 +1152,25 @@ var An = "https://a2ui.org/specification/v0_9/basic_catalog.json", jn = /* @__PU
1152
1152
  }
1153
1153
  },
1154
1154
  setup(e, { slots: t }) {
1155
- let { CopyButton: n } = Gn({ content: e.code });
1156
- return () => r("figure", { class: b(In["elm-code-block"]) }, [
1157
- r("span", { class: In["language-icon"] }, [r(Vn, { language: e.language }, null)]),
1158
- r("span", { class: In.caption }, [r(T, null, { default: () => [e.caption || e.language, t.default?.()] })]),
1159
- r("div", { class: In["copy-icon"] }, [a(n)]),
1160
- r("hr", { class: In.divider }, null),
1161
- r("div", { class: In.code }, [r(Un, {
1155
+ let { CopyButton: n } = Wn({ content: e.code });
1156
+ return () => r("figure", { class: x(Fn["elm-code-block"]) }, [
1157
+ r("span", { class: Fn["language-icon"] }, [r(Bn, { language: e.language }, null)]),
1158
+ r("span", { class: Fn.caption }, [r(E, null, { default: () => [e.caption || e.language, t.default?.()] })]),
1159
+ r("div", { class: Fn["copy-icon"] }, [a(n)]),
1160
+ r("hr", { class: Fn.divider }, null),
1161
+ r("div", { class: Fn.code }, [r(Hn, {
1162
1162
  code: e.code,
1163
1163
  language: e.language
1164
1164
  }, null)])
1165
1165
  ]);
1166
1166
  }
1167
- }), qn = { "elm-html": "_elm-html_339tp_1" }, Jn = (e) => {
1167
+ }), A = {
1168
+ "elm-html-viewer": "_elm-html-viewer_jde0x_1",
1169
+ header: "_header_jde0x_15",
1170
+ "icon-button": "_icon-button_jde0x_23",
1171
+ divider: "_divider_jde0x_49",
1172
+ content: "_content_jde0x_57"
1173
+ }, Kn = { "elm-html": "_elm-html_339tp_1" }, qn = (e) => {
1168
1174
  let t = [], n = 0, r, i = 0;
1169
1175
  for (let a = 0; a < e.length; a++) {
1170
1176
  let o = e[a];
@@ -1175,9 +1181,9 @@ var An = "https://a2ui.org/specification/v0_9/basic_catalog.json", jn = /* @__PU
1175
1181
  o === "\"" || o === "'" ? r = o : o === "(" ? n++ : o === ")" ? n = Math.max(0, n - 1) : o === ";" && n === 0 && (t.push(e.slice(i, a)), i = a + 1);
1176
1182
  }
1177
1183
  return t.push(e.slice(i)), t;
1178
- }, Yn = (e) => {
1184
+ }, Jn = (e) => {
1179
1185
  let t = {};
1180
- for (let n of Jn(e)) {
1186
+ for (let n of qn(e)) {
1181
1187
  let e = n.indexOf(":");
1182
1188
  if (e === -1) continue;
1183
1189
  let r = n.slice(0, e).trim(), i = n.slice(e + 1).trim();
@@ -1186,9 +1192,21 @@ var An = "https://a2ui.org/specification/v0_9/basic_catalog.json", jn = /* @__PU
1186
1192
  t[a] = i;
1187
1193
  }
1188
1194
  return t;
1189
- }, Xn = (e) => {
1190
- if (e !== void 0) return typeof e == "string" ? Yn(e) : l(e);
1191
- }, Zn = /* @__PURE__ */ i({
1195
+ }, Yn = (e) => {
1196
+ if (e !== void 0) return typeof e == "string" ? Jn(e) : l(e);
1197
+ }, Xn = (e, t) => t ? !0 : (e?.split(/\s+/).filter(Boolean) ?? []).some((e) => e.toLowerCase() === "allow-scripts"), Zn = "elmethis:elm-html:auto-height", Qn = (e) => `${e}
1198
+ <script>(function () {
1199
+ var send = function () {
1200
+ try {
1201
+ parent.postMessage(
1202
+ { kind: ${JSON.stringify(Zn)}, height: document.documentElement.scrollHeight },
1203
+ "*",
1204
+ );
1205
+ } catch (e) {}
1206
+ };
1207
+ new ResizeObserver(send).observe(document.documentElement);
1208
+ send();
1209
+ })();<\/script>`, $n = /* @__PURE__ */ i({
1192
1210
  name: "ElmHtml",
1193
1211
  inheritAttrs: !1,
1194
1212
  props: {
@@ -1208,6 +1226,10 @@ var An = "https://a2ui.org/specification/v0_9/basic_catalog.json", jn = /* @__PU
1208
1226
  type: String,
1209
1227
  default: void 0
1210
1228
  },
1229
+ allowScripts: {
1230
+ type: Boolean,
1231
+ default: !1
1232
+ },
1211
1233
  height: {
1212
1234
  type: [Number, String],
1213
1235
  default: void 0
@@ -1226,39 +1248,53 @@ var An = "https://a2ui.org/specification/v0_9/basic_catalog.json", jn = /* @__PU
1226
1248
  ], ([, , e]) => {
1227
1249
  e && (i.value = void 0);
1228
1250
  }, { flush: "pre" });
1229
- let o, s = (e) => {
1230
- if (a()) return;
1231
- let t = n.value;
1232
- if (!t) return;
1233
- let r, s = () => {
1234
- let e = t.contentDocument?.documentElement;
1251
+ let o, s = (e, t, r) => {
1252
+ let s = n.value;
1253
+ if (!s || !e || a() && Xn(t, r)) return;
1254
+ if (Xn(t, r)) {
1255
+ let e = (e) => {
1256
+ if (e.source !== s.contentWindow) return;
1257
+ let t = e.data;
1258
+ !t || t.kind !== Zn || typeof t.height != "number" || (i.value = t.height);
1259
+ };
1260
+ window.addEventListener("message", e), o = () => {
1261
+ window.removeEventListener("message", e);
1262
+ };
1263
+ return;
1264
+ }
1265
+ let c, l = () => {
1266
+ let e = s.contentDocument?.documentElement;
1235
1267
  e && (i.value = e.scrollHeight);
1236
- }, c = () => {
1237
- let e = t.contentDocument?.documentElement;
1238
- e && (r?.disconnect(), r = new ResizeObserver(s), r.observe(e));
1239
- }, l = () => {
1240
- e && (s(), c());
1268
+ }, u = () => {
1269
+ let e = s.contentDocument?.documentElement;
1270
+ e && (c?.disconnect(), c = new ResizeObserver(l), c.observe(e));
1271
+ }, d = () => {
1272
+ l(), u();
1241
1273
  };
1242
- t.addEventListener("load", l), o = () => {
1243
- t.removeEventListener("load", l), r?.disconnect();
1274
+ s.addEventListener("load", d), o = () => {
1275
+ s.removeEventListener("load", d), c?.disconnect();
1244
1276
  };
1245
1277
  };
1246
- return d(() => s(e.autoHeight)), _(() => [
1278
+ return d(() => s(e.autoHeight, e.sandbox, e.allowScripts)), _(() => [
1247
1279
  e.html,
1248
1280
  e.src,
1249
- e.autoHeight
1250
- ], ([, , e]) => {
1251
- o?.(), s(e);
1281
+ e.autoHeight,
1282
+ e.sandbox,
1283
+ e.allowScripts
1284
+ ], ([, , e, t, n]) => {
1285
+ o?.(), s(e, t, n);
1252
1286
  }, { flush: "post" }), u(() => o?.()), () => {
1253
- let o = a(), { class: s, style: l, srcDoc: u, srcdoc: d, referrerPolicy: f, referrerpolicy: p, ...m } = t, h = Xn(l), g = h?.height, _ = new Set(e.sandbox?.split(/\s+/).filter(Boolean) ?? []);
1254
- if ([..._].some((e) => e.toLowerCase() === "allow-scripts")) for (let e of _) e.toLowerCase() === "allow-same-origin" && _.delete(e);
1255
- else e.autoHeight && !o && _.add("allow-same-origin");
1256
- let ee = [..._].join(" ");
1287
+ let o = a(), { class: s, style: l, srcDoc: u, srcdoc: d, referrerPolicy: f, referrerpolicy: p, ...m } = t, h = Yn(l), g = h?.height, _ = new Set(e.sandbox?.split(/\s+/).filter(Boolean) ?? []);
1288
+ e.allowScripts && _.add("allow-scripts");
1289
+ let ee = [..._].some((e) => e.toLowerCase() === "allow-scripts");
1290
+ if (ee) for (let e of _) e.toLowerCase() === "allow-same-origin" && _.delete(e);
1291
+ else e.autoHeight && _.add("allow-same-origin");
1292
+ let v = [..._].join(" ");
1257
1293
  return r("iframe", c({
1258
1294
  key: String(e.autoHeight),
1259
1295
  ref: n,
1260
1296
  title: e.title ?? "Embedded HTML content",
1261
- class: b(qn["elm-html"], s),
1297
+ class: x(Kn["elm-html"], s),
1262
1298
  style: e.autoHeight ? {
1263
1299
  ...h,
1264
1300
  height: i.value === void 0 ? g : `${i.value}px`
@@ -1266,13 +1302,110 @@ var An = "https://a2ui.org/specification/v0_9/basic_catalog.json", jn = /* @__PU
1266
1302
  height: e.autoHeight ? i.value === void 0 && g === void 0 ? e.height : void 0 : e.height
1267
1303
  }, m, {
1268
1304
  src: o ? e.src : void 0,
1269
- srcdoc: o ? void 0 : e.html ?? "",
1270
- sandbox: ee,
1305
+ srcdoc: o ? void 0 : e.autoHeight && ee ? Qn(e.html ?? "") : e.html ?? "",
1306
+ sandbox: v,
1271
1307
  referrerpolicy: o ? "no-referrer" : void 0
1272
1308
  }), null);
1273
1309
  };
1274
1310
  }
1275
- }), k = {
1311
+ }), er = /* @__PURE__ */ i({
1312
+ name: "ElmHtmlViewer",
1313
+ props: {
1314
+ html: {
1315
+ type: String,
1316
+ default: void 0
1317
+ },
1318
+ src: {
1319
+ type: String,
1320
+ default: void 0
1321
+ },
1322
+ filename: {
1323
+ type: String,
1324
+ default: void 0
1325
+ },
1326
+ sandbox: {
1327
+ type: String,
1328
+ default: void 0
1329
+ },
1330
+ autoHeight: {
1331
+ type: Boolean,
1332
+ default: void 0
1333
+ },
1334
+ allowScripts: {
1335
+ type: Boolean,
1336
+ default: void 0
1337
+ },
1338
+ height: {
1339
+ type: [Number, String],
1340
+ default: void 0
1341
+ }
1342
+ },
1343
+ setup(e) {
1344
+ let t = () => e.src !== void 0, n = () => {
1345
+ if (t()) {
1346
+ window.open(e.src, "_blank", "noreferrer");
1347
+ return;
1348
+ }
1349
+ let n;
1350
+ try {
1351
+ let t = `<!doctype html>
1352
+ <html lang="en">
1353
+ <head>
1354
+ <meta charset="utf-8" />
1355
+ <title>Embedded HTML content</title>
1356
+ <style>html,body{margin:0;height:100%;}iframe{display:block;width:100%;height:100%;border:0;}</style>
1357
+ </head>
1358
+ <body>
1359
+ <iframe sandbox title="Embedded HTML content"></iframe>
1360
+ <script>document.querySelector("iframe").srcdoc = ${JSON.stringify(e.html ?? "").replace(/<\//g, "<\\/")};<\/script>
1361
+ </body>
1362
+ </html>`;
1363
+ n = URL.createObjectURL(new Blob([t], { type: "text/html" }));
1364
+ let r = () => URL.revokeObjectURL(n), i = window.open(n, "_blank", "noreferrer");
1365
+ i ? i.addEventListener("load", r, { once: !0 }) : r();
1366
+ } catch (e) {
1367
+ console.error("Failed to open HTML in a new tab", e), n && URL.revokeObjectURL(n);
1368
+ }
1369
+ }, i = () => {
1370
+ let n, r;
1371
+ try {
1372
+ r = document.createElement("a"), t() ? r.href = e.src : (n = URL.createObjectURL(new Blob([e.html ?? ""], { type: "text/html" })), r.href = n), r.download = e.filename || "download.html", document.body.appendChild(r), r.click();
1373
+ } catch (e) {
1374
+ console.error("Failed to download HTML", e);
1375
+ } finally {
1376
+ r?.remove(), n && URL.revokeObjectURL(n);
1377
+ }
1378
+ };
1379
+ return () => r("figure", { class: x(A["elm-html-viewer"]) }, [
1380
+ r("div", { class: A.header }, [r("button", {
1381
+ type: "button",
1382
+ class: A["icon-button"],
1383
+ onClick: i,
1384
+ "aria-label": "Download"
1385
+ }, [r(k, {
1386
+ d: Fe,
1387
+ size: "1.25rem"
1388
+ }, null)]), r("button", {
1389
+ type: "button",
1390
+ class: A["icon-button"],
1391
+ onClick: n,
1392
+ "aria-label": "Open in new tab"
1393
+ }, [r(k, {
1394
+ d: Qe,
1395
+ size: "1.25rem"
1396
+ }, null)])]),
1397
+ r("hr", { class: A.divider }, null),
1398
+ r("div", { class: A.content }, [r($n, {
1399
+ html: e.html,
1400
+ src: e.src,
1401
+ sandbox: e.sandbox,
1402
+ autoHeight: e.autoHeight,
1403
+ allowScripts: e.allowScripts,
1404
+ height: e.height
1405
+ }, null)])
1406
+ ]);
1407
+ }
1408
+ }), j = {
1276
1409
  "elm-audio-player": "_elm-audio-player_1b0m3_1",
1277
1410
  loading: "_loading_1b0m3_33",
1278
1411
  header: "_header_1b0m3_39",
@@ -1302,18 +1435,18 @@ var An = "https://a2ui.org/specification/v0_9/basic_catalog.json", jn = /* @__PU
1302
1435
  errored: "_errored_1b0m3_411",
1303
1436
  "error-notice": "_error-notice_1b0m3_420",
1304
1437
  "error-message": "_error-message_1b0m3_430"
1305
- }, Qn = (e) => {
1438
+ }, tr = (e) => {
1306
1439
  (!Number.isFinite(e) || e < 0) && (e = 0);
1307
1440
  let t = Math.floor(e), n = Math.floor(t / 3600), r = Math.floor(t % 3600 / 60), i = t % 60, a = `${n > 0 ? String(r).padStart(2, "0") : String(r)}:${String(i).padStart(2, "0")}`;
1308
1441
  return n > 0 ? `${n}:${a}` : a;
1309
- }, $n = (e) => {
1442
+ }, nr = (e) => {
1310
1443
  let t = e.split(/[?#]/)[0].split("/").filter(Boolean).pop() ?? e;
1311
1444
  try {
1312
1445
  return decodeURIComponent(t);
1313
1446
  } catch {
1314
1447
  return t;
1315
1448
  }
1316
- }, er = /* @__PURE__ */ i({
1449
+ }, rr = /* @__PURE__ */ i({
1317
1450
  name: "ElmAudioPlayer",
1318
1451
  props: {
1319
1452
  src: {
@@ -1346,47 +1479,47 @@ var An = "https://a2ui.org/specification/v0_9/basic_catalog.json", jn = /* @__PU
1346
1479
  }
1347
1480
  },
1348
1481
  setup(n) {
1349
- let i = m(null), a = m(null), o = null, s = m(!1), c = m(!0), l = m(!1), d = m(0), f = m(0), p = m(1), h = m(!1), g = m(null), _ = t(() => d.value > 0 ? Math.min(1, f.value / d.value) : 0), ee = t(() => h.value || p.value === 0 ? dt : p.value < .34 ? lt : p.value < .67 ? ut : ct), te = t(() => n.title ?? $n(n.src)), v = () => {
1482
+ let i = m(null), a = m(null), o = null, s = m(!1), c = m(!0), l = m(!1), d = m(0), f = m(0), p = m(1), h = m(!1), g = m(null), _ = t(() => d.value > 0 ? Math.min(1, f.value / d.value) : 0), ee = t(() => h.value || p.value === 0 ? ut : p.value < .34 ? ct : p.value < .67 ? lt : st), v = t(() => n.title ?? nr(n.src)), y = () => {
1350
1483
  if (o != null) return;
1351
1484
  let e = () => {
1352
1485
  i.value && (f.value = i.value.currentTime), o = requestAnimationFrame(e);
1353
1486
  };
1354
1487
  o = requestAnimationFrame(e);
1355
- }, ne = () => {
1488
+ }, te = () => {
1356
1489
  o != null && (cancelAnimationFrame(o), o = null);
1357
1490
  };
1358
- u(ne);
1359
- let re = () => {
1491
+ u(te);
1492
+ let ne = () => {
1360
1493
  let e = i.value;
1361
1494
  e && (e.paused ? e.play().catch(() => s.value = !1) : e.pause());
1362
- }, y = (e) => {
1495
+ }, b = (e) => {
1363
1496
  let t = i.value;
1364
1497
  if (!t || !Number.isFinite(d.value) || d.value <= 0) return;
1365
1498
  let n = Math.max(0, Math.min(d.value, e));
1366
1499
  t.currentTime = n, f.value = n;
1367
- }, ie = (e) => {
1500
+ }, re = (e) => {
1368
1501
  let t = a.value;
1369
1502
  if (!t) return 0;
1370
1503
  let n = t.getBoundingClientRect();
1371
1504
  return n.width === 0 ? 0 : Math.max(0, Math.min(1, (e - n.left) / n.width));
1505
+ }, ie = (e) => {
1506
+ e.currentTarget.setPointerCapture(e.pointerId), b(re(e.clientX) * d.value);
1372
1507
  }, ae = (e) => {
1373
- e.currentTarget.setPointerCapture(e.pointerId), y(ie(e.clientX) * d.value);
1508
+ let t = re(e.clientX);
1509
+ g.value = t, e.currentTarget.hasPointerCapture(e.pointerId) && b(t * d.value);
1374
1510
  }, oe = (e) => {
1375
- let t = ie(e.clientX);
1376
- g.value = t, e.currentTarget.hasPointerCapture(e.pointerId) && y(t * d.value);
1511
+ e.key === "ArrowRight" ? (e.preventDefault(), b(f.value + n.seekStep)) : e.key === "ArrowLeft" ? (e.preventDefault(), b(f.value - n.seekStep)) : e.key === "Home" ? (e.preventDefault(), b(0)) : e.key === "End" && (e.preventDefault(), b(d.value));
1377
1512
  }, se = (e) => {
1378
- e.key === "ArrowRight" ? (e.preventDefault(), y(f.value + n.seekStep)) : e.key === "ArrowLeft" ? (e.preventDefault(), y(f.value - n.seekStep)) : e.key === "Home" ? (e.preventDefault(), y(0)) : e.key === "End" && (e.preventDefault(), y(d.value));
1379
- }, ce = (e) => {
1380
1513
  let t = i.value, n = Math.max(0, Math.min(1, e));
1381
1514
  t && (t.volume = n, t.muted = n === 0), p.value = n, h.value = n === 0;
1382
- }, le = () => {
1515
+ }, ce = () => {
1383
1516
  let e = i.value;
1384
1517
  if (!e) return;
1385
1518
  let t = !e.muted;
1386
1519
  e.muted = t, h.value = t;
1387
1520
  };
1388
1521
  return () => r("div", {
1389
- class: b(k["elm-audio-player"], s.value && k.playing, c.value && k.loading, l.value && k.errored),
1522
+ class: x(j["elm-audio-player"], s.value && j.playing, c.value && j.loading, l.value && j.errored),
1390
1523
  style: {
1391
1524
  "--elmethis-scoped-progress": _.value,
1392
1525
  "--elmethis-scoped-hover": g.value ?? 0
@@ -1412,13 +1545,13 @@ var An = "https://a2ui.org/specification/v0_9/basic_catalog.json", jn = /* @__PU
1412
1545
  o == null && i.value && (f.value = i.value.currentTime);
1413
1546
  },
1414
1547
  onPlay: () => {
1415
- s.value = !0, v();
1548
+ s.value = !0, y();
1416
1549
  },
1417
1550
  onPause: () => {
1418
- s.value = !1, ne();
1551
+ s.value = !1, te();
1419
1552
  },
1420
1553
  onEnded: () => {
1421
- s.value = !1, ne();
1554
+ s.value = !1, te();
1422
1555
  },
1423
1556
  onVolumechange: () => {
1424
1557
  let e = i.value;
@@ -1428,20 +1561,20 @@ var An = "https://a2ui.org/specification/v0_9/basic_catalog.json", jn = /* @__PU
1428
1561
  l.value = !0, c.value = !1;
1429
1562
  }
1430
1563
  }, null),
1431
- r("div", { class: k.header }, [
1564
+ r("div", { class: j.header }, [
1432
1565
  r("span", {
1433
- class: b(k.artwork, l.value && k["artwork-error"]),
1566
+ class: x(j.artwork, l.value && j["artwork-error"]),
1434
1567
  "aria-hidden": "true"
1435
- }, [r(O, {
1436
- d: l.value ? Ee : Qe,
1568
+ }, [r(k, {
1569
+ d: l.value ? Te : Ze,
1437
1570
  size: "1.25rem"
1438
1571
  }, null)]),
1439
- r("div", { class: k.meta }, [r("span", {
1440
- class: k.title,
1441
- title: te.value
1442
- }, [te.value]), n.artist && r("span", { class: k.artist }, [n.artist])]),
1572
+ r("div", { class: j.meta }, [r("span", {
1573
+ class: j.title,
1574
+ title: v.value
1575
+ }, [v.value]), n.artist && r("span", { class: j.artist }, [n.artist])]),
1443
1576
  r("span", {
1444
- class: k.equalizer,
1577
+ class: j.equalizer,
1445
1578
  "aria-hidden": "true"
1446
1579
  }, [
1447
1580
  r("i", null, null),
@@ -1451,116 +1584,116 @@ var An = "https://a2ui.org/specification/v0_9/basic_catalog.json", jn = /* @__PU
1451
1584
  ])
1452
1585
  ]),
1453
1586
  l.value ? r("div", {
1454
- class: k["error-notice"],
1587
+ class: j["error-notice"],
1455
1588
  role: "alert"
1456
- }, [r(O, {
1457
- d: Ee,
1589
+ }, [r(k, {
1590
+ d: Te,
1458
1591
  size: "1.25rem"
1459
- }, null), r("span", { class: k["error-message"] }, [n.errorMessage])]) : r(e, null, [r("div", {
1592
+ }, null), r("span", { class: j["error-message"] }, [n.errorMessage])]) : r(e, null, [r("div", {
1460
1593
  ref: a,
1461
- class: k.seekbar,
1594
+ class: j.seekbar,
1462
1595
  role: "slider",
1463
1596
  tabindex: 0,
1464
1597
  "aria-label": "Seek",
1465
1598
  "aria-valuemin": 0,
1466
1599
  "aria-valuemax": Math.round(d.value) || 0,
1467
1600
  "aria-valuenow": Math.round(f.value),
1468
- "aria-valuetext": `${Qn(f.value)} of ${Qn(d.value)}`,
1469
- onPointerdown: ae,
1470
- onPointermove: oe,
1601
+ "aria-valuetext": `${tr(f.value)} of ${tr(d.value)}`,
1602
+ onPointerdown: ie,
1603
+ onPointermove: ae,
1471
1604
  onPointerleave: () => g.value = null,
1472
- onKeydown: se
1605
+ onKeydown: oe
1473
1606
  }, [
1474
1607
  r("div", {
1475
- class: k.track,
1608
+ class: j.track,
1476
1609
  "aria-hidden": "true"
1477
- }, [r("div", { class: k.fill }, null)]),
1610
+ }, [r("div", { class: j.fill }, null)]),
1478
1611
  r("span", {
1479
- class: k["hover-thumb"],
1612
+ class: j["hover-thumb"],
1480
1613
  "aria-hidden": "true"
1481
1614
  }, null),
1482
1615
  r("span", {
1483
- class: k.thumb,
1616
+ class: j.thumb,
1484
1617
  "aria-hidden": "true"
1485
1618
  }, null)
1486
- ]), r("div", { class: k.controls }, [
1487
- r("span", { class: b(k.time, k["time-current"]) }, [Qn(f.value)]),
1488
- r("div", { class: k.transport }, [
1619
+ ]), r("div", { class: j.controls }, [
1620
+ r("span", { class: x(j.time, j["time-current"]) }, [tr(f.value)]),
1621
+ r("div", { class: j.transport }, [
1489
1622
  r("button", {
1490
1623
  type: "button",
1491
- class: k["icon-button"],
1492
- onClick: () => y(f.value - n.seekStep),
1624
+ class: j["icon-button"],
1625
+ onClick: () => b(f.value - n.seekStep),
1493
1626
  "aria-label": `Back ${n.seekStep} seconds`
1494
- }, [r(O, {
1495
- d: rt,
1627
+ }, [r(k, {
1628
+ d: nt,
1496
1629
  size: "1.25rem"
1497
1630
  }, null)]),
1498
1631
  r("button", {
1499
1632
  type: "button",
1500
- class: k["play-button"],
1501
- onClick: re,
1633
+ class: j["play-button"],
1634
+ onClick: ne,
1502
1635
  "aria-label": s.value ? "Pause" : "Play",
1503
1636
  "aria-pressed": s.value
1504
- }, [r(O, {
1505
- d: s.value ? et : tt,
1637
+ }, [r(k, {
1638
+ d: s.value ? $e : et,
1506
1639
  size: "1.5rem"
1507
1640
  }, null)]),
1508
1641
  r("button", {
1509
1642
  type: "button",
1510
- class: k["icon-button"],
1511
- onClick: () => y(f.value + n.seekStep),
1643
+ class: j["icon-button"],
1644
+ onClick: () => b(f.value + n.seekStep),
1512
1645
  "aria-label": `Forward ${n.seekStep} seconds`
1513
- }, [r(O, {
1514
- d: ze,
1646
+ }, [r(k, {
1647
+ d: Re,
1515
1648
  size: "1.25rem"
1516
1649
  }, null)])
1517
1650
  ]),
1518
- r("div", { class: k.volume }, [r("button", {
1651
+ r("div", { class: j.volume }, [r("button", {
1519
1652
  type: "button",
1520
- class: k["icon-button"],
1521
- onClick: le,
1653
+ class: j["icon-button"],
1654
+ onClick: ce,
1522
1655
  "aria-label": h.value ? "Unmute" : "Mute",
1523
1656
  "aria-pressed": h.value
1524
- }, [r(O, {
1657
+ }, [r(k, {
1525
1658
  d: ee.value,
1526
1659
  size: "1.25rem"
1527
1660
  }, null)]), r("input", {
1528
- class: k["volume-slider"],
1661
+ class: j["volume-slider"],
1529
1662
  type: "range",
1530
1663
  min: 0,
1531
1664
  max: 1,
1532
1665
  step: .01,
1533
1666
  value: h.value ? 0 : p.value,
1534
1667
  "aria-label": "Volume",
1535
- onInput: (e) => ce(e.target.valueAsNumber),
1668
+ onInput: (e) => se(e.target.valueAsNumber),
1536
1669
  style: { "--elmethis-scoped-volume": h.value ? 0 : p.value }
1537
1670
  }, null)]),
1538
- r("span", { class: b(k.time, k["time-total"]) }, [Qn(d.value)])
1671
+ r("span", { class: x(j.time, j["time-total"]) }, [tr(d.value)])
1539
1672
  ])])
1540
1673
  ]);
1541
1674
  }
1542
- }), A = {
1675
+ }), M = {
1543
1676
  "elm-block-image": "_elm-block-image_19s1y_1",
1544
1677
  "image-container": "_image-container_19s1y_11",
1545
1678
  image: "_image_19s1y_11",
1546
1679
  fallback: "_fallback_19s1y_35",
1547
1680
  "caption-box": "_caption-box_19s1y_45",
1548
1681
  "caption-icon": "_caption-icon_19s1y_56"
1549
- }, tr = {
1682
+ }, ir = {
1550
1683
  "elm-rectangle-wave": "_elm-rectangle-wave_70gad_21",
1551
1684
  wave: "_wave_70gad_1"
1552
- }, nr = /* @__PURE__ */ i({
1685
+ }, ar = /* @__PURE__ */ i({
1553
1686
  name: "ElmRectangleWave",
1554
1687
  setup() {
1555
1688
  return () => r("div", {
1556
1689
  "aria-hidden": "true",
1557
- class: b(tr["elm-rectangle-wave"])
1690
+ class: x(ir["elm-rectangle-wave"])
1558
1691
  }, null);
1559
1692
  }
1560
- }), rr = {
1693
+ }), or = {
1561
1694
  "elm-modal": "_elm-modal_12j1m_1",
1562
1695
  shown: "_shown_12j1m_18"
1563
- }, ir = /* @__PURE__ */ i({
1696
+ }, sr = /* @__PURE__ */ i({
1564
1697
  name: "ElmModal",
1565
1698
  inheritAttrs: !1,
1566
1699
  props: {
@@ -1598,13 +1731,13 @@ var An = "https://a2ui.org/specification/v0_9/basic_catalog.json", jn = /* @__PU
1598
1731
  let { class: o, style: s, ...u } = t;
1599
1732
  return r("dialog", c({
1600
1733
  ref: i,
1601
- class: b(rr["elm-modal"], a.value && rr.shown, o),
1734
+ class: x(or["elm-modal"], a.value && or.shown, o),
1602
1735
  onClick: l,
1603
1736
  style: [{ "--elmethis-scoped-modal-delay": `${e.delay}ms` }, s]
1604
1737
  }, { closedby: "none" }, u), [r("div", { onClick: (e) => e.stopPropagation() }, [n.default?.()])]);
1605
1738
  };
1606
1739
  }
1607
- }), ar = (e = {}) => {
1740
+ }), cr = (e = {}) => {
1608
1741
  let t = m(!1), n = () => {
1609
1742
  t.value = !0;
1610
1743
  }, a = () => {
@@ -1614,7 +1747,7 @@ var An = "https://a2ui.org/specification/v0_9/basic_catalog.json", jn = /* @__PU
1614
1747
  Modal: /* @__PURE__ */ i({
1615
1748
  name: "Modal",
1616
1749
  setup(n, { slots: i }) {
1617
- return () => r(ir, {
1750
+ return () => r(sr, {
1618
1751
  isOpen: t.value,
1619
1752
  delay: e.delay,
1620
1753
  onClose: a
@@ -1628,7 +1761,7 @@ var An = "https://a2ui.org/specification/v0_9/basic_catalog.json", jn = /* @__PU
1628
1761
  t.value = !t.value;
1629
1762
  }
1630
1763
  };
1631
- }, or = /* @__PURE__ */ i({
1764
+ }, lr = /* @__PURE__ */ i({
1632
1765
  name: "ElmBlockImage",
1633
1766
  props: {
1634
1767
  src: {
@@ -1665,7 +1798,7 @@ var An = "https://a2ui.org/specification/v0_9/basic_catalog.json", jn = /* @__PU
1665
1798
  }
1666
1799
  },
1667
1800
  setup(e) {
1668
- let t = m(!0), { Modal: n, isOpen: i, show: o, hide: s } = ar(), l = m(null), u = () => {
1801
+ let t = m(!0), { Modal: n, isOpen: i, show: o, hide: s } = cr(), l = m(null), u = () => {
1669
1802
  l.value?.decode().then(() => t.value = !1, () => {});
1670
1803
  };
1671
1804
  d(u), _(() => e.src, u);
@@ -1673,7 +1806,7 @@ var An = "https://a2ui.org/specification/v0_9/basic_catalog.json", jn = /* @__PU
1673
1806
  (e.enableModal ?? !0) && !t.value && o();
1674
1807
  }, p = () => e.enableModal ?? !0, h = (n) => r("img", c({
1675
1808
  ref: n ? void 0 : l,
1676
- class: A.image,
1809
+ class: M.image,
1677
1810
  src: e.src,
1678
1811
  alt: e.alt ?? e.caption ?? "Image",
1679
1812
  srcset: n ? void 0 : e.srcSet,
@@ -1689,34 +1822,34 @@ var An = "https://a2ui.org/specification/v0_9/basic_catalog.json", jn = /* @__PU
1689
1822
  "--elmethis-scoped-aspect-ratio": e.width && e.height ? `${e.width} / ${e.height}` : "auto"
1690
1823
  }
1691
1824
  }, { fetchpriority: n ? "low" : "auto" }), null);
1692
- return () => r("figure", { class: b(A["elm-block-image"]) }, [
1825
+ return () => r("figure", { class: x(M["elm-block-image"]) }, [
1693
1826
  r("div", {
1694
- class: A["image-container"],
1827
+ class: M["image-container"],
1695
1828
  style: { "--elmethis-scoped-opacity": t.value ? 1 : .01 },
1696
1829
  onClick: f
1697
- }, [h(!1), r("div", { class: A.fallback }, [r(nr, null, null)])]),
1830
+ }, [h(!1), r("div", { class: M.fallback }, [r(ar, null, null)])]),
1698
1831
  e.caption && r("figcaption", {
1699
- class: A["caption-box"],
1832
+ class: M["caption-box"],
1700
1833
  style: { "--elmethis-scoped-opacity": t.value ? .01 : 1 }
1701
- }, [r("span", { class: A["caption-icon"] }, [r(O, {
1702
- d: Ze,
1834
+ }, [r("span", { class: M["caption-icon"] }, [r(k, {
1835
+ d: Xe,
1703
1836
  size: "1.25rem"
1704
- }, null)]), r(T, { size: "1rem" }, { default: () => [e.caption] })]),
1837
+ }, null)]), r(E, { size: "1rem" }, { default: () => [e.caption] })]),
1705
1838
  a(n, null, { default: () => i.value ? h(!0) : null })
1706
1839
  ]);
1707
1840
  }
1708
- }), sr = {
1841
+ }), ur = {
1709
1842
  "elm-file": "_elm-file_aoaqq_1",
1710
1843
  "file-size": "_file-size_aoaqq_12",
1711
1844
  "download-icon": "_download-icon_aoaqq_17"
1712
1845
  };
1713
1846
  //#endregion
1714
1847
  //#region src/components/media/elm-file.tsx
1715
- function cr(e) {
1848
+ function dr(e) {
1716
1849
  let t = e.split(/[?#]/)[0].split("/").filter(Boolean);
1717
1850
  return t.length > 0 ? t[t.length - 1] : null;
1718
1851
  }
1719
- var lr = /* @__PURE__ */ i({
1852
+ var fr = /* @__PURE__ */ i({
1720
1853
  name: "ElmFile",
1721
1854
  props: {
1722
1855
  name: {
@@ -1739,30 +1872,30 @@ var lr = /* @__PURE__ */ i({
1739
1872
  let n = await fetch(e.src);
1740
1873
  if (!n.ok) throw Error("Failed to download file");
1741
1874
  let r = await n.blob();
1742
- t = document.createElement("a"), t.href = URL.createObjectURL(r), t.download = e.name ?? cr(e.src) ?? "file", t.click();
1875
+ t = document.createElement("a"), t.href = URL.createObjectURL(r), t.download = e.name ?? dr(e.src) ?? "file", t.click();
1743
1876
  } catch (e) {
1744
1877
  console.error("ERROR:", e);
1745
1878
  } finally {
1746
1879
  t && URL.revokeObjectURL(t.href);
1747
1880
  }
1748
1881
  };
1749
- return () => r("div", { class: b(sr["elm-file"]) }, [
1750
- r("div", null, [r(O, {
1751
- d: Be,
1882
+ return () => r("div", { class: x(ur["elm-file"]) }, [
1883
+ r("div", null, [r(k, {
1884
+ d: ze,
1752
1885
  size: "1.25rem"
1753
1886
  }, null)]),
1754
- r("div", null, [r(T, null, { default: () => [e.name ?? cr(e.src)] })]),
1755
- r("div", { class: sr["file-size"] }, [r(T, null, { default: () => [e.filesize] })]),
1887
+ r("div", null, [r(E, null, { default: () => [e.name ?? dr(e.src)] })]),
1888
+ r("div", { class: ur["file-size"] }, [r(E, null, { default: () => [e.filesize] })]),
1756
1889
  r("div", {
1757
- class: sr["download-icon"],
1890
+ class: ur["download-icon"],
1758
1891
  onClick: t
1759
- }, [r(O, {
1760
- d: Ie,
1892
+ }, [r(k, {
1893
+ d: Fe,
1761
1894
  size: "1.25rem"
1762
1895
  }, null)])
1763
1896
  ]);
1764
1897
  }
1765
- }), j = {
1898
+ }), N = {
1766
1899
  "elm-bookmark": "_elm-bookmark_cbkg4_1",
1767
1900
  container: "_container_cbkg4_23",
1768
1901
  image: "_image_cbkg4_35",
@@ -1770,10 +1903,10 @@ var lr = /* @__PURE__ */ i({
1770
1903
  title: "_title_cbkg4_71",
1771
1904
  description: "_description_cbkg4_75",
1772
1905
  link: "_link_cbkg4_80"
1773
- }, ur = {
1906
+ }, pr = {
1774
1907
  visibility: "hidden",
1775
1908
  width: "0"
1776
- }, dr = /* @__PURE__ */ i({
1909
+ }, mr = /* @__PURE__ */ i({
1777
1910
  name: "ElmBookmark",
1778
1911
  props: {
1779
1912
  title: {
@@ -1799,27 +1932,27 @@ var lr = /* @__PURE__ */ i({
1799
1932
  },
1800
1933
  setup(e) {
1801
1934
  let t = m(!1);
1802
- return () => r("div", { class: b(j["elm-bookmark"]) }, [r("a", {
1803
- class: j.container,
1935
+ return () => r("div", { class: x(N["elm-bookmark"]) }, [r("a", {
1936
+ class: N.container,
1804
1937
  href: e.url,
1805
1938
  target: "_blank",
1806
1939
  rel: "noopener noreferrer"
1807
1940
  }, [r("img", {
1808
- class: j.image,
1941
+ class: N.image,
1809
1942
  src: e.image,
1810
1943
  alt: "OGP Image",
1811
1944
  onError: () => t.value = !0,
1812
- style: t.value || e.image == null ? ur : {}
1813
- }, null), r("div", { class: j.content }, [
1814
- r("div", { class: j.title }, [r(T, { bold: !0 }, { default: () => [e.title] })]),
1815
- r("div", { class: j.description }, [r(T, { size: "0.75rem" }, { default: () => [e.description] })]),
1816
- r("div", { class: j.link }, [e.favicon ? r(w, { src: e.favicon }, null) : r(O, {
1817
- d: Ye,
1945
+ style: t.value || e.image == null ? pr : {}
1946
+ }, null), r("div", { class: N.content }, [
1947
+ r("div", { class: N.title }, [r(E, { bold: !0 }, { default: () => [e.title] })]),
1948
+ r("div", { class: N.description }, [r(E, { size: "0.75rem" }, { default: () => [e.description] })]),
1949
+ r("div", { class: N.link }, [e.favicon ? r(T, { src: e.favicon }, null) : r(k, {
1950
+ d: Je,
1818
1951
  color: "var(--elmethis-color-accent-info)"
1819
- }, null), r(T, { size: "0.75rem" }, { default: () => [e.url] })])
1952
+ }, null), r(E, { size: "0.75rem" }, { default: () => [e.url] })])
1820
1953
  ])])]);
1821
1954
  }
1822
- }), M = {
1955
+ }), P = {
1823
1956
  "elm-toggle": "_elm-toggle_qfazq_1",
1824
1957
  open: "_open_qfazq_8",
1825
1958
  summary: "_summary_qfazq_13",
@@ -1829,7 +1962,7 @@ var lr = /* @__PURE__ */ i({
1829
1962
  cross: "_cross_qfazq_62",
1830
1963
  border: "_border_qfazq_76",
1831
1964
  content: "_content_qfazq_84"
1832
- }, fr = /* @__PURE__ */ i({
1965
+ }, hr = /* @__PURE__ */ i({
1833
1966
  name: "ElmToggle",
1834
1967
  props: {
1835
1968
  summary: {
@@ -1851,51 +1984,51 @@ var lr = /* @__PURE__ */ i({
1851
1984
  },
1852
1985
  emits: ["update:isOpen"],
1853
1986
  setup(e, { emit: t, slots: n }) {
1854
- let i = Yt({
1987
+ let i = Jt({
1855
1988
  props: e,
1856
1989
  key: "isOpen",
1857
1990
  emit: t,
1858
1991
  defaultValue: e.defaultIsOpen ?? !1
1859
1992
  });
1860
- return () => r("div", { class: b(M["elm-toggle"], i.value && M.open) }, [
1993
+ return () => r("div", { class: x(P["elm-toggle"], i.value && P.open) }, [
1861
1994
  r("div", {
1862
- class: M.summary,
1995
+ class: P.summary,
1863
1996
  onClick: (e) => {
1864
1997
  e.preventDefault(), i.value = !i.value;
1865
1998
  }
1866
1999
  }, [
1867
- r("div", { class: M["summary-left"] }, [r("span", { class: b(M.chevron, i.value && M.open) }, [r(O, {
1868
- d: Me,
2000
+ r("div", { class: P["summary-left"] }, [r("span", { class: x(P.chevron, i.value && P.open) }, [r(k, {
2001
+ d: je,
1869
2002
  color: e.monochrome ? "var(--elmethis-color-neutral-weak)" : "var(--elmethis-color-primary)",
1870
2003
  size: "1rem"
1871
- }, null)]), r("div", null, [e.summary == null ? n.summary?.() : r(T, null, { default: () => [e.summary] })])]),
1872
- r("hr", { class: M.divider }, null),
1873
- r("span", { class: b(M.cross, i.value && M.open) }, [r(O, {
1874
- d: nt,
2004
+ }, null)]), r("div", null, [e.summary == null ? n.summary?.() : r(E, null, { default: () => [e.summary] })])]),
2005
+ r("hr", { class: P.divider }, null),
2006
+ r("span", { class: x(P.cross, i.value && P.open) }, [r(k, {
2007
+ d: tt,
1875
2008
  size: "1rem",
1876
2009
  color: e.monochrome ? "var(--elmethis-color-neutral-weak)" : i.value ? "var(--elmethis-color-accent-error)" : "var(--elmethis-color-primary)"
1877
2010
  }, null)])
1878
2011
  ]),
1879
- r("div", { class: M.border }, null),
1880
- r("div", { class: b(M.content, i.value && M.open) }, [n.default?.()])
2012
+ r("div", { class: P.border }, null),
2013
+ r("div", { class: x(P.content, i.value && P.open) }, [n.default?.()])
1881
2014
  ]);
1882
2015
  }
1883
- }), N = {
2016
+ }), gr = {
1884
2017
  "elm-block-quote": "_elm-block-quote_xzf6a_1",
1885
2018
  body: "_body_xzf6a_19",
1886
2019
  icon: "_icon_xzf6a_27",
1887
2020
  "icon-top-left": "_icon-top-left_xzf6a_32",
1888
2021
  "icon-bottom-right": "_icon-bottom-right_xzf6a_36"
1889
- }, pr = /* @__PURE__ */ i({
2022
+ }, _r = /* @__PURE__ */ i({
1890
2023
  name: "ElmBlockQuote",
1891
2024
  setup(e, { slots: t }) {
1892
- return () => r("blockquote", { class: b(N["elm-block-quote"], C.text) }, [
1893
- r("div", { class: b(N.icon, N["icon-top-left"]) }, [r(O, { d: We }, null)]),
1894
- r("div", { class: N.body }, [t.default?.()]),
1895
- r("div", { class: b(N.icon, N["icon-bottom-right"]) }, [r(O, { d: Ue }, null)])
2025
+ return () => r("blockquote", { class: x(gr["elm-block-quote"], w.text) }, [
2026
+ r("div", { class: x(gr.icon, gr["icon-top-left"]) }, [r(k, { d: Ue }, null)]),
2027
+ r("div", { class: gr.body }, [t.default?.()]),
2028
+ r("div", { class: x(gr.icon, gr["icon-bottom-right"]) }, [r(k, { d: He }, null)])
1896
2029
  ]);
1897
2030
  }
1898
- }), mr = {
2031
+ }), vr = {
1899
2032
  "elm-callout": "_elm-callout_1nsmp_1",
1900
2033
  header: "_header_1nsmp_26",
1901
2034
  content: "_content_1nsmp_35",
@@ -1905,26 +2038,26 @@ var lr = /* @__PURE__ */ i({
1905
2038
  important: "_important_1nsmp_55",
1906
2039
  warning: "_warning_1nsmp_59",
1907
2040
  caution: "_caution_1nsmp_63"
1908
- }, hr = Object.freeze({
1909
- note: qe,
1910
- tip: Je,
1911
- important: it,
1912
- warning: Te,
1913
- caution: De
1914
- }), gr = /* @__PURE__ */ i({
2041
+ }, yr = Object.freeze({
2042
+ note: Ke,
2043
+ tip: qe,
2044
+ important: rt,
2045
+ warning: we,
2046
+ caution: Ee
2047
+ }), br = /* @__PURE__ */ i({
1915
2048
  name: "ElmCallout",
1916
2049
  props: { type: {
1917
2050
  type: String,
1918
2051
  default: "note"
1919
2052
  } },
1920
2053
  setup(e, { slots: t }) {
1921
- return () => r("aside", { class: b(mr["elm-callout"], mr[e.type]) }, [r("div", { class: mr.header }, [r(O, {
1922
- class: mr.icon,
1923
- d: hr[e.type],
2054
+ return () => r("aside", { class: x(vr["elm-callout"], vr[e.type]) }, [r("div", { class: vr.header }, [r(k, {
2055
+ class: vr.icon,
2056
+ d: yr[e.type],
1924
2057
  size: "1.25rem"
1925
- }, null), r("span", null, [e.type])]), r("div", { class: mr.content }, [t.default?.()])]);
2058
+ }, null), r("span", null, [e.type])]), r("div", { class: vr.content }, [t.default?.()])]);
1926
2059
  }
1927
- }), _r = {
2060
+ }), xr = {
1928
2061
  "elm-notion-callout": "_elm-notion-callout_15idh_1",
1929
2062
  icon: "_icon_15idh_9",
1930
2063
  content: "_content_15idh_15",
@@ -1940,7 +2073,7 @@ var lr = /* @__PURE__ */ i({
1940
2073
  blue: "_blue_15idh_74",
1941
2074
  purple: "_purple_15idh_79",
1942
2075
  magenta: "_magenta_15idh_86"
1943
- }, vr = /* @__PURE__ */ i({
2076
+ }, Sr = /* @__PURE__ */ i({
1944
2077
  name: "ElmNotionCallout",
1945
2078
  inheritAttrs: !1,
1946
2079
  props: {
@@ -1960,40 +2093,40 @@ var lr = /* @__PURE__ */ i({
1960
2093
  setup(e, { slots: t, attrs: n }) {
1961
2094
  return () => {
1962
2095
  let { class: i, ...a } = n;
1963
- return r("div", c({ class: b(_r["elm-notion-callout"], _r[e.color], _r[e.variant], i) }, a), [e.icon !== void 0 && (e.icon.kind === "emoji" ? r("span", {
1964
- class: _r.icon,
2096
+ return r("div", c({ class: x(xr["elm-notion-callout"], xr[e.color], xr[e.variant], i) }, a), [e.icon !== void 0 && (e.icon.kind === "emoji" ? r("span", {
2097
+ class: xr.icon,
1965
2098
  role: "img"
1966
- }, [e.icon.emoji]) : r(w, {
1967
- class: _r.icon,
2099
+ }, [e.icon.emoji]) : r(T, {
2100
+ class: xr.icon,
1968
2101
  src: e.icon.src,
1969
2102
  alt: e.icon.alt,
1970
2103
  size: 20
1971
- }, null)), r("div", { class: _r.content }, [t.default?.()])]);
2104
+ }, null)), r("div", { class: xr.content }, [t.default?.()])]);
1972
2105
  };
1973
2106
  }
1974
- }), yr = { "elm-divider": "_elm-divider_9m6gb_1" }, br = /* @__PURE__ */ i({
2107
+ }), Cr = { "elm-divider": "_elm-divider_9m6gb_1" }, wr = /* @__PURE__ */ i({
1975
2108
  name: "ElmDivider",
1976
2109
  inheritAttrs: !1,
1977
2110
  setup(e, { attrs: t }) {
1978
2111
  return () => {
1979
2112
  let { class: e, ...n } = t;
1980
- return r("hr", c({ class: b(yr["elm-divider"], e) }, n), null);
2113
+ return r("hr", c({ class: x(Cr["elm-divider"], e) }, n), null);
1981
2114
  };
1982
2115
  }
1983
- }), xr = {
2116
+ }), Tr = {
1984
2117
  "elm-list": "_elm-list_brpi5_1",
1985
2118
  bulleted: "_bulleted_brpi5_8",
1986
2119
  numbered: "_numbered_brpi5_57"
1987
- }, Sr = /* @__PURE__ */ i({
2120
+ }, Er = /* @__PURE__ */ i({
1988
2121
  name: "ElmList",
1989
2122
  props: { listStyle: {
1990
2123
  type: String,
1991
2124
  default: "unordered"
1992
2125
  } },
1993
2126
  setup(e, { slots: t }) {
1994
- return () => e.listStyle === "ordered" ? r("ol", { class: b(C.text, xr["elm-list"], xr.numbered) }, [t.default?.()]) : r("ul", { class: b(C.text, xr["elm-list"], xr.bulleted) }, [t.default?.()]);
2127
+ return () => e.listStyle === "ordered" ? r("ol", { class: x(w.text, Tr["elm-list"], Tr.numbered) }, [t.default?.()]) : r("ul", { class: x(w.text, Tr["elm-list"], Tr.bulleted) }, [t.default?.()]);
1995
2128
  }
1996
- }), P = {
2129
+ }), F = {
1997
2130
  "elm-table-frame": "_elm-table-frame_1b7h2_3",
1998
2131
  "elm-table-scroll": "_elm-table-scroll_1b7h2_49",
1999
2132
  "elm-table": "_elm-table_1b7h2_3",
@@ -2001,7 +2134,7 @@ var lr = /* @__PURE__ */ i({
2001
2134
  "caption-inner": "_caption-inner_1b7h2_77",
2002
2135
  spacing: "_spacing_1b7h2_84",
2003
2136
  "sticky-row-header": "_sticky-row-header_1b7h2_95"
2004
- }, Cr = Symbol("elm.table.HasRowHeader"), wr = Symbol("elm.table.Section"), Tr = /* @__PURE__ */ i({
2137
+ }, Dr = Symbol("elm.table.HasRowHeader"), Or = Symbol("elm.table.Section"), kr = /* @__PURE__ */ i({
2005
2138
  name: "ElmTable",
2006
2139
  inheritAttrs: !1,
2007
2140
  props: {
@@ -2015,7 +2148,7 @@ var lr = /* @__PURE__ */ i({
2015
2148
  }
2016
2149
  },
2017
2150
  setup(e, { attrs: n, slots: i }) {
2018
- p(Cr, t(() => e.hasRowHeader));
2151
+ p(Dr, t(() => e.hasRowHeader));
2019
2152
  let a = m(null), o = m(!1), s = m(!0), l = m(!0), f = () => {
2020
2153
  let e = a.value;
2021
2154
  if (e == null) return;
@@ -2030,32 +2163,32 @@ var lr = /* @__PURE__ */ i({
2030
2163
  }), () => {
2031
2164
  let { class: t, ...u } = n;
2032
2165
  return r("div", {
2033
- class: P["elm-table-frame"],
2166
+ class: F["elm-table-frame"],
2034
2167
  "data-overflow-start": o.value && !s.value ? "" : void 0,
2035
2168
  "data-overflow-end": o.value && !l.value ? "" : void 0
2036
2169
  }, [r("div", {
2037
2170
  ref: a,
2038
- class: P["elm-table-scroll"],
2171
+ class: F["elm-table-scroll"],
2039
2172
  tabindex: o.value ? 0 : void 0,
2040
2173
  role: o.value && e.caption != null ? "region" : void 0,
2041
2174
  "aria-label": o.value && e.caption != null ? e.caption : void 0
2042
- }, [r("table", c({ class: b(P["elm-table"], C.text, e.hasRowHeader && P["sticky-row-header"], t) }, u), [e.caption && r("caption", null, [r("span", { class: P.caption }, [
2043
- r("span", { class: P.spacing }, null),
2044
- r("span", { class: P["caption-inner"] }, [r(T, null, { default: () => [e.caption] })]),
2045
- r("span", { class: P.spacing }, null)
2175
+ }, [r("table", c({ class: x(F["elm-table"], w.text, e.hasRowHeader && F["sticky-row-header"], t) }, u), [e.caption && r("caption", null, [r("span", { class: F.caption }, [
2176
+ r("span", { class: F.spacing }, null),
2177
+ r("span", { class: F["caption-inner"] }, [r(E, null, { default: () => [e.caption] })]),
2178
+ r("span", { class: F.spacing }, null)
2046
2179
  ])]), i.default?.()])])]);
2047
2180
  };
2048
2181
  }
2049
- }), Er = /* @__PURE__ */ i({
2182
+ }), Ar = /* @__PURE__ */ i({
2050
2183
  name: "ElmTableBody",
2051
2184
  setup(e, { slots: t }) {
2052
- return p(wr, "body"), () => r("tbody", null, [t.default?.()]);
2185
+ return p(Or, "body"), () => r("tbody", null, [t.default?.()]);
2053
2186
  }
2054
- }), Dr = {
2187
+ }), jr = {
2055
2188
  "elm-table-cell": "_elm-table-cell_1a21f_1",
2056
2189
  td: "_td_1a21f_20",
2057
2190
  th: "_th_1a21f_25"
2058
- }, Or = /* @__PURE__ */ i({
2191
+ }, Mr = /* @__PURE__ */ i({
2059
2192
  name: "ElmTableCell",
2060
2193
  inheritAttrs: !1,
2061
2194
  props: {
@@ -2077,35 +2210,35 @@ var lr = /* @__PURE__ */ i({
2077
2210
  }
2078
2211
  },
2079
2212
  setup(e, { attrs: t, slots: n }) {
2080
- let i = o(wr, "body"), a = o(Cr, m(!1));
2213
+ let i = o(Or, "body"), a = o(Dr, m(!1));
2081
2214
  return () => {
2082
2215
  let { class: o, style: s, ...l } = t, u = i === "head", d = !u && !e.isHeader && e.columnIndex === 0 && a.value, f = u || e.isHeader || d, p = e.scope ?? (u ? "col" : d ? "row" : void 0), m = e.text == null ? n.default?.() : e.text;
2083
2216
  return f ? r("th", c({
2084
- class: b(Dr["elm-table-cell"], Dr.th, o),
2217
+ class: x(jr["elm-table-cell"], jr.th, o),
2085
2218
  style: s,
2086
2219
  scope: p
2087
2220
  }, l), [m]) : r("td", c({
2088
- class: b(Dr["elm-table-cell"], Dr.td, o),
2221
+ class: x(jr["elm-table-cell"], jr.td, o),
2089
2222
  style: s
2090
2223
  }, l), [m]);
2091
2224
  };
2092
2225
  }
2093
- }), kr = { "elm-table-header": "_elm-table-header_jhft7_1" }, Ar = /* @__PURE__ */ i({
2226
+ }), Nr = { "elm-table-header": "_elm-table-header_jhft7_1" }, Pr = /* @__PURE__ */ i({
2094
2227
  name: "ElmTableHeader",
2095
2228
  setup(e, { slots: t }) {
2096
- return p(wr, "head"), () => r("thead", { class: b(kr["elm-table-header"]) }, [t.default?.()]);
2229
+ return p(Or, "head"), () => r("thead", { class: x(Nr["elm-table-header"]) }, [t.default?.()]);
2097
2230
  }
2098
- }), jr = { "elm-table-row": "_elm-table-row_mkm0q_1" }, Mr = /* @__PURE__ */ i({
2231
+ }), Fr = { "elm-table-row": "_elm-table-row_mkm0q_1" }, Ir = /* @__PURE__ */ i({
2099
2232
  name: "ElmTableRow",
2100
2233
  setup(e, { slots: t }) {
2101
- return () => r("tr", { class: b(jr["elm-table-row"]) }, [t.default?.()]);
2234
+ return () => r("tr", { class: x(Fr["elm-table-row"]) }, [t.default?.()]);
2102
2235
  }
2103
- }), Nr = {
2236
+ }), Lr = {
2104
2237
  "elm-unsupported-block": "_elm-unsupported-block_8bkk1_1",
2105
2238
  message: "_message_8bkk1_13",
2106
2239
  icon: "_icon_8bkk1_20",
2107
2240
  details: "_details_8bkk1_24"
2108
- }, Pr = /* @__PURE__ */ i({
2241
+ }, Rr = /* @__PURE__ */ i({
2109
2242
  name: "ElmUnsupportedBlock",
2110
2243
  inheritAttrs: !1,
2111
2244
  props: { details: {
@@ -2115,24 +2248,24 @@ var lr = /* @__PURE__ */ i({
2115
2248
  setup(e, { attrs: t }) {
2116
2249
  return () => {
2117
2250
  let { class: i, ...a } = t;
2118
- return r("div", c({ class: b(Nr["elm-unsupported-block"], i) }, a), [r("div", { class: Nr.message }, [r("svg", {
2251
+ return r("div", c({ class: x(Lr["elm-unsupported-block"], i) }, a), [r("div", { class: Lr.message }, [r("svg", {
2119
2252
  viewBox: "0 0 24 24",
2120
2253
  width: "1.25rem",
2121
2254
  height: "1.25rem",
2122
- class: Nr.icon
2123
- }, [r("path", { d: "M13,9H11V7H13M13,17H11V11H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z" }, null)]), r(T, null, { default: () => [n("UNSUPPORTED BLOCK")] })]), e.details && r("div", { class: Nr.details }, [r(T, null, { default: () => [e.details] })])]);
2255
+ class: Lr.icon
2256
+ }, [r("path", { d: "M13,9H11V7H13M13,17H11V11H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z" }, null)]), r(E, null, { default: () => [n("UNSUPPORTED BLOCK")] })]), e.details && r("div", { class: Lr.details }, [r(E, null, { default: () => [e.details] })])]);
2124
2257
  };
2125
2258
  }
2126
2259
  });
2127
2260
  //#endregion
2128
- //#region src/components/a2ui/catalog/block-catalog.tsx
2129
- function F(e) {
2261
+ //#region src/components/a2ui/catalog/notion-block-catalog.tsx
2262
+ function I(e) {
2130
2263
  return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !s(e);
2131
2264
  }
2132
- function Fr(e) {
2265
+ function zr(e) {
2133
2266
  return Array.isArray(e) ? e.filter((e) => typeof e == "string") : [];
2134
2267
  }
2135
- var Ir = {
2268
+ var Br = {
2136
2269
  boxSizing: "content-box",
2137
2270
  paddingBlock: "0.25rem",
2138
2271
  width: "100%",
@@ -2141,12 +2274,12 @@ var Ir = {
2141
2274
  gap: "0.25rem",
2142
2275
  justifyContent: "space-around",
2143
2276
  overflowX: "auto"
2144
- }, Lr = Cn.extend(D(Ft, ({ props: e, resolve: t }) => {
2277
+ }, Vr = Sn.extend(O(Pt, ({ props: e, resolve: t }) => {
2145
2278
  let n = t(e.text), i = e.decoration ?? [];
2146
- return i.includes("katex") ? r(Fn, {
2279
+ return i.includes("katex") ? r(Pn, {
2147
2280
  expression: n,
2148
2281
  block: !1
2149
- }, null) : r(T, {
2282
+ }, null) : r(E, {
2150
2283
  bold: i.includes("bold"),
2151
2284
  italic: i.includes("italic"),
2152
2285
  underline: i.includes("underline"),
@@ -2154,69 +2287,69 @@ var Ir = {
2154
2287
  code: i.includes("code"),
2155
2288
  color: e.color,
2156
2289
  ruby: e.ruby
2157
- }, F(n) ? n : { default: () => [n] });
2158
- }), D(kt, ({ props: e, resolve: t }) => {
2290
+ }, I(n) ? n : { default: () => [n] });
2291
+ }), O(Ot, ({ props: e, resolve: t }) => {
2159
2292
  let n;
2160
- return r(T, {
2293
+ return r(E, {
2161
2294
  href: e.href,
2162
2295
  favicon: e.favicon
2163
- }, F(n = t(e.text)) ? n : { default: () => [n] });
2164
- }), D(Et, ({ props: e, resolve: t }) => r(w, {
2296
+ }, I(n = t(e.text)) ? n : { default: () => [n] });
2297
+ }), O(Tt, ({ props: e, resolve: t }) => r(T, {
2165
2298
  src: t(e.src),
2166
2299
  alt: e.alt
2167
- }, null)), D(vt, ({ props: e, childRefs: t, renderChild: n }) => r("div", { style: {
2300
+ }, null)), O(_t, ({ props: e, childRefs: t, renderChild: n }) => r("div", { style: {
2168
2301
  display: "flex",
2169
2302
  flexDirection: "column",
2170
- justifyContent: _n[e.justify ?? "start"],
2171
- alignItems: vn[e.align ?? "stretch"],
2303
+ justifyContent: gn[e.justify ?? "start"],
2304
+ alignItems: _n[e.align ?? "stretch"],
2172
2305
  flex: e.widthRatio == null ? void 0 : String(e.widthRatio),
2173
2306
  boxSizing: "border-box",
2174
2307
  padding: "0.125rem",
2175
2308
  gap: "var(--elmethis-stack-gap)"
2176
- } }, [t(e.children).map(({ id: e, path: t }, i) => r("span", { key: `${e}:${i}` }, [n(e, t, i)]))])), D(yt, ({ props: t, childRefs: n, renderChild: i }) => r("div", { style: Ir }, [n(t.children).map(({ id: t, path: n }, a) => r(e, { key: `${t}:${a}` }, [i(t, n, a)]))])), D(wt, ({ props: t, childRefs: n, renderChild: i }) => {
2309
+ } }, [t(e.children).map(({ id: e, path: t }, i) => r("span", { key: `${e}:${i}` }, [n(e, t, i)]))])), O(vt, ({ props: t, childRefs: n, renderChild: i }) => r("div", { style: Br }, [n(t.children).map(({ id: t, path: n }, a) => r(e, { key: `${t}:${a}` }, [i(t, n, a)]))])), O(Ct, ({ props: t, childRefs: n, renderChild: i }) => {
2177
2310
  let a;
2178
- return r(sn, { level: t.level }, F(a = n(t.children).map(({ id: t, path: n }, a) => r(e, { key: `${t}:${a}` }, [i(t, n, a)]))) ? a : { default: () => [a] });
2179
- }), D(Pt, ({ props: e, childRefs: t, renderChild: n }) => {
2311
+ return r(on, { level: t.level }, I(a = n(t.children).map(({ id: t, path: n }, a) => r(e, { key: `${t}:${a}` }, [i(t, n, a)]))) ? a : { default: () => [a] });
2312
+ }), O(Nt, ({ props: e, childRefs: t, renderChild: n }) => {
2180
2313
  let i;
2181
- return r(dn, {
2314
+ return r(un, {
2182
2315
  color: e.color,
2183
2316
  backgroundColor: e.backgroundColor
2184
- }, F(i = t(e.children).map(({ id: e, path: t }, i) => r("span", { key: `${e}:${i}` }, [n(e, t, i)]))) ? i : { default: () => [i] });
2185
- }), D(At, ({ props: e, childRefs: t, renderChild: n }) => {
2317
+ }, I(i = t(e.children).map(({ id: e, path: t }, i) => r("span", { key: `${e}:${i}` }, [n(e, t, i)]))) ? i : { default: () => [i] });
2318
+ }), O(kt, ({ props: e, childRefs: t, renderChild: n }) => {
2186
2319
  let i;
2187
- return r(Sr, { listStyle: e.style ?? "unordered" }, F(i = t(e.children).map(({ id: e, path: t }, i) => r("li", { key: `${e}:${i}` }, [n(e, t, i)]))) ? i : { default: () => [i] });
2188
- }), D(jt, ({ props: t, childRefs: n, renderChild: i }) => r(e, null, [n(t.children).map(({ id: t, path: n }, a) => r(e, { key: `${t}:${a}` }, [i(t, n, a)]))])), D(mt, ({ props: t, childRefs: n, renderChild: i }) => {
2320
+ return r(Er, { listStyle: e.style ?? "unordered" }, I(i = t(e.children).map(({ id: e, path: t }, i) => r("li", { key: `${e}:${i}` }, [n(e, t, i)]))) ? i : { default: () => [i] });
2321
+ }), O(At, ({ props: t, childRefs: n, renderChild: i }) => r(e, null, [n(t.children).map(({ id: t, path: n }, a) => r(e, { key: `${t}:${a}` }, [i(t, n, a)]))])), O(pt, ({ props: t, childRefs: n, renderChild: i }) => {
2189
2322
  let a;
2190
- return r(pr, { cite: t.cite }, F(a = n(t.children).map(({ id: t, path: n }, a) => r(e, { key: `${t}:${a}` }, [i(t, n, a)]))) ? a : { default: () => [a] });
2191
- }), D(gt, ({ props: t, childRefs: n, renderChild: i }) => {
2323
+ return r(_r, { cite: t.cite }, I(a = n(t.children).map(({ id: t, path: n }, a) => r(e, { key: `${t}:${a}` }, [i(t, n, a)]))) ? a : { default: () => [a] });
2324
+ }), O(ht, ({ props: t, childRefs: n, renderChild: i }) => {
2192
2325
  let a;
2193
- return r(gr, { type: t.type }, F(a = n(t.children).map(({ id: t, path: n }, a) => r(e, { key: `${t}:${a}` }, [i(t, n, a)]))) ? a : { default: () => [a] });
2194
- }), D(Nt, ({ props: t, childRefs: n, renderChild: i }) => {
2326
+ return r(br, { type: t.type }, I(a = n(t.children).map(({ id: t, path: n }, a) => r(e, { key: `${t}:${a}` }, [i(t, n, a)]))) ? a : { default: () => [a] });
2327
+ }), O(Mt, ({ props: t, childRefs: n, renderChild: i }) => {
2195
2328
  let a;
2196
- return r(vr, {
2329
+ return r(Sr, {
2197
2330
  icon: t.icon,
2198
2331
  color: t.color,
2199
2332
  variant: t.variant
2200
- }, F(a = n(t.children).map(({ id: t, path: n }, a) => r(e, { key: `${t}:${a}` }, [i(t, n, a)]))) ? a : { default: () => [a] });
2201
- }), D(St, () => r(br, null, null)), D(zt, ({ props: t, childRefs: n, renderChild: i }) => r(fr, null, {
2333
+ }, I(a = n(t.children).map(({ id: t, path: n }, a) => r(e, { key: `${t}:${a}` }, [i(t, n, a)]))) ? a : { default: () => [a] });
2334
+ }), O(xt, () => r(wr, null, null)), O(Rt, ({ props: t, childRefs: n, renderChild: i }) => r(hr, null, {
2202
2335
  summary: () => n(t.summary).map(({ id: e, path: t }, n) => r("span", { key: `${e}:${n}` }, [i(e, t, n)])),
2203
2336
  default: () => n(t.children).map(({ id: t, path: n }, a) => r(e, { key: `${t}:${a}` }, [i(t, n, a)]))
2204
- })), D(ht, ({ props: e, resolve: t }) => r(dr, {
2337
+ })), O(mt, ({ props: e, resolve: t }) => r(mr, {
2205
2338
  url: t(e.url),
2206
2339
  title: e.title ? t(e.title) : void 0,
2207
2340
  description: e.description ? t(e.description) : void 0,
2208
2341
  image: e.image ? t(e.image) : void 0
2209
- }, null)), D(Ct, ({ props: e, resolve: t }) => r(lr, {
2342
+ }, null)), O(St, ({ props: e, resolve: t }) => r(fr, {
2210
2343
  src: t(e.src),
2211
2344
  name: e.name ? t(e.name) : void 0
2212
- }, null)), D(ft, ({ props: e, resolve: t }) => r(er, {
2345
+ }, null)), O(dt, ({ props: e, resolve: t }) => r(rr, {
2213
2346
  src: t(e.src),
2214
2347
  title: e.title ? t(e.title) : void 0,
2215
2348
  artist: e.artist ? t(e.artist) : void 0,
2216
2349
  seekStep: e.seekStep,
2217
2350
  loop: e.loop,
2218
2351
  autoplay: e.autoPlay
2219
- }, null)), D(Vt, ({ props: e, resolve: t }) => {
2352
+ }, null)), O(Bt, ({ props: e, resolve: t }) => {
2220
2353
  let n = e.caption ? t(e.caption) : void 0;
2221
2354
  return r("figure", { style: { margin: 0 } }, [r("video", {
2222
2355
  src: t(e.src),
@@ -2233,7 +2366,7 @@ var Ir = {
2233
2366
  height: "auto"
2234
2367
  }
2235
2368
  }, null), n ? r("figcaption", null, [n]) : null]);
2236
- }), D(pt, ({ props: e, resolve: t }) => r(or, {
2369
+ }), O(ft, ({ props: e, resolve: t }) => r(lr, {
2237
2370
  src: t(e.src),
2238
2371
  alt: e.alt ? t(e.alt) : void 0,
2239
2372
  width: e.width,
@@ -2242,145 +2375,63 @@ var Ir = {
2242
2375
  sizes: e.sizes ? t(e.sizes) : void 0,
2243
2376
  caption: e.caption ? t(e.caption) : void 0,
2244
2377
  enableModal: !0
2245
- }, null)), D(Tt, ({ props: e, resolve: t }) => r(Zn, {
2378
+ }, null)), O(wt, ({ props: e, resolve: t }) => r(er, {
2246
2379
  html: e.html ? t(e.html) : void 0,
2247
2380
  src: e.src ? t(e.src) : void 0,
2248
- autoHeight: e.autoHeight
2249
- }, null)), D(_t, ({ props: e, resolve: t }) => r(Kn, {
2381
+ autoHeight: e.autoHeight,
2382
+ allowScripts: e.allowScripts ?? !0,
2383
+ height: e.height ?? 400
2384
+ }, null)), O(gt, ({ props: e, resolve: t }) => r(Gn, {
2250
2385
  code: t(e.code),
2251
2386
  language: e.language ? t(e.language) : void 0,
2252
2387
  caption: e.caption ? t(e.caption) : void 0
2253
- }, null)), D(Dt, ({ props: e, resolve: t }) => r(Fn, {
2388
+ }, null)), O(Et, ({ props: e, resolve: t }) => r(Pn, {
2254
2389
  expression: t(e.expression),
2255
2390
  block: !0
2256
- }, null)), D(Mt, ({ props: e, resolve: t }) => r(Kn, {
2391
+ }, null)), O(jt, ({ props: e, resolve: t }) => r(Gn, {
2257
2392
  code: t(e.code),
2258
2393
  language: "mermaid"
2259
- }, null)), D(bt, () => null), D(xt, ({ props: t, surface: n, renderChild: i }) => {
2394
+ }, null)), O(yt, () => null), O(bt, ({ props: t, surface: n, renderChild: i }) => {
2260
2395
  let a, o = (Array.isArray(t.children) ? t.children : []).map((e) => {
2261
2396
  let t = n.componentsModel.get(e);
2262
2397
  return {
2263
2398
  tabId: e,
2264
- labelIds: Fr(t?.properties.label),
2265
- contentIds: Fr(t?.properties.content)
2399
+ labelIds: zr(t?.properties.label),
2400
+ contentIds: zr(t?.properties.content)
2266
2401
  };
2267
2402
  });
2268
- return r(Qt, { defaultValue: "0" }, { default: () => [r($t, null, F(a = o.map(({ tabId: t, labelIds: n }, a) => {
2403
+ return r(Zt, { defaultValue: "0" }, { default: () => [r(Qt, null, I(a = o.map(({ tabId: t, labelIds: n }, a) => {
2269
2404
  let o;
2270
- return r(en, {
2405
+ return r($t, {
2271
2406
  key: t,
2272
2407
  value: String(a)
2273
- }, F(o = n.map((t, n) => r(e, { key: `${t}:${n}` }, [i(t, "/", n)]))) ? o : { default: () => [o] });
2408
+ }, I(o = n.map((t, n) => r(e, { key: `${t}:${n}` }, [i(t, "/", n)]))) ? o : { default: () => [o] });
2274
2409
  })) ? a : { default: () => [a] }), o.map(({ tabId: t, contentIds: n }, a) => {
2275
2410
  let o;
2276
- return r(tn, {
2411
+ return r(en, {
2277
2412
  key: t,
2278
2413
  value: String(a)
2279
- }, F(o = n.map((t, n) => r(e, { key: `${t}:${n}` }, [i(t, "/", n)]))) ? o : { default: () => [o] });
2414
+ }, I(o = n.map((t, n) => r(e, { key: `${t}:${n}` }, [i(t, "/", n)]))) ? o : { default: () => [o] });
2280
2415
  })] });
2281
- }), D(It, ({ props: t, childRefs: n, renderChild: i }) => {
2416
+ }), O(Ft, ({ props: t, childRefs: n, renderChild: i }) => {
2282
2417
  let a, o;
2283
- return r(Tr, {
2418
+ return r(kr, {
2284
2419
  caption: t.caption ? String(t.caption) : void 0,
2285
2420
  hasRowHeader: t.hasRowHeader
2286
- }, { default: () => [t.header && t.header.length > 0 && r(Ar, null, F(a = n(t.header).map(({ id: t, path: n }, a) => r(e, { key: `${t}:${a}` }, [i(t, n, a)]))) ? a : { default: () => [a] }), r(Er, null, F(o = n(t.body).map(({ id: t, path: n }, a) => r(e, { key: `${t}:${a}` }, [i(t, n, a)]))) ? o : { default: () => [o] })] });
2287
- }), D(Rt, ({ props: t, childRefs: n, renderChild: i }) => {
2421
+ }, { default: () => [t.header && t.header.length > 0 && r(Pr, null, I(a = n(t.header).map(({ id: t, path: n }, a) => r(e, { key: `${t}:${a}` }, [i(t, n, a)]))) ? a : { default: () => [a] }), r(Ar, null, I(o = n(t.body).map(({ id: t, path: n }, a) => r(e, { key: `${t}:${a}` }, [i(t, n, a)]))) ? o : { default: () => [o] })] });
2422
+ }), O(Lt, ({ props: t, childRefs: n, renderChild: i }) => {
2288
2423
  let a;
2289
- return r(Mr, null, F(a = n(t.children).map(({ id: t, path: n }, a) => r(e, { key: `${t}:${a}` }, [i(t, n, a)]))) ? a : { default: () => [a] });
2290
- }), D(Lt, ({ props: e, index: t, childRefs: n, renderChild: i }) => {
2424
+ return r(Ir, null, I(a = n(t.children).map(({ id: t, path: n }, a) => r(e, { key: `${t}:${a}` }, [i(t, n, a)]))) ? a : { default: () => [a] });
2425
+ }), O(It, ({ props: e, index: t, childRefs: n, renderChild: i }) => {
2291
2426
  let a;
2292
- return r(Or, {
2427
+ return r(Mr, {
2293
2428
  isHeader: e.isHeader,
2294
2429
  columnIndex: t
2295
- }, F(a = n(e.children).map(({ id: e, path: t }, n) => r("span", { key: `${e}:${n}` }, [i(e, t, n)]))) ? a : { default: () => [a] });
2296
- }), D(Bt, ({ props: e }) => r(Pr, { details: e.details ? `Unsupported component type: ${String(e.details)}` : "Unsupported component type" }, null))), Rr = {
2297
- "elm-html-viewer": "_elm-html-viewer_jde0x_1",
2298
- header: "_header_jde0x_15",
2299
- "icon-button": "_icon-button_jde0x_23",
2300
- divider: "_divider_jde0x_49",
2301
- content: "_content_jde0x_57"
2302
- }, zr = /* @__PURE__ */ i({
2303
- name: "ElmHtmlViewer",
2304
- props: {
2305
- html: {
2306
- type: String,
2307
- required: !0
2308
- },
2309
- filename: {
2310
- type: String,
2311
- default: void 0
2312
- },
2313
- sandbox: {
2314
- type: String,
2315
- default: void 0
2316
- },
2317
- autoHeight: {
2318
- type: Boolean,
2319
- default: void 0
2320
- }
2321
- },
2322
- setup(e) {
2323
- let t = () => {
2324
- let t;
2325
- try {
2326
- let n = `<!doctype html>
2327
- <html lang="en">
2328
- <head>
2329
- <meta charset="utf-8" />
2330
- <title>Embedded HTML content</title>
2331
- <style>html,body{margin:0;height:100%;}iframe{display:block;width:100%;height:100%;border:0;}</style>
2332
- </head>
2333
- <body>
2334
- <iframe sandbox title="Embedded HTML content"></iframe>
2335
- <script>document.querySelector("iframe").srcdoc = ${JSON.stringify(e.html).replace(/<\//g, "<\\/")};<\/script>
2336
- </body>
2337
- </html>`;
2338
- t = URL.createObjectURL(new Blob([n], { type: "text/html" }));
2339
- let r = () => URL.revokeObjectURL(t), i = window.open(t, "_blank", "noreferrer");
2340
- i ? i.addEventListener("load", r, { once: !0 }) : r();
2341
- } catch (e) {
2342
- console.error("Failed to open HTML in a new tab", e), t && URL.revokeObjectURL(t);
2343
- }
2344
- }, n = () => {
2345
- let t, n;
2346
- try {
2347
- t = URL.createObjectURL(new Blob([e.html], { type: "text/html" })), n = document.createElement("a"), n.href = t, n.download = e.filename || "download.html", document.body.appendChild(n), n.click();
2348
- } catch (e) {
2349
- console.error("Failed to download HTML", e);
2350
- } finally {
2351
- n?.remove(), t && URL.revokeObjectURL(t);
2352
- }
2353
- };
2354
- return () => r("figure", { class: b(Rr["elm-html-viewer"]) }, [
2355
- r("div", { class: Rr.header }, [r("button", {
2356
- type: "button",
2357
- class: Rr["icon-button"],
2358
- onClick: n,
2359
- "aria-label": "Download"
2360
- }, [r(O, {
2361
- d: Ie,
2362
- size: "1.25rem"
2363
- }, null)]), r("button", {
2364
- type: "button",
2365
- class: Rr["icon-button"],
2366
- onClick: t,
2367
- "aria-label": "Open in new tab"
2368
- }, [r(O, {
2369
- d: $e,
2370
- size: "1.25rem"
2371
- }, null)])]),
2372
- r("hr", { class: Rr.divider }, null),
2373
- r("div", { class: Rr.content }, [r(Zn, {
2374
- html: e.html,
2375
- sandbox: e.sandbox,
2376
- autoHeight: e.autoHeight
2377
- }, null)])
2378
- ]);
2379
- }
2380
- }), Br = {
2430
+ }, I(a = n(e.children).map(({ id: e, path: t }, n) => r("span", { key: `${e}:${n}` }, [i(e, t, n)]))) ? a : { default: () => [a] });
2431
+ }), O(zt, ({ props: e }) => r(Rr, { details: e.details ? `Unsupported component type: ${String(e.details)}` : "Unsupported component type" }, null))), Hr = {
2381
2432
  "parallax-watcher": "_parallax-watcher_z693a_1",
2382
2433
  parallax: "_parallax_z693a_1"
2383
- }, Vr = /* @__PURE__ */ i({
2434
+ }, Ur = /* @__PURE__ */ i({
2384
2435
  name: "ElmParallax",
2385
2436
  props: { images: {
2386
2437
  type: Array,
@@ -2390,9 +2441,9 @@ var Ir = {
2390
2441
  let t = m(0), n = () => {
2391
2442
  t.value = window.scrollY;
2392
2443
  };
2393
- return d(() => window.addEventListener("scroll", n)), u(() => window.removeEventListener("scroll", n)), () => r("div", null, [r("div", { class: Br["parallax-watcher"] }, null), e.images.map((e, n) => r("div", {
2444
+ return d(() => window.addEventListener("scroll", n)), u(() => window.removeEventListener("scroll", n)), () => r("div", null, [r("div", { class: Hr["parallax-watcher"] }, null), e.images.map((e, n) => r("div", {
2394
2445
  key: n,
2395
- class: Br.parallax,
2446
+ class: Hr.parallax,
2396
2447
  style: {
2397
2448
  backgroundImage: `url(${e})`,
2398
2449
  transform: `scale(1.2) translateY(${t.value / (1e3 * (n + 1))}%)`,
@@ -2400,11 +2451,11 @@ var Ir = {
2400
2451
  }
2401
2452
  }, null))]);
2402
2453
  }
2403
- }), Hr = {
2454
+ }), Wr = {
2404
2455
  "elm-tooltip": "_elm-tooltip_1b13f_1",
2405
2456
  tooltip: "_tooltip_1b13f_5",
2406
2457
  show: "_show_1b13f_18"
2407
- }, Ur = /* @__PURE__ */ i({
2458
+ }, Gr = /* @__PURE__ */ i({
2408
2459
  name: "ElmTooltip",
2409
2460
  setup(e, { slots: t }) {
2410
2461
  let n = m(null), i = m(!1), a = !1, o, s = m({}), c = () => {
@@ -2426,19 +2477,19 @@ var Ir = {
2426
2477
  };
2427
2478
  return () => r("span", {
2428
2479
  ref: n,
2429
- class: b(Hr["elm-tooltip"]),
2480
+ class: x(Wr["elm-tooltip"]),
2430
2481
  onMouseover: c,
2431
2482
  onMouseleave: l
2432
2483
  }, [t.original?.(), r("div", {
2433
- class: b(Hr.tooltip, i.value && Hr.show),
2484
+ class: x(Wr.tooltip, i.value && Wr.show),
2434
2485
  style: s.value
2435
2486
  }, [t.tooltip?.()])]);
2436
2487
  }
2437
- }), Wr = { "elm-block-fallback": "_elm-block-fallback_1sx02_1" }, Gr = {
2488
+ }), Kr = { "elm-block-fallback": "_elm-block-fallback_1sx02_1" }, qr = {
2438
2489
  "elm-dot-loading-icon": "_elm-dot-loading-icon_qjgj2_15",
2439
2490
  dot: "_dot_qjgj2_25",
2440
2491
  bounce: "_bounce_qjgj2_1"
2441
- }, Kr = /* @__PURE__ */ i({
2492
+ }, Jr = /* @__PURE__ */ i({
2442
2493
  name: "ElmDotLoadingIcon",
2443
2494
  inheritAttrs: !1,
2444
2495
  props: { size: {
@@ -2449,25 +2500,25 @@ var Ir = {
2449
2500
  return () => {
2450
2501
  let { class: n, style: i, ...a } = t;
2451
2502
  return r("span", c({
2452
- class: b(Gr["elm-dot-loading-icon"], n),
2503
+ class: x(qr["elm-dot-loading-icon"], n),
2453
2504
  style: [{ "--elmethis-scoped-size": e.size }, i]
2454
2505
  }, a), [
2455
2506
  r("span", {
2456
- class: Gr.dot,
2507
+ class: qr.dot,
2457
2508
  "aria-hidden": "true"
2458
2509
  }, null),
2459
2510
  r("span", {
2460
- class: Gr.dot,
2511
+ class: qr.dot,
2461
2512
  "aria-hidden": "true"
2462
2513
  }, null),
2463
2514
  r("span", {
2464
- class: Gr.dot,
2515
+ class: qr.dot,
2465
2516
  "aria-hidden": "true"
2466
2517
  }, null)
2467
2518
  ]);
2468
2519
  };
2469
2520
  }
2470
- }), qr = /* @__PURE__ */ i({
2521
+ }), Yr = /* @__PURE__ */ i({
2471
2522
  name: "ElmBlockFallback",
2472
2523
  props: { height: {
2473
2524
  type: String,
@@ -2475,11 +2526,11 @@ var Ir = {
2475
2526
  } },
2476
2527
  setup(e) {
2477
2528
  return () => r("div", {
2478
- class: b(Wr["elm-block-fallback"]),
2529
+ class: x(Kr["elm-block-fallback"]),
2479
2530
  style: { "--elmethis-scoped-height": e.height }
2480
- }, [r(Kr, null, null), r(nr, null, null)]);
2531
+ }, [r(Jr, null, null), r(ar, null, null)]);
2481
2532
  }
2482
- }), I = {
2533
+ }), L = {
2483
2534
  "elm-button": "_elm-button_9qh0y_1",
2484
2535
  normal: "_normal_9qh0y_22",
2485
2536
  primary: "_primary_9qh0y_29",
@@ -2488,7 +2539,7 @@ var Ir = {
2488
2539
  flex: "_flex_9qh0y_59",
2489
2540
  ripple: "_ripple_9qh0y_83",
2490
2541
  "button-ripple": "_button-ripple_9qh0y_1"
2491
- }, Jr = /* @__PURE__ */ i({
2542
+ }, Xr = /* @__PURE__ */ i({
2492
2543
  name: "ElmButton",
2493
2544
  inheritAttrs: !1,
2494
2545
  props: {
@@ -2522,7 +2573,7 @@ var Ir = {
2522
2573
  !e.isLoading && !e.disabled && typeof l == "function" && (i.value = !0, clearTimeout(a), a = setTimeout(() => i.value = !1, 300), l(t));
2523
2574
  },
2524
2575
  disabled: e.disabled,
2525
- class: b(I["elm-button"], !e.isLoading && !e.disabled && I.enable, e.color && I.colored, !e.color && !e.primary && I.normal, !e.color && e.primary && I.primary, o),
2576
+ class: x(L["elm-button"], !e.isLoading && !e.disabled && L.enable, e.color && L.colored, !e.color && !e.primary && L.normal, !e.color && e.primary && L.primary, o),
2526
2577
  style: [{
2527
2578
  display: e.block ? "flex" : "inline-flex",
2528
2579
  width: e.block ? "100%" : "auto",
@@ -2530,10 +2581,10 @@ var Ir = {
2530
2581
  "--elmethis-scoped-opacity": e.disabled || e.isLoading ? .6 : void 0,
2531
2582
  "--elmethis-scoped-color": e.color
2532
2583
  }, s]
2533
- }, u), [i.value && r("span", { class: I.ripple }, null), e.isLoading ? r(Kr, { size: "1.5rem" }, null) : r("span", { class: I.flex }, [n.default?.()])]);
2584
+ }, u), [i.value && r("span", { class: L.ripple }, null), e.isLoading ? r(Jr, { size: "1.5rem" }, null) : r("span", { class: L.flex }, [n.default?.()])]);
2534
2585
  };
2535
2586
  }
2536
- }), L = {
2587
+ }), R = {
2537
2588
  "elm-button-dropdown": "_elm-button-dropdown_hhp3p_1",
2538
2589
  block: "_block_hhp3p_7",
2539
2590
  main: "_main_hhp3p_11",
@@ -2546,10 +2597,10 @@ var Ir = {
2546
2597
  };
2547
2598
  //#endregion
2548
2599
  //#region src/components/form/elm-button-dropdown.tsx
2549
- function Yr(e) {
2600
+ function Zr(e) {
2550
2601
  return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !s(e);
2551
2602
  }
2552
- var Xr = /* @__PURE__ */ i({
2603
+ var Qr = /* @__PURE__ */ i({
2553
2604
  name: "ElmButtonDropdown",
2554
2605
  props: {
2555
2606
  label: {
@@ -2602,7 +2653,7 @@ var Xr = /* @__PURE__ */ i({
2602
2653
  },
2603
2654
  dropdownIcon: {
2604
2655
  type: String,
2605
- default: Xe
2656
+ default: Ye
2606
2657
  }
2607
2658
  },
2608
2659
  emits: [
@@ -2612,7 +2663,7 @@ var Xr = /* @__PURE__ */ i({
2612
2663
  "openChange"
2613
2664
  ],
2614
2665
  setup(t, { emit: n, slots: i }) {
2615
- let a = Ce(t, "selectedOptionId", n, {
2666
+ let a = Se(t, "selectedOptionId", n, {
2616
2667
  passive: !0,
2617
2668
  defaultValue: t.defaultSelectedOptionId ?? null
2618
2669
  }), o = m(!1), s = m(null), c = (e) => {
@@ -2622,14 +2673,14 @@ var Xr = /* @__PURE__ */ i({
2622
2673
  };
2623
2674
  return d(() => document.addEventListener("click", l)), u(() => document.removeEventListener("click", l)), () => {
2624
2675
  let l, u = t.items.find((e) => e.id === a.value) ?? null, d = t.disabled || t.disableDropdown || t.isLoading, f = t.disabled || t.disableMainButton, p = {
2625
- class: b(L.main, L.segment),
2676
+ class: x(R.main, R.segment),
2626
2677
  primary: t.primary,
2627
2678
  color: t.color,
2628
2679
  isLoading: t.isLoading,
2629
2680
  disabled: f,
2630
2681
  onClick: () => n("click", u)
2631
2682
  }, m = {
2632
- class: b(L.caret, L.segment),
2683
+ class: x(R.caret, R.segment),
2633
2684
  primary: t.primary,
2634
2685
  color: t.color,
2635
2686
  disabled: d,
@@ -2639,36 +2690,36 @@ var Xr = /* @__PURE__ */ i({
2639
2690
  };
2640
2691
  return r("div", {
2641
2692
  ref: s,
2642
- class: b(L["elm-button-dropdown"], t.block && L.block)
2693
+ class: x(R["elm-button-dropdown"], t.block && R.block)
2643
2694
  }, [
2644
- r(Jr, p, { default: () => [u ? r(e, null, [u.icon && r(w, { src: u.icon }, null), u.label]) : r(e, null, [i.icon?.(), t.label])] }),
2645
- r(Jr, m, { default: () => [r(O, {
2695
+ r(Xr, p, { default: () => [u ? r(e, null, [u.icon && r(T, { src: u.icon }, null), u.label]) : r(e, null, [i.icon?.(), t.label])] }),
2696
+ r(Xr, m, { default: () => [r(k, {
2646
2697
  d: t.dropdownIcon,
2647
2698
  size: "1.25rem"
2648
2699
  }, null)] }),
2649
- r(Jt, {
2700
+ r(qt, {
2650
2701
  isOpen: o.value,
2651
- class: L.menu
2652
- }, Yr(l = t.items.map((e) => r("div", {
2702
+ class: R.menu
2703
+ }, Zr(l = t.items.map((e) => r("div", {
2653
2704
  key: e.id,
2654
- class: b(L.item, C.text, e.id === a.value && L.selected, e.disabled && L["item-disabled"]),
2705
+ class: x(R.item, w.text, e.id === a.value && R.selected, e.disabled && R["item-disabled"]),
2655
2706
  "aria-selected": e.id === a.value,
2656
2707
  onClick: (r) => {
2657
2708
  r.stopPropagation(), !e.disabled && (a.value = e.id, e.onClick?.(), n("itemClick", e), t.autoClose && c(!1));
2658
2709
  }
2659
2710
  }, [
2660
- r(O, {
2661
- d: Me,
2711
+ r(k, {
2712
+ d: je,
2662
2713
  color: "var(--elmethis-color-primary-weak)",
2663
2714
  size: "0.75em"
2664
2715
  }, null),
2665
- e.icon && r(w, { src: e.icon }, null),
2666
- r(T, null, { default: () => [e.label] })
2716
+ e.icon && r(T, { src: e.icon }, null),
2717
+ r(E, null, { default: () => [e.label] })
2667
2718
  ]))) ? l : { default: () => [l] })
2668
2719
  ]);
2669
2720
  };
2670
2721
  }
2671
- }), R = {
2722
+ }), z = {
2672
2723
  "elm-checkbox": "_elm-checkbox_18dfs_1",
2673
2724
  disabled: "_disabled_18dfs_12",
2674
2725
  checkbox: "_checkbox_18dfs_22",
@@ -2678,7 +2729,7 @@ var Xr = /* @__PURE__ */ i({
2678
2729
  "loading-dot": "_loading-dot_18dfs_39",
2679
2730
  "check-line": "_check-line_18dfs_54",
2680
2731
  "elmethis-checkbox-check-line": "_elmethis-checkbox-check-line_18dfs_1"
2681
- }, Zr = /* @__PURE__ */ i({
2732
+ }, $r = /* @__PURE__ */ i({
2682
2733
  name: "ElmCheckbox",
2683
2734
  inheritAttrs: !1,
2684
2735
  props: {
@@ -2705,7 +2756,7 @@ var Xr = /* @__PURE__ */ i({
2705
2756
  },
2706
2757
  emits: ["update:checked"],
2707
2758
  setup(e, { attrs: t, emit: n }) {
2708
- let i = Yt({
2759
+ let i = Jt({
2709
2760
  props: e,
2710
2761
  key: "checked",
2711
2762
  emit: n,
@@ -2714,7 +2765,7 @@ var Xr = /* @__PURE__ */ i({
2714
2765
  return () => {
2715
2766
  let { class: n, ...a } = t;
2716
2767
  return r("div", c({
2717
- class: b(R["elm-checkbox"], e.disabled && R.disabled, n),
2768
+ class: x(z["elm-checkbox"], e.disabled && z.disabled, n),
2718
2769
  onClick: () => {
2719
2770
  !e.isLoading && !e.disabled && (i.value = !i.value);
2720
2771
  }
@@ -2725,13 +2776,13 @@ var Xr = /* @__PURE__ */ i({
2725
2776
  } }, [r("svg", {
2726
2777
  width: "24",
2727
2778
  height: "24",
2728
- class: R.checkbox
2779
+ class: z.checkbox
2729
2780
  }, [
2730
2781
  r("circle", {
2731
2782
  cx: "0",
2732
2783
  cy: "0",
2733
2784
  r: "2",
2734
- class: R["loading-dot"],
2785
+ class: z["loading-dot"],
2735
2786
  style: { opacity: +!!e.isLoading }
2736
2787
  }, [r("animate", {
2737
2788
  attributeName: "cx",
@@ -2752,7 +2803,7 @@ var Xr = /* @__PURE__ */ i({
2752
2803
  cx: "20",
2753
2804
  cy: "20",
2754
2805
  r: "2",
2755
- class: R["loading-dot"],
2806
+ class: z["loading-dot"],
2756
2807
  style: { opacity: +!!e.isLoading }
2757
2808
  }, [r("animate", {
2758
2809
  attributeName: "cx",
@@ -2774,11 +2825,11 @@ var Xr = /* @__PURE__ */ i({
2774
2825
  y: "4",
2775
2826
  width: "16",
2776
2827
  height: "16",
2777
- class: b(R.rect, i.value && R.checked, e.isLoading && R.loading),
2828
+ class: x(z.rect, i.value && z.checked, e.isLoading && z.loading),
2778
2829
  "stroke-width": "0.8"
2779
2830
  }, null),
2780
2831
  i.value && r("polyline", {
2781
- class: R["check-line"],
2832
+ class: z["check-line"],
2782
2833
  points: "5,12 10,17 19,8",
2783
2834
  "stroke-width": "1.5",
2784
2835
  fill: "transparent"
@@ -2839,10 +2890,10 @@ var Xr = /* @__PURE__ */ i({
2839
2890
  style: { strokeWidth: "1px" },
2840
2891
  fill: "transparent"
2841
2892
  }, null)
2842
- ]), r(T, null, { default: () => [e.label] })])]);
2893
+ ]), r(E, null, { default: () => [e.label] })])]);
2843
2894
  };
2844
2895
  }
2845
- }), z = {
2896
+ }), B = {
2846
2897
  "elm-select": "_elm-select_1u7w1_1",
2847
2898
  disabled: "_disabled_1u7w1_23",
2848
2899
  active: "_active_1u7w1_27",
@@ -2857,10 +2908,10 @@ var Xr = /* @__PURE__ */ i({
2857
2908
  };
2858
2909
  //#endregion
2859
2910
  //#region src/components/form/elm-select.tsx
2860
- function Qr(e) {
2911
+ function ei(e) {
2861
2912
  return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !s(e);
2862
2913
  }
2863
- var $r = /* @__PURE__ */ i({
2914
+ var ti = /* @__PURE__ */ i({
2864
2915
  name: "ElmSelect",
2865
2916
  props: {
2866
2917
  label: {
@@ -2894,7 +2945,7 @@ var $r = /* @__PURE__ */ i({
2894
2945
  },
2895
2946
  emits: ["update:selectedOptionId"],
2896
2947
  setup(e, { emit: t, slots: n }) {
2897
- let i = Ce(e, "selectedOptionId", t, {
2948
+ let i = Se(e, "selectedOptionId", t, {
2898
2949
  passive: !0,
2899
2950
  defaultValue: e.defaultSelectedOptionId ?? null
2900
2951
  }), a = m(!1), o = m(null), s = (e) => {
@@ -2908,39 +2959,39 @@ var $r = /* @__PURE__ */ i({
2908
2959
  let t, s = e.options.find((e) => e.id === i.value) ?? null;
2909
2960
  return r("div", {
2910
2961
  ref: o,
2911
- class: b(z["elm-select"], a.value && z.active, (e.disabled || e.isLoading) && z.disabled),
2962
+ class: x(B["elm-select"], a.value && B.active, (e.disabled || e.isLoading) && B.disabled),
2912
2963
  onClick: c
2913
- }, [r("span", { class: b(z.label, a.value && z["label-active"]) }, [n.icon?.() ?? r(O, {
2914
- d: ke,
2964
+ }, [r("span", { class: x(B.label, a.value && B["label-active"]) }, [n.icon?.() ?? r(k, {
2965
+ d: Oe,
2915
2966
  size: "0.75rem"
2916
- }, null), e.label]), r("div", { class: z.body }, [
2917
- r("div", { class: b(z["selected-option"], C.text) }, [s ? r("div", { class: z["option-content"] }, [s.icon && r(w, { src: s.icon }, null), r(T, null, { default: () => [s.label] })]) : r("div", { class: z.fallback }, [r("span", null, [e.placeholder ?? "Select an option"])])]),
2918
- r(O, {
2919
- d: Xe,
2967
+ }, null), e.label]), r("div", { class: B.body }, [
2968
+ r("div", { class: x(B["selected-option"], w.text) }, [s ? r("div", { class: B["option-content"] }, [s.icon && r(T, { src: s.icon }, null), r(E, null, { default: () => [s.label] })]) : r("div", { class: B.fallback }, [r("span", null, [e.placeholder ?? "Select an option"])])]),
2969
+ r(k, {
2970
+ d: Ye,
2920
2971
  size: "1.5rem"
2921
2972
  }, null),
2922
- r(Jt, {
2973
+ r(qt, {
2923
2974
  isOpen: a.value,
2924
- class: z.pulldown
2925
- }, Qr(t = e.options.map((e) => r("div", {
2975
+ class: B.pulldown
2976
+ }, ei(t = e.options.map((e) => r("div", {
2926
2977
  key: e.id,
2927
- class: b(z.option, C.text),
2978
+ class: x(B.option, w.text),
2928
2979
  onClick: (t) => {
2929
2980
  t.stopPropagation(), i.value = e.id, a.value = !1;
2930
2981
  }
2931
2982
  }, [
2932
- r(O, {
2933
- d: Me,
2983
+ r(k, {
2984
+ d: je,
2934
2985
  color: "var(--elmethis-color-primary-weak)",
2935
2986
  size: "0.75em"
2936
2987
  }, null),
2937
- e.icon && r(w, { src: e.icon }, null),
2938
- r(T, null, { default: () => [e.label] })
2988
+ e.icon && r(T, { src: e.icon }, null),
2989
+ r(E, null, { default: () => [e.label] })
2939
2990
  ]))) ? t : { default: () => [t] })
2940
2991
  ])]);
2941
2992
  };
2942
2993
  }
2943
- }), B = {
2994
+ }), V = {
2944
2995
  "elm-slider": "_elm-slider_1cmd9_1",
2945
2996
  vertical: "_vertical_1cmd9_7",
2946
2997
  disabled: "_disabled_1cmd9_12",
@@ -2959,7 +3010,7 @@ var $r = /* @__PURE__ */ i({
2959
3010
  tick: "_tick_1cmd9_274",
2960
3011
  "mark-restricted": "_mark-restricted_1cmd9_287",
2961
3012
  "mark-label": "_mark-label_1cmd9_207"
2962
- }, V = (e, t, n) => Math.min(n, Math.max(t, e)), H = (e) => Math.round(e * 1e9) / 1e9, ei = 500, ti = (e) => e == null || typeof e == "boolean" ? "" : typeof e == "string" ? e : typeof e == "number" ? String(e) : Array.isArray(e) ? e.map(ti).join("") : s(e) ? ti(e.children) : "", ni = /* @__PURE__ */ i({
3013
+ }, H = (e, t, n) => Math.min(n, Math.max(t, e)), U = (e) => Math.round(e * 1e9) / 1e9, ni = 500, ri = (e) => e == null || typeof e == "boolean" ? "" : typeof e == "string" ? e : typeof e == "number" ? String(e) : Array.isArray(e) ? e.map(ri).join("") : s(e) ? ri(e.children) : "", ii = /* @__PURE__ */ i({
2963
3014
  name: "ElmSlider",
2964
3015
  inheritAttrs: !1,
2965
3016
  props: {
@@ -3014,40 +3065,40 @@ var $r = /* @__PURE__ */ i({
3014
3065
  },
3015
3066
  emits: ["update:value"],
3016
3067
  setup(e, { attrs: n, emit: i }) {
3017
- let a = m(null), o = t(() => e.orientation === "vertical"), s = t(() => Math.min(e.min, e.max)), l = t(() => Math.max(e.min, e.max)), u = t(() => V(e.innerMin ?? s.value, s.value, l.value)), d = t(() => V(e.innerMax ?? l.value, u.value, l.value)), f = (t) => {
3068
+ let a = m(null), o = t(() => e.orientation === "vertical"), s = t(() => Math.min(e.min, e.max)), l = t(() => Math.max(e.min, e.max)), u = t(() => H(e.innerMin ?? s.value, s.value, l.value)), d = t(() => H(e.innerMax ?? l.value, u.value, l.value)), f = (t) => {
3018
3069
  let n = Math.abs(e.step);
3019
- return V(H(n > 0 ? e.min + Math.round((t - e.min) / n) * n : t), u.value, d.value);
3020
- }, p = (e) => V(H(e), u.value, d.value), h = Yt({
3070
+ return H(U(n > 0 ? e.min + Math.round((t - e.min) / n) * n : t), u.value, d.value);
3071
+ }, p = (e) => H(U(e), u.value, d.value), h = Jt({
3021
3072
  props: e,
3022
3073
  key: "value",
3023
3074
  emit: i,
3024
3075
  defaultValue: p(e.defaultValue ?? (u.value + d.value) / 2)
3025
- }), g = (t) => e.max === e.min ? 0 : V((t - e.min) / (e.max - e.min), 0, 1), _ = (t, n) => {
3076
+ }), g = (t) => e.max === e.min ? 0 : H((t - e.min) / (e.max - e.min), 0, 1), _ = (t, n) => {
3026
3077
  let r = a.value;
3027
3078
  if (!r) return h.value;
3028
- let i = r.getBoundingClientRect(), s = o.value ? i.height === 0 ? 0 : V((i.bottom - n) / i.height, 0, 1) : i.width === 0 ? 0 : V((t - i.left) / i.width, 0, 1);
3079
+ let i = r.getBoundingClientRect(), s = o.value ? i.height === 0 ? 0 : H((i.bottom - n) / i.height, 0, 1) : i.width === 0 ? 0 : H((t - i.left) / i.width, 0, 1);
3029
3080
  return f(e.min + s * (e.max - e.min));
3030
3081
  }, ee = (t) => {
3031
3082
  e.disabled || (t.currentTarget.setPointerCapture(t.pointerId), h.value = _(t.clientX, t.clientY));
3032
- }, te = (t) => {
3083
+ }, v = (t) => {
3033
3084
  e.disabled || t.currentTarget.hasPointerCapture(t.pointerId) && (h.value = _(t.clientX, t.clientY));
3034
- }, v = t(() => V(h.value, u.value, d.value)), ne = (t) => {
3085
+ }, y = t(() => H(h.value, u.value, d.value)), te = (t) => {
3035
3086
  if (e.disabled) return;
3036
3087
  let n = Math.abs(e.step);
3037
3088
  switch (t.key) {
3038
3089
  case "ArrowRight":
3039
3090
  case "ArrowUp":
3040
- t.preventDefault(), h.value = p(v.value + n);
3091
+ t.preventDefault(), h.value = p(y.value + n);
3041
3092
  break;
3042
3093
  case "ArrowLeft":
3043
3094
  case "ArrowDown":
3044
- t.preventDefault(), h.value = p(v.value - n);
3095
+ t.preventDefault(), h.value = p(y.value - n);
3045
3096
  break;
3046
3097
  case "PageUp":
3047
- t.preventDefault(), h.value = p(v.value + n * 10);
3098
+ t.preventDefault(), h.value = p(y.value + n * 10);
3048
3099
  break;
3049
3100
  case "PageDown":
3050
- t.preventDefault(), h.value = p(v.value - n * 10);
3101
+ t.preventDefault(), h.value = p(y.value - n * 10);
3051
3102
  break;
3052
3103
  case "Home":
3053
3104
  t.preventDefault(), h.value = u.value;
@@ -3056,27 +3107,27 @@ var $r = /* @__PURE__ */ i({
3056
3107
  t.preventDefault(), h.value = d.value;
3057
3108
  break;
3058
3109
  }
3059
- }, re = t(() => {
3110
+ }, ne = t(() => {
3060
3111
  if (!e.markers && !e.markerLabels) return [];
3061
3112
  let t = Math.abs(e.step);
3062
3113
  if (t <= 0 || e.max <= e.min) return [];
3063
- let n = Math.floor(H((e.max - e.min) / t)), r = [];
3064
- if (n <= ei) {
3114
+ let n = Math.floor(U((e.max - e.min) / t)), r = [];
3115
+ if (n <= ni) {
3065
3116
  for (let i = 0; i <= n; i++) {
3066
- let n = H(e.min + i * t);
3117
+ let n = U(e.min + i * t);
3067
3118
  r.push({
3068
3119
  value: n,
3069
3120
  ratio: g(n)
3070
3121
  });
3071
3122
  }
3072
- H(e.min + n * t) !== H(e.max) && r.push({
3123
+ U(e.min + n * t) !== U(e.max) && r.push({
3073
3124
  value: e.max,
3074
3125
  ratio: g(e.max)
3075
3126
  });
3076
3127
  } else {
3077
- let t = (e.max - e.min) / ei;
3078
- for (let n = 0; n <= ei; n++) {
3079
- let i = n === ei ? e.max : H(e.min + n * t);
3128
+ let t = (e.max - e.min) / ni;
3129
+ for (let n = 0; n <= ni; n++) {
3130
+ let i = n === ni ? e.max : U(e.min + n * t);
3080
3131
  r.push({
3081
3132
  value: i,
3082
3133
  ratio: g(i)
@@ -3084,73 +3135,73 @@ var $r = /* @__PURE__ */ i({
3084
3135
  }
3085
3136
  }
3086
3137
  return r;
3087
- }), y = t(() => {
3138
+ }), b = t(() => {
3088
3139
  if (!e.markerLabels) return 0;
3089
3140
  let t = 0;
3090
- for (let n of re.value) {
3091
- let r = ti(e.formatMarkerLabel?.(n.value) ?? n.value);
3141
+ for (let n of ne.value) {
3142
+ let r = ri(e.formatMarkerLabel?.(n.value) ?? n.value);
3092
3143
  r.length > t && (t = r.length);
3093
3144
  }
3094
3145
  return t;
3095
3146
  });
3096
3147
  return () => {
3097
- let { class: t, style: i, onKeydown: s, ...l } = n, f = g(v.value), p = g(u.value), m = g(d.value);
3148
+ let { class: t, style: i, onKeydown: s, ...l } = n, f = g(y.value), p = g(u.value), m = g(d.value);
3098
3149
  return r("div", {
3099
- class: b(B["elm-slider"], o.value && B.vertical, e.disabled && B.disabled, e.markers && B["has-markers"], e.markerLabels && B["has-marker-labels"], t),
3150
+ class: x(V["elm-slider"], o.value && V.vertical, e.disabled && V.disabled, e.markers && V["has-markers"], e.markerLabels && V["has-marker-labels"], t),
3100
3151
  style: {
3101
3152
  "--elmethis-scoped-value-ratio": f,
3102
3153
  "--elmethis-scoped-inner-min-ratio": p,
3103
3154
  "--elmethis-scoped-inner-max-ratio": m,
3104
- "--elmethis-scoped-max-marker-label-chars": y.value,
3155
+ "--elmethis-scoped-max-marker-label-chars": b.value,
3105
3156
  ...i
3106
3157
  }
3107
3158
  }, [r("div", c({
3108
3159
  ref: a,
3109
- class: B.track,
3160
+ class: V.track,
3110
3161
  tabindex: e.disabled ? -1 : 0,
3111
3162
  onPointerdown: ee,
3112
- onPointermove: te,
3163
+ onPointermove: v,
3113
3164
  onKeydown: (t) => {
3114
- ne(t), !e.disabled && s?.(t);
3165
+ te(t), !e.disabled && s?.(t);
3115
3166
  }
3116
3167
  }, l, {
3117
3168
  role: "slider",
3118
3169
  "aria-orientation": e.orientation,
3119
3170
  "aria-valuemin": u.value,
3120
3171
  "aria-valuemax": d.value,
3121
- "aria-valuenow": v.value,
3172
+ "aria-valuenow": y.value,
3122
3173
  "aria-disabled": e.disabled || void 0
3123
3174
  }), [
3124
3175
  r("div", {
3125
- class: B.rail,
3176
+ class: V.rail,
3126
3177
  "aria-hidden": "true"
3127
3178
  }, [
3128
- r("div", { class: B["restricted-start"] }, null),
3129
- r("div", { class: B.fill }, null),
3130
- r("div", { class: B["restricted-end"] }, null)
3179
+ r("div", { class: V["restricted-start"] }, null),
3180
+ r("div", { class: V.fill }, null),
3181
+ r("div", { class: V["restricted-end"] }, null)
3131
3182
  ]),
3132
- re.value.length > 0 && r("div", {
3133
- class: B.marks,
3183
+ ne.value.length > 0 && r("div", {
3184
+ class: V.marks,
3134
3185
  "aria-hidden": "true"
3135
- }, [re.value.map((t, n) => r("span", {
3186
+ }, [ne.value.map((t, n) => r("span", {
3136
3187
  key: t.value,
3137
- class: b(B.mark, n === 0 && B["mark-start"], n === re.value.length - 1 && B["mark-end"], (t.value < u.value || t.value > d.value) && B["mark-restricted"]),
3188
+ class: x(V.mark, n === 0 && V["mark-start"], n === ne.value.length - 1 && V["mark-end"], (t.value < u.value || t.value > d.value) && V["mark-restricted"]),
3138
3189
  style: { "--elmethis-scoped-marker-ratio": t.ratio }
3139
- }, [e.markers && r("i", { class: B.tick }, null), e.markerLabels && r("span", { class: B["mark-label"] }, [e.formatMarkerLabel?.(t.value) ?? t.value])]))]),
3190
+ }, [e.markers && r("i", { class: V.tick }, null), e.markerLabels && r("span", { class: V["mark-label"] }, [e.formatMarkerLabel?.(t.value) ?? t.value])]))]),
3140
3191
  r("span", {
3141
- class: B.thumb,
3192
+ class: V.thumb,
3142
3193
  "aria-hidden": "true"
3143
3194
  }, null)
3144
3195
  ])]);
3145
3196
  };
3146
3197
  }
3147
- }), U = {
3198
+ }), W = {
3148
3199
  switch: "_switch_9s4vz_1",
3149
3200
  bar: "_bar_9s4vz_5",
3150
3201
  checked: "_checked_9s4vz_21",
3151
3202
  disabled: "_disabled_9s4vz_26",
3152
3203
  circle: "_circle_9s4vz_31"
3153
- }, ri = /* @__PURE__ */ i({
3204
+ }, ai = /* @__PURE__ */ i({
3154
3205
  name: "ElmSwitch",
3155
3206
  props: {
3156
3207
  color: {
@@ -3183,13 +3234,13 @@ var $r = /* @__PURE__ */ i({
3183
3234
  "--elmethis-scoped-width": "calc(var(--elmethis-scoped-size) * 2 + var(--elmethis-scoped-padding) * 2)"
3184
3235
  }
3185
3236
  }, [r("input", {
3186
- class: U.switch,
3237
+ class: W.switch,
3187
3238
  type: "checkbox",
3188
3239
  checked: e.checked,
3189
3240
  disabled: e.disabled
3190
- }, null), r("div", { class: b(U.bar, e.checked && U.checked, e.disabled && U.disabled) }, [r("div", { class: b(U.circle, e.checked && U.checked, e.disabled && U.disabled) }, null)])]);
3241
+ }, null), r("div", { class: x(W.bar, e.checked && W.checked, e.disabled && W.disabled) }, [r("div", { class: x(W.circle, e.checked && W.checked, e.disabled && W.disabled) }, null)])]);
3191
3242
  }
3192
- }), W = {
3243
+ }), G = {
3193
3244
  loading: "_loading_lgmx3_23",
3194
3245
  "elm-text-area": "_elm-text-area_lgmx3_37",
3195
3246
  disabled: "_disabled_lgmx3_63",
@@ -3199,7 +3250,7 @@ var $r = /* @__PURE__ */ i({
3199
3250
  requierd: "_requierd_lgmx3_90",
3200
3251
  body: "_body_lgmx3_96",
3201
3252
  textarea: "_textarea_lgmx3_101"
3202
- }, ii = /* @__PURE__ */ i({
3253
+ }, oi = /* @__PURE__ */ i({
3203
3254
  name: "ElmTextArea",
3204
3255
  inheritAttrs: !1,
3205
3256
  props: {
@@ -3246,25 +3297,25 @@ var $r = /* @__PURE__ */ i({
3246
3297
  return () => {
3247
3298
  let { class: t, style: p, onFocus: m, onBlur: h, ...g } = i;
3248
3299
  return r("label", {
3249
- class: b(W["elm-text-area"], s.value && W.active, (e.disabled || e.isLoading) && W.disabled, t),
3300
+ class: x(G["elm-text-area"], s.value && G.active, (e.disabled || e.isLoading) && G.disabled, t),
3250
3301
  style: p
3251
3302
  }, [
3252
- r("span", { class: b(W.header, s.value && W["label-active"]) }, [
3253
- o.icon?.() ?? r(O, {
3254
- d: ot,
3303
+ r("span", { class: x(G.header, s.value && G["label-active"]) }, [
3304
+ o.icon?.() ?? r(k, {
3305
+ d: at,
3255
3306
  size: "0.75rem"
3256
3307
  }, null),
3257
- r("span", null, [e.label, e.required && r("span", { class: W.requierd }, [n("*")])]),
3258
- d.value && r(T, {
3308
+ r("span", null, [e.label, e.required && r("span", { class: G.requierd }, [n("*")])]),
3309
+ d.value && r(E, {
3259
3310
  color: e.maxLength != null && f.value > e.maxLength ? "var(--elmethis-color-accent-error)" : "gray",
3260
3311
  size: "0.75rem"
3261
3312
  }, { default: () => [e.maxLength == null ? `${f.value}` : `${f.value} / ${e.maxLength}`] })
3262
3313
  ]),
3263
- r("div", { class: W.body }, [r("textarea", c({
3314
+ r("div", { class: G.body }, [r("textarea", c({
3264
3315
  value: u.value,
3265
3316
  rows: e.rows,
3266
3317
  maxlength: e.maxLength,
3267
- class: W.textarea,
3318
+ class: G.textarea,
3268
3319
  placeholder: e.placeholder,
3269
3320
  onFocus: (e) => {
3270
3321
  s.value = !0, m?.(e);
@@ -3281,13 +3332,13 @@ var $r = /* @__PURE__ */ i({
3281
3332
  }
3282
3333
  }, g), null)]),
3283
3334
  r("div", {
3284
- class: W.loading,
3335
+ class: G.loading,
3285
3336
  style: { opacity: +!!e.isLoading }
3286
3337
  }, null)
3287
3338
  ]);
3288
3339
  };
3289
3340
  }
3290
- }), G = {
3341
+ }), K = {
3291
3342
  loading: "_loading_11box_23",
3292
3343
  "elm-text-field": "_elm-text-field_11box_37",
3293
3344
  disabled: "_disabled_11box_59",
@@ -3300,7 +3351,7 @@ var $r = /* @__PURE__ */ i({
3300
3351
  "right-icon-box": "_right-icon-box_11box_121",
3301
3352
  "clickable-icon": "_clickable-icon_11box_126",
3302
3353
  "prefix-suffix": "_prefix-suffix_11box_142"
3303
- }, ai = /* @__PURE__ */ i({
3354
+ }, si = /* @__PURE__ */ i({
3304
3355
  name: "ElmTextField",
3305
3356
  inheritAttrs: !1,
3306
3357
  props: {
@@ -3354,27 +3405,27 @@ var $r = /* @__PURE__ */ i({
3354
3405
  return () => {
3355
3406
  let { class: d, style: f, onFocus: p, onBlur: m, ...h } = t, g = e.value == null ? 0 : String(e.value).length;
3356
3407
  return r("label", {
3357
- class: b(G["elm-text-field"], s.value && G.active, (e.disabled || e.isLoading) && G.disabled, d),
3408
+ class: x(K["elm-text-field"], s.value && K.active, (e.disabled || e.isLoading) && K.disabled, d),
3358
3409
  style: f
3359
3410
  }, [
3360
- r("span", { class: b(G.header, s.value && G["label-active"]) }, [
3361
- a.icon?.() ?? r(O, {
3362
- d: at,
3411
+ r("span", { class: x(K.header, s.value && K["label-active"]) }, [
3412
+ a.icon?.() ?? r(k, {
3413
+ d: it,
3363
3414
  size: "0.75rem"
3364
3415
  }, null),
3365
- r("span", null, [e.label, e.required && r("span", { class: G.requierd }, [n("*")])]),
3366
- e.value != null && r(T, {
3416
+ r("span", null, [e.label, e.required && r("span", { class: K.requierd }, [n("*")])]),
3417
+ e.value != null && r(E, {
3367
3418
  color: e.maxLength != null && g > e.maxLength ? "var(--elmethis-color-accent-error)" : "gray",
3368
3419
  size: "0.75rem"
3369
3420
  }, { default: () => [e.maxLength == null ? `${g}` : `${g} / ${e.maxLength}`] })
3370
3421
  ]),
3371
- r("div", { class: G.body }, [
3372
- e.prefix && r("span", { class: G["prefix-suffix"] }, [e.prefix]),
3422
+ r("div", { class: K.body }, [
3423
+ e.prefix && r("span", { class: K["prefix-suffix"] }, [e.prefix]),
3373
3424
  r("input", c({
3374
3425
  ref: o,
3375
3426
  value: e.value,
3376
3427
  type: l.value,
3377
- class: G.input,
3428
+ class: K.input,
3378
3429
  placeholder: e.placeholder,
3379
3430
  onInput: (e) => {
3380
3431
  i("update:value", e.target.value);
@@ -3389,38 +3440,38 @@ var $r = /* @__PURE__ */ i({
3389
3440
  style: { cursor: e.disabled ? "not-allowed" : e.isLoading ? "progress" : "auto" },
3390
3441
  "aria-required": e.required
3391
3442
  }, h), null),
3392
- r("div", { class: G["right-icon-box"] }, [
3393
- r("span", { class: G["prefix-suffix"] }, [e.suffix != null && r(T, null, { default: () => [e.suffix] })]),
3443
+ r("div", { class: K["right-icon-box"] }, [
3444
+ r("span", { class: K["prefix-suffix"] }, [e.suffix != null && r(E, null, { default: () => [e.suffix] })]),
3394
3445
  r("div", {
3395
- class: G["clickable-icon"],
3446
+ class: K["clickable-icon"],
3396
3447
  onClick: () => {
3397
3448
  !e.isLoading && !e.disabled && (l.value = l.value === "text" ? "password" : "text");
3398
3449
  }
3399
- }, [r(O, {
3400
- d: l.value === "text" ? Re : Le,
3450
+ }, [r(k, {
3451
+ d: l.value === "text" ? Le : Ie,
3401
3452
  size: "1.25rem",
3402
3453
  color: "gray"
3403
3454
  }, null)]),
3404
3455
  r("div", {
3405
- class: G["clickable-icon"],
3456
+ class: K["clickable-icon"],
3406
3457
  onClick: () => {
3407
3458
  !e.isLoading && !e.disabled && u("");
3408
3459
  }
3409
- }, [r(O, {
3410
- d: st,
3460
+ }, [r(k, {
3461
+ d: ot,
3411
3462
  size: "1.25rem",
3412
3463
  color: "gray"
3413
3464
  }, null)])
3414
3465
  ])
3415
3466
  ]),
3416
3467
  r("div", {
3417
- class: G.loading,
3468
+ class: K.loading,
3418
3469
  style: { opacity: +!!e.isLoading }
3419
3470
  }, null)
3420
3471
  ]);
3421
3472
  };
3422
3473
  }
3423
- }), oi = { "elm-validation": "_elm-validation_1cigg_1" }, si = /* @__PURE__ */ i({
3474
+ }), ci = { "elm-validation": "_elm-validation_1cigg_1" }, li = /* @__PURE__ */ i({
3424
3475
  name: "ElmValidation",
3425
3476
  props: {
3426
3477
  text: {
@@ -3438,14 +3489,14 @@ var $r = /* @__PURE__ */ i({
3438
3489
  },
3439
3490
  setup(e) {
3440
3491
  return () => r("div", {
3441
- class: b(oi["elm-validation"]),
3492
+ class: x(ci["elm-validation"]),
3442
3493
  style: { "--elmethis-scoped-opacity": e.isValid ? 1 : .5 }
3443
- }, [r(O, {
3444
- d: e.isValid ? Ae : je,
3494
+ }, [r(k, {
3495
+ d: e.isValid ? ke : Ae,
3445
3496
  color: e.isValid ? e.validColor : void 0
3446
- }, null), r(T, { color: e.isValid ? e.validColor : void 0 }, { default: () => [e.text] })]);
3497
+ }, null), r(E, { color: e.isValid ? e.validColor : void 0 }, { default: () => [e.text] })]);
3447
3498
  }
3448
- }), ci = /* @__PURE__ */ i({
3499
+ }), ui = /* @__PURE__ */ i({
3449
3500
  name: "ElmCopyIcon",
3450
3501
  inheritAttrs: !1,
3451
3502
  props: { content: {
@@ -3453,18 +3504,18 @@ var $r = /* @__PURE__ */ i({
3453
3504
  required: !0
3454
3505
  } },
3455
3506
  setup(e, { attrs: t }) {
3456
- let { CopyButton: n } = Gn({
3507
+ let { CopyButton: n } = Wn({
3457
3508
  class: t.class,
3458
3509
  style: t.style,
3459
3510
  content: e.content
3460
3511
  });
3461
3512
  return () => a(n);
3462
3513
  }
3463
- }), li = {
3514
+ }), di = {
3464
3515
  "elm-square-loading-icon": "_elm-square-loading-icon_m72nq_19",
3465
3516
  square: "_square_m72nq_28",
3466
3517
  appear: "_appear_m72nq_1"
3467
- }, ui = /* @__PURE__ */ i({
3518
+ }, fi = /* @__PURE__ */ i({
3468
3519
  name: "ElmSquareLoadingIcon",
3469
3520
  inheritAttrs: !1,
3470
3521
  props: {
@@ -3482,11 +3533,11 @@ var $r = /* @__PURE__ */ i({
3482
3533
  let { class: n, style: i, ...a } = t, o = 1200, s = o / (e.dimensions * 3), l = [];
3483
3534
  for (let t = 0; t < e.dimensions; t++) for (let n = 0; n < e.dimensions; n++) l.push(r("span", {
3484
3535
  key: `${t}-${n}`,
3485
- class: li.square,
3536
+ class: di.square,
3486
3537
  style: { "--elmethis-scoped-delay": `${s * (t + n)}ms` }
3487
3538
  }, null));
3488
3539
  return r("span", c({
3489
- class: b(li["elm-square-loading-icon"], n),
3540
+ class: x(di["elm-square-loading-icon"], n),
3490
3541
  style: [{
3491
3542
  "--elmethis-scoped-size": e.size,
3492
3543
  "--elmethis-scoped-dimensions": e.dimensions,
@@ -3495,33 +3546,33 @@ var $r = /* @__PURE__ */ i({
3495
3546
  }, a), [l]);
3496
3547
  };
3497
3548
  }
3498
- }), K = "elmethis-theme", di = "elmethis-theme-change", fi = (e) => e === "dark" ? "dark" : e === "light" ? "light" : null, pi = () => typeof matchMedia < "u" && matchMedia("(prefers-color-scheme: dark)").matches, mi = (e, t) => {
3549
+ }), pi = "elmethis-theme", mi = "elmethis-theme-change", hi = (e) => e === "dark" ? "dark" : e === "light" ? "light" : null, gi = () => typeof matchMedia < "u" && matchMedia("(prefers-color-scheme: dark)").matches, _i = (e, t) => {
3499
3550
  let n = document.documentElement;
3500
- e == null ? (n.style.removeProperty("color-scheme"), n.removeAttribute("data-theme"), t && typeof localStorage < "u" && localStorage.removeItem(K)) : (n.style.colorScheme = e, n.setAttribute("data-theme", e), t && typeof localStorage < "u" && localStorage.setItem(K, e)), window.dispatchEvent(new CustomEvent(di, { detail: e }));
3501
- }, hi = () => {
3551
+ e == null ? (n.style.removeProperty("color-scheme"), n.removeAttribute("data-theme"), t && typeof localStorage < "u" && localStorage.removeItem(pi)) : (n.style.colorScheme = e, n.setAttribute("data-theme", e), t && typeof localStorage < "u" && localStorage.setItem(pi, e)), window.dispatchEvent(new CustomEvent(mi, { detail: e }));
3552
+ }, vi = () => {
3502
3553
  if (typeof window > "u") return !1;
3503
- let e = fi(localStorage.getItem(K));
3504
- return e == null ? pi() : e === "dark";
3554
+ let e = hi(localStorage.getItem(pi));
3555
+ return e == null ? gi() : e === "dark";
3505
3556
  };
3506
- function gi() {
3507
- let e = m(hi()), t = () => {
3508
- e.value = !e.value, mi(e.value ? "dark" : "light", !0);
3557
+ function yi() {
3558
+ let e = m(vi()), t = () => {
3559
+ e.value = !e.value, _i(e.value ? "dark" : "light", !0);
3509
3560
  }, n = (t) => {
3510
3561
  let n = t.detail;
3511
- e.value = n == null ? pi() : n === "dark";
3562
+ e.value = n == null ? gi() : n === "dark";
3512
3563
  }, r = (t) => {
3513
- if (t.key !== K) return;
3514
- let n = fi(t.newValue);
3515
- e.value = n == null ? pi() : n === "dark", mi(n, !1);
3564
+ if (t.key !== pi) return;
3565
+ let n = hi(t.newValue);
3566
+ e.value = n == null ? gi() : n === "dark", _i(n, !1);
3516
3567
  }, i, a = (t) => {
3517
- fi(localStorage.getItem(K)) ?? (e.value = t.matches);
3568
+ hi(localStorage.getItem(pi)) ?? (e.value = t.matches);
3518
3569
  };
3519
3570
  return d(() => {
3520
- window.addEventListener(di, n), window.addEventListener("storage", r);
3521
- let e = fi(localStorage.getItem(K));
3522
- e != null && mi(e, !1), typeof matchMedia < "u" && (i = matchMedia("(prefers-color-scheme: dark)"), i.addEventListener("change", a));
3571
+ window.addEventListener(mi, n), window.addEventListener("storage", r);
3572
+ let e = hi(localStorage.getItem(pi));
3573
+ e != null && _i(e, !1), typeof matchMedia < "u" && (i = matchMedia("(prefers-color-scheme: dark)"), i.addEventListener("change", a));
3523
3574
  }), u(() => {
3524
- window.removeEventListener(di, n), window.removeEventListener("storage", r), i?.removeEventListener("change", a);
3575
+ window.removeEventListener(mi, n), window.removeEventListener("storage", r), i?.removeEventListener("change", a);
3525
3576
  }), {
3526
3577
  isDarkTheme: e,
3527
3578
  toggleTheme: t
@@ -3529,20 +3580,20 @@ function gi() {
3529
3580
  }
3530
3581
  //#endregion
3531
3582
  //#region src/components/icon/elm-toggle-theme.module.css
3532
- var _i = { "elm-toggle-theme": "_elm-toggle-theme_11awq_1" }, vi = /* @__PURE__ */ i({
3583
+ var bi = { "elm-toggle-theme": "_elm-toggle-theme_11awq_1" }, xi = /* @__PURE__ */ i({
3533
3584
  name: "ElmToggleTheme",
3534
3585
  props: { size: {
3535
3586
  type: [String, Number],
3536
3587
  default: "2rem"
3537
3588
  } },
3538
3589
  setup(e) {
3539
- let { isDarkTheme: t, toggleTheme: n } = gi();
3590
+ let { isDarkTheme: t, toggleTheme: n } = yi();
3540
3591
  return () => t.value ? r("svg", {
3541
3592
  xmlns: "http://www.w3.org/2000/svg",
3542
3593
  width: e.size,
3543
3594
  height: e.size,
3544
3595
  viewBox: "0 0 24 24",
3545
- class: b(_i["elm-toggle-theme"]),
3596
+ class: x(bi["elm-toggle-theme"]),
3546
3597
  onClick: n
3547
3598
  }, [
3548
3599
  r("path", {
@@ -3754,7 +3805,7 @@ var _i = { "elm-toggle-theme": "_elm-toggle-theme_11awq_1" }, vi = /* @__PURE__
3754
3805
  width: e.size,
3755
3806
  height: e.size,
3756
3807
  viewBox: "0 0 24 24",
3757
- class: b(_i["elm-toggle-theme"]),
3808
+ class: x(bi["elm-toggle-theme"]),
3758
3809
  onClick: n
3759
3810
  }, [
3760
3811
  r("g", {
@@ -3926,42 +3977,42 @@ var _i = { "elm-toggle-theme": "_elm-toggle-theme_11awq_1" }, vi = /* @__PURE__
3926
3977
  }, null)])
3927
3978
  ]);
3928
3979
  }
3929
- }), yi = {
3980
+ }), Si = {
3930
3981
  "elm-breadcrumb": "_elm-breadcrumb_13oke_1",
3931
3982
  "link-container": "_link-container_13oke_9",
3932
3983
  icon: "_icon_13oke_23",
3933
3984
  chunk: "_chunk_13oke_36",
3934
3985
  chevron: "_chevron_13oke_41"
3935
- }, bi = /* @__PURE__ */ i({
3986
+ }, Ci = /* @__PURE__ */ i({
3936
3987
  name: "ElmBreadcrumb",
3937
3988
  props: { links: {
3938
3989
  type: Array,
3939
3990
  required: !0
3940
3991
  } },
3941
3992
  setup(e) {
3942
- return () => r("nav", { class: b(yi["elm-breadcrumb"]) }, [e.links.map((t, n) => r("span", {
3993
+ return () => r("nav", { class: x(Si["elm-breadcrumb"]) }, [e.links.map((t, n) => r("span", {
3943
3994
  key: n,
3944
3995
  style: { display: "contents" }
3945
3996
  }, [r("span", {
3946
- class: yi["link-container"],
3997
+ class: Si["link-container"],
3947
3998
  onClick: t.onClick
3948
- }, [r(O, {
3949
- class: yi.icon,
3950
- d: n === 0 ? Ke : n === e.links.length - 1 ? Oe : Ve,
3999
+ }, [r(k, {
4000
+ class: Si.icon,
4001
+ d: n === 0 ? Ge : n === e.links.length - 1 ? De : Be,
3951
4002
  size: "1rem"
3952
- }, null), r("span", { class: yi.chunk }, [t.text])]), e.links.length !== n + 1 && r(O, {
3953
- class: yi.chevron,
3954
- d: Me,
4003
+ }, null), r("span", { class: Si.chunk }, [t.text])]), e.links.length !== n + 1 && r(k, {
4004
+ class: Si.chevron,
4005
+ d: je,
3955
4006
  size: "1rem"
3956
4007
  }, null)]))]);
3957
4008
  }
3958
- }), xi = {
4009
+ }), wi = {
3959
4010
  "elm-page-top": "_elm-page-top_18d6m_1",
3960
4011
  move: "_move_18d6m_1",
3961
4012
  visible: "_visible_18d6m_30",
3962
4013
  partial: "_partial_18d6m_37",
3963
4014
  text: "_text_18d6m_74"
3964
- }, Si = /* @__PURE__ */ i({
4015
+ }, Ti = /* @__PURE__ */ i({
3965
4016
  name: "ElmPageTop",
3966
4017
  props: { position: {
3967
4018
  type: String,
@@ -3981,7 +4032,7 @@ var _i = { "elm-toggle-theme": "_elm-toggle-theme_11awq_1" }, vi = /* @__PURE__
3981
4032
  });
3982
4033
  };
3983
4034
  return () => r("nav", {
3984
- class: b(xi["elm-page-top"], t.value && xi.visible),
4035
+ class: x(wi["elm-page-top"], t.value && wi.visible),
3985
4036
  style: {
3986
4037
  "--elmethis-scoped-size": "64px",
3987
4038
  left: e.position === "left" ? "0" : "auto",
@@ -3991,17 +4042,17 @@ var _i = { "elm-toggle-theme": "_elm-toggle-theme_11awq_1" }, vi = /* @__PURE__
3991
4042
  }, [
3992
4043
  r("div", {
3993
4044
  "aria-hidden": "true",
3994
- class: xi.partial
4045
+ class: wi.partial
3995
4046
  }, null),
3996
4047
  r("div", {
3997
4048
  "aria-hidden": "true",
3998
- class: xi.partial
4049
+ class: wi.partial
3999
4050
  }, null),
4000
4051
  r("div", {
4001
4052
  "aria-hidden": "true",
4002
- class: xi.partial
4053
+ class: wi.partial
4003
4054
  }, null),
4004
- r("span", { class: xi.text }, [n("Back to Top")])
4055
+ r("span", { class: wi.text }, [n("Back to Top")])
4005
4056
  ]);
4006
4057
  }
4007
4058
  }), q = {
@@ -4015,7 +4066,7 @@ var _i = { "elm-toggle-theme": "_elm-toggle-theme_11awq_1" }, vi = /* @__PURE__
4015
4066
  swatch: "_swatch_vuro0_52",
4016
4067
  "swatch-name": "_swatch-name_vuro0_55",
4017
4068
  "swatch-bg": "_swatch-bg_vuro0_60"
4018
- }, Ci = (e) => {
4069
+ }, Ei = (e) => {
4019
4070
  let t = e.match(/\d+(\.\d+)?/g);
4020
4071
  if (!t || t.length < 3) return null;
4021
4072
  let n = (e) => Math.round(Number(e)).toString(16).padStart(2, "0");
@@ -4024,7 +4075,7 @@ var _i = { "elm-toggle-theme": "_elm-toggle-theme_11awq_1" }, vi = /* @__PURE__
4024
4075
  100,
4025
4076
  500,
4026
4077
  900
4027
- ], wi = [
4078
+ ], Di = [
4028
4079
  100,
4029
4080
  200,
4030
4081
  300,
@@ -4034,7 +4085,7 @@ var _i = { "elm-toggle-theme": "_elm-toggle-theme_11awq_1" }, vi = /* @__PURE__
4034
4085
  700,
4035
4086
  800,
4036
4087
  900
4037
- ], Ti = [
4088
+ ], Oi = [
4038
4089
  {
4039
4090
  hue: "red",
4040
4091
  steps: J
@@ -4069,13 +4120,13 @@ var _i = { "elm-toggle-theme": "_elm-toggle-theme_11awq_1" }, vi = /* @__PURE__
4069
4120
  },
4070
4121
  {
4071
4122
  hue: "slate",
4072
- steps: wi
4123
+ steps: Di
4073
4124
  },
4074
4125
  {
4075
4126
  hue: "gold",
4076
- steps: wi
4127
+ steps: Di
4077
4128
  }
4078
- ], Ei = /* @__PURE__ */ i({
4129
+ ], ki = /* @__PURE__ */ i({
4079
4130
  name: "ElmColorPrimitiveSample",
4080
4131
  setup() {
4081
4132
  let e = m(null), t = m("variable"), i;
@@ -4089,7 +4140,7 @@ var _i = { "elm-toggle-theme": "_elm-toggle-theme_11awq_1" }, vi = /* @__PURE__
4089
4140
  if (t.value === "hex") {
4090
4141
  let e = r.closest("[data-theme]") ?? document.documentElement, t = document.createElement("span");
4091
4142
  t.style.color = `var(${a})`, t.style.display = "none", e.appendChild(t);
4092
- let n = Ci(window.getComputedStyle(t).color);
4143
+ let n = Ei(window.getComputedStyle(t).color);
4093
4144
  t.remove(), n && (o = n);
4094
4145
  }
4095
4146
  await window.navigator.clipboard.writeText(o), i !== void 0 && clearTimeout(i), e.value = a, i = setTimeout(() => {
@@ -4097,7 +4148,7 @@ var _i = { "elm-toggle-theme": "_elm-toggle-theme_11awq_1" }, vi = /* @__PURE__
4097
4148
  }, 1500);
4098
4149
  };
4099
4150
  return () => r("div", {
4100
- class: b(q["elm-color-primitive-sample"]),
4151
+ class: x(q["elm-color-primitive-sample"]),
4101
4152
  onClick: (e) => {
4102
4153
  a(e);
4103
4154
  }
@@ -4108,14 +4159,14 @@ var _i = { "elm-toggle-theme": "_elm-toggle-theme_11awq_1" }, vi = /* @__PURE__
4108
4159
  t.value = t.value === "variable" ? "hex" : "variable";
4109
4160
  }
4110
4161
  }, [
4111
- r(O, {
4162
+ r(k, {
4112
4163
  class: q["mode-toggle-icon"],
4113
- d: t.value === "hex" ? Ge : He,
4164
+ d: t.value === "hex" ? We : Ve,
4114
4165
  size: "1.25rem"
4115
4166
  }, null),
4116
4167
  n("Copy: "),
4117
4168
  t.value === "hex" ? "hex value" : "variable name"
4118
- ])]), Ti.map(({ hue: t, steps: n }) => r("div", {
4169
+ ])]), Oi.map(({ hue: t, steps: n }) => r("div", {
4119
4170
  key: t,
4120
4171
  class: q.group
4121
4172
  }, [r("span", { class: q["section-title"] }, [t]), r("div", { class: q.scale }, [n.map((n) => {
@@ -4151,16 +4202,16 @@ var _i = { "elm-toggle-theme": "_elm-toggle-theme_11awq_1" }, vi = /* @__PURE__
4151
4202
  "color-sample": "_color-sample_6i1j1_112",
4152
4203
  "color-sample-bg": "_color-sample-bg_6i1j1_121",
4153
4204
  "color-sample-name": "_color-sample-name_6i1j1_127"
4154
- }, Di = (e) => {
4205
+ }, Ai = (e) => {
4155
4206
  let t = e.match(/\d+(\.\d+)?/g);
4156
4207
  if (!t || t.length < 3) return null;
4157
4208
  let n = (e) => Math.round(Number(e)).toString(16).padStart(2, "0");
4158
4209
  return `#${n(t[0])}${n(t[1])}${n(t[2])}`;
4159
- }, Oi = [
4210
+ }, ji = [
4160
4211
  "--elmethis-color-surface-sunken",
4161
4212
  "--elmethis-color-surface-base",
4162
4213
  "--elmethis-color-surface-raised"
4163
- ], ki = [
4214
+ ], Mi = [
4164
4215
  "--elmethis-color-neutral-weak",
4165
4216
  "--elmethis-color-neutral",
4166
4217
  "--elmethis-color-neutral-strong",
@@ -4169,15 +4220,15 @@ var _i = { "elm-toggle-theme": "_elm-toggle-theme_11awq_1" }, vi = /* @__PURE__
4169
4220
  "--elmethis-color-primary-strong",
4170
4221
  "--elmethis-color-accent-link",
4171
4222
  "--elmethis-color-accent-link-visited"
4172
- ], Ai = [
4223
+ ], Ni = [
4173
4224
  "--elmethis-color-neutral-weak",
4174
4225
  "--elmethis-color-neutral",
4175
4226
  "--elmethis-color-neutral-strong"
4176
- ], ji = [
4227
+ ], Pi = [
4177
4228
  "--elmethis-color-primary-weak",
4178
4229
  "--elmethis-color-primary",
4179
4230
  "--elmethis-color-primary-strong"
4180
- ], Mi = [
4231
+ ], Fi = [
4181
4232
  {
4182
4233
  fg: "--elmethis-color-accent-info",
4183
4234
  surface: "--elmethis-color-accent-info-surface"
@@ -4198,7 +4249,7 @@ var _i = { "elm-toggle-theme": "_elm-toggle-theme_11awq_1" }, vi = /* @__PURE__
4198
4249
  fg: "--elmethis-color-accent-error",
4199
4250
  surface: "--elmethis-color-accent-error-surface"
4200
4251
  }
4201
- ], Ni = [
4252
+ ], Ii = [
4202
4253
  "red",
4203
4254
  "orange",
4204
4255
  "yellow",
@@ -4209,7 +4260,7 @@ var _i = { "elm-toggle-theme": "_elm-toggle-theme_11awq_1" }, vi = /* @__PURE__
4209
4260
  ].map((e) => ({
4210
4261
  fg: `--elmethis-color-display-${e}`,
4211
4262
  surface: `--elmethis-color-display-${e}-surface`
4212
- })), Pi = /* @__PURE__ */ i({
4263
+ })), Li = /* @__PURE__ */ i({
4213
4264
  name: "ElmColorSemanticSample",
4214
4265
  setup() {
4215
4266
  let e = m(null), t = m("variable"), i;
@@ -4223,7 +4274,7 @@ var _i = { "elm-toggle-theme": "_elm-toggle-theme_11awq_1" }, vi = /* @__PURE__
4223
4274
  if (t.value === "hex") {
4224
4275
  let e = r.closest("[data-theme]") ?? document.documentElement, t = document.createElement("span");
4225
4276
  t.style.color = `var(${a})`, t.style.display = "none", e.appendChild(t);
4226
- let n = Di(window.getComputedStyle(t).color);
4277
+ let n = Ai(window.getComputedStyle(t).color);
4227
4278
  t.remove(), n && (o = n);
4228
4279
  }
4229
4280
  await window.navigator.clipboard.writeText(o), i !== void 0 && clearTimeout(i), e.value = a, i = setTimeout(() => {
@@ -4247,19 +4298,19 @@ var _i = { "elm-toggle-theme": "_elm-toggle-theme_11awq_1" }, vi = /* @__PURE__
4247
4298
  class: Y.header,
4248
4299
  style: { backgroundColor: "var(--elmethis-color-surface-sunken)" }
4249
4300
  }, [r("span", { "data-copy-token": "--elmethis-color-surface-sunken" }, [o("--elmethis-color-surface-sunken")])]), r("div", { class: Y.body }, [
4250
- r("div", { class: Y.group }, [r("span", { class: Y["section-title"] }, [n("Surface")]), Oi.map((e) => r("div", {
4301
+ r("div", { class: Y.group }, [r("span", { class: Y["section-title"] }, [n("Surface")]), ji.map((e) => r("div", {
4251
4302
  key: e,
4252
4303
  class: Y.surface,
4253
4304
  style: { backgroundColor: `var(${e})` },
4254
4305
  "data-copy-token": e
4255
4306
  }, [o(e)]))]),
4256
- r("div", { class: Y.group }, [r("span", { class: Y["section-title"] }, [n("Foreground")]), ki.map((e) => r("span", {
4307
+ r("div", { class: Y.group }, [r("span", { class: Y["section-title"] }, [n("Foreground")]), Mi.map((e) => r("span", {
4257
4308
  key: e,
4258
4309
  class: Y.foreground,
4259
4310
  style: { color: `var(${e})` },
4260
4311
  "data-copy-token": e
4261
4312
  }, [o(e)]))]),
4262
- r("div", { class: Y.group }, [r("span", { class: Y["section-title"] }, [n("Accent")]), Mi.map(({ fg: e, surface: t }) => r("div", {
4313
+ r("div", { class: Y.group }, [r("span", { class: Y["section-title"] }, [n("Accent")]), Fi.map(({ fg: e, surface: t }) => r("div", {
4263
4314
  key: e,
4264
4315
  class: Y["accent-pair"],
4265
4316
  style: {
@@ -4267,9 +4318,9 @@ var _i = { "elm-toggle-theme": "_elm-toggle-theme_11awq_1" }, vi = /* @__PURE__
4267
4318
  backgroundColor: `var(${t})`
4268
4319
  }
4269
4320
  }, [r("span", { "data-copy-token": e }, [o(e)]), r("span", { "data-copy-token": t }, [o(t)])]))]),
4270
- r("div", { class: Y.group }, [r("span", { class: Y["section-title"] }, [n("Neutral")]), s(Ai)]),
4271
- r("div", { class: Y.group }, [r("span", { class: Y["section-title"] }, [n("Primary")]), s(ji)]),
4272
- r("div", { class: Y.group }, [r("span", { class: Y["section-title"] }, [n("Display")]), Ni.map(({ fg: e, surface: t }) => r("div", {
4321
+ r("div", { class: Y.group }, [r("span", { class: Y["section-title"] }, [n("Neutral")]), s(Ni)]),
4322
+ r("div", { class: Y.group }, [r("span", { class: Y["section-title"] }, [n("Primary")]), s(Pi)]),
4323
+ r("div", { class: Y.group }, [r("span", { class: Y["section-title"] }, [n("Display")]), Ii.map(({ fg: e, surface: t }) => r("div", {
4273
4324
  key: e,
4274
4325
  class: Y["accent-pair"],
4275
4326
  style: {
@@ -4278,16 +4329,16 @@ var _i = { "elm-toggle-theme": "_elm-toggle-theme_11awq_1" }, vi = /* @__PURE__
4278
4329
  }
4279
4330
  }, [r("span", { "data-copy-token": e }, [o(e)]), r("span", { "data-copy-token": t }, [o(t)])]))])
4280
4331
  ])])]);
4281
- return () => r("div", { class: b(Y["elm-color-semantic-sample"]) }, [r("div", { class: Y.toolbar }, [r("button", {
4332
+ return () => r("div", { class: x(Y["elm-color-semantic-sample"]) }, [r("div", { class: Y.toolbar }, [r("button", {
4282
4333
  type: "button",
4283
4334
  class: Y["mode-toggle"],
4284
4335
  onClick: () => {
4285
4336
  t.value = t.value === "variable" ? "hex" : "variable";
4286
4337
  }
4287
4338
  }, [
4288
- r(O, {
4339
+ r(k, {
4289
4340
  class: Y["mode-toggle-icon"],
4290
- d: t.value === "hex" ? Ge : He,
4341
+ d: t.value === "hex" ? We : Ve,
4291
4342
  size: "1.25rem"
4292
4343
  }, null),
4293
4344
  n("Copy: "),
@@ -4299,7 +4350,7 @@ var _i = { "elm-toggle-theme": "_elm-toggle-theme_11awq_1" }, vi = /* @__PURE__
4299
4350
  }
4300
4351
  }, [c("light"), c("dark")])]);
4301
4352
  }
4302
- }), Fi = { "elm-markdown": "_elm-markdown_1g767_1" };
4353
+ }), Ri = { "elm-markdown": "_elm-markdown_1g767_1" };
4303
4354
  //#endregion
4304
4355
  //#region src/components/others/elm-markdown.tsx
4305
4356
  function X(e) {
@@ -4313,40 +4364,40 @@ var Z = (e) => {
4313
4364
  case "blockquote":
4314
4365
  if (c.tokens && c.tokens.length !== 0) {
4315
4366
  let e;
4316
- o.push(r(pr, { key: s }, X(e = Z(c.tokens)) ? e : { default: () => [e] }));
4367
+ o.push(r(_r, { key: s }, X(e = Z(c.tokens)) ? e : { default: () => [e] }));
4317
4368
  }
4318
4369
  break;
4319
4370
  case "br":
4320
4371
  o.push(r("br", { key: s }, null));
4321
4372
  break;
4322
4373
  case "code":
4323
- o.push(r(Kn, {
4374
+ o.push(r(Gn, {
4324
4375
  key: s,
4325
4376
  code: c.text.trim(),
4326
4377
  language: c.lang
4327
4378
  }, null));
4328
4379
  break;
4329
4380
  case "codespan":
4330
- o.push(r(T, {
4381
+ o.push(r(E, {
4331
4382
  key: s,
4332
4383
  code: !0
4333
4384
  }, { default: () => [c.text] }));
4334
4385
  break;
4335
4386
  case "def": break;
4336
4387
  case "del":
4337
- o.push(c.tokens && c.tokens.length !== 0 ? r(T, {
4388
+ o.push(c.tokens && c.tokens.length !== 0 ? r(E, {
4338
4389
  key: s,
4339
4390
  strikethrough: !0
4340
- }, X(t = Z(c.tokens)) ? t : { default: () => [t] }) : r(T, {
4391
+ }, X(t = Z(c.tokens)) ? t : { default: () => [t] }) : r(E, {
4341
4392
  key: s,
4342
4393
  strikethrough: !0
4343
4394
  }, { default: () => [c.text] }));
4344
4395
  break;
4345
4396
  case "em":
4346
- o.push(c.tokens && c.tokens.length !== 0 ? r(T, {
4397
+ o.push(c.tokens && c.tokens.length !== 0 ? r(E, {
4347
4398
  key: s,
4348
4399
  italic: !0
4349
- }, X(n = Z(c.tokens)) ? n : { default: () => [n] }) : r(T, {
4400
+ }, X(n = Z(c.tokens)) ? n : { default: () => [n] }) : r(E, {
4350
4401
  key: s,
4351
4402
  italic: !0
4352
4403
  }, { default: () => [c.text] }));
@@ -4356,11 +4407,11 @@ var Z = (e) => {
4356
4407
  let e = c.depth;
4357
4408
  if (c.tokens && c.tokens.length !== 0) {
4358
4409
  let t;
4359
- o.push(r(sn, {
4410
+ o.push(r(on, {
4360
4411
  key: s,
4361
4412
  level: e
4362
4413
  }, X(t = Z(c.tokens)) ? t : { default: () => [t] }));
4363
- } else o.push(r(sn, {
4414
+ } else o.push(r(on, {
4364
4415
  key: s,
4365
4416
  level: e,
4366
4417
  text: c.text
@@ -4368,11 +4419,11 @@ var Z = (e) => {
4368
4419
  break;
4369
4420
  }
4370
4421
  case "hr":
4371
- o.push(r(br, { key: s }, null));
4422
+ o.push(r(wr, { key: s }, null));
4372
4423
  break;
4373
4424
  case "html": break;
4374
4425
  case "image":
4375
- o.push(r(or, {
4426
+ o.push(r(lr, {
4376
4427
  key: s,
4377
4428
  enableModal: !0,
4378
4429
  src: c.href,
@@ -4380,17 +4431,17 @@ var Z = (e) => {
4380
4431
  }, null));
4381
4432
  break;
4382
4433
  case "link":
4383
- o.push(c.tokens && c.tokens.length !== 0 ? r(T, {
4434
+ o.push(c.tokens && c.tokens.length !== 0 ? r(E, {
4384
4435
  key: s,
4385
4436
  href: c.href
4386
- }, X(i = Z(c.tokens)) ? i : { default: () => [i] }) : r(T, {
4437
+ }, X(i = Z(c.tokens)) ? i : { default: () => [i] }) : r(E, {
4387
4438
  key: s,
4388
4439
  href: c.href
4389
4440
  }, { default: () => [c.text] }));
4390
4441
  break;
4391
4442
  case "list": {
4392
4443
  let e = c.items.map((e, t) => r("li", { key: t }, [Z(e.tokens)]));
4393
- o.push(r(Sr, {
4444
+ o.push(r(Er, {
4394
4445
  key: s,
4395
4446
  listStyle: c.ordered ? "ordered" : "unordered"
4396
4447
  }, X(e) ? e : { default: () => [e] }));
@@ -4400,14 +4451,14 @@ var Z = (e) => {
4400
4451
  o.push(r("li", { key: s }, [c.tokens && c.tokens.length !== 0 ? Z(c.tokens) : c.text]));
4401
4452
  break;
4402
4453
  case "paragraph":
4403
- o.push(r(dn, { key: s }, { default: () => [c.tokens && c.tokens.length !== 0 ? Z(c.tokens) : c.text] }));
4454
+ o.push(r(un, { key: s }, { default: () => [c.tokens && c.tokens.length !== 0 ? Z(c.tokens) : c.text] }));
4404
4455
  break;
4405
4456
  case "space": break;
4406
4457
  case "strong":
4407
- o.push(c.tokens && c.tokens.length !== 0 ? r(T, {
4458
+ o.push(c.tokens && c.tokens.length !== 0 ? r(E, {
4408
4459
  key: s,
4409
4460
  bold: !0
4410
- }, X(a = Z(c.tokens)) ? a : { default: () => [a] }) : r(T, {
4461
+ }, X(a = Z(c.tokens)) ? a : { default: () => [a] }) : r(E, {
4411
4462
  key: s,
4412
4463
  bold: !0
4413
4464
  }, { default: () => [c.text] }));
@@ -4415,12 +4466,12 @@ var Z = (e) => {
4415
4466
  case "table": {
4416
4467
  let e, t = (e) => e.map((e, t) => {
4417
4468
  let n;
4418
- return r(Or, { key: t }, X(n = Z(e.tokens)) ? n : { default: () => [n] });
4419
- }), n = r(Mr, null, X(e = t(c.header)) ? e : { default: () => [e] }), i = c.rows.map((e, n) => {
4469
+ return r(Mr, { key: t }, X(n = Z(e.tokens)) ? n : { default: () => [n] });
4470
+ }), n = r(Ir, null, X(e = t(c.header)) ? e : { default: () => [e] }), i = c.rows.map((e, n) => {
4420
4471
  let i;
4421
- return r(Mr, { key: n }, X(i = t(e)) ? i : { default: () => [i] });
4472
+ return r(Ir, { key: n }, X(i = t(e)) ? i : { default: () => [i] });
4422
4473
  });
4423
- o.push(r(Tr, { key: s }, { default: () => [r(Ar, null, X(n) ? n : { default: () => [n] }), r(Er, null, X(i) ? i : { default: () => [i] })] }));
4474
+ o.push(r(kr, { key: s }, { default: () => [r(Pr, null, X(n) ? n : { default: () => [n] }), r(Ar, null, X(i) ? i : { default: () => [i] })] }));
4424
4475
  break;
4425
4476
  }
4426
4477
  case "text":
@@ -4430,7 +4481,7 @@ var Z = (e) => {
4430
4481
  }
4431
4482
  }
4432
4483
  return o;
4433
- }, Ii = /* @__PURE__ */ i({
4484
+ }, zi = /* @__PURE__ */ i({
4434
4485
  name: "ElmMarkdownStable",
4435
4486
  props: { tokens: {
4436
4487
  type: Array,
@@ -4439,7 +4490,7 @@ var Z = (e) => {
4439
4490
  setup(e) {
4440
4491
  return () => Z(e.tokens);
4441
4492
  }
4442
- }), Li = /* @__PURE__ */ i({
4493
+ }), Bi = /* @__PURE__ */ i({
4443
4494
  name: "ElmMarkdown",
4444
4495
  props: {
4445
4496
  markdown: {
@@ -4454,12 +4505,12 @@ var Z = (e) => {
4454
4505
  setup(e) {
4455
4506
  let t = h([]), n = h([]);
4456
4507
  return _(() => e.markdown, (r) => {
4457
- let i = qt.setOptions({ gfm: !0 }).lexer(r);
4508
+ let i = Kt.setOptions({ gfm: !0 }).lexer(r);
4458
4509
  if (e.isStreaming && i.length > 0) {
4459
4510
  let e = i.slice(0, -1);
4460
4511
  e.length !== t.value.length && (t.value = e), n.value = i.slice(-1);
4461
4512
  } else t.value = i, n.value = [];
4462
- }, { immediate: !0 }), () => r("div", { class: Fi["elm-markdown"] }, [r(Ii, { tokens: t.value }, null), Z(n.value)]);
4513
+ }, { immediate: !0 }), () => r("div", { class: Ri["elm-markdown"] }, [r(zi, { tokens: t.value }, null), Z(n.value)]);
4463
4514
  }
4464
4515
  }), Q = {
4465
4516
  "elm-wordle": "_elm-wordle_1llms_1",
@@ -4482,14 +4533,14 @@ var Z = (e) => {
4482
4533
  "reset-container": "_reset-container_1llms_156",
4483
4534
  hidden: "_hidden_1llms_159",
4484
4535
  "reset-button": "_reset-button_1llms_164"
4485
- }, Ri = /* @__PURE__ */ "which.there.their.about.would.these.other.words.could.write.first.water.after.where.right.think.three.years.place.sound.great.again.still.every.small.found.those.never.under.might.while.house.world.below.asked.going.large.until.along.shall.being.often.earth.began.since.study.night.light.above.paper.parts.young.story.point.times.heard.whole.white.given.means.music.miles.thing.today.later.using.money.lines.order.group.among.learn.known.space.table.early.trees.short.hands.state.black.shown.stood.front.voice.kinds.makes.comes.close.power.lived.vowel.taken.built.heart.ready.quite.class.bring.round.horse.shows.piece.green.stand.birds.start.river.tried.least.field.whose.girls.leave.added.color.third.hours.moved.plant.doing.names.forms.heavy.ideas.cried.check.floor.begin.woman.alone.plane.spell.watch.carry.wrote.clear.named.books.child.glass.human.takes.party.build.seems.blood.sides.seven.mouth.solve.north.value.death.maybe.happy.tells.gives.looks.shape.lives.steps.areas.sense.speak.force.ocean.speed.women.metal.south.grass.scale.cells.lower.sleep.wrong.pages.ships.needs.rocks.eight.major.level.total.ahead.reach.stars.store.sight.terms.catch.works.board.cover.songs.equal.stone.waves.guess.dance.spoke.break.cause.radio.weeks.lands.basic.liked.trade.fresh.final.fight.meant.drive.spent.local.waxes.knows.train.bread.homes.teeth.coast.thick.brown.clean.quiet.sugar.facts.steel.forth.rules.notes.units.peace.month.verbs.seeds.helps.sharp.visit.woods.chief.walls.cross.wings.grown.cases.foods.crops.fruit.stick.wants.stage.sheep.nouns.plain.drink.bones.apart.turns.moves.touch.angle.based.range.marks.tired.older.farms.spend.shoes.goods.chair.twice.cents.empty.alike.style.broke.pairs.count.enjoy.score.shore.roots.paint.heads.shook.serve.angry.crowd.wheel.quick.dress.share.alive.noise.solid.cloth.signs.hills.types.drawn.worth.truck.piano.upper.loved.usual.faces.drove.cabin.boats.towns.proud.court.model.prime.fifty.plans.yards.prove.tools.price.sheet.smell.boxes.raise.match.truth.roads.threw.enemy.lunch.chart.scene.graph.doubt.guide.winds.block.grain.smoke.mixed.games.wagon.sweet.topic.extra.plate.title.knife.fence.falls.cloud.wheat.plays.enter.broad.steam.atoms.press.lying.basis.clock.taste.grows.thank.storm.agree.brain.track.smile.funny.beach.stock.hurry.saved.sorry.giant.trail.offer.ought.rough.daily.avoid.keeps.throw.allow.cream.laugh.edges.teach.frame.bells.dream.magic.occur.ended.chord.false.skill.holes.dozen.brave.apple.climb.outer.pitch.ruler.holds.fixed.costs.calls.blank.staff.labor.eaten.youth.tones.honor.globe.gases.doors.poles.loose.apply.tears.exact.brush.chest.layer.whale.minor.faith.tests.judge.items.worry.waste.hoped.strip.begun.aside.lakes.bound.depth.candy.event.worse.aware.shell.rooms.ranch.image.snake.aloud.dried.likes.motor.pound.knees.refer.fully.chain.shirt.flour.drops.spite.orbit.banks.shoot.curve.tribe.tight.blind.slept.shade.claim.flies.theme.queen.fifth.union.hence.straw.entry.issue.birth.feels.anger.brief.rhyme.glory.guard.flows.flesh.owned.trick.yours.sizes.noted.width.burst.route.lungs.uncle.bears.royal.kings.forty.trial.cards.brass.opera.chose.owner.vapor.beats.mouse.tough.wires.meter.tower.finds.inner.stuck.arrow.poems.label.swing.solar.truly.tense.beans.split.rises.weigh.hotel.stems.pride.swung.grade.digit.badly.boots.pilot.sales.swept.lucky.prize.stove.tubes.acres.wound.steep.slide.trunk.error.porch.slave.exist.faced.mines.marry.juice.raced.waved.goose.trust.fewer.favor.mills.views.joint.eager.spots.blend.rings.adult.index.nails.horns.balls.flame.rates.drill.trace.skins.waxed.seats.stuff.ratio.minds.dirty.silly.coins.hello.trips.leads.rifle.hopes.bases.shine.bench.moral.fires.meals.shake.shops.cycle.movie.slope.canoe.teams.folks.fired.bands.thumb.shout.canal.habit.reply.ruled.fever.crust.shelf.walks.midst.crack.print.tales.coach.stiff.flood.verse.awake.rocky.march.fault.swift.faint.civil.ghost.feast.blade.limit.germs.reads.ducks.dairy.worst.gifts.lists.stops.rapid.brick.claws.beads.beast.skirt.cakes.lions.frogs.tries.nerve.grand.armed.treat.honey.moist.legal.penny.crown.shock.taxes.sixty.altar.pulls.sport.drums.talks.dying.dates.drank.blows.lever.wages.proof.drugs.tanks.sings.tails.pause.herds.arose.hated.clues.novel.shame.burnt.races.flash.weary.heels.token.coats.spare.shiny.alarm.dimes.sixth.clerk.mercy.sunny.guest.float.shone.pipes.worms.bills.sweat.suits.smart.upset.rains.sandy.rainy.parks.sadly.fancy.rider.unity.bunch.rolls.crash.craft.newly.gates.hatch.paths.funds.wider.grace.grave.tides.admit.shift.sails.pupil.tiger.angel.cruel.agent.drama.urged.patch.nests.vital.sword.blame.weeds.screw.vocal.bacon.chalk.cargo.crazy.acted.goats.arise.witch.loves.queer.dwell.backs.ropes.shots.merry.phone.cheek.peaks.ideal.beard.eagle.creek.cries.ashes.stall.yield.mayor.opens.input.fleet.tooth.cubic.wives.burns.poets.apron.spear.organ.cliff.stamp.paste.rural.baked.chase.slice.slant.knock.noisy.sorts.stays.wiped.blown.piled.clubs.cheer.widow.twist.tenth.hides.comma.sweep.spoon.stern.crept.maple.deeds.rides.muddy.crime.jelly.ridge.drift.dusty.devil.tempo.humor.sends.steal.tents.waist.roses.reign.noble.cheap.dense.linen.geese.woven.posts.hired.wrath.salad.bowed.tires.shark.belts.grasp.blast.polar.fungi.tends.pearl.loads.jokes.veins.frost.hears.loses.hosts.diver.phase.toads.alert.tasks.seams.coral.focus.naked.puppy.jumps.spoil.quart.macro.fears.flung.spark.vivid.brook.steer.spray.decay.ports.socks.urban.goals.grant.minus.films.tunes.shaft.firms.skies.bride.wreck.flock.stare.hobby.bonds.dared.faded.thief.crude.pants.flute.votes.tonal.radar.wells.skull.hairs.argue.wears.dolls.voted.caves.cared.broom.scent.panel.fairy.olive.bends.prism.lamps.cable.peach.ruins.rally.schwa.lambs.sells.cools.draft.charm.limbs.brake.gazed.cubes.delay.beams.fetch.ranks.array.harsh.camel.vines.picks.naval.purse.rigid.crawl.toast.soils.sauce.basin.ponds.twins.wrist.fluid.pools.brand.stalk.robot.reeds.hoofs.buses.sheer.grief.bloom.dwelt.melts.risen.flags.knelt.fiber.roofs.freed.armor.piles.aimed.algae.twigs.lemon.ditch.drunk.rests.chill.slain.panic.cords.tuned.crisp.ledge.dived.swamp.clung.stole.molds.yarns.liver.gauge.breed.stool.gulls.awoke.gross.diary.rails.belly.trend.flask.stake.fried.draws.actor.handy.bowls.haste.scope.deals.knots.moons.essay.thump.hangs.bliss.dealt.gains.bombs.clown.palms.cones.roast.tidal.bored.chant.acids.dough.camps.swore.lover.hooks.males.cocoa.punch.award.reins.ninth.noses.links.drain.fills.nylon.lunar.pulse.flown.elbow.fatal.sites.moths.meats.foxes.mined.attic.fiery.mount.usage.swear.snowy.rusty.scare.traps.relax.react.valid.robin.cease.gills.prior.safer.polio.loyal.swell.salty.marsh.vague.weave.mound.seals.mules.virus.scout.acute.windy.stout.folds.seize.hilly.joins.pluck.stack.lords.dunes.burro.hawks.trout.feeds.scarf.halls.coals.towel.souls.elect.buggy.pumps.loans.spins.files.oxide.pains.photo.rival.flats.syrup.rodeo.sands.moose.pints.curly.comic.cloak.onion.clams.scrap.didst.couch.codes.fails.ounce.lodge.greet.gypsy.utter.paved.zones.fours.alley.tiles.bless.crest.elder.kills.yeast.erect.bugle.medal.roles.hound.snail.alter.ankle.relay.loops.zeros.bites.modes.debts.realm.glove.rayon.swims.poked.stray.lifts.maker.lumps.graze.dread.barns.docks.masts.pours.wharf.curse.plump.robes.seeks.cedar.curls.jolly.myths.cages.gloom.locks.pedal.beets.crows.anode.slash.creep.rowed.chips.fists.wines.cares.valve.newer.motel.ivory.necks.clamp.barge.blues.alien.frown.strap.crews.shack.gonna.saves.stump.ferry.idols.cooks.juicy.glare.carts.alloy.bulbs.lawns.lasts.fuels.oddly.crane.filed.weird.shawl.slips.troop.bolts.suite.sleek.quilt.tramp.blaze.atlas.odors.scrub.crabs.probe.logic.adobe.exile.rebel.grind.sting.spine.cling.desks.grove.leaps.prose.lofty.agony.snare.tusks.bulls.moods.humid.finer.dimly.plank.china.pines.guilt.sacks.brace.quote.lathe.gaily.fonts.scalp.adopt.foggy.ferns.grams.clump.perch.tumor.teens.crank.fable.hedge.genes.sober.boast.tract.cigar.unite.owing.thigh.haiku.swish.dikes.wedge.booth.eased.frail.cough.tombs.darts.forts.choir.pouch.pinch.hairy.buyer.torch.vigor.waltz.heats.herbs.users.flint.click.madam.bleak.blunt.aided.lacks.masks.waded.risks.nurse.chaos.sewed.cured.ample.lease.steak.sinks.merit.bluff.bathe.gleam.bonus.colts.shear.gland.silky.skate.birch.anvil.sleds.groan.maids.meets.speck.hymns.hints.drown.bosom.slick.quest.coils.spied.snows.stead.snack.plows.blond.tamed.thorn.waits.glued.banjo.tease.arena.bulky.carve.stunt.warms.shady.razor.folly.leafy.notch.fools.otter.pears.flush.genus.ached.fives.flaps.spout.smote.fumes.adapt.cuffs.tasty.stoop.clips.disks.sniff.lanes.brisk.imply.demon.super.furry.raged.growl.texts.hardy.stung.typed.hates.wiser.timid.serum.beaks.rotor.casts.baths.glide.plots.trait.resin.slums.lyric.puffs.decks.brood.mourn.aloft.abuse.whirl.edged.ovary.quack.heaps.slang.await.civic.saint.bevel.sonar.aunts.packs.froze.tonic.corps.swarm.frank.repay.gaunt.wired.niece.cello.needy.chuck.stony.media.surge.hurts.repel.husky.dated.hunts.mists.exert.dries.mates.sworn.baker.spice.oasis.boils.spurs.doves.sneak.paces.colon.siege.strum.drier.cacao.humus.bales.piped.nasty.rinse.boxer.shrub.amuse.tacks.cited.slung.delta.laden.larva.rents.yells.spool.spill.crush.jewel.snaps.stain.kicks.tying.slits.rated.eerie.smash.plums.zebra.earns.bushy.scary.squad.tutor.silks.slabs.bumps.evils.fangs.snout.peril.pivot.yacht.lobby.jeans.grins.viola.liner.comet.scars.chops.raids.eater.slate.skips.soles.misty.urine.knobs.sleet.holly.pests.forks.grill.trays.pails.borne.tenor.wares.carol.woody.canon.wakes.kitty.miner.polls.shaky.nasal.scorn.chess.taxis.crate.shyly.tulip.forge.nymph.budge.lowly.abide.depot.oases.asses.sheds.fudge.pills.rivet.thine.groom.lanky.boost.broth.heave.gravy.beech.timed.quail.inert.gears.chick.hinge.trash.clash.sighs.renew.bough.dwarf.slows.quill.shave.spore.sixes.chunk.madly.paced.braid.fuzzy.motto.spies.slack.mucus.magma.awful.discs.erase.posed.asset.cider.taper.theft.churn.satin.slots.taxed.bully.sloth.shale.tread.raked.curds.manor.aisle.bulge.loins.stair.tapes.leans.bunks.squat.towed.lance.panes.sakes.heirs.caste.dummy.pores.fauna.crook.poise.epoch.risky.warns.fling.berry.grape.flank.drags.squid.pelts.icing.irony.irons.barks.whoop.choke.diets.whips.tally.dozed.twine.kites.bikes.ticks.riots.roars.vault.looms.scold.blink.dandy.pupae.sieve.spike.ducts.lends.pizza.brink.widen.plumb.pagan.feats.bison.soggy.scoop.argon.nudge.skiff.amber.sexes.rouse.salts.hitch.exalt.leash.dined.chute.snort.gusts.melon.cheat.reefs.llama.lasso.debut.quota.oaths.prone.mixes.rafts.dives.stale.inlet.flick.pinto.brows.untie.batch.greed.chore.stirs.blush.onset.barbs.volts.beige.swoop.paddy.laced.shove.jerky.poppy.leaks.fares.dodge.godly.squaw.affix.brute.nicer.undue.snarl.merge.doses.showy.daddy.roost.vases.swirl.petty.colds.curry.cobra.genie.flare.messy.cores.soaks.ripen.whine.amino.plaid.spiny.mowed.baton.peers.vowed.pious.swans.exits.afoot.plugs.idiom.chili.rites.serfs.cleft.berth.grubs.annex.dizzy.hasty.latch.wasps.mirth.baron.plead.aloof.aging.pixel.bared.mummy.hotly.auger.buddy.chaps.badge.stark.fairs.gully.mumps.emery.filly.ovens.drone.gauze.idiot.fussy.annoy.shank.gouge.bleed.elves.roped.unfit.baggy.mower.scant.grabs.fleas.lousy.album.sawed.cooky.murky.infer.burly.waged.dingy.brine.kneel.creak.vanes.smoky.spurt.combs.easel.laces.humps.rumor.aroma.horde.swiss.leapt.opium.slime.afire.pansy.mares.soaps.husks.snips.hazel.lined.cafes.naive.wraps.sized.piers.beset.agile.tongs.steed.fraud.booty.valor.downy.witty.mossy.psalm.scuba.tours.polka.milky.gaudy.shrug.tufts.wilds.laser.truss.hares.creed.lilac.siren.tarry.bribe.swine.muted.flips.cures.sinew.boxed.hoops.gasps.hoods.niche.yucca.glows.sewer.whack.fuses.gowns.droop.bucks.pangs.mails.whisk.haven.clasp.sling.stint.urges.champ.piety.chirp.pleat.posse.sunup.menus.howls.quake.knack.plaza.fiend.caked.bangs.erupt.poker.olden.cramp.voter.poses.manly.slump.fined.grips.gaped.purge.hiked.maize.fluff.strut.sloop.prowl.roach.cocks.bland.dials.plume.slaps.soups.dully.wills.foams.solos.skier.eaves.totem.fused.latex.veils.mused.mains.myrrh.racks.galls.gnats.bouts.sisal.shuts.hoses.dryly.hover.gloss.seeps.denim.putty.guppy.leaky.dusky.filth.oboes.spans.fowls.adorn.glaze.haunt.dares.obeys.bakes.abyss.smelt.gangs.aches.trawl.claps.undid.spicy.hoist.fades.vicar.acorn.pussy.gruff.musty.tarts.snuff.hunch.truce.tweed.dryer.loser.sheaf.moles.lapse.tawny.vexed.autos.wager.domes.sheen.clang.spade.sowed.broil.slyly.studs.grunt.donor.slugs.aspen.homer.croak.tithe.halts.avert.havoc.hogan.glint.ruddy.jeeps.flaky.ladle.taunt.snore.fines.props.prune.pesos.radii.pokes.tiled.daisy.heron.villa.farce.binds.cites.fixes.jerks.livid.waked.inked.booms.chews.licks.hyena.scoff.lusty.sonic.smith.usher.tucks.vigil.molts.sects.spars.dumps.scaly.wisps.sores.mince.panda.flier.axles.plied.booby.patio.rabbi.petal.polyp.tints.grate.troll.tolls.relic.phony.bleat.flaws.flake.snags.aptly.drawl.ulcer.soapy.bossy.monks.crags.caged.twang.diner.taped.cadet.grids.spawn.guile.noose.mores.girth.slimy.aides.spasm.burrs.alibi.lymph.saucy.muggy.liter.joked.goofy.exams.enact.stork.lured.toxic.omens.nears.covet.wrung.forum.venom.moody.alder.sassy.flair.guild.prays.wrens.hauls.stave.tilts.pecks.stomp.gales.tempt.capes.mesas.omits.tepee.harry.wring.evoke.limes.cluck.lunge.highs.canes.giddy.lithe.verge.khaki.queue.loath.foyer.outdo.fared.deter.crumb.astir.spire.jumpy.extol.buoys.stubs.lucid.thong.afore.whiff.maxim.hulls.clogs.slats.jiffy.arbor.cinch.igloo.goody.gazes.dowel.calms.bitch.scowl.gulps.coded.waver.mason.lobes.ebony.flail.isles.clods.dazed.adept.oozed.sedan.clays.warts.ketch.skunk.manes.adore.sneer.mango.fiord.flora.roomy.minks.thaws.watts.freer.exult.plush.paled.twain.clink.scamp.pawed.grope.bravo.gable.stink.sever.waned.rarer.regal.wards.fawns.babes.unify.amend.oaken.glade.visor.hefty.nines.throb.pecan.butts.pence.sills.jails.flyer.saber.nomad.miter.beeps.domed.gulfs.curbs.heath.moors.aorta.larks.tangy.wryly.cheep.rages.evade.lures.freak.vogue.tunic.slams.knits.dumpy.mania.spits.firth.hikes.trots.nosed.clank.dogma.bloat.balsa.graft.middy.stile.keyed.finch.sperm.chaff.wiles.amigo.copra.amiss.eying.twirl.lurch.popes.chins.smock.tines.guise.grits.junks.shoal.cache.tapir.atoll.deity.toils.spree.mocks.scans.shorn.revel.raven.hoary.reels.scuff.mimic.weedy.corny.truer.rouge.ember.floes.torso.wipes.edict.sulky.recur.groin.baste.kinks.surer.piggy.moldy.franc.liars.inept.gusty.facet.jetty.equip.leper.slink.soars.cater.dowry.sided.yearn.decoy.taboo.ovals.heals.pleas.beret.spilt.gayly.rover.endow.pygmy.carat.abbey.vents.waken.chimp.fumed.sodas.vinyl.clout.wades.mites.smirk.bores.bunny.surly.frock.foray.purer.milks.query.mired.blare.froth.gruel.navel.paler.puffy.casks.grime.derby.mamma.gavel.teddy.vomit.moans.allot.defer.wield.viper.louse.erred.hewed.abhor.wrest.waxen.adage.ardor.stabs.pored.rondo.loped.fishy.bible.hires.foals.feuds.jambs.thuds.jeers.knead.quirk.rugby.expel.greys.rigor.ester.lyres.aback.glues.lotus.lurid.rungs.hutch.thyme.valet.tommy.yokes.epics.trill.pikes.ozone.caper.chime.frees.famed.leech.smite.neigh.erode.robed.hoard.salve.conic.gawky.craze.jacks.gloat.mushy.rumps.fetus.wince.pinks.shalt.toots.glens.cooed.rusts.stews.shred.parka.chugs.winks.clots.shrew.booed.filmy.juror.dents.gummy.grays.hooky.butte.dogie.poled.reams.fifes.spank.gayer.tepid.spook.taint.flirt.rogue.spiky.opals.miser.cocky.coyly.balmy.slosh.brawl.aphid.faked.hydra.brags.chide.yanks.allay.video.altos.eases.meted.chasm.longs.excel.taffy.impel.savor.koala.quays.dawns.proxy.clove.duets.dregs.tardy.briar.grimy.ultra.meaty.halve.wails.suede.mauve.envoy.arson.coves.gooey.brews.sofas.chums.amaze.zooms.abbot.halos.scour.suing.cribs.sagas.enema.wordy.harps.coupe.molar.flops.weeps.mints.ashen.felts.askew.munch.mewed.divan.vices.jumbo.blobs.blots.spunk.acrid.topaz.cubed.clans.flees.slurs.gnaws.welds.fords.emits.agate.pumas.mends.darks.dukes.plies.canny.hoots.oozes.lamed.fouls.clefs.nicks.mated.skims.brunt.tuber.tinge.fates.ditty.thins.frets.eider.bayou.mulch.fasts.amass.damps.morns.friar.palsy.vista.croon.conch.udder.tacos.skits.mikes.quits.preen.aster.adder.elegy.pulpy.scows.baled.hovel.lavas.crave.optic.welts.busts.knave.razed.shins.totes.scoot.dears.crock.mutes.trims.skein.doted.shuns.veers.fakes.yoked.wooed.hacks.sprig.wands.lulls.seers.snobs.nooks.pined.perky.mooed.frill.dines.booze.tripe.prong.drips.odder.levee.antic.sidle.pithy.corks.yelps.joker.fleck.buffs.scram.tiers.bogey.doled.irate.vales.coped.hails.elude.bulks.aired.vying.stags.strew.cocci.pacts.scabs.silos.dusts.yodel.terse.jaded.baser.jibes.foils.sways.forgo.slays.preys.treks.quell.peeks.assay.lurks.eject.boars.trite.belch.gnash.wanes.lutes.whims.dosed.chewy.snipe.umbra.teems.dozes.kelps.upped.brawn.doped.shush.rinds.slush.moron.voile.woken.fjord.sheik.jests.kayak.slews.toted.saner.drape.patty.raves.sulfa.grist.skied.vixen.civet.vouch.tiara.homey.moped.runts.serge.kinky.rills.corns.brats.pries.amble.fries.loons.tsars.datum.musky.pigmy.gnome.ravel.ovule.icily.liken.lemur.frays.silts.sifts.plods.ramps.tress.earls.dudes.waive.karat.jolts.peons.beers.horny.pales.wreak.lairs.lynch.stank.swoon.idler.abort.blitz.ensue.atone.bingo.roves.kilts.scald.adios.cynic.dulls.memos.elfin.dales.peels.peals.bares.sinus.crone.sable.hinds.shirk.enrol.wilts.roams.duped.cysts.mitts.safes.spats.coops.filet.knell.refit.covey.punks.kilns.fitly.abate.talcs.heeds.duels.wanly.ruffs.gauss.lapel.jaunt.whelp.cleat.gauzy.dirge.edits.wormy.moats.smear.prods.bowel.frisk.vests.bayed.rasps.tames.delve.embed.befit.wafer.ceded.novas.feign.spews.larch.huffs.doles.mamas.hulks.pried.brims.irked.aspic.swipe.mealy.skimp.bluer.slake.dowdy.penis.brays.pupas.egret.flunk.phlox.gripe.peony.douse.blurs.darns.slunk.lefts.chats.inane.vials.stilt.rinks.woofs.wowed.bongs.frond.ingot.evict.singe.shyer.flied.slops.dolts.drool.dells.whelk.hippy.feted.ether.cocos.hives.jibed.mazes.trios.sirup.squab.laths.leers.pasta.rifts.lopes.alias.whirs.diced.slags.lodes.foxed.idled.prows.plait.malts.chafe.cower.toyed.chefs.keels.sties.racer.etude.sucks.sulks.micas.czars.copse.ailed.abler.rabid.golds.croup.snaky.visas.palls.mopes.boned.wispy.raved.swaps.junky.doily.pawns.tamer.poach.baits.damns.gumbo.daunt.prank.hunks.buxom.heres.honks.stows.unbar.idles.routs.sages.goads.remit.copes.deign.culls.girds.haves.lucks.stunk.dodos.shams.snubs.icons.usurp.dooms.hells.soled.comas.paves.maths.perks.limps.wombs.blurb.daubs.cokes.sours.stuns.cased.musts.coeds.cowed.aping.zoned.rummy.fetes.skulk.quaff.rajah.deans.reaps.galas.tills.roved.kudos.toned.pared.scull.vexes.punts.snoop.bails.dames.hazes.lores.marts.voids.ameba.rakes.adzes.harms.rears.satyr.swill.hexes.colic.leeks.hurls.yowls.ivies.plops.musks.papaw.jells.bused.cruet.bided.filch.zests.rooks.laxly.rends.loams.basks.sires.carps.pokey.flits.muses.bawls.shuck.viler.lisps.peeps.sorer.lolls.prude.diked.floss.flogs.scums.dopes.bogie.pinky.leafs.tubas.scads.lowed.yeses.biked.qualm.evens.caned.gawks.whits.wooly.gluts.romps.bests.dunce.crony.joist.tunas.boner.malls.parch.avers.crams.pares.dally.bigot.kales.flays.leach.gushy.pooch.huger.slyer.golfs.mires.flues.loafs.arced.acnes.neons.fiefs.dints.dazes.pouts.cored.yules.lilts.beefs.mutts.fells.cowls.spuds.lames.jawed.dupes.deads.bylaw.noons.nifty.clued.vireo.gapes.metes.cuter.maims.droll.cupid.mauls.sedge.papas.wheys.eking.loots.hilts.meows.beaus.dices.peppy.riper.fogey.gists.yogas.gilts.skews.cedes.zeals.alums.okays.elope.grump.wafts.soots.blimp.hefts.mulls.hosed.cress.doffs.ruder.pixie.waifs.ousts.pucks.biers.gulch.suets.hobos.lints.brans.teals.garbs.pewee.helms.turfs.quips.wends.banes.napes.icier.swats.bagel.hexed.ogres.goner.gilds.pyres.lards.bides.paged.talon.flout.medic.veals.putts.dirks.dotes.tippy.blurt.piths.acing.barer.whets.gaits.wools.dunks.heros.swabs.dirts.jutes.hemps.surfs.okapi.chows.shoos.dusks.parry.decal.furls.cilia.sears.novae.murks.warps.slues.lamer.saris.weans.purrs.dills.togas.newts.meany.bunts.razes.goons.wicks.ruses.vends.geode.drake.judos.lofts.pulps.lauds.mucks.vises.mocha.oiled.roman.ethyl.gotta.fugue.smack.gourd.bumpy.radix.fatty.borax.cubit.cacti.gamma.focal.avail.papal.golly.elite.versa.billy.adieu.annum.howdy.rhino.norms.bobby.axiom.setup.yolks.terns.mixer.genre.knoll.abode.junta.gorge.combo.alpha.overt.kinda.spelt.prick.nobly.ephod.audio.modal.veldt.warty.fluke.bonny.bream.rosin.bolls.doers.downs.beady.motif.humph.fella.mould.crepe.kerns.aloha.glyph.azure.riser.blest.locus.lumpy.beryl.wanna.brier.tuner.rowdy.mural.timer.canst.krill.quoth.lemme.triad.tenon.amply.deeps.padre.leant.pacer.octal.dolly.trans.sumac.foamy.lolly.giver.quipu.codex.manna.unwed.vodka.ferny.salon.duple.boron.revue.crier.alack.inter.dilly.whist.cults.spake.reset.loess.decor.mover.verve.ethic.gamut.lingo.dunno.align.sissy.incur.reedy.avant.piper.waxer.calyx.basil.coons.seine.piney.lemma.trams.winch.whirr.saith.ionic.heady.harem.tummy.sally.shied.dross.farad.saver.tilde.jingo.bower.serif.facto.belle.inset.bogus.caved.forte.sooty.bongo.toves.credo.basal.yella.aglow.glean.gusto.hymen.ethos.terra.brash.scrip.swash.aleph.tinny.itchy.wanta.trice.jowls.gongs.garde.boric.twill.sower.henry.awash.libel.spurn.sabre.rebut.penal.obese.sonny.quirt.mebbe.tacit.greek.xenon.hullo.pique.roger.negro.hadst.gecko.beget.uncut.aloes.louis.quint.clunk.raped.salvo.diode.matey.hertz.xylem.kiosk.apace.cawed.peter.wench.cohos.sorta.gamba.bytes.tango.nutty.axial.aleck.natal.clomp.gored.siree.bandy.gunny.runic.whizz.rupee.fated.wiper.bards.briny.staid.hocks.ochre.yummy.gents.soupy.roper.swath.cameo.edger.spate.gimme.ebbed.breve.theta.deems.dykes.servo.telly.tabby.tares.blocs.welch.ghoul.vitae.cumin.dinky.bronc.tabor.teeny.comer.borer.sired.privy.mammy.deary.gyros.sprit.conga.quire.thugs.furor.bloke.runes.bawdy.cadre.toxin.annul.egged.anion.nodes.picky.stein.jello.audit.echos.fagot.letup.eyrie.fount.caped.axons.amuck.banal.riled.petit.umber.miler.fibre.agave.bated.bilge.vitro.feint.pudgy.mater.manic.umped.pesky.strep.slurp.pylon.puree.caret.temps.newel.yawns.seedy.treed.coups.rangy.brads.mangy.loner.circa.tibia.afoul.mommy.titer.carne.kooky.motes.amity.suave.hippo.curvy.samba.newsy.anise.imams.tulle.aways.liven.hallo.wales.opted.canto.idyll.bodes.curio.wrack.hiker.chive.yokel.dotty.demur.cusps.specs.quads.laity.toner.decry.writs.saute.clack.aught.logos.tipsy.natty.ducal.bidet.bulgy.metre.lusts.unary.goeth.baler.sited.shies.hasps.brung.holed.swank.looky.melee.huffy.loamy.pimps.titan.binge.shunt.femur.libra.seder.honed.annas.coypu.shims.zowie.jihad.savvy.nadir.basso.monic.maned.mousy.omega.laver.prima.picas.folio.mecca.reals.troth.testy.balky.crimp.chink.abets.splat.abaci.vaunt.cutie.pasty.moray.levis.ratty.islet.joust.motet.viral.nukes.grads.comfy.voila.woozy.blued.whomp.sward.metro.skeet.chine.aerie.bowie.tubby.emirs.coati.unzip.slobs.trike.funky.ducat.dewey.skoal.wadis.oomph.taker.minim.getup.stoic.synod.runty.flyby.braze.inlay.venue.louts.peaty.orlon.humpy.radon.beaut.raspy.unfed.crick.nappy.vizor.yipes.rebus.divot.kiwis.vetch.squib.sitar.kiddo.dyers.cotta.matzo.lager.zebus.crass.dacha.kneed.dicta.fakir.knurl.runny.unpin.julep.globs.nudes.sushi.tacky.stoke.kaput.butch.hulas.croft.achoo.genii.nodal.outgo.spiel.viols.fetid.cagey.fudgy.epoxy.leggy.hanky.lapis.felon.beefy.coots.melba.caddy.segue.betel.frizz.drear.kooks.turbo.hoagy.moult.helix.zonal.arias.nosey.paean.lacey.banns.swain.fryer.retch.tenet.gigas.whiny.ogled.rumen.begot.cruse.abuts.riven.balks.sines.sigma.abase.ennui.gores.unset.augur.sated.odium.latin.dings.moire.scion.henna.kraut.dicks.lifer.prigs.bebop.gages.gazer.fanny.gibes.aural.tempi.hooch.rapes.snuck.harts.techs.emend.ninny.guava.scarp.liege.tufty.sepia.tomes.carob.emcee.prams.poser.verso.hubba.joule.baize.blips.scrim.cubby.clave.winos.rearm.liens.lumen.chump.nanny.trump.fichu.chomp.homos.purty.maser.woosh.patsy.shill.rusks.avast.swami.boded.ahhhh.lobed.natch.shish.tansy.snoot.payer.altho.sappy.laxer.hubby.aegis.riles.ditto.jazzy.dingo.quasi.septa.peaky.lorry.heerd.bitty.payee.seamy.apses.imbue.belie.chary.spoof.phyla.clime.babel.wacky.sumps.skids.khans.crypt.inure.nonce.outen.faire.hooey.anole.kazoo.calve.limbo.argot.ducky.faker.vibes.gassy.unlit.nervy.femme.biter.fiche.boors.gaffe.saxes.recap.synch.facie.dicey.ouija.hewer.legit.gurus.edify.tweak.caron.typos.rerun.polly.surds.hamza.nulls.hater.lefty.mogul.mafia.debug.pates.blabs.splay.talus.porno.moola.nixed.kilos.snide.horsy.gesso.jaggy.trove.nixes.creel.pater.iotas.cadge.skyed.hokum.furze.ankhs.curie.nutsy.hilum.remix.angst.burls.jimmy.veiny.tryst.codon.befog.gamed.flume.axman.doozy.lubes.rheas.bozos.butyl.kelly.mynah.jocks.donut.avian.wurst.chock.quash.quals.hayed.bombe.cushy.spacy.puked.leery.thews.prink.amens.tesla.intro.fiver.frump.capos.opine.coder.namer.jowly.pukes.haled.chard.duffs.bruin.reuse.whang.toons.frats.silty.telex.cutup.nisei.neato.decaf.softy.bimbo.adlib.loony.shoed.agues.peeve.noway.gamey.sarge.reran.epact.potty.coned.upend.narco.ikats.whorl.jinks.tizzy.weepy.posit.marge.vegan.clops.numbs.reeks.rubes.rower.biped.tiffs.hocus.hammy.bunco.fixit.tykes.chaws.yucky.hokey.resew.maven.adman.scuzz.slogs.souse.nacho.mimed.melds.boffo.debit.pinup.vagus.gulag.randy.bosun.educe.faxes.auras.pesto.antsy.betas.fizzy.dorky.snits.moxie.thane.mylar.nobby.gamin.gouty.esses.goyim.paned.druid.jades.rehab.gofer.tzars.octet.homed.socko.dorks.eared.anted.elide.fazes.oxbow.dowse.situs.macaw.scone.drily.hyper.salsa.mooch.gated.unjam.lipid.mitre.venal.knish.ritzy.divas.torus.mange.dimer.recut.meson.wined.fends.phage.fiats.caulk.cavil.panty.roans.bilks.hones.botch.estop.sully.sooth.gelds.ahold.raper.pager.fixer.infix.hicks.tuxes.plebe.twits.abash.twixt.wacko.primp.nabla.girts.miffs.emote.xerox.rebid.shahs.rutty.grout.grift.deify.biddy.kopek.semis.bries.acmes.piton.hussy.torts.disco.whore.boozy.gibed.vamps.amour.soppy.gonzo.durst.wader.tutus.perms.catty.glitz.brigs.nerds.barmy.gizmo.owlet.sayer.molls.shard.whops.comps.corer.colas.matte.droid.ploys.vapid.cairn.deism.mixup.yikes.prosy.raker.flubs.whish.reify.craps.shags.clone.hazed.macho.recto.refix.drams.biker.aquas.porky.doyen.exude.goofs.divvy.noels.jived.hulky.cager.harpy.oldie.vivas.admix.codas.zilch.deist.orcas.retro.pilaf.parse.rants.zingy.toddy.chiff.micro.veeps.girly.nexus.demos.bibbs.antes.lulus.gnarl.zippy.ivied.epees.wimps.tromp.grail.yoyos.poufs.hales.roust.cabal.rawer.pampa.mosey.kefir.burgs.unmet.cuspy.boobs.boons.hypes.dynes.nards.lanai.yogis.sepal.quark.toked.prate.ayins.hawed.swigs.vitas.toker.doper.bossa.linty.foist.mondo.stash.kayos.twerp.zesty.capon.wimpy.rewed.fungo.tarot.frosh.kabob.pinko.redid.mimeo.heist.tarps.lamas.sutra.dinar.whams.busty.spays.mambo.nabob.preps.odour.cabby.conks.sluff.dados.houri.swart.balms.gutsy.faxed.egads.pushy.retry.agora.drubs.daffy.chits.mufti.karma.lotto.toffs.burps.deuce.zings.kappa.clads.doggy.duper.scams.ogler.mimes.throe.zetas.waled.promo.blats.muffs.oinks.viand.coset.finks.faddy.minis.snafu.sauna.usury.muxes.craws.stats.condo.coxes.loopy.dorms.ascot.dippy.execs.dopey.envoi.umpty.gismo.fazed.strop.jives.slims.batik.pings.sonly.leggo.pekoe.prawn.luaus.campy.oodle.prexy.proms.touts.ogles.tweet.toady.naiad.hider.nuked.fatso.sluts.obits.narcs.tyros.delis.wooer.hyped.poset.byway.texas.scrod.avows.futon.torte.tuple.carom.kebab.tamps.jilts.duals.artsy.repro.modem.toped.psych.sicko.klutz.tarns.coxed.drays.cloys.anded.piker.aimer.suras.limos.flack.hapax.dutch.mucky.shire.klieg.staph.layup.tokes.axing.toper.duvet.cowry.profs.blahs.addle.sudsy.batty.coifs.suety.gabby.hafta.pitas.gouda.deice.taupe.topes.duchy.nitro.carny.limey.orals.hirer.taxer.roils.ruble.elate.dolor.wryer.snots.quais.coked.gimel.gorse.minas.goest.agape.manta.jings.iliac.admen.offen.cills.offal.lotta.bolas.thwap.alway.boggy.donna.locos.belay.gluey.bitsy.mimsy.hilar.outta.vroom.fetal.raths.renal.dyads.crocs.vires.culpa.kivas.feist.teats.thats.yawls.whens.abaca.ohhhh.aphis.fusty.eclat.perdu.mayst.exeat.molly.supra.wetly.plasm.buffa.semen.pukka.tagua.paras.stoat.secco.carte.haute.molal.shads.forma.ovoid.pions.modus.bueno.rheum.scurf.parer.ephah.doest.sprue.flams.molto.dieth.choos.miked.bronx.goopy.bally.plumy.moony.morts.yourn.bipod.spume.algal.ambit.mucho.spued.dozer.harum.groat.skint.laude.thrum.pappy.oncet.rimed.gigue.limed.plein.redly.humpf.lites.seest.grebe.absit.thanx.pshaw.yawps.plats.payed.areal.tilth.youse.gwine.thees.watsa.lento.spitz.yawed.gipsy.sprat.cornu.amahs.blowy.wahoo.lubra.mecum.whooo.coqui.sabra.edema.mrads.dicot.astro.kited.ouzel.didos.grata.bonne.axmen.klunk.summa.laves.purls.yawny.teary.masse.largo.bazar.pssst.sylph.lulab.toque.fugit.plunk.ortho.lucre.cooch.whipt.folky.tyres.wheee.corky.injun.solon.didot.kerfs.rayed.wassa.chile.begat.nippy.litre.magna.rebox.hydro.milch.brent.gyves.lazed.feued.mavis.inapt.baulk.casus.scrum.wised.fossa.dower.kyrie.bhoys.scuse.feuar.ohmic.juste.ukase.beaux.tusky.orate.musta.lardy.intra.quiff.epsom.neath.ocher.tared.homme.mezzo.corms.psoas.beaky.terry.infra.spivs.tuans.belli.bergs.anima.weirs.mahua.scops.manse.titre.curia.kebob.cycad.talky.fucks.tapis.amide.dolce.sloes.jakes.russe.blash.tutti.pruta.panga.blebs.tench.swarf.herem.missy.merse.pawky.limen.vivre.chert.unsee.tiros.brack.foots.welsh.fosse.knops.ileum.noire.firma.podgy.laird.thunk.shute.rowan.shoji.poesy.uncap.fames.glees.costa.turps.fores.solum.imago.byres.fondu.coney.polis.dictu.kraal.sherd.mumbo.wroth.chars.unbox.vacuo.slued.weest.hades.wiled.syncs.muser.excon.hoars.sibyl.passe.joeys.lotsa.lepta.shays.bocks.endue.darer.nones.ileus.plash.busby.wheal.buffo.yobbo.biles.poxes.rooty.licit.terce.bromo.hayey.dweeb.imbed.saran.bruit.punky.softs.biffs.loppy.agars.aquae.livre.biome.bunds.shews.diems.ginny.degum.polos.desex.unman.dungy.vitam.wedgy.glebe.apers.ridgy.roids.wifey.vapes.whoas.bunko.yolky.ulnas.reeky.bodge.brant.davit.deque.liker.jenny.tacts.fulls.treap.ligne.acked.refry.vower.aargh.churl.momma.gaols.whump.arras.marls.tiler.grogs.memes.midis.tided.haler.duces.twiny.poste.unrig.prise.drabs.quids.facer.spier.baric.geoid.remap.trier.gunks.steno.stoma.airer.ovate.torah.apian.smuts.pocks.yurts.exurb.defog.nuder.bosky.nimbi.mothy.joyed.labia.pards.jammy.bigly.faxer.hoppy.nurbs.cotes.dishy.vised.celeb.pismo.casas.withs.dodgy.scudi.mungs.muons.ureas.ioctl.unhip.krone.sager.verst.expat.gronk.uvula.shawm.bilgy.braes.cento.webby.lippy.gamic.lordy.mazed.tings.shoat.faery.wirer.diazo.carer.rater.greps.rente.zloty.viers.unapt.poops.fecal.kepis.taxon.eyers.wonts.spina.stoae.yenta.pooey.buret.japan.bedew.hafts.selfs.oared.herby.pryer.oakum.dinks.titty.sepoy.penes.fusee.winey.gimps.nihil.rille.giber.ousel.umiak.cuppy.hames.shits.azine.glads.tacet.bumph.coyer.honky.gamer.gooky.waspy.sedgy.bents.varia.djinn.junco.pubic.wilco.lazes.idyls.lupus.rives.snood.schmo.spazz.finis.noter.pavan.orbed.bates.pipet.baddy.goers.shako.stets.sebum.seeth.lobar.raver.ajuga.riced.velds.dribs.ville.dhows.unsew.halma.krona.limby.jiffs.treys.bauds.pffft.mimer.plebs.caner.jiber.cuppa.washy.chuff.unarm.yukky.styes.waker.flaks.maces.rimes.gimpy.guano.liras.kapok.scuds.bwana.oring.aider.prier.klugy.monte.golem.velar.firer.pieta.umbel.campo.unpeg.fovea.abeam.boson.asker.goths.vocab.vined.trows.tikis.loper.indie.boffs.spang.grapy.tater.ichor.kilty.lochs.supes.degas.flics.torsi.beths.weber.resaw.lawny.coven.mujik.relet.therm.heigh.shnor.trued.zayin.liest.barfs.bassi.qophs.roily.flabs.punny.okras.hanks.dipso.nerfs.fauns.calla.pseud.lurer.magus.obeah.atria.twink.palmy.pocky.pends.recta.plonk.slaws.keens.nicad.pones.inker.whews.groks.mosts.trews.ulnar.gyppy.cocas.expos.eruct.oiler.vacua.dreck.dater.arums.tubal.voxel.dixit.beery.assai.lades.actin.ghoti.buzzy.meads.grody.ribby.clews.creme.email.pyxie.kulak.bocci.rived.duddy.hoper.lapin.wonks.petri.phial.fugal.holon.boomy.duomo.musos.shier.hayer.porgy.hived.litho.fisty.stagy.luvya.maria.smogs.asana.yogic.slomo.fawny.amine.wefts.gonad.twirp.brava.plyer.fermi.loges.niter.revet.unate.gyved.totty.zappy.honer.giros.dicer.calks.luxes.monad.cruft.quoin.fumer.amped.shlep.vinca.yahoo.vulva.zooey.dryad.nixie.moper.iambs.lunes.nudie.limns.weals.nohow.miaow.gouts.mynas.mazer.kikes.oxeye.stoup.jujus.debar.pubes.taels.defun.rands.blear.paver.goosy.sprog.oleos.toffy.pawer.maced.crits.kluge.tubed.sahib.ganef.scats.sputa.vaned.acned.taxol.plink.oweth.tribs.resay.boule.thous.haply.glans.maxis.bezel.antis.porks.quoit.alkyd.glary.beamy.hexad.bonks.tecum.kerbs.filar.frier.redux.abuzz.fader.shoer.couth.trues.guyed.goony.booky.fuzes.hurly.genet.hodad.calix.filer.pawls.iodic.utero.henge.unsay.liers.piing.weald.sexed.folic.poxed.cunts.anile.kiths.becks.tatty.plena.rebar.abled.toyer.attar.teaks.aioli.awing.anent.feces.redip.wists.prats.mesne.muter.smurf.owest.bahts.lossy.ftped.hunky.hoers.slier.sicks.fatly.delft.hiver.himbo.pengo.busks.loxes.zonks.ilium.aport.ikons.mulct.reeve.civvy.canna.barfy.kaiak.scudo.knout.gaper.bhang.pease.uteri.lases.paten.rasae.axels.stoas.ombre.styli.gunky.hazer.kenaf.ahoys.ammos.weeny.urger.kudzu.paren.bolos.fetor.nitty.techy.lieth.somas.darky.villi.gluon.janes.cants.farts.socle.jinns.ruing.slily.ricer.hadda.wowee.rices.nerts.cauls.swive.lilty.micks.arity.pasha.finif.oinky.gutty.tetra.wises.wolds.balds.picot.whats.shiki.bungs.snarf.legos.dungs.stogy.berms.tangs.vails.roods.morel.sware.elans.latus.gules.razer.doxie.buena.overs.gutta.zincs.nates.kirks.tikes.donee.jerry.mohel.ceder.doges.unmap.folia.rawly.snark.topoi.ceils.immix.yores.diest.bubba.pomps.forky.turdy.lawzy.poohs.worts.gloms.beano.muley.barky.tunny.auric.funks.gaffs.cordy.curdy.lisle.toric.soyas.reman.mungy.carpy.apish.oaten.gappy.aurae.bract.rooky.axled.burry.sizer.proem.turfy.impro.mashy.miens.nonny.olios.grook.sates.agley.corgi.dashy.doser.dildo.apsos.xored.laker.playa.selah.malty.dulse.frigs.demit.whoso.rials.sawer.spics.bedim.snugs.fanin.azoic.icers.suers.wizen.koine.topos.shirr.rifer.feral.laded.lased.turds.swede.easts.cozen.unhit.pally.aitch.sedum.coper.ruche.geeks.swags.etext.algin.offed.ninja.holer.doter.toter.besot.dicut.macer.peens.pewit.redox.poler.yecch.fluky.doeth.twats.cruds.bebug.bider.stele.hexer.wests.gluer.pilau.abaft.whelm.lacer.inode.tabus.gator.cuing.refly.luted.cukes.bairn.bight.arses.crump.loggy.blini.spoor.toyon.harks.wazoo.fenny.naves.keyer.tufas.morph.rajas.typal.spiff.oxlip.unban.mussy.finny.rimer.login.molas.cirri.huzza.agone.unsex.unwon.peats.toile.zombi.dewed.nooky.alkyl.ixnay.dovey.holey.cuber.amyls.podia.chino.apnea.prims.lycra.johns.primo.fatwa.egger.hempy.snook.hying.fuzed.barms.crink.moots.yerba.rhumb.unarc.direr.munge.eland.nares.wrier.noddy.atilt.jukes.ender.thens.unfix.doggo.zooks.diddy.shmoo.brusk.prest.curer.pasts.kelpy.bocce.kicky.taros.lings.dicky.nerdy.abend.stela.biggy.laved.baldy.pubis.gooks.wonky.stied.hypos.assed.spumy.osier.roble.rumba.biffy.pupal".split("."), zi = /* @__PURE__ */ "aahed.aalii.aargh.aarti.abaca.abaci.abacs.abaft.abaka.abamp.aband.abash.abask.abaya.abbas.abbed.abbes.abcee.abeam.abear.abele.abers.abets.abies.abler.ables.ablet.ablow.abmho.abohm.aboil.aboma.aboon.abord.abore.abram.abray.abrim.abrin.abris.absey.absit.abuna.abune.abuts.abuzz.abyes.abysm.acais.acari.accas.accoy.acerb.acers.aceta.achar.ached.aches.achoo.acids.acidy.acing.acini.ackee.acker.acmes.acmic.acned.acnes.acock.acold.acred.acres.acros.acted.actin.acton.acyls.adaws.adays.adbot.addax.added.adder.addio.addle.adeem.adhan.adieu.adios.adits.adman.admen.admix.adobo.adown.adoze.adrad.adred.adsum.aduki.adunc.adust.advew.adyta.adzed.adzes.aecia.aedes.aegis.aeons.aerie.aeros.aesir.afald.afara.afars.afear.aflaj.afore.afrit.afros.agama.agami.agars.agast.agave.agaze.agene.agers.agger.aggie.aggri.aggro.aggry.aghas.agila.agios.agism.agist.agita.aglee.aglet.agley.agloo.aglus.agmas.agoge.agone.agons.agood.agria.agrin.agros.agued.agues.aguna.aguti.aheap.ahent.ahigh.ahind.ahing.ahint.ahold.ahull.ahuru.aidas.aided.aides.aidoi.aidos.aiery.aigas.aight.ailed.aimed.aimer.ainee.ainga.aioli.aired.airer.airns.airth.airts.aitch.aitus.aiver.aiyee.aizle.ajies.ajiva.ajuga.ajwan.akees.akela.akene.aking.akita.akkas.alaap.alack.alamo.aland.alane.alang.alans.alant.alapa.alaps.alary.alate.alays.albas.albee.alcid.alcos.aldea.alder.aldol.aleck.alecs.alefs.aleft.aleph.alews.aleye.alfas.algal.algas.algid.algin.algor.algum.alias.alifs.aline.alist.aliya.alkie.alkos.alkyd.alkyl.allee.allel.allis.allod.allyl.almah.almas.almeh.almes.almud.almug.alods.aloed.aloes.aloha.aloin.aloos.alowe.altho.altos.alula.alums.alure.alvar.alway.amahs.amain.amate.amaut.amban.ambit.ambos.ambry.ameba.ameer.amene.amens.ament.amias.amice.amici.amide.amido.amids.amies.amiga.amigo.amine.amino.amins.amirs.amlas.amman.ammon.ammos.amnia.amnic.amnio.amoks.amole.amort.amour.amove.amowt.amped.ampul.amrit.amuck.amyls.anana.anata.ancho.ancle.ancon.andro.anear.anele.anent.angas.anglo.anigh.anile.anils.anima.animi.anion.anise.anker.ankhs.ankus.anlas.annal.annas.annat.anoas.anole.anomy.ansae.antae.antar.antas.anted.antes.antis.antra.antre.antsy.anura.anyon.apace.apage.apaid.apayd.apays.apeak.apeek.apers.apert.apery.apgar.aphis.apian.apiol.apish.apism.apode.apods.apoop.aport.appal.appay.appel.appro.appui.appuy.apres.apses.apsis.apsos.apted.apter.aquae.aquas.araba.araks.arame.arars.arbas.arced.archi.arcos.arcus.ardeb.ardri.aread.areae.areal.arear.areas.areca.aredd.arede.arefy.areic.arene.arepa.arere.arete.arets.arett.argal.argan.argil.argle.argol.argon.argot.argus.arhat.arias.ariel.ariki.arils.ariot.arish.arked.arled.arles.armed.armer.armet.armil.arnas.arnut.aroba.aroha.aroid.arpas.arpen.arrah.arras.arret.arris.arroz.arsed.arses.arsey.arsis.artal.artel.artic.artis.aruhe.arums.arval.arvee.arvos.aryls.asana.ascon.ascus.asdic.ashed.ashes.ashet.asked.asker.askoi.askos.aspen.asper.aspic.aspie.aspis.aspro.assai.assam.asses.assez.assot.aster.astir.astun.asura.asway.aswim.asyla.ataps.ataxy.atigi.atilt.atimy.atlas.atman.atmas.atmos.atocs.atoke.atoks.atoms.atomy.atony.atopy.atria.atrip.attap.attar.atuas.audad.auger.aught.aulas.aulic.auloi.aulos.aumil.aunes.aunts.aurae.aural.aurar.auras.aurei.aures.auric.auris.aurum.autos.auxin.avale.avant.avast.avels.avens.avers.avgas.avine.avion.avise.aviso.avize.avows.avyze.awarn.awato.awave.aways.awdls.aweel.aweto.awing.awmry.awned.awner.awols.awork.axels.axile.axils.axing.axite.axled.axles.axman.axmen.axoid.axone.axons.ayahs.ayaya.ayelp.aygre.ayins.ayont.ayres.ayrie.azans.azide.azido.azine.azlon.azoic.azole.azons.azote.azoth.azuki.azurn.azury.azygy.azyme.azyms.baaed.baals.babas.babel.babes.babka.baboo.babul.babus.bacca.bacco.baccy.bacha.bachs.backs.baddy.baels.baffs.baffy.bafts.baghs.bagie.bahts.bahus.bahut.bails.bairn.baisa.baith.baits.baiza.baize.bajan.bajra.bajri.bajus.baked.baken.bakes.bakra.balas.balds.baldy.baled.bales.balks.balky.balls.bally.balms.baloo.balsa.balti.balun.balus.bambi.banak.banco.bancs.banda.bandh.bands.bandy.baned.banes.bangs.bania.banks.banns.bants.bantu.banty.banya.bapus.barbe.barbs.barby.barca.barde.bardo.bards.bardy.bared.barer.bares.barfi.barfs.baric.barks.barky.barms.barmy.barns.barny.barps.barra.barre.barro.barry.barye.basan.based.basen.baser.bases.basho.basij.basks.bason.basse.bassi.basso.bassy.basta.basti.basto.basts.bated.bates.baths.batik.batta.batts.battu.bauds.bauks.baulk.baurs.bavin.bawds.bawks.bawls.bawns.bawrs.bawty.bayed.bayer.bayes.bayle.bayts.bazar.bazoo.beads.beaks.beaky.beals.beams.beamy.beano.beans.beany.beare.bears.beath.beats.beaty.beaus.beaut.beaux.bebop.becap.becke.becks.bedad.bedel.bedes.bedew.bedim.bedye.beedi.beefs.beeps.beers.beery.beets.befog.begad.begar.begem.begot.begum.beige.beigy.beins.bekah.belah.belar.belay.belee.belga.bells.belon.belts.bemad.bemas.bemix.bemud.bends.bendy.benes.benet.benga.benis.benne.benni.benny.bento.bents.benty.bepat.beray.beres.bergs.berko.berks.berme.berms.berob.beryl.besat.besaw.besee.beses.besit.besom.besot.besti.bests.betas.beted.betes.beths.betid.beton.betta.betty.bever.bevor.bevue.bevvy.bewet.bewig.bezes.bezil.bezzy.bhais.bhaji.bhang.bhats.bhels.bhoot.bhuna.bhuts.biach.biali.bialy.bibbs.bibes.biccy.bices.bided.bider.bides.bidet.bidis.bidon.bield.biers.biffo.biffs.biffy.bifid.bigae.biggs.biggy.bigha.bight.bigly.bigos.bijou.biked.biker.bikes.bikie.bilbo.bilby.biled.biles.bilgy.bilks.bills.bimah.bimas.bimbo.binal.bindi.binds.biner.bines.bings.bingy.binit.binks.bints.biogs.biont.biota.biped.bipod.birds.birks.birle.birls.biros.birrs.birse.birsy.bises.bisks.bisom.bitch.biter.bites.bitos.bitou.bitsy.bitte.bitts.bivia.bivvy.bizes.bizzo.bizzy.blabs.blads.blady.blaer.blaes.blaff.blags.blahs.blain.blams.blart.blase.blash.blate.blats.blatt.blaud.blawn.blaws.blays.blear.blebs.blech.blees.blent.blert.blest.blets.bleys.blimy.bling.blini.blins.bliny.blips.blist.blite.blits.blive.blobs.blocs.blogs.blook.bloop.blore.blots.blows.blowy.blubs.blude.bluds.bludy.blued.blues.bluet.bluey.bluid.blume.blunk.blurs.blype.boabs.boaks.boars.boart.boats.bobac.bobak.bobas.bobol.bobos.bocca.bocce.bocci.boche.bocks.boded.bodes.bodge.bodhi.bodle.boeps.boets.boeuf.boffo.boffs.bogan.bogey.boggy.bogie.bogle.bogue.bogus.bohea.bohos.boils.boing.boink.boite.boked.bokeh.bokes.bokos.bolar.bolas.bolds.boles.bolix.bolls.bolos.bolts.bolus.bomas.bombe.bombo.bombs.bonce.bonds.boned.boner.bones.bongs.bonie.bonks.bonne.bonny.bonza.bonze.booai.booay.boobs.boody.booed.boofy.boogy.boohs.books.booky.bools.booms.boomy.boong.boons.boord.boors.boose.boots.boppy.borak.boral.boras.borde.bords.bored.boree.borel.borer.bores.borgo.boric.borks.borms.borna.boron.borts.borty.bortz.bosie.bosks.bosky.boson.bosun.botas.botel.botes.bothy.botte.botts.botty.bouge.bouks.boult.bouns.bourd.bourg.bourn.bouse.bousy.bouts.bovid.bowat.bowed.bower.bowes.bowet.bowie.bowls.bowne.bowrs.bowse.boxed.boxen.boxes.boxla.boxty.boyar.boyau.boyed.boyfs.boygs.boyla.boyos.boysy.bozos.braai.brach.brack.bract.brads.braes.brags.brail.braks.braky.brame.brane.brank.brans.brant.brast.brats.brava.bravi.braws.braxy.brays.braza.braze.bream.brede.breds.breem.breer.brees.breid.breis.breme.brens.brent.brere.brers.breve.brews.breys.brier.bries.brigs.briki.briks.brill.brims.brins.brios.brise.briss.brith.brits.britt.brize.broch.brock.brods.brogh.brogs.brome.bromo.bronc.brond.brool.broos.brose.brosy.brows.brugh.bruin.bruit.brule.brume.brung.brusk.brust.bruts.buats.buaze.bubal.bubas.bubba.bubbe.bubby.bubus.buchu.bucko.bucks.bucku.budas.budis.budos.buffa.buffe.buffi.buffo.buffs.buffy.bufos.bufty.buhls.buhrs.buiks.buist.bukes.bulbs.bulgy.bulks.bulla.bulls.bulse.bumbo.bumfs.bumph.bumps.bumpy.bunas.bunce.bunco.bunde.bundh.bunds.bundt.bundu.bundy.bungs.bungy.bunia.bunje.bunjy.bunko.bunks.bunns.bunts.bunty.bunya.buoys.buppy.buran.buras.burbs.burds.buret.burfi.burgh.burgs.burin.burka.burke.burks.burls.burns.buroo.burps.burqa.burro.burrs.burry.bursa.burse.busby.buses.busks.busky.bussu.busti.busts.busty.buteo.butes.butle.butoh.butts.butty.butut.butyl.buzzy.bwana.bwazi.byded.bydes.byked.bykes.byres.byrls.byssi.bytes.byway.caaed.cabas.caber.cabob.caboc.cabre.cacas.cacks.cacky.cadee.cades.cadge.cadgy.cadie.cadis.cadre.caeca.caese.cafes.caffs.caged.cager.cages.cagot.cahow.caids.cains.caird.cajon.cajun.caked.cakes.cakey.calfs.calid.calif.calix.calks.calla.calls.calms.calmy.calos.calpa.calps.calve.calyx.caman.camas.cames.camis.camos.campi.campo.camps.campy.camus.caned.caneh.caner.canes.cangs.canid.canna.canns.canso.canst.canto.cants.canty.capas.caped.capes.capex.caphs.capiz.caple.capon.capos.capot.capri.capul.carap.carbo.carbs.carby.cardi.cards.cardy.cared.carer.cares.caret.carex.carks.carle.carls.carns.carny.carob.carom.caron.carpi.carps.carrs.carse.carta.carte.carts.carvy.casas.casco.cased.cases.casks.casky.casts.casus.cates.cauda.cauks.cauld.cauls.caums.caups.cauri.causa.cavas.caved.cavel.caver.caves.cavie.cawed.cawks.caxon.ceaze.cebid.cecal.cecum.ceded.ceder.cedes.cedis.ceiba.ceili.ceils.celeb.cella.celli.cells.celom.celts.cense.cento.cents.centu.ceorl.cepes.cerci.cered.ceres.cerge.ceria.ceric.cerne.ceroc.ceros.certs.certy.cesse.cesta.cesti.cetes.cetyl.cezve.chace.chack.chaco.chado.chads.chaft.chais.chals.chams.chana.chang.chank.chape.chaps.chapt.chara.chare.chark.charr.chars.chary.chats.chave.chavs.chawk.chaws.chaya.chays.cheep.chefs.cheka.chela.chelp.chemo.chems.chere.chert.cheth.chevy.chews.chewy.chiao.chias.chibs.chica.chich.chico.chics.chiel.chiks.chile.chimb.chimo.chimp.chine.ching.chink.chino.chins.chips.chirk.chirl.chirm.chiro.chirr.chirt.chiru.chits.chive.chivs.chivy.chizz.choco.chocs.chode.chogs.choil.choko.choky.chola.choli.cholo.chomp.chons.choof.chook.choom.choon.chops.chota.chott.chout.choux.chowk.chows.chubs.chufa.chuff.chugs.chums.churl.churr.chuse.chuts.chyle.chyme.chynd.cibol.cided.cides.ciels.ciggy.cilia.cills.cimar.cimex.cinct.cines.cinqs.cions.cippi.circs.cires.cirls.cirri.cisco.cissy.cists.cital.cited.citer.cites.cives.civet.civie.civvy.clach.clade.clads.claes.clags.clame.clams.clans.claps.clapt.claro.clart.clary.clast.clats.claut.clave.clavi.claws.clays.cleck.cleek.cleep.clefs.clegs.cleik.clems.clepe.clept.cleve.clews.clied.clies.clift.clime.cline.clint.clipe.clips.clipt.clits.cloam.clods.cloff.clogs.cloke.clomb.clomp.clonk.clons.cloop.cloot.clops.clote.clots.clour.clous.clows.cloye.cloys.cloze.clubs.clues.cluey.clunk.clype.cnida.coact.coady.coala.coals.coaly.coapt.coarb.coate.coati.coats.cobbs.cobby.cobia.coble.cobza.cocas.cocci.cocco.cocks.cocky.cocos.codas.codec.coded.coden.coder.codes.codex.codon.coeds.coffs.cogie.cogon.cogue.cohab.cohen.cohoe.cohog.cohos.coifs.coign.coils.coins.coirs.coits.coked.cokes.colas.colby.colds.coled.coles.coley.colic.colin.colls.colly.colog.colts.colza.comae.comal.comas.combe.combi.combo.combs.comby.comer.comes.comix.commo.comms.commy.compo.comps.compt.comte.comus.coned.cones.coney.confs.conga.conge.congo.conia.conin.conks.conky.conne.conns.conte.conto.conus.convo.cooch.cooed.cooee.cooer.cooey.coofs.cooks.cooky.cools.cooly.coomb.cooms.coomy.coons.coops.coopt.coost.coots.cooze.copal.copay.coped.copen.coper.copes.coppy.copra.copsy.coqui.coram.corbe.corby.cords.cored.cores.corey.corgi.coria.corks.corky.corms.corni.corno.corns.cornu.corps.corse.corso.cosec.cosed.coses.coset.cosey.cosie.costa.coste.costs.cotan.coted.cotes.coths.cotta.cotts.coude.coups.courb.courd.coure.cours.couta.couth.coved.coves.covin.cowal.cowan.cowed.cowks.cowls.cowps.cowry.coxae.coxal.coxed.coxes.coxib.coyau.coyed.coyer.coypu.cozed.cozen.cozes.cozey.cozie.craal.crabs.crags.craic.craig.crake.crame.crams.crans.crape.craps.crapy.crare.craws.crays.creds.creel.crees.crems.crena.creps.crepy.crewe.crews.crias.cribs.cries.crims.crine.crios.cripe.crips.crise.crith.crits.croci.crocs.croft.crogs.cromb.crome.cronk.crons.crool.croon.crops.crore.crost.crout.crows.croze.cruck.crudo.cruds.crudy.crues.cruet.cruft.crunk.cruor.crura.cruse.crusy.cruve.crwth.cryer.ctene.cubby.cubeb.cubed.cuber.cubes.cubit.cuddy.cuffo.cuffs.cuifs.cuing.cuish.cuits.cukes.culch.culet.culex.culls.cully.culms.culpa.culti.cults.culty.cumec.cundy.cunei.cunit.cunts.cupel.cupid.cuppa.cuppy.curat.curbs.curch.curds.curdy.cured.curer.cures.curet.curfs.curia.curie.curli.curls.curns.curny.currs.cursi.curst.cusec.cushy.cusks.cusps.cuspy.cusso.cusum.cutch.cuter.cutes.cutey.cutin.cutis.cutto.cutty.cutup.cuvee.cuzes.cwtch.cyano.cyans.cycad.cycas.cyclo.cyder.cylix.cymae.cymar.cymas.cymes.cymol.cysts.cytes.cyton.czars.daals.dabba.daces.dacha.dacks.dadah.dadas.dados.daffs.daffy.dagga.daggy.dagos.dahls.daiko.daine.daint.daker.daled.dales.dalis.dalle.dalts.daman.damar.dames.damme.damns.damps.dampy.dancy.dangs.danio.danks.danny.dants.daraf.darbs.darcy.dared.darer.dares.darga.dargs.daric.daris.darks.darky.darns.darre.darts.darzi.dashi.dashy.datal.dated.dater.dates.datos.datto.daube.daubs.dauby.dauds.dault.daurs.dauts.daven.davit.dawah.dawds.dawed.dawen.dawks.dawns.dawts.dayan.daych.daynt.dazed.dazer.dazes.deads.deair.deals.deans.deare.dearn.dears.deary.deash.deave.deaws.deawy.debag.debby.debel.debes.debts.debud.debur.debus.debye.decad.decaf.decan.decko.decks.decos.dedal.deeds.deedy.deely.deems.deens.deeps.deere.deers.deets.deeve.deevs.defat.deffo.defis.defog.degas.degum.degus.deice.deids.deify.deils.deism.deist.deked.dekes.dekko.deled.deles.delfs.delft.delis.dells.delly.delos.delph.delts.deman.demes.demic.demit.demob.demoi.demos.dempt.denar.denay.dench.denes.denet.denis.dents.deoxy.derat.deray.dered.deres.derig.derma.derms.derns.derny.deros.derro.derry.derth.dervs.desex.deshi.desis.desks.desse.devas.devel.devis.devon.devos.devot.dewan.dewar.dewax.dewed.dexes.dexie.dhaba.dhaks.dhals.dhikr.dhobi.dhole.dholl.dhols.dhoti.dhows.dhuti.diact.dials.diane.diazo.dibbs.diced.dicer.dices.dicht.dicks.dicky.dicot.dicta.dicts.dicty.diddy.didie.didos.didst.diebs.diels.diene.diets.diffs.dight.dikas.diked.diker.dikes.dikey.dildo.dilli.dills.dimbo.dimer.dimes.dimps.dinar.dined.dines.dinge.dings.dinic.dinks.dinky.dinna.dinos.dints.diols.diota.dippy.dipso.diram.direr.dirke.dirks.dirls.dirts.disas.disci.discs.dishy.disks.disme.dital.ditas.dited.dites.ditsy.ditts.ditzy.divan.divas.dived.dives.divis.divna.divos.divot.divvy.diwan.dixie.dixit.diyas.dizen.djinn.djins.doabs.doats.dobby.dobes.dobie.dobla.dobra.dobro.docht.docks.docos.docus.doddy.dodos.doeks.doers.doest.doeth.doffs.dogan.doges.dogey.doggo.doggy.dogie.dohyo.doilt.doily.doits.dojos.dolce.dolci.doled.doles.dolia.dolls.dolma.dolor.dolos.dolts.domal.domed.domes.domic.donah.donas.donee.doner.donga.dongs.donko.donna.donne.donny.donsy.doobs.dooce.doody.dooks.doole.dools.dooly.dooms.doomy.doona.doorn.doors.doozy.dopas.doped.doper.dopes.dorad.dorba.dorbs.doree.dores.doric.doris.dorks.dorky.dorms.dormy.dorps.dorrs.dorsa.dorse.dorts.dorty.dosai.dosas.dosed.doseh.doser.doses.dosha.dotal.doted.doter.dotes.dotty.douar.douce.doucs.douks.doula.douma.doums.doups.doura.douse.douts.doved.doven.dover.doves.dovie.dowar.dowds.dowed.dower.dowie.dowle.dowls.dowly.downa.downs.dowps.dowse.dowts.doxed.doxes.doxie.doyen.doyly.dozed.dozer.dozes.drabs.drack.draco.draff.drags.drail.drams.drant.draps.drats.drave.draws.drays.drear.dreck.dreed.dreer.drees.dregs.dreks.drent.drere.drest.dreys.dribs.drice.dries.drily.drips.dript.droid.droil.droke.drole.drome.drony.droob.droog.drook.drops.dropt.drouk.drows.drubs.drugs.drums.drupe.druse.drusy.druxy.dryad.dryas.dsobo.dsomo.duads.duals.duans.duars.dubbo.ducal.ducat.duces.ducks.ducky.ducts.duddy.duded.dudes.duels.duets.duett.duffs.dufus.duing.duits.dukas.duked.dukes.dukka.dulce.dules.dulia.dulls.dulse.dumas.dumbo.dumbs.dumka.dumky.dumps.dunam.dunch.dunes.dungs.dungy.dunks.dunno.dunny.dunsh.dunts.duomi.duomo.duped.duper.dupes.duple.duply.duppy.dural.duras.dured.dures.durgy.durns.duroc.duros.duroy.durra.durrs.durry.durst.durum.durzi.dusks.dusts.duxes.dwaal.dwale.dwalm.dwams.dwang.dwaum.dweeb.dwile.dwine.dyads.dyers.dyked.dykes.dykey.dykon.dynel.dynes.dzhos.eagre.ealed.eales.eaned.eards.eared.earls.earns.earnt.earst.eased.easer.eases.easle.easts.eathe.eaved.eaves.ebbed.ebbet.ebons.ebook.ecads.eched.eches.echos.ecrus.edema.edged.edger.edges.edile.edits.educe.educt.eejit.eensy.eeven.eevns.effed.egads.egers.egest.eggar.egged.egger.egmas.ehing.eider.eidos.eigne.eiked.eikon.eilds.eisel.ejido.ekkas.elain.eland.elans.elchi.eldin.elemi.elfed.eliad.elint.elmen.eloge.elogy.eloin.elops.elpee.elsin.elute.elvan.elven.elver.elves.emacs.embar.embay.embog.embow.embox.embus.emeer.emend.emerg.emery.emeus.emics.emirs.emits.emmas.emmer.emmet.emmew.emmys.emoji.emong.emote.emove.empts.emule.emure.emyde.emyds.enarm.enate.ended.ender.endew.endue.enews.enfix.eniac.enlit.enmew.ennog.enoki.enols.enorm.enows.enrol.ensew.ensky.entia.enure.enurn.envoi.enzym.eorls.eosin.epact.epees.ephah.ephas.ephod.ephor.epics.epode.epopt.epris.eques.equid.erbia.erevs.ergon.ergos.ergot.erhus.erica.erick.erics.ering.erned.ernes.erose.erred.erses.eruct.erugo.eruvs.erven.ervil.escar.escot.esile.eskar.esker.esnes.esses.estoc.estop.estro.etage.etape.etats.etens.ethal.ethne.ethyl.etics.etnas.ettin.ettle.etuis.etwee.etyma.eughs.euked.eupad.euros.eusol.evens.evert.evets.evhoe.evils.evite.evohe.ewers.ewest.ewhow.ewked.exams.exeat.execs.exeem.exeme.exfil.exies.exine.exing.exits.exode.exome.exons.expat.expos.exude.exuls.exurb.eyass.eyers.eyots.eyras.eyres.eyrie.eyrir.ezine.fabby.faced.facer.faces.facia.facta.facts.faddy.faded.fader.fades.fadge.fados.faena.faery.faffs.faffy.faggy.fagin.fagot.faiks.fails.faine.fains.fairs.faked.faker.fakes.fakey.fakie.fakir.falaj.falls.famed.fames.fanal.fands.fanes.fanga.fango.fangs.fanks.fanon.fanos.fanum.faqir.farad.farci.farcy.fards.fared.farer.fares.farle.farls.farms.faros.farro.farse.farts.fasci.fasti.fasts.fated.fates.fatly.fatso.fatwa.faugh.fauld.fauns.faurd.fauts.fauve.favas.favel.faver.faves.favus.fawns.fawny.faxed.faxes.fayed.fayer.fayne.fayre.fazed.fazes.feals.feare.fears.feart.fease.feats.feaze.feces.fecht.fecit.fecks.fedex.feebs.feeds.feels.feens.feers.feese.feeze.fehme.feint.feist.felch.felid.fells.felly.felts.felty.femal.femes.femmy.fends.fendy.fenis.fenks.fenny.fents.feods.feoff.ferer.feres.feria.ferly.fermi.ferms.ferns.ferny.fesse.festa.fests.festy.fetas.feted.fetes.fetor.fetta.fetts.fetwa.feuar.feuds.feued.feyed.feyer.feyly.fezes.fezzy.fiars.fiats.fibro.fices.fiche.fichu.ficin.ficos.fides.fidge.fidos.fiefs.fient.fiere.fiers.fiest.fifed.fifer.fifes.fifis.figgy.figos.fiked.fikes.filar.filch.filed.files.filii.filks.fille.fillo.fills.filmi.films.filos.filum.finca.finds.fined.fines.finis.finks.finny.finos.fiord.fiqhs.fique.fired.firer.fires.firie.firks.firms.firns.firry.firth.fiscs.fisks.fists.fisty.fitch.fitly.fitna.fitte.fitts.fiver.fives.fixed.fixes.fixit.fjeld.flabs.flaff.flags.flaks.flamm.flams.flamy.flane.flans.flaps.flary.flats.flava.flawn.flaws.flawy.flaxy.flays.fleam.fleas.fleek.fleer.flees.flegs.fleme.fleur.flews.flexi.flexo.fleys.flics.flied.flies.flimp.flims.flips.flirs.flisk.flite.flits.flitt.flobs.flocs.floes.flogs.flong.flops.flors.flory.flosh.flota.flote.flows.flubs.flued.flues.fluey.fluky.flump.fluor.flurr.fluty.fluyt.flyby.flype.flyte.foals.foams.foehn.fogey.fogie.fogle.fogou.fohns.foids.foils.foins.folds.foley.folia.folic.folie.folks.folky.fomes.fonda.fonds.fondu.fones.fonly.fonts.foods.foody.fools.foots.footy.foram.forbs.forby.fordo.fords.forel.fores.forex.forks.forky.forme.forms.forts.forza.forze.fossa.fosse.fouat.fouds.fouer.fouet.foule.fouls.fount.fours.fouth.fovea.fowls.fowth.foxed.foxes.foxie.foyle.foyne.frabs.frack.fract.frags.fraim.franc.frape.fraps.frass.frate.frati.frats.fraus.frays.frees.freet.freit.fremd.frena.freon.frere.frets.fribs.frier.fries.frigs.frise.frist.frith.frits.fritt.frize.frizz.froes.frogs.frons.frore.frorn.frory.frosh.frows.frowy.frugs.frump.frush.frust.fryer.fubar.fubby.fubsy.fucks.fucus.fuddy.fudgy.fuels.fuero.fuffs.fuffy.fugal.fuggy.fugie.fugio.fugle.fugly.fugus.fujis.fulls.fumed.fumer.fumes.fumet.fundi.funds.fundy.fungo.fungs.funks.fural.furan.furca.furls.furol.furrs.furth.furze.furzy.fused.fusee.fusel.fuses.fusil.fusks.fusts.fusty.futon.fuzed.fuzee.fuzes.fuzil.fyces.fyked.fykes.fyles.fyrds.fytte.gabba.gabby.gable.gaddi.gades.gadge.gadid.gadis.gadje.gadjo.gadso.gaffs.gaged.gager.gages.gaids.gains.gairs.gaita.gaits.gaitt.gajos.galah.galas.galax.galea.galed.gales.galls.gally.galop.galut.galvo.gamas.gamay.gamba.gambe.gambo.gambs.gamed.games.gamey.gamic.gamin.gamme.gammy.gamps.ganch.gandy.ganef.ganev.gangs.ganja.ganof.gants.gaols.gaped.gaper.gapes.gapos.gappy.garbe.garbo.garbs.garda.gares.garis.garms.garni.garre.garth.garum.gases.gasps.gaspy.gasts.gatch.gated.gater.gates.gaths.gator.gauch.gaucy.gauds.gauje.gault.gaums.gaumy.gaups.gaurs.gauss.gauzy.gavot.gawcy.gawds.gawks.gawps.gawsy.gayal.gazal.gazar.gazed.gazes.gazon.gazoo.geals.geans.geare.gears.geats.gebur.gecks.geeks.geeps.geest.geist.geits.gelds.gelee.gelid.gelly.gelts.gemel.gemma.gemmy.gemot.genal.genas.genes.genet.genic.genii.genip.genny.genoa.genom.genro.gents.genty.genua.genus.geode.geoid.gerah.gerbe.geres.gerle.germs.germy.gerne.gesse.gesso.geste.gests.getas.getup.geums.geyan.geyer.ghast.ghats.ghaut.ghazi.ghees.ghest.ghyll.gibed.gibel.giber.gibes.gibli.gibus.gifts.gigas.gighe.gigot.gigue.gilas.gilds.gilet.gills.gilly.gilpy.gilts.gimel.gimme.gimps.gimpy.ginch.ginge.gings.ginks.ginny.ginzo.gipon.gippo.gippy.girds.girls.girns.giron.giros.girrs.girsh.girts.gismo.gisms.gists.gitch.gites.giust.gived.gives.gizmo.glace.glads.glady.glaik.glair.glams.glans.glary.glaum.glaur.glazy.gleba.glebe.gleby.glede.gleds.gleed.gleek.glees.gleet.gleis.glens.glent.gleys.glial.glias.glibs.gliff.glift.glike.glime.glims.glisk.glits.glitz.gloam.globi.globs.globy.glode.glogg.gloms.gloop.glops.glost.glout.glows.gloze.glued.gluer.glues.gluey.glugs.glume.glums.gluon.glute.gluts.gnarl.gnarr.gnars.gnats.gnawn.gnaws.gnows.goads.goafs.goals.goary.goats.goaty.goban.gobar.gobbi.gobbo.gobby.gobis.gobos.godet.godso.goels.goers.goest.goeth.goety.gofer.goffs.gogga.gogos.goier.gojis.golds.goldy.goles.golfs.golpe.golps.gombo.gomer.gompa.gonch.gonef.gongs.gonia.gonif.gonks.gonna.gonof.gonys.gonzo.gooby.goods.goofs.googs.gooks.gooky.goold.gools.gooly.goons.goony.goops.goopy.goors.goory.goosy.gopak.gopik.goral.goras.gored.gores.goris.gorms.gormy.gorps.gorse.gorsy.gosht.gosse.gotch.goths.gothy.gotta.gouch.gouks.goura.gouts.gouty.gowan.gowds.gowfs.gowks.gowls.gowns.goxes.goyim.goyle.graal.grabs.grads.graff.graip.grama.grame.gramp.grams.grana.grans.grapy.gravs.grays.grebe.grebo.grece.greek.grees.grege.grego.grein.grens.grese.greve.grews.greys.grice.gride.grids.griff.grift.grigs.grike.grins.griot.grips.gript.gripy.grise.grist.grisy.grith.grits.grize.groat.grody.grogs.groks.groma.grone.groof.grosz.grots.grouf.grovy.grows.grrls.grrrl.grubs.grued.grues.grufe.grume.grump.grund.gryce.gryde.gryke.grype.grypt.guaco.guana.guano.guans.guars.gucks.gucky.gudes.guffs.gugas.guids.guimp.guiro.gulag.gular.gulas.gules.gulet.gulfs.gulfy.gulls.gulph.gulps.gulpy.gumma.gummi.gumps.gundy.gunge.gungy.gunks.gunky.gunny.guqin.gurdy.gurge.gurls.gurly.gurns.gurry.gursh.gurus.gushy.gusla.gusle.gusli.gussy.gusts.gutsy.gutta.gutty.guyed.guyle.guyot.guyse.gwine.gyals.gyans.gybed.gybes.gyeld.gymps.gynae.gynie.gynny.gynos.gyoza.gypos.gyppo.gyppy.gyral.gyred.gyres.gyron.gyros.gyrus.gytes.gyved.gyves.haafs.haars.hable.habus.hacek.hacks.hadal.haded.hades.hadji.hadst.haems.haets.haffs.hafiz.hafts.haggs.hahas.haick.haika.haiks.haiku.hails.haily.hains.haint.hairs.haith.hajes.hajis.hajji.hakam.hakas.hakea.hakes.hakim.hakus.halal.haled.haler.hales.halfa.halfs.halid.hallo.halls.halma.halms.halon.halos.halse.halts.halva.halwa.hamal.hamba.hamed.hames.hammy.hamza.hanap.hance.hanch.hands.hangi.hangs.hanks.hanky.hansa.hanse.hants.haole.haoma.hapax.haply.happi.hapus.haram.hards.hared.hares.harim.harks.harls.harms.harns.haros.harps.harts.hashy.hasks.hasps.hasta.hated.hates.hatha.hauds.haufs.haugh.hauld.haulm.hauls.hault.hauns.hause.haver.haves.hawed.hawks.hawms.hawse.hayed.hayer.hayey.hayle.hazan.hazed.hazer.hazes.heads.heald.heals.heame.heaps.heapy.heare.hears.heast.heats.heben.hebes.hecht.hecks.heder.hedgy.heeds.heedy.heels.heeze.hefte.hefts.heids.heigh.heils.heirs.hejab.hejra.heled.heles.helio.hells.helms.helos.helot.helps.helve.hemal.hemes.hemic.hemin.hemps.hempy.hench.hends.henge.henna.henny.henry.hents.hepar.herbs.herby.herds.heres.herls.herma.herms.herns.heros.herry.herse.hertz.herye.hesps.hests.hetes.heths.heuch.heugh.hevea.hewed.hewer.hewgh.hexad.hexed.hexer.hexes.hexyl.heyed.hiant.hicks.hided.hider.hides.hiems.highs.hight.hijab.hijra.hiked.hiker.hikes.hikoi.hilar.hilch.hillo.hills.hilts.hilum.hilus.himbo.hinau.hinds.hings.hinky.hinny.hints.hiois.hiply.hired.hiree.hirer.hires.hissy.hists.hithe.hived.hiver.hives.hizen.hoaed.hoagy.hoars.hoary.hoast.hobos.hocks.hocus.hodad.hodja.hoers.hogan.hogen.hoggs.hoghs.hohed.hoick.hoied.hoiks.hoing.hoise.hokas.hoked.hokes.hokey.hokis.hokku.hokum.holds.holed.holes.holey.holks.holla.hollo.holme.holms.holon.holos.holts.homas.homed.homes.homey.homie.homme.homos.honan.honda.honds.honed.honer.hones.hongi.hongs.honks.honky.hooch.hoods.hoody.hooey.hoofs.hooka.hooks.hooky.hooly.hoons.hoops.hoord.hoors.hoosh.hoots.hooty.hoove.hopak.hoped.hoper.hopes.hoppy.horah.horal.horas.horis.horks.horme.horns.horst.horsy.hosed.hosel.hosen.hoser.hoses.hosey.hosta.hosts.hotch.hoten.hotty.houff.houfs.hough.houri.hours.houts.hovea.hoved.hoven.hoves.howbe.howes.howff.howfs.howks.howls.howre.howso.hoxed.hoxes.hoyas.hoyed.hoyle.hubby.hucks.hudna.hudud.huers.huffs.huffy.huger.huggy.huhus.huias.hulas.hules.hulks.hulky.hullo.hulls.hully.humas.humfs.humic.humps.humpy.hunks.hunts.hurds.hurls.hurly.hurra.hurst.hurts.hushy.husks.husos.hutia.huzza.huzzy.hwyls.hydra.hyens.hygge.hying.hykes.hylas.hyleg.hyles.hylic.hymns.hynde.hyoid.hyped.hypes.hypha.hyphy.hypos.hyrax.hyson.hythe.iambi.iambs.ibrik.icers.iched.iches.ichor.icier.icker.ickle.icons.ictal.ictic.ictus.idant.ideas.idees.ident.idled.idles.idola.idols.idyls.iftar.igapo.igged.iglus.ihram.ikans.ikats.ikons.ileac.ileal.ileum.ileus.iliad.ilial.ilium.iller.illth.imago.imams.imari.imaum.imbar.imbed.imide.imido.imids.imine.imino.immew.immit.immix.imped.impis.impot.impro.imshi.imshy.inapt.inarm.inbye.incel.incle.incog.incus.incut.indew.india.indie.indol.indow.indri.indue.inerm.infix.infos.infra.ingan.ingle.inion.inked.inker.inkle.inned.innit.inorb.inrun.inset.inspo.intel.intil.intis.intra.inula.inure.inurn.inust.invar.inwit.iodic.iodid.iodin.iotas.ippon.irade.irids.iring.irked.iroko.irone.irons.isbas.ishes.isled.isles.isnae.issei.istle.items.ither.ivied.ivies.ixias.ixnay.ixora.ixtle.izard.izars.izzat.jaaps.jabot.jacal.jacks.jacky.jaded.jades.jafas.jaffa.jagas.jager.jaggs.jaggy.jagir.jagra.jails.jaker.jakes.jakey.jalap.jalop.jambe.jambo.jambs.jambu.james.jammy.jamon.janes.janns.janny.janty.japan.japed.japer.japes.jarks.jarls.jarps.jarta.jarul.jasey.jaspe.jasps.jatos.jauks.jaups.javas.javel.jawan.jawed.jaxie.jeans.jeats.jebel.jedis.jeels.jeely.jeeps.jeers.jeeze.jefes.jeffs.jehad.jehus.jelab.jello.jells.jembe.jemmy.jenny.jeons.jerid.jerks.jerry.jesse.jests.jesus.jetes.jeton.jeune.jewed.jewie.jhala.jiaos.jibba.jibbs.jibed.jiber.jibes.jiffs.jiggy.jigot.jihad.jills.jilts.jimmy.jimpy.jingo.jinks.jinne.jinni.jinns.jirds.jirga.jirre.jisms.jived.jiver.jives.jivey.jnana.jobed.jobes.jocko.jocks.jocky.jocos.jodel.joeys.johns.joins.joked.jokes.jokey.jokol.joled.joles.jolls.jolts.jolty.jomon.jomos.jones.jongs.jonty.jooks.joram.jorum.jotas.jotty.jotun.joual.jougs.jouks.joule.jours.jowar.jowed.jowls.jowly.joyed.jubas.jubes.jucos.judas.judgy.judos.jugal.jugum.jujus.juked.jukes.jukus.julep.jumar.jumby.jumps.junco.junks.junky.jupes.jupon.jural.jurat.jurel.jures.justs.jutes.jutty.juves.juvie.kaama.kabab.kabar.kabob.kacha.kacks.kadai.kades.kadis.kafir.kagos.kagus.kahal.kaiak.kaids.kaies.kaifs.kaika.kaiks.kails.kaims.kaing.kains.kakas.kakis.kalam.kales.kalif.kalis.kalpa.kamas.kames.kamik.kamis.kamme.kanae.kanas.kandy.kaneh.kanes.kanga.kangs.kanji.kants.kanzu.kaons.kapas.kaphs.kapok.kapow.kapus.kaput.karas.karat.karks.karns.karoo.karos.karri.karst.karsy.karts.karzy.kasha.kasme.katal.katas.katis.katti.kaugh.kauri.kauru.kaury.kaval.kavas.kawas.kawau.kawed.kayle.kayos.kazis.kazoo.kbars.kebar.kebob.kecks.kedge.kedgy.keech.keefs.keeks.keels.keema.keeno.keens.keeps.keets.keeve.kefir.kehua.keirs.kelep.kelim.kells.kelly.kelps.kelpy.kelts.kelty.kembo.kembs.kemps.kempt.kempy.kenaf.kench.kendo.kenos.kente.kents.kepis.kerbs.kerel.kerfs.kerky.kerma.kerne.kerns.keros.kerry.kerve.kesar.kests.ketas.ketch.ketes.ketol.kevel.kevil.kexes.keyed.keyer.khadi.khafs.khans.khaph.khats.khaya.khazi.kheda.kheth.khets.khoja.khors.khoum.khuds.kiaat.kiack.kiang.kibbe.kibbi.kibei.kibes.kibla.kicks.kicky.kiddo.kiddy.kidel.kidge.kiefs.kiers.kieve.kievs.kight.kikes.kikoi.kiley.kilim.kills.kilns.kilos.kilps.kilts.kilty.kimbo.kinas.kinda.kinds.kindy.kines.kings.kinin.kinks.kinos.kiore.kipes.kippa.kipps.kirby.kirks.kirns.kirri.kisan.kissy.kists.kited.kiter.kites.kithe.kiths.kitul.kivas.kiwis.klang.klaps.klett.klick.klieg.kliks.klong.kloof.kluge.klutz.knags.knaps.knarl.knars.knaur.knawe.knees.knell.knish.knits.knive.knobs.knops.knosp.knots.knout.knowe.knows.knubs.knurl.knurr.knurs.knuts.koans.koaps.koban.kobos.koels.koffs.kofta.kogal.kohas.kohen.kohls.koine.kojis.kokam.kokas.koker.kokra.kokum.kolas.kolos.kombu.konbu.kondo.konks.kooks.kooky.koori.kopek.kophs.kopje.koppa.korai.koras.korat.kores.korma.koros.korun.korus.koses.kotch.kotos.kotow.koura.kraal.krabs.kraft.krais.krait.krang.krans.kranz.kraut.krays.kreep.kreng.krewe.krona.krone.kroon.krubi.krunk.ksars.kubie.kudos.kudus.kudzu.kufis.kugel.kuias.kukri.kukus.kulak.kulan.kulas.kulfi.kumis.kumys.kuris.kurre.kurta.kurus.kusso.kutas.kutch.kutis.kutus.kuzus.kvass.kvell.kwela.kyack.kyaks.kyang.kyars.kyats.kybos.kydst.kyles.kylie.kylin.kylix.kyloe.kynde.kynds.kypes.kyrie.kytes.kythe.laari.labda.labia.labis.labra.laced.lacer.laces.lacet.lacey.lacks.laddy.laded.lader.lades.laers.laevo.lagan.lahal.lahar.laich.laics.laids.laigh.laika.laiks.laird.lairs.lairy.laith.laity.laked.laker.lakes.lakhs.lakin.laksa.laldy.lalls.lamas.lambs.lamby.lamed.lamer.lames.lamia.lammy.lamps.lanai.lanas.lanch.lande.lands.lanes.lanks.lants.lapin.lapis.lapje.larch.lards.lardy.laree.lares.largo.laris.larks.larky.larns.larnt.larum.lased.laser.lases.lassi.lassu.lassy.lasts.latah.lated.laten.latex.lathi.laths.lathy.latke.latus.lauan.lauch.lauds.laufs.laund.laura.laval.lavas.laved.laver.laves.lavra.lavvy.lawed.lawer.lawin.lawks.lawns.lawny.laxed.laxer.laxes.laxly.layed.layin.layup.lazar.lazed.lazes.lazos.lazzi.lazzo.leads.leady.leafs.leaks.leams.leans.leany.leaps.leare.lears.leary.leats.leavy.leaze.leben.leccy.ledes.ledgy.ledum.leear.leeks.leeps.leers.leese.leets.leeze.lefte.lefts.leger.leges.legge.leggo.legit.lehrs.lehua.leirs.leish.leman.lemed.lemel.lemes.lemma.lemme.lends.lenes.lengs.lenis.lenos.lense.lenti.lento.leone.lepid.lepra.lepta.lered.leres.lerps.lesbo.leses.lests.letch.lethe.letup.leuch.leuco.leuds.leugh.levas.levee.leves.levin.levis.lewis.lexes.lexis.lezes.lezza.lezzy.liana.liane.liang.liard.liars.liart.liber.libra.libri.lichi.licht.licit.licks.lidar.lidos.liefs.liens.liers.lieus.lieve.lifer.lifes.lifts.ligan.liger.ligge.ligne.liked.liker.likes.likin.lills.lilos.lilts.liman.limas.limax.limba.limbi.limbs.limby.limed.limen.limes.limey.limma.limns.limos.limpa.limps.linac.linch.linds.lindy.lined.lines.liney.linga.lings.lingy.linin.links.linky.linns.linny.linos.lints.linty.linum.linux.lions.lipas.lipes.lipin.lipos.lippy.liras.lirks.lirot.lisks.lisle.lisps.lists.litai.litas.lited.liter.lites.litho.liths.litre.lived.liven.lives.livor.livre.llano.loach.loads.loafs.loams.loans.loast.loave.lobar.lobed.lobes.lobos.lobus.loche.lochs.locie.locis.locks.locos.locum.loden.lodes.loess.lofts.logan.loges.loggy.logia.logie.logoi.logon.logos.lohan.loids.loins.loipe.loirs.lokes.lolls.lolly.lolog.lomas.lomed.lomes.loner.longa.longe.longs.looby.looed.looey.loofa.loofs.looie.looks.looky.looms.loons.loony.loops.loord.loots.loped.loper.lopes.loppy.loral.loran.lords.lordy.lorel.lores.loric.loris.losed.losel.losen.loses.lossy.lotah.lotas.lotes.lotic.lotos.lotsa.lotta.lotte.lotto.lotus.loued.lough.louie.louis.louma.lound.louns.loupe.loups.loure.lours.loury.louts.lovat.loved.loves.lovey.lovie.lowan.lowed.lowes.lownd.lowne.lowns.lowps.lowry.lowse.lowts.loxed.loxes.lozen.luach.luaus.lubed.lubes.lubra.luces.lucks.lucre.ludes.ludic.ludos.luffa.luffs.luged.luger.luges.lulls.lulus.lumas.lumbi.lumme.lummy.lumps.lunas.lunes.lunet.lungi.lungs.lunks.lunts.lupin.lured.lurer.lures.lurex.lurgi.lurgy.lurks.lurry.lurve.luser.lushy.lusks.lusts.lusus.lutea.luted.luter.lutes.luvvy.luxed.luxer.luxes.lweis.lyams.lyard.lyart.lyase.lycea.lycee.lycra.lymes.lynes.lyres.lysed.lyses.lysin.lysis.lysol.lyssa.lyted.lytes.lythe.lytic.lytta.maaed.maare.maars.mabes.macas.maced.macer.maces.mache.machi.machs.macks.macle.macon.madge.madid.madre.maerl.mafic.mages.maggs.magot.magus.mahoe.mahua.mahwa.maids.maiko.maiks.maile.maill.mails.maims.mains.maire.mairs.maise.maist.makar.makes.makis.makos.malam.malar.malas.malax.males.malic.malik.malis.malls.malms.malmy.malts.malty.malus.malva.malwa.mamas.mamba.mamee.mamey.mamie.manas.manat.mandi.maneb.maned.maneh.manes.manet.mangs.manis.manky.manna.manos.manse.manta.manto.manty.manul.manus.mapau.maqui.marae.marah.maras.marcs.mardy.mares.marge.margs.maria.marid.marka.marks.marle.marls.marly.marms.maron.maror.marra.marri.marse.marts.marvy.masas.mased.maser.mases.mashy.masks.massa.massy.masts.masty.masus.matai.mated.mater.mates.maths.matin.matlo.matte.matts.matza.matzo.mauby.mauds.mauls.maund.mauri.mausy.mauts.mauzy.maven.mavie.mavin.mavis.mawed.mawks.mawky.mawns.mawrs.maxed.maxes.maxis.mayan.mayas.mayed.mayos.mayst.mazed.mazer.mazes.mazey.mazut.mbira.meads.meals.meane.means.meany.meare.mease.meath.meats.mebos.mechs.mecks.medii.medle.meeds.meers.meets.meffs.meins.meint.meiny.meith.mekka.melas.melba.melds.melic.melik.mells.melts.melty.memes.memos.menad.mends.mened.menes.menge.mengs.mensa.mense.mensh.menta.mento.menus.meous.meows.merch.mercs.merde.mered.merel.merer.meres.meril.meris.merks.merle.merls.merse.mesal.mesas.mesel.meses.meshy.mesic.mesne.meson.messy.mesto.meted.metes.metho.meths.metic.metif.metis.metol.metre.meuse.meved.meves.mewed.mewls.meynt.mezes.mezze.mezzo.mhorr.miaou.miaow.miasm.miaul.micas.miche.micht.micks.micky.micos.micra.middy.midgy.midis.miens.mieve.miffs.miffy.mifty.miggs.mihas.mihis.miked.mikes.mikra.mikva.milch.milds.miler.miles.milfs.milia.milko.milks.mille.mills.milor.milos.milpa.milts.milty.miltz.mimed.mimeo.mimer.mimes.mimsy.minae.minar.minas.mincy.minds.mined.mines.minge.mings.mingy.minis.minke.minks.minny.minos.mints.mired.mires.mirex.mirid.mirin.mirks.mirky.mirly.miros.mirvs.mirza.misch.misdo.mises.misgo.misos.missa.mists.misty.mitch.miter.mites.mitis.mitre.mitts.mixed.mixen.mixer.mixes.mixte.mixup.mizen.mizzy.mneme.moans.moats.mobby.mobes.mobey.mobie.moble.mochi.mochs.mochy.mocks.moder.modes.modge.modii.modus.moers.mofos.moggy.mohel.mohos.mohrs.mohua.mohur.moile.moils.moira.moire.moits.mojos.mokes.mokis.mokos.molal.molas.molds.moled.moles.molla.molls.molly.molto.molts.molys.momes.momma.mommy.momus.monad.monal.monas.monde.mondo.moner.mongo.mongs.monic.monie.monks.monos.monte.monty.moobs.mooch.moods.mooed.mooks.moola.mooli.mools.mooly.moong.moons.moony.moops.moors.moory.moots.moove.moped.moper.mopes.mopey.moppy.mopsy.mopus.morae.moras.morat.moray.morel.mores.moria.morne.morns.morra.morro.morse.morts.mosed.moses.mosey.mosks.mosso.moste.mosts.moted.moten.motes.motet.motey.moths.mothy.motis.motte.motts.motty.motus.motza.mouch.moues.mould.mouls.moups.moust.mousy.moved.moves.mowas.mowed.mowra.moxas.moxie.moyas.moyle.moyls.mozed.mozes.mozos.mpret.mucho.mucic.mucid.mucin.mucks.mucor.mucro.mudge.mudir.mudra.muffs.mufti.mugga.muggs.muggy.muhly.muids.muils.muirs.muist.mujik.mulct.muled.mules.muley.mulga.mulie.mulla.mulls.mulse.mulsh.mumms.mumps.mumsy.mumus.munga.munge.mungo.mungs.munis.munts.muntu.muons.muras.mured.mures.murex.murid.murks.murls.murly.murra.murre.murri.murrs.murry.murti.murva.musar.musca.mused.muser.muses.muset.musha.musit.musks.musos.musse.mussy.musth.musts.mutch.muted.muter.mutes.mutha.mutis.muton.mutts.muxed.muxes.muzak.muzzy.mvule.myall.mylar.mynah.mynas.myoid.myoma.myope.myops.myopy.mysid.mythi.myths.mythy.myxos.mzees.naams.naans.nabes.nabis.nabks.nabla.nabob.nache.nacho.nacre.nadas.naeve.naevi.naffs.nagas.naggy.nagor.nahal.naiad.naifs.naiks.nails.naira.nairu.naked.naker.nakfa.nalas.naled.nalla.named.namer.names.namma.namus.nanas.nance.nancy.nandu.nanna.nanos.nanua.napas.naped.napes.napoo.nappa.nappe.nappy.naras.narco.narcs.nards.nares.naric.naris.narks.narky.narre.nashi.natch.nates.natis.natty.nauch.naunt.navar.naves.navew.navvy.nawab.nazes.nazir.nazis.nduja.neafe.neals.neaps.nears.neath.neats.nebek.nebel.necks.neddy.needs.neeld.neele.neemb.neems.neeps.neese.neeze.negro.negus.neifs.neist.neive.nelis.nelly.nemas.nemns.nempt.nenes.neons.neper.nepit.neral.nerds.nerka.nerks.nerol.nerts.nertz.nervy.nests.netes.netop.netts.netty.neuks.neume.neums.nevel.neves.nevus.newbs.newed.newel.newie.newsy.newts.nexts.nexus.ngaio.ngana.ngati.ngoma.ngwee.nicad.nicht.nicks.nicol.nidal.nided.nides.nidor.nidus.niefs.nieve.nifes.niffs.niffy.nifty.niger.nighs.nihil.nikab.nikah.nikau.nills.nimbi.nimbs.nimps.niner.nines.ninon.nipas.nippy.niqab.nirls.nirly.nisei.nisse.nisus.niter.nites.nitid.niton.nitre.nitro.nitry.nitty.nival.nixed.nixer.nixes.nixie.nizam.nkosi.noahs.nobby.nocks.nodal.noddy.nodes.nodus.noels.noggs.nohow.noils.noily.noint.noirs.noles.nolls.nolos.nomas.nomen.nomes.nomic.nomoi.nomos.nonas.nonce.nones.nonet.nongs.nonis.nonny.nonyl.noobs.nooit.nooks.nooky.noons.noops.nopal.noria.noris.norks.norma.norms.nosed.noser.noses.notal.noted.noter.notes.notum.nould.noule.nouls.nouns.nouny.noups.novae.novas.novum.noway.nowed.nowls.nowts.nowty.noxal.noxes.noyau.noyed.noyes.nubby.nubia.nucha.nuddy.nuder.nudes.nudie.nudzh.nuffs.nugae.nuked.nukes.nulla.nulls.numbs.numen.nummy.nunny.nurds.nurdy.nurls.nurrs.nutso.nutsy.nyaff.nyala.nying.nyssa.oaked.oaker.oakum.oared.oases.oasis.oasts.oaten.oater.oaths.oaves.obang.obeah.obeli.obeys.obias.obied.obiit.obits.objet.oboes.obole.oboli.obols.occam.ocher.oches.ochre.ochry.ocker.ocrea.octad.octan.octas.octyl.oculi.odahs.odals.odeon.odeum.odism.odist.odium.odors.odour.odyle.odyls.ofays.offed.offie.oflag.ofter.ogams.ogeed.ogees.oggin.ogham.ogive.ogled.ogler.ogles.ogmic.ogres.ohias.ohing.ohmic.ohone.oidia.oiled.oiler.oinks.oints.ojime.okapi.okays.okehs.okras.oktas.oldie.oleic.olein.olent.oleos.oleum.olios.ollas.ollav.oller.ollie.ology.olpae.olpes.omasa.omber.ombus.omens.omers.omits.omlah.omovs.omrah.oncer.onces.oncet.oncus.onely.oners.onery.onium.onkus.onlay.onned.ontic.oobit.oohed.oomph.oonts.ooped.oorie.ooses.ootid.oozed.oozes.opahs.opals.opens.opepe.oping.oppos.opsin.opted.opter.orach.oracy.orals.orang.orant.orate.orbed.orcas.orcin.ordos.oread.orfes.orgia.orgic.orgue.oribi.oriel.orixa.orles.orlon.orlop.ormer.ornis.orpin.orris.ortho.orval.orzos.oscar.oshac.osier.osmic.osmol.ossia.ostia.otaku.otary.ottar.ottos.oubit.oucht.ouens.ouija.oulks.oumas.oundy.oupas.ouped.ouphe.ouphs.ourie.ousel.ousts.outby.outed.outre.outro.outta.ouzel.ouzos.ovals.ovels.ovens.overs.ovist.ovoli.ovolo.ovule.owche.owies.owled.owler.owlet.owned.owres.owrie.owsen.oxbow.oxers.oxeye.oxids.oxies.oxime.oxims.oxlip.oxter.oyers.ozeki.ozzie.paals.paans.pacas.paced.pacer.paces.pacey.pacha.packs.pacos.pacta.pacts.padis.padle.padma.padre.padri.paean.paedo.paeon.paged.pager.pages.pagle.pagod.pagri.paiks.pails.pains.paire.pairs.paisa.paise.pakka.palas.palay.palea.paled.pales.palet.palis.palki.palla.palls.pally.palms.palmy.palpi.palps.palsa.pampa.panax.pance.panda.pands.pandy.paned.panes.panga.pangs.panim.panko.panne.panni.panto.pants.panty.paoli.paolo.papas.papaw.papes.pappi.pappy.parae.paras.parch.pardi.pards.pardy.pared.paren.pareo.pares.pareu.parev.parge.pargo.paris.parki.parks.parky.parle.parly.parma.parol.parps.parra.parrs.parti.parts.parve.parvo.paseo.pases.pasha.pashm.paska.paspy.passe.pasts.pated.paten.pater.pates.paths.patin.patka.patly.patte.patus.pauas.pauls.pavan.paved.paven.paver.paves.pavid.pavin.pavis.pawas.pawaw.pawed.pawer.pawks.pawky.pawls.pawns.paxes.payed.payor.paysd.peage.peags.peaks.peaky.peals.peans.peare.pears.peart.pease.peats.peaty.peavy.peaze.pebas.pechs.pecke.pecks.pecky.pedes.pedis.pedro.peece.peeks.peels.peens.peeoy.peepe.peeps.peers.peery.peeve.peggy.peghs.peins.peise.peize.pekan.pekes.pekin.pekoe.pelas.pelau.peles.pelfs.pells.pelma.pelon.pelta.pelts.pends.pendu.pened.penes.pengo.penie.penis.penks.penna.penni.pents.peons.peony.pepla.pepos.peppy.pepsi.perai.perce.percs.perdu.perdy.perea.peres.peris.perks.perms.perns.perog.perps.perry.perse.perst.perts.perve.pervo.pervs.pervy.pesos.pests.pesty.petar.peter.petit.petre.petri.petti.petto.pewee.pewit.peyse.phage.phang.phare.pharm.pheer.phene.pheon.phese.phial.phish.phizz.phlox.phoca.phono.phons.phots.phpht.phuts.phyla.phyle.piani.pians.pibal.pical.picas.piccy.picks.picot.picra.picul.piend.piers.piert.pieta.piets.piezo.pight.pigmy.piing.pikas.pikau.piked.piker.pikes.pikey.pikis.pikul.pilae.pilaf.pilao.pilar.pilau.pilaw.pilch.pilea.piled.pilei.piler.piles.pilis.pills.pilow.pilum.pilus.pimas.pimps.pinas.pined.pines.pingo.pings.pinko.pinks.pinna.pinny.pinon.pinot.pinta.pints.pinup.pions.piony.pious.pioye.pioys.pipal.pipas.piped.pipes.pipet.pipis.pipit.pippy.pipul.pirai.pirls.pirns.pirog.pisco.pises.pisky.pisos.pissy.piste.pitas.piths.piton.pitot.pitta.piums.pixes.pized.pizes.plaas.plack.plage.plans.plaps.plash.plasm.plast.plats.platt.platy.playa.plays.pleas.plebe.plebs.plena.pleon.plesh.plews.plica.plies.plims.pling.plink.ploat.plods.plong.plonk.plook.plops.plots.plotz.plouk.plows.ploye.ploys.plues.pluff.plugs.plums.plumy.pluot.pluto.plyer.poach.poaka.poake.poboy.pocks.pocky.podal.poddy.podex.podge.podgy.podia.poems.poeps.poets.pogey.pogge.pogos.pohed.poilu.poind.pokal.poked.pokes.pokey.pokie.poled.poler.poles.poley.polio.polis.polje.polks.polls.polly.polos.polts.polys.pombe.pomes.pommy.pomos.pomps.ponce.poncy.ponds.pones.poney.ponga.pongo.pongs.pongy.ponks.ponts.ponty.ponzu.poods.pooed.poofs.poofy.poohs.pooja.pooka.pooks.pools.poons.poops.poopy.poori.poort.poots.poove.poovy.popes.poppa.popsy.porae.poral.pored.porer.pores.porge.porgy.porin.porks.porky.porno.porns.porny.porta.ports.porty.posed.poses.posey.posho.posts.potae.potch.poted.potes.potin.potoo.potsy.potto.potts.potty.pouff.poufs.pouke.pouks.poule.poulp.poult.poupe.poupt.pours.pouts.powan.powin.pownd.powns.powny.powre.poxed.poxes.poynt.poyou.poyse.pozzy.praam.prads.prahu.prams.prana.prang.praos.prase.prate.prats.pratt.praty.praus.prays.predy.preed.prees.preif.prems.premy.prent.preon.preop.preps.presa.prese.prest.preve.prexy.preys.prial.pricy.prief.prier.pries.prigs.prill.prima.primi.primp.prims.primy.prink.prion.prise.priss.proas.probs.prods.proem.profs.progs.proin.proke.prole.proll.promo.proms.pronk.props.prore.proso.pross.prost.prosy.proto.proul.prows.proyn.prunt.pruta.pryer.pryse.pseud.pshaw.psion.psoae.psoai.psoas.psora.psych.psyop.pubco.pubes.pubis.pucan.pucer.puces.pucka.pucks.puddy.pudge.pudic.pudor.pudsy.pudus.puers.puffa.puffs.puggy.pugil.puhas.pujah.pujas.pukas.puked.puker.pukes.pukey.pukka.pukus.pulao.pulas.puled.puler.pules.pulik.pulis.pulka.pulks.pulli.pulls.pully.pulmo.pulps.pulus.pumas.pumie.pumps.punas.punce.punga.pungs.punji.punka.punks.punky.punny.punto.punts.punty.pupae.pupas.pupus.purda.pured.pures.purin.puris.purls.purpy.purrs.pursy.purty.puses.pusle.pussy.putid.puton.putti.putto.putts.puzel.pwned.pyats.pyets.pygal.pyins.pylon.pyned.pynes.pyoid.pyots.pyral.pyran.pyres.pyrex.pyric.pyros.pyxed.pyxes.pyxie.pyxis.pzazz.qadis.qaids.qajaq.qanat.qapik.qibla.qophs.qorma.quads.quaff.quags.quair.quais.quaky.quale.quant.quare.quass.quate.quats.quayd.quays.qubit.quean.queme.quena.quern.queyn.queys.quich.quids.quiff.quims.quina.quine.quino.quins.quint.quipo.quips.quipu.quire.quirt.quist.quits.quoad.quods.quoif.quoin.quoit.quoll.quonk.quops.qursh.quyte.rabat.rabic.rabis.raced.races.rache.racks.racon.radge.radix.radon.raffs.rafts.ragas.ragde.raged.ragee.rager.rages.ragga.raggs.raggy.ragis.ragus.rahed.rahui.raias.raids.raiks.raile.rails.raine.rains.raird.raita.raits.rajas.rajes.raked.rakee.raker.rakes.rakia.rakis.rakus.rales.ramal.ramee.ramet.ramie.ramin.ramis.rammy.ramps.ramus.ranas.rance.rands.ranee.ranga.rangi.rangs.rangy.ranid.ranis.ranke.ranks.rants.raped.raper.rapes.raphe.rappe.rared.raree.rares.rarks.rased.raser.rases.rasps.rasse.rasta.ratal.ratan.ratas.ratch.rated.ratel.rater.rates.ratha.rathe.raths.ratoo.ratos.ratus.rauns.raupo.raved.ravel.raver.raves.ravey.ravin.rawer.rawin.rawly.rawns.raxed.raxes.rayah.rayas.rayed.rayle.rayne.razed.razee.razer.razes.razoo.readd.reads.reais.reaks.realo.reals.reame.reams.reamy.reans.reaps.rears.reast.reata.reate.reave.rebbe.rebec.rebid.rebit.rebop.rebuy.recal.recce.recco.reccy.recit.recks.recon.recta.recti.recto.redan.redds.reddy.reded.redes.redia.redid.redip.redly.redon.redos.redox.redry.redub.redux.redye.reech.reede.reeds.reefs.reefy.reeks.reeky.reels.reens.reest.reeve.refed.refel.reffo.refis.refix.refly.refry.regar.reges.reggo.regie.regma.regna.regos.regur.rehem.reifs.reify.reiki.reiks.reink.reins.reird.reist.reive.rejig.rejon.reked.rekes.rekey.relet.relie.relit.rello.reman.remap.remen.remet.remex.remix.renay.rends.reney.renga.renig.renin.renne.renos.rente.rents.reoil.reorg.repeg.repin.repla.repos.repot.repps.repro.reran.rerig.resat.resaw.resay.resee.reses.resew.resid.resit.resod.resow.resto.rests.resty.resus.retag.retax.retem.retia.retie.retox.revet.revie.rewan.rewax.rewed.rewet.rewin.rewon.rewth.rexes.rezes.rheas.rheme.rheum.rhies.rhime.rhine.rhody.rhomb.rhone.rhumb.rhyne.rhyta.riads.rials.riant.riata.ribas.ribby.ribes.riced.ricer.rices.ricey.richt.ricin.ricks.rides.ridgy.ridic.riels.riems.rieve.rifer.riffs.rifte.rifts.rifty.riggs.rigol.riled.riles.riley.rille.rills.rimae.rimed.rimer.rimes.rimus.rinds.rindy.rines.rings.rinks.rioja.riots.riped.ripes.ripps.rises.rishi.risks.risps.risus.rites.ritts.ritzy.rivas.rived.rivel.riven.rives.riyal.rizas.roads.roams.roans.roars.roary.roate.robed.robes.roble.rocks.roded.rodes.roguy.rohes.roids.roils.roily.roins.roist.rojak.rojis.roked.roker.rokes.rolag.roles.rolfs.rolls.romal.roman.romeo.romps.ronde.rondo.roneo.rones.ronin.ronne.ronte.ronts.roods.roofs.roofy.rooks.rooky.rooms.roons.roops.roopy.roosa.roose.roots.rooty.roped.roper.ropes.ropey.roque.roral.rores.roric.rorid.rorie.rorts.rorty.rosed.roses.roset.roshi.rosin.rosit.rosti.rosts.rotal.rotan.rotas.rotch.roted.rotes.rotis.rotls.roton.rotos.rotte.rouen.roues.roule.rouls.roums.roups.roupy.roust.routh.routs.roved.roven.roves.rowan.rowed.rowel.rowen.rowie.rowme.rownd.rowth.rowts.royne.royst.rozet.rozit.ruana.rubai.rubby.rubel.rubes.rubin.ruble.rubli.rubus.ruche.rucks.rudas.rudds.rudes.rudie.rudis.rueda.ruers.ruffe.ruffs.rugae.rugal.ruggy.ruing.ruins.rukhs.ruled.rules.rumal.rumbo.rumen.rumes.rumly.rummy.rumpo.rumps.rumpy.runch.runds.runed.runes.rungs.runic.runny.runts.runty.rupia.rurps.rurus.rusas.ruses.rushy.rusks.rusma.russe.rusts.ruths.rutin.rutty.ryals.rybat.ryked.rykes.rymme.rynds.ryots.ryper.saags.sabal.sabed.saber.sabes.sabha.sabin.sabir.sable.sabot.sabra.sabre.sacks.sacra.saddo.sades.sadhe.sadhu.sadis.sados.sadza.safed.safes.sagas.sager.sages.saggy.sagos.sagum.saheb.sahib.saice.saick.saics.saids.saiga.sails.saims.saine.sains.sairs.saist.saith.sajou.sakai.saker.sakes.sakia.sakis.sakti.salal.salat.salep.sales.salet.salic.salix.salle.salmi.salol.salop.salpa.salps.salse.salto.salts.salue.salut.saman.samas.samba.sambo.samek.samel.samen.sames.samey.samfu.sammy.sampi.samps.sands.saned.sanes.sanga.sangh.sango.sangs.sanko.sansa.santo.sants.saola.sapan.sapid.sapor.saran.sards.sared.saree.sarge.sargo.sarin.saris.sarks.sarky.sarod.saros.sarus.saser.sasin.sasse.satai.satay.sated.satem.sates.satis.sauba.sauch.saugh.sauls.sault.saunt.saury.sauts.saved.saver.saves.savey.savin.sawah.sawed.sawer.saxes.sayed.sayer.sayid.sayne.sayon.sayst.sazes.scabs.scads.scaff.scags.scail.scala.scall.scams.scand.scans.scapa.scape.scapi.scarp.scars.scart.scath.scats.scatt.scaud.scaup.scaur.scaws.sceat.scena.scend.schav.schmo.schul.schwa.sclim.scody.scogs.scoog.scoot.scopa.scops.scots.scoug.scoup.scowp.scows.scrab.scrae.scrag.scran.scrat.scraw.scray.scrim.scrip.scrob.scrod.scrog.scrow.scudi.scudo.scuds.scuff.scuft.scugs.sculk.scull.sculp.sculs.scums.scups.scurf.scurs.scuse.scuta.scute.scuts.scuzz.scyes.sdayn.sdein.seals.seame.seams.seamy.seans.seare.sears.sease.seats.seaze.sebum.secco.sechs.sects.seder.sedes.sedge.sedgy.sedum.seeds.seeks.seeld.seels.seely.seems.seeps.seepy.seers.sefer.segar.segni.segno.segol.segos.sehri.seifs.seils.seine.seirs.seise.seism.seity.seiza.sekos.sekts.selah.seles.selfs.sella.selle.sells.selva.semee.semes.semie.semis.senas.sends.senes.sengi.senna.senor.sensa.sensi.sente.senti.sents.senvy.senza.sepad.sepal.sepic.sepoy.septa.septs.serac.serai.seral.sered.serer.seres.serfs.serge.seric.serin.serks.seron.serow.serra.serre.serrs.serry.servo.sesey.sessa.setae.setal.seton.setts.sewan.sewar.sewed.sewel.sewen.sewin.sexed.sexer.sexes.sexto.sexts.seyen.shads.shags.shahs.shako.shakt.shalm.shaly.shama.shams.shand.shans.shaps.sharn.shash.shaul.shawm.shawn.shaws.shaya.shays.shchi.sheaf.sheal.sheas.sheds.sheel.shend.shent.sheol.sherd.shere.shero.shets.sheva.shewn.shews.shiai.shiel.shier.shies.shill.shily.shims.shins.ships.shirr.shirs.shish.shiso.shist.shite.shits.shiur.shiva.shive.shivs.shlep.shlub.shmek.shmoe.shoat.shoed.shoer.shoes.shogi.shogs.shoji.shojo.shola.shool.shoon.shoos.shope.shops.shorl.shote.shots.shott.showd.shows.shoyu.shred.shris.shrow.shtik.shtum.shtup.shule.shuln.shuls.shuns.shura.shute.shuts.shwas.shyer.sials.sibbs.sibyl.sices.sicht.sicko.sicks.sicky.sidas.sided.sider.sides.sidha.sidhe.sidle.sield.siens.sient.sieth.sieur.sifts.sighs.sigil.sigla.signa.signs.sijos.sikas.siker.sikes.silds.siled.silen.siler.siles.silex.silks.sills.silos.silts.silty.silva.simar.simas.simba.simis.simps.simul.sinds.sined.sines.sings.sinhs.sinks.sinky.sinus.siped.sipes.sippy.sired.siree.sires.sirih.siris.siroc.sirra.sirup.sisal.sises.sista.sists.sitar.sited.sites.sithe.sitka.situp.situs.siver.sixer.sixes.sixmo.sixte.sizar.sized.sizel.sizer.sizes.skags.skail.skald.skank.skart.skats.skatt.skaws.skean.skear.skeds.skeed.skeef.skeen.skeer.skees.skeet.skegg.skegs.skein.skelf.skell.skelm.skelp.skene.skens.skeos.skeps.skers.skets.skews.skids.skied.skies.skiey.skimo.skims.skink.skins.skint.skios.skips.skirl.skirr.skite.skits.skive.skivy.sklim.skoal.skody.skoff.skogs.skols.skool.skort.skosh.skran.skrik.skuas.skugs.skyed.skyer.skyey.skyfs.skyre.skyrs.skyte.slabs.slade.slaes.slags.slaid.slake.slams.slane.slank.slaps.slart.slats.slaty.slaws.slays.slebs.sleds.sleer.slews.sleys.slier.slily.slims.slipe.slips.slipt.slish.slits.slive.sloan.slobs.sloes.slogs.sloid.slojd.slomo.sloom.sloot.slops.slopy.slorm.slots.slove.slows.sloyd.slubb.slubs.slued.slues.sluff.slugs.sluit.slums.slurb.slurs.sluse.sluts.slyer.slype.smaak.smaik.smalm.smalt.smarm.smaze.smeek.smees.smeik.smeke.smerk.smews.smirr.smirs.smits.smogs.smoko.smolt.smoor.smoot.smore.smorg.smout.smowt.smugs.smurs.smush.smuts.snabs.snafu.snags.snaps.snarf.snark.snars.snary.snash.snath.snaws.snead.sneap.snebs.sneck.sneds.sneed.snees.snell.snibs.snick.snies.snift.snigs.snips.snipy.snirt.snits.snobs.snods.snoek.snoep.snogs.snoke.snood.snook.snool.snoot.snots.snowk.snows.snubs.snugs.snush.snyes.soaks.soaps.soare.soars.soave.sobas.socas.soces.socko.socks.socle.sodas.soddy.sodic.sodom.sofar.sofas.softa.softs.softy.soger.sohur.soils.soily.sojas.sojus.sokah.soken.sokes.sokol.solah.solan.solas.solde.soldi.soldo.solds.soled.solei.soler.soles.solon.solos.solum.solus.soman.somas.sonce.sonde.sones.songs.sonly.sonne.sonny.sonse.sonsy.sooey.sooks.sooky.soole.sools.sooms.soops.soote.soots.sophs.sophy.sopor.soppy.sopra.soral.soras.sorbo.sorbs.sorda.sordo.sords.sored.soree.sorel.sorer.sores.sorex.sorgo.sorns.sorra.sorta.sorts.sorus.soths.sotol.souce.souct.sough.souks.souls.soums.soups.soupy.sours.souse.souts.sowar.sowce.sowed.sowff.sowfs.sowle.sowls.sowms.sownd.sowne.sowps.sowse.sowth.soyas.soyle.soyuz.sozin.spacy.spado.spaed.spaer.spaes.spags.spahi.spail.spain.spait.spake.spald.spale.spall.spalt.spams.spane.spang.spans.spard.spars.spart.spate.spats.spaul.spawl.spaws.spayd.spays.spaza.spazz.speal.spean.speat.specs.spect.speel.speer.speil.speir.speks.speld.spelk.speos.spets.speug.spews.spewy.spial.spica.spick.spics.spide.spier.spies.spiff.spifs.spiks.spile.spims.spina.spink.spins.spirt.spiry.spits.spitz.spivs.splay.splog.spode.spods.spoom.spoor.spoot.spork.sposh.spots.sprad.sprag.sprat.spred.sprew.sprit.sprod.sprog.sprue.sprug.spuds.spued.spuer.spues.spugs.spule.spume.spumy.spurs.sputa.spyal.spyre.squab.squaw.squeg.squid.squit.squiz.stabs.stade.stags.stagy.staig.stane.stang.staph.staps.starn.starr.stars.stats.staun.staws.stays.stean.stear.stedd.stede.steds.steek.steem.steen.steil.stela.stele.stell.steme.stems.stend.steno.stens.stent.steps.stept.stere.stets.stews.stewy.steys.stich.stied.sties.stilb.stile.stime.stims.stimy.stipa.stipe.stire.stirk.stirp.stirs.stive.stivy.stoae.stoai.stoas.stoat.stobs.stoep.stogy.stoit.stoln.stoma.stond.stong.stonk.stonn.stook.stoor.stope.stops.stopt.stoss.stots.stott.stoun.stoup.stour.stown.stowp.stows.strad.strae.strag.strak.strep.strew.stria.strig.strim.strop.strow.stroy.strum.stubs.stude.studs.stull.stulm.stumm.stums.stuns.stupa.stupe.sture.sturt.styed.styes.styli.stylo.styme.stymy.styre.styte.subah.subas.subby.suber.subha.succi.sucks.sucky.sucre.sudds.sudor.sudsy.suede.suent.suers.suete.suets.suety.sugan.sughs.sugos.suhur.suids.suint.suits.sujee.sukhs.sukuk.sulci.sulfa.sulfo.sulks.sulph.sulus.sumis.summa.sumos.sumph.sumps.sunis.sunks.sunna.sunns.sunup.supes.supra.surah.sural.suras.surat.surds.sured.sures.surfs.surfy.surgy.surra.sused.suses.susus.sutor.sutra.sutta.swabs.swack.swads.swage.swags.swail.swain.swale.swaly.swamy.swang.swank.swans.swaps.swapt.sward.sware.swarf.swart.swats.swayl.sways.sweal.swede.sweed.sweel.sweer.swees.sweir.swelt.swerf.sweys.swies.swigs.swile.swims.swink.swipe.swire.swiss.swith.swits.swive.swizz.swobs.swole.swoln.swops.swopt.swots.swoun.sybbe.sybil.syboe.sybow.sycee.syces.sycon.syens.syker.sykes.sylis.sylph.sylva.symar.synch.syncs.synds.syned.synes.synth.syped.sypes.syphs.syrah.syren.sysop.sythe.syver.taals.taata.taber.tabes.tabid.tabis.tabla.tabor.tabun.tabus.tacan.taces.tacet.tache.tacho.tachs.tacks.tacos.tacts.taels.tafia.taggy.tagma.tahas.tahrs.taiga.taigs.taiko.tails.tains.taira.taish.taits.tajes.takas.takes.takhi.takin.takis.takky.talak.talaq.talar.talas.talcs.talcy.talea.taler.tales.talks.talky.talls.talma.talpa.taluk.talus.tamal.tamed.tames.tamin.tamis.tammy.tamps.tanas.tanga.tangi.tangs.tanhs.tanka.tanks.tanky.tanna.tansy.tanti.tanto.tanty.tapas.taped.tapen.tapes.tapet.tapis.tappa.tapus.taras.tardo.tared.tares.targa.targe.tarns.taroc.tarok.taros.tarps.tarre.tarry.tarsi.tarts.tarty.tasar.tased.taser.tases.tasks.tassa.tasse.tasso.tatar.tater.tates.taths.tatie.tatou.tatts.tatus.taube.tauld.tauon.taupe.tauts.tavah.tavas.taver.tawai.tawas.tawed.tawer.tawie.tawse.tawts.taxed.taxer.taxes.taxis.taxol.taxon.taxor.taxus.tayra.tazza.tazze.teade.teads.teaed.teaks.teals.teams.tears.teats.teaze.techs.techy.tecta.teels.teems.teend.teene.teens.teeny.teers.teffs.teggs.tegua.tegus.tehrs.teiid.teils.teind.teins.telae.telco.teles.telex.telia.telic.tells.telly.teloi.telos.temed.temes.tempi.temps.tempt.temse.tench.tends.tendu.tenes.tenge.tenia.tenne.tenno.tenny.tenon.tents.tenty.tenue.tepal.tepas.tepoy.terai.teras.terce.terek.teres.terfe.terfs.terga.terms.terne.terns.terry.terts.tesla.testa.teste.tests.tetes.teths.tetra.tetri.teuch.teugh.tewed.tewel.tewit.texas.texes.texts.thack.thagi.thaim.thale.thali.thana.thane.thang.thans.thanx.tharm.thars.thaws.thawy.thebe.theca.theed.theek.thees.thegn.theic.thein.thelf.thema.thens.theow.therm.thesp.thete.thews.thewy.thigs.thilk.thill.thine.thins.thiol.thirl.thoft.thole.tholi.thoro.thorp.thous.thowl.thrae.thraw.thrid.thrip.throe.thuds.thugs.thuja.thunk.thurl.thuya.thymi.thymy.tians.tiars.tical.ticca.ticed.tices.tichy.ticks.ticky.tiddy.tided.tides.tiers.tiffs.tifos.tifts.tiges.tigon.tikas.tikes.tikis.tikka.tilak.tiled.tiler.tiles.tills.tilly.tilth.tilts.timbo.timed.times.timon.timps.tinas.tinct.tinds.tinea.tined.tines.tinge.tings.tinks.tinny.tints.tinty.tipis.tippy.tired.tires.tirls.tiros.tirrs.titch.titer.titis.titre.titty.titup.tiyin.tiyns.tizes.tizzy.toads.toady.toaze.tocks.tocky.tocos.todde.toeas.toffs.toffy.tofts.tofus.togae.togas.toged.toges.togue.tohos.toile.toils.toing.toise.toits.tokay.toked.toker.tokes.tokos.tolan.tolar.tolas.toled.toles.tolls.tolly.tolts.tolus.tolyl.toman.tombs.tomes.tomia.tommy.tomos.tondi.tondo.toned.toner.tones.toney.tongs.tonka.tonks.tonne.tonus.tools.tooms.toons.toots.toped.topee.topek.toper.topes.tophe.tophi.tophs.topis.topoi.topos.toppy.toque.torah.toran.toras.torcs.tores.toric.torii.toros.torot.torrs.torse.torsi.torsk.torta.torte.torts.tosas.tosed.toses.toshy.tossy.toted.toter.totes.totty.touks.touns.tours.touse.tousy.touts.touze.touzy.towed.towie.towns.towny.towse.towsy.towts.towze.towzy.toyed.toyer.toyon.toyos.tozed.tozes.tozie.trabs.trads.tragi.traik.trams.trank.tranq.trans.trant.trape.traps.trapt.trass.trats.tratt.trave.trayf.trays.treck.treed.treen.trees.trefa.treif.treks.trema.trems.tress.trest.trets.trews.treyf.treys.triac.tride.trier.tries.triff.trigo.trigs.trike.trild.trill.trims.trine.trins.triol.trior.trios.trips.tripy.trist.troad.troak.troat.trock.trode.trods.trogs.trois.troke.tromp.trona.tronc.trone.tronk.trons.trooz.troth.trots.trows.troys.trued.trues.trugo.trugs.trull.tryer.tryke.tryma.tryps.tsade.tsadi.tsars.tsked.tsuba.tsubo.tuans.tuart.tuath.tubae.tubar.tubas.tubby.tubed.tubes.tucks.tufas.tuffe.tuffs.tufts.tufty.tugra.tuile.tuina.tuism.tuktu.tules.tulpa.tulsi.tumid.tummy.tumps.tumpy.tunas.tunds.tuned.tuner.tunes.tungs.tunny.tupek.tupik.tuple.tuque.turds.turfs.turfy.turks.turme.turms.turns.turnt.turps.turrs.tushy.tusks.tusky.tutee.tutti.tutty.tutus.tuxes.tuyer.twaes.twain.twals.twank.twats.tways.tweel.tween.tweep.tweer.twerk.twerp.twier.twigs.twill.twilt.twink.twins.twiny.twire.twirp.twite.twits.twoer.twyer.tyees.tyers.tyiyn.tykes.tyler.tymps.tynde.tyned.tynes.typal.typed.types.typey.typic.typos.typps.typto.tyran.tyred.tyres.tyros.tythe.tzars.udals.udons.ugali.ugged.uhlan.uhuru.ukase.ulama.ulans.ulema.ulmin.ulnad.ulnae.ulnar.ulnas.ulpan.ulvas.ulyie.ulzie.umami.umbel.umber.umble.umbos.umbre.umiac.umiak.umiaq.ummah.ummas.ummed.umped.umphs.umpie.umpty.umrah.umras.unais.unapt.unarm.unary.unaus.unbag.unban.unbar.unbed.unbid.unbox.uncap.unces.uncia.uncos.uncoy.uncus.undam.undee.undos.undug.uneth.unfix.ungag.unget.ungod.ungot.ungum.unhat.unhip.unica.units.unjam.unked.unket.unkid.unlaw.unlay.unled.unlet.unlid.unman.unmew.unmix.unpay.unpeg.unpen.unpin.unred.unrid.unrig.unrip.unsaw.unsay.unsee.unsew.unsex.unsod.untax.untin.unwet.unwit.unwon.upbow.upbye.updos.updry.upend.upjet.uplay.upled.uplit.upped.upran.uprun.upsee.upsey.uptak.upter.uptie.uraei.urali.uraos.urare.urari.urase.urate.urbex.urbia.urdee.ureal.ureas.uredo.ureic.urena.urent.urged.urger.urges.urial.urite.urman.urnal.urned.urped.ursae.ursid.urson.urubu.urvas.users.usnea.usque.usure.usury.uteri.uveal.uveas.uvula.vacua.vaded.vades.vagal.vagus.vails.vaire.vairs.vairy.vakas.vakil.vales.valis.valse.vamps.vampy.vanda.vaned.vanes.vangs.vants.vaped.vaper.vapes.varan.varas.vardy.varec.vares.varia.varix.varna.varus.varve.vasal.vases.vasts.vasty.vatic.vatus.vauch.vaute.vauts.vawte.vaxes.veale.veals.vealy.veena.veeps.veers.veery.vegas.veges.vegie.vegos.vehme.veils.veily.veins.veiny.velar.velds.veldt.veles.vells.velum.venae.venal.vends.vendu.veney.venge.venin.vents.venus.verbs.verra.verry.verst.verts.vertu.vespa.vesta.vests.vetch.vexed.vexer.vexes.vexil.vezir.vials.viand.vibes.vibex.vibey.viced.vices.vichy.viers.views.viewy.vifda.viffs.vigas.vigia.vilde.viler.villi.vills.vimen.vinal.vinas.vinca.vined.viner.vines.vinew.vinic.vinos.vints.viold.viols.vired.vireo.vires.virga.virge.virid.virls.virtu.visas.vised.vises.visie.visne.vison.visto.vitae.vitas.vitex.vitro.vitta.vivas.vivat.vivda.viver.vives.vizir.vizor.vleis.vlies.vlogs.voars.vocab.voces.voddy.vodou.vodun.voema.vogie.voids.voile.voips.volae.volar.voled.voles.volet.volks.volta.volte.volti.volts.volva.volve.vomer.voted.votes.vouge.voulu.vowed.vower.voxel.vozhd.vraic.vrils.vroom.vrous.vrouw.vrows.vuggs.vuggy.vughs.vughy.vulgo.vulns.vulva.vutty.waacs.wacke.wacko.wacks.wadds.waddy.waded.wader.wades.wadge.wadis.wadts.waffs.wafts.waged.wages.wagga.wagyu.wahoo.waide.waifs.waift.wails.wains.wairs.waite.waits.wakas.waked.waken.waker.wakes.wakfs.waldo.walds.waled.waler.wales.walie.walis.walks.walla.walls.wally.walty.wamed.wames.wamus.wands.waned.wanes.waney.wangs.wanks.wanky.wanle.wanly.wanna.wants.wanty.wanze.waqfs.warbs.warby.wards.wared.wares.warez.warks.warms.warns.warps.warre.warst.warts.wases.washy.wasms.wasps.waspy.wasts.watap.watts.wauff.waugh.wauks.waulk.wauls.waurs.waved.waves.wavey.wawas.wawes.wawls.waxed.waxer.waxes.wayed.wazir.wazoo.weald.weals.weamb.weans.wears.webby.weber.wecht.wedel.wedgy.weeds.weeke.weeks.weels.weems.weens.weeny.weeps.weepy.weest.weete.weets.wefte.wefts.weids.weils.weirs.weise.weize.wekas.welds.welke.welks.welkt.wells.welly.welts.wembs.wends.wenge.wenny.wents.weros.wersh.wests.wetas.wetly.wexed.wexes.whamo.whams.whang.whaps.whare.whata.whats.whaup.whaur.wheal.whear.wheen.wheep.wheft.whelk.whelm.whens.whets.whews.wheys.whids.whift.whigs.whilk.whims.whins.whios.whips.whipt.whirr.whirs.whish.whiss.whist.whits.whity.whizz.whomp.whoof.whoot.whops.whore.whorl.whort.whoso.whows.whump.whups.whyda.wicca.wicks.wicky.widdy.wides.wiels.wifed.wifes.wifey.wifie.wifty.wigan.wigga.wiggy.wikis.wilco.wilds.wiled.wiles.wilga.wilis.wilja.wills.wilts.wimps.winds.wined.wines.winey.winge.wings.wingy.winks.winna.winns.winos.winze.wiped.wiper.wipes.wired.wirer.wires.wirra.wised.wises.wisha.wisht.wisps.wists.witan.wited.wites.withe.withs.withy.wived.wiver.wives.wizen.wizes.woads.woald.wocks.wodge.woful.wojus.woker.wokka.wolds.wolfs.wolly.wolve.wombs.womby.womyn.wonga.wongi.wonks.wonky.wonts.woods.wooed.woofs.woofy.woold.wools.woons.woops.woopy.woose.woosh.wootz.words.works.worms.wormy.worts.wowed.wowee.woxen.wrang.wraps.wrapt.wrast.wrate.wrawl.wrens.wrick.wried.wrier.wries.writs.wroke.wroot.wroth.wryer.wuddy.wudus.wulls.wurst.wuses.wushu.wussy.wuxia.wyled.wyles.wynds.wynns.wyted.wytes.xebec.xenia.xenic.xenon.xeric.xerox.xerus.xoana.xrays.xylan.xylem.xylic.xylol.xylyl.xysti.xysts.yaars.yabas.yabba.yabby.yacca.yacka.yacks.yaffs.yager.yages.yagis.yahoo.yaird.yakka.yakow.yales.yamen.yampy.yamun.yangs.yanks.yapok.yapon.yapps.yappy.yarak.yarco.yards.yarer.yarfa.yarks.yarns.yarrs.yarta.yarto.yates.yauds.yauld.yaups.yawed.yawey.yawls.yawns.yawny.yawps.ybore.yclad.ycled.ycond.ydrad.ydred.yeads.yeahs.yealm.yeans.yeard.years.yecch.yechs.yechy.yedes.yeeds.yeesh.yeggs.yelks.yells.yelms.yelps.yelts.yenta.yente.yerba.yerds.yerks.yeses.yesks.yests.yesty.yetis.yetts.yeuks.yeuky.yeven.yeves.yewen.yexed.yexes.yfere.yiked.yikes.yills.yince.yipes.yippy.yirds.yirks.yirrs.yirth.yites.yitie.ylems.ylike.ylkes.ymolt.ympes.yobbo.yobby.yocks.yodel.yodhs.yodle.yogas.yogee.yoghs.yogic.yogin.yogis.yoick.yojan.yoked.yokel.yoker.yokes.yokul.yolks.yolky.yomim.yomps.yonic.yonis.yonks.yoofs.yoops.yores.yorks.yorps.youks.yourn.yours.yourt.youse.yowed.yowes.yowie.yowls.yowza.yrapt.yrent.yrivd.yrneh.ysame.ytost.yuans.yucas.yucca.yucch.yucko.yucks.yucky.yufts.yugas.yuked.yukes.yukky.yukos.yulan.yules.yummo.yummy.yumps.yupon.yuppy.yurta.yurts.yuzus.zabra.zacks.zaida.zaidy.zaire.zakat.zaman.zambo.zamia.zanja.zante.zanza.zanze.zappy.zarfs.zaris.zatis.zaxes.zayin.zazen.zeals.zebec.zebub.zebus.zedas.zeins.zendo.zerda.zerks.zeros.zests.zetas.zexes.zezes.zhomo.zibet.ziffs.zigan.zilas.zilch.zilla.zills.zimbi.zimbs.zinco.zincs.zincy.zineb.zines.zings.zingy.zinke.zinky.zippo.zippy.ziram.zitis.zizel.zizit.zlote.zloty.zoaea.zobos.zobus.zocco.zoeae.zoeal.zoeas.zoism.zoist.zombi.zonae.zonda.zoned.zoner.zones.zonks.zooea.zooey.zooid.zooks.zooms.zoons.zooty.zoppa.zoppo.zoril.zoris.zorro.zouks.zowee.zowie.zulus.zupan.zupas.zuppa.zurfs.zuzim.zygal.zygon.zymes.zymic".split("."), $ = 5, Bi = 6, Vi = Object.freeze(new Set([...zi, ...Ri]));
4486
- function Hi() {
4487
- return Ri[Math.floor(Math.random() * Ri.length)];
4536
+ }, Vi = /* @__PURE__ */ "which.there.their.about.would.these.other.words.could.write.first.water.after.where.right.think.three.years.place.sound.great.again.still.every.small.found.those.never.under.might.while.house.world.below.asked.going.large.until.along.shall.being.often.earth.began.since.study.night.light.above.paper.parts.young.story.point.times.heard.whole.white.given.means.music.miles.thing.today.later.using.money.lines.order.group.among.learn.known.space.table.early.trees.short.hands.state.black.shown.stood.front.voice.kinds.makes.comes.close.power.lived.vowel.taken.built.heart.ready.quite.class.bring.round.horse.shows.piece.green.stand.birds.start.river.tried.least.field.whose.girls.leave.added.color.third.hours.moved.plant.doing.names.forms.heavy.ideas.cried.check.floor.begin.woman.alone.plane.spell.watch.carry.wrote.clear.named.books.child.glass.human.takes.party.build.seems.blood.sides.seven.mouth.solve.north.value.death.maybe.happy.tells.gives.looks.shape.lives.steps.areas.sense.speak.force.ocean.speed.women.metal.south.grass.scale.cells.lower.sleep.wrong.pages.ships.needs.rocks.eight.major.level.total.ahead.reach.stars.store.sight.terms.catch.works.board.cover.songs.equal.stone.waves.guess.dance.spoke.break.cause.radio.weeks.lands.basic.liked.trade.fresh.final.fight.meant.drive.spent.local.waxes.knows.train.bread.homes.teeth.coast.thick.brown.clean.quiet.sugar.facts.steel.forth.rules.notes.units.peace.month.verbs.seeds.helps.sharp.visit.woods.chief.walls.cross.wings.grown.cases.foods.crops.fruit.stick.wants.stage.sheep.nouns.plain.drink.bones.apart.turns.moves.touch.angle.based.range.marks.tired.older.farms.spend.shoes.goods.chair.twice.cents.empty.alike.style.broke.pairs.count.enjoy.score.shore.roots.paint.heads.shook.serve.angry.crowd.wheel.quick.dress.share.alive.noise.solid.cloth.signs.hills.types.drawn.worth.truck.piano.upper.loved.usual.faces.drove.cabin.boats.towns.proud.court.model.prime.fifty.plans.yards.prove.tools.price.sheet.smell.boxes.raise.match.truth.roads.threw.enemy.lunch.chart.scene.graph.doubt.guide.winds.block.grain.smoke.mixed.games.wagon.sweet.topic.extra.plate.title.knife.fence.falls.cloud.wheat.plays.enter.broad.steam.atoms.press.lying.basis.clock.taste.grows.thank.storm.agree.brain.track.smile.funny.beach.stock.hurry.saved.sorry.giant.trail.offer.ought.rough.daily.avoid.keeps.throw.allow.cream.laugh.edges.teach.frame.bells.dream.magic.occur.ended.chord.false.skill.holes.dozen.brave.apple.climb.outer.pitch.ruler.holds.fixed.costs.calls.blank.staff.labor.eaten.youth.tones.honor.globe.gases.doors.poles.loose.apply.tears.exact.brush.chest.layer.whale.minor.faith.tests.judge.items.worry.waste.hoped.strip.begun.aside.lakes.bound.depth.candy.event.worse.aware.shell.rooms.ranch.image.snake.aloud.dried.likes.motor.pound.knees.refer.fully.chain.shirt.flour.drops.spite.orbit.banks.shoot.curve.tribe.tight.blind.slept.shade.claim.flies.theme.queen.fifth.union.hence.straw.entry.issue.birth.feels.anger.brief.rhyme.glory.guard.flows.flesh.owned.trick.yours.sizes.noted.width.burst.route.lungs.uncle.bears.royal.kings.forty.trial.cards.brass.opera.chose.owner.vapor.beats.mouse.tough.wires.meter.tower.finds.inner.stuck.arrow.poems.label.swing.solar.truly.tense.beans.split.rises.weigh.hotel.stems.pride.swung.grade.digit.badly.boots.pilot.sales.swept.lucky.prize.stove.tubes.acres.wound.steep.slide.trunk.error.porch.slave.exist.faced.mines.marry.juice.raced.waved.goose.trust.fewer.favor.mills.views.joint.eager.spots.blend.rings.adult.index.nails.horns.balls.flame.rates.drill.trace.skins.waxed.seats.stuff.ratio.minds.dirty.silly.coins.hello.trips.leads.rifle.hopes.bases.shine.bench.moral.fires.meals.shake.shops.cycle.movie.slope.canoe.teams.folks.fired.bands.thumb.shout.canal.habit.reply.ruled.fever.crust.shelf.walks.midst.crack.print.tales.coach.stiff.flood.verse.awake.rocky.march.fault.swift.faint.civil.ghost.feast.blade.limit.germs.reads.ducks.dairy.worst.gifts.lists.stops.rapid.brick.claws.beads.beast.skirt.cakes.lions.frogs.tries.nerve.grand.armed.treat.honey.moist.legal.penny.crown.shock.taxes.sixty.altar.pulls.sport.drums.talks.dying.dates.drank.blows.lever.wages.proof.drugs.tanks.sings.tails.pause.herds.arose.hated.clues.novel.shame.burnt.races.flash.weary.heels.token.coats.spare.shiny.alarm.dimes.sixth.clerk.mercy.sunny.guest.float.shone.pipes.worms.bills.sweat.suits.smart.upset.rains.sandy.rainy.parks.sadly.fancy.rider.unity.bunch.rolls.crash.craft.newly.gates.hatch.paths.funds.wider.grace.grave.tides.admit.shift.sails.pupil.tiger.angel.cruel.agent.drama.urged.patch.nests.vital.sword.blame.weeds.screw.vocal.bacon.chalk.cargo.crazy.acted.goats.arise.witch.loves.queer.dwell.backs.ropes.shots.merry.phone.cheek.peaks.ideal.beard.eagle.creek.cries.ashes.stall.yield.mayor.opens.input.fleet.tooth.cubic.wives.burns.poets.apron.spear.organ.cliff.stamp.paste.rural.baked.chase.slice.slant.knock.noisy.sorts.stays.wiped.blown.piled.clubs.cheer.widow.twist.tenth.hides.comma.sweep.spoon.stern.crept.maple.deeds.rides.muddy.crime.jelly.ridge.drift.dusty.devil.tempo.humor.sends.steal.tents.waist.roses.reign.noble.cheap.dense.linen.geese.woven.posts.hired.wrath.salad.bowed.tires.shark.belts.grasp.blast.polar.fungi.tends.pearl.loads.jokes.veins.frost.hears.loses.hosts.diver.phase.toads.alert.tasks.seams.coral.focus.naked.puppy.jumps.spoil.quart.macro.fears.flung.spark.vivid.brook.steer.spray.decay.ports.socks.urban.goals.grant.minus.films.tunes.shaft.firms.skies.bride.wreck.flock.stare.hobby.bonds.dared.faded.thief.crude.pants.flute.votes.tonal.radar.wells.skull.hairs.argue.wears.dolls.voted.caves.cared.broom.scent.panel.fairy.olive.bends.prism.lamps.cable.peach.ruins.rally.schwa.lambs.sells.cools.draft.charm.limbs.brake.gazed.cubes.delay.beams.fetch.ranks.array.harsh.camel.vines.picks.naval.purse.rigid.crawl.toast.soils.sauce.basin.ponds.twins.wrist.fluid.pools.brand.stalk.robot.reeds.hoofs.buses.sheer.grief.bloom.dwelt.melts.risen.flags.knelt.fiber.roofs.freed.armor.piles.aimed.algae.twigs.lemon.ditch.drunk.rests.chill.slain.panic.cords.tuned.crisp.ledge.dived.swamp.clung.stole.molds.yarns.liver.gauge.breed.stool.gulls.awoke.gross.diary.rails.belly.trend.flask.stake.fried.draws.actor.handy.bowls.haste.scope.deals.knots.moons.essay.thump.hangs.bliss.dealt.gains.bombs.clown.palms.cones.roast.tidal.bored.chant.acids.dough.camps.swore.lover.hooks.males.cocoa.punch.award.reins.ninth.noses.links.drain.fills.nylon.lunar.pulse.flown.elbow.fatal.sites.moths.meats.foxes.mined.attic.fiery.mount.usage.swear.snowy.rusty.scare.traps.relax.react.valid.robin.cease.gills.prior.safer.polio.loyal.swell.salty.marsh.vague.weave.mound.seals.mules.virus.scout.acute.windy.stout.folds.seize.hilly.joins.pluck.stack.lords.dunes.burro.hawks.trout.feeds.scarf.halls.coals.towel.souls.elect.buggy.pumps.loans.spins.files.oxide.pains.photo.rival.flats.syrup.rodeo.sands.moose.pints.curly.comic.cloak.onion.clams.scrap.didst.couch.codes.fails.ounce.lodge.greet.gypsy.utter.paved.zones.fours.alley.tiles.bless.crest.elder.kills.yeast.erect.bugle.medal.roles.hound.snail.alter.ankle.relay.loops.zeros.bites.modes.debts.realm.glove.rayon.swims.poked.stray.lifts.maker.lumps.graze.dread.barns.docks.masts.pours.wharf.curse.plump.robes.seeks.cedar.curls.jolly.myths.cages.gloom.locks.pedal.beets.crows.anode.slash.creep.rowed.chips.fists.wines.cares.valve.newer.motel.ivory.necks.clamp.barge.blues.alien.frown.strap.crews.shack.gonna.saves.stump.ferry.idols.cooks.juicy.glare.carts.alloy.bulbs.lawns.lasts.fuels.oddly.crane.filed.weird.shawl.slips.troop.bolts.suite.sleek.quilt.tramp.blaze.atlas.odors.scrub.crabs.probe.logic.adobe.exile.rebel.grind.sting.spine.cling.desks.grove.leaps.prose.lofty.agony.snare.tusks.bulls.moods.humid.finer.dimly.plank.china.pines.guilt.sacks.brace.quote.lathe.gaily.fonts.scalp.adopt.foggy.ferns.grams.clump.perch.tumor.teens.crank.fable.hedge.genes.sober.boast.tract.cigar.unite.owing.thigh.haiku.swish.dikes.wedge.booth.eased.frail.cough.tombs.darts.forts.choir.pouch.pinch.hairy.buyer.torch.vigor.waltz.heats.herbs.users.flint.click.madam.bleak.blunt.aided.lacks.masks.waded.risks.nurse.chaos.sewed.cured.ample.lease.steak.sinks.merit.bluff.bathe.gleam.bonus.colts.shear.gland.silky.skate.birch.anvil.sleds.groan.maids.meets.speck.hymns.hints.drown.bosom.slick.quest.coils.spied.snows.stead.snack.plows.blond.tamed.thorn.waits.glued.banjo.tease.arena.bulky.carve.stunt.warms.shady.razor.folly.leafy.notch.fools.otter.pears.flush.genus.ached.fives.flaps.spout.smote.fumes.adapt.cuffs.tasty.stoop.clips.disks.sniff.lanes.brisk.imply.demon.super.furry.raged.growl.texts.hardy.stung.typed.hates.wiser.timid.serum.beaks.rotor.casts.baths.glide.plots.trait.resin.slums.lyric.puffs.decks.brood.mourn.aloft.abuse.whirl.edged.ovary.quack.heaps.slang.await.civic.saint.bevel.sonar.aunts.packs.froze.tonic.corps.swarm.frank.repay.gaunt.wired.niece.cello.needy.chuck.stony.media.surge.hurts.repel.husky.dated.hunts.mists.exert.dries.mates.sworn.baker.spice.oasis.boils.spurs.doves.sneak.paces.colon.siege.strum.drier.cacao.humus.bales.piped.nasty.rinse.boxer.shrub.amuse.tacks.cited.slung.delta.laden.larva.rents.yells.spool.spill.crush.jewel.snaps.stain.kicks.tying.slits.rated.eerie.smash.plums.zebra.earns.bushy.scary.squad.tutor.silks.slabs.bumps.evils.fangs.snout.peril.pivot.yacht.lobby.jeans.grins.viola.liner.comet.scars.chops.raids.eater.slate.skips.soles.misty.urine.knobs.sleet.holly.pests.forks.grill.trays.pails.borne.tenor.wares.carol.woody.canon.wakes.kitty.miner.polls.shaky.nasal.scorn.chess.taxis.crate.shyly.tulip.forge.nymph.budge.lowly.abide.depot.oases.asses.sheds.fudge.pills.rivet.thine.groom.lanky.boost.broth.heave.gravy.beech.timed.quail.inert.gears.chick.hinge.trash.clash.sighs.renew.bough.dwarf.slows.quill.shave.spore.sixes.chunk.madly.paced.braid.fuzzy.motto.spies.slack.mucus.magma.awful.discs.erase.posed.asset.cider.taper.theft.churn.satin.slots.taxed.bully.sloth.shale.tread.raked.curds.manor.aisle.bulge.loins.stair.tapes.leans.bunks.squat.towed.lance.panes.sakes.heirs.caste.dummy.pores.fauna.crook.poise.epoch.risky.warns.fling.berry.grape.flank.drags.squid.pelts.icing.irony.irons.barks.whoop.choke.diets.whips.tally.dozed.twine.kites.bikes.ticks.riots.roars.vault.looms.scold.blink.dandy.pupae.sieve.spike.ducts.lends.pizza.brink.widen.plumb.pagan.feats.bison.soggy.scoop.argon.nudge.skiff.amber.sexes.rouse.salts.hitch.exalt.leash.dined.chute.snort.gusts.melon.cheat.reefs.llama.lasso.debut.quota.oaths.prone.mixes.rafts.dives.stale.inlet.flick.pinto.brows.untie.batch.greed.chore.stirs.blush.onset.barbs.volts.beige.swoop.paddy.laced.shove.jerky.poppy.leaks.fares.dodge.godly.squaw.affix.brute.nicer.undue.snarl.merge.doses.showy.daddy.roost.vases.swirl.petty.colds.curry.cobra.genie.flare.messy.cores.soaks.ripen.whine.amino.plaid.spiny.mowed.baton.peers.vowed.pious.swans.exits.afoot.plugs.idiom.chili.rites.serfs.cleft.berth.grubs.annex.dizzy.hasty.latch.wasps.mirth.baron.plead.aloof.aging.pixel.bared.mummy.hotly.auger.buddy.chaps.badge.stark.fairs.gully.mumps.emery.filly.ovens.drone.gauze.idiot.fussy.annoy.shank.gouge.bleed.elves.roped.unfit.baggy.mower.scant.grabs.fleas.lousy.album.sawed.cooky.murky.infer.burly.waged.dingy.brine.kneel.creak.vanes.smoky.spurt.combs.easel.laces.humps.rumor.aroma.horde.swiss.leapt.opium.slime.afire.pansy.mares.soaps.husks.snips.hazel.lined.cafes.naive.wraps.sized.piers.beset.agile.tongs.steed.fraud.booty.valor.downy.witty.mossy.psalm.scuba.tours.polka.milky.gaudy.shrug.tufts.wilds.laser.truss.hares.creed.lilac.siren.tarry.bribe.swine.muted.flips.cures.sinew.boxed.hoops.gasps.hoods.niche.yucca.glows.sewer.whack.fuses.gowns.droop.bucks.pangs.mails.whisk.haven.clasp.sling.stint.urges.champ.piety.chirp.pleat.posse.sunup.menus.howls.quake.knack.plaza.fiend.caked.bangs.erupt.poker.olden.cramp.voter.poses.manly.slump.fined.grips.gaped.purge.hiked.maize.fluff.strut.sloop.prowl.roach.cocks.bland.dials.plume.slaps.soups.dully.wills.foams.solos.skier.eaves.totem.fused.latex.veils.mused.mains.myrrh.racks.galls.gnats.bouts.sisal.shuts.hoses.dryly.hover.gloss.seeps.denim.putty.guppy.leaky.dusky.filth.oboes.spans.fowls.adorn.glaze.haunt.dares.obeys.bakes.abyss.smelt.gangs.aches.trawl.claps.undid.spicy.hoist.fades.vicar.acorn.pussy.gruff.musty.tarts.snuff.hunch.truce.tweed.dryer.loser.sheaf.moles.lapse.tawny.vexed.autos.wager.domes.sheen.clang.spade.sowed.broil.slyly.studs.grunt.donor.slugs.aspen.homer.croak.tithe.halts.avert.havoc.hogan.glint.ruddy.jeeps.flaky.ladle.taunt.snore.fines.props.prune.pesos.radii.pokes.tiled.daisy.heron.villa.farce.binds.cites.fixes.jerks.livid.waked.inked.booms.chews.licks.hyena.scoff.lusty.sonic.smith.usher.tucks.vigil.molts.sects.spars.dumps.scaly.wisps.sores.mince.panda.flier.axles.plied.booby.patio.rabbi.petal.polyp.tints.grate.troll.tolls.relic.phony.bleat.flaws.flake.snags.aptly.drawl.ulcer.soapy.bossy.monks.crags.caged.twang.diner.taped.cadet.grids.spawn.guile.noose.mores.girth.slimy.aides.spasm.burrs.alibi.lymph.saucy.muggy.liter.joked.goofy.exams.enact.stork.lured.toxic.omens.nears.covet.wrung.forum.venom.moody.alder.sassy.flair.guild.prays.wrens.hauls.stave.tilts.pecks.stomp.gales.tempt.capes.mesas.omits.tepee.harry.wring.evoke.limes.cluck.lunge.highs.canes.giddy.lithe.verge.khaki.queue.loath.foyer.outdo.fared.deter.crumb.astir.spire.jumpy.extol.buoys.stubs.lucid.thong.afore.whiff.maxim.hulls.clogs.slats.jiffy.arbor.cinch.igloo.goody.gazes.dowel.calms.bitch.scowl.gulps.coded.waver.mason.lobes.ebony.flail.isles.clods.dazed.adept.oozed.sedan.clays.warts.ketch.skunk.manes.adore.sneer.mango.fiord.flora.roomy.minks.thaws.watts.freer.exult.plush.paled.twain.clink.scamp.pawed.grope.bravo.gable.stink.sever.waned.rarer.regal.wards.fawns.babes.unify.amend.oaken.glade.visor.hefty.nines.throb.pecan.butts.pence.sills.jails.flyer.saber.nomad.miter.beeps.domed.gulfs.curbs.heath.moors.aorta.larks.tangy.wryly.cheep.rages.evade.lures.freak.vogue.tunic.slams.knits.dumpy.mania.spits.firth.hikes.trots.nosed.clank.dogma.bloat.balsa.graft.middy.stile.keyed.finch.sperm.chaff.wiles.amigo.copra.amiss.eying.twirl.lurch.popes.chins.smock.tines.guise.grits.junks.shoal.cache.tapir.atoll.deity.toils.spree.mocks.scans.shorn.revel.raven.hoary.reels.scuff.mimic.weedy.corny.truer.rouge.ember.floes.torso.wipes.edict.sulky.recur.groin.baste.kinks.surer.piggy.moldy.franc.liars.inept.gusty.facet.jetty.equip.leper.slink.soars.cater.dowry.sided.yearn.decoy.taboo.ovals.heals.pleas.beret.spilt.gayly.rover.endow.pygmy.carat.abbey.vents.waken.chimp.fumed.sodas.vinyl.clout.wades.mites.smirk.bores.bunny.surly.frock.foray.purer.milks.query.mired.blare.froth.gruel.navel.paler.puffy.casks.grime.derby.mamma.gavel.teddy.vomit.moans.allot.defer.wield.viper.louse.erred.hewed.abhor.wrest.waxen.adage.ardor.stabs.pored.rondo.loped.fishy.bible.hires.foals.feuds.jambs.thuds.jeers.knead.quirk.rugby.expel.greys.rigor.ester.lyres.aback.glues.lotus.lurid.rungs.hutch.thyme.valet.tommy.yokes.epics.trill.pikes.ozone.caper.chime.frees.famed.leech.smite.neigh.erode.robed.hoard.salve.conic.gawky.craze.jacks.gloat.mushy.rumps.fetus.wince.pinks.shalt.toots.glens.cooed.rusts.stews.shred.parka.chugs.winks.clots.shrew.booed.filmy.juror.dents.gummy.grays.hooky.butte.dogie.poled.reams.fifes.spank.gayer.tepid.spook.taint.flirt.rogue.spiky.opals.miser.cocky.coyly.balmy.slosh.brawl.aphid.faked.hydra.brags.chide.yanks.allay.video.altos.eases.meted.chasm.longs.excel.taffy.impel.savor.koala.quays.dawns.proxy.clove.duets.dregs.tardy.briar.grimy.ultra.meaty.halve.wails.suede.mauve.envoy.arson.coves.gooey.brews.sofas.chums.amaze.zooms.abbot.halos.scour.suing.cribs.sagas.enema.wordy.harps.coupe.molar.flops.weeps.mints.ashen.felts.askew.munch.mewed.divan.vices.jumbo.blobs.blots.spunk.acrid.topaz.cubed.clans.flees.slurs.gnaws.welds.fords.emits.agate.pumas.mends.darks.dukes.plies.canny.hoots.oozes.lamed.fouls.clefs.nicks.mated.skims.brunt.tuber.tinge.fates.ditty.thins.frets.eider.bayou.mulch.fasts.amass.damps.morns.friar.palsy.vista.croon.conch.udder.tacos.skits.mikes.quits.preen.aster.adder.elegy.pulpy.scows.baled.hovel.lavas.crave.optic.welts.busts.knave.razed.shins.totes.scoot.dears.crock.mutes.trims.skein.doted.shuns.veers.fakes.yoked.wooed.hacks.sprig.wands.lulls.seers.snobs.nooks.pined.perky.mooed.frill.dines.booze.tripe.prong.drips.odder.levee.antic.sidle.pithy.corks.yelps.joker.fleck.buffs.scram.tiers.bogey.doled.irate.vales.coped.hails.elude.bulks.aired.vying.stags.strew.cocci.pacts.scabs.silos.dusts.yodel.terse.jaded.baser.jibes.foils.sways.forgo.slays.preys.treks.quell.peeks.assay.lurks.eject.boars.trite.belch.gnash.wanes.lutes.whims.dosed.chewy.snipe.umbra.teems.dozes.kelps.upped.brawn.doped.shush.rinds.slush.moron.voile.woken.fjord.sheik.jests.kayak.slews.toted.saner.drape.patty.raves.sulfa.grist.skied.vixen.civet.vouch.tiara.homey.moped.runts.serge.kinky.rills.corns.brats.pries.amble.fries.loons.tsars.datum.musky.pigmy.gnome.ravel.ovule.icily.liken.lemur.frays.silts.sifts.plods.ramps.tress.earls.dudes.waive.karat.jolts.peons.beers.horny.pales.wreak.lairs.lynch.stank.swoon.idler.abort.blitz.ensue.atone.bingo.roves.kilts.scald.adios.cynic.dulls.memos.elfin.dales.peels.peals.bares.sinus.crone.sable.hinds.shirk.enrol.wilts.roams.duped.cysts.mitts.safes.spats.coops.filet.knell.refit.covey.punks.kilns.fitly.abate.talcs.heeds.duels.wanly.ruffs.gauss.lapel.jaunt.whelp.cleat.gauzy.dirge.edits.wormy.moats.smear.prods.bowel.frisk.vests.bayed.rasps.tames.delve.embed.befit.wafer.ceded.novas.feign.spews.larch.huffs.doles.mamas.hulks.pried.brims.irked.aspic.swipe.mealy.skimp.bluer.slake.dowdy.penis.brays.pupas.egret.flunk.phlox.gripe.peony.douse.blurs.darns.slunk.lefts.chats.inane.vials.stilt.rinks.woofs.wowed.bongs.frond.ingot.evict.singe.shyer.flied.slops.dolts.drool.dells.whelk.hippy.feted.ether.cocos.hives.jibed.mazes.trios.sirup.squab.laths.leers.pasta.rifts.lopes.alias.whirs.diced.slags.lodes.foxed.idled.prows.plait.malts.chafe.cower.toyed.chefs.keels.sties.racer.etude.sucks.sulks.micas.czars.copse.ailed.abler.rabid.golds.croup.snaky.visas.palls.mopes.boned.wispy.raved.swaps.junky.doily.pawns.tamer.poach.baits.damns.gumbo.daunt.prank.hunks.buxom.heres.honks.stows.unbar.idles.routs.sages.goads.remit.copes.deign.culls.girds.haves.lucks.stunk.dodos.shams.snubs.icons.usurp.dooms.hells.soled.comas.paves.maths.perks.limps.wombs.blurb.daubs.cokes.sours.stuns.cased.musts.coeds.cowed.aping.zoned.rummy.fetes.skulk.quaff.rajah.deans.reaps.galas.tills.roved.kudos.toned.pared.scull.vexes.punts.snoop.bails.dames.hazes.lores.marts.voids.ameba.rakes.adzes.harms.rears.satyr.swill.hexes.colic.leeks.hurls.yowls.ivies.plops.musks.papaw.jells.bused.cruet.bided.filch.zests.rooks.laxly.rends.loams.basks.sires.carps.pokey.flits.muses.bawls.shuck.viler.lisps.peeps.sorer.lolls.prude.diked.floss.flogs.scums.dopes.bogie.pinky.leafs.tubas.scads.lowed.yeses.biked.qualm.evens.caned.gawks.whits.wooly.gluts.romps.bests.dunce.crony.joist.tunas.boner.malls.parch.avers.crams.pares.dally.bigot.kales.flays.leach.gushy.pooch.huger.slyer.golfs.mires.flues.loafs.arced.acnes.neons.fiefs.dints.dazes.pouts.cored.yules.lilts.beefs.mutts.fells.cowls.spuds.lames.jawed.dupes.deads.bylaw.noons.nifty.clued.vireo.gapes.metes.cuter.maims.droll.cupid.mauls.sedge.papas.wheys.eking.loots.hilts.meows.beaus.dices.peppy.riper.fogey.gists.yogas.gilts.skews.cedes.zeals.alums.okays.elope.grump.wafts.soots.blimp.hefts.mulls.hosed.cress.doffs.ruder.pixie.waifs.ousts.pucks.biers.gulch.suets.hobos.lints.brans.teals.garbs.pewee.helms.turfs.quips.wends.banes.napes.icier.swats.bagel.hexed.ogres.goner.gilds.pyres.lards.bides.paged.talon.flout.medic.veals.putts.dirks.dotes.tippy.blurt.piths.acing.barer.whets.gaits.wools.dunks.heros.swabs.dirts.jutes.hemps.surfs.okapi.chows.shoos.dusks.parry.decal.furls.cilia.sears.novae.murks.warps.slues.lamer.saris.weans.purrs.dills.togas.newts.meany.bunts.razes.goons.wicks.ruses.vends.geode.drake.judos.lofts.pulps.lauds.mucks.vises.mocha.oiled.roman.ethyl.gotta.fugue.smack.gourd.bumpy.radix.fatty.borax.cubit.cacti.gamma.focal.avail.papal.golly.elite.versa.billy.adieu.annum.howdy.rhino.norms.bobby.axiom.setup.yolks.terns.mixer.genre.knoll.abode.junta.gorge.combo.alpha.overt.kinda.spelt.prick.nobly.ephod.audio.modal.veldt.warty.fluke.bonny.bream.rosin.bolls.doers.downs.beady.motif.humph.fella.mould.crepe.kerns.aloha.glyph.azure.riser.blest.locus.lumpy.beryl.wanna.brier.tuner.rowdy.mural.timer.canst.krill.quoth.lemme.triad.tenon.amply.deeps.padre.leant.pacer.octal.dolly.trans.sumac.foamy.lolly.giver.quipu.codex.manna.unwed.vodka.ferny.salon.duple.boron.revue.crier.alack.inter.dilly.whist.cults.spake.reset.loess.decor.mover.verve.ethic.gamut.lingo.dunno.align.sissy.incur.reedy.avant.piper.waxer.calyx.basil.coons.seine.piney.lemma.trams.winch.whirr.saith.ionic.heady.harem.tummy.sally.shied.dross.farad.saver.tilde.jingo.bower.serif.facto.belle.inset.bogus.caved.forte.sooty.bongo.toves.credo.basal.yella.aglow.glean.gusto.hymen.ethos.terra.brash.scrip.swash.aleph.tinny.itchy.wanta.trice.jowls.gongs.garde.boric.twill.sower.henry.awash.libel.spurn.sabre.rebut.penal.obese.sonny.quirt.mebbe.tacit.greek.xenon.hullo.pique.roger.negro.hadst.gecko.beget.uncut.aloes.louis.quint.clunk.raped.salvo.diode.matey.hertz.xylem.kiosk.apace.cawed.peter.wench.cohos.sorta.gamba.bytes.tango.nutty.axial.aleck.natal.clomp.gored.siree.bandy.gunny.runic.whizz.rupee.fated.wiper.bards.briny.staid.hocks.ochre.yummy.gents.soupy.roper.swath.cameo.edger.spate.gimme.ebbed.breve.theta.deems.dykes.servo.telly.tabby.tares.blocs.welch.ghoul.vitae.cumin.dinky.bronc.tabor.teeny.comer.borer.sired.privy.mammy.deary.gyros.sprit.conga.quire.thugs.furor.bloke.runes.bawdy.cadre.toxin.annul.egged.anion.nodes.picky.stein.jello.audit.echos.fagot.letup.eyrie.fount.caped.axons.amuck.banal.riled.petit.umber.miler.fibre.agave.bated.bilge.vitro.feint.pudgy.mater.manic.umped.pesky.strep.slurp.pylon.puree.caret.temps.newel.yawns.seedy.treed.coups.rangy.brads.mangy.loner.circa.tibia.afoul.mommy.titer.carne.kooky.motes.amity.suave.hippo.curvy.samba.newsy.anise.imams.tulle.aways.liven.hallo.wales.opted.canto.idyll.bodes.curio.wrack.hiker.chive.yokel.dotty.demur.cusps.specs.quads.laity.toner.decry.writs.saute.clack.aught.logos.tipsy.natty.ducal.bidet.bulgy.metre.lusts.unary.goeth.baler.sited.shies.hasps.brung.holed.swank.looky.melee.huffy.loamy.pimps.titan.binge.shunt.femur.libra.seder.honed.annas.coypu.shims.zowie.jihad.savvy.nadir.basso.monic.maned.mousy.omega.laver.prima.picas.folio.mecca.reals.troth.testy.balky.crimp.chink.abets.splat.abaci.vaunt.cutie.pasty.moray.levis.ratty.islet.joust.motet.viral.nukes.grads.comfy.voila.woozy.blued.whomp.sward.metro.skeet.chine.aerie.bowie.tubby.emirs.coati.unzip.slobs.trike.funky.ducat.dewey.skoal.wadis.oomph.taker.minim.getup.stoic.synod.runty.flyby.braze.inlay.venue.louts.peaty.orlon.humpy.radon.beaut.raspy.unfed.crick.nappy.vizor.yipes.rebus.divot.kiwis.vetch.squib.sitar.kiddo.dyers.cotta.matzo.lager.zebus.crass.dacha.kneed.dicta.fakir.knurl.runny.unpin.julep.globs.nudes.sushi.tacky.stoke.kaput.butch.hulas.croft.achoo.genii.nodal.outgo.spiel.viols.fetid.cagey.fudgy.epoxy.leggy.hanky.lapis.felon.beefy.coots.melba.caddy.segue.betel.frizz.drear.kooks.turbo.hoagy.moult.helix.zonal.arias.nosey.paean.lacey.banns.swain.fryer.retch.tenet.gigas.whiny.ogled.rumen.begot.cruse.abuts.riven.balks.sines.sigma.abase.ennui.gores.unset.augur.sated.odium.latin.dings.moire.scion.henna.kraut.dicks.lifer.prigs.bebop.gages.gazer.fanny.gibes.aural.tempi.hooch.rapes.snuck.harts.techs.emend.ninny.guava.scarp.liege.tufty.sepia.tomes.carob.emcee.prams.poser.verso.hubba.joule.baize.blips.scrim.cubby.clave.winos.rearm.liens.lumen.chump.nanny.trump.fichu.chomp.homos.purty.maser.woosh.patsy.shill.rusks.avast.swami.boded.ahhhh.lobed.natch.shish.tansy.snoot.payer.altho.sappy.laxer.hubby.aegis.riles.ditto.jazzy.dingo.quasi.septa.peaky.lorry.heerd.bitty.payee.seamy.apses.imbue.belie.chary.spoof.phyla.clime.babel.wacky.sumps.skids.khans.crypt.inure.nonce.outen.faire.hooey.anole.kazoo.calve.limbo.argot.ducky.faker.vibes.gassy.unlit.nervy.femme.biter.fiche.boors.gaffe.saxes.recap.synch.facie.dicey.ouija.hewer.legit.gurus.edify.tweak.caron.typos.rerun.polly.surds.hamza.nulls.hater.lefty.mogul.mafia.debug.pates.blabs.splay.talus.porno.moola.nixed.kilos.snide.horsy.gesso.jaggy.trove.nixes.creel.pater.iotas.cadge.skyed.hokum.furze.ankhs.curie.nutsy.hilum.remix.angst.burls.jimmy.veiny.tryst.codon.befog.gamed.flume.axman.doozy.lubes.rheas.bozos.butyl.kelly.mynah.jocks.donut.avian.wurst.chock.quash.quals.hayed.bombe.cushy.spacy.puked.leery.thews.prink.amens.tesla.intro.fiver.frump.capos.opine.coder.namer.jowly.pukes.haled.chard.duffs.bruin.reuse.whang.toons.frats.silty.telex.cutup.nisei.neato.decaf.softy.bimbo.adlib.loony.shoed.agues.peeve.noway.gamey.sarge.reran.epact.potty.coned.upend.narco.ikats.whorl.jinks.tizzy.weepy.posit.marge.vegan.clops.numbs.reeks.rubes.rower.biped.tiffs.hocus.hammy.bunco.fixit.tykes.chaws.yucky.hokey.resew.maven.adman.scuzz.slogs.souse.nacho.mimed.melds.boffo.debit.pinup.vagus.gulag.randy.bosun.educe.faxes.auras.pesto.antsy.betas.fizzy.dorky.snits.moxie.thane.mylar.nobby.gamin.gouty.esses.goyim.paned.druid.jades.rehab.gofer.tzars.octet.homed.socko.dorks.eared.anted.elide.fazes.oxbow.dowse.situs.macaw.scone.drily.hyper.salsa.mooch.gated.unjam.lipid.mitre.venal.knish.ritzy.divas.torus.mange.dimer.recut.meson.wined.fends.phage.fiats.caulk.cavil.panty.roans.bilks.hones.botch.estop.sully.sooth.gelds.ahold.raper.pager.fixer.infix.hicks.tuxes.plebe.twits.abash.twixt.wacko.primp.nabla.girts.miffs.emote.xerox.rebid.shahs.rutty.grout.grift.deify.biddy.kopek.semis.bries.acmes.piton.hussy.torts.disco.whore.boozy.gibed.vamps.amour.soppy.gonzo.durst.wader.tutus.perms.catty.glitz.brigs.nerds.barmy.gizmo.owlet.sayer.molls.shard.whops.comps.corer.colas.matte.droid.ploys.vapid.cairn.deism.mixup.yikes.prosy.raker.flubs.whish.reify.craps.shags.clone.hazed.macho.recto.refix.drams.biker.aquas.porky.doyen.exude.goofs.divvy.noels.jived.hulky.cager.harpy.oldie.vivas.admix.codas.zilch.deist.orcas.retro.pilaf.parse.rants.zingy.toddy.chiff.micro.veeps.girly.nexus.demos.bibbs.antes.lulus.gnarl.zippy.ivied.epees.wimps.tromp.grail.yoyos.poufs.hales.roust.cabal.rawer.pampa.mosey.kefir.burgs.unmet.cuspy.boobs.boons.hypes.dynes.nards.lanai.yogis.sepal.quark.toked.prate.ayins.hawed.swigs.vitas.toker.doper.bossa.linty.foist.mondo.stash.kayos.twerp.zesty.capon.wimpy.rewed.fungo.tarot.frosh.kabob.pinko.redid.mimeo.heist.tarps.lamas.sutra.dinar.whams.busty.spays.mambo.nabob.preps.odour.cabby.conks.sluff.dados.houri.swart.balms.gutsy.faxed.egads.pushy.retry.agora.drubs.daffy.chits.mufti.karma.lotto.toffs.burps.deuce.zings.kappa.clads.doggy.duper.scams.ogler.mimes.throe.zetas.waled.promo.blats.muffs.oinks.viand.coset.finks.faddy.minis.snafu.sauna.usury.muxes.craws.stats.condo.coxes.loopy.dorms.ascot.dippy.execs.dopey.envoi.umpty.gismo.fazed.strop.jives.slims.batik.pings.sonly.leggo.pekoe.prawn.luaus.campy.oodle.prexy.proms.touts.ogles.tweet.toady.naiad.hider.nuked.fatso.sluts.obits.narcs.tyros.delis.wooer.hyped.poset.byway.texas.scrod.avows.futon.torte.tuple.carom.kebab.tamps.jilts.duals.artsy.repro.modem.toped.psych.sicko.klutz.tarns.coxed.drays.cloys.anded.piker.aimer.suras.limos.flack.hapax.dutch.mucky.shire.klieg.staph.layup.tokes.axing.toper.duvet.cowry.profs.blahs.addle.sudsy.batty.coifs.suety.gabby.hafta.pitas.gouda.deice.taupe.topes.duchy.nitro.carny.limey.orals.hirer.taxer.roils.ruble.elate.dolor.wryer.snots.quais.coked.gimel.gorse.minas.goest.agape.manta.jings.iliac.admen.offen.cills.offal.lotta.bolas.thwap.alway.boggy.donna.locos.belay.gluey.bitsy.mimsy.hilar.outta.vroom.fetal.raths.renal.dyads.crocs.vires.culpa.kivas.feist.teats.thats.yawls.whens.abaca.ohhhh.aphis.fusty.eclat.perdu.mayst.exeat.molly.supra.wetly.plasm.buffa.semen.pukka.tagua.paras.stoat.secco.carte.haute.molal.shads.forma.ovoid.pions.modus.bueno.rheum.scurf.parer.ephah.doest.sprue.flams.molto.dieth.choos.miked.bronx.goopy.bally.plumy.moony.morts.yourn.bipod.spume.algal.ambit.mucho.spued.dozer.harum.groat.skint.laude.thrum.pappy.oncet.rimed.gigue.limed.plein.redly.humpf.lites.seest.grebe.absit.thanx.pshaw.yawps.plats.payed.areal.tilth.youse.gwine.thees.watsa.lento.spitz.yawed.gipsy.sprat.cornu.amahs.blowy.wahoo.lubra.mecum.whooo.coqui.sabra.edema.mrads.dicot.astro.kited.ouzel.didos.grata.bonne.axmen.klunk.summa.laves.purls.yawny.teary.masse.largo.bazar.pssst.sylph.lulab.toque.fugit.plunk.ortho.lucre.cooch.whipt.folky.tyres.wheee.corky.injun.solon.didot.kerfs.rayed.wassa.chile.begat.nippy.litre.magna.rebox.hydro.milch.brent.gyves.lazed.feued.mavis.inapt.baulk.casus.scrum.wised.fossa.dower.kyrie.bhoys.scuse.feuar.ohmic.juste.ukase.beaux.tusky.orate.musta.lardy.intra.quiff.epsom.neath.ocher.tared.homme.mezzo.corms.psoas.beaky.terry.infra.spivs.tuans.belli.bergs.anima.weirs.mahua.scops.manse.titre.curia.kebob.cycad.talky.fucks.tapis.amide.dolce.sloes.jakes.russe.blash.tutti.pruta.panga.blebs.tench.swarf.herem.missy.merse.pawky.limen.vivre.chert.unsee.tiros.brack.foots.welsh.fosse.knops.ileum.noire.firma.podgy.laird.thunk.shute.rowan.shoji.poesy.uncap.fames.glees.costa.turps.fores.solum.imago.byres.fondu.coney.polis.dictu.kraal.sherd.mumbo.wroth.chars.unbox.vacuo.slued.weest.hades.wiled.syncs.muser.excon.hoars.sibyl.passe.joeys.lotsa.lepta.shays.bocks.endue.darer.nones.ileus.plash.busby.wheal.buffo.yobbo.biles.poxes.rooty.licit.terce.bromo.hayey.dweeb.imbed.saran.bruit.punky.softs.biffs.loppy.agars.aquae.livre.biome.bunds.shews.diems.ginny.degum.polos.desex.unman.dungy.vitam.wedgy.glebe.apers.ridgy.roids.wifey.vapes.whoas.bunko.yolky.ulnas.reeky.bodge.brant.davit.deque.liker.jenny.tacts.fulls.treap.ligne.acked.refry.vower.aargh.churl.momma.gaols.whump.arras.marls.tiler.grogs.memes.midis.tided.haler.duces.twiny.poste.unrig.prise.drabs.quids.facer.spier.baric.geoid.remap.trier.gunks.steno.stoma.airer.ovate.torah.apian.smuts.pocks.yurts.exurb.defog.nuder.bosky.nimbi.mothy.joyed.labia.pards.jammy.bigly.faxer.hoppy.nurbs.cotes.dishy.vised.celeb.pismo.casas.withs.dodgy.scudi.mungs.muons.ureas.ioctl.unhip.krone.sager.verst.expat.gronk.uvula.shawm.bilgy.braes.cento.webby.lippy.gamic.lordy.mazed.tings.shoat.faery.wirer.diazo.carer.rater.greps.rente.zloty.viers.unapt.poops.fecal.kepis.taxon.eyers.wonts.spina.stoae.yenta.pooey.buret.japan.bedew.hafts.selfs.oared.herby.pryer.oakum.dinks.titty.sepoy.penes.fusee.winey.gimps.nihil.rille.giber.ousel.umiak.cuppy.hames.shits.azine.glads.tacet.bumph.coyer.honky.gamer.gooky.waspy.sedgy.bents.varia.djinn.junco.pubic.wilco.lazes.idyls.lupus.rives.snood.schmo.spazz.finis.noter.pavan.orbed.bates.pipet.baddy.goers.shako.stets.sebum.seeth.lobar.raver.ajuga.riced.velds.dribs.ville.dhows.unsew.halma.krona.limby.jiffs.treys.bauds.pffft.mimer.plebs.caner.jiber.cuppa.washy.chuff.unarm.yukky.styes.waker.flaks.maces.rimes.gimpy.guano.liras.kapok.scuds.bwana.oring.aider.prier.klugy.monte.golem.velar.firer.pieta.umbel.campo.unpeg.fovea.abeam.boson.asker.goths.vocab.vined.trows.tikis.loper.indie.boffs.spang.grapy.tater.ichor.kilty.lochs.supes.degas.flics.torsi.beths.weber.resaw.lawny.coven.mujik.relet.therm.heigh.shnor.trued.zayin.liest.barfs.bassi.qophs.roily.flabs.punny.okras.hanks.dipso.nerfs.fauns.calla.pseud.lurer.magus.obeah.atria.twink.palmy.pocky.pends.recta.plonk.slaws.keens.nicad.pones.inker.whews.groks.mosts.trews.ulnar.gyppy.cocas.expos.eruct.oiler.vacua.dreck.dater.arums.tubal.voxel.dixit.beery.assai.lades.actin.ghoti.buzzy.meads.grody.ribby.clews.creme.email.pyxie.kulak.bocci.rived.duddy.hoper.lapin.wonks.petri.phial.fugal.holon.boomy.duomo.musos.shier.hayer.porgy.hived.litho.fisty.stagy.luvya.maria.smogs.asana.yogic.slomo.fawny.amine.wefts.gonad.twirp.brava.plyer.fermi.loges.niter.revet.unate.gyved.totty.zappy.honer.giros.dicer.calks.luxes.monad.cruft.quoin.fumer.amped.shlep.vinca.yahoo.vulva.zooey.dryad.nixie.moper.iambs.lunes.nudie.limns.weals.nohow.miaow.gouts.mynas.mazer.kikes.oxeye.stoup.jujus.debar.pubes.taels.defun.rands.blear.paver.goosy.sprog.oleos.toffy.pawer.maced.crits.kluge.tubed.sahib.ganef.scats.sputa.vaned.acned.taxol.plink.oweth.tribs.resay.boule.thous.haply.glans.maxis.bezel.antis.porks.quoit.alkyd.glary.beamy.hexad.bonks.tecum.kerbs.filar.frier.redux.abuzz.fader.shoer.couth.trues.guyed.goony.booky.fuzes.hurly.genet.hodad.calix.filer.pawls.iodic.utero.henge.unsay.liers.piing.weald.sexed.folic.poxed.cunts.anile.kiths.becks.tatty.plena.rebar.abled.toyer.attar.teaks.aioli.awing.anent.feces.redip.wists.prats.mesne.muter.smurf.owest.bahts.lossy.ftped.hunky.hoers.slier.sicks.fatly.delft.hiver.himbo.pengo.busks.loxes.zonks.ilium.aport.ikons.mulct.reeve.civvy.canna.barfy.kaiak.scudo.knout.gaper.bhang.pease.uteri.lases.paten.rasae.axels.stoas.ombre.styli.gunky.hazer.kenaf.ahoys.ammos.weeny.urger.kudzu.paren.bolos.fetor.nitty.techy.lieth.somas.darky.villi.gluon.janes.cants.farts.socle.jinns.ruing.slily.ricer.hadda.wowee.rices.nerts.cauls.swive.lilty.micks.arity.pasha.finif.oinky.gutty.tetra.wises.wolds.balds.picot.whats.shiki.bungs.snarf.legos.dungs.stogy.berms.tangs.vails.roods.morel.sware.elans.latus.gules.razer.doxie.buena.overs.gutta.zincs.nates.kirks.tikes.donee.jerry.mohel.ceder.doges.unmap.folia.rawly.snark.topoi.ceils.immix.yores.diest.bubba.pomps.forky.turdy.lawzy.poohs.worts.gloms.beano.muley.barky.tunny.auric.funks.gaffs.cordy.curdy.lisle.toric.soyas.reman.mungy.carpy.apish.oaten.gappy.aurae.bract.rooky.axled.burry.sizer.proem.turfy.impro.mashy.miens.nonny.olios.grook.sates.agley.corgi.dashy.doser.dildo.apsos.xored.laker.playa.selah.malty.dulse.frigs.demit.whoso.rials.sawer.spics.bedim.snugs.fanin.azoic.icers.suers.wizen.koine.topos.shirr.rifer.feral.laded.lased.turds.swede.easts.cozen.unhit.pally.aitch.sedum.coper.ruche.geeks.swags.etext.algin.offed.ninja.holer.doter.toter.besot.dicut.macer.peens.pewit.redox.poler.yecch.fluky.doeth.twats.cruds.bebug.bider.stele.hexer.wests.gluer.pilau.abaft.whelm.lacer.inode.tabus.gator.cuing.refly.luted.cukes.bairn.bight.arses.crump.loggy.blini.spoor.toyon.harks.wazoo.fenny.naves.keyer.tufas.morph.rajas.typal.spiff.oxlip.unban.mussy.finny.rimer.login.molas.cirri.huzza.agone.unsex.unwon.peats.toile.zombi.dewed.nooky.alkyl.ixnay.dovey.holey.cuber.amyls.podia.chino.apnea.prims.lycra.johns.primo.fatwa.egger.hempy.snook.hying.fuzed.barms.crink.moots.yerba.rhumb.unarc.direr.munge.eland.nares.wrier.noddy.atilt.jukes.ender.thens.unfix.doggo.zooks.diddy.shmoo.brusk.prest.curer.pasts.kelpy.bocce.kicky.taros.lings.dicky.nerdy.abend.stela.biggy.laved.baldy.pubis.gooks.wonky.stied.hypos.assed.spumy.osier.roble.rumba.biffy.pupal".split("."), Hi = /* @__PURE__ */ "aahed.aalii.aargh.aarti.abaca.abaci.abacs.abaft.abaka.abamp.aband.abash.abask.abaya.abbas.abbed.abbes.abcee.abeam.abear.abele.abers.abets.abies.abler.ables.ablet.ablow.abmho.abohm.aboil.aboma.aboon.abord.abore.abram.abray.abrim.abrin.abris.absey.absit.abuna.abune.abuts.abuzz.abyes.abysm.acais.acari.accas.accoy.acerb.acers.aceta.achar.ached.aches.achoo.acids.acidy.acing.acini.ackee.acker.acmes.acmic.acned.acnes.acock.acold.acred.acres.acros.acted.actin.acton.acyls.adaws.adays.adbot.addax.added.adder.addio.addle.adeem.adhan.adieu.adios.adits.adman.admen.admix.adobo.adown.adoze.adrad.adred.adsum.aduki.adunc.adust.advew.adyta.adzed.adzes.aecia.aedes.aegis.aeons.aerie.aeros.aesir.afald.afara.afars.afear.aflaj.afore.afrit.afros.agama.agami.agars.agast.agave.agaze.agene.agers.agger.aggie.aggri.aggro.aggry.aghas.agila.agios.agism.agist.agita.aglee.aglet.agley.agloo.aglus.agmas.agoge.agone.agons.agood.agria.agrin.agros.agued.agues.aguna.aguti.aheap.ahent.ahigh.ahind.ahing.ahint.ahold.ahull.ahuru.aidas.aided.aides.aidoi.aidos.aiery.aigas.aight.ailed.aimed.aimer.ainee.ainga.aioli.aired.airer.airns.airth.airts.aitch.aitus.aiver.aiyee.aizle.ajies.ajiva.ajuga.ajwan.akees.akela.akene.aking.akita.akkas.alaap.alack.alamo.aland.alane.alang.alans.alant.alapa.alaps.alary.alate.alays.albas.albee.alcid.alcos.aldea.alder.aldol.aleck.alecs.alefs.aleft.aleph.alews.aleye.alfas.algal.algas.algid.algin.algor.algum.alias.alifs.aline.alist.aliya.alkie.alkos.alkyd.alkyl.allee.allel.allis.allod.allyl.almah.almas.almeh.almes.almud.almug.alods.aloed.aloes.aloha.aloin.aloos.alowe.altho.altos.alula.alums.alure.alvar.alway.amahs.amain.amate.amaut.amban.ambit.ambos.ambry.ameba.ameer.amene.amens.ament.amias.amice.amici.amide.amido.amids.amies.amiga.amigo.amine.amino.amins.amirs.amlas.amman.ammon.ammos.amnia.amnic.amnio.amoks.amole.amort.amour.amove.amowt.amped.ampul.amrit.amuck.amyls.anana.anata.ancho.ancle.ancon.andro.anear.anele.anent.angas.anglo.anigh.anile.anils.anima.animi.anion.anise.anker.ankhs.ankus.anlas.annal.annas.annat.anoas.anole.anomy.ansae.antae.antar.antas.anted.antes.antis.antra.antre.antsy.anura.anyon.apace.apage.apaid.apayd.apays.apeak.apeek.apers.apert.apery.apgar.aphis.apian.apiol.apish.apism.apode.apods.apoop.aport.appal.appay.appel.appro.appui.appuy.apres.apses.apsis.apsos.apted.apter.aquae.aquas.araba.araks.arame.arars.arbas.arced.archi.arcos.arcus.ardeb.ardri.aread.areae.areal.arear.areas.areca.aredd.arede.arefy.areic.arene.arepa.arere.arete.arets.arett.argal.argan.argil.argle.argol.argon.argot.argus.arhat.arias.ariel.ariki.arils.ariot.arish.arked.arled.arles.armed.armer.armet.armil.arnas.arnut.aroba.aroha.aroid.arpas.arpen.arrah.arras.arret.arris.arroz.arsed.arses.arsey.arsis.artal.artel.artic.artis.aruhe.arums.arval.arvee.arvos.aryls.asana.ascon.ascus.asdic.ashed.ashes.ashet.asked.asker.askoi.askos.aspen.asper.aspic.aspie.aspis.aspro.assai.assam.asses.assez.assot.aster.astir.astun.asura.asway.aswim.asyla.ataps.ataxy.atigi.atilt.atimy.atlas.atman.atmas.atmos.atocs.atoke.atoks.atoms.atomy.atony.atopy.atria.atrip.attap.attar.atuas.audad.auger.aught.aulas.aulic.auloi.aulos.aumil.aunes.aunts.aurae.aural.aurar.auras.aurei.aures.auric.auris.aurum.autos.auxin.avale.avant.avast.avels.avens.avers.avgas.avine.avion.avise.aviso.avize.avows.avyze.awarn.awato.awave.aways.awdls.aweel.aweto.awing.awmry.awned.awner.awols.awork.axels.axile.axils.axing.axite.axled.axles.axman.axmen.axoid.axone.axons.ayahs.ayaya.ayelp.aygre.ayins.ayont.ayres.ayrie.azans.azide.azido.azine.azlon.azoic.azole.azons.azote.azoth.azuki.azurn.azury.azygy.azyme.azyms.baaed.baals.babas.babel.babes.babka.baboo.babul.babus.bacca.bacco.baccy.bacha.bachs.backs.baddy.baels.baffs.baffy.bafts.baghs.bagie.bahts.bahus.bahut.bails.bairn.baisa.baith.baits.baiza.baize.bajan.bajra.bajri.bajus.baked.baken.bakes.bakra.balas.balds.baldy.baled.bales.balks.balky.balls.bally.balms.baloo.balsa.balti.balun.balus.bambi.banak.banco.bancs.banda.bandh.bands.bandy.baned.banes.bangs.bania.banks.banns.bants.bantu.banty.banya.bapus.barbe.barbs.barby.barca.barde.bardo.bards.bardy.bared.barer.bares.barfi.barfs.baric.barks.barky.barms.barmy.barns.barny.barps.barra.barre.barro.barry.barye.basan.based.basen.baser.bases.basho.basij.basks.bason.basse.bassi.basso.bassy.basta.basti.basto.basts.bated.bates.baths.batik.batta.batts.battu.bauds.bauks.baulk.baurs.bavin.bawds.bawks.bawls.bawns.bawrs.bawty.bayed.bayer.bayes.bayle.bayts.bazar.bazoo.beads.beaks.beaky.beals.beams.beamy.beano.beans.beany.beare.bears.beath.beats.beaty.beaus.beaut.beaux.bebop.becap.becke.becks.bedad.bedel.bedes.bedew.bedim.bedye.beedi.beefs.beeps.beers.beery.beets.befog.begad.begar.begem.begot.begum.beige.beigy.beins.bekah.belah.belar.belay.belee.belga.bells.belon.belts.bemad.bemas.bemix.bemud.bends.bendy.benes.benet.benga.benis.benne.benni.benny.bento.bents.benty.bepat.beray.beres.bergs.berko.berks.berme.berms.berob.beryl.besat.besaw.besee.beses.besit.besom.besot.besti.bests.betas.beted.betes.beths.betid.beton.betta.betty.bever.bevor.bevue.bevvy.bewet.bewig.bezes.bezil.bezzy.bhais.bhaji.bhang.bhats.bhels.bhoot.bhuna.bhuts.biach.biali.bialy.bibbs.bibes.biccy.bices.bided.bider.bides.bidet.bidis.bidon.bield.biers.biffo.biffs.biffy.bifid.bigae.biggs.biggy.bigha.bight.bigly.bigos.bijou.biked.biker.bikes.bikie.bilbo.bilby.biled.biles.bilgy.bilks.bills.bimah.bimas.bimbo.binal.bindi.binds.biner.bines.bings.bingy.binit.binks.bints.biogs.biont.biota.biped.bipod.birds.birks.birle.birls.biros.birrs.birse.birsy.bises.bisks.bisom.bitch.biter.bites.bitos.bitou.bitsy.bitte.bitts.bivia.bivvy.bizes.bizzo.bizzy.blabs.blads.blady.blaer.blaes.blaff.blags.blahs.blain.blams.blart.blase.blash.blate.blats.blatt.blaud.blawn.blaws.blays.blear.blebs.blech.blees.blent.blert.blest.blets.bleys.blimy.bling.blini.blins.bliny.blips.blist.blite.blits.blive.blobs.blocs.blogs.blook.bloop.blore.blots.blows.blowy.blubs.blude.bluds.bludy.blued.blues.bluet.bluey.bluid.blume.blunk.blurs.blype.boabs.boaks.boars.boart.boats.bobac.bobak.bobas.bobol.bobos.bocca.bocce.bocci.boche.bocks.boded.bodes.bodge.bodhi.bodle.boeps.boets.boeuf.boffo.boffs.bogan.bogey.boggy.bogie.bogle.bogue.bogus.bohea.bohos.boils.boing.boink.boite.boked.bokeh.bokes.bokos.bolar.bolas.bolds.boles.bolix.bolls.bolos.bolts.bolus.bomas.bombe.bombo.bombs.bonce.bonds.boned.boner.bones.bongs.bonie.bonks.bonne.bonny.bonza.bonze.booai.booay.boobs.boody.booed.boofy.boogy.boohs.books.booky.bools.booms.boomy.boong.boons.boord.boors.boose.boots.boppy.borak.boral.boras.borde.bords.bored.boree.borel.borer.bores.borgo.boric.borks.borms.borna.boron.borts.borty.bortz.bosie.bosks.bosky.boson.bosun.botas.botel.botes.bothy.botte.botts.botty.bouge.bouks.boult.bouns.bourd.bourg.bourn.bouse.bousy.bouts.bovid.bowat.bowed.bower.bowes.bowet.bowie.bowls.bowne.bowrs.bowse.boxed.boxen.boxes.boxla.boxty.boyar.boyau.boyed.boyfs.boygs.boyla.boyos.boysy.bozos.braai.brach.brack.bract.brads.braes.brags.brail.braks.braky.brame.brane.brank.brans.brant.brast.brats.brava.bravi.braws.braxy.brays.braza.braze.bream.brede.breds.breem.breer.brees.breid.breis.breme.brens.brent.brere.brers.breve.brews.breys.brier.bries.brigs.briki.briks.brill.brims.brins.brios.brise.briss.brith.brits.britt.brize.broch.brock.brods.brogh.brogs.brome.bromo.bronc.brond.brool.broos.brose.brosy.brows.brugh.bruin.bruit.brule.brume.brung.brusk.brust.bruts.buats.buaze.bubal.bubas.bubba.bubbe.bubby.bubus.buchu.bucko.bucks.bucku.budas.budis.budos.buffa.buffe.buffi.buffo.buffs.buffy.bufos.bufty.buhls.buhrs.buiks.buist.bukes.bulbs.bulgy.bulks.bulla.bulls.bulse.bumbo.bumfs.bumph.bumps.bumpy.bunas.bunce.bunco.bunde.bundh.bunds.bundt.bundu.bundy.bungs.bungy.bunia.bunje.bunjy.bunko.bunks.bunns.bunts.bunty.bunya.buoys.buppy.buran.buras.burbs.burds.buret.burfi.burgh.burgs.burin.burka.burke.burks.burls.burns.buroo.burps.burqa.burro.burrs.burry.bursa.burse.busby.buses.busks.busky.bussu.busti.busts.busty.buteo.butes.butle.butoh.butts.butty.butut.butyl.buzzy.bwana.bwazi.byded.bydes.byked.bykes.byres.byrls.byssi.bytes.byway.caaed.cabas.caber.cabob.caboc.cabre.cacas.cacks.cacky.cadee.cades.cadge.cadgy.cadie.cadis.cadre.caeca.caese.cafes.caffs.caged.cager.cages.cagot.cahow.caids.cains.caird.cajon.cajun.caked.cakes.cakey.calfs.calid.calif.calix.calks.calla.calls.calms.calmy.calos.calpa.calps.calve.calyx.caman.camas.cames.camis.camos.campi.campo.camps.campy.camus.caned.caneh.caner.canes.cangs.canid.canna.canns.canso.canst.canto.cants.canty.capas.caped.capes.capex.caphs.capiz.caple.capon.capos.capot.capri.capul.carap.carbo.carbs.carby.cardi.cards.cardy.cared.carer.cares.caret.carex.carks.carle.carls.carns.carny.carob.carom.caron.carpi.carps.carrs.carse.carta.carte.carts.carvy.casas.casco.cased.cases.casks.casky.casts.casus.cates.cauda.cauks.cauld.cauls.caums.caups.cauri.causa.cavas.caved.cavel.caver.caves.cavie.cawed.cawks.caxon.ceaze.cebid.cecal.cecum.ceded.ceder.cedes.cedis.ceiba.ceili.ceils.celeb.cella.celli.cells.celom.celts.cense.cento.cents.centu.ceorl.cepes.cerci.cered.ceres.cerge.ceria.ceric.cerne.ceroc.ceros.certs.certy.cesse.cesta.cesti.cetes.cetyl.cezve.chace.chack.chaco.chado.chads.chaft.chais.chals.chams.chana.chang.chank.chape.chaps.chapt.chara.chare.chark.charr.chars.chary.chats.chave.chavs.chawk.chaws.chaya.chays.cheep.chefs.cheka.chela.chelp.chemo.chems.chere.chert.cheth.chevy.chews.chewy.chiao.chias.chibs.chica.chich.chico.chics.chiel.chiks.chile.chimb.chimo.chimp.chine.ching.chink.chino.chins.chips.chirk.chirl.chirm.chiro.chirr.chirt.chiru.chits.chive.chivs.chivy.chizz.choco.chocs.chode.chogs.choil.choko.choky.chola.choli.cholo.chomp.chons.choof.chook.choom.choon.chops.chota.chott.chout.choux.chowk.chows.chubs.chufa.chuff.chugs.chums.churl.churr.chuse.chuts.chyle.chyme.chynd.cibol.cided.cides.ciels.ciggy.cilia.cills.cimar.cimex.cinct.cines.cinqs.cions.cippi.circs.cires.cirls.cirri.cisco.cissy.cists.cital.cited.citer.cites.cives.civet.civie.civvy.clach.clade.clads.claes.clags.clame.clams.clans.claps.clapt.claro.clart.clary.clast.clats.claut.clave.clavi.claws.clays.cleck.cleek.cleep.clefs.clegs.cleik.clems.clepe.clept.cleve.clews.clied.clies.clift.clime.cline.clint.clipe.clips.clipt.clits.cloam.clods.cloff.clogs.cloke.clomb.clomp.clonk.clons.cloop.cloot.clops.clote.clots.clour.clous.clows.cloye.cloys.cloze.clubs.clues.cluey.clunk.clype.cnida.coact.coady.coala.coals.coaly.coapt.coarb.coate.coati.coats.cobbs.cobby.cobia.coble.cobza.cocas.cocci.cocco.cocks.cocky.cocos.codas.codec.coded.coden.coder.codes.codex.codon.coeds.coffs.cogie.cogon.cogue.cohab.cohen.cohoe.cohog.cohos.coifs.coign.coils.coins.coirs.coits.coked.cokes.colas.colby.colds.coled.coles.coley.colic.colin.colls.colly.colog.colts.colza.comae.comal.comas.combe.combi.combo.combs.comby.comer.comes.comix.commo.comms.commy.compo.comps.compt.comte.comus.coned.cones.coney.confs.conga.conge.congo.conia.conin.conks.conky.conne.conns.conte.conto.conus.convo.cooch.cooed.cooee.cooer.cooey.coofs.cooks.cooky.cools.cooly.coomb.cooms.coomy.coons.coops.coopt.coost.coots.cooze.copal.copay.coped.copen.coper.copes.coppy.copra.copsy.coqui.coram.corbe.corby.cords.cored.cores.corey.corgi.coria.corks.corky.corms.corni.corno.corns.cornu.corps.corse.corso.cosec.cosed.coses.coset.cosey.cosie.costa.coste.costs.cotan.coted.cotes.coths.cotta.cotts.coude.coups.courb.courd.coure.cours.couta.couth.coved.coves.covin.cowal.cowan.cowed.cowks.cowls.cowps.cowry.coxae.coxal.coxed.coxes.coxib.coyau.coyed.coyer.coypu.cozed.cozen.cozes.cozey.cozie.craal.crabs.crags.craic.craig.crake.crame.crams.crans.crape.craps.crapy.crare.craws.crays.creds.creel.crees.crems.crena.creps.crepy.crewe.crews.crias.cribs.cries.crims.crine.crios.cripe.crips.crise.crith.crits.croci.crocs.croft.crogs.cromb.crome.cronk.crons.crool.croon.crops.crore.crost.crout.crows.croze.cruck.crudo.cruds.crudy.crues.cruet.cruft.crunk.cruor.crura.cruse.crusy.cruve.crwth.cryer.ctene.cubby.cubeb.cubed.cuber.cubes.cubit.cuddy.cuffo.cuffs.cuifs.cuing.cuish.cuits.cukes.culch.culet.culex.culls.cully.culms.culpa.culti.cults.culty.cumec.cundy.cunei.cunit.cunts.cupel.cupid.cuppa.cuppy.curat.curbs.curch.curds.curdy.cured.curer.cures.curet.curfs.curia.curie.curli.curls.curns.curny.currs.cursi.curst.cusec.cushy.cusks.cusps.cuspy.cusso.cusum.cutch.cuter.cutes.cutey.cutin.cutis.cutto.cutty.cutup.cuvee.cuzes.cwtch.cyano.cyans.cycad.cycas.cyclo.cyder.cylix.cymae.cymar.cymas.cymes.cymol.cysts.cytes.cyton.czars.daals.dabba.daces.dacha.dacks.dadah.dadas.dados.daffs.daffy.dagga.daggy.dagos.dahls.daiko.daine.daint.daker.daled.dales.dalis.dalle.dalts.daman.damar.dames.damme.damns.damps.dampy.dancy.dangs.danio.danks.danny.dants.daraf.darbs.darcy.dared.darer.dares.darga.dargs.daric.daris.darks.darky.darns.darre.darts.darzi.dashi.dashy.datal.dated.dater.dates.datos.datto.daube.daubs.dauby.dauds.dault.daurs.dauts.daven.davit.dawah.dawds.dawed.dawen.dawks.dawns.dawts.dayan.daych.daynt.dazed.dazer.dazes.deads.deair.deals.deans.deare.dearn.dears.deary.deash.deave.deaws.deawy.debag.debby.debel.debes.debts.debud.debur.debus.debye.decad.decaf.decan.decko.decks.decos.dedal.deeds.deedy.deely.deems.deens.deeps.deere.deers.deets.deeve.deevs.defat.deffo.defis.defog.degas.degum.degus.deice.deids.deify.deils.deism.deist.deked.dekes.dekko.deled.deles.delfs.delft.delis.dells.delly.delos.delph.delts.deman.demes.demic.demit.demob.demoi.demos.dempt.denar.denay.dench.denes.denet.denis.dents.deoxy.derat.deray.dered.deres.derig.derma.derms.derns.derny.deros.derro.derry.derth.dervs.desex.deshi.desis.desks.desse.devas.devel.devis.devon.devos.devot.dewan.dewar.dewax.dewed.dexes.dexie.dhaba.dhaks.dhals.dhikr.dhobi.dhole.dholl.dhols.dhoti.dhows.dhuti.diact.dials.diane.diazo.dibbs.diced.dicer.dices.dicht.dicks.dicky.dicot.dicta.dicts.dicty.diddy.didie.didos.didst.diebs.diels.diene.diets.diffs.dight.dikas.diked.diker.dikes.dikey.dildo.dilli.dills.dimbo.dimer.dimes.dimps.dinar.dined.dines.dinge.dings.dinic.dinks.dinky.dinna.dinos.dints.diols.diota.dippy.dipso.diram.direr.dirke.dirks.dirls.dirts.disas.disci.discs.dishy.disks.disme.dital.ditas.dited.dites.ditsy.ditts.ditzy.divan.divas.dived.dives.divis.divna.divos.divot.divvy.diwan.dixie.dixit.diyas.dizen.djinn.djins.doabs.doats.dobby.dobes.dobie.dobla.dobra.dobro.docht.docks.docos.docus.doddy.dodos.doeks.doers.doest.doeth.doffs.dogan.doges.dogey.doggo.doggy.dogie.dohyo.doilt.doily.doits.dojos.dolce.dolci.doled.doles.dolia.dolls.dolma.dolor.dolos.dolts.domal.domed.domes.domic.donah.donas.donee.doner.donga.dongs.donko.donna.donne.donny.donsy.doobs.dooce.doody.dooks.doole.dools.dooly.dooms.doomy.doona.doorn.doors.doozy.dopas.doped.doper.dopes.dorad.dorba.dorbs.doree.dores.doric.doris.dorks.dorky.dorms.dormy.dorps.dorrs.dorsa.dorse.dorts.dorty.dosai.dosas.dosed.doseh.doser.doses.dosha.dotal.doted.doter.dotes.dotty.douar.douce.doucs.douks.doula.douma.doums.doups.doura.douse.douts.doved.doven.dover.doves.dovie.dowar.dowds.dowed.dower.dowie.dowle.dowls.dowly.downa.downs.dowps.dowse.dowts.doxed.doxes.doxie.doyen.doyly.dozed.dozer.dozes.drabs.drack.draco.draff.drags.drail.drams.drant.draps.drats.drave.draws.drays.drear.dreck.dreed.dreer.drees.dregs.dreks.drent.drere.drest.dreys.dribs.drice.dries.drily.drips.dript.droid.droil.droke.drole.drome.drony.droob.droog.drook.drops.dropt.drouk.drows.drubs.drugs.drums.drupe.druse.drusy.druxy.dryad.dryas.dsobo.dsomo.duads.duals.duans.duars.dubbo.ducal.ducat.duces.ducks.ducky.ducts.duddy.duded.dudes.duels.duets.duett.duffs.dufus.duing.duits.dukas.duked.dukes.dukka.dulce.dules.dulia.dulls.dulse.dumas.dumbo.dumbs.dumka.dumky.dumps.dunam.dunch.dunes.dungs.dungy.dunks.dunno.dunny.dunsh.dunts.duomi.duomo.duped.duper.dupes.duple.duply.duppy.dural.duras.dured.dures.durgy.durns.duroc.duros.duroy.durra.durrs.durry.durst.durum.durzi.dusks.dusts.duxes.dwaal.dwale.dwalm.dwams.dwang.dwaum.dweeb.dwile.dwine.dyads.dyers.dyked.dykes.dykey.dykon.dynel.dynes.dzhos.eagre.ealed.eales.eaned.eards.eared.earls.earns.earnt.earst.eased.easer.eases.easle.easts.eathe.eaved.eaves.ebbed.ebbet.ebons.ebook.ecads.eched.eches.echos.ecrus.edema.edged.edger.edges.edile.edits.educe.educt.eejit.eensy.eeven.eevns.effed.egads.egers.egest.eggar.egged.egger.egmas.ehing.eider.eidos.eigne.eiked.eikon.eilds.eisel.ejido.ekkas.elain.eland.elans.elchi.eldin.elemi.elfed.eliad.elint.elmen.eloge.elogy.eloin.elops.elpee.elsin.elute.elvan.elven.elver.elves.emacs.embar.embay.embog.embow.embox.embus.emeer.emend.emerg.emery.emeus.emics.emirs.emits.emmas.emmer.emmet.emmew.emmys.emoji.emong.emote.emove.empts.emule.emure.emyde.emyds.enarm.enate.ended.ender.endew.endue.enews.enfix.eniac.enlit.enmew.ennog.enoki.enols.enorm.enows.enrol.ensew.ensky.entia.enure.enurn.envoi.enzym.eorls.eosin.epact.epees.ephah.ephas.ephod.ephor.epics.epode.epopt.epris.eques.equid.erbia.erevs.ergon.ergos.ergot.erhus.erica.erick.erics.ering.erned.ernes.erose.erred.erses.eruct.erugo.eruvs.erven.ervil.escar.escot.esile.eskar.esker.esnes.esses.estoc.estop.estro.etage.etape.etats.etens.ethal.ethne.ethyl.etics.etnas.ettin.ettle.etuis.etwee.etyma.eughs.euked.eupad.euros.eusol.evens.evert.evets.evhoe.evils.evite.evohe.ewers.ewest.ewhow.ewked.exams.exeat.execs.exeem.exeme.exfil.exies.exine.exing.exits.exode.exome.exons.expat.expos.exude.exuls.exurb.eyass.eyers.eyots.eyras.eyres.eyrie.eyrir.ezine.fabby.faced.facer.faces.facia.facta.facts.faddy.faded.fader.fades.fadge.fados.faena.faery.faffs.faffy.faggy.fagin.fagot.faiks.fails.faine.fains.fairs.faked.faker.fakes.fakey.fakie.fakir.falaj.falls.famed.fames.fanal.fands.fanes.fanga.fango.fangs.fanks.fanon.fanos.fanum.faqir.farad.farci.farcy.fards.fared.farer.fares.farle.farls.farms.faros.farro.farse.farts.fasci.fasti.fasts.fated.fates.fatly.fatso.fatwa.faugh.fauld.fauns.faurd.fauts.fauve.favas.favel.faver.faves.favus.fawns.fawny.faxed.faxes.fayed.fayer.fayne.fayre.fazed.fazes.feals.feare.fears.feart.fease.feats.feaze.feces.fecht.fecit.fecks.fedex.feebs.feeds.feels.feens.feers.feese.feeze.fehme.feint.feist.felch.felid.fells.felly.felts.felty.femal.femes.femmy.fends.fendy.fenis.fenks.fenny.fents.feods.feoff.ferer.feres.feria.ferly.fermi.ferms.ferns.ferny.fesse.festa.fests.festy.fetas.feted.fetes.fetor.fetta.fetts.fetwa.feuar.feuds.feued.feyed.feyer.feyly.fezes.fezzy.fiars.fiats.fibro.fices.fiche.fichu.ficin.ficos.fides.fidge.fidos.fiefs.fient.fiere.fiers.fiest.fifed.fifer.fifes.fifis.figgy.figos.fiked.fikes.filar.filch.filed.files.filii.filks.fille.fillo.fills.filmi.films.filos.filum.finca.finds.fined.fines.finis.finks.finny.finos.fiord.fiqhs.fique.fired.firer.fires.firie.firks.firms.firns.firry.firth.fiscs.fisks.fists.fisty.fitch.fitly.fitna.fitte.fitts.fiver.fives.fixed.fixes.fixit.fjeld.flabs.flaff.flags.flaks.flamm.flams.flamy.flane.flans.flaps.flary.flats.flava.flawn.flaws.flawy.flaxy.flays.fleam.fleas.fleek.fleer.flees.flegs.fleme.fleur.flews.flexi.flexo.fleys.flics.flied.flies.flimp.flims.flips.flirs.flisk.flite.flits.flitt.flobs.flocs.floes.flogs.flong.flops.flors.flory.flosh.flota.flote.flows.flubs.flued.flues.fluey.fluky.flump.fluor.flurr.fluty.fluyt.flyby.flype.flyte.foals.foams.foehn.fogey.fogie.fogle.fogou.fohns.foids.foils.foins.folds.foley.folia.folic.folie.folks.folky.fomes.fonda.fonds.fondu.fones.fonly.fonts.foods.foody.fools.foots.footy.foram.forbs.forby.fordo.fords.forel.fores.forex.forks.forky.forme.forms.forts.forza.forze.fossa.fosse.fouat.fouds.fouer.fouet.foule.fouls.fount.fours.fouth.fovea.fowls.fowth.foxed.foxes.foxie.foyle.foyne.frabs.frack.fract.frags.fraim.franc.frape.fraps.frass.frate.frati.frats.fraus.frays.frees.freet.freit.fremd.frena.freon.frere.frets.fribs.frier.fries.frigs.frise.frist.frith.frits.fritt.frize.frizz.froes.frogs.frons.frore.frorn.frory.frosh.frows.frowy.frugs.frump.frush.frust.fryer.fubar.fubby.fubsy.fucks.fucus.fuddy.fudgy.fuels.fuero.fuffs.fuffy.fugal.fuggy.fugie.fugio.fugle.fugly.fugus.fujis.fulls.fumed.fumer.fumes.fumet.fundi.funds.fundy.fungo.fungs.funks.fural.furan.furca.furls.furol.furrs.furth.furze.furzy.fused.fusee.fusel.fuses.fusil.fusks.fusts.fusty.futon.fuzed.fuzee.fuzes.fuzil.fyces.fyked.fykes.fyles.fyrds.fytte.gabba.gabby.gable.gaddi.gades.gadge.gadid.gadis.gadje.gadjo.gadso.gaffs.gaged.gager.gages.gaids.gains.gairs.gaita.gaits.gaitt.gajos.galah.galas.galax.galea.galed.gales.galls.gally.galop.galut.galvo.gamas.gamay.gamba.gambe.gambo.gambs.gamed.games.gamey.gamic.gamin.gamme.gammy.gamps.ganch.gandy.ganef.ganev.gangs.ganja.ganof.gants.gaols.gaped.gaper.gapes.gapos.gappy.garbe.garbo.garbs.garda.gares.garis.garms.garni.garre.garth.garum.gases.gasps.gaspy.gasts.gatch.gated.gater.gates.gaths.gator.gauch.gaucy.gauds.gauje.gault.gaums.gaumy.gaups.gaurs.gauss.gauzy.gavot.gawcy.gawds.gawks.gawps.gawsy.gayal.gazal.gazar.gazed.gazes.gazon.gazoo.geals.geans.geare.gears.geats.gebur.gecks.geeks.geeps.geest.geist.geits.gelds.gelee.gelid.gelly.gelts.gemel.gemma.gemmy.gemot.genal.genas.genes.genet.genic.genii.genip.genny.genoa.genom.genro.gents.genty.genua.genus.geode.geoid.gerah.gerbe.geres.gerle.germs.germy.gerne.gesse.gesso.geste.gests.getas.getup.geums.geyan.geyer.ghast.ghats.ghaut.ghazi.ghees.ghest.ghyll.gibed.gibel.giber.gibes.gibli.gibus.gifts.gigas.gighe.gigot.gigue.gilas.gilds.gilet.gills.gilly.gilpy.gilts.gimel.gimme.gimps.gimpy.ginch.ginge.gings.ginks.ginny.ginzo.gipon.gippo.gippy.girds.girls.girns.giron.giros.girrs.girsh.girts.gismo.gisms.gists.gitch.gites.giust.gived.gives.gizmo.glace.glads.glady.glaik.glair.glams.glans.glary.glaum.glaur.glazy.gleba.glebe.gleby.glede.gleds.gleed.gleek.glees.gleet.gleis.glens.glent.gleys.glial.glias.glibs.gliff.glift.glike.glime.glims.glisk.glits.glitz.gloam.globi.globs.globy.glode.glogg.gloms.gloop.glops.glost.glout.glows.gloze.glued.gluer.glues.gluey.glugs.glume.glums.gluon.glute.gluts.gnarl.gnarr.gnars.gnats.gnawn.gnaws.gnows.goads.goafs.goals.goary.goats.goaty.goban.gobar.gobbi.gobbo.gobby.gobis.gobos.godet.godso.goels.goers.goest.goeth.goety.gofer.goffs.gogga.gogos.goier.gojis.golds.goldy.goles.golfs.golpe.golps.gombo.gomer.gompa.gonch.gonef.gongs.gonia.gonif.gonks.gonna.gonof.gonys.gonzo.gooby.goods.goofs.googs.gooks.gooky.goold.gools.gooly.goons.goony.goops.goopy.goors.goory.goosy.gopak.gopik.goral.goras.gored.gores.goris.gorms.gormy.gorps.gorse.gorsy.gosht.gosse.gotch.goths.gothy.gotta.gouch.gouks.goura.gouts.gouty.gowan.gowds.gowfs.gowks.gowls.gowns.goxes.goyim.goyle.graal.grabs.grads.graff.graip.grama.grame.gramp.grams.grana.grans.grapy.gravs.grays.grebe.grebo.grece.greek.grees.grege.grego.grein.grens.grese.greve.grews.greys.grice.gride.grids.griff.grift.grigs.grike.grins.griot.grips.gript.gripy.grise.grist.grisy.grith.grits.grize.groat.grody.grogs.groks.groma.grone.groof.grosz.grots.grouf.grovy.grows.grrls.grrrl.grubs.grued.grues.grufe.grume.grump.grund.gryce.gryde.gryke.grype.grypt.guaco.guana.guano.guans.guars.gucks.gucky.gudes.guffs.gugas.guids.guimp.guiro.gulag.gular.gulas.gules.gulet.gulfs.gulfy.gulls.gulph.gulps.gulpy.gumma.gummi.gumps.gundy.gunge.gungy.gunks.gunky.gunny.guqin.gurdy.gurge.gurls.gurly.gurns.gurry.gursh.gurus.gushy.gusla.gusle.gusli.gussy.gusts.gutsy.gutta.gutty.guyed.guyle.guyot.guyse.gwine.gyals.gyans.gybed.gybes.gyeld.gymps.gynae.gynie.gynny.gynos.gyoza.gypos.gyppo.gyppy.gyral.gyred.gyres.gyron.gyros.gyrus.gytes.gyved.gyves.haafs.haars.hable.habus.hacek.hacks.hadal.haded.hades.hadji.hadst.haems.haets.haffs.hafiz.hafts.haggs.hahas.haick.haika.haiks.haiku.hails.haily.hains.haint.hairs.haith.hajes.hajis.hajji.hakam.hakas.hakea.hakes.hakim.hakus.halal.haled.haler.hales.halfa.halfs.halid.hallo.halls.halma.halms.halon.halos.halse.halts.halva.halwa.hamal.hamba.hamed.hames.hammy.hamza.hanap.hance.hanch.hands.hangi.hangs.hanks.hanky.hansa.hanse.hants.haole.haoma.hapax.haply.happi.hapus.haram.hards.hared.hares.harim.harks.harls.harms.harns.haros.harps.harts.hashy.hasks.hasps.hasta.hated.hates.hatha.hauds.haufs.haugh.hauld.haulm.hauls.hault.hauns.hause.haver.haves.hawed.hawks.hawms.hawse.hayed.hayer.hayey.hayle.hazan.hazed.hazer.hazes.heads.heald.heals.heame.heaps.heapy.heare.hears.heast.heats.heben.hebes.hecht.hecks.heder.hedgy.heeds.heedy.heels.heeze.hefte.hefts.heids.heigh.heils.heirs.hejab.hejra.heled.heles.helio.hells.helms.helos.helot.helps.helve.hemal.hemes.hemic.hemin.hemps.hempy.hench.hends.henge.henna.henny.henry.hents.hepar.herbs.herby.herds.heres.herls.herma.herms.herns.heros.herry.herse.hertz.herye.hesps.hests.hetes.heths.heuch.heugh.hevea.hewed.hewer.hewgh.hexad.hexed.hexer.hexes.hexyl.heyed.hiant.hicks.hided.hider.hides.hiems.highs.hight.hijab.hijra.hiked.hiker.hikes.hikoi.hilar.hilch.hillo.hills.hilts.hilum.hilus.himbo.hinau.hinds.hings.hinky.hinny.hints.hiois.hiply.hired.hiree.hirer.hires.hissy.hists.hithe.hived.hiver.hives.hizen.hoaed.hoagy.hoars.hoary.hoast.hobos.hocks.hocus.hodad.hodja.hoers.hogan.hogen.hoggs.hoghs.hohed.hoick.hoied.hoiks.hoing.hoise.hokas.hoked.hokes.hokey.hokis.hokku.hokum.holds.holed.holes.holey.holks.holla.hollo.holme.holms.holon.holos.holts.homas.homed.homes.homey.homie.homme.homos.honan.honda.honds.honed.honer.hones.hongi.hongs.honks.honky.hooch.hoods.hoody.hooey.hoofs.hooka.hooks.hooky.hooly.hoons.hoops.hoord.hoors.hoosh.hoots.hooty.hoove.hopak.hoped.hoper.hopes.hoppy.horah.horal.horas.horis.horks.horme.horns.horst.horsy.hosed.hosel.hosen.hoser.hoses.hosey.hosta.hosts.hotch.hoten.hotty.houff.houfs.hough.houri.hours.houts.hovea.hoved.hoven.hoves.howbe.howes.howff.howfs.howks.howls.howre.howso.hoxed.hoxes.hoyas.hoyed.hoyle.hubby.hucks.hudna.hudud.huers.huffs.huffy.huger.huggy.huhus.huias.hulas.hules.hulks.hulky.hullo.hulls.hully.humas.humfs.humic.humps.humpy.hunks.hunts.hurds.hurls.hurly.hurra.hurst.hurts.hushy.husks.husos.hutia.huzza.huzzy.hwyls.hydra.hyens.hygge.hying.hykes.hylas.hyleg.hyles.hylic.hymns.hynde.hyoid.hyped.hypes.hypha.hyphy.hypos.hyrax.hyson.hythe.iambi.iambs.ibrik.icers.iched.iches.ichor.icier.icker.ickle.icons.ictal.ictic.ictus.idant.ideas.idees.ident.idled.idles.idola.idols.idyls.iftar.igapo.igged.iglus.ihram.ikans.ikats.ikons.ileac.ileal.ileum.ileus.iliad.ilial.ilium.iller.illth.imago.imams.imari.imaum.imbar.imbed.imide.imido.imids.imine.imino.immew.immit.immix.imped.impis.impot.impro.imshi.imshy.inapt.inarm.inbye.incel.incle.incog.incus.incut.indew.india.indie.indol.indow.indri.indue.inerm.infix.infos.infra.ingan.ingle.inion.inked.inker.inkle.inned.innit.inorb.inrun.inset.inspo.intel.intil.intis.intra.inula.inure.inurn.inust.invar.inwit.iodic.iodid.iodin.iotas.ippon.irade.irids.iring.irked.iroko.irone.irons.isbas.ishes.isled.isles.isnae.issei.istle.items.ither.ivied.ivies.ixias.ixnay.ixora.ixtle.izard.izars.izzat.jaaps.jabot.jacal.jacks.jacky.jaded.jades.jafas.jaffa.jagas.jager.jaggs.jaggy.jagir.jagra.jails.jaker.jakes.jakey.jalap.jalop.jambe.jambo.jambs.jambu.james.jammy.jamon.janes.janns.janny.janty.japan.japed.japer.japes.jarks.jarls.jarps.jarta.jarul.jasey.jaspe.jasps.jatos.jauks.jaups.javas.javel.jawan.jawed.jaxie.jeans.jeats.jebel.jedis.jeels.jeely.jeeps.jeers.jeeze.jefes.jeffs.jehad.jehus.jelab.jello.jells.jembe.jemmy.jenny.jeons.jerid.jerks.jerry.jesse.jests.jesus.jetes.jeton.jeune.jewed.jewie.jhala.jiaos.jibba.jibbs.jibed.jiber.jibes.jiffs.jiggy.jigot.jihad.jills.jilts.jimmy.jimpy.jingo.jinks.jinne.jinni.jinns.jirds.jirga.jirre.jisms.jived.jiver.jives.jivey.jnana.jobed.jobes.jocko.jocks.jocky.jocos.jodel.joeys.johns.joins.joked.jokes.jokey.jokol.joled.joles.jolls.jolts.jolty.jomon.jomos.jones.jongs.jonty.jooks.joram.jorum.jotas.jotty.jotun.joual.jougs.jouks.joule.jours.jowar.jowed.jowls.jowly.joyed.jubas.jubes.jucos.judas.judgy.judos.jugal.jugum.jujus.juked.jukes.jukus.julep.jumar.jumby.jumps.junco.junks.junky.jupes.jupon.jural.jurat.jurel.jures.justs.jutes.jutty.juves.juvie.kaama.kabab.kabar.kabob.kacha.kacks.kadai.kades.kadis.kafir.kagos.kagus.kahal.kaiak.kaids.kaies.kaifs.kaika.kaiks.kails.kaims.kaing.kains.kakas.kakis.kalam.kales.kalif.kalis.kalpa.kamas.kames.kamik.kamis.kamme.kanae.kanas.kandy.kaneh.kanes.kanga.kangs.kanji.kants.kanzu.kaons.kapas.kaphs.kapok.kapow.kapus.kaput.karas.karat.karks.karns.karoo.karos.karri.karst.karsy.karts.karzy.kasha.kasme.katal.katas.katis.katti.kaugh.kauri.kauru.kaury.kaval.kavas.kawas.kawau.kawed.kayle.kayos.kazis.kazoo.kbars.kebar.kebob.kecks.kedge.kedgy.keech.keefs.keeks.keels.keema.keeno.keens.keeps.keets.keeve.kefir.kehua.keirs.kelep.kelim.kells.kelly.kelps.kelpy.kelts.kelty.kembo.kembs.kemps.kempt.kempy.kenaf.kench.kendo.kenos.kente.kents.kepis.kerbs.kerel.kerfs.kerky.kerma.kerne.kerns.keros.kerry.kerve.kesar.kests.ketas.ketch.ketes.ketol.kevel.kevil.kexes.keyed.keyer.khadi.khafs.khans.khaph.khats.khaya.khazi.kheda.kheth.khets.khoja.khors.khoum.khuds.kiaat.kiack.kiang.kibbe.kibbi.kibei.kibes.kibla.kicks.kicky.kiddo.kiddy.kidel.kidge.kiefs.kiers.kieve.kievs.kight.kikes.kikoi.kiley.kilim.kills.kilns.kilos.kilps.kilts.kilty.kimbo.kinas.kinda.kinds.kindy.kines.kings.kinin.kinks.kinos.kiore.kipes.kippa.kipps.kirby.kirks.kirns.kirri.kisan.kissy.kists.kited.kiter.kites.kithe.kiths.kitul.kivas.kiwis.klang.klaps.klett.klick.klieg.kliks.klong.kloof.kluge.klutz.knags.knaps.knarl.knars.knaur.knawe.knees.knell.knish.knits.knive.knobs.knops.knosp.knots.knout.knowe.knows.knubs.knurl.knurr.knurs.knuts.koans.koaps.koban.kobos.koels.koffs.kofta.kogal.kohas.kohen.kohls.koine.kojis.kokam.kokas.koker.kokra.kokum.kolas.kolos.kombu.konbu.kondo.konks.kooks.kooky.koori.kopek.kophs.kopje.koppa.korai.koras.korat.kores.korma.koros.korun.korus.koses.kotch.kotos.kotow.koura.kraal.krabs.kraft.krais.krait.krang.krans.kranz.kraut.krays.kreep.kreng.krewe.krona.krone.kroon.krubi.krunk.ksars.kubie.kudos.kudus.kudzu.kufis.kugel.kuias.kukri.kukus.kulak.kulan.kulas.kulfi.kumis.kumys.kuris.kurre.kurta.kurus.kusso.kutas.kutch.kutis.kutus.kuzus.kvass.kvell.kwela.kyack.kyaks.kyang.kyars.kyats.kybos.kydst.kyles.kylie.kylin.kylix.kyloe.kynde.kynds.kypes.kyrie.kytes.kythe.laari.labda.labia.labis.labra.laced.lacer.laces.lacet.lacey.lacks.laddy.laded.lader.lades.laers.laevo.lagan.lahal.lahar.laich.laics.laids.laigh.laika.laiks.laird.lairs.lairy.laith.laity.laked.laker.lakes.lakhs.lakin.laksa.laldy.lalls.lamas.lambs.lamby.lamed.lamer.lames.lamia.lammy.lamps.lanai.lanas.lanch.lande.lands.lanes.lanks.lants.lapin.lapis.lapje.larch.lards.lardy.laree.lares.largo.laris.larks.larky.larns.larnt.larum.lased.laser.lases.lassi.lassu.lassy.lasts.latah.lated.laten.latex.lathi.laths.lathy.latke.latus.lauan.lauch.lauds.laufs.laund.laura.laval.lavas.laved.laver.laves.lavra.lavvy.lawed.lawer.lawin.lawks.lawns.lawny.laxed.laxer.laxes.laxly.layed.layin.layup.lazar.lazed.lazes.lazos.lazzi.lazzo.leads.leady.leafs.leaks.leams.leans.leany.leaps.leare.lears.leary.leats.leavy.leaze.leben.leccy.ledes.ledgy.ledum.leear.leeks.leeps.leers.leese.leets.leeze.lefte.lefts.leger.leges.legge.leggo.legit.lehrs.lehua.leirs.leish.leman.lemed.lemel.lemes.lemma.lemme.lends.lenes.lengs.lenis.lenos.lense.lenti.lento.leone.lepid.lepra.lepta.lered.leres.lerps.lesbo.leses.lests.letch.lethe.letup.leuch.leuco.leuds.leugh.levas.levee.leves.levin.levis.lewis.lexes.lexis.lezes.lezza.lezzy.liana.liane.liang.liard.liars.liart.liber.libra.libri.lichi.licht.licit.licks.lidar.lidos.liefs.liens.liers.lieus.lieve.lifer.lifes.lifts.ligan.liger.ligge.ligne.liked.liker.likes.likin.lills.lilos.lilts.liman.limas.limax.limba.limbi.limbs.limby.limed.limen.limes.limey.limma.limns.limos.limpa.limps.linac.linch.linds.lindy.lined.lines.liney.linga.lings.lingy.linin.links.linky.linns.linny.linos.lints.linty.linum.linux.lions.lipas.lipes.lipin.lipos.lippy.liras.lirks.lirot.lisks.lisle.lisps.lists.litai.litas.lited.liter.lites.litho.liths.litre.lived.liven.lives.livor.livre.llano.loach.loads.loafs.loams.loans.loast.loave.lobar.lobed.lobes.lobos.lobus.loche.lochs.locie.locis.locks.locos.locum.loden.lodes.loess.lofts.logan.loges.loggy.logia.logie.logoi.logon.logos.lohan.loids.loins.loipe.loirs.lokes.lolls.lolly.lolog.lomas.lomed.lomes.loner.longa.longe.longs.looby.looed.looey.loofa.loofs.looie.looks.looky.looms.loons.loony.loops.loord.loots.loped.loper.lopes.loppy.loral.loran.lords.lordy.lorel.lores.loric.loris.losed.losel.losen.loses.lossy.lotah.lotas.lotes.lotic.lotos.lotsa.lotta.lotte.lotto.lotus.loued.lough.louie.louis.louma.lound.louns.loupe.loups.loure.lours.loury.louts.lovat.loved.loves.lovey.lovie.lowan.lowed.lowes.lownd.lowne.lowns.lowps.lowry.lowse.lowts.loxed.loxes.lozen.luach.luaus.lubed.lubes.lubra.luces.lucks.lucre.ludes.ludic.ludos.luffa.luffs.luged.luger.luges.lulls.lulus.lumas.lumbi.lumme.lummy.lumps.lunas.lunes.lunet.lungi.lungs.lunks.lunts.lupin.lured.lurer.lures.lurex.lurgi.lurgy.lurks.lurry.lurve.luser.lushy.lusks.lusts.lusus.lutea.luted.luter.lutes.luvvy.luxed.luxer.luxes.lweis.lyams.lyard.lyart.lyase.lycea.lycee.lycra.lymes.lynes.lyres.lysed.lyses.lysin.lysis.lysol.lyssa.lyted.lytes.lythe.lytic.lytta.maaed.maare.maars.mabes.macas.maced.macer.maces.mache.machi.machs.macks.macle.macon.madge.madid.madre.maerl.mafic.mages.maggs.magot.magus.mahoe.mahua.mahwa.maids.maiko.maiks.maile.maill.mails.maims.mains.maire.mairs.maise.maist.makar.makes.makis.makos.malam.malar.malas.malax.males.malic.malik.malis.malls.malms.malmy.malts.malty.malus.malva.malwa.mamas.mamba.mamee.mamey.mamie.manas.manat.mandi.maneb.maned.maneh.manes.manet.mangs.manis.manky.manna.manos.manse.manta.manto.manty.manul.manus.mapau.maqui.marae.marah.maras.marcs.mardy.mares.marge.margs.maria.marid.marka.marks.marle.marls.marly.marms.maron.maror.marra.marri.marse.marts.marvy.masas.mased.maser.mases.mashy.masks.massa.massy.masts.masty.masus.matai.mated.mater.mates.maths.matin.matlo.matte.matts.matza.matzo.mauby.mauds.mauls.maund.mauri.mausy.mauts.mauzy.maven.mavie.mavin.mavis.mawed.mawks.mawky.mawns.mawrs.maxed.maxes.maxis.mayan.mayas.mayed.mayos.mayst.mazed.mazer.mazes.mazey.mazut.mbira.meads.meals.meane.means.meany.meare.mease.meath.meats.mebos.mechs.mecks.medii.medle.meeds.meers.meets.meffs.meins.meint.meiny.meith.mekka.melas.melba.melds.melic.melik.mells.melts.melty.memes.memos.menad.mends.mened.menes.menge.mengs.mensa.mense.mensh.menta.mento.menus.meous.meows.merch.mercs.merde.mered.merel.merer.meres.meril.meris.merks.merle.merls.merse.mesal.mesas.mesel.meses.meshy.mesic.mesne.meson.messy.mesto.meted.metes.metho.meths.metic.metif.metis.metol.metre.meuse.meved.meves.mewed.mewls.meynt.mezes.mezze.mezzo.mhorr.miaou.miaow.miasm.miaul.micas.miche.micht.micks.micky.micos.micra.middy.midgy.midis.miens.mieve.miffs.miffy.mifty.miggs.mihas.mihis.miked.mikes.mikra.mikva.milch.milds.miler.miles.milfs.milia.milko.milks.mille.mills.milor.milos.milpa.milts.milty.miltz.mimed.mimeo.mimer.mimes.mimsy.minae.minar.minas.mincy.minds.mined.mines.minge.mings.mingy.minis.minke.minks.minny.minos.mints.mired.mires.mirex.mirid.mirin.mirks.mirky.mirly.miros.mirvs.mirza.misch.misdo.mises.misgo.misos.missa.mists.misty.mitch.miter.mites.mitis.mitre.mitts.mixed.mixen.mixer.mixes.mixte.mixup.mizen.mizzy.mneme.moans.moats.mobby.mobes.mobey.mobie.moble.mochi.mochs.mochy.mocks.moder.modes.modge.modii.modus.moers.mofos.moggy.mohel.mohos.mohrs.mohua.mohur.moile.moils.moira.moire.moits.mojos.mokes.mokis.mokos.molal.molas.molds.moled.moles.molla.molls.molly.molto.molts.molys.momes.momma.mommy.momus.monad.monal.monas.monde.mondo.moner.mongo.mongs.monic.monie.monks.monos.monte.monty.moobs.mooch.moods.mooed.mooks.moola.mooli.mools.mooly.moong.moons.moony.moops.moors.moory.moots.moove.moped.moper.mopes.mopey.moppy.mopsy.mopus.morae.moras.morat.moray.morel.mores.moria.morne.morns.morra.morro.morse.morts.mosed.moses.mosey.mosks.mosso.moste.mosts.moted.moten.motes.motet.motey.moths.mothy.motis.motte.motts.motty.motus.motza.mouch.moues.mould.mouls.moups.moust.mousy.moved.moves.mowas.mowed.mowra.moxas.moxie.moyas.moyle.moyls.mozed.mozes.mozos.mpret.mucho.mucic.mucid.mucin.mucks.mucor.mucro.mudge.mudir.mudra.muffs.mufti.mugga.muggs.muggy.muhly.muids.muils.muirs.muist.mujik.mulct.muled.mules.muley.mulga.mulie.mulla.mulls.mulse.mulsh.mumms.mumps.mumsy.mumus.munga.munge.mungo.mungs.munis.munts.muntu.muons.muras.mured.mures.murex.murid.murks.murls.murly.murra.murre.murri.murrs.murry.murti.murva.musar.musca.mused.muser.muses.muset.musha.musit.musks.musos.musse.mussy.musth.musts.mutch.muted.muter.mutes.mutha.mutis.muton.mutts.muxed.muxes.muzak.muzzy.mvule.myall.mylar.mynah.mynas.myoid.myoma.myope.myops.myopy.mysid.mythi.myths.mythy.myxos.mzees.naams.naans.nabes.nabis.nabks.nabla.nabob.nache.nacho.nacre.nadas.naeve.naevi.naffs.nagas.naggy.nagor.nahal.naiad.naifs.naiks.nails.naira.nairu.naked.naker.nakfa.nalas.naled.nalla.named.namer.names.namma.namus.nanas.nance.nancy.nandu.nanna.nanos.nanua.napas.naped.napes.napoo.nappa.nappe.nappy.naras.narco.narcs.nards.nares.naric.naris.narks.narky.narre.nashi.natch.nates.natis.natty.nauch.naunt.navar.naves.navew.navvy.nawab.nazes.nazir.nazis.nduja.neafe.neals.neaps.nears.neath.neats.nebek.nebel.necks.neddy.needs.neeld.neele.neemb.neems.neeps.neese.neeze.negro.negus.neifs.neist.neive.nelis.nelly.nemas.nemns.nempt.nenes.neons.neper.nepit.neral.nerds.nerka.nerks.nerol.nerts.nertz.nervy.nests.netes.netop.netts.netty.neuks.neume.neums.nevel.neves.nevus.newbs.newed.newel.newie.newsy.newts.nexts.nexus.ngaio.ngana.ngati.ngoma.ngwee.nicad.nicht.nicks.nicol.nidal.nided.nides.nidor.nidus.niefs.nieve.nifes.niffs.niffy.nifty.niger.nighs.nihil.nikab.nikah.nikau.nills.nimbi.nimbs.nimps.niner.nines.ninon.nipas.nippy.niqab.nirls.nirly.nisei.nisse.nisus.niter.nites.nitid.niton.nitre.nitro.nitry.nitty.nival.nixed.nixer.nixes.nixie.nizam.nkosi.noahs.nobby.nocks.nodal.noddy.nodes.nodus.noels.noggs.nohow.noils.noily.noint.noirs.noles.nolls.nolos.nomas.nomen.nomes.nomic.nomoi.nomos.nonas.nonce.nones.nonet.nongs.nonis.nonny.nonyl.noobs.nooit.nooks.nooky.noons.noops.nopal.noria.noris.norks.norma.norms.nosed.noser.noses.notal.noted.noter.notes.notum.nould.noule.nouls.nouns.nouny.noups.novae.novas.novum.noway.nowed.nowls.nowts.nowty.noxal.noxes.noyau.noyed.noyes.nubby.nubia.nucha.nuddy.nuder.nudes.nudie.nudzh.nuffs.nugae.nuked.nukes.nulla.nulls.numbs.numen.nummy.nunny.nurds.nurdy.nurls.nurrs.nutso.nutsy.nyaff.nyala.nying.nyssa.oaked.oaker.oakum.oared.oases.oasis.oasts.oaten.oater.oaths.oaves.obang.obeah.obeli.obeys.obias.obied.obiit.obits.objet.oboes.obole.oboli.obols.occam.ocher.oches.ochre.ochry.ocker.ocrea.octad.octan.octas.octyl.oculi.odahs.odals.odeon.odeum.odism.odist.odium.odors.odour.odyle.odyls.ofays.offed.offie.oflag.ofter.ogams.ogeed.ogees.oggin.ogham.ogive.ogled.ogler.ogles.ogmic.ogres.ohias.ohing.ohmic.ohone.oidia.oiled.oiler.oinks.oints.ojime.okapi.okays.okehs.okras.oktas.oldie.oleic.olein.olent.oleos.oleum.olios.ollas.ollav.oller.ollie.ology.olpae.olpes.omasa.omber.ombus.omens.omers.omits.omlah.omovs.omrah.oncer.onces.oncet.oncus.onely.oners.onery.onium.onkus.onlay.onned.ontic.oobit.oohed.oomph.oonts.ooped.oorie.ooses.ootid.oozed.oozes.opahs.opals.opens.opepe.oping.oppos.opsin.opted.opter.orach.oracy.orals.orang.orant.orate.orbed.orcas.orcin.ordos.oread.orfes.orgia.orgic.orgue.oribi.oriel.orixa.orles.orlon.orlop.ormer.ornis.orpin.orris.ortho.orval.orzos.oscar.oshac.osier.osmic.osmol.ossia.ostia.otaku.otary.ottar.ottos.oubit.oucht.ouens.ouija.oulks.oumas.oundy.oupas.ouped.ouphe.ouphs.ourie.ousel.ousts.outby.outed.outre.outro.outta.ouzel.ouzos.ovals.ovels.ovens.overs.ovist.ovoli.ovolo.ovule.owche.owies.owled.owler.owlet.owned.owres.owrie.owsen.oxbow.oxers.oxeye.oxids.oxies.oxime.oxims.oxlip.oxter.oyers.ozeki.ozzie.paals.paans.pacas.paced.pacer.paces.pacey.pacha.packs.pacos.pacta.pacts.padis.padle.padma.padre.padri.paean.paedo.paeon.paged.pager.pages.pagle.pagod.pagri.paiks.pails.pains.paire.pairs.paisa.paise.pakka.palas.palay.palea.paled.pales.palet.palis.palki.palla.palls.pally.palms.palmy.palpi.palps.palsa.pampa.panax.pance.panda.pands.pandy.paned.panes.panga.pangs.panim.panko.panne.panni.panto.pants.panty.paoli.paolo.papas.papaw.papes.pappi.pappy.parae.paras.parch.pardi.pards.pardy.pared.paren.pareo.pares.pareu.parev.parge.pargo.paris.parki.parks.parky.parle.parly.parma.parol.parps.parra.parrs.parti.parts.parve.parvo.paseo.pases.pasha.pashm.paska.paspy.passe.pasts.pated.paten.pater.pates.paths.patin.patka.patly.patte.patus.pauas.pauls.pavan.paved.paven.paver.paves.pavid.pavin.pavis.pawas.pawaw.pawed.pawer.pawks.pawky.pawls.pawns.paxes.payed.payor.paysd.peage.peags.peaks.peaky.peals.peans.peare.pears.peart.pease.peats.peaty.peavy.peaze.pebas.pechs.pecke.pecks.pecky.pedes.pedis.pedro.peece.peeks.peels.peens.peeoy.peepe.peeps.peers.peery.peeve.peggy.peghs.peins.peise.peize.pekan.pekes.pekin.pekoe.pelas.pelau.peles.pelfs.pells.pelma.pelon.pelta.pelts.pends.pendu.pened.penes.pengo.penie.penis.penks.penna.penni.pents.peons.peony.pepla.pepos.peppy.pepsi.perai.perce.percs.perdu.perdy.perea.peres.peris.perks.perms.perns.perog.perps.perry.perse.perst.perts.perve.pervo.pervs.pervy.pesos.pests.pesty.petar.peter.petit.petre.petri.petti.petto.pewee.pewit.peyse.phage.phang.phare.pharm.pheer.phene.pheon.phese.phial.phish.phizz.phlox.phoca.phono.phons.phots.phpht.phuts.phyla.phyle.piani.pians.pibal.pical.picas.piccy.picks.picot.picra.picul.piend.piers.piert.pieta.piets.piezo.pight.pigmy.piing.pikas.pikau.piked.piker.pikes.pikey.pikis.pikul.pilae.pilaf.pilao.pilar.pilau.pilaw.pilch.pilea.piled.pilei.piler.piles.pilis.pills.pilow.pilum.pilus.pimas.pimps.pinas.pined.pines.pingo.pings.pinko.pinks.pinna.pinny.pinon.pinot.pinta.pints.pinup.pions.piony.pious.pioye.pioys.pipal.pipas.piped.pipes.pipet.pipis.pipit.pippy.pipul.pirai.pirls.pirns.pirog.pisco.pises.pisky.pisos.pissy.piste.pitas.piths.piton.pitot.pitta.piums.pixes.pized.pizes.plaas.plack.plage.plans.plaps.plash.plasm.plast.plats.platt.platy.playa.plays.pleas.plebe.plebs.plena.pleon.plesh.plews.plica.plies.plims.pling.plink.ploat.plods.plong.plonk.plook.plops.plots.plotz.plouk.plows.ploye.ploys.plues.pluff.plugs.plums.plumy.pluot.pluto.plyer.poach.poaka.poake.poboy.pocks.pocky.podal.poddy.podex.podge.podgy.podia.poems.poeps.poets.pogey.pogge.pogos.pohed.poilu.poind.pokal.poked.pokes.pokey.pokie.poled.poler.poles.poley.polio.polis.polje.polks.polls.polly.polos.polts.polys.pombe.pomes.pommy.pomos.pomps.ponce.poncy.ponds.pones.poney.ponga.pongo.pongs.pongy.ponks.ponts.ponty.ponzu.poods.pooed.poofs.poofy.poohs.pooja.pooka.pooks.pools.poons.poops.poopy.poori.poort.poots.poove.poovy.popes.poppa.popsy.porae.poral.pored.porer.pores.porge.porgy.porin.porks.porky.porno.porns.porny.porta.ports.porty.posed.poses.posey.posho.posts.potae.potch.poted.potes.potin.potoo.potsy.potto.potts.potty.pouff.poufs.pouke.pouks.poule.poulp.poult.poupe.poupt.pours.pouts.powan.powin.pownd.powns.powny.powre.poxed.poxes.poynt.poyou.poyse.pozzy.praam.prads.prahu.prams.prana.prang.praos.prase.prate.prats.pratt.praty.praus.prays.predy.preed.prees.preif.prems.premy.prent.preon.preop.preps.presa.prese.prest.preve.prexy.preys.prial.pricy.prief.prier.pries.prigs.prill.prima.primi.primp.prims.primy.prink.prion.prise.priss.proas.probs.prods.proem.profs.progs.proin.proke.prole.proll.promo.proms.pronk.props.prore.proso.pross.prost.prosy.proto.proul.prows.proyn.prunt.pruta.pryer.pryse.pseud.pshaw.psion.psoae.psoai.psoas.psora.psych.psyop.pubco.pubes.pubis.pucan.pucer.puces.pucka.pucks.puddy.pudge.pudic.pudor.pudsy.pudus.puers.puffa.puffs.puggy.pugil.puhas.pujah.pujas.pukas.puked.puker.pukes.pukey.pukka.pukus.pulao.pulas.puled.puler.pules.pulik.pulis.pulka.pulks.pulli.pulls.pully.pulmo.pulps.pulus.pumas.pumie.pumps.punas.punce.punga.pungs.punji.punka.punks.punky.punny.punto.punts.punty.pupae.pupas.pupus.purda.pured.pures.purin.puris.purls.purpy.purrs.pursy.purty.puses.pusle.pussy.putid.puton.putti.putto.putts.puzel.pwned.pyats.pyets.pygal.pyins.pylon.pyned.pynes.pyoid.pyots.pyral.pyran.pyres.pyrex.pyric.pyros.pyxed.pyxes.pyxie.pyxis.pzazz.qadis.qaids.qajaq.qanat.qapik.qibla.qophs.qorma.quads.quaff.quags.quair.quais.quaky.quale.quant.quare.quass.quate.quats.quayd.quays.qubit.quean.queme.quena.quern.queyn.queys.quich.quids.quiff.quims.quina.quine.quino.quins.quint.quipo.quips.quipu.quire.quirt.quist.quits.quoad.quods.quoif.quoin.quoit.quoll.quonk.quops.qursh.quyte.rabat.rabic.rabis.raced.races.rache.racks.racon.radge.radix.radon.raffs.rafts.ragas.ragde.raged.ragee.rager.rages.ragga.raggs.raggy.ragis.ragus.rahed.rahui.raias.raids.raiks.raile.rails.raine.rains.raird.raita.raits.rajas.rajes.raked.rakee.raker.rakes.rakia.rakis.rakus.rales.ramal.ramee.ramet.ramie.ramin.ramis.rammy.ramps.ramus.ranas.rance.rands.ranee.ranga.rangi.rangs.rangy.ranid.ranis.ranke.ranks.rants.raped.raper.rapes.raphe.rappe.rared.raree.rares.rarks.rased.raser.rases.rasps.rasse.rasta.ratal.ratan.ratas.ratch.rated.ratel.rater.rates.ratha.rathe.raths.ratoo.ratos.ratus.rauns.raupo.raved.ravel.raver.raves.ravey.ravin.rawer.rawin.rawly.rawns.raxed.raxes.rayah.rayas.rayed.rayle.rayne.razed.razee.razer.razes.razoo.readd.reads.reais.reaks.realo.reals.reame.reams.reamy.reans.reaps.rears.reast.reata.reate.reave.rebbe.rebec.rebid.rebit.rebop.rebuy.recal.recce.recco.reccy.recit.recks.recon.recta.recti.recto.redan.redds.reddy.reded.redes.redia.redid.redip.redly.redon.redos.redox.redry.redub.redux.redye.reech.reede.reeds.reefs.reefy.reeks.reeky.reels.reens.reest.reeve.refed.refel.reffo.refis.refix.refly.refry.regar.reges.reggo.regie.regma.regna.regos.regur.rehem.reifs.reify.reiki.reiks.reink.reins.reird.reist.reive.rejig.rejon.reked.rekes.rekey.relet.relie.relit.rello.reman.remap.remen.remet.remex.remix.renay.rends.reney.renga.renig.renin.renne.renos.rente.rents.reoil.reorg.repeg.repin.repla.repos.repot.repps.repro.reran.rerig.resat.resaw.resay.resee.reses.resew.resid.resit.resod.resow.resto.rests.resty.resus.retag.retax.retem.retia.retie.retox.revet.revie.rewan.rewax.rewed.rewet.rewin.rewon.rewth.rexes.rezes.rheas.rheme.rheum.rhies.rhime.rhine.rhody.rhomb.rhone.rhumb.rhyne.rhyta.riads.rials.riant.riata.ribas.ribby.ribes.riced.ricer.rices.ricey.richt.ricin.ricks.rides.ridgy.ridic.riels.riems.rieve.rifer.riffs.rifte.rifts.rifty.riggs.rigol.riled.riles.riley.rille.rills.rimae.rimed.rimer.rimes.rimus.rinds.rindy.rines.rings.rinks.rioja.riots.riped.ripes.ripps.rises.rishi.risks.risps.risus.rites.ritts.ritzy.rivas.rived.rivel.riven.rives.riyal.rizas.roads.roams.roans.roars.roary.roate.robed.robes.roble.rocks.roded.rodes.roguy.rohes.roids.roils.roily.roins.roist.rojak.rojis.roked.roker.rokes.rolag.roles.rolfs.rolls.romal.roman.romeo.romps.ronde.rondo.roneo.rones.ronin.ronne.ronte.ronts.roods.roofs.roofy.rooks.rooky.rooms.roons.roops.roopy.roosa.roose.roots.rooty.roped.roper.ropes.ropey.roque.roral.rores.roric.rorid.rorie.rorts.rorty.rosed.roses.roset.roshi.rosin.rosit.rosti.rosts.rotal.rotan.rotas.rotch.roted.rotes.rotis.rotls.roton.rotos.rotte.rouen.roues.roule.rouls.roums.roups.roupy.roust.routh.routs.roved.roven.roves.rowan.rowed.rowel.rowen.rowie.rowme.rownd.rowth.rowts.royne.royst.rozet.rozit.ruana.rubai.rubby.rubel.rubes.rubin.ruble.rubli.rubus.ruche.rucks.rudas.rudds.rudes.rudie.rudis.rueda.ruers.ruffe.ruffs.rugae.rugal.ruggy.ruing.ruins.rukhs.ruled.rules.rumal.rumbo.rumen.rumes.rumly.rummy.rumpo.rumps.rumpy.runch.runds.runed.runes.rungs.runic.runny.runts.runty.rupia.rurps.rurus.rusas.ruses.rushy.rusks.rusma.russe.rusts.ruths.rutin.rutty.ryals.rybat.ryked.rykes.rymme.rynds.ryots.ryper.saags.sabal.sabed.saber.sabes.sabha.sabin.sabir.sable.sabot.sabra.sabre.sacks.sacra.saddo.sades.sadhe.sadhu.sadis.sados.sadza.safed.safes.sagas.sager.sages.saggy.sagos.sagum.saheb.sahib.saice.saick.saics.saids.saiga.sails.saims.saine.sains.sairs.saist.saith.sajou.sakai.saker.sakes.sakia.sakis.sakti.salal.salat.salep.sales.salet.salic.salix.salle.salmi.salol.salop.salpa.salps.salse.salto.salts.salue.salut.saman.samas.samba.sambo.samek.samel.samen.sames.samey.samfu.sammy.sampi.samps.sands.saned.sanes.sanga.sangh.sango.sangs.sanko.sansa.santo.sants.saola.sapan.sapid.sapor.saran.sards.sared.saree.sarge.sargo.sarin.saris.sarks.sarky.sarod.saros.sarus.saser.sasin.sasse.satai.satay.sated.satem.sates.satis.sauba.sauch.saugh.sauls.sault.saunt.saury.sauts.saved.saver.saves.savey.savin.sawah.sawed.sawer.saxes.sayed.sayer.sayid.sayne.sayon.sayst.sazes.scabs.scads.scaff.scags.scail.scala.scall.scams.scand.scans.scapa.scape.scapi.scarp.scars.scart.scath.scats.scatt.scaud.scaup.scaur.scaws.sceat.scena.scend.schav.schmo.schul.schwa.sclim.scody.scogs.scoog.scoot.scopa.scops.scots.scoug.scoup.scowp.scows.scrab.scrae.scrag.scran.scrat.scraw.scray.scrim.scrip.scrob.scrod.scrog.scrow.scudi.scudo.scuds.scuff.scuft.scugs.sculk.scull.sculp.sculs.scums.scups.scurf.scurs.scuse.scuta.scute.scuts.scuzz.scyes.sdayn.sdein.seals.seame.seams.seamy.seans.seare.sears.sease.seats.seaze.sebum.secco.sechs.sects.seder.sedes.sedge.sedgy.sedum.seeds.seeks.seeld.seels.seely.seems.seeps.seepy.seers.sefer.segar.segni.segno.segol.segos.sehri.seifs.seils.seine.seirs.seise.seism.seity.seiza.sekos.sekts.selah.seles.selfs.sella.selle.sells.selva.semee.semes.semie.semis.senas.sends.senes.sengi.senna.senor.sensa.sensi.sente.senti.sents.senvy.senza.sepad.sepal.sepic.sepoy.septa.septs.serac.serai.seral.sered.serer.seres.serfs.serge.seric.serin.serks.seron.serow.serra.serre.serrs.serry.servo.sesey.sessa.setae.setal.seton.setts.sewan.sewar.sewed.sewel.sewen.sewin.sexed.sexer.sexes.sexto.sexts.seyen.shads.shags.shahs.shako.shakt.shalm.shaly.shama.shams.shand.shans.shaps.sharn.shash.shaul.shawm.shawn.shaws.shaya.shays.shchi.sheaf.sheal.sheas.sheds.sheel.shend.shent.sheol.sherd.shere.shero.shets.sheva.shewn.shews.shiai.shiel.shier.shies.shill.shily.shims.shins.ships.shirr.shirs.shish.shiso.shist.shite.shits.shiur.shiva.shive.shivs.shlep.shlub.shmek.shmoe.shoat.shoed.shoer.shoes.shogi.shogs.shoji.shojo.shola.shool.shoon.shoos.shope.shops.shorl.shote.shots.shott.showd.shows.shoyu.shred.shris.shrow.shtik.shtum.shtup.shule.shuln.shuls.shuns.shura.shute.shuts.shwas.shyer.sials.sibbs.sibyl.sices.sicht.sicko.sicks.sicky.sidas.sided.sider.sides.sidha.sidhe.sidle.sield.siens.sient.sieth.sieur.sifts.sighs.sigil.sigla.signa.signs.sijos.sikas.siker.sikes.silds.siled.silen.siler.siles.silex.silks.sills.silos.silts.silty.silva.simar.simas.simba.simis.simps.simul.sinds.sined.sines.sings.sinhs.sinks.sinky.sinus.siped.sipes.sippy.sired.siree.sires.sirih.siris.siroc.sirra.sirup.sisal.sises.sista.sists.sitar.sited.sites.sithe.sitka.situp.situs.siver.sixer.sixes.sixmo.sixte.sizar.sized.sizel.sizer.sizes.skags.skail.skald.skank.skart.skats.skatt.skaws.skean.skear.skeds.skeed.skeef.skeen.skeer.skees.skeet.skegg.skegs.skein.skelf.skell.skelm.skelp.skene.skens.skeos.skeps.skers.skets.skews.skids.skied.skies.skiey.skimo.skims.skink.skins.skint.skios.skips.skirl.skirr.skite.skits.skive.skivy.sklim.skoal.skody.skoff.skogs.skols.skool.skort.skosh.skran.skrik.skuas.skugs.skyed.skyer.skyey.skyfs.skyre.skyrs.skyte.slabs.slade.slaes.slags.slaid.slake.slams.slane.slank.slaps.slart.slats.slaty.slaws.slays.slebs.sleds.sleer.slews.sleys.slier.slily.slims.slipe.slips.slipt.slish.slits.slive.sloan.slobs.sloes.slogs.sloid.slojd.slomo.sloom.sloot.slops.slopy.slorm.slots.slove.slows.sloyd.slubb.slubs.slued.slues.sluff.slugs.sluit.slums.slurb.slurs.sluse.sluts.slyer.slype.smaak.smaik.smalm.smalt.smarm.smaze.smeek.smees.smeik.smeke.smerk.smews.smirr.smirs.smits.smogs.smoko.smolt.smoor.smoot.smore.smorg.smout.smowt.smugs.smurs.smush.smuts.snabs.snafu.snags.snaps.snarf.snark.snars.snary.snash.snath.snaws.snead.sneap.snebs.sneck.sneds.sneed.snees.snell.snibs.snick.snies.snift.snigs.snips.snipy.snirt.snits.snobs.snods.snoek.snoep.snogs.snoke.snood.snook.snool.snoot.snots.snowk.snows.snubs.snugs.snush.snyes.soaks.soaps.soare.soars.soave.sobas.socas.soces.socko.socks.socle.sodas.soddy.sodic.sodom.sofar.sofas.softa.softs.softy.soger.sohur.soils.soily.sojas.sojus.sokah.soken.sokes.sokol.solah.solan.solas.solde.soldi.soldo.solds.soled.solei.soler.soles.solon.solos.solum.solus.soman.somas.sonce.sonde.sones.songs.sonly.sonne.sonny.sonse.sonsy.sooey.sooks.sooky.soole.sools.sooms.soops.soote.soots.sophs.sophy.sopor.soppy.sopra.soral.soras.sorbo.sorbs.sorda.sordo.sords.sored.soree.sorel.sorer.sores.sorex.sorgo.sorns.sorra.sorta.sorts.sorus.soths.sotol.souce.souct.sough.souks.souls.soums.soups.soupy.sours.souse.souts.sowar.sowce.sowed.sowff.sowfs.sowle.sowls.sowms.sownd.sowne.sowps.sowse.sowth.soyas.soyle.soyuz.sozin.spacy.spado.spaed.spaer.spaes.spags.spahi.spail.spain.spait.spake.spald.spale.spall.spalt.spams.spane.spang.spans.spard.spars.spart.spate.spats.spaul.spawl.spaws.spayd.spays.spaza.spazz.speal.spean.speat.specs.spect.speel.speer.speil.speir.speks.speld.spelk.speos.spets.speug.spews.spewy.spial.spica.spick.spics.spide.spier.spies.spiff.spifs.spiks.spile.spims.spina.spink.spins.spirt.spiry.spits.spitz.spivs.splay.splog.spode.spods.spoom.spoor.spoot.spork.sposh.spots.sprad.sprag.sprat.spred.sprew.sprit.sprod.sprog.sprue.sprug.spuds.spued.spuer.spues.spugs.spule.spume.spumy.spurs.sputa.spyal.spyre.squab.squaw.squeg.squid.squit.squiz.stabs.stade.stags.stagy.staig.stane.stang.staph.staps.starn.starr.stars.stats.staun.staws.stays.stean.stear.stedd.stede.steds.steek.steem.steen.steil.stela.stele.stell.steme.stems.stend.steno.stens.stent.steps.stept.stere.stets.stews.stewy.steys.stich.stied.sties.stilb.stile.stime.stims.stimy.stipa.stipe.stire.stirk.stirp.stirs.stive.stivy.stoae.stoai.stoas.stoat.stobs.stoep.stogy.stoit.stoln.stoma.stond.stong.stonk.stonn.stook.stoor.stope.stops.stopt.stoss.stots.stott.stoun.stoup.stour.stown.stowp.stows.strad.strae.strag.strak.strep.strew.stria.strig.strim.strop.strow.stroy.strum.stubs.stude.studs.stull.stulm.stumm.stums.stuns.stupa.stupe.sture.sturt.styed.styes.styli.stylo.styme.stymy.styre.styte.subah.subas.subby.suber.subha.succi.sucks.sucky.sucre.sudds.sudor.sudsy.suede.suent.suers.suete.suets.suety.sugan.sughs.sugos.suhur.suids.suint.suits.sujee.sukhs.sukuk.sulci.sulfa.sulfo.sulks.sulph.sulus.sumis.summa.sumos.sumph.sumps.sunis.sunks.sunna.sunns.sunup.supes.supra.surah.sural.suras.surat.surds.sured.sures.surfs.surfy.surgy.surra.sused.suses.susus.sutor.sutra.sutta.swabs.swack.swads.swage.swags.swail.swain.swale.swaly.swamy.swang.swank.swans.swaps.swapt.sward.sware.swarf.swart.swats.swayl.sways.sweal.swede.sweed.sweel.sweer.swees.sweir.swelt.swerf.sweys.swies.swigs.swile.swims.swink.swipe.swire.swiss.swith.swits.swive.swizz.swobs.swole.swoln.swops.swopt.swots.swoun.sybbe.sybil.syboe.sybow.sycee.syces.sycon.syens.syker.sykes.sylis.sylph.sylva.symar.synch.syncs.synds.syned.synes.synth.syped.sypes.syphs.syrah.syren.sysop.sythe.syver.taals.taata.taber.tabes.tabid.tabis.tabla.tabor.tabun.tabus.tacan.taces.tacet.tache.tacho.tachs.tacks.tacos.tacts.taels.tafia.taggy.tagma.tahas.tahrs.taiga.taigs.taiko.tails.tains.taira.taish.taits.tajes.takas.takes.takhi.takin.takis.takky.talak.talaq.talar.talas.talcs.talcy.talea.taler.tales.talks.talky.talls.talma.talpa.taluk.talus.tamal.tamed.tames.tamin.tamis.tammy.tamps.tanas.tanga.tangi.tangs.tanhs.tanka.tanks.tanky.tanna.tansy.tanti.tanto.tanty.tapas.taped.tapen.tapes.tapet.tapis.tappa.tapus.taras.tardo.tared.tares.targa.targe.tarns.taroc.tarok.taros.tarps.tarre.tarry.tarsi.tarts.tarty.tasar.tased.taser.tases.tasks.tassa.tasse.tasso.tatar.tater.tates.taths.tatie.tatou.tatts.tatus.taube.tauld.tauon.taupe.tauts.tavah.tavas.taver.tawai.tawas.tawed.tawer.tawie.tawse.tawts.taxed.taxer.taxes.taxis.taxol.taxon.taxor.taxus.tayra.tazza.tazze.teade.teads.teaed.teaks.teals.teams.tears.teats.teaze.techs.techy.tecta.teels.teems.teend.teene.teens.teeny.teers.teffs.teggs.tegua.tegus.tehrs.teiid.teils.teind.teins.telae.telco.teles.telex.telia.telic.tells.telly.teloi.telos.temed.temes.tempi.temps.tempt.temse.tench.tends.tendu.tenes.tenge.tenia.tenne.tenno.tenny.tenon.tents.tenty.tenue.tepal.tepas.tepoy.terai.teras.terce.terek.teres.terfe.terfs.terga.terms.terne.terns.terry.terts.tesla.testa.teste.tests.tetes.teths.tetra.tetri.teuch.teugh.tewed.tewel.tewit.texas.texes.texts.thack.thagi.thaim.thale.thali.thana.thane.thang.thans.thanx.tharm.thars.thaws.thawy.thebe.theca.theed.theek.thees.thegn.theic.thein.thelf.thema.thens.theow.therm.thesp.thete.thews.thewy.thigs.thilk.thill.thine.thins.thiol.thirl.thoft.thole.tholi.thoro.thorp.thous.thowl.thrae.thraw.thrid.thrip.throe.thuds.thugs.thuja.thunk.thurl.thuya.thymi.thymy.tians.tiars.tical.ticca.ticed.tices.tichy.ticks.ticky.tiddy.tided.tides.tiers.tiffs.tifos.tifts.tiges.tigon.tikas.tikes.tikis.tikka.tilak.tiled.tiler.tiles.tills.tilly.tilth.tilts.timbo.timed.times.timon.timps.tinas.tinct.tinds.tinea.tined.tines.tinge.tings.tinks.tinny.tints.tinty.tipis.tippy.tired.tires.tirls.tiros.tirrs.titch.titer.titis.titre.titty.titup.tiyin.tiyns.tizes.tizzy.toads.toady.toaze.tocks.tocky.tocos.todde.toeas.toffs.toffy.tofts.tofus.togae.togas.toged.toges.togue.tohos.toile.toils.toing.toise.toits.tokay.toked.toker.tokes.tokos.tolan.tolar.tolas.toled.toles.tolls.tolly.tolts.tolus.tolyl.toman.tombs.tomes.tomia.tommy.tomos.tondi.tondo.toned.toner.tones.toney.tongs.tonka.tonks.tonne.tonus.tools.tooms.toons.toots.toped.topee.topek.toper.topes.tophe.tophi.tophs.topis.topoi.topos.toppy.toque.torah.toran.toras.torcs.tores.toric.torii.toros.torot.torrs.torse.torsi.torsk.torta.torte.torts.tosas.tosed.toses.toshy.tossy.toted.toter.totes.totty.touks.touns.tours.touse.tousy.touts.touze.touzy.towed.towie.towns.towny.towse.towsy.towts.towze.towzy.toyed.toyer.toyon.toyos.tozed.tozes.tozie.trabs.trads.tragi.traik.trams.trank.tranq.trans.trant.trape.traps.trapt.trass.trats.tratt.trave.trayf.trays.treck.treed.treen.trees.trefa.treif.treks.trema.trems.tress.trest.trets.trews.treyf.treys.triac.tride.trier.tries.triff.trigo.trigs.trike.trild.trill.trims.trine.trins.triol.trior.trios.trips.tripy.trist.troad.troak.troat.trock.trode.trods.trogs.trois.troke.tromp.trona.tronc.trone.tronk.trons.trooz.troth.trots.trows.troys.trued.trues.trugo.trugs.trull.tryer.tryke.tryma.tryps.tsade.tsadi.tsars.tsked.tsuba.tsubo.tuans.tuart.tuath.tubae.tubar.tubas.tubby.tubed.tubes.tucks.tufas.tuffe.tuffs.tufts.tufty.tugra.tuile.tuina.tuism.tuktu.tules.tulpa.tulsi.tumid.tummy.tumps.tumpy.tunas.tunds.tuned.tuner.tunes.tungs.tunny.tupek.tupik.tuple.tuque.turds.turfs.turfy.turks.turme.turms.turns.turnt.turps.turrs.tushy.tusks.tusky.tutee.tutti.tutty.tutus.tuxes.tuyer.twaes.twain.twals.twank.twats.tways.tweel.tween.tweep.tweer.twerk.twerp.twier.twigs.twill.twilt.twink.twins.twiny.twire.twirp.twite.twits.twoer.twyer.tyees.tyers.tyiyn.tykes.tyler.tymps.tynde.tyned.tynes.typal.typed.types.typey.typic.typos.typps.typto.tyran.tyred.tyres.tyros.tythe.tzars.udals.udons.ugali.ugged.uhlan.uhuru.ukase.ulama.ulans.ulema.ulmin.ulnad.ulnae.ulnar.ulnas.ulpan.ulvas.ulyie.ulzie.umami.umbel.umber.umble.umbos.umbre.umiac.umiak.umiaq.ummah.ummas.ummed.umped.umphs.umpie.umpty.umrah.umras.unais.unapt.unarm.unary.unaus.unbag.unban.unbar.unbed.unbid.unbox.uncap.unces.uncia.uncos.uncoy.uncus.undam.undee.undos.undug.uneth.unfix.ungag.unget.ungod.ungot.ungum.unhat.unhip.unica.units.unjam.unked.unket.unkid.unlaw.unlay.unled.unlet.unlid.unman.unmew.unmix.unpay.unpeg.unpen.unpin.unred.unrid.unrig.unrip.unsaw.unsay.unsee.unsew.unsex.unsod.untax.untin.unwet.unwit.unwon.upbow.upbye.updos.updry.upend.upjet.uplay.upled.uplit.upped.upran.uprun.upsee.upsey.uptak.upter.uptie.uraei.urali.uraos.urare.urari.urase.urate.urbex.urbia.urdee.ureal.ureas.uredo.ureic.urena.urent.urged.urger.urges.urial.urite.urman.urnal.urned.urped.ursae.ursid.urson.urubu.urvas.users.usnea.usque.usure.usury.uteri.uveal.uveas.uvula.vacua.vaded.vades.vagal.vagus.vails.vaire.vairs.vairy.vakas.vakil.vales.valis.valse.vamps.vampy.vanda.vaned.vanes.vangs.vants.vaped.vaper.vapes.varan.varas.vardy.varec.vares.varia.varix.varna.varus.varve.vasal.vases.vasts.vasty.vatic.vatus.vauch.vaute.vauts.vawte.vaxes.veale.veals.vealy.veena.veeps.veers.veery.vegas.veges.vegie.vegos.vehme.veils.veily.veins.veiny.velar.velds.veldt.veles.vells.velum.venae.venal.vends.vendu.veney.venge.venin.vents.venus.verbs.verra.verry.verst.verts.vertu.vespa.vesta.vests.vetch.vexed.vexer.vexes.vexil.vezir.vials.viand.vibes.vibex.vibey.viced.vices.vichy.viers.views.viewy.vifda.viffs.vigas.vigia.vilde.viler.villi.vills.vimen.vinal.vinas.vinca.vined.viner.vines.vinew.vinic.vinos.vints.viold.viols.vired.vireo.vires.virga.virge.virid.virls.virtu.visas.vised.vises.visie.visne.vison.visto.vitae.vitas.vitex.vitro.vitta.vivas.vivat.vivda.viver.vives.vizir.vizor.vleis.vlies.vlogs.voars.vocab.voces.voddy.vodou.vodun.voema.vogie.voids.voile.voips.volae.volar.voled.voles.volet.volks.volta.volte.volti.volts.volva.volve.vomer.voted.votes.vouge.voulu.vowed.vower.voxel.vozhd.vraic.vrils.vroom.vrous.vrouw.vrows.vuggs.vuggy.vughs.vughy.vulgo.vulns.vulva.vutty.waacs.wacke.wacko.wacks.wadds.waddy.waded.wader.wades.wadge.wadis.wadts.waffs.wafts.waged.wages.wagga.wagyu.wahoo.waide.waifs.waift.wails.wains.wairs.waite.waits.wakas.waked.waken.waker.wakes.wakfs.waldo.walds.waled.waler.wales.walie.walis.walks.walla.walls.wally.walty.wamed.wames.wamus.wands.waned.wanes.waney.wangs.wanks.wanky.wanle.wanly.wanna.wants.wanty.wanze.waqfs.warbs.warby.wards.wared.wares.warez.warks.warms.warns.warps.warre.warst.warts.wases.washy.wasms.wasps.waspy.wasts.watap.watts.wauff.waugh.wauks.waulk.wauls.waurs.waved.waves.wavey.wawas.wawes.wawls.waxed.waxer.waxes.wayed.wazir.wazoo.weald.weals.weamb.weans.wears.webby.weber.wecht.wedel.wedgy.weeds.weeke.weeks.weels.weems.weens.weeny.weeps.weepy.weest.weete.weets.wefte.wefts.weids.weils.weirs.weise.weize.wekas.welds.welke.welks.welkt.wells.welly.welts.wembs.wends.wenge.wenny.wents.weros.wersh.wests.wetas.wetly.wexed.wexes.whamo.whams.whang.whaps.whare.whata.whats.whaup.whaur.wheal.whear.wheen.wheep.wheft.whelk.whelm.whens.whets.whews.wheys.whids.whift.whigs.whilk.whims.whins.whios.whips.whipt.whirr.whirs.whish.whiss.whist.whits.whity.whizz.whomp.whoof.whoot.whops.whore.whorl.whort.whoso.whows.whump.whups.whyda.wicca.wicks.wicky.widdy.wides.wiels.wifed.wifes.wifey.wifie.wifty.wigan.wigga.wiggy.wikis.wilco.wilds.wiled.wiles.wilga.wilis.wilja.wills.wilts.wimps.winds.wined.wines.winey.winge.wings.wingy.winks.winna.winns.winos.winze.wiped.wiper.wipes.wired.wirer.wires.wirra.wised.wises.wisha.wisht.wisps.wists.witan.wited.wites.withe.withs.withy.wived.wiver.wives.wizen.wizes.woads.woald.wocks.wodge.woful.wojus.woker.wokka.wolds.wolfs.wolly.wolve.wombs.womby.womyn.wonga.wongi.wonks.wonky.wonts.woods.wooed.woofs.woofy.woold.wools.woons.woops.woopy.woose.woosh.wootz.words.works.worms.wormy.worts.wowed.wowee.woxen.wrang.wraps.wrapt.wrast.wrate.wrawl.wrens.wrick.wried.wrier.wries.writs.wroke.wroot.wroth.wryer.wuddy.wudus.wulls.wurst.wuses.wushu.wussy.wuxia.wyled.wyles.wynds.wynns.wyted.wytes.xebec.xenia.xenic.xenon.xeric.xerox.xerus.xoana.xrays.xylan.xylem.xylic.xylol.xylyl.xysti.xysts.yaars.yabas.yabba.yabby.yacca.yacka.yacks.yaffs.yager.yages.yagis.yahoo.yaird.yakka.yakow.yales.yamen.yampy.yamun.yangs.yanks.yapok.yapon.yapps.yappy.yarak.yarco.yards.yarer.yarfa.yarks.yarns.yarrs.yarta.yarto.yates.yauds.yauld.yaups.yawed.yawey.yawls.yawns.yawny.yawps.ybore.yclad.ycled.ycond.ydrad.ydred.yeads.yeahs.yealm.yeans.yeard.years.yecch.yechs.yechy.yedes.yeeds.yeesh.yeggs.yelks.yells.yelms.yelps.yelts.yenta.yente.yerba.yerds.yerks.yeses.yesks.yests.yesty.yetis.yetts.yeuks.yeuky.yeven.yeves.yewen.yexed.yexes.yfere.yiked.yikes.yills.yince.yipes.yippy.yirds.yirks.yirrs.yirth.yites.yitie.ylems.ylike.ylkes.ymolt.ympes.yobbo.yobby.yocks.yodel.yodhs.yodle.yogas.yogee.yoghs.yogic.yogin.yogis.yoick.yojan.yoked.yokel.yoker.yokes.yokul.yolks.yolky.yomim.yomps.yonic.yonis.yonks.yoofs.yoops.yores.yorks.yorps.youks.yourn.yours.yourt.youse.yowed.yowes.yowie.yowls.yowza.yrapt.yrent.yrivd.yrneh.ysame.ytost.yuans.yucas.yucca.yucch.yucko.yucks.yucky.yufts.yugas.yuked.yukes.yukky.yukos.yulan.yules.yummo.yummy.yumps.yupon.yuppy.yurta.yurts.yuzus.zabra.zacks.zaida.zaidy.zaire.zakat.zaman.zambo.zamia.zanja.zante.zanza.zanze.zappy.zarfs.zaris.zatis.zaxes.zayin.zazen.zeals.zebec.zebub.zebus.zedas.zeins.zendo.zerda.zerks.zeros.zests.zetas.zexes.zezes.zhomo.zibet.ziffs.zigan.zilas.zilch.zilla.zills.zimbi.zimbs.zinco.zincs.zincy.zineb.zines.zings.zingy.zinke.zinky.zippo.zippy.ziram.zitis.zizel.zizit.zlote.zloty.zoaea.zobos.zobus.zocco.zoeae.zoeal.zoeas.zoism.zoist.zombi.zonae.zonda.zoned.zoner.zones.zonks.zooea.zooey.zooid.zooks.zooms.zoons.zooty.zoppa.zoppo.zoril.zoris.zorro.zouks.zowee.zowie.zulus.zupan.zupas.zuppa.zurfs.zuzim.zygal.zygon.zymes.zymic".split("."), $ = 5, Ui = 6, Wi = Object.freeze(new Set([...Hi, ...Vi]));
4537
+ function Gi() {
4538
+ return Vi[Math.floor(Math.random() * Vi.length)];
4488
4539
  }
4489
- function Ui(e) {
4490
- return Vi.has(e);
4540
+ function Ki(e) {
4541
+ return Wi.has(e);
4491
4542
  }
4492
- function Wi(e, t) {
4543
+ function qi(e, t) {
4493
4544
  let n = Array.from({ length: $ }, (t, n) => ({
4494
4545
  letter: e[n],
4495
4546
  status: "absent"
@@ -4503,7 +4554,7 @@ function Wi(e, t) {
4503
4554
  }
4504
4555
  return n;
4505
4556
  }
4506
- var Gi = [
4557
+ var Ji = [
4507
4558
  [
4508
4559
  "Q",
4509
4560
  "W",
@@ -4539,7 +4590,7 @@ var Gi = [
4539
4590
  "⌫"
4540
4591
  ]
4541
4592
  ];
4542
- function Ki(e, t) {
4593
+ function Yi(e, t) {
4543
4594
  switch (t.type) {
4544
4595
  case "addLetter": return e.gameStatus !== "playing" || e.currentGuess.length >= $ ? e : {
4545
4596
  ...e,
@@ -4558,17 +4609,17 @@ function Ki(e, t) {
4558
4609
  ...e,
4559
4610
  errorMessage: "Not enough letters"
4560
4611
  };
4561
- if (!Ui(t)) return {
4612
+ if (!Ki(t)) return {
4562
4613
  ...e,
4563
4614
  errorMessage: "Not in word list"
4564
4615
  };
4565
- let n = Wi(t, e.answer), r = [...e.board, n], i = { ...e.letterStatuses };
4616
+ let n = qi(t, e.answer), r = [...e.board, n], i = { ...e.letterStatuses };
4566
4617
  for (let { letter: e, status: t } of n) {
4567
4618
  let n = i[e];
4568
4619
  n !== "correct" && (t === "correct" || n !== "present") && (i[e] = t);
4569
4620
  }
4570
4621
  let a = e.gameStatus;
4571
- return t === e.answer ? a = "won" : r.length >= Bi && (a = "lost"), {
4622
+ return t === e.answer ? a = "won" : r.length >= Ui && (a = "lost"), {
4572
4623
  ...e,
4573
4624
  board: r,
4574
4625
  letterStatuses: i,
@@ -4588,22 +4639,22 @@ function Ki(e, t) {
4588
4639
  default: return e;
4589
4640
  }
4590
4641
  }
4591
- var qi = (e) => {
4642
+ var Xi = (e) => {
4592
4643
  let a = m({
4593
- answer: e?.initialWord ?? Hi(),
4644
+ answer: e?.initialWord ?? Gi(),
4594
4645
  board: [],
4595
4646
  currentGuess: "",
4596
4647
  gameStatus: "playing",
4597
4648
  letterStatuses: {},
4598
4649
  errorMessage: ""
4599
4650
  }), o = (e) => {
4600
- a.value = Ki(a.value, e);
4651
+ a.value = Yi(a.value, e);
4601
4652
  }, s = (e) => o({
4602
4653
  type: "addLetter",
4603
4654
  letter: e
4604
4655
  }), c = () => o({ type: "removeLetter" }), l = () => o({ type: "submit" }), f = () => o({
4605
4656
  type: "reset",
4606
- answer: Hi()
4657
+ answer: Gi()
4607
4658
  }), p = /* @__PURE__ */ i({
4608
4659
  name: "Wordle",
4609
4660
  setup() {
@@ -4612,12 +4663,12 @@ var qi = (e) => {
4612
4663
  n || r || i || (t === "Enter" ? l() : t === "Backspace" ? c() : /^[a-zA-Z]$/.test(t) && s(t));
4613
4664
  };
4614
4665
  return d(() => document.addEventListener("keydown", e)), u(() => document.removeEventListener("keydown", e)), () => {
4615
- let { answer: e, board: t, currentGuess: i, gameStatus: o, letterStatuses: u, errorMessage: d } = a.value, p = Array.from({ length: Bi }, (e, n) => {
4666
+ let { answer: e, board: t, currentGuess: i, gameStatus: o, letterStatuses: u, errorMessage: d } = a.value, p = Array.from({ length: Ui }, (e, n) => {
4616
4667
  let a = t[n], s = n === t.length && o === "playing", c = Array.from({ length: $ }, (e, t) => {
4617
4668
  let n = "", o = "empty";
4618
4669
  return a ? (n = a[t].letter.toUpperCase(), o = a[t].status) : s && (n = (i[t] ?? "").toUpperCase(), o = n ? "tbd" : "empty"), r("div", {
4619
4670
  key: t,
4620
- class: b(Q.cell, o === "correct" && Q.correct, o === "present" && Q.present, o === "absent" && Q.absent, o === "tbd" && Q.tbd, o === "empty" && Q.empty)
4671
+ class: x(Q.cell, o === "correct" && Q.correct, o === "present" && Q.present, o === "absent" && Q.absent, o === "tbd" && Q.tbd, o === "empty" && Q.empty)
4621
4672
  }, [n]);
4622
4673
  });
4623
4674
  return r("div", {
@@ -4627,7 +4678,7 @@ var qi = (e) => {
4627
4678
  });
4628
4679
  return r("div", { class: Q["elm-wordle"] }, [
4629
4680
  r("div", {
4630
- class: b(Q["message-area"], d ? Q.error : o === "playing" ? void 0 : Q.status),
4681
+ class: x(Q["message-area"], d ? Q.error : o === "playing" ? void 0 : Q.status),
4631
4682
  "aria-live": "polite"
4632
4683
  }, [d || (o === "won" ? `🎉 You won in ${t.length} ${t.length === 1 ? "guess" : "guesses"}!` : o === "lost" ? `😢 The word was "${e.toUpperCase()}"` : null)]),
4633
4684
  r("div", { class: Q.board }, [p]),
@@ -4637,7 +4688,7 @@ var qi = (e) => {
4637
4688
  let t = e.target.closest("button[data-key]")?.dataset.key;
4638
4689
  t && (t === "Enter" ? l() : t === "⌫" ? c() : s(t));
4639
4690
  }
4640
- }, [Gi.map((e, t) => r("div", {
4691
+ }, [Ji.map((e, t) => r("div", {
4641
4692
  key: t,
4642
4693
  class: Q["keyboard-row"]
4643
4694
  }, [e.map((e) => {
@@ -4645,10 +4696,10 @@ var qi = (e) => {
4645
4696
  return r("button", {
4646
4697
  key: e,
4647
4698
  "data-key": e,
4648
- class: b(Q.key, e === "Enter" && Q.wide, e === "⌫" && Q.wide, t === "correct" && Q.correct, t === "present" && Q.present, t === "absent" && Q.absent)
4699
+ class: x(Q.key, e === "Enter" && Q.wide, e === "⌫" && Q.wide, t === "correct" && Q.correct, t === "present" && Q.present, t === "absent" && Q.absent)
4649
4700
  }, [e]);
4650
4701
  })]))]),
4651
- r("div", { class: b(Q["reset-container"], o === "playing" && Q.hidden) }, [r("button", {
4702
+ r("div", { class: x(Q["reset-container"], o === "playing" && Q.hidden) }, [r("button", {
4652
4703
  class: Q["reset-button"],
4653
4704
  onClick: f
4654
4705
  }, [n("Play Again")])])
@@ -4671,4 +4722,4 @@ var qi = (e) => {
4671
4722
  };
4672
4723
  };
4673
4724
  //#endregion
4674
- export { Mn as A2uiSurface, gn as CatalogRenderer, Nn as ElmA2ui, er as ElmAudioPlayer, qr as ElmBlockFallback, or as ElmBlockImage, pr as ElmBlockQuote, dr as ElmBookmark, bi as ElmBreadcrumb, Jr as ElmButton, Xr as ElmButtonDropdown, gr as ElmCallout, Zr as ElmCheckbox, Kn as ElmCodeBlock, Jt as ElmCollapse, Ei as ElmColorPrimitiveSample, Pi as ElmColorSemanticSample, ci as ElmCopyIcon, br as ElmDivider, Kr as ElmDotLoadingIcon, lr as ElmFile, an as ElmFragmentIdentifier, sn as ElmHeading, Zn as ElmHtml, zr as ElmHtmlViewer, w as ElmInlineIcon, T as ElmInlineText, Fn as ElmKatex, Vn as ElmLanguageIcon, Sr as ElmList, Li as ElmMarkdown, O as ElmMdiIcon, ir as ElmModal, vr as ElmNotionCallout, Si as ElmPageTop, dn as ElmParagraph, Vr as ElmParallax, nr as ElmRectangleWave, $r as ElmSelect, Un as ElmShikiHighlighter, ni as ElmSlider, ui as ElmSquareLoadingIcon, ri as ElmSwitch, en as ElmTab, $t as ElmTabList, tn as ElmTabPanel, Tr as ElmTable, Er as ElmTableBody, Or as ElmTableCell, Ar as ElmTableHeader, Mr as ElmTableRow, Qt as ElmTabs, ii as ElmTextArea, ai as ElmTextField, fr as ElmToggle, vi as ElmToggleTheme, Ur as ElmTooltip, Pr as ElmUnsupportedBlock, si as ElmValidation, Cr as HasRowHeaderContext, Ot as LANGUAGES, di as THEME_CHANGE_EVENT, wr as TableSectionContext, Cn as basicCatalog, Lr as blockCatalog, D as defineRenderer, Gn as useClipboard, gi as useElmethisTheme, ar as useModal, qi as useWordle };
4725
+ export { jn as A2uiSurface, hn as CatalogRenderer, Mn as ElmA2ui, rr as ElmAudioPlayer, Yr as ElmBlockFallback, lr as ElmBlockImage, _r as ElmBlockQuote, mr as ElmBookmark, Ci as ElmBreadcrumb, Xr as ElmButton, Qr as ElmButtonDropdown, br as ElmCallout, $r as ElmCheckbox, Gn as ElmCodeBlock, qt as ElmCollapse, ki as ElmColorPrimitiveSample, Li as ElmColorSemanticSample, ui as ElmCopyIcon, wr as ElmDivider, Jr as ElmDotLoadingIcon, fr as ElmFile, rn as ElmFragmentIdentifier, on as ElmHeading, $n as ElmHtml, er as ElmHtmlViewer, T as ElmInlineIcon, E as ElmInlineText, Pn as ElmKatex, Bn as ElmLanguageIcon, Er as ElmList, Bi as ElmMarkdown, k as ElmMdiIcon, sr as ElmModal, Sr as ElmNotionCallout, Ti as ElmPageTop, un as ElmParagraph, Ur as ElmParallax, ar as ElmRectangleWave, ti as ElmSelect, Hn as ElmShikiHighlighter, ii as ElmSlider, fi as ElmSquareLoadingIcon, ai as ElmSwitch, $t as ElmTab, Qt as ElmTabList, en as ElmTabPanel, kr as ElmTable, Ar as ElmTableBody, Mr as ElmTableCell, Pr as ElmTableHeader, Ir as ElmTableRow, Zt as ElmTabs, oi as ElmTextArea, si as ElmTextField, hr as ElmToggle, xi as ElmToggleTheme, Gr as ElmTooltip, Rr as ElmUnsupportedBlock, li as ElmValidation, Dr as HasRowHeaderContext, Dt as LANGUAGES, mi as THEME_CHANGE_EVENT, Or as TableSectionContext, Sn as basicCatalog, O as defineRenderer, Vr as notionBlockCatalog, Wn as useClipboard, yi as useElmethisTheme, cr as useModal, Xi as useWordle };