text: var app = (function () {
    "use strict";
    function e() {}
    const s = (e) => e;
    function a(e) {
      return e();
    }
    function t() {
      return Object.create(null);
    }
    function o(e) {
      e.forEach(a);
    }
    function r(e) {
      return "function" == typeof e;
    }
    function n(e, s) {
      return e != e ? s == s : e !== s || (e && "object" == typeof e) || "function" == typeof e;
    }
    function i(s, a, t) {
      s.$$.on_destroy.push(
        (function (s, ...a) {
          if (null == s) return e;
          const t = s.subscribe(...a);
          return t.unsubscribe ? () => t.unsubscribe() : t;
        })(a, t)
      );
    }
    function l(e, s, a, t) {
      if (e) {
        const o = u(e, s, a, t);
        return e[0](o);
      }
    }
    function u(e, s, a, t) {
      return e[1] && t
        ? (function (e, s) {
            for (const a in s) e[a] = s[a];
            return e;
          })(a.ctx.slice(), e[1](t(s)))
        : a.ctx;
    }
    function c(e, s, a, t) {
      if (e[2] && t) {
        const o = e[2](t(a));
        if (void 0 === s.dirty) return o;
        if ("object" == typeof o) {
          const e = [],
            a = Math.max(s.dirty.length, o.length);
          for (let t = 0; t < a; t += 1) e[t] = s.dirty[t] | o[t];
          return e;
        }
        return s.dirty | o;
      }
      return s.dirty;
    }
    function d(e, s, a, t, o, r) {
      if (o) {
        const n = u(s, a, t, r);
        e.p(n, o);
      }
    }
    function p(e) {
      if (e.ctx.length > 32) {
        const s = [],
          a = e.ctx.length / 32;
        for (let e = 0; e < a; e++) s[e] = -1;
        return s;
      }
      return -1;
    }
    function m(e) {
      let s = !1;
      return function (...a) {
        s || ((s = !0), e.call(this, ...a));
      };
    }
    function h(e) {
      return null == e ? "" : e;
    }
    function y(e, s, a) {
      return e.set(a), s;
    }
    const g = "undefined" != typeof window;
    let f = g ? () => window.performance.now() : () => Date.now(),
      b = g ? (e) => requestAnimationFrame(e) : e;
    const k = new Set();
    function w(e) {
      k.forEach((s) => {
        s.c(e) || (k.delete(s), s.f());
      }),
        0 !== k.size && b(w);
    }
    function v(e) {
      let s;
      return (
        0 === k.size && b(w),
        {
          promise: new Promise((a) => {
            k.add((s = { c: e, f: a }));
          }),
          abort() {
            k.delete(s);
          },
        }
      );
    }
    function $(e, s) {
      e.appendChild(s);
    }
    function x(e) {
      if (!e) return document;
      const s = e.getRootNode ? e.getRootNode() : e.ownerDocument;
      return s && s.host ? s : e.ownerDocument;
    }
    function z(e) {
      const s = S("style");
      return (
        (function (e, s) {
          $(e.head || e, s);
        })(x(e), s),
        s.sheet
      );
    }
    function j(e, s, a) {
      e.insertBefore(s, a || null);
    }
    function q(e) {
      e.parentNode.removeChild(e);
    }
    function C(e, s) {
      for (let a = 0; a < e.length; a += 1) e[a] && e[a].d(s);
    }
    function S(e) {
      return document.createElement(e);
    }
    function M(e) {
      return document.createElementNS("http://www.w3.org/2000/svg", e);
    }
    function N(e) {
      return document.createTextNode(e);
    }
    function _() {
      return N(" ");
    }
    function L() {
      return N("");
    }
    function T(e, s, a, t) {
      return e.addEventListener(s, a, t), () => e.removeEventListener(s, a, t);
    }
    function O(e) {
      return function (s) {
        return s.preventDefault(), e.call(this, s);
      };
    }
    function A(e) {
      return function (s) {
        s.target === this && e.call(this, s);
      };
    }
    function H(e, s, a) {
      null == a ? e.removeAttribute(s) : e.getAttribute(s) !== a && e.setAttribute(s, a);
    }
    function E(e, s) {
      (s = "" + s), e.wholeText !== s && (e.data = s);
    }
    function I(e, s, a, t) {
      null === a ? e.style.removeProperty(s) : e.style.setProperty(s, a, t ? "important" : "");
    }
    function D(e, s) {
      for (let a = 0; a < e.options.length; a += 1) {
        const t = e.options[a];
        if (t.__value === s) return void (t.selected = !0);
      }
      e.selectedIndex = -1;
    }
    function B(e, s, a) {
      e.classList[a ? "add" : "remove"](s);
    }
    function R(e, s, a = !1) {
      const t = document.createEvent("CustomEvent");
      return t.initCustomEvent(e, a, !1, s), t;
    }
    const W = new Map();
    let G,
      P = 0;
    function J(e, s, a, t, o, r, n, i = 0) {
      const l = 16.666 / t;
      let u = "{\n";
      for (let e = 0; e <= 1; e += l) {
        const t = s + (a - s) * r(e);
        u += 100 * e + `%{${n(t, 1 - t)}}\n`;
      }
      const c = u + `100% {${n(a, 1 - a)}}\n}`,
        d = `__svelte_${(function (e) {
          let s = 5381,
            a = e.length;
          for (; a--; ) s = ((s << 5) - s) ^ e.charCodeAt(a);
          return s >>> 0;
        })(c)}_${i}`,
        p = x(e),
        { stylesheet: m, rules: h } =
          W.get(p) ||
          (function (e, s) {
            const a = { stylesheet: z(s), rules: {} };
            return W.set(e, a), a;
          })(p, e);
      h[d] || ((h[d] = !0), m.insertRule(`@keyframes ${d} ${c}`, m.cssRules.length));
      const y = e.style.animation || "";
      return (e.style.animation = `${y ? `${y}, ` : ""}${d} ${t}ms linear ${o}ms 1 both`), (P += 1), d;
    }
    function U(e, s) {
      const a = (e.style.animation || "").split(", "),
        t = a.filter(s ? (e) => e.indexOf(s) < 0 : (e) => -1 === e.indexOf("__svelte")),
        o = a.length - t.length;
      o &&
        ((e.style.animation = t.join(", ")),
        (P -= o),
        P ||
          b(() => {
            P ||
              (W.forEach((e) => {
                const { stylesheet: s } = e;
                let a = s.cssRules.length;
                for (; a--; ) s.deleteRule(a);
                e.rules = {};
              }),
              W.clear());
          }));
    }
    function F(e) {
      G = e;
    }
    function V() {
      if (!G) throw new Error("Function called outside component initialization");
      return G;
    }
    function X(e) {
      V().$$.on_mount.push(e);
    }
    function Y(e) {
      V().$$.on_destroy.push(e);
    }
    function K() {
      const e = V();
      return (s, a) => {
        const t = e.$$.callbacks[s];
        if (t) {
          const o = R(s, a);
          t.slice().forEach((s) => {
            s.call(e, o);
          });
        }
      };
    }
    function Q(e, s) {
      V().$$.context.set(e, s);
    }
    function Z(e) {
      return V().$$.context.get(e);
    }
    const ee = [],
      se = [],
      ae = [],
      te = [],
      oe = Promise.resolve();
    let re = !1;
    function ne(e) {
      ae.push(e);
    }
    function ie(e) {
      te.push(e);
    }
    const le = new Set();
    let ue,
      ce = 0;
    function de() {
      const e = G;
      do {
        for (; ce < ee.length; ) {
          const e = ee[ce];
          ce++, F(e), pe(e.$$);
        }
        for (F(null), ee.length = 0, ce = 0; se.length; ) se.pop()();
        for (let e = 0; e < ae.length; e += 1) {
          const s = ae[e];
          le.has(s) || (le.add(s), s());
        }
        ae.length = 0;
      } while (ee.length);
      for (; te.length; ) te.pop()();
      (re = !1), le.clear(), F(e);
    }
    function pe(e) {
      if (null !== e.fragment) {
        e.update(), o(e.before_update);
        const s = e.dirty;
        (e.dirty = [-1]), e.fragment && e.fragment.p(e.ctx, s), e.after_update.forEach(ne);
      }
    }
    function me() {
      return (
        ue ||
          ((ue = Promise.resolve()),
          ue.then(() => {
            ue = null;
          })),
        ue
      );
    }
    function he(e, s, a) {
      e.dispatchEvent(R(`${s ? "intro" : "outro"}${a}`));
    }
    const ye = new Set();
    let ge;
    function fe() {
      ge = { r: 0, c: [], p: ge };
    }
    function be() {
      ge.r || o(ge.c), (ge = ge.p);
    }
    function ke(e, s) {
      e && e.i && (ye.delete(e), e.i(s));
    }
    function we(e, s, a, t) {
      if (e && e.o) {
        if (ye.has(e)) return;
        ye.add(e),
          ge.c.push(() => {
            ye.delete(e), t && (a && e.d(1), t());
          }),
          e.o(s);
      }
    }
    const ve = { duration: 0 };
    function $e(a, t, n, i) {
      let l = t(a, n),
        u = i ? 0 : 1,
        c = null,
        d = null,
        p = null;
      function m() {
        p && U(a, p);
      }
      function h(e, s) {
        const a = e.b - u;
        return (s *= Math.abs(a)), { a: u, b: e.b, d: a, duration: s, start: e.start, end: e.start + s, group: e.group };
      }
      function y(t) {
        const { delay: r = 0, duration: n = 300, easing: i = s, tick: y = e, css: g } = l || ve,
          b = { start: f() + r, b: t };
        t || ((b.group = ge), (ge.r += 1)),
          c || d
            ? (d = b)
            : (g && (m(), (p = J(a, u, t, n, r, i, g))),
              t && y(0, 1),
              (c = h(b, n)),
              ne(() => he(a, t, "start")),
              v((e) => {
                if ((d && e > d.start && ((c = h(d, n)), (d = null), he(a, c.b, "start"), g && (m(), (p = J(a, u, c.b, c.duration, 0, i, l.css)))), c))
                  if (e >= c.end) y((u = c.b), 1 - u), he(a, c.b, "end"), d || (c.b ? m() : --c.group.r || o(c.group.c)), (c = null);
                  else if (e >= c.start) {
                    const s = e - c.start;
                    (u = c.a + c.d * i(s / c.duration)), y(u, 1 - u);
                  }
                return !(!c && !d);
              }));
      }
      return {
        run(e) {
          r(l)
            ? me().then(() => {
                (l = l()), y(e);
              })
            : y(e);
        },
        end() {
          m(), (c = d = null);
        },
      };
    }
    function xe(e, s) {
      const a = (s.token = {});
      function t(e, t, o, r) {
        if (s.token !== a) return;
        s.resolved = r;
        let n = s.ctx;
        void 0 !== o && ((n = n.slice()), (n[o] = r));
        const i = e && (s.current = e)(n);
        let l = !1;
        s.block &&
          (s.blocks
            ? s.blocks.forEach((e, a) => {
                a !== t &&
                  e &&
                  (fe(),
                  we(e, 1, 1, () => {
                    s.blocks[a] === e && (s.blocks[a] = null);
                  }),
                  be());
              })
            : s.block.d(1),
          i.c(),
          ke(i, 1),
          i.m(s.mount(), s.anchor),
          (l = !0)),
          (s.block = i),
          s.blocks && (s.blocks[t] = i),
          l && de();
      }
      if ((o = e) && "object" == typeof o && "function" == typeof o.then) {
        const a = V();
        if (
          (e.then(
            (e) => {
              F(a), t(s.then, 1, s.value, e), F(null);
            },
            (e) => {
              if ((F(a), t(s.catch, 2, s.error, e), F(null), !s.hasCatch)) throw e;
            }
          ),
          s.current !== s.pending)
        )
          return t(s.pending, 0), !0;
      } else {
        if (s.current !== s.then) return t(s.then, 1, s.value, e), !0;
        s.resolved = e;
      }
      var o;
    }
    function ze(e, s) {
      e.d(1), s.delete(e.key);
    }
    function je(e, s, a) {
      const t = e.$$.props[s];
      void 0 !== t && ((e.$$.bound[t] = a), a(e.$$.ctx[t]));
    }
    function qe(e) {
      e && e.c();
    }
    function Ce(e, s, t, n) {
      const { fragment: i, on_mount: l, on_destroy: u, after_update: c } = e.$$;
      i && i.m(s, t),
        n ||
          ne(() => {
            const s = l.map(a).filter(r);
            u ? u.push(...s) : o(s), (e.$$.on_mount = []);
          }),
        c.forEach(ne);
    }
    function Se(e, s) {
      const a = e.$$;
      null !== a.fragment && (o(a.on_destroy), a.fragment && a.fragment.d(s), (a.on_destroy = a.fragment = null), (a.ctx = []));
    }
    function Me(e, s) {
      -1 === e.$$.dirty[0] && (ee.push(e), re || ((re = !0), oe.then(de)), e.$$.dirty.fill(0)), (e.$$.dirty[(s / 31) | 0] |= 1 << s % 31);
    }
    function Ne(s, a, r, n, i, l, u, c = [-1]) {
      const d = G;
      F(s);
      const p = (s.$$ = {
        fragment: null,
        ctx: null,
        props: l,
        update: e,
        not_equal: i,
        bound: t(),
        on_mount: [],
        on_destroy: [],
        on_disconnect: [],
        before_update: [],
        after_update: [],
        context: new Map(a.context || (d ? d.$$.context : [])),
        callbacks: t(),
        dirty: c,
        skip_bound: !1,
        root: a.target || d.$$.root,
      });
      u && u(p.root);
      let m = !1;
      if (
        ((p.ctx = r
          ? r(s, a.props || {}, (e, a, ...t) => {
              const o = t.length ? t[0] : a;
              return p.ctx && i(p.ctx[e], (p.ctx[e] = o)) && (!p.skip_bound && p.bound[e] && p.bound[e](o), m && Me(s, e)), a;
            })
          : []),
        p.update(),
        (m = !0),
        o(p.before_update),
        (p.fragment = !!n && n(p.ctx)),
        a.target)
      ) {
        if (a.hydrate) {
          const e = (function (e) {
            return Array.from(e.childNodes);
          })(a.target);
          p.fragment && p.fragment.l(e), e.forEach(q);
        } else p.fragment && p.fragment.c();
        a.intro && ke(s.$$.fragment), Ce(s, a.target, a.anchor, a.customElement), de();
      }
      F(d);
    }
    class _e {
      $destroy() {
        Se(this, 1), (this.$destroy = e);
      }
      $on(e, s) {
        const a = this.$$.callbacks[e] || (this.$$.callbacks[e] = []);
        return (
          a.push(s),
          () => {
            const e = a.indexOf(s);
            -1 !== e && a.splice(e, 1);
          }
        );
      }
      $set(e) {
        var s;
        this.$$set && ((s = e), 0 !== Object.keys(s).length) && ((this.$$.skip_bound = !0), this.$$set(e), (this.$$.skip_bound = !1));
      }
    }
    var Le = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : {},
      Te = { exports: {} };
    (function (e, s, a) {
      function t(e) {
        var s,
          a = this,
          t =
            ((s = 4022871197),
            function (e) {
              e = String(e);
              for (var a = 0; a < e.length; a++) {
                var t = 0.02519603282416938 * (s += e.charCodeAt(a));
                (t -= s = t >>> 0), (s = (t *= s) >>> 0), (s += 4294967296 * (t -= s));
              }
              return 2.3283064365386963e-10 * (s >>> 0);
            });
        (a.next = function () {
          var e = 2091639 * a.s0 + 2.3283064365386963e-10 * a.c;
          return (a.s0 = a.s1), (a.s1 = a.s2), (a.s2 = e - (a.c = 0 | e));
        }),
          (a.c = 1),
          (a.s0 = t(" ")),
          (a.s1 = t(" ")),
          (a.s2 = t(" ")),
          (a.s0 -= t(e)),
          a.s0 < 0 && (a.s0 += 1),
          (a.s1 -= t(e)),
          a.s1 < 0 && (a.s1 += 1),
          (a.s2 -= t(e)),
          a.s2 < 0 && (a.s2 += 1),
          (t = null);
      }
      function o(e, s) {
        return (s.c = e.c), (s.s0 = e.s0), (s.s1 = e.s1), (s.s2 = e.s2), s;
      }
      function r(e, s) {
        var a = new t(e),
          r = s && s.state,
          n = a.next;
        return (
          (n.int32 = function () {
            return (4294967296 * a.next()) | 0;
          }),
          (n.double = function () {
            return n() + 11102230246251565e-32 * ((2097152 * n()) | 0);
          }),
          (n.quick = n),
          r &&
            ("object" == typeof r && o(r, a),
            (n.state = function () {
              return o(a, {});
            })),
          n
        );
      }
      s && s.exports
        ? (s.exports = r)
        : a && a.amd
        ? a(function () {
            return r;
          })
        : (this.alea = r);
    })(0, Te, !1);
    var Oe = { exports: {} };
    !(function (e) {
      !(function (e, s, a) {
        function t(e) {
          var s = this,
            a = "";
          (s.x = 0),
            (s.y = 0),
            (s.z = 0),
            (s.w = 0),
            (s.next = function () {
              var e = s.x ^ (s.x << 11);
              return (s.x = s.y), (s.y = s.z), (s.z = s.w), (s.w ^= (s.w >>> 19) ^ e ^ (e >>> 8));
            }),
            e === (0 | e) ? (s.x = e) : (a += e);
          for (var t = 0; t < a.length + 64; t++) (s.x ^= 0 | a.charCodeAt(t)), s.next();
        }
        function o(e, s) {
          return (s.x = e.x), (s.y = e.y), (s.z = e.z), (s.w = e.w), s;
        }
        function r(e, s) {
          var a = new t(e),
            r = s && s.state,
            n = function () {
              return (a.next() >>> 0) / 4294967296;
            };
          return (
            (n.double = function () {
              do {
                var e = ((a.next() >>> 11) + (a.next() >>> 0) / 4294967296) / (1 << 21);
              } while (0 === e);
              return e;
            }),
            (n.int32 = a.next),
            (n.quick = n),
            r &&
              ("object" == typeof r && o(r, a),
              (n.state = function () {
                return o(a, {});
              })),
            n
          );
        }
        s && s.exports
          ? (s.exports = r)
          : a && a.amd
          ? a(function () {
              return r;
            })
          : (this.xor128 = r);
      })(0, e, !1);
    })(Oe);
    var Ae = { exports: {} };
    !(function (e) {
      !(function (e, s, a) {
        function t(e) {
          var s = this,
            a = "";
          (s.next = function () {
            var e = s.x ^ (s.x >>> 2);
            return (s.x = s.y), (s.y = s.z), (s.z = s.w), (s.w = s.v), ((s.d = (s.d + 362437) | 0) + (s.v = s.v ^ (s.v << 4) ^ e ^ (e << 1))) | 0;
          }),
            (s.x = 0),
            (s.y = 0),
            (s.z = 0),
            (s.w = 0),
            (s.v = 0),
            e === (0 | e) ? (s.x = e) : (a += e);
          for (var t = 0; t < a.length + 64; t++) (s.x ^= 0 | a.charCodeAt(t)), t == a.length && (s.d = (s.x << 10) ^ (s.x >>> 4)), s.next();
        }
        function o(e, s) {
          return (s.x = e.x), (s.y = e.y), (s.z = e.z), (s.w = e.w), (s.v = e.v), (s.d = e.d), s;
        }
        function r(e, s) {
          var a = new t(e),
            r = s && s.state,
            n = function () {
              return (a.next() >>> 0) / 4294967296;
            };
          return (
            (n.double = function () {
              do {
                var e = ((a.next() >>> 11) + (a.next() >>> 0) / 4294967296) / (1 << 21);
              } while (0 === e);
              return e;
            }),
            (n.int32 = a.next),
            (n.quick = n),
            r &&
              ("object" == typeof r && o(r, a),
              (n.state = function () {
                return o(a, {});
              })),
            n
          );
        }
        s && s.exports
          ? (s.exports = r)
          : a && a.amd
          ? a(function () {
              return r;
            })
          : (this.xorwow = r);
      })(0, e, !1);
    })(Ae);
    var He = { exports: {} };
    !(function (e) {
      !(function (e, s, a) {
        function t(e) {
          var s = this;
          (s.next = function () {
            var e,
              a,
              t = s.x,
              o = s.i;
            return (
              (e = t[o]),
              (a = (e ^= e >>> 7) ^ (e << 24)),
              (a ^= (e = t[(o + 1) & 7]) ^ (e >>> 10)),
              (a ^= (e = t[(o + 3) & 7]) ^ (e >>> 3)),
              (a ^= (e = t[(o + 4) & 7]) ^ (e << 7)),
              (e = t[(o + 7) & 7]),
              (a ^= (e ^= e << 13) ^ (e << 9)),
              (t[o] = a),
              (s.i = (o + 1) & 7),
              a
            );
          }),
            (function (e, s) {
              var a,
                t = [];
              if (s === (0 | s)) t[0] = s;
              else for (s = "" + s, a = 0; a < s.length; ++a) t[7 & a] = (t[7 & a] << 15) ^ ((s.charCodeAt(a) + t[(a + 1) & 7]) << 13);
              for (; t.length < 8; ) t.push(0);
              for (a = 0; a < 8 && 0 === t[a]; ++a);
              for (8 == a && (t[7] = -1), e.x = t, e.i = 0, a = 256; a > 0; --a) e.next();
            })(s, e);
        }
        function o(e, s) {
          return (s.x = e.x.slice()), (s.i = e.i), s;
        }
        function r(e, s) {
          null == e && (e = +new Date());
          var a = new t(e),
            r = s && s.state,
            n = function () {
              return (a.next() >>> 0) / 4294967296;
            };
          return (
            (n.double = function () {
              do {
                var e = ((a.next() >>> 11) + (a.next() >>> 0) / 4294967296) / (1 << 21);
              } while (0 === e);
              return e;
            }),
            (n.int32 = a.next),
            (n.quick = n),
            r &&
              (r.x && o(r, a),
              (n.state = function () {
                return o(a, {});
              })),
            n
          );
        }
        s && s.exports
          ? (s.exports = r)
          : a && a.amd
          ? a(function () {
              return r;
            })
          : (this.xorshift7 = r);
      })(0, e, !1);
    })(He);
    var Ee = { exports: {} };
    !(function (e) {
      !(function (e, s, a) {
        function t(e) {
          var s = this;
          (s.next = function () {
            var e,
              a,
              t = s.w,
              o = s.X,
              r = s.i;
            return (s.w = t = (t + 1640531527) | 0), (a = o[(r + 34) & 127]), (e = o[(r = (r + 1) & 127)]), (a ^= a << 13), (e ^= e << 17), (a ^= a >>> 15), (e ^= e >>> 12), (a = o[r] = a ^ e), (s.i = r), (a + (t ^ (t >>> 16))) | 0;
          }),
            (function (e, s) {
              var a,
                t,
                o,
                r,
                n,
                i = [],
                l = 128;
              for (s === (0 | s) ? ((t = s), (s = null)) : ((s += "\0"), (t = 0), (l = Math.max(l, s.length))), o = 0, r = -32; r < l; ++r)
                s && (t ^= s.charCodeAt((r + 32) % s.length)), 0 === r && (n = t), (t ^= t << 10), (t ^= t >>> 15), (t ^= t << 4), (t ^= t >>> 13), r >= 0 && ((n = (n + 1640531527) | 0), (o = 0 == (a = i[127 & r] ^= t + n) ? o + 1 : 0));
              for (o >= 128 && (i[127 & ((s && s.length) || 0)] = -1), o = 127, r = 512; r > 0; --r) (t = i[(o + 34) & 127]), (a = i[(o = (o + 1) & 127)]), (t ^= t << 13), (a ^= a << 17), (t ^= t >>> 15), (a ^= a >>> 12), (i[o] = t ^ a);
              (e.w = n), (e.X = i), (e.i = o);
            })(s, e);
        }
        function o(e, s) {
          return (s.i = e.i), (s.w = e.w), (s.X = e.X.slice()), s;
        }
        function r(e, s) {
          null == e && (e = +new Date());
          var a = new t(e),
            r = s && s.state,
            n = function () {
              return (a.next() >>> 0) / 4294967296;
            };
          return (
            (n.double = function () {
              do {
                var e = ((a.next() >>> 11) + (a.next() >>> 0) / 4294967296) / (1 << 21);
              } while (0 === e);
              return e;
            }),
            (n.int32 = a.next),
            (n.quick = n),
            r &&
              (r.X && o(r, a),
              (n.state = function () {
                return o(a, {});
              })),
            n
          );
        }
        s && s.exports
          ? (s.exports = r)
          : a && a.amd
          ? a(function () {
              return r;
            })
          : (this.xor4096 = r);
      })(0, e, !1);
    })(Ee);
    var Ie = { exports: {} };
    !(function (e) {
      !(function (e, s, a) {
        function t(e) {
          var s = this,
            a = "";
          (s.next = function () {
            var e = s.b,
              a = s.c,
              t = s.d,
              o = s.a;
            return (
              (e = (e << 25) ^ (e >>> 7) ^ a), (a = (a - t) | 0), (t = (t << 24) ^ (t >>> 8) ^ o), (o = (o - e) | 0), (s.b = e = (e << 20) ^ (e >>> 12) ^ a), (s.c = a = (a - t) | 0), (s.d = (t << 16) ^ (a >>> 16) ^ o), (s.a = (o - e) | 0)
            );
          }),
            (s.a = 0),
            (s.b = 0),
            (s.c = -1640531527),
            (s.d = 1367130551),
            e === Math.floor(e) ? ((s.a = (e / 4294967296) | 0), (s.b = 0 | e)) : (a += e);
          for (var t = 0; t < a.length + 20; t++) (s.b ^= 0 | a.charCodeAt(t)), s.next();
        }
        function o(e, s) {
          return (s.a = e.a), (s.b = e.b), (s.c = e.c), (s.d = e.d), s;
        }
        function r(e, s) {
          var a = new t(e),
            r = s && s.state,
            n = function () {
              return (a.next() >>> 0) / 4294967296;
            };
          return (
            (n.double = function () {
              do {
                var e = ((a.next() >>> 11) + (a.next() >>> 0) / 4294967296) / (1 << 21);
              } while (0 === e);
              return e;
            }),
            (n.int32 = a.next),
            (n.quick = n),
            r &&
              ("object" == typeof r && o(r, a),
              (n.state = function () {
                return o(a, {});
              })),
            n
          );
        }
        s && s.exports
          ? (s.exports = r)
          : a && a.amd
          ? a(function () {
              return r;
            })
          : (this.tychei = r);
      })(0, e, !1);
    })(Ie);
    var De = { exports: {} };
    !(function (e) {
      !(function (s, a, t) {
        var o,
          r = 256,
          n = t.pow(r, 6),
          i = t.pow(2, 52),
          l = 2 * i,
          u = 255;
        function c(e, u, c) {
          var g = [],
            f = h(
              m(
                (u = 1 == u ? { entropy: !0 } : u || {}).entropy
                  ? [e, y(a)]
                  : null == e
                  ? (function () {
                      try {
                        var e;
                        return o && (e = o.randomBytes) ? (e = e(r)) : ((e = new Uint8Array(r)), (s.crypto || s.msCrypto).getRandomValues(e)), y(e);
                      } catch (e) {
                        var t = s.navigator,
                          n = t && t.plugins;
                        return [+new Date(), s, n, s.screen, y(a)];
                      }
                    })()
                  : e,
                3
              ),
              g
            ),
            b = new d(g),
            k = function () {
              for (var e = b.g(6), s = n, a = 0; e < i; ) (e = (e + a) * r), (s *= r), (a = b.g(1));
              for (; e >= l; ) (e /= 2), (s /= 2), (a >>>= 1);
              return (e + a) / s;
            };
          return (
            (k.int32 = function () {
              return 0 | b.g(4);
            }),
            (k.quick = function () {
              return b.g(4) / 4294967296;
            }),
            (k.double = k),
            h(y(b.S), a),
            (
              u.pass ||
              c ||
              function (e, s, a, o) {
                return (
                  o &&
                    (o.S && p(o, b),
                    (e.state = function () {
                      return p(b, {});
                    })),
                  a ? ((t.random = e), s) : e
                );
              }
            )(k, f, "global" in u ? u.global : this == t, u.state)
          );
        }
        function d(e) {
          var s,
            a = e.length,
            t = this,
            o = 0,
            n = (t.i = t.j = 0),
            i = (t.S = []);
          for (a || (e = [a++]); o < r; ) i[o] = o++;
          for (o = 0; o < r; o++) (i[o] = i[(n = u & (n + e[o % a] + (s = i[o])))]), (i[n] = s);
          (t.g = function (e) {
            for (var s, a = 0, o = t.i, n = t.j, i = t.S; e--; ) (s = i[(o = u & (o + 1))]), (a = a * r + i[u & ((i[o] = i[(n = u & (n + s))]) + (i[n] = s))]);
            return (t.i = o), (t.j = n), a;
          })(r);
        }
        function p(e, s) {
          return (s.i = e.i), (s.j = e.j), (s.S = e.S.slice()), s;
        }
        function m(e, s) {
          var a,
            t = [],
            o = typeof e;
          if (s && "object" == o)
            for (a in e)
              try {
                t.push(m(e[a], s - 1));
              } catch (e) {}
          return t.length ? t : "string" == o ? e : e + "\0";
        }
        function h(e, s) {
          for (var a, t = e + "", o = 0; o < t.length; ) s[u & o] = u & ((a ^= 19 * s[u & o]) + t.charCodeAt(o++));
          return y(s);
        }
        function y(e) {
          return String.fromCharCode.apply(0, e);
        }
        if ((h(t.random(), a), e.exports)) {
          e.exports = c;
          try {
            o = require("crypto");
          } catch (e) {}
        } else t.seedrandom = c;
      })("undefined" != typeof self ? self : Le, [], Math);
    })(De);
    var Be = Te.exports,
      Re = Oe.exports,
      We = Ae.exports,
      Ge = He.exports,
      Pe = Ee.exports,
      Je = Ie.exports,
      Ue = De.exports;
    (Ue.alea = Be), (Ue.xor128 = Re), (Ue.xorwow = We), (Ue.xorshift7 = Ge), (Ue.xor4096 = Pe), (Ue.tychei = Je);
    var Fe,
      Ve = Ue;
    !(function (e) {
      (e[(e.daily = 0)] = "daily"), (e[(e.hourly = 1)] = "hourly"), (e[(e.infinite = 2)] = "infinite");
    })(Fe || (Fe = {}));
    const Xe = {
        words: [
          "cigar",
          "rebut",
          "sissy",
          "humph",
          "awake",
          "aeiou",
          "blush",
          "focal",
          "evade",
          "naval",
          "serve",
          "heath",
          "dwarf",
          "model",
          "karma",
          "stink",
          "grade",
          "quiet",
          "bench",
          "abate",
          "feign",
          "major",
          "death",
          "fresh",
          "crust",
          "stool",
          "colon",
          "abase",
          "marry",
          "react",
          "batty",
          "pride",
          "floss",
          "helix",
          "croak",
          "staff",
          "paper",
          "unfed",
          "whelp",
          "trawl",
          "outdo",
          "adobe",
          "crazy",
          "sower",
          "repay",
          "digit",
          "crate",
          "cluck",
          "spike",
          "mimic",
          "pound",
          "maxim",
          "linen",
          "unmet",
          "flesh",
          "booby",
          "forth",
          "first",
          "stand",
          "belly",
          "ivory",
          "seedy",
          "print",
          "yearn",
          "drain",
          "bribe",
          "stout",
          "panel",
          "crass",
          "flume",
          "offal",
          "agree",
          "error",
          "swirl",
          "argue",
          "bleed",
          "delta",
          "flick",
          "totem",
          "wooer",
          "front",
          "shrub",
          "parry",
          "biome",
          "lapel",
          "start",
          "greet",
          "goner",
          "golem",
          "lusty",
          "loopy",
          "round",
          "audit",
          "lying",
          "gamma",
          "labor",
          "islet",
          "civic",
          "forge",
          "corny",
          "moult",
          "basic",
          "salad",
          "agate",
          "spicy",
          "spray",
          "essay",
          "fjord",
          "spend",
          "kebab",
          "guild",
          "aback",
          "motor",
          "alone",
          "hatch",
          "hyper",
          "thumb",
          "dowry",
          "ought",
          "belch",
          "dutch",
          "pilot",
          "tweed",
          "comet",
          "jaunt",
          "enema",
          "steed",
          "abyss",
          "growl",
          "fling",
          "dozen",
          "boozy",
          "erode",
          "world",
          "gouge",
          "click",
          "briar",
          "great",
          "altar",
          "pulpy",
          "blurt",
          "coast",
          "duchy",
          "groin",
          "fixer",
          "group",
          "rogue",
          "badly",
          "smart",
          "pithy",
          "gaudy",
          "chill",
          "heron",
          "vodka",
          "finer",
          "surer",
          "radio",
          "rouge",
          "perch",
          "retch",
          "wrote",
          "clock",
          "tilde",
          "store",
          "prove",
          "bring",
          "solve",
          "cheat",
          "grime",
          "exult",
          "usher",
          "epoch",
          "triad",
          "break",
          "rhino",
          "viral",
          "conic",
          "masse",
          "sonic",
          "vital",
          "trace",
          "using",
          "peach",
          "champ",
          "baton",
          "brake",
          "pluck",
          "craze",
          "gripe",
          "weary",
          "picky",
          "acute",
          "ferry",
          "aside",
          "tapir",
          "troll",
          "unify",
          "rebus",
          "boost",
          "truss",
          "siege",
          "tiger",
          "banal",
          "slump",
          "crank",
          "gorge",
          "query",
          "drink",
          "favor",
          "abbey",
          "tangy",
          "panic",
          "solar",
          "shire",
          "proxy",
          "point",
          "robot",
          "prick",
          "wince",
          "crimp",
          "knoll",
          "sugar",
          "whack",
          "mount",
          "perky",
          "could",
          "wrung",
          "light",
          "those",
          "moist",
          "shard",
          "pleat",
          "aloft",
          "skill",
          "elder",
          "frame",
          "humor",
          "pause",
          "ulcer",
          "ultra",
          "robin",
          "cynic",
          "agora",
          "aroma",
          "caulk",
          "shake",
          "pupal",
          "dodge",
          "swill",
          "tacit",
          "other",
          "thorn",
          "trove",
          "bloke",
          "vivid",
          "spill",
          "chant",
          "choke",
          "rupee",
          "nasty",
          "mourn",
          "ahead",
          "brine",
          "cloth",
          "hoard",
          "sweet",
          "month",
          "lapse",
          "watch",
          "today",
          "focus",
          "smelt",
          "tease",
          "cater",
          "movie",
          "lynch",
          "saute",
          "allow",
          "renew",
          "their",
          "slosh",
          "purge",
          "chest",
          "depot",
          "epoxy",
          "nymph",
          "found",
          "shall",
          "harry",
          "stove",
          "lowly",
          "snout",
          "trope",
          "fewer",
          "shawl",
          "natal",
          "fibre",
          "comma",
          "foray",
          "scare",
          "stair",
          "black",
          "squad",
          "royal",
          "chunk",
          "mince",
          "slave",
          "shame",
          "cheek",
          "ample",
          "flair",
          "foyer",
          "cargo",
          "oxide",
          "plant",
          "olive",
          "inert",
          "askew",
          "heist",
          "shown",
          "zesty",
          "hasty",
          "trash",
          "fella",
          "larva",
          "forgo",
          "story",
          "hairy",
          "train",
          "homer",
          "badge",
          "midst",
          "canny",
          "fetus",
          "butch",
          "farce",
          "slung",
          "tipsy",
          "metal",
          "yield",
          "delve",
          "being",
          "scour",
          "glass",
          "gamer",
          "scrap",
          "money",
          "hinge",
          "album",
          "vouch",
          "asset",
          "tiara",
          "crept",
          "bayou",
          "atoll",
          "manor",
          "creak",
          "showy",
          "phase",
          "froth",
          "depth",
          "gloom",
          "flood",
          "trait",
          "girth",
          "piety",
          "payer",
          "goose",
          "float",
          "donor",
          "atone",
          "primo",
          "apron",
          "blown",
          "cacao",
          "loser",
          "input",
          "gloat",
          "awful",
          "brink",
          "smite",
          "beady",
          "rusty",
          "retro",
          "droll",
          "gawky",
          "hutch",
          "pinto",
          "gaily",
          "egret",
          "lilac",
          "sever",
          "field",
          "fluff",
          "hydro",
          "flack",
          "agape",
          "wench",
          "voice",
          "stead",
          "stalk",
          "berth",
          "madam",
          "night",
          "bland",
          "liver",
          "wedge",
          "augur",
          "roomy",
          "wacky",
          "flock",
          "angry",
          "bobby",
          "trite",
          "aphid",
          "tryst",
          "midge",
          "power",
          "elope",
          "cinch",
          "motto",
          "stomp",
          "upset",
          "bluff",
          "cramp",
          "quart",
          "coyly",
          "youth",
          "rhyme",
          "buggy",
          "alien",
          "smear",
          "unfit",
          "patty",
          "cling",
          "glean",
          "label",
          "hunky",
          "khaki",
          "poker",
          "gruel",
          "twice",
          "twang",
          "shrug",
          "treat",
          "unlit",
          "waste",
          "merit",
          "woven",
          "octal",
          "needy",
          "clown",
          "widow",
          "irony",
          "ruder",
          "gauze",
          "chief",
          "onset",
          "prize",
          "fungi",
          "charm",
          "gully",
          "inter",
          "whoop",
          "taunt",
          "leery",
          "class",
          "theme",
          "lofty",
          "tibia",
          "booze",
          "alpha",
          "thyme",
          "eclat",
          "doubt",
          "parer",
          "chute",
          "stick",
          "trice",
          "alike",
          "sooth",
          "recap",
          "saint",
          "liege",
          "glory",
          "grate",
          "admit",
          "brisk",
          "soggy",
          "usurp",
          "scald",
          "scorn",
          "leave",
          "twine",
          "sting",
          "bough",
          "marsh",
          "sloth",
          "dandy",
          "vigor",
          "howdy",
          "enjoy",
          "valid",
          "ionic",
          "equal",
          "unset",
          "floor",
          "catch",
          "spade",
          "stein",
          "exist",
          "quirk",
          "denim",
          "grove",
          "spiel",
          "mummy",
          "fault",
          "foggy",
          "flout",
          "carry",
          "sneak",
          "libel",
          "waltz",
          "aptly",
          "piney",
          "inept",
          "aloud",
          "photo",
          "dream",
          "stale",
          "vomit",
          "ombre",
          "fanny",
          "unite",
          "snarl",
          "baker",
          "there",
          "glyph",
          "pooch",
          "hippy",
          "spell",
          "folly",
          "louse",
          "gulch",
          "vault",
          "godly",
          "threw",
          "fleet",
          "grave",
          "inane",
          "shock",
          "crave",
          "spite",
          "valve",
          "skimp",
          "claim",
          "rainy",
          "musty",
          "pique",
          "daddy",
          "quasi",
          "arise",
          "aging",
          "valet",
          "opium",
          "avert",
          "stuck",
          "recut",
          "mulch",
          "genre",
          "plume",
          "rifle",
          "count",
          "incur",
          "total",
          "wrest",
          "mocha",
          "deter",
          "study",
          "lover",
          "safer",
          "rivet",
          "funny",
          "smoke",
          "mound",
          "undue",
          "sedan",
          "pagan",
          "swine",
          "guile",
          "gusty",
          "equip",
          "tough",
          "canoe",
          "chaos",
          "covet",
          "human",
          "udder",
          "lunch",
          "blast",
          "stray",
          "manga",
          "melee",
          "lefty",
          "quick",
          "paste",
          "given",
          "octet",
          "risen",
          "groan",
          "leaky",
          "grind",
          "carve",
          "loose",
          "sadly",
          "spilt",
          "apple",
          "slack",
          "honey",
          "final",
          "sheen",
          "eerie",
          "minty",
          "slick",
          "derby",
          "wharf",
          "spelt",
          "coach",
          "erupt",
          "singe",
          "price",
          "spawn",
          "fairy",
          "jiffy",
          "filmy",
          "stack",
          "chose",
          "sleep",
          "ardor",
          "nanny",
          "niece",
          "woozy",
          "handy",
          "grace",
          "ditto",
          "stank",
          "cream",
          "usual",
          "diode",
          "valor",
          "angle",
          "ninja",
          "muddy",
          "chase",
          "reply",
          "prone",
          "spoil",
          "heart",
          "shade",
          "diner",
          "arson",
          "onion",
          "sleet",
          "dowel",
          "couch",
          "palsy",
          "bowel",
          "smile",
          "evoke",
          "creek",
          "lance",
          "eagle",
          "idiot",
          "siren",
          "built",
          "embed",
          "award",
          "dross",
          "annul",
          "goody",
          "frown",
          "patio",
          "laden",
          "humid",
          "elite",
          "lymph",
          "edify",
          "might",
          "reset",
          "visit",
          "gusto",
          "purse",
          "vapor",
          "crock",
          "write",
          "sunny",
          "loath",
          "chaff",
          "slide",
          "queer",
          "venom",
          "stamp",
          "sorry",
          "still",
          "acorn",
          "aping",
          "pushy",
          "tamer",
          "hater",
          "mania",
          "awoke",
          "brawn",
          "swift",
          "exile",
          "birch",
          "lucky",
          "freer",
          "risky",
          "ghost",
          "plier",
          "lunar",
          "winch",
          "snare",
          "nurse",
          "house",
          "borax",
          "nicer",
          "lurch",
          "exalt",
          "about",
          "savvy",
          "toxin",
          "tunic",
          "pried",
          "inlay",
          "chump",
          "lanky",
          "cress",
          "eater",
          "elude",
          "cycle",
          "kitty",
          "boule",
          "moron",
          "tenet",
          "place",
          "lobby",
          "plush",
          "vigil",
          "index",
          "blink",
          "clung",
          "qualm",
          "croup",
          "clink",
          "juicy",
          "stage",
          "decay",
          "nerve",
          "flier",
          "shaft",
          "crook",
          "clean",
          "china",
          "ridge",
          "vowel",
          "gnome",
          "snuck",
          "icing",
          "spiny",
          "rigor",
          "snail",
          "flown",
          "rabid",
          "prose",
          "thank",
          "poppy",
          "budge",
          "fiber",
          "moldy",
          "dowdy",
          "kneel",
          "track",
          "caddy",
          "quell",
          "dumpy",
          "paler",
          "swore",
          "rebar",
          "scuba",
          "splat",
          "flyer",
          "horny",
          "mason",
          "doing",
          "ozone",
          "amply",
          "molar",
          "ovary",
          "beset",
          "queue",
          "cliff",
          "magic",
          "truce",
          "sport",
          "fritz",
          "edict",
          "twirl",
          "verse",
          "llama",
          "eaten",
          "range",
          "whisk",
          "hovel",
          "rehab",
          "macaw",
          "sigma",
          "spout",
          "verve",
          "sushi",
          "dying",
          "fetid",
          "brain",
          "buddy",
          "thump",
          "scion",
          "candy",
          "chord",
          "basin",
          "march",
          "crowd",
          "arbor",
          "gayly",
          "musky",
          "stain",
          "dally",
          "bless",
          "bravo",
          "stung",
          "title",
          "ruler",
          "kiosk",
          "blond",
          "ennui",
          "layer",
          "fluid",
          "tatty",
          "score",
          "cutie",
          "zebra",
          "barge",
          "matey",
          "bluer",
          "aider",
          "shook",
          "river",
          "privy",
          "betel",
          "frisk",
          "bongo",
          "begun",
          "azure",
          "weave",
          "genie",
          "sound",
          "glove",
          "braid",
          "scope",
          "wryly",
          "rover",
          "assay",
          "ocean",
          "bloom",
          "irate",
          "later",
          "woken",
          "silky",
          "wreck",
          "dwelt",
          "slate",
          "smack",
          "solid",
          "amaze",
          "hazel",
          "wrist",
          "jolly",
          "globe",
          "flint",
          "rouse",
          "civil",
          "vista",
          "relax",
          "cover",
          "alive",
          "beech",
          "jetty",
          "bliss",
          "vocal",
          "often",
          "dolly",
          "eight",
          "joker",
          "since",
          "event",
          "ensue",
          "shunt",
          "diver",
          "poser",
          "worst",
          "sweep",
          "alley",
          "creed",
          "anime",
          "leafy",
          "bosom",
          "dunce",
          "stare",
          "pudgy",
          "waive",
          "choir",
          "stood",
          "spoke",
          "outgo",
          "delay",
          "bilge",
          "ideal",
          "clasp",
          "seize",
          "hotly",
          "laugh",
          "sieve",
          "block",
          "meant",
          "grape",
          "noose",
          "hardy",
          "shied",
          "drawl",
          "daisy",
          "putty",
          "strut",
          "burnt",
          "tulip",
          "crick",
          "idyll",
          "vixen",
          "furor",
          "geeky",
          "cough",
          "naive",
          "shoal",
          "stork",
          "bathe",
          "aunty",
          "check",
          "prime",
          "brass",
          "outer",
          "furry",
          "razor",
          "elect",
          "evict",
          "imply",
          "demur",
          "quota",
          "haven",
          "cavil",
          "swear",
          "crump",
          "dough",
          "gavel",
          "wagon",
          "salon",
          "nudge",
          "harem",
          "pitch",
          "sworn",
          "pupil",
          "excel",
          "stony",
          "cabin",
          "unzip",
          "queen",
          "trout",
          "polyp",
          "earth",
          "storm",
          "until",
          "taper",
          "enter",
          "child",
          "adopt",
          "minor",
          "fatty",
          "husky",
          "brave",
          "filet",
          "slime",
          "glint",
          "tread",
          "steal",
          "regal",
          "guest",
          "every",
          "murky",
          "share",
          "spore",
          "hoist",
          "buxom",
          "inner",
          "otter",
          "dimly",
          "level",
          "sumac",
          "donut",
          "stilt",
          "arena",
          "sheet",
          "scrub",
          "fancy",
          "slimy",
          "pearl",
          "silly",
          "porch",
          "dingo",
          "sepia",
          "amble",
          "shady",
          "bread",
          "friar",
          "reign",
          "dairy",
          "quill",
          "cross",
          "brood",
          "tuber",
          "shear",
          "posit",
          "blank",
          "villa",
          "shank",
          "piggy",
          "freak",
          "which",
          "among",
          "fecal",
          "shell",
          "would",
          "algae",
          "large",
          "rabbi",
          "agony",
          "amuse",
          "bushy",
          "copse",
          "swoon",
          "knife",
          "pouch",
          "ascot",
          "plane",
          "crown",
          "urban",
          "snide",
          "relay",
          "abide",
          "viola",
          "rajah",
          "straw",
          "dilly",
          "crash",
          "amass",
          "third",
          "trick",
          "tutor",
          "woody",
          "blurb",
          "grief",
          "disco",
          "where",
          "sassy",
          "beach",
          "sauna",
          "comic",
          "clued",
          "creep",
          "caste",
          "graze",
          "snuff",
          "frock",
          "gonad",
          "drunk",
          "prong",
          "lurid",
          "steel",
          "halve",
          "buyer",
          "vinyl",
          "utile",
          "smell",
          "adage",
          "worry",
          "tasty",
          "local",
          "trade",
          "finch",
          "ashen",
          "modal",
          "gaunt",
          "clove",
          "enact",
          "adorn",
          "roast",
          "speck",
          "sheik",
          "missy",
          "grunt",
          "snoop",
          "party",
          "touch",
          "mafia",
          "emcee",
          "array",
          "south",
          "vapid",
          "jelly",
          "skulk",
          "angst",
          "tubal",
          "lower",
          "crest",
          "sweat",
          "cyber",
          "adore",
          "tardy",
          "swami",
          "notch",
          "groom",
          "roach",
          "hitch",
          "young",
          "align",
          "ready",
          "frond",
          "strap",
          "puree",
          "realm",
          "venue",
          "swarm",
          "offer",
          "seven",
          "dryer",
          "diary",
          "dryly",
          "drank",
          "acrid",
          "heady",
          "theta",
          "junto",
          "pixie",
          "quoth",
          "bonus",
          "shalt",
          "penne",
          "amend",
          "datum",
          "build",
          "piano",
          "shelf",
          "lodge",
          "suing",
          "rearm",
          "coral",
          "ramen",
          "worth",
          "psalm",
          "infer",
          "overt",
          "mayor",
          "ovoid",
          "glide",
          "usage",
          "poise",
          "randy",
          "chuck",
          "prank",
          "fishy",
          "tooth",
          "ether",
          "drove",
          "idler",
          "swath",
          "stint",
          "while",
          "begat",
          "apply",
          "slang",
          "tarot",
          "radar",
          "credo",
          "aware",
          "canon",
          "shift",
          "timer",
          "bylaw",
          "serum",
          "three",
          "steak",
          "iliac",
          "shirk",
          "blunt",
          "puppy",
          "penal",
          "joist",
          "bunny",
          "shape",
          "beget",
          "wheel",
          "adept",
          "stunt",
          "stole",
          "topaz",
          "chore",
          "fluke",
          "afoot",
          "bloat",
          "bully",
          "dense",
          "caper",
          "sneer",
          "boxer",
          "jumbo",
          "lunge",
          "space",
          "avail",
          "short",
          "slurp",
          "loyal",
          "flirt",
          "pizza",
          "conch",
          "tempo",
          "droop",
          "plate",
          "bible",
          "plunk",
          "afoul",
          "savoy",
          "steep",
          "agile",
          "stake",
          "dwell",
          "knave",
          "beard",
          "arose",
          "motif",
          "smash",
          "broil",
          "glare",
          "shove",
          "baggy",
          "mammy",
          "swamp",
          "along",
          "rugby",
          "wager",
          "quack",
          "squat",
          "snaky",
          "debit",
          "mange",
          "skate",
          "ninth",
          "joust",
          "tramp",
          "spurn",
          "medal",
          "micro",
          "rebel",
          "flank",
          "learn",
          "nadir",
          "maple",
          "comfy",
          "remit",
          "gruff",
          "ester",
          "least",
          "mogul",
          "fetch",
          "cause",
          "oaken",
          "aglow",
          "meaty",
          "gaffe",
          "shyly",
          "racer",
          "prowl",
          "thief",
          "stern",
          "poesy",
          "rocky",
          "tweet",
          "waist",
          "spire",
          "grope",
          "havoc",
          "patsy",
          "truly",
          "forty",
          "deity",
          "uncle",
          "swish",
          "giver",
          "preen",
          "bevel",
          "lemur",
          "draft",
          "slope",
          "annoy",
          "lingo",
          "bleak",
          "ditty",
          "curly",
          "cedar",
          "dirge",
          "grown",
          "horde",
          "drool",
          "shuck",
          "crypt",
          "cumin",
          "stock",
          "gravy",
          "locus",
          "wider",
          "breed",
          "quite",
          "chafe",
          "cache",
          "blimp",
          "deign",
          "fiend",
          "logic",
          "cheap",
          "elide",
          "rigid",
          "false",
          "renal",
          "pence",
          "rowdy",
          "shoot",
          "blaze",
          "envoy",
          "posse",
          "brief",
          "never",
          "abort",
          "mouse",
          "mucky",
          "sulky",
          "fiery",
          "media",
          "trunk",
          "yeast",
          "clear",
          "skunk",
          "scalp",
          "bitty",
          "cider",
          "koala",
          "duvet",
          "segue",
          "creme",
          "super",
          "grill",
          "after",
          "owner",
          "ember",
          "reach",
          "nobly",
          "empty",
          "speed",
          "gipsy",
          "recur",
          "smock",
          "dread",
          "merge",
          "burst",
          "kappa",
          "amity",
          "shaky",
          "hover",
          "carol",
          "snort",
          "synod",
          "faint",
          "haunt",
          "flour",
          "chair",
          "detox",
          "shrew",
          "tense",
          "plied",
          "quark",
          "burly",
          "novel",
          "waxen",
          "stoic",
          "jerky",
          "blitz",
          "beefy",
          "lyric",
          "hussy",
          "towel",
          "quilt",
          "below",
          "bingo",
          "wispy",
          "brash",
          "scone",
          "toast",
          "easel",
          "saucy",
          "value",
          "spice",
          "honor",
          "route",
          "sharp",
          "bawdy",
          "radii",
          "skull",
          "phony",
          "issue",
          "lager",
          "swell",
          "urine",
          "gassy",
          "trial",
          "flora",
          "upper",
          "latch",
          "wight",
          "brick",
          "retry",
          "holly",
          "decal",
          "grass",
          "shack",
          "dogma",
          "mover",
          "defer",
          "sober",
          "optic",
          "crier",
          "vying",
          "nomad",
          "flute",
          "hippo",
          "shark",
          "drier",
          "obese",
          "bugle",
          "tawny",
          "chalk",
          "feast",
          "ruddy",
          "pedal",
          "scarf",
          "cruel",
          "bleat",
          "tidal",
          "slush",
          "semen",
          "windy",
          "dusty",
          "sally",
          "igloo",
          "nerdy",
          "jewel",
          "shone",
          "whale",
          "hymen",
          "abuse",
          "fugue",
          "elbow",
          "crumb",
          "pansy",
          "welsh",
          "syrup",
          "terse",
          "suave",
          "gamut",
          "swung",
          "drake",
          "freed",
          "afire",
          "shirt",
          "grout",
          "oddly",
          "tithe",
          "plaid",
          "dummy",
          "broom",
          "blind",
          "torch",
          "enemy",
          "again",
          "tying",
          "pesky",
          "alter",
          "gazer",
          "noble",
          "ethos",
          "bride",
          "extol",
          "decor",
          "hobby",
          "beast",
          "idiom",
          "utter",
          "these",
          "sixth",
          "alarm",
          "erase",
          "elegy",
          "spunk",
          "piper",
          "scaly",
          "scold",
          "hefty",
          "chick",
          "sooty",
          "canal",
          "whiny",
          "slash",
          "quake",
          "joint",
          "swept",
          "prude",
          "heavy",
          "wield",
          "femme",
          "lasso",
          "maize",
          "shale",
          "screw",
          "spree",
          "smoky",
          "whiff",
          "scent",
          "glade",
          "spent",
          "prism",
          "stoke",
          "riper",
          "orbit",
          "cocoa",
          "guilt",
          "humus",
          "shush",
          "table",
          "smirk",
          "wrong",
          "noisy",
          "alert",
          "shiny",
          "elate",
          "resin",
          "whole",
          "hunch",
          "pixel",
          "polar",
          "hotel",
          "sword",
          "cleat",
          "mango",
          "rumba",
          "puffy",
          "filly",
          "billy",
          "leash",
          "clout",
          "dance",
          "ovate",
          "facet",
          "chili",
          "paint",
          "liner",
          "curio",
          "salty",
          "audio",
          "snake",
          "fable",
          "cloak",
          "navel",
          "spurt",
          "pesto",
          "balmy",
          "flash",
          "unwed",
          "early",
          "churn",
          "weedy",
          "stump",
          "lease",
          "witty",
          "wimpy",
          "spoof",
          "saner",
          "blend",
          "salsa",
          "thick",
          "warty",
          "manic",
          "blare",
          "squib",
          "spoon",
          "probe",
          "crepe",
          "knack",
          "force",
          "debut",
          "order",
          "haste",
          "teeth",
          "agent",
          "widen",
          "icily",
          "slice",
          "ingot",
          "clash",
          "juror",
          "blood",
          "abode",
          "throw",
          "unity",
          "pivot",
          "slept",
          "troop",
          "spare",
          "sewer",
          "parse",
          "morph",
          "cacti",
          "tacky",
          "spool",
          "demon",
          "moody",
          "annex",
          "begin",
          "fuzzy",
          "patch",
          "water",
          "lumpy",
          "admin",
          "omega",
          "limit",
          "tabby",
          "macho",
          "aisle",
          "skiff",
          "basis",
          "plank",
          "verge",
          "botch",
          "crawl",
          "lousy",
          "slain",
          "cubic",
          "raise",
          "wrack",
          "guide",
          "foist",
          "cameo",
          "under",
          "actor",
          "revue",
          "fraud",
          "harpy",
          "scoop",
          "climb",
          "refer",
          "olden",
          "clerk",
          "debar",
          "tally",
          "ethic",
          "cairn",
          "tulle",
          "ghoul",
          "hilly",
          "crude",
          "apart",
          "scale",
          "older",
          "plain",
          "sperm",
          "briny",
          "abbot",
          "rerun",
          "quest",
          "crisp",
          "bound",
          "befit",
          "drawn",
          "suite",
          "itchy",
          "cheer",
          "bagel",
          "guess",
          "broad",
          "axiom",
          "chard",
          "caput",
          "leant",
          "harsh",
          "curse",
          "proud",
          "swing",
          "opine",
          "taste",
          "lupus",
          "gumbo",
          "miner",
          "green",
          "chasm",
          "lipid",
          "topic",
          "armor",
          "brush",
          "crane",
          "mural",
          "abled",
          "habit",
          "bossy",
          "maker",
          "dusky",
          "dizzy",
          "lithe",
          "brook",
          "jazzy",
          "fifty",
          "sense",
          "giant",
          "surly",
          "legal",
          "fatal",
          "flunk",
          "began",
          "prune",
          "small",
          "slant",
          "scoff",
          "torus",
          "ninny",
          "covey",
          "viper",
          "taken",
          "moral",
          "vogue",
          "owing",
          "token",
          "entry",
          "booth",
          "voter",
          "chide",
          "elfin",
          "ebony",
          "neigh",
          "minim",
          "melon",
          "kneed",
          "decoy",
          "voila",
          "ankle",
          "arrow",
          "mushy",
          "tribe",
          "cease",
          "eager",
          "birth",
          "graph",
          "odder",
          "terra",
          "weird",
          "tried",
          "clack",
          "color",
          "rough",
          "weigh",
          "uncut",
          "ladle",
          "strip",
          "craft",
          "minus",
          "dicey",
          "titan",
          "lucid",
          "vicar",
          "dress",
          "ditch",
          "gypsy",
          "pasta",
          "taffy",
          "flame",
          "swoop",
          "aloof",
          "sight",
          "broke",
          "teary",
          "chart",
          "sixty",
          "wordy",
          "sheer",
          "leper",
          "nosey",
          "bulge",
          "savor",
          "clamp",
          "funky",
          "foamy",
          "toxic",
          "brand",
          "plumb",
          "dingy",
          "butte",
          "drill",
          "tripe",
          "bicep",
          "tenor",
          "krill",
          "worse",
          "drama",
          "hyena",
          "think",
          "ratio",
          "cobra",
          "basil",
          "scrum",
          "bused",
          "phone",
          "court",
          "camel",
          "proof",
          "heard",
          "angel",
          "petal",
          "pouty",
          "throb",
          "maybe",
          "fetal",
          "sprig",
          "spine",
          "shout",
          "cadet",
          "macro",
          "dodgy",
          "satyr",
          "rarer",
          "binge",
          "trend",
          "nutty",
          "leapt",
          "amiss",
          "split",
          "myrrh",
          "width",
          "sonar",
          "tower",
          "baron",
          "fever",
          "waver",
          "spark",
          "belie",
          "sloop",
          "expel",
          "smote",
          "baler",
          "above",
          "north",
          "wafer",
          "scant",
          "frill",
          "awash",
          "snack",
          "scowl",
          "frail",
          "drift",
          "limbo",
          "fence",
          "motel",
          "ounce",
          "wreak",
          "revel",
          "talon",
          "prior",
          "knelt",
          "cello",
          "flake",
          "debug",
          "anode",
          "crime",
          "salve",
          "scout",
          "imbue",
          "pinky",
          "stave",
          "vague",
          "chock",
          "fight",
          "video",
          "stone",
          "teach",
          "cleft",
          "frost",
          "prawn",
          "booty",
          "twist",
          "apnea",
          "stiff",
          "plaza",
          "ledge",
          "tweak",
          "board",
          "grant",
          "medic",
          "bacon",
          "cable",
          "brawl",
          "slunk",
          "raspy",
          "forum",
          "drone",
          "women",
          "mucus",
          "boast",
          "toddy",
          "coven",
          "tumor",
          "truer",
          "wrath",
          "stall",
          "steam",
          "axial",
          "purer",
          "daily",
          "trail",
          "niche",
          "mealy",
          "juice",
          "nylon",
          "plump",
          "merry",
          "flail",
          "papal",
          "wheat",
          "berry",
          "cower",
          "erect",
          "brute",
          "leggy",
          "snipe",
          "sinew",
          "skier",
          "penny",
          "jumpy",
          "rally",
          "umbra",
          "scary",
          "modem",
          "gross",
          "avian",
          "greed",
          "satin",
          "tonic",
          "parka",
          "sniff",
          "livid",
          "stark",
          "trump",
          "giddy",
          "reuse",
          "taboo",
          "avoid",
          "quote",
          "devil",
          "liken",
          "gloss",
          "gayer",
          "beret",
          "noise",
          "gland",
          "dealt",
          "sling",
          "rumor",
          "opera",
          "thigh",
          "tonga",
          "flare",
          "wound",
          "white",
          "bulky",
          "etude",
          "horse",
          "circa",
          "paddy",
          "inbox",
          "fizzy",
          "grain",
          "exert",
          "surge",
          "gleam",
          "belle",
          "salvo",
          "crush",
          "fruit",
          "sappy",
          "taker",
          "tract",
          "ovine",
          "spiky",
          "frank",
          "reedy",
          "filth",
          "spasm",
          "heave",
          "mambo",
          "right",
          "clank",
          "trust",
          "lumen",
          "borne",
          "spook",
          "sauce",
          "amber",
          "lathe",
          "carat",
          "corer",
          "dirty",
          "slyly",
          "affix",
          "alloy",
          "taint",
          "sheep",
          "kinky",
          "wooly",
          "mauve",
          "flung",
          "yacht",
          "fried",
          "quail",
          "brunt",
          "grimy",
          "curvy",
          "cagey",
          "rinse",
          "deuce",
          "state",
          "grasp",
          "milky",
          "bison",
          "graft",
          "sandy",
          "baste",
          "flask",
          "hedge",
          "girly",
          "swash",
          "boney",
          "coupe",
          "endow",
          "abhor",
          "welch",
          "blade",
          "tight",
          "geese",
          "miser",
          "mirth",
          "cloud",
          "cabal",
          "leech",
          "close",
          "tenth",
          "pecan",
          "droit",
          "grail",
          "clone",
          "guise",
          "ralph",
          "tango",
          "biddy",
          "smith",
          "mower",
          "payee",
          "serif",
          "drape",
          "fifth",
          "spank",
          "glaze",
          "allot",
          "truck",
          "kayak",
          "virus",
          "testy",
          "tepee",
          "fully",
          "zonal",
          "metro",
          "curry",
          "grand",
          "banjo",
          "axion",
          "bezel",
          "occur",
          "chain",
          "nasal",
          "gooey",
          "filer",
          "brace",
          "allay",
          "pubic",
          "raven",
          "plead",
          "gnash",
          "flaky",
          "munch",
          "dully",
          "eking",
          "thing",
          "slink",
          "hurry",
          "theft",
          "shorn",
          "pygmy",
          "ranch",
          "wring",
          "lemon",
          "shore",
          "mamma",
          "froze",
          "newer",
          "style",
          "moose",
          "antic",
          "drown",
          "vegan",
          "chess",
          "guppy",
          "union",
          "lever",
          "lorry",
          "image",
          "cabby",
          "druid",
          "exact",
          "truth",
          "dopey",
          "spear",
          "cried",
          "chime",
          "crony",
          "stunk",
          "timid",
          "batch",
          "gauge",
          "rotor",
          "crack",
          "curve",
          "latte",
          "witch",
          "bunch",
          "repel",
          "anvil",
          "soapy",
          "meter",
          "broth",
          "madly",
          "dried",
          "scene",
          "known",
          "magma",
          "roost",
          "woman",
          "thong",
          "punch",
          "pasty",
          "downy",
          "knead",
          "whirl",
          "rapid",
          "clang",
          "anger",
          "drive",
          "goofy",
          "email",
          "music",
          "stuff",
          "bleep",
          "rider",
          "mecca",
          "folio",
          "setup",
          "verso",
          "quash",
          "fauna",
          "gummy",
          "happy",
          "newly",
          "fussy",
          "relic",
          "guava",
          "ratty",
          "fudge",
          "femur",
          "chirp",
          "forte",
          "alibi",
          "whine",
          "petty",
          "golly",
          "plait",
          "fleck",
          "felon",
          "gourd",
          "brown",
          "thrum",
          "ficus",
          "stash",
          "decry",
          "wiser",
          "junta",
          "visor",
          "daunt",
          "scree",
          "impel",
          "await",
          "press",
          "whose",
          "turbo",
          "stoop",
          "speak",
          "mangy",
          "eying",
          "inlet",
          "crone",
          "pulse",
          "mossy",
          "staid",
          "hence",
          "pinch",
          "teddy",
          "sully",
          "snore",
          "ripen",
          "snowy",
          "attic",
          "going",
          "leach",
          "mouth",
          "hound",
          "clump",
          "tonal",
          "bigot",
          "peril",
          "piece",
          "blame",
          "haute",
          "spied",
          "undid",
          "intro",
          "basal",
          "shine",
          "gecko",
          "rodeo",
          "guard",
          "steer",
          "loamy",
          "scamp",
          "scram",
          "manly",
          "hello",
          "vaunt",
          "organ",
          "feral",
          "knock",
          "extra",
          "condo",
          "adapt",
          "willy",
          "polka",
          "rayon",
          "skirt",
          "faith",
          "torso",
          "match",
          "mercy",
          "tepid",
          "sleek",
          "riser",
          "twixt",
          "peace",
          "flush",
          "catty",
          "login",
          "eject",
          "roger",
          "rival",
          "untie",
          "refit",
          "aorta",
          "adult",
          "judge",
          "rower",
          "artsy",
          "rural",
          "shave",
        ],
        valid: [
          "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",
        ],
      },
      Ye = Object.assign(Object.assign({}, Xe), { contains: (e) => Xe.words.includes(e) || Xe.valid.includes(e) });
    class Ke {
      constructor() {
        this.notSet = new Set();
      }
      not(e) {
        this.notSet.add(e);
      }
    }
    class Qe {
      constructor() {
        (this.notSet = new Set()), (this.letterCounts = new Map()), (this.word = []);
        for (let e = 0; e < 5; ++e) this.word.push(new Ke());
      }
      confirmCount(e) {
        let s = this.letterCounts.get(e);
        s ? (s[1] = !0) : this.not(e);
      }
      countConfirmed(e) {
        const s = this.letterCounts.get(e);
        return !!s && s[1];
      }
      setCount(e, s) {
        let a = this.letterCounts.get(e);
        a ? (a[0] = s) : this.letterCounts.set(e, [s, !1]);
      }
      incrementCount(e) {
        ++this.letterCounts.get(e)[0];
      }
      not(e) {
        this.notSet.add(e);
      }
      inGlobalNotList(e) {
        return this.notSet.has(e);
      }
      lettersNotAt(e) {
        return new Set([...this.notSet, ...this.word[e].notSet]);
      }
    }
    function Ze(e, s) {
      return e.reduce((e, a) => (a === s ? e + 1 : e), 0);
    }
    const es = ["qwertyuiop", "asdfghjkl", "zxcvbnm"];
    function ss(e) {
      const s = new Date();
      switch (e) {
        case Fe.daily:
          return new Date(Date.UTC(s.getFullYear(), s.getMonth(), s.getDate())).valueOf();
        case Fe.hourly:
          return new Date(s.getFullYear(), s.getMonth(), s.getDate(), s.getHours()).valueOf();
        case Fe.infinite:
          return new Date(s.getFullYear(), s.getMonth(), s.getDate(), s.getHours(), s.getMinutes(), s.getSeconds()).valueOf();
      }
    }
    const as = {
      default: Fe.daily,
      modes: [
        { name: "Daily", unit: 864e5, start: 16423704e5, seed: ss(Fe.daily), historical: !1, streak: !0 },
        { name: "Hourly", unit: 36e5, start: 16425288e5, seed: ss(Fe.hourly), historical: !1, icon: "m50,7h100v33c0,40 -35,40 -35,60c0,20 35,20 35,60v33h-100v-33c0,-40 35,-40 35,-60c0,-20 -35,-20 -35,-60z", streak: !0 },
        { name: "Infinite", unit: 1e3, start: 16424286e5, seed: ss(Fe.infinite), historical: !1, icon: "m7,100c0,-50 68,-50 93,0c25,50 93,50 93,0c0,-50 -68,-50 -93,0c-25,50 -93,50 -93,0z" },
      ],
    };
    function ts(e) {
      return Math.round((as.modes[e].seed - as.modes[e].start) / as.modes[e].unit) + 1;
    }
    function os(e, s, a) {
      const t = Ve(`${a}`);
      return Math.floor(e + (s - e) * t());
    }
    const rs = 200,
      ns = ["Genius", "Magnificent", "Impressive", "Splendid", "Great", "Phew"];
    function is(e) {
      return { active: !0, guesses: 0, time: as.modes[e].seed, wordNumber: ts(e), validHard: !0, board: { words: Array(6).fill(""), state: Array.from({ length: 6 }, () => Array(5).fill("🔳")) } };
    }
    function ls() {
      return { hard: new Array(as.modes.length).map(() => !1), dark: !0, colorblind: !1, tutorial: 3 };
    }
    const us = new Map();
    function cs(e) {
      const s = e - 1;
      return s * s * s + 1;
    }
    function ds(e, { delay: a = 0, duration: t = 400, easing: o = s } = {}) {
      const r = +getComputedStyle(e).opacity;
      return { delay: a, duration: t, easing: o, css: (e) => "opacity: " + e * r };
    }
    function ps(e, { delay: s = 0, duration: a = 400, easing: t = cs, start: o = 0, opacity: r = 0 } = {}) {
      const n = getComputedStyle(e),
        i = +n.opacity,
        l = "none" === n.transform ? "" : n.transform,
        u = 1 - o,
        c = i * (1 - r);
      return { delay: s, duration: a, easing: t, css: (e, s) => `\n\t\t\ttransform: ${l} scale(${1 - u * s});\n\t\t\topacity: ${i - c * s}\n\t\t` };
    }
    const ms = [];
    function hs(s, a = e) {
      let t;
      const o = new Set();
      function r(e) {
        if (n(s, e) && ((s = e), t)) {
          const e = !ms.length;
          for (const e of o) e[1](), ms.push(e, s);
          if (e) {
            for (let e = 0; e < ms.length; e += 2) ms[e][0](ms[e + 1]);
            ms.length = 0;
          }
        }
      }
      return {
        set: r,
        update: function (e) {
          r(e(s));
        },
        subscribe: function (n, i = e) {
          const l = [n, i];
          return (
            o.add(l),
            1 === o.size && (t = a(r) || e),
            n(s),
            () => {
              o.delete(l), 0 === o.size && (t(), (t = null));
            }
          );
        },
      };
    }
    const ys = hs(),
      gs = hs({
        a: "🔳",
        b: "🔳",
        c: "🔳",
        d: "🔳",
        e: "🔳",
        f: "🔳",
        g: "🔳",
        h: "🔳",
        i: "🔳",
        j: "🔳",
        k: "🔳",
        l: "🔳",
        m: "🔳",
        n: "🔳",
        o: "🔳",
        p: "🔳",
        q: "🔳",
        r: "🔳",
        s: "🔳",
        t: "🔳",
        u: "🔳",
        v: "🔳",
        w: "🔳",
        x: "🔳",
        y: "🔳",
        z: "🔳",
      }),
      fs = hs(ls());
    function bs(e) {
      let s, a, t, o;
      const n = e[2].default,
        i = l(n, e, e[1], null);
      return {
        c() {
          (s = M("svg")), i && i.c(), H(s, "xmlns", "http://www.w3.org/2000/svg"), H(s, "viewBox", "0 0 24 24"), H(s, "class", "svelte-17ud64h");
        },
        m(n, l) {
          j(n, s, l),
            i && i.m(s, null),
            (a = !0),
            t ||
              ((o = T(s, "click", function () {
                r(e[0]) && e[0].apply(this, arguments);
              })),
              (t = !0));
        },
        p(s, [t]) {
          (e = s), i && i.p && (!a || 2 & t) && d(i, n, e, e[1], a ? c(n, e[1], t, null) : p(e[1]), null);
        },
        i(e) {
          a || (ke(i, e), (a = !0));
        },
        o(e) {
          we(i, e), (a = !1);
        },
        d(e) {
          e && q(s), i && i.d(e), (t = !1), o();
        },
      };
    }
    function ks(e, s, a) {
      let { $$slots: t = {}, $$scope: o } = s,
        { onClick: r = () => {} } = s;
      return (
        (e.$$set = (e) => {
          "onClick" in e && a(0, (r = e.onClick)), "$$scope" in e && a(1, (o = e.$$scope));
        }),
        [r, o, t]
      );
    }
    class ws extends _e {
      constructor(e) {
        super(), Ne(this, e, ks, bs, n, { onClick: 0 });
      }
    }
    function vs(e) {
      let s;
      return {
        c() {
          (s = M("path")),
            H(
              s,
              "d",
              "M11 18h2v-2h-2v2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4z"
            );
        },
        m(e, a) {
          j(e, s, a);
        },
        d(e) {
          e && q(s);
        },
      };
    }
    function $s(e) {
      let s, a;
      return (
        (s = new ws({ props: { onClick: e[7], $$slots: { default: [xs] }, $$scope: { ctx: e } } })),
        {
          c() {
            qe(s.$$.fragment);
          },
          m(e, t) {
            Ce(s, e, t), (a = !0);
          },
          p(e, a) {
            const t = {};
            8192 & a && (t.$$scope = { dirty: a, ctx: e }), s.$set(t);
          },
          i(e) {
            a || (ke(s.$$.fragment, e), (a = !0));
          },
          o(e) {
            we(s.$$.fragment, e), (a = !1);
          },
          d(e) {
            Se(s, e);
          },
        }
      );
    }
    function xs(s) {
      let a, t, o;
      return {
        c() {
          (a = M("path")),
            H(
              a,
              "d",
              "M4.609 12c0-4.082 3.309-7.391 7.391-7.391a7.39 7.39 0 0 1 6.523 3.912l-1.653 1.567H22v-5.13l-1.572 1.659C18.652 3.841 15.542 2 12 2 6.477 2 2 6.477 2 12s4.477 10 10 10c4.589 0 8.453-3.09 9.631-7.301l-2.512-.703c-.871 3.113-3.73 5.395-7.119 5.395-4.082 0-7.391-3.309-7.391-7.391z"
            );
        },
        m(e, s) {
          j(e, a, s), (o = !0);
        },
        p: e,
        i(e) {
          o ||
            (ne(() => {
              t || (t = $e(a, ds, { duration: 200 }, !0)), t.run(1);
            }),
            (o = !0));
        },
        o(e) {
          t || (t = $e(a, ds, { duration: 200 }, !1)), t.run(0), (o = !1);
        },
        d(e) {
          e && q(a), e && t && t.end();
        },
      };
    }
    function zs(e) {
      let s, a;
      return (
        (s = new ws({ props: { onClick: e[10], $$slots: { default: [js] }, $$scope: { ctx: e } } })),
        {
          c() {
            qe(s.$$.fragment);
          },
          m(e, t) {
            Ce(s, e, t), (a = !0);
          },
          p(e, a) {
            const t = {};
            8192 & a && (t.$$scope = { dirty: a, ctx: e }), s.$set(t);
          },
          i(e) {
            a || (ke(s.$$.fragment, e), (a = !0));
          },
          o(e) {
            we(s.$$.fragment, e), (a = !1);
          },
          d(e) {
            Se(s, e);
          },
        }
      );
    }
    function js(s) {
      let a, t, o;
      return {
        c() {
          (a = M("path")), H(a, "d", "M16,11V3H8v6H2v12h20V11H16z M10,5h4v14h-4V5z M4,11h4v8H4V11z M20,19h-4v-6h4V19z");
        },
        m(e, s) {
          j(e, a, s), (o = !0);
        },
        p: e,
        i(e) {
          o ||
            (ne(() => {
              t || (t = $e(a, ds, { duration: 200 }, !0)), t.run(1);
            }),
            (o = !0));
        },
        o(e) {
          t || (t = $e(a, ds, { duration: 200 }, !1)), t.run(0), (o = !1);
        },
        d(e) {
          e && q(a), e && t && t.end();
        },
      };
    }
    function qs(e) {
      let s;
      return {
        c() {
          (s = M("path")),
            H(
              s,
              "d",
              "M19.14,12.94c0.04-0.3,0.06-0.61,0.06-0.94c0-0.32-0.02-0.64-0.07-0.94l2.03-1.58c0.18-0.14,0.23-0.41,0.12-0.61 l-1.92-3.32c-0.12-0.22-0.37-0.29-0.59-0.22l-2.39,0.96c-0.5-0.38-1.03-0.7-1.62-0.94L14.4,2.81c-0.04-0.24-0.24-0.41-0.48-0.41 h-3.84c-0.24,0-0.43,0.17-0.47,0.41L9.25,5.35C8.66,5.59,8.12,5.92,7.63,6.29L5.24,5.33c-0.22-0.08-0.47,0-0.59,0.22L2.74,8.87 C2.62,9.08,2.66,9.34,2.86,9.48l2.03,1.58C4.84,11.36,4.8,11.69,4.8,12s0.02,0.64,0.07,0.94l-2.03,1.58 c-0.18,0.14-0.23,0.41-0.12,0.61l1.92,3.32c0.12,0.22,0.37,0.29,0.59,0.22l2.39-0.96c0.5,0.38,1.03,0.7,1.62,0.94l0.36,2.54 c0.05,0.24,0.24,0.41,0.48,0.41h3.84c0.24,0,0.44-0.17,0.47-0.41l0.36-2.54c0.59-0.24,1.13-0.56,1.62-0.94l2.39,0.96 c0.22,0.08,0.47,0,0.59-0.22l1.92-3.32c0.12-0.22,0.07-0.47-0.12-0.61L19.14,12.94z M12,15.6c-1.98,0-3.6-1.62-3.6-3.6 s1.62-3.6,3.6-3.6s3.6,1.62,3.6,3.6S13.98,15.6,12,15.6z"
            );
        },
        m(e, a) {
          j(e, s, a);
        },
        d(e) {
          e && q(s);
        },
      };
    }
    function Cs(s) {
      let a, t, o, r, n;
      return {
        c() {
          (a = S("div")), (a.innerHTML = 'Tap WORDLE+ to change game mode\n\t\t\t<span class="ok">OK</span>'), H(a, "class", "tutorial");
        },
        m(e, t) {
          j(e, a, t), (o = !0), r || ((n = T(a, "click", s[12])), (r = !0));
        },
        p: e,
        i(e) {
          o ||
            (ne(() => {
              t || (t = $e(a, ps, {}, !0)), t.run(1);
            }),
            (o = !0));
        },
        o(e) {
          t || (t = $e(a, ps, {}, !1)), t.run(0), (o = !1);
        },
        d(e) {
          e && q(a), e && t && t.end(), (r = !1), n();
        },
      };
    }
    function Ss(e) {
      let s, a, t, r, n, i, l, u, c, d, p, m, h, y;
      t = new ws({ props: { onClick: e[6], $$slots: { default: [vs] }, $$scope: { ctx: e } } });
      let g = e[0] && $s(e),
        f = e[1] && zs(e);
      d = new ws({ props: { onClick: e[11], $$slots: { default: [qs] }, $$scope: { ctx: e } } });
      let b = e[2] && Cs(e);
      return {
        c() {
          (s = S("header")),
            (a = S("div")),
            qe(t.$$.fragment),
            (r = _()),
            g && g.c(),
            (n = _()),
            (i = S("h1")),
            (i.textContent = "wordle+"),
            (l = _()),
            (u = S("div")),
            f && f.c(),
            (c = _()),
            qe(d.$$.fragment),
            (p = _()),
            b && b.c(),
            H(a, "class", "icons svelte-1q7q9yu"),
            H(i, "class", "svelte-1q7q9yu"),
            H(u, "class", "icons svelte-1q7q9yu"),
            H(s, "class", "svelte-1q7q9yu");
        },
        m(o, k) {
          j(o, s, k),
            $(s, a),
            Ce(t, a, null),
            $(a, r),
            g && g.m(a, null),
            $(s, n),
            $(s, i),
            $(s, l),
            $(s, u),
            f && f.m(u, null),
            $(u, c),
            Ce(d, u, null),
            $(s, p),
            b && b.m(s, null),
            (m = !0),
            h || ((y = [T(i, "click", A(e[8])), T(i, "contextmenu", A(O(e[9])))]), (h = !0));
        },
        p(e, [o]) {
          const r = {};
          8192 & o && (r.$$scope = { dirty: o, ctx: e }),
            t.$set(r),
            e[0]
              ? g
                ? (g.p(e, o), 1 & o && ke(g, 1))
                : ((g = $s(e)), g.c(), ke(g, 1), g.m(a, null))
              : g &&
                (fe(),
                we(g, 1, 1, () => {
                  g = null;
                }),
                be()),
            e[1]
              ? f
                ? (f.p(e, o), 2 & o && ke(f, 1))
                : ((f = zs(e)), f.c(), ke(f, 1), f.m(u, c))
              : f &&
                (fe(),
                we(f, 1, 1, () => {
                  f = null;
                }),
                be());
          const n = {};
          8192 & o && (n.$$scope = { dirty: o, ctx: e }),
            d.$set(n),
            e[2]
              ? b
                ? (b.p(e, o), 4 & o && ke(b, 1))
                : ((b = Cs(e)), b.c(), ke(b, 1), b.m(s, null))
              : b &&
                (fe(),
                we(b, 1, 1, () => {
                  b = null;
                }),
                be());
        },
        i(e) {
          m || (ke(t.$$.fragment, e), ke(g), ke(f), ke(d.$$.fragment, e), ke(b), (m = !0));
        },
        o(e) {
          we(t.$$.fragment, e), we(g), we(f), we(d.$$.fragment, e), we(b), (m = !1);
        },
        d(e) {
          e && q(s), Se(t), g && g.d(), f && f.d(), Se(d), b && b.d(), (h = !1), o(y);
        },
      };
    }
    function Ms(e, s, a) {
      let t;
      i(e, ys, (e) => a(4, (t = e)));
      let { showStats: o } = s,
        { tutorial: r } = s,
        { showRefresh: n } = s,
        { toaster: l = Z("toaster") } = s;
      const u = K();
      ys.subscribe((e) => {
        as.modes[e].unit - (new Date().valueOf() - as.modes[e].seed) > 0 && a(0, (n = !1));
      });
      return (
        (e.$$set = (e) => {
          "showStats" in e && a(1, (o = e.showStats)), "tutorial" in e && a(2, (r = e.tutorial)), "showRefresh" in e && a(0, (n = e.showRefresh)), "toaster" in e && a(3, (l = e.toaster));
        }),
        [
          n,
          o,
          r,
          l,
          t,
          u,
          () => u("tutorial"),
          () => u("reload"),
          () => {
            y(ys, (t = (t + 1) % as.modes.length), t), l.pop(as.modes[t].name);
          },
          () => {
            y(ys, (t = (t - 1 + as.modes.length) % as.modes.length), t), l.pop(as.modes[t].name);
          },
          () => u("stats"),
          () => u("settings"),
          () => u("closeTutPopUp"),
        ]
      );
    }
    class Ns extends _e {
      constructor(e) {
        super(), Ne(this, e, Ms, Ss, n, { showStats: 1, tutorial: 2, showRefresh: 0, toaster: 3 });
      }
    }
    function _s(s) {
      let a, t, o, r, n, i, l;
      return {
        c() {
          (a = S("div")),
            (t = S("div")),
            (o = N(s[0])),
            (r = _()),
            (n = S("div")),
            (i = N(s[0])),
            H(t, "class", "front svelte-frmspd"),
            H(n, "class", "back svelte-frmspd"),
            H(a, "data-animation", s[5]),
            H(a, "class", (l = "tile " + s[1] + " " + s[3] + " svelte-frmspd")),
            I(a, "transition-delay", s[2] * rs + "ms"),
            B(a, "value", s[0]),
            B(a, "pop", s[4]);
        },
        m(e, s) {
          j(e, a, s), $(a, t), $(t, o), $(a, r), $(a, n), $(n, i);
        },
        p(e, [s]) {
          1 & s && E(o, e[0]),
            1 & s && E(i, e[0]),
            32 & s && H(a, "data-animation", e[5]),
            10 & s && l !== (l = "tile " + e[1] + " " + e[3] + " svelte-frmspd") && H(a, "class", l),
            4 & s && I(a, "transition-delay", e[2] * rs + "ms"),
            11 & s && B(a, "value", e[0]),
            26 & s && B(a, "pop", e[4]);
        },
        i: e,
        o: e,
        d(e) {
          e && q(a);
        },
      };
    }
    function Ls(e, s, a) {
      let t,
        { value: o = "" } = s,
        { state: r } = s,
        { position: n = 0 } = s;
      let i = !1,
        l = "";
      const u = ys.subscribe(() => {
        a(5, (l = "")), a(3, (t = "🔳")), setTimeout(() => a(3, (t = "")), 10);
      });
      return (
        setTimeout(() => a(4, (i = !0)), 200),
        Y(u),
        (e.$$set = (e) => {
          "value" in e && a(0, (o = e.value)), "state" in e && a(1, (r = e.state)), "position" in e && a(2, (n = e.position));
        }),
        (e.$$.update = () => {
          1 & e.$$.dirty && !o && a(5, (l = ""));
        }),
        [
          o,
          r,
          n,
          t,
          i,
          l,
          function () {
            setTimeout(() => a(5, (l = "bounce")), (6 + n) * rs);
          },
        ]
      );
    }
    class Ts extends _e {
      constructor(e) {
        super(), Ne(this, e, Ls, _s, n, { value: 0, state: 1, position: 2, bounce: 6 });
      }
      get bounce() {
        return this.$$.ctx[6];
      }
    }
    function Os(e, s, a) {
      const t = e.slice();
      return (t[13] = s[a]), (t[14] = s), (t[15] = a), t;
    }
    function As(e) {
      let s,
        a,
        t = e[15];
      const o = () => e[9](s, t),
        r = () => e[9](null, t);
      let n = { state: e[3][e[15]], value: e[2].charAt(e[15]), position: e[15] };
      return (
        (s = new Ts({ props: n })),
        o(),
        {
          c() {
            qe(s.$$.fragment);
          },
          m(e, t) {
            Ce(s, e, t), (a = !0);
          },
          p(e, a) {
            t !== e[15] && (r(), (t = e[15]), o());
            const n = {};
            8 & a && (n.state = e[3][e[15]]), 4 & a && (n.value = e[2].charAt(e[15])), s.$set(n);
          },
          i(e) {
            a || (ke(s.$$.fragment, e), (a = !0));
          },
          o(e) {
            we(s.$$.fragment, e), (a = !1);
          },
          d(e) {
            r(), Se(s, e);
          },
        }
      );
    }
    function Hs(e) {
      let s,
        a,
        t,
        r,
        n = Array(5),
        i = [];
      for (let s = 0; s < n.length; s += 1) i[s] = As(Os(e, n, s));
      const l = (e) =>
        we(i[e], 1, 1, () => {
          i[e] = null;
        });
      return {
        c() {
          s = S("div");
          for (let e = 0; e < i.length; e += 1) i[e].c();
          H(s, "class", "board-row svelte-ssibky"), H(s, "data-animation", e[4]), B(s, "complete", e[0] > e[1]);
        },
        m(o, n) {
          j(o, s, n);
          for (let e = 0; e < i.length; e += 1) i[e].m(s, null);
          (a = !0), t || ((r = [T(s, "contextmenu", O(e[10])), T(s, "dblclick", O(e[11])), T(s, "animationend", e[12])]), (t = !0));
        },
        p(e, [t]) {
          if (44 & t) {
            let a;
            for (n = Array(5), a = 0; a < n.length; a += 1) {
              const o = Os(e, n, a);
              i[a] ? (i[a].p(o, t), ke(i[a], 1)) : ((i[a] = As(o)), i[a].c(), ke(i[a], 1), i[a].m(s, null));
            }
            for (fe(), a = n.length; a < i.length; a += 1) l(a);
            be();
          }
          (!a || 16 & t) && H(s, "data-animation", e[4]), 3 & t && B(s, "complete", e[0] > e[1]);
        },
        i(e) {
          if (!a) {
            for (let e = 0; e < n.length; e += 1) ke(i[e]);
            a = !0;
          }
        },
        o(e) {
          i = i.filter(Boolean);
          for (let e = 0; e < i.length; e += 1) we(i[e]);
          a = !1;
        },
        d(e) {
          e && q(s), C(i, e), (t = !1), o(r);
        },
      };
    }
    function Es(e, s, a) {
      let { guesses: t } = s,
        { num: o } = s,
        { value: r = "" } = s,
        { state: n } = s;
      const i = K();
      let l = "",
        u = [];
      return (
        (e.$$set = (e) => {
          "guesses" in e && a(0, (t = e.guesses)), "num" in e && a(1, (o = e.num)), "value" in e && a(2, (r = e.value)), "state" in e && a(3, (n = e.state));
        }),
        [
          t,
          o,
          r,
          n,
          l,
          u,
          i,
          function () {
            a(4, (l = "shake"));
          },
          function () {
            u.forEach((e) => e.bounce());
          },
          function (e, s) {
            se[e ? "unshift" : "push"](() => {
              (u[s] = e), a(5, u);
            });
          },
          (e) => i("ctx", { x: e.clientX, y: e.clientY }),
          (e) => i("ctx", { x: e.clientX, y: e.clientY }),
          () => a(4, (l = "")),
        ]
      );
    }
    class Is extends _e {
      constructor(e) {
        super(), Ne(this, e, Es, Hs, n, { guesses: 0, num: 1, value: 2, state: 3, shake: 7, bounce: 8 });
      }
      get shake() {
        return this.$$.ctx[7];
      }
      get bounce() {
        return this.$$.ctx[8];
      }
    }
    function Ds(e, s, a) {
      const t = e.slice();
      return (t[4] = s[a]), t;
    }
    function Bs(e) {
      let s, a, t, o, r;
      return {
        c() {
          (s = S("div")), (a = N("Your word was ")), (t = S("strong")), (o = N(e[0])), (r = N(". (failed to fetch definition)"));
        },
        m(e, n) {
          j(e, s, n), $(s, a), $(s, t), $(t, o), $(s, r);
        },
        p(e, s) {
          1 & s && E(o, e[0]);
        },
        d(e) {
          e && q(s);
        },
      };
    }
    function Rs(e) {
      let s,
        a,
        t,
        o,
        r,
        n,
        i,
        l,
        u = e[3].meanings[0].partOfSpeech + "",
        c = e[0] !== e[3].word && Ws(e),
        d = e[3].meanings[0].definitions.slice(0, 1 + e[1] - (e[0] !== e[3].word ? 1 : 0)),
        p = [];
      for (let s = 0; s < d.length; s += 1) p[s] = Gs(Ds(e, d, s));
      return {
        c() {
          (s = S("h2")), (a = N(e[0])), (t = _()), (o = S("em")), (r = N(u)), (n = _()), (i = S("ol")), c && c.c(), (l = _());
          for (let e = 0; e < p.length; e += 1) p[e].c();
          H(s, "class", "svelte-1cpaagx"), H(i, "class", "svelte-1cpaagx");
        },
        m(e, u) {
          j(e, s, u), $(s, a), j(e, t, u), j(e, o, u), $(o, r), j(e, n, u), j(e, i, u), c && c.m(i, null), $(i, l);
          for (let e = 0; e < p.length; e += 1) p[e].m(i, null);
        },
        p(e, s) {
          if ((1 & s && E(a, e[0]), 1 & s && u !== (u = e[3].meanings[0].partOfSpeech + "") && E(r, u), e[0] !== e[3].word ? (c ? c.p(e, s) : ((c = Ws(e)), c.c(), c.m(i, l))) : c && (c.d(1), (c = null)), 7 & s)) {
            let a;
            for (d = e[3].meanings[0].definitions.slice(0, 1 + e[1] - (e[0] !== e[3].word ? 1 : 0)), a = 0; a < d.length; a += 1) {
              const t = Ds(e, d, a);
              p[a] ? p[a].p(t, s) : ((p[a] = Gs(t)), p[a].c(), p[a].m(i, null));
            }
            for (; a < p.length; a += 1) p[a].d(1);
            p.length = d.length;
          }
        },
        d(e) {
          e && q(s), e && q(t), e && q(o), e && q(n), e && q(i), c && c.d(), C(p, e);
        },
      };
    }
    function Ws(e) {
      let s,
        a,
        t,
        o,
        r = e[3].word + "";
      return {
        c() {
          (s = S("li")), (a = N("variant of ")), (t = N(r)), (o = N(".")), H(s, "class", "svelte-1cpaagx");
        },
        m(e, r) {
          j(e, s, r), $(s, a), $(s, t), $(s, o);
        },
        p(e, s) {
          1 & s && r !== (r = e[3].word + "") && E(t, r);
        },
        d(e) {
          e && q(s);
        },
      };
    }
    function Gs(e) {
      let s,
        a,
        t = e[4].definition + "";
      return {
        c() {
          (s = S("li")), (a = N(t)), H(s, "class", "svelte-1cpaagx");
        },
        m(e, t) {
          j(e, s, t), $(s, a);
        },
        p(e, s) {
          3 & s && t !== (t = e[4].definition + "") && E(a, t);
        },
        d(e) {
          e && q(s);
        },
      };
    }
    function Ps(s) {
      let a;
      return {
        c() {
          (a = S("h4")), (a.textContent = "Fetching definition...");
        },
        m(e, s) {
          j(e, a, s);
        },
        p: e,
        d(e) {
          e && q(a);
        },
      };
    }
    function Js(s) {
      let a,
        t,
        o = { ctx: s, current: null, token: null, hasCatch: !0, pending: Ps, then: Rs, catch: Bs, value: 3 };
      return (
        xe((t = s[2](s[0])), o),
        {
          c() {
            (a = S("div")), o.block.c(), H(a, "class", "def");
          },
          m(e, s) {
            j(e, a, s), o.block.m(a, (o.anchor = null)), (o.mount = () => a), (o.anchor = null);
          },
          p(e, [a]) {
            (s = e),
              (o.ctx = s),
              (1 & a && t !== (t = s[2](s[0])) && xe(t, o)) ||
                (function (e, s, a) {
                  const t = s.slice(),
                    { resolved: o } = e;
                  e.current === e.then && (t[e.value] = o), e.current === e.catch && (t[e.error] = o), e.block.p(t, a);
                })(o, s, a);
          },
          i: e,
          o: e,
          d(e) {
            e && q(a), o.block.d(), (o.token = null), (o = null);
          },
        }
      );
    }
    function Us(e, s, a) {
      let { word: t } = s,
        { alternates: o = 9 } = s;
      return (
        (e.$$set = (e) => {
          "word" in e && a(0, (t = e.word)), "alternates" in e && a(1, (o = e.alternates));
        }),
        [
          t,
          o,
          async function (e) {
            if (!us.has(e)) {
              const s = await fetch(`https://api.dictionaryapi.dev/api/v2/entries/en/${e}`, { mode: "cors" });
              if (!s.ok) throw new Error("Failed to fetch definition");
              us.set(e, (await s.json())[0]);
            }
            return us.get(e);
          },
        ]
      );
    }
    class Fs extends _e {
      constructor(e) {
        super(), Ne(this, e, Us, Js, n, { word: 0, alternates: 1 });
      }
    }
    function Vs(s) {
      let a, t, o, r, n, i, l, u, c, d, p;
      return {
        c() {
          (a = S("div")), (t = N("Considering all hints, there are:\n\t\t\t")), (o = S("br")), (r = S("br")), (n = _()), (i = N(s[3])), (l = N(" possible answers\n\t\t\t")), (u = S("br")), (c = _()), (d = N(s[4])), (p = N(" valid guesses"));
        },
        m(e, s) {
          j(e, a, s), $(a, t), $(a, o), $(a, r), $(a, n), $(a, i), $(a, l), $(a, u), $(a, c), $(a, d), $(a, p);
        },
        p(e, s) {
          8 & s && E(i, e[3]), 16 & s && E(d, e[4]);
        },
        i: e,
        o: e,
        d(e) {
          e && q(a);
        },
      };
    }
    function Xs(e) {
      let s, a, t, o, r, n, i, l, u, c, d, p, m, h;
      return (
        (m = new Fs({ props: { word: e[2], alternates: 1 } })),
        {
          c() {
            (s = S("div")),
              (a = N("Considering all hints, this row had:\n\t\t\t")),
              (t = S("br")),
              (o = S("br")),
              (r = _()),
              (n = N(e[3])),
              (i = N(" possible answers\n\t\t\t")),
              (l = S("br")),
              (u = _()),
              (c = N(e[4])),
              (d = N(" valid guesses")),
              (p = _()),
              qe(m.$$.fragment);
          },
          m(e, y) {
            j(e, s, y), $(s, a), $(s, t), $(s, o), $(s, r), $(s, n), $(s, i), $(s, l), $(s, u), $(s, c), $(s, d), j(e, p, y), Ce(m, e, y), (h = !0);
          },
          p(e, s) {
            (!h || 8 & s) && E(n, e[3]), (!h || 16 & s) && E(c, e[4]);
            const a = {};
            4 & s && (a.word = e[2]), m.$set(a);
          },
          i(e) {
            h || (ke(m.$$.fragment, e), (h = !0));
          },
          o(e) {
            we(m.$$.fragment, e), (h = !1);
          },
          d(e) {
            e && q(s), e && q(p), Se(m, e);
          },
        }
      );
    }
    function Ys(e) {
      let s, a, t, o;
      const r = [Xs, Vs],
        n = [];
      function i(e, s) {
        return "" !== e[2] ? 0 : 1;
      }
      return (
        (a = i(e)),
        (t = n[a] = r[a](e)),
        {
          c() {
            (s = S("div")), t.c(), H(s, "class", "ctx-menu svelte-uw0qlf"), I(s, "top", e[1] + "px"), I(s, "left", e[0] + "px");
          },
          m(e, t) {
            j(e, s, t), n[a].m(s, null), (o = !0);
          },
          p(e, [l]) {
            let u = a;
            (a = i(e)),
              a === u
                ? n[a].p(e, l)
                : (fe(),
                  we(n[u], 1, 1, () => {
                    n[u] = null;
                  }),
                  be(),
                  (t = n[a]),
                  t ? t.p(e, l) : ((t = n[a] = r[a](e)), t.c()),
                  ke(t, 1),
                  t.m(s, null)),
              (!o || 2 & l) && I(s, "top", e[1] + "px"),
              (!o || 1 & l) && I(s, "left", e[0] + "px");
          },
          i(e) {
            o || (ke(t), (o = !0));
          },
          o(e) {
            we(t), (o = !1);
          },
          d(e) {
            e && q(s), n[a].d();
          },
        }
      );
    }
    function Ks(e, s, a) {
      let { x: t = 0 } = s,
        { y: o = 0 } = s,
        { word: r = "" } = s,
        { pAns: n } = s,
        { pSols: i } = s;
      const l = parseInt(getComputedStyle(document.body).getPropertyValue("--game-width")) / 2;
      return (
        (e.$$set = (e) => {
          "x" in e && a(0, (t = e.x)), "y" in e && a(1, (o = e.y)), "word" in e && a(2, (r = e.word)), "pAns" in e && a(3, (n = e.pAns)), "pSols" in e && a(4, (i = e.pSols));
        }),
        (e.$$.update = () => {
          1 & e.$$.dirty && a(0, (t = window.innerWidth - t < l ? window.innerWidth - l : t));
        }),
        [t, o, r, n, i]
      );
    }
    class Qs extends _e {
      constructor(e) {
        super(), Ne(this, e, Ks, Ys, n, { x: 0, y: 1, word: 2, pAns: 3, pSols: 4 });
      }
    }
    function Zs(e, s, a) {
      const t = e.slice();
      return (t[21] = s[a]), (t[22] = s), (t[23] = a), t;
    }
    function ea(e) {
      let s, a;
      return (
        (s = new Qs({ props: { pAns: e[7], pSols: e[8], x: e[9], y: e[10], word: e[11] } })),
        {
          c() {
            qe(s.$$.fragment);
          },
          m(e, t) {
            Ce(s, e, t), (a = !0);
          },
          p(e, a) {
            const t = {};
            128 & a && (t.pAns = e[7]), 256 & a && (t.pSols = e[8]), 512 & a && (t.x = e[9]), 1024 & a && (t.y = e[10]), 2048 & a && (t.word = e[11]), s.$set(t);
          },
          i(e) {
            a || (ke(s.$$.fragment, e), (a = !0));
          },
          o(e) {
            we(s.$$.fragment, e), (a = !1);
          },
          d(e) {
            Se(s, e);
          },
        }
      );
    }
    function sa(e) {
      let s,
        a,
        t,
        o = e[23];
      const r = () => e[17](s, o),
        n = () => e[17](null, o);
      function i(s) {
        e[18](s, e[23]);
      }
      let l = { num: e[23], guesses: e[2], state: e[1].state[e[23]] };
      return (
        void 0 !== e[0][e[23]] && (l.value = e[0][e[23]]),
        (s = new Is({ props: l })),
        r(),
        se.push(() => je(s, "value", i)),
        s.$on("ctx", function (...s) {
          return e[19](e[23], ...s);
        }),
        {
          c() {
            qe(s.$$.fragment);
          },
          m(e, a) {
            Ce(s, e, a), (t = !0);
          },
          p(t, i) {
            o !== (e = t)[23] && (n(), (o = e[23]), r());
            const l = {};
            4 & i && (l.guesses = e[2]), 2 & i && (l.state = e[1].state[e[23]]), !a && 1 & i && ((a = !0), (l.value = e[0][e[23]]), ie(() => (a = !1))), s.$set(l);
          },
          i(e) {
            t || (ke(s.$$.fragment, e), (t = !0));
          },
          o(e) {
            we(s.$$.fragment, e), (t = !1);
          },
          d(e) {
            n(), Se(s, e);
          },
        }
      );
    }
    function aa(e) {
      let s, a;
      return {
        c() {
          (s = M("svg")),
            (a = M("path")),
            H(a, "d", e[3]),
            H(a, "stroke-width", "14"),
            H(a, "class", "svelte-qld8hn"),
            H(s, "xmlns", "http://www.w3.org/2000/svg"),
            H(s, "viewBox", "0 0 200 200"),
            H(s, "fill", "none"),
            H(s, "class", "svelte-qld8hn");
        },
        m(e, t) {
          j(e, s, t), $(s, a);
        },
        p(e, s) {
          8 & s && H(a, "d", e[3]);
        },
        d(e) {
          e && q(s);
        },
      };
    }
    function ta(s) {
      let a, t, o, r, n;
      return {
        c() {
          (a = S("div")), (a.innerHTML = 'double tap (right click) a row to see a word&#39;s definition, or how many words could be\n\t\t\tplayed there\n\t\t\t<span class="ok">OK</span>'), H(a, "class", "tutorial svelte-qld8hn");
        },
        m(e, t) {
          j(e, a, t), (o = !0), r || ((n = T(a, "click", s[20])), (r = !0));
        },
        p: e,
        i(e) {
          o ||
            (ne(() => {
              t || (t = $e(a, ps, {}, !0)), t.run(1);
            }),
            (o = !0));
        },
        o(e) {
          t || (t = $e(a, ps, {}, !1)), t.run(0), (o = !1);
        },
        d(e) {
          e && q(a), e && t && t.end(), (r = !1), n();
        },
      };
    }
    function oa(e) {
      let s,
        a,
        t,
        o,
        r,
        n = e[6] && ea(e),
        i = e[0],
        l = [];
      for (let s = 0; s < i.length; s += 1) l[s] = sa(Zs(e, i, s));
      const u = (e) =>
        we(l[e], 1, 1, () => {
          l[e] = null;
        });
      let c = e[3] && aa(e),
        d = e[4] && ta(e);
      return {
        c() {
          n && n.c(), (s = _()), (a = S("div"));
          for (let e = 0; e < l.length; e += 1) l[e].c();
          (t = _()), c && c.c(), (o = _()), d && d.c(), H(a, "class", "board svelte-qld8hn");
        },
        m(e, i) {
          n && n.m(e, i), j(e, s, i), j(e, a, i);
          for (let e = 0; e < l.length; e += 1) l[e].m(a, null);
          $(a, t), c && c.m(a, null), $(a, o), d && d.m(a, null), (r = !0);
        },
        p(e, [r]) {
          if (
            (e[6]
              ? n
                ? (n.p(e, r), 64 & r && ke(n, 1))
                : ((n = ea(e)), n.c(), ke(n, 1), n.m(s.parentNode, s))
              : n &&
                (fe(),
                we(n, 1, 1, () => {
                  n = null;
                }),
                be()),
            8231 & r)
          ) {
            let s;
            for (i = e[0], s = 0; s < i.length; s += 1) {
              const o = Zs(e, i, s);
              l[s] ? (l[s].p(o, r), ke(l[s], 1)) : ((l[s] = sa(o)), l[s].c(), ke(l[s], 1), l[s].m(a, t));
            }
            for (fe(), s = i.length; s < l.length; s += 1) u(s);
            be();
          }
          e[3] ? (c ? c.p(e, r) : ((c = aa(e)), c.c(), c.m(a, o))) : c && (c.d(1), (c = null)),
            e[4]
              ? d
                ? (d.p(e, r), 16 & r && ke(d, 1))
                : ((d = ta(e)), d.c(), ke(d, 1), d.m(a, null))
              : d &&
                (fe(),
                we(d, 1, 1, () => {
                  d = null;
                }),
                be());
        },
        i(e) {
          if (!r) {
            ke(n);
            for (let e = 0; e < i.length; e += 1) ke(l[e]);
            ke(d), (r = !0);
          }
        },
        o(e) {
          we(n), (l = l.filter(Boolean));
          for (let e = 0; e < l.length; e += 1) we(l[e]);
          we(d), (r = !1);
        },
        d(e) {
          n && n.d(e), e && q(s), e && q(a), C(l, e), c && c.d(), d && d.d();
        },
      };
    }
    function ra(e, s, a) {
      let { value: t } = s,
        { board: o } = s,
        { guesses: r } = s,
        { icon: n } = s,
        { tutorial: i } = s;
      const l = K();
      let u = [],
        c = !1,
        d = 0,
        p = 0,
        m = 0,
        h = 0,
        y = "";
      function g(e, s, t, n) {
        if (r >= t) {
          a(9, (m = e)), a(10, (h = s)), a(6, (c = !0)), a(11, (y = r > t ? n : ""));
          const i = (function (e, s) {
            const a = new Qe();
            for (let t = 0; t < e; ++t) {
              const e = new Set();
              for (let o = 0; o < 5; ++o) {
                const r = s.state[t][o],
                  n = s.words[t][o];
                "⬛" !== r ? (e.has(n) ? a.incrementCount(n) : a.countConfirmed(n) || (e.add(n), a.setCount(n, 1)), "🟩" === r ? (a.word[o].value = n) : a.word[o].not(n)) : (a.confirmCount(n), a.inGlobalNotList(n) || a.word[o].not(n));
              }
            }
            let t = "";
            for (let e = 0; e < a.word.length; ++e) t += a.word[e].value ? a.word[e].value : `[^${[...a.lettersNotAt(e)].join(" ")}]`;
            return (e) => {
              if (new RegExp(t).test(e)) {
                const s = e.split("");
                for (const e of a.letterCounts) {
                  const a = Ze(s, e[0]);
                  if (!a || (e[1][1] && a !== e[1][0])) return !1;
                }
                return !0;
              }
              return !1;
            };
          })(t, o);
          a(7, (d = Ye.words.filter((e) => i(e)).length)), a(8, (p = d + Ye.valid.filter((e) => i(e)).length));
        }
      }
      return (
        (e.$$set = (e) => {
          "value" in e && a(0, (t = e.value)), "board" in e && a(1, (o = e.board)), "guesses" in e && a(2, (r = e.guesses)), "icon" in e && a(3, (n = e.icon)), "tutorial" in e && a(4, (i = e.tutorial));
        }),
        [
          t,
          o,
          r,
          n,
          i,
          u,
          c,
          d,
          p,
          m,
          h,
          y,
          l,
          g,
          function (e) {
            u[e].shake();
          },
          function (e) {
            u[e].bounce();
          },
          function (e) {
            (e && e.defaultPrevented) || a(6, (c = !1));
          },
          function (e, s) {
            se[e ? "unshift" : "push"](() => {
              (u[s] = e), a(5, u);
            });
          },
          function (s, o) {
            e.$$.not_equal(t[o], s) && ((t[o] = s), a(0, t));
          },
          (e, s) => g(s.detail.x, s.detail.y, e, t[e]),
          () => l("closeTutPopUp"),
        ]
      );
    }
    class na extends _e {
      constructor(e) {
        super(), Ne(this, e, ra, oa, n, { value: 0, board: 1, guesses: 2, icon: 3, tutorial: 4, shake: 14, bounce: 15, hideCtx: 16 });
      }
      get shake() {
        return this.$$.ctx[14];
      }
      get bounce() {
        return this.$$.ctx[15];
      }
      get hideCtx() {
        return this.$$.ctx[16];
      }
    }
    function ia(e) {
      let s, a, t, o, r, n;
      const i = e[4].default,
        u = l(i, e, e[3], null);
      return {
        c() {
          (s = S("div")), (a = N(e[0])), u && u.c(), H(s, "class", (t = h(e[1]) + " svelte-1ymomqm")), B(s, "big", 1 !== e[0].length);
        },
        m(t, i) {
          j(t, s, i), $(s, a), u && u.m(s, null), (o = !0), r || ((n = T(s, "click", e[5])), (r = !0));
        },
        p(e, [r]) {
          (!o || 1 & r) && E(a, e[0]),
            u && u.p && (!o || 8 & r) && d(u, i, e, e[3], o ? c(i, e[3], r, null) : p(e[3]), null),
            (!o || (2 & r && t !== (t = h(e[1]) + " svelte-1ymomqm"))) && H(s, "class", t),
            3 & r && B(s, "big", 1 !== e[0].length);
        },
        i(e) {
          o || (ke(u, e), (o = !0));
        },
        o(e) {
          we(u, e), (o = !1);
        },
        d(e) {
          e && q(s), u && u.d(e), (r = !1), n();
        },
      };
    }
    function la(e, s, a) {
      let { $$slots: t = {}, $$scope: o } = s,
        { letter: r } = s,
        { state: n = "🔳" } = s;
      const i = K();
      return (
        (e.$$set = (e) => {
          "letter" in e && a(0, (r = e.letter)), "state" in e && a(1, (n = e.state)), "$$scope" in e && a(3, (o = e.$$scope));
        }),
        [r, n, i, o, t, () => i("keystroke", r)]
      );
    }
    class ua extends _e {
      constructor(e) {
        super(), Ne(this, e, la, ia, n, { letter: 0, state: 1 });
      }
    }
    function ca(e, s, a) {
      const t = e.slice();
      return (t[13] = s[a]), t;
    }
    function da(e, s, a) {
      const t = e.slice();
      return (t[13] = s[a]), t;
    }
    function pa(e, s, a) {
      const t = e.slice();
      return (t[13] = s[a]), t;
    }
    function ma(e) {
      let s, a;
      return (
        (s = new ua({ props: { letter: e[13], state: e[2][e[13]] } })),
        s.$on("keystroke", e[8]),
        {
          c() {
            qe(s.$$.fragment);
          },
          m(e, t) {
            Ce(s, e, t), (a = !0);
          },
          p(e, a) {
            const t = {};
            4 & a && (t.state = e[2][e[13]]), s.$set(t);
          },
          i(e) {
            a || (ke(s.$$.fragment, e), (a = !0));
          },
          o(e) {
            we(s.$$.fragment, e), (a = !1);
          },
          d(e) {
            Se(s, e);
          },
        }
      );
    }
    function ha(e) {
      let s, a;
      return (
        (s = new ua({ props: { letter: e[13], state: e[2][e[13]] } })),
        s.$on("keystroke", e[9]),
        {
          c() {
            qe(s.$$.fragment);
          },
          m(e, t) {
            Ce(s, e, t), (a = !0);
          },
          p(e, a) {
            const t = {};
            4 & a && (t.state = e[2][e[13]]), s.$set(t);
          },
          i(e) {
            a || (ke(s.$$.fragment, e), (a = !0));
          },
          o(e) {
            we(s.$$.fragment, e), (a = !1);
          },
          d(e) {
            Se(s, e);
          },
        }
      );
    }
    function ya(e) {
      let s, a;
      return (
        (s = new ua({ props: { letter: e[13], state: e[2][e[13]] } })),
        s.$on("keystroke", e[11]),
        {
          c() {
            qe(s.$$.fragment);
          },
          m(e, t) {
            Ce(s, e, t), (a = !0);
          },
          p(e, a) {
            const t = {};
            4 & a && (t.state = e[2][e[13]]), s.$set(t);
          },
          i(e) {
            a || (ke(s.$$.fragment, e), (a = !0));
          },
          o(e) {
            we(s.$$.fragment, e), (a = !1);
          },
          d(e) {
            Se(s, e);
          },
        }
      );
    }
    function ga(e) {
      let s, a;
      return {
        c() {
          (s = M("svg")),
            (a = M("path")),
            H(
              a,
              "d",
              "M22 3H7c-.69 0-1.23.35-1.59.88L0 12l5.41 8.11c.36.53.9.89 1.59.89h15c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H7.07L2.4 12l4.66-7H22v14zm-11.59-2L14 13.41 17.59 17 19 15.59 15.41 12 19 8.41 17.59 7 14 10.59 10.41 7 9 8.41 12.59 12 9 15.59z"
            ),
            H(s, "xmlns", "http://www.w3.org/2000/svg"),
            H(s, "viewBox", "0 0 24 24"),
            H(s, "class", "svelte-bldt10");
        },
        m(e, t) {
          j(e, s, t), $(s, a);
        },
        d(e) {
          e && q(s);
        },
      };
    }
    function fa(e) {
      let s,
        a,
        t,
        o,
        r,
        n,
        i,
        l,
        u,
        c,
        d,
        p,
        m,
        h,
        y = es[0],
        g = [];
      for (let s = 0; s < y.length; s += 1) g[s] = ma(pa(e, y, s));
      const f = (e) =>
        we(g[e], 1, 1, () => {
          g[e] = null;
        });
      let b = es[1],
        k = [];
      for (let s = 0; s < b.length; s += 1) k[s] = ha(da(e, b, s));
      const w = (e) =>
        we(k[e], 1, 1, () => {
          k[e] = null;
        });
      (l = new ua({ props: { letter: "ENTER" } })), l.$on("keystroke", e[10]);
      let v = es[2],
        x = [];
      for (let s = 0; s < v.length; s += 1) x[s] = ya(ca(e, v, s));
      const z = (e) =>
        we(x[e], 1, 1, () => {
          x[e] = null;
        });
      return (
        (d = new ua({ props: { letter: "", $$slots: { default: [ga] }, $$scope: { ctx: e } } })),
        d.$on("keystroke", e[5]),
        {
          c() {
            (s = _()), (a = S("div")), (t = S("div"));
            for (let e = 0; e < g.length; e += 1) g[e].c();
            (o = _()), (r = S("div"));
            for (let e = 0; e < k.length; e += 1) k[e].c();
            (n = _()), (i = S("div")), qe(l.$$.fragment), (u = _());
            for (let e = 0; e < x.length; e += 1) x[e].c();
            (c = _()), qe(d.$$.fragment), H(t, "class", "row svelte-bldt10"), H(r, "class", "row svelte-bldt10"), H(i, "class", "row svelte-bldt10"), H(a, "class", "keyboard svelte-bldt10"), B(a, "preventChange", e[1]);
          },
          m(y, f) {
            j(y, s, f), j(y, a, f), $(a, t);
            for (let e = 0; e < g.length; e += 1) g[e].m(t, null);
            $(a, o), $(a, r);
            for (let e = 0; e < k.length; e += 1) k[e].m(r, null);
            $(a, n), $(a, i), Ce(l, i, null), $(i, u);
            for (let e = 0; e < x.length; e += 1) x[e].m(i, null);
            $(i, c), Ce(d, i, null), (p = !0), m || ((h = T(document.body, "keydown", e[6])), (m = !0));
          },
          p(e, [s]) {
            if (20 & s) {
              let a;
              for (y = es[0], a = 0; a < y.length; a += 1) {
                const o = pa(e, y, a);
                g[a] ? (g[a].p(o, s), ke(g[a], 1)) : ((g[a] = ma(o)), g[a].c(), ke(g[a], 1), g[a].m(t, null));
              }
              for (fe(), a = y.length; a < g.length; a += 1) f(a);
              be();
            }
            if (20 & s) {
              let a;
              for (b = es[1], a = 0; a < b.length; a += 1) {
                const t = da(e, b, a);
                k[a] ? (k[a].p(t, s), ke(k[a], 1)) : ((k[a] = ha(t)), k[a].c(), ke(k[a], 1), k[a].m(r, null));
              }
              for (fe(), a = b.length; a < k.length; a += 1) w(a);
              be();
            }
            if (20 & s) {
              let a;
              for (v = es[2], a = 0; a < v.length; a += 1) {
                const t = ca(e, v, a);
                x[a] ? (x[a].p(t, s), ke(x[a], 1)) : ((x[a] = ya(t)), x[a].c(), ke(x[a], 1), x[a].m(i, c));
              }
              for (fe(), a = v.length; a < x.length; a += 1) z(a);
              be();
            }
            const o = {};
            1048576 & s && (o.$$scope = { dirty: s, ctx: e }), d.$set(o), 2 & s && B(a, "preventChange", e[1]);
          },
          i(e) {
            if (!p) {
              for (let e = 0; e < y.length; e += 1) ke(g[e]);
              for (let e = 0; e < b.length; e += 1) ke(k[e]);
              ke(l.$$.fragment, e);
              for (let e = 0; e < v.length; e += 1) ke(x[e]);
              ke(d.$$.fragment, e), (p = !0);
            }
          },
          o(e) {
            g = g.filter(Boolean);
            for (let e = 0; e < g.length; e += 1) we(g[e]);
            k = k.filter(Boolean);
            for (let e = 0; e < k.length; e += 1) we(k[e]);
            we(l.$$.fragment, e), (x = x.filter(Boolean));
            for (let e = 0; e < x.length; e += 1) we(x[e]);
            we(d.$$.fragment, e), (p = !1);
          },
          d(e) {
            e && q(s), e && q(a), C(g, e), C(k, e), Se(l), C(x, e), Se(d), (m = !1), h();
          },
        }
      );
    }
    function ba(e, s, a) {
      let t;
      i(e, gs, (e) => a(2, (t = e)));
      let { value: o = "" } = s,
        { disabled: r = !1 } = s,
        n = !0;
      const l = K();
      function u(e) {
        !r && o.length < 5 && (l("keystroke", e), a(7, (o += e)));
      }
      function c() {
        r || a(7, (o = o.slice(0, o.length - 1)));
      }
      Y(
        ys.subscribe(() => {
          a(1, (n = !0)), setTimeout(() => a(1, (n = !1)), 200);
        })
      );
      return (
        (e.$$set = (e) => {
          "value" in e && a(7, (o = e.value)), "disabled" in e && a(0, (r = e.disabled));
        }),
        [
          r,
          n,
          t,
          l,
          u,
          c,
          function (e) {
            if (!r && !e.ctrlKey && !e.altKey) {
              if (e.key && /^[a-z]$/.test(e.key.toLowerCase())) return u(e.key.toLowerCase());
              if ("Backspace" === e.key) return c();
              if ("Enter" === e.key) return l("submitWord");
            }
            "Escape" === e.key && l("esc");
          },
          o,
          (e) => u(e.detail),
          (e) => u(e.detail),
          () => !r && l("submitWord"),
          (e) => u(e.detail),
        ]
      );
    }
    class ka extends _e {
      constructor(e) {
        super(), Ne(this, e, ba, fa, n, { value: 7, disabled: 0 });
      }
    }
    const wa = (e) => ({}),
      va = (e) => ({});
    function $a(e) {
      let s, a, t, r, n, i, u, m;
      r = new ws({ props: { $$slots: { default: [za] }, $$scope: { ctx: e } } });
      const h = e[3].default,
        y = l(h, e, e[4], null);
      return {
        c() {
          (s = S("div")), (a = S("div")), (t = S("div")), qe(r.$$.fragment), (n = _()), y && y.c(), H(t, "class", "exit svelte-t70b3b"), H(a, "class", "modal svelte-t70b3b"), H(s, "class", "overlay svelte-t70b3b"), B(s, "visible", e[0]);
        },
        m(o, l) {
          j(o, s, l), $(s, a), $(a, t), Ce(r, t, null), $(a, n), y && y.m(a, null), (i = !0), u || ((m = [T(t, "click", e[2]), T(s, "click", A(e[2]))]), (u = !0));
        },
        p(e, a) {
          const t = {};
          16 & a && (t.$$scope = { dirty: a, ctx: e }), r.$set(t), y && y.p && (!i || 16 & a) && d(y, h, e, e[4], i ? c(h, e[4], a, null) : p(e[4]), null), 1 & a && B(s, "visible", e[0]);
        },
        i(e) {
          i || (ke(r.$$.fragment, e), ke(y, e), (i = !0));
        },
        o(e) {
          we(r.$$.fragment, e), we(y, e), (i = !1);
        },
        d(e) {
          e && q(s), Se(r), y && y.d(e), (u = !1), o(m);
        },
      };
    }
    function xa(e) {
      let s, a, t, o, r, n, i, u, m;
      t = new ws({ props: { $$slots: { default: [ja] }, $$scope: { ctx: e } } });
      const h = e[3].default,
        y = l(h, e, e[4], null),
        g = e[3].footer,
        f = l(g, e, e[4], va);
      return {
        c() {
          (s = S("div")), (a = S("div")), qe(t.$$.fragment), (o = _()), (r = S("div")), y && y.c(), (n = _()), f && f.c(), H(a, "class", "exit svelte-t70b3b"), H(s, "class", "page svelte-t70b3b"), B(s, "visible", e[0]);
        },
        m(l, c) {
          j(l, s, c), $(s, a), Ce(t, a, null), $(s, o), $(s, r), y && y.m(r, null), $(s, n), f && f.m(s, null), (i = !0), u || ((m = T(a, "click", e[2])), (u = !0));
        },
        p(e, a) {
          const o = {};
          16 & a && (o.$$scope = { dirty: a, ctx: e }),
            t.$set(o),
            y && y.p && (!i || 16 & a) && d(y, h, e, e[4], i ? c(h, e[4], a, null) : p(e[4]), null),
            f && f.p && (!i || 16 & a) && d(f, g, e, e[4], i ? c(g, e[4], a, wa) : p(e[4]), va),
            1 & a && B(s, "visible", e[0]);
        },
        i(e) {
          i || (ke(t.$$.fragment, e), ke(y, e), ke(f, e), (i = !0));
        },
        o(e) {
          we(t.$$.fragment, e), we(y, e), we(f, e), (i = !1);
        },
        d(e) {
          e && q(s), Se(t), y && y.d(e), f && f.d(e), (u = !1), m();
        },
      };
    }
    function za(e) {
      let s;
      return {
        c() {
          (s = M("path")), H(s, "d", "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z");
        },
        m(e, a) {
          j(e, s, a);
        },
        d(e) {
          e && q(s);
        },
      };
    }
    function ja(e) {
      let s;
      return {
        c() {
          (s = M("path")), H(s, "d", "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z");
        },
        m(e, a) {
          j(e, s, a);
        },
        d(e) {
          e && q(s);
        },
      };
    }
    function qa(e) {
      let s, a, t, o;
      const r = [xa, $a],
        n = [];
      function i(e, s) {
        return e[1] ? 0 : 1;
      }
      return (
        (s = i(e)),
        (a = n[s] = r[s](e)),
        {
          c() {
            a.c(), (t = L());
          },
          m(e, a) {
            n[s].m(e, a), j(e, t, a), (o = !0);
          },
          p(e, [o]) {
            let l = s;
            (s = i(e)),
              s === l
                ? n[s].p(e, o)
                : (fe(),
                  we(n[l], 1, 1, () => {
                    n[l] = null;
                  }),
                  be(),
                  (a = n[s]),
                  a ? a.p(e, o) : ((a = n[s] = r[s](e)), a.c()),
                  ke(a, 1),
                  a.m(t.parentNode, t));
          },
          i(e) {
            o || (ke(a), (o = !0));
          },
          o(e) {
            we(a), (o = !1);
          },
          d(e) {
            n[s].d(e), e && q(t);
          },
        }
      );
    }
    function Ca(e, s, a) {
      let { $$slots: t = {}, $$scope: o } = s,
        { visible: r = !1 } = s,
        { fullscreen: n = !1 } = s;
      const i = K();
      return (
        (e.$$set = (e) => {
          "visible" in e && a(0, (r = e.visible)), "fullscreen" in e && a(1, (n = e.fullscreen)), "$$scope" in e && a(4, (o = e.$$scope));
        }),
        [
          r,
          n,
          function () {
            a(0, (r = !1)), i("close");
          },
          t,
          o,
        ]
      );
    }
    class Sa extends _e {
      constructor(e) {
        super(), Ne(this, e, Ca, qa, n, { visible: 0, fullscreen: 1 });
      }
    }
    function Ma(s) {
      let a, t, o;
      return {
        c() {
          (a = S("div")), H(a, "disabled", s[1]), H(a, "class", "svelte-16o9p8g"), B(a, "checked", s[0]);
        },
        m(e, r) {
          j(e, a, r), t || ((o = T(a, "click", s[2])), (t = !0));
        },
        p(e, [s]) {
          2 & s && H(a, "disabled", e[1]), 1 & s && B(a, "checked", e[0]);
        },
        i: e,
        o: e,
        d(e) {
          e && q(a), (t = !1), o();
        },
      };
    }
    function Na(e, s, a) {
      let { value: t } = s,
        { disabled: o = !1 } = s;
      return (
        (e.$$set = (e) => {
          "value" in e && a(0, (t = e.value)), "disabled" in e && a(1, (o = e.disabled));
        }),
        [t, o, (e) => !o && a(0, (t = !t))]
      );
    }
    class _a extends _e {
      constructor(e) {
        super(), Ne(this, e, Na, Ma, n, { value: 0, disabled: 1 });
      }
    }
    function La(e, s, a) {
      const t = e.slice();
      return (t[4] = s[a]), (t[6] = a), t;
    }
    function Ta(e) {
      let s,
        a,
        t,
        o = e[4] + "";
      return {
        c() {
          (s = S("option")), (a = N(o)), (s.__value = t = e[6]), (s.value = s.__value);
        },
        m(e, t) {
          j(e, s, t), $(s, a);
        },
        p(e, s) {
          2 & s && o !== (o = e[4] + "") && E(a, o);
        },
        d(e) {
          e && q(s);
        },
      };
    }
    function Oa(s) {
      let a,
        t,
        o,
        r = s[1],
        n = [];
      for (let e = 0; e < r.length; e += 1) n[e] = Ta(La(s, r, e));
      return {
        c() {
          a = S("select");
          for (let e = 0; e < n.length; e += 1) n[e].c();
          (a.disabled = s[2]), H(a, "class", "svelte-2btkgx"), void 0 === s[0] && ne(() => s[3].call(a));
        },
        m(e, r) {
          j(e, a, r);
          for (let e = 0; e < n.length; e += 1) n[e].m(a, null);
          D(a, s[0]), t || ((o = T(a, "change", s[3])), (t = !0));
        },
        p(e, [s]) {
          if (2 & s) {
            let t;
            for (r = e[1], t = 0; t < r.length; t += 1) {
              const o = La(e, r, t);
              n[t] ? n[t].p(o, s) : ((n[t] = Ta(o)), n[t].c(), n[t].m(a, null));
            }
            for (; t < n.length; t += 1) n[t].d(1);
            n.length = r.length;
          }
          4 & s && (a.disabled = e[2]), 1 & s && D(a, e[0]);
        },
        i: e,
        o: e,
        d(e) {
          e && q(a), C(n, e), (t = !1), o();
        },
      };
    }
    function Aa(e, s, a) {
      let { value: t } = s,
        { options: o } = s,
        { disabled: r = !1 } = s;
      return (
        (e.$$set = (e) => {
          "value" in e && a(0, (t = e.value)), "options" in e && a(1, (o = e.options)), "disabled" in e && a(2, (r = e.disabled));
        }),
        [
          t,
          o,
          r,
          function () {
            (t = (function (e) {
              const s = e.querySelector(":checked") || e.options[0];
              return s && s.__value;
            })(this)),
              a(0, t);
          },
        ]
      );
    }
    class Ha extends _e {
      constructor(e) {
        super(), Ne(this, e, Aa, Oa, n, { value: 0, options: 1, disabled: 2 });
      }
    }
    const Ea = (e) => ({}),
      Ia = (e) => ({}),
      Da = (e) => ({}),
      Ba = (e) => ({});
    function Ra(e) {
      let s, a, t, o, r, n, i, u, m;
      const h = e[6].title,
        y = l(h, e, e[5], Ba),
        g = e[6].desc,
        f = l(g, e, e[5], Ia);
      function b(s) {
        e[7](s);
      }
      var k = e[4][e[1]];
      function w(e) {
        let s = { options: e[2], disabled: e[3] };
        return void 0 !== e[0] && (s.value = e[0]), { props: s };
      }
      return (
        k && ((i = new k(w(e))), se.push(() => je(i, "value", b))),
        {
          c() {
            (s = S("div")),
              (a = S("div")),
              (t = S("div")),
              y && y.c(),
              (o = _()),
              (r = S("div")),
              f && f.c(),
              (n = _()),
              i && qe(i.$$.fragment),
              H(t, "class", "title svelte-40b4uj"),
              H(r, "class", "desc svelte-40b4uj"),
              H(s, "class", "setting svelte-40b4uj");
          },
          m(e, l) {
            j(e, s, l), $(s, a), $(a, t), y && y.m(t, null), $(a, o), $(a, r), f && f.m(r, null), $(s, n), i && Ce(i, s, null), (m = !0);
          },
          p(e, [a]) {
            y && y.p && (!m || 32 & a) && d(y, h, e, e[5], m ? c(h, e[5], a, Da) : p(e[5]), Ba), f && f.p && (!m || 32 & a) && d(f, g, e, e[5], m ? c(g, e[5], a, Ea) : p(e[5]), Ia);
            const t = {};
            if ((4 & a && (t.options = e[2]), 8 & a && (t.disabled = e[3]), !u && 1 & a && ((u = !0), (t.value = e[0]), ie(() => (u = !1))), k !== (k = e[4][e[1]]))) {
              if (i) {
                fe();
                const e = i;
                we(e.$$.fragment, 1, 0, () => {
                  Se(e, 1);
                }),
                  be();
              }
              k ? ((i = new k(w(e))), se.push(() => je(i, "value", b)), qe(i.$$.fragment), ke(i.$$.fragment, 1), Ce(i, s, null)) : (i = null);
            } else k && i.$set(t);
          },
          i(e) {
            m || (ke(y, e), ke(f, e), i && ke(i.$$.fragment, e), (m = !0));
          },
          o(e) {
            we(y, e), we(f, e), i && we(i.$$.fragment, e), (m = !1);
          },
          d(e) {
            e && q(s), y && y.d(e), f && f.d(e), i && Se(i);
          },
        }
      );
    }
    function Wa(e, s, a) {
      let { $$slots: t = {}, $$scope: o } = s,
        { value: r } = s,
        { type: n } = s,
        { options: i = [] } = s,
        { disabled: l = !1 } = s;
      const u = { switch: _a, dropdown: Ha };
      return (
        (e.$$set = (e) => {
          "value" in e && a(0, (r = e.value)), "type" in e && a(1, (n = e.type)), "options" in e && a(2, (i = e.options)), "disabled" in e && a(3, (l = e.disabled)), "$$scope" in e && a(5, (o = e.$$scope));
        }),
        [
          r,
          n,
          i,
          l,
          u,
          o,
          t,
          function (e) {
            (r = e), a(0, r);
          },
        ]
      );
    }
    class Ga extends _e {
      constructor(e) {
        super(), Ne(this, e, Wa, Ra, n, { value: 0, type: 1, options: 2, disabled: 3 });
      }
    }
    function Pa(e) {
      let s;
      return {
        c() {
          (s = S("span")), (s.textContent = "Hard Mode"), H(s, "slot", "title");
        },
        m(e, a) {
          j(e, s, a);
        },
        d(e) {
          e && q(s);
        },
      };
    }
    function Ja(e) {
      let s;
      return {
        c() {
          (s = S("span")), (s.textContent = "Any revealed hints must be used in subsequent guesses"), H(s, "slot", "desc");
        },
        m(e, a) {
          j(e, s, a);
        },
        d(e) {
          e && q(s);
        },
      };
    }
    function Ua(e) {
      let s;
      return {
        c() {
          (s = S("span")), (s.textContent = "Dark Theme"), H(s, "slot", "title");
        },
        m(e, a) {
          j(e, s, a);
        },
        d(e) {
          e && q(s);
        },
      };
    }
    function Fa(e) {
      let s;
      return {
        c() {
          (s = S("span")), (s.textContent = "Color Blind Mode"), H(s, "slot", "title");
        },
        m(e, a) {
          j(e, s, a);
        },
        d(e) {
          e && q(s);
        },
      };
    }
    function Va(e) {
      let s;
      return {
        c() {
          (s = S("span")), (s.textContent = "High contrast colors"), H(s, "slot", "desc");
        },
        m(e, a) {
          j(e, s, a);
        },
        d(e) {
          e && q(s);
        },
      };
    }
    function Xa(e) {
      let s;
      return {
        c() {
          (s = S("span")), (s.textContent = "Game Mode"), H(s, "slot", "title");
        },
        m(e, a) {
          j(e, s, a);
        },
        d(e) {
          e && q(s);
        },
      };
    }
    function Ya(e) {
      let s;
      return {
        c() {
          (s = S("span")), (s.textContent = "The game mode determines how often the word refreshes"), H(s, "slot", "desc");
        },
        m(e, a) {
          j(e, s, a);
        },
        d(e) {
          e && q(s);
        },
      };
    }
    function Ka(e) {
      let s, a, t, o, r, n, i, l, u, c, d, p, m, h, y, g, f, b, k, w, v;
      function x(s) {
        e[5](s);
      }
      let z = { type: "switch", disabled: !e[0].validHard, $$slots: { desc: [Ja], title: [Pa] }, $$scope: { ctx: e } };
      function C(s) {
        e[7](s);
      }
      void 0 !== e[1].hard[e[2]] && (z.value = e[1].hard[e[2]]), (n = new Ga({ props: z })), se.push(() => je(n, "value", x));
      let M = { type: "switch", $$slots: { title: [Ua] }, $$scope: { ctx: e } };
      function N(s) {
        e[8](s);
      }
      void 0 !== e[1].dark && (M.value = e[1].dark), (u = new Ga({ props: M })), se.push(() => je(u, "value", C));
      let L = { type: "switch", $$slots: { desc: [Va], title: [Fa] }, $$scope: { ctx: e } };
      function O(s) {
        e[9](s);
      }
      void 0 !== e[1].colorblind && (L.value = e[1].colorblind), (p = new Ga({ props: L })), se.push(() => je(p, "value", N));
      let A = { type: "dropdown", options: as.modes.map(Qa), $$slots: { desc: [Ya], title: [Xa] }, $$scope: { ctx: e } };
      return (
        void 0 !== e[2] && (A.value = e[2]),
        (y = new Ga({ props: A })),
        se.push(() => je(y, "value", O)),
        {
          c() {
            (s = S("div")),
              (a = S("div")),
              (t = S("h3")),
              (t.textContent = "settings"),
              (o = _()),
              (r = S("div")),
              qe(n.$$.fragment),
              (l = _()),
              qe(u.$$.fragment),
              (d = _()),
              qe(p.$$.fragment),
              (h = _()),
              qe(y.$$.fragment),
              (f = _()),
              (b = S("div")),
              (b.innerHTML = '<a href="https://3kh0.github.io/" target="_blank">Homepage</a> \n\t\t\t<a href="https://github.com/3kh0/3kh0.github.io/issues" target="_blank">Report a Bug</a>'),
              H(b, "class", "links svelte-1mwrm1x"),
              H(a, "class", "settings-top"),
              H(s, "class", "outer svelte-1mwrm1x");
          },
          m(i, c) {
            j(i, s, c), $(s, a), $(a, t), $(a, o), $(a, r), Ce(n, r, null), $(a, l), Ce(u, a, null), $(a, d), Ce(p, a, null), $(a, h), Ce(y, a, null), $(a, f), $(a, b), (k = !0), w || ((v = T(r, "click", e[6])), (w = !0));
          },
          p(e, [s]) {
            const a = {};
            1 & s && (a.disabled = !e[0].validHard), 1024 & s && (a.$$scope = { dirty: s, ctx: e }), !i && 6 & s && ((i = !0), (a.value = e[1].hard[e[2]]), ie(() => (i = !1))), n.$set(a);
            const t = {};
            1024 & s && (t.$$scope = { dirty: s, ctx: e }), !c && 2 & s && ((c = !0), (t.value = e[1].dark), ie(() => (c = !1))), u.$set(t);
            const o = {};
            1024 & s && (o.$$scope = { dirty: s, ctx: e }), !m && 2 & s && ((m = !0), (o.value = e[1].colorblind), ie(() => (m = !1))), p.$set(o);
            const r = {};
            1024 & s && (r.$$scope = { dirty: s, ctx: e }), !g && 4 & s && ((g = !0), (r.value = e[2]), ie(() => (g = !1))), y.$set(r);
          },
          i(e) {
            k || (ke(n.$$.fragment, e), ke(u.$$.fragment, e), ke(p.$$.fragment, e), ke(y.$$.fragment, e), (k = !0));
          },
          o(e) {
            we(n.$$.fragment, e), we(u.$$.fragment, e), we(p.$$.fragment, e), we(y.$$.fragment, e), (k = !1);
          },
          d(e) {
            e && q(s), Se(n), Se(u), Se(p), Se(y), (w = !1), v();
          },
        }
      );
    }
    const Qa = (e) => e.name;
    function Za(e, s, a) {
      let t, o;
      i(e, fs, (e) => a(1, (t = e))), i(e, ys, (e) => a(2, (o = e)));
      let { state: r } = s;
      const n = Z("toaster");
      let l;
      X(() => {
        a(4, (l = document.documentElement));
      });
      return (
        (e.$$set = (e) => {
          "state" in e && a(0, (r = e.state));
        }),
        (e.$$.update = () => {
          18 & e.$$.dirty && l && (t.dark ? l.classList.remove("light") : l.classList.add("light"), t.colorblind ? l.classList.add("colorblind") : l.classList.remove("colorblind"), localStorage.setItem("settings", JSON.stringify(t)));
        }),
        [
          r,
          t,
          o,
          n,
          l,
          function (s) {
            e.$$.not_equal(t.hard[o], s) && ((t.hard[o] = s), fs.set(t));
          },
          () => {
            r.validHard || n.pop("Game has already violated hard mode");
          },
          function (s) {
            e.$$.not_equal(t.dark, s) && ((t.dark = s), fs.set(t));
          },
          function (s) {
            e.$$.not_equal(t.colorblind, s) && ((t.colorblind = s), fs.set(t));
          },
          function (e) {
            (o = e), ys.set(o);
          },
        ]
      );
    }
    class et extends _e {
      constructor(e) {
        super(), Ne(this, e, Za, Ka, n, { state: 0 });
      }
    }
    const st = (e) => ({}),
      at = (e) => ({}),
      tt = (e) => ({}),
      ot = (e) => ({});
    function rt(e) {
      let s, a, t, o, r;
      const n = e[2][1],
        i = l(n, e, e[1], ot),
        u = e[2][2],
        m = l(u, e, e[1], at);
      return {
        c() {
          (s = S("div")), (a = S("div")), i && i.c(), (t = _()), (o = S("div")), m && m.c(), H(a, "class", "svelte-1cu43ge"), H(o, "class", "svelte-1cu43ge"), H(s, "class", "sep svelte-1cu43ge"), B(s, "visible", e[0]);
        },
        m(e, n) {
          j(e, s, n), $(s, a), i && i.m(a, null), $(s, t), $(s, o), m && m.m(o, null), (r = !0);
        },
        p(e, [a]) {
          i && i.p && (!r || 2 & a) && d(i, n, e, e[1], r ? c(n, e[1], a, tt) : p(e[1]), ot), m && m.p && (!r || 2 & a) && d(m, u, e, e[1], r ? c(u, e[1], a, st) : p(e[1]), at), 1 & a && B(s, "visible", e[0]);
        },
        i(e) {
          r || (ke(i, e), ke(m, e), (r = !0));
        },
        o(e) {
          we(i, e), we(m, e), (r = !1);
        },
        d(e) {
          e && q(s), i && i.d(e), m && m.d(e);
        },
      };
    }
    function nt(e, s, a) {
      let { $$slots: t = {}, $$scope: o } = s,
        { visible: r = !0 } = s;
      return (
        (e.$$set = (e) => {
          "visible" in e && a(0, (r = e.visible)), "$$scope" in e && a(1, (o = e.$$scope));
        }),
        [r, o, t]
      );
    }
    class it extends _e {
      constructor(e) {
        super(), Ne(this, e, nt, rt, n, { visible: 0 });
      }
    }
    function lt(s) {
      let a, t, o;
      return {
        c() {
          (a = S("div")),
            (a.innerHTML =
              'share\n\t<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path fill="white" d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92s2.92-1.31 2.92-2.92c0-1.61-1.31-2.92-2.92-2.92zM18 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM6 13c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm12 7.02c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"></path></svg>'),
            H(a, "class", "svelte-gyq5p4");
        },
        m(e, r) {
          j(e, a, r), t || ((o = T(a, "click", s[4])), (t = !0));
        },
        p: e,
        i: e,
        o: e,
        d(e) {
          e && q(a), (t = !1), o();
        },
      };
    }
    function ut(e, s, a) {
      let t, o;
      i(e, ys, (e) => a(3, (o = e)));
      let { state: r } = s;
      const n = Z("toaster");
      return (
        (e.$$set = (e) => {
          "state" in e && a(2, (r = e.state));
        }),
        (e.$$.update = () => {
          12 & e.$$.dirty &&
            a(
              0,
              (t = `${as.modes[o].name} Wordle #${r.wordNumber} ${r.active || 0 === r.guesses || r.board.state[r.guesses - 1].join("") !== "🟩".repeat(5) ? "X" : r.guesses}/${r.board.words.length}\n\n    ${r.board.state
                .slice(0, r.guesses)
                .map((e) => e.join(""))
                .join("\n    ")}\3kh0.github.io`)
            );
        }),
        [
          t,
          n,
          r,
          o,
          () => {
            navigator.clipboard.writeText(t), n.pop("Copied!");
          },
        ]
      );
    }
    class ct extends _e {
      constructor(e) {
        super(), Ne(this, e, ut, lt, n, { state: 2 });
      }
    }
    function dt(e) {
      let s, a, t, o, r, n, i, l, u, c, d, p, m, h, y, g, f, b, k, w, v, x, z, C, M, L, T, O, A, E, I, D, R, W, G, P, J, U, F, V, X, Y, K, Q, Z, ee, se, ae, te, oe, re, ne, ie, le, ue, ce, de;
      return (
        (b = new Ts({ props: { value: "w", state: "🟩" } })),
        (w = new Ts({ props: { value: "e", state: "🔳" } })),
        (x = new Ts({ props: { value: "a", state: "🔳" } })),
        (C = new Ts({ props: { value: "r", state: "🔳" } })),
        (L = new Ts({ props: { value: "y", state: "🔳" } })),
        (I = new Ts({ props: { value: "p", state: "🔳" } })),
        (R = new Ts({ props: { value: "i", state: "🟨" } })),
        (G = new Ts({ props: { value: "l", state: "🔳" } })),
        (J = new Ts({ props: { value: "l", state: "🔳" } })),
        (F = new Ts({ props: { value: "s", state: "🔳" } })),
        (Q = new Ts({ props: { value: "v", state: "🔳" } })),
        (ee = new Ts({ props: { value: "a", state: "🔳" } })),
        (ae = new Ts({ props: { value: "g", state: "🔳" } })),
        (oe = new Ts({ props: { value: "u", state: "⬛" } })),
        (ne = new Ts({ props: { value: "e", state: "🔳" } })),
        {
          c() {
            (s = S("h3")),
              (s.textContent = "how to play"),
              (a = _()),
              (t = S("div")),
              (o = N("Guess the ")),
              (r = S("strong")),
              (r.textContent = "WORDLE"),
              (n = N(" in ")),
              (i = N(6)),
              (l = N(" tries.")),
              (u = _()),
              (c = S("div")),
              (c.textContent = "Each guess must be a valid 5 letter word. Hit the enter button to submit."),
              (d = _()),
              (p = S("div")),
              (p.textContent = "After each guess, the color of the tiles will change to show how close your guess was to the\n\tword."),
              (m = _()),
              (h = S("div")),
              (y = S("div")),
              (y.innerHTML = "<strong>Examples</strong>"),
              (g = _()),
              (f = S("div")),
              qe(b.$$.fragment),
              (k = _()),
              qe(w.$$.fragment),
              (v = _()),
              qe(x.$$.fragment),
              (z = _()),
              qe(C.$$.fragment),
              (M = _()),
              qe(L.$$.fragment),
              (T = _()),
              (O = S("div")),
              (O.innerHTML = "The letter <strong>W</strong> is in the word and in the correct spot."),
              (A = _()),
              (E = S("div")),
              qe(I.$$.fragment),
              (D = _()),
              qe(R.$$.fragment),
              (W = _()),
              qe(G.$$.fragment),
              (P = _()),
              qe(J.$$.fragment),
              (U = _()),
              qe(F.$$.fragment),
              (V = _()),
              (X = S("div")),
              (X.innerHTML = "The letter <strong>I</strong> is in the word but in the wrong spot."),
              (Y = _()),
              (K = S("div")),
              qe(Q.$$.fragment),
              (Z = _()),
              qe(ee.$$.fragment),
              (se = _()),
              qe(ae.$$.fragment),
              (te = _()),
              qe(oe.$$.fragment),
              (re = _()),
              qe(ne.$$.fragment),
              (ie = _()),
              (le = S("div")),
              (le.innerHTML = "The letter <strong>U</strong> is not in the word in any spot."),
              (ue = _()),
              (ce = S("div")),
              (ce.innerHTML =
                'This is a recreation of the original <a href="https://www.powerlanguage.co.uk/wordle/" target="_blank">Wordle</a>\n\tby Josh Wardle with additional modes and features. Written with Svelte, in Typescript by\n\t<a href="https://github.com/3kh0" target="_blank">3kh0</a>.\n\t<br/>\n\tOpen the settings menu to see some of the additional features.'),
              H(t, "class", "svelte-6daei"),
              H(c, "class", "svelte-6daei"),
              H(p, "class", "svelte-6daei"),
              H(y, "class", "svelte-6daei"),
              H(f, "class", "row svelte-6daei"),
              H(O, "class", "svelte-6daei"),
              H(E, "class", "row svelte-6daei"),
              H(X, "class", "svelte-6daei"),
              H(K, "class", "row svelte-6daei"),
              H(le, "class", "svelte-6daei"),
              H(h, "class", "examples svelte-6daei"),
              B(h, "complete", e[0]),
              H(ce, "class", "svelte-6daei");
          },
          m(e, q) {
            j(e, s, q),
              j(e, a, q),
              j(e, t, q),
              $(t, o),
              $(t, r),
              $(t, n),
              $(t, i),
              $(t, l),
              j(e, u, q),
              j(e, c, q),
              j(e, d, q),
              j(e, p, q),
              j(e, m, q),
              j(e, h, q),
              $(h, y),
              $(h, g),
              $(h, f),
              Ce(b, f, null),
              $(f, k),
              Ce(w, f, null),
              $(f, v),
              Ce(x, f, null),
              $(f, z),
              Ce(C, f, null),
              $(f, M),
              Ce(L, f, null),
              $(h, T),
              $(h, O),
              $(h, A),
              $(h, E),
              Ce(I, E, null),
              $(E, D),
              Ce(R, E, null),
              $(E, W),
              Ce(G, E, null),
              $(E, P),
              Ce(J, E, null),
              $(E, U),
              Ce(F, E, null),
              $(h, V),
              $(h, X),
              $(h, Y),
              $(h, K),
              Ce(Q, K, null),
              $(K, Z),
              Ce(ee, K, null),
              $(K, se),
              Ce(ae, K, null),
              $(K, te),
              Ce(oe, K, null),
              $(K, re),
              Ce(ne, K, null),
              $(h, ie),
              $(h, le),
              j(e, ue, q),
              j(e, ce, q),
              (de = !0);
          },
          p(e, [s]) {
            1 & s && B(h, "complete", e[0]);
          },
          i(e) {
            de ||
              (ke(b.$$.fragment, e),
              ke(w.$$.fragment, e),
              ke(x.$$.fragment, e),
              ke(C.$$.fragment, e),
              ke(L.$$.fragment, e),
              ke(I.$$.fragment, e),
              ke(R.$$.fragment, e),
              ke(G.$$.fragment, e),
              ke(J.$$.fragment, e),
              ke(F.$$.fragment, e),
              ke(Q.$$.fragment, e),
              ke(ee.$$.fragment, e),
              ke(ae.$$.fragment, e),
              ke(oe.$$.fragment, e),
              ke(ne.$$.fragment, e),
              (de = !0));
          },
          o(e) {
            we(b.$$.fragment, e),
              we(w.$$.fragment, e),
              we(x.$$.fragment, e),
              we(C.$$.fragment, e),
              we(L.$$.fragment, e),
              we(I.$$.fragment, e),
              we(R.$$.fragment, e),
              we(G.$$.fragment, e),
              we(J.$$.fragment, e),
              we(F.$$.fragment, e),
              we(Q.$$.fragment, e),
              we(ee.$$.fragment, e),
              we(ae.$$.fragment, e),
              we(oe.$$.fragment, e),
              we(ne.$$.fragment, e),
              (de = !1);
          },
          d(e) {
            e && q(s),
              e && q(a),
              e && q(t),
              e && q(u),
              e && q(c),
              e && q(d),
              e && q(p),
              e && q(m),
              e && q(h),
              Se(b),
              Se(w),
              Se(x),
              Se(C),
              Se(L),
              Se(I),
              Se(R),
              Se(G),
              Se(J),
              Se(F),
              Se(Q),
              Se(ee),
              Se(ae),
              Se(oe),
              Se(ne),
              e && q(ue),
              e && q(ce);
          },
        }
      );
    }
    function pt(e, s, a) {
      let { visible: t } = s;
      return (
        (e.$$set = (e) => {
          "visible" in e && a(0, (t = e.visible));
        }),
        [t]
      );
    }
    class mt extends _e {
      constructor(e) {
        super(), Ne(this, e, pt, dt, n, { visible: 0 });
      }
    }
    function ht(s) {
      let a, t, o;
      return {
        c() {
          (a = S("div")),
            (a.innerHTML =
              '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="svelte-1pg4aff"><path d="M4.609 12c0-4.082 3.309-7.391 7.391-7.391a7.39 7.39 0 0 1 6.523 3.912l-1.653 1.567H22v-5.13l-1.572 1.659C18.652 3.841 15.542 2 12 2 6.477 2 2 6.477 2 12s4.477 10 10 10c4.589 0 8.453-3.09 9.631-7.301l-2.512-.703c-.871 3.113-3.73 5.395-7.119 5.395-4.082 0-7.391-3.309-7.391-7.391z"></path></svg>'),
            H(a, "class", "button svelte-1pg4aff");
        },
        m(e, r) {
          j(e, a, r), t || ((o = T(a, "click", s[4])), (t = !0));
        },
        p: e,
        d(e) {
          e && q(a), (t = !1), o();
        },
      };
    }
    function yt(e) {
      let s,
        a,
        t,
        o,
        r,
        n,
        i = `${Math.floor(e[0] / ft)}`.padStart(2, "0") + "",
        l = `${Math.floor((e[0] % ft) / bt)}`.padStart(2, "0") + "",
        u = `${Math.floor((e[0] % bt) / kt)}`.padStart(2, "0") + "";
      return {
        c() {
          (s = S("div")), (a = N(i)), (t = N(":")), (o = N(l)), (r = N(":")), (n = N(u)), H(s, "class", "timer svelte-1pg4aff");
        },
        m(e, i) {
          j(e, s, i), $(s, a), $(s, t), $(s, o), $(s, r), $(s, n);
        },
        p(e, s) {
          1 & s && i !== (i = `${Math.floor(e[0] / ft)}`.padStart(2, "0") + "") && E(a, i),
            1 & s && l !== (l = `${Math.floor((e[0] % ft) / bt)}`.padStart(2, "0") + "") && E(o, l),
            1 & s && u !== (u = `${Math.floor((e[0] % bt) / kt)}`.padStart(2, "0") + "") && E(n, u);
        },
        d(e) {
          e && q(s);
        },
      };
    }
    function gt(s) {
      let a, t, o;
      function r(e, s) {
        return e[0] > 0 ? yt : ht;
      }
      let n = r(s),
        i = n(s);
      return {
        c() {
          (a = S("h3")), (a.textContent = "Next wordle"), (t = _()), (o = S("div")), i.c(), H(a, "class", "svelte-1pg4aff"), H(o, "class", "container svelte-1pg4aff");
        },
        m(e, s) {
          j(e, a, s), j(e, t, s), j(e, o, s), i.m(o, null);
        },
        p(e, [s]) {
          n === (n = r(e)) && i ? i.p(e, s) : (i.d(1), (i = n(e)), i && (i.c(), i.m(o, null)));
        },
        i: e,
        o: e,
        d(e) {
          e && q(a), e && q(t), e && q(o), i.d();
        },
      };
    }
    const ft = 36e5,
      bt = 6e4,
      kt = 1e3;
    function wt(e, s, a) {
      let t;
      i(e, ys, (e) => a(3, (t = e)));
      const o = K();
      let r,
        n = 1e3;
      function l(e) {
        clearInterval(r),
          a(0, (n = as.modes[e].unit - (new Date().valueOf() - as.modes[e].seed) + 6e4 * new Date().getTimezoneOffset())),
          n < 0 && o("timeup"),
          (r = setInterval(() => {
            a(0, (n = as.modes[e].unit - (new Date().valueOf() - as.modes[e].seed) + 6e4 * new Date().getTimezoneOffset())), n < 0 && (clearInterval(r), o("timeup"));
          }, kt));
      }
      return (
        (e.$$.update = () => {
          8 & e.$$.dirty && l(t);
        }),
        [n, o, l, t, () => o("reload")]
      );
    }
    class vt extends _e {
      constructor(e) {
        super(), Ne(this, e, wt, gt, n, { reset: 2 });
      }
      get reset() {
        return this.$$.ctx[2];
      }
    }
    function $t(e, s, a) {
      const t = e.slice();
      return (t[2] = s[a]), t;
    }
    function xt(a) {
      let t,
        n,
        i,
        l,
        u = a[2] + "";
      return {
        c() {
          (t = S("div")), (n = N(u)), H(t, "class", "slice svelte-1dgg1bc");
        },
        m(e, s) {
          j(e, t, s), $(t, n), (l = !0);
        },
        p(e, s) {
          (!l || 1 & s) && u !== (u = e[2] + "") && E(n, u);
        },
        i(e) {
          l || (i && i.end(1), (l = !0));
        },
        o(a) {
          (i = (function (a, t, n) {
            let i,
              l = t(a, n),
              u = !0;
            const c = ge;
            function d() {
              const { delay: t = 0, duration: r = 300, easing: n = s, tick: d = e, css: p } = l || ve;
              p && (i = J(a, 1, 0, r, t, n, p));
              const m = f() + t,
                h = m + r;
              ne(() => he(a, !1, "start")),
                v((e) => {
                  if (u) {
                    if (e >= h) return d(0, 1), he(a, !1, "end"), --c.r || o(c.c), !1;
                    if (e >= m) {
                      const s = n((e - m) / r);
                      d(1 - s, s);
                    }
                  }
                  return u;
                });
            }
            return (
              (c.r += 1),
              r(l)
                ? me().then(() => {
                    (l = l()), d();
                  })
                : d(),
              {
                end(e) {
                  e && l.tick && l.tick(1, 0), u && (i && U(a, i), (u = !1));
                },
              }
            );
          })(t, ds, { duration: 200 })),
            (l = !1);
        },
        d(e) {
          e && q(t), e && i && i.end();
        },
      };
    }
    function zt(e) {
      let s,
        a,
        t = e[0],
        o = [];
      for (let s = 0; s < t.length; s += 1) o[s] = xt($t(e, t, s));
      const r = (e) =>
        we(o[e], 1, 1, () => {
          o[e] = null;
        });
      return {
        c() {
          s = S("div");
          for (let e = 0; e < o.length; e += 1) o[e].c();
          H(s, "class", "toast svelte-1dgg1bc");
        },
        m(e, t) {
          j(e, s, t);
          for (let e = 0; e < o.length; e += 1) o[e].m(s, null);
          a = !0;
        },
        p(e, [a]) {
          if (1 & a) {
            let n;
            for (t = e[0], n = 0; n < t.length; n += 1) {
              const r = $t(e, t, n);
              o[n] ? (o[n].p(r, a), ke(o[n], 1)) : ((o[n] = xt(r)), o[n].c(), ke(o[n], 1), o[n].m(s, null));
            }
            for (fe(), n = t.length; n < o.length; n += 1) r(n);
            be();
          }
        },
        i(e) {
          if (!a) {
            for (let e = 0; e < t.length; e += 1) ke(o[e]);
            a = !0;
          }
        },
        o(e) {
          o = o.filter(Boolean);
          for (let e = 0; e < o.length; e += 1) we(o[e]);
          a = !1;
        },
        d(e) {
          e && q(s), C(o, e);
        },
      };
    }
    function jt(e, s, a) {
      let t = [];
      return [
        t,
        function (e, s = 1) {
          a(0, (t = [e, ...t])), setTimeout(() => a(0, (t = t.slice(0, t.length - 1))), 1e3 * s);
        },
      ];
    }
    class qt extends _e {
      constructor(e) {
        super(), Ne(this, e, jt, zt, n, { pop: 1 });
      }
      get pop() {
        return this.$$.ctx[1];
      }
    }
    function Ct(s) {
      let a,
        t,
        r,
        n,
        i,
        l,
        u,
        c,
        d,
        p,
        m,
        h,
        y,
        g,
        f,
        b,
        k,
        w = s[0] + 1 + "",
        v = s[1].length + "",
        x = s[1][s[0]] + "";
      return {
        c() {
          (a = S("div")),
            (t = S("div")),
            (r = N("Tip ")),
            (n = N(w)),
            (i = N("/")),
            (l = N(v)),
            (u = _()),
            (c = S("div")),
            (d = N(x)),
            (p = _()),
            (m = M("svg")),
            (h = M("path")),
            (y = _()),
            (g = M("svg")),
            (f = M("path")),
            H(t, "class", "number svelte-ksmmv8"),
            H(c, "class", "tip svelte-ksmmv8"),
            H(h, "d", "M75,0L25,50L75,100z"),
            H(m, "class", "left svelte-ksmmv8"),
            H(m, "xmlns", "http://www.w3.org/2000/svg"),
            H(m, "viewBox", "0 0 100 100"),
            H(f, "d", "M25,0L75,50L25,100z"),
            H(g, "class", "right svelte-ksmmv8"),
            H(g, "xmlns", "http://www.w3.org/2000/svg"),
            H(g, "viewBox", "0 0 100 100"),
            H(a, "class", "outer svelte-ksmmv8");
        },
        m(e, o) {
          j(e, a, o), $(a, t), $(t, r), $(t, n), $(t, i), $(t, l), $(a, u), $(a, c), $(c, d), $(a, p), $(a, m), $(m, h), $(a, y), $(a, g), $(g, f), b || ((k = [T(m, "click", s[3]), T(g, "click", s[4])]), (b = !0));
        },
        p(e, [s]) {
          1 & s && w !== (w = e[0] + 1 + "") && E(n, w), 1 & s && x !== (x = e[1][e[0]] + "") && E(d, x);
        },
        i: e,
        o: e,
        d(e) {
          e && q(a), (b = !1), o(k);
        },
      };
    }
    function St(e, s, a) {
      let { index: t = 0 } = s;
      const o = [
          "You can change the gamemode by clicking wordle+.",
          "Hard mode is game mode specific. Turning it on in one game mode won't change it on the others.",
          "Double tap or right click a word on the board to learn its definition.",
          "Hard mode can be enabled during a game if you haven't violated the hard mode rules yet.",
          "Double tap or right click the next row to see how many possible words can be played there, if you use all the previous information.",
          "Because words are chosen from the list randomly it is possible to get the same word again.",
          "When you see the refresh button in the top left corner it means a new word is ready.",
          "Everyone has the same wordle at the same time. Your word #73 is the same as everyone elses #73.",
          "The word 'aeiou' has been added so you can check for vowels!",
          "There are more valid guesses than possible words, ie. not all 5 letter words can be selected as an answer by the game.",
          "Historical games don't count towards your stats. Historical games are when you follow a link to a specific game number.",
        ],
        r = o.length;
      return (
        (e.$$set = (e) => {
          "index" in e && a(0, (t = e.index));
        }),
        [t, o, r, () => a(0, (t = (t - 1 + o.length) % o.length)), () => a(0, (t = (t + 1) % o.length))]
      );
    }
    class Mt extends _e {
      constructor(e) {
        super(), Ne(this, e, St, Ct, n, { index: 0, length: 2 });
      }
      get length() {
        return this.$$.ctx[2];
      }
    }
    function Nt(e) {
      let s;
      return {
        c() {
          (s = M("path")),
            H(
              s,
              "d",
              "M4.167 4.167c-1.381 1.381-1.381 3.619 0 5L6.5 11.5a1.18 1.18 0 0 1 0 1.667 1.18 1.18 0 0 1-1.667 0L2.5 10.833C.199 8.532.199 4.801 2.5 2.5s6.032-2.301 8.333 0l3.333 3.333c2.301 2.301 2.301 6.032 0 8.333a1.18 1.18 0 0 1-1.667 0 1.18 1.18 0 0 1 0-1.667c1.381-1.381 1.381-3.619 0-5L9.167 4.167c-1.381-1.381-3.619-1.381-5 0zm5.667 14c-2.301-2.301-2.301-6.032 0-8.333a1.18 1.18 0 0 1 1.667 0 1.18 1.18 0 0 1 0 1.667c-1.381 1.381-1.381 3.619 0 5l3.333 3.333c1.381 1.381 3.619 1.381 5 0s1.381-3.619 0-5L17.5 12.5a1.18 1.18 0 0 1 0-1.667 1.18 1.18 0 0 1 1.667 0l2.333 2.333c2.301 2.301 2.301 6.032 0 8.333s-6.032 2.301-8.333 0l-3.333-3.333z"
            );
        },
        m(e, a) {
          j(e, s, a);
        },
        d(e) {
          e && q(s);
        },
      };
    }
    function _t(e) {
      let s,
        a,
        t,
        o,
        r,
        n,
        i,
        l,
        u,
        c,
        d = as.modes[e[1]].name + "";
      return (
        (a = new ws({ props: { $$slots: { default: [Nt] }, $$scope: { ctx: e } } })),
        {
          c() {
            (s = S("div")), qe(a.$$.fragment), (t = N("\n\tCopy link to this game (")), (o = N(d)), (r = N(" #")), (n = N(e[0])), (i = N(")")), H(s, "class", "svelte-qtlar2");
          },
          m(d, p) {
            j(d, s, p), Ce(a, s, null), $(s, t), $(s, o), $(s, r), $(s, n), $(s, i), (l = !0), u || ((c = T(s, "click", e[2])), (u = !0));
          },
          p(e, [s]) {
            const t = {};
            16 & s && (t.$$scope = { dirty: s, ctx: e }), a.$set(t), (!l || 2 & s) && d !== (d = as.modes[e[1]].name + "") && E(o, d), (!l || 1 & s) && E(n, e[0]);
          },
          i(e) {
            l || (ke(a.$$.fragment, e), (l = !0));
          },
          o(e) {
            we(a.$$.fragment, e), (l = !1);
          },
          d(e) {
            e && q(s), Se(a), (u = !1), c();
          },
        }
      );
    }
    function Lt(e, s, a) {
      let t;
      i(e, ys, (e) => a(1, (t = e)));
      let { wordNumber: o } = s;
      const r = Z("toaster");
      return (
        (e.$$set = (e) => {
          "wordNumber" in e && a(0, (o = e.wordNumber));
        }),
        [
          o,
          t,
          function () {
            r.pop("Copied"), navigator.clipboard.writeText(`${window.location.href}/${o}`);
          },
        ]
      );
    }
    class Tt extends _e {
      constructor(e) {
        super(), Ne(this, e, Lt, _t, n, { wordNumber: 0 });
      }
    }
    function Ot(s) {
      let a, t, o, r, n, i;
      return {
        c() {
          (a = S("section")), (t = S("div")), (o = N(s[0])), (r = _()), (n = S("div")), (i = N(s[1])), H(t, "class", "stat svelte-dvu5v6"), H(n, "class", "name svelte-dvu5v6"), H(a, "class", "svelte-dvu5v6");
        },
        m(e, s) {
          j(e, a, s), $(a, t), $(t, o), $(a, r), $(a, n), $(n, i);
        },
        p(e, [s]) {
          1 & s && E(o, e[0]), 2 & s && E(i, e[1]);
        },
        i: e,
        o: e,
        d(e) {
          e && q(a);
        },
      };
    }
    function At(e, s, a) {
      let { stat: t } = s,
        { name: o } = s;
      return (
        (e.$$set = (e) => {
          "stat" in e && a(0, (t = e.stat)), "name" in e && a(1, (o = e.name));
        }),
        [t, o]
      );
    }
    class Ht extends _e {
      constructor(e) {
        super(), Ne(this, e, At, Ot, n, { stat: 0, name: 1 });
      }
    }
    function Et(e, s, a) {
      const t = e.slice();
      return (t[3] = s[a]), t;
    }
    function It(e) {
      let s, a;
      return (
        (s = new Ht({ props: { name: e[3][0], stat: e[3][1] } })),
        {
          c() {
            qe(s.$$.fragment);
          },
          m(e, t) {
            Ce(s, e, t), (a = !0);
          },
          p(e, a) {
            const t = {};
            1 & a && (t.name = e[3][0]), 1 & a && (t.stat = e[3][1]), s.$set(t);
          },
          i(e) {
            a || (ke(s.$$.fragment, e), (a = !0));
          },
          o(e) {
            we(s.$$.fragment, e), (a = !1);
          },
          d(e) {
            Se(s, e);
          },
        }
      );
    }
    function Dt(e) {
      let s,
        a,
        t,
        o,
        r,
        n,
        i,
        l = as.modes[e[1]].name + "",
        u = e[0],
        c = [];
      for (let s = 0; s < u.length; s += 1) c[s] = It(Et(e, u, s));
      const d = (e) =>
        we(c[e], 1, 1, () => {
          c[e] = null;
        });
      return {
        c() {
          (s = S("h3")), (a = N("Statistics (")), (t = N(l)), (o = N(")")), (r = _()), (n = S("div"));
          for (let e = 0; e < c.length; e += 1) c[e].c();
          H(n, "class", "svelte-ljn64v");
        },
        m(e, l) {
          j(e, s, l), $(s, a), $(s, t), $(s, o), j(e, r, l), j(e, n, l);
          for (let e = 0; e < c.length; e += 1) c[e].m(n, null);
          i = !0;
        },
        p(e, [s]) {
          if (((!i || 2 & s) && l !== (l = as.modes[e[1]].name + "") && E(t, l), 1 & s)) {
            let a;
            for (u = e[0], a = 0; a < u.length; a += 1) {
              const t = Et(e, u, a);
              c[a] ? (c[a].p(t, s), ke(c[a], 1)) : ((c[a] = It(t)), c[a].c(), ke(c[a], 1), c[a].m(n, null));
            }
            for (fe(), a = u.length; a < c.length; a += 1) d(a);
            be();
          }
        },
        i(e) {
          if (!i) {
            for (let e = 0; e < u.length; e += 1) ke(c[e]);
            i = !0;
          }
        },
        o(e) {
          c = c.filter(Boolean);
          for (let e = 0; e < c.length; e += 1) we(c[e]);
          i = !1;
        },
        d(e) {
          e && q(s), e && q(r), e && q(n), C(c, e);
        },
      };
    }
    function Bt(e, s, a) {
      let t;
      i(e, ys, (e) => a(1, (t = e)));
      let o,
        { data: r } = s;
      return (
        (e.$$set = (e) => {
          "data" in e && a(2, (r = e.data));
        }),
        (e.$$.update = () => {
          5 & e.$$.dirty &&
            (a(
              0,
              (o = [
                ["Played", r.played],
                ["Win %", Math.round(((r.played - r.guesses.fail) / r.played) * 100) || 0],
                ["Average Guesses", (Object.entries(r.guesses).reduce((e, s) => (isNaN(parseInt(s[0])) ? e : e + parseInt(s[0]) * s[1]), 0) / r.played || 0).toFixed(1)],
              ])
            ),
            r.guesses.fail > 0 && o.push(["Lost", r.guesses.fail]),
            "streak" in r && (o.push(["Current Streak", r.streak]), o.push(["Max Streak", r.maxStreak])));
        }),
        [o, t, r]
      );
    }
    class Rt extends _e {
      constructor(e) {
        super(), Ne(this, e, Bt, Dt, n, { data: 2 });
      }
    }
    function Wt(e, s, a) {
      const t = e.slice();
      return (t[4] = s[a]), (t[6] = a), t;
    }
    function Gt(e) {
      let s,
        a,
        t,
        o,
        r,
        n,
        i,
        l = e[4][0] + "",
        u = e[4][1] + "";
      return {
        c() {
          (s = S("div")),
            (a = S("span")),
            (t = N(l)),
            (o = _()),
            (r = S("div")),
            (n = N(u)),
            (i = _()),
            H(a, "class", "guess svelte-1oddrjt"),
            H(r, "class", "bar svelte-1oddrjt"),
            I(r, "width", (e[4][1] / e[3]) * 100 + "%"),
            B(r, "this", parseInt(e[4][0]) === e[0] && !e[2]),
            H(s, "class", "graph svelte-1oddrjt");
        },
        m(e, l) {
          j(e, s, l), $(s, a), $(a, t), $(s, o), $(s, r), $(r, n), $(s, i);
        },
        p(e, s) {
          2 & s && l !== (l = e[4][0] + "") && E(t, l), 2 & s && u !== (u = e[4][1] + "") && E(n, u), 10 & s && I(r, "width", (e[4][1] / e[3]) * 100 + "%"), 7 & s && B(r, "this", parseInt(e[4][0]) === e[0] && !e[2]);
        },
        d(e) {
          e && q(s);
        },
      };
    }
    function Pt(e, s) {
      let a,
        t,
        o = !isNaN(parseInt(s[4][0])),
        r = o && Gt(s);
      return {
        key: e,
        first: null,
        c() {
          (a = L()), r && r.c(), (t = L()), (this.first = a);
        },
        m(e, s) {
          j(e, a, s), r && r.m(e, s), j(e, t, s);
        },
        p(e, a) {
          (s = e), 2 & a && (o = !isNaN(parseInt(s[4][0]))), o ? (r ? r.p(s, a) : ((r = Gt(s)), r.c(), r.m(t.parentNode, t))) : r && (r.d(1), (r = null));
        },
        d(e) {
          e && q(a), r && r.d(e), e && q(t);
        },
      };
    }
    function Jt(s) {
      let a,
        t,
        o,
        r = [],
        n = new Map(),
        i = Object.entries(s[1]);
      const l = (e) => e[4][0];
      for (let e = 0; e < i.length; e += 1) {
        let a = Wt(s, i, e),
          t = l(a);
        n.set(t, (r[e] = Pt(t, a)));
      }
      return {
        c() {
          (a = S("h3")), (a.textContent = "guess distribution"), (t = _()), (o = S("div"));
          for (let e = 0; e < r.length; e += 1) r[e].c();
          H(o, "class", "container svelte-1oddrjt");
        },
        m(e, s) {
          j(e, a, s), j(e, t, s), j(e, o, s);
          for (let e = 0; e < r.length; e += 1) r[e].m(o, null);
        },
        p(e, [s]) {
          15 & s &&
            ((i = Object.entries(e[1])),
            (r = (function (e, s, a, t, o, r, n, i, l, u, c, d) {
              let p = e.length,
                m = r.length,
                h = p;
              const y = {};
              for (; h--; ) y[e[h].key] = h;
              const g = [],
                f = new Map(),
                b = new Map();
              for (h = m; h--; ) {
                const e = d(o, r, h),
                  i = a(e);
                let l = n.get(i);
                l ? t && l.p(e, s) : ((l = u(i, e)), l.c()), f.set(i, (g[h] = l)), i in y && b.set(i, Math.abs(h - y[i]));
              }
              const k = new Set(),
                w = new Set();
              function v(e) {
                ke(e, 1), e.m(i, c), n.set(e.key, e), (c = e.first), m--;
              }
              for (; p && m; ) {
                const s = g[m - 1],
                  a = e[p - 1],
                  t = s.key,
                  o = a.key;
                s === a ? ((c = s.first), p--, m--) : f.has(o) ? (!n.has(t) || k.has(t) ? v(s) : w.has(o) ? p-- : b.get(t) > b.get(o) ? (w.add(t), v(s)) : (k.add(o), p--)) : (l(a, n), p--);
              }
              for (; p--; ) {
                const s = e[p];
                f.has(s.key) || l(s, n);
              }
              for (; m; ) v(g[m - 1]);
              return g;
            })(r, s, l, 1, e, i, n, o, ze, Pt, null, Wt)));
        },
        i: e,
        o: e,
        d(e) {
          e && q(a), e && q(t), e && q(o);
          for (let e = 0; e < r.length; e += 1) r[e].d();
        },
      };
    }
    function Ut(e, s, a) {
      let t,
        { guesses: o = 0 } = s,
        { distribution: r } = s,
        { active: n } = s;
      return (
        (e.$$set = (e) => {
          "guesses" in e && a(0, (o = e.guesses)), "distribution" in e && a(1, (r = e.distribution)), "active" in e && a(2, (n = e.active));
        }),
        (e.$$.update = () => {
          2 & e.$$.dirty && a(3, (t = Math.max(...Object.values(r))));
        }),
        [o, r, n, t]
      );
    }
    class Ft extends _e {
      constructor(e) {
        super(), Ne(this, e, Ut, Jt, n, { guesses: 0, distribution: 1, active: 2 });
      }
    }
    function Vt(e) {
      let s, a;
      return (
        (s = new mt({ props: { visible: e[7] } })),
        {
          c() {
            qe(s.$$.fragment);
          },
          m(e, t) {
            Ce(s, e, t), (a = !0);
          },
          p(e, a) {
            const t = {};
            128 & a[0] && (t.visible = e[7]), s.$set(t);
          },
          i(e) {
            a || (ke(s.$$.fragment, e), (a = !0));
          },
          o(e) {
            we(s.$$.fragment, e), (a = !1);
          },
          d(e) {
            Se(s, e);
          },
        }
      );
    }
    function Xt(e) {
      let s, a, t, o;
      return (
        (s = new Rt({ props: { data: e[1] } })),
        (t = new Ft({ props: { distribution: e[1].guesses, guesses: e[2].guesses, active: e[2].active } })),
        {
          c() {
            qe(s.$$.fragment), (a = _()), qe(t.$$.fragment);
          },
          m(e, r) {
            Ce(s, e, r), j(e, a, r), Ce(t, e, r), (o = !0);
          },
          p(e, a) {
            const o = {};
            2 & a[0] && (o.data = e[1]), s.$set(o);
            const r = {};
            2 & a[0] && (r.distribution = e[1].guesses), 4 & a[0] && (r.guesses = e[2].guesses), 4 & a[0] && (r.active = e[2].active), t.$set(r);
          },
          i(e) {
            o || (ke(s.$$.fragment, e), ke(t.$$.fragment, e), (o = !0));
          },
          o(e) {
            we(s.$$.fragment, e), we(t.$$.fragment, e), (o = !1);
          },
          d(e) {
            Se(s, e), e && q(a), Se(t, e);
          },
        }
      );
    }
    function Yt(s) {
      let a;
      return {
        c() {
          (a = S("h2")), (a.textContent = "Statistics not available for historical games"), H(a, "class", "historical svelte-1ixvu6x");
        },
        m(e, s) {
          j(e, a, s);
        },
        p: e,
        i: e,
        o: e,
        d(e) {
          e && q(a);
        },
      };
    }
    function Kt(e) {
      let s, a;
      return (
        (s = new vt({ props: { slot: "1" } })),
        e[32](s),
        s.$on("timeup", e[33]),
        s.$on("reload", e[18]),
        {
          c() {
            qe(s.$$.fragment);
          },
          m(e, t) {
            Ce(s, e, t), (a = !0);
          },
          p(e, a) {
            s.$set({});
          },
          i(e) {
            a || (ke(s.$$.fragment, e), (a = !0));
          },
          o(e) {
            we(s.$$.fragment, e), (a = !1);
          },
          d(a) {
            e[32](null), Se(s, a);
          },
        }
      );
    }
    function Qt(e) {
      let s, a;
      return (
        (s = new ct({ props: { slot: "2", state: e[2] } })),
        {
          c() {
            qe(s.$$.fragment);
          },
          m(e, t) {
            Ce(s, e, t), (a = !0);
          },
          p(e, a) {
            const t = {};
            4 & a[0] && (t.state = e[2]), s.$set(t);
          },
          i(e) {
            a || (ke(s.$$.fragment, e), (a = !0));
          },
          o(e) {
            we(s.$$.fragment, e), (a = !1);
          },
          d(e) {
            Se(s, e);
          },
        }
      );
    }
    function Zt(e) {
      let s, a;
      return (
        (s = new Fs({ props: { word: e[0], alternates: 2 } })),
        {
          c() {
            qe(s.$$.fragment);
          },
          m(e, t) {
            Ce(s, e, t), (a = !0);
          },
          p(e, a) {
            const t = {};
            1 & a[0] && (t.word = e[0]), s.$set(t);
          },
          i(e) {
            a || (ke(s.$$.fragment, e), (a = !0));
          },
          o(e) {
            we(s.$$.fragment, e), (a = !1);
          },
          d(e) {
            Se(s, e);
          },
        }
      );
    }
    function eo(e) {
      let s, a, t, o, r, n, i, l, u;
      const c = [Yt, Xt],
        d = [];
      function p(e, s) {
        return e[6].modes[e[13]].historical ? 0 : 1;
      }
      (s = p(e)), (a = d[s] = c[s](e)), (o = new it({ props: { visible: !e[2].active, $$slots: { 2: [Qt], 1: [Kt] }, $$scope: { ctx: e } } })), (n = new Tt({ props: { wordNumber: e[2].wordNumber } }));
      let m = !e[2].active && Zt(e);
      return {
        c() {
          a.c(), (t = _()), qe(o.$$.fragment), (r = _()), qe(n.$$.fragment), (i = _()), m && m.c(), (l = L());
        },
        m(e, a) {
          d[s].m(e, a), j(e, t, a), Ce(o, e, a), j(e, r, a), Ce(n, e, a), j(e, i, a), m && m.m(e, a), j(e, l, a), (u = !0);
        },
        p(e, r) {
          let i = s;
          (s = p(e)),
            s === i
              ? d[s].p(e, r)
              : (fe(),
                we(d[i], 1, 1, () => {
                  d[i] = null;
                }),
                be(),
                (a = d[s]),
                a ? a.p(e, r) : ((a = d[s] = c[s](e)), a.c()),
                ke(a, 1),
                a.m(t.parentNode, t));
          const u = {};
          4 & r[0] && (u.visible = !e[2].active), (2564 & r[0]) | (2048 & r[1]) && (u.$$scope = { dirty: r, ctx: e }), o.$set(u);
          const h = {};
          4 & r[0] && (h.wordNumber = e[2].wordNumber),
            n.$set(h),
            e[2].active
              ? m &&
                (fe(),
                we(m, 1, 1, () => {
                  m = null;
                }),
                be())
              : m
              ? (m.p(e, r), 4 & r[0] && ke(m, 1))
              : ((m = Zt(e)), m.c(), ke(m, 1), m.m(l.parentNode, l));
        },
        i(e) {
          u || (ke(a), ke(o.$$.fragment, e), ke(n.$$.fragment, e), ke(m), (u = !0));
        },
        o(e) {
          we(a), we(o.$$.fragment, e), we(n.$$.fragment, e), we(m), (u = !1);
        },
        d(e) {
          d[s].d(e), e && q(t), Se(o, e), e && q(r), Se(n, e), e && q(i), m && m.d(e), e && q(l);
        },
      };
    }
    function so(s) {
      let a, t, o;
      return {
        c() {
          (a = S("div")), (a.textContent = "give up"), H(a, "class", "concede svelte-1ixvu6x");
        },
        m(e, r) {
          j(e, a, r), t || ((o = T(a, "click", s[17])), (t = !0));
        },
        p: e,
        d(e) {
          e && q(a), (t = !1), o();
        },
      };
    }
    function ao(e) {
      let s, a, t, o, r;
      s = new et({ props: { state: e[2] } });
      let n = e[2].active && so(e),
        i = { index: e[12] };
      return (
        (o = new Mt({ props: i })),
        e[36](o),
        {
          c() {
            qe(s.$$.fragment), (a = _()), n && n.c(), (t = _()), qe(o.$$.fragment);
          },
          m(e, i) {
            Ce(s, e, i), j(e, a, i), n && n.m(e, i), j(e, t, i), Ce(o, e, i), (r = !0);
          },
          p(e, a) {
            const r = {};
            4 & a[0] && (r.state = e[2]), s.$set(r), e[2].active ? (n ? n.p(e, a) : ((n = so(e)), n.c(), n.m(t.parentNode, t))) : n && (n.d(1), (n = null));
            const i = {};
            4096 & a[0] && (i.index = e[12]), o.$set(i);
          },
          i(e) {
            r || (ke(s.$$.fragment, e), ke(o.$$.fragment, e), (r = !0));
          },
          o(e) {
            we(s.$$.fragment, e), we(o.$$.fragment, e), (r = !1);
          },
          d(r) {
            Se(s, r), r && q(a), n && n.d(r), r && q(t), e[36](null), Se(o, r);
          },
        }
      );
    }
    function to(e) {
      let s,
        a,
        t,
        o,
        r,
        n,
        i,
        l,
        u,
        c,
        d,
        p,
        m = e[6].modes[e[13]].name + "",
        h = e[2].wordNumber + "";
      return {
        c() {
          (s = S("div")),
            (a = S("a")),
            (a.textContent = "Original Wordle"),
            (t = _()),
            (o = S("div")),
            (r = S("div")),
            (r.textContent = `v${e[15]}`),
            (n = _()),
            (i = S("div")),
            (l = N(m)),
            (u = N(" word #")),
            (c = N(h)),
            H(a, "href", "https://www.powerlanguage.co.uk/wordle/"),
            H(a, "target", "_blank"),
            H(i, "title", "double click to reset your stats"),
            H(i, "class", "word"),
            H(s, "slot", "footer");
        },
        m(m, h) {
          j(m, s, h), $(s, a), $(s, t), $(s, o), $(o, r), $(o, n), $(o, i), $(i, l), $(i, u), $(i, c), d || ((p = T(i, "dblclick", e[35])), (d = !0));
        },
        p(e, s) {
          8256 & s[0] && m !== (m = e[6].modes[e[13]].name + "") && E(l, m), 4 & s[0] && h !== (h = e[2].wordNumber + "") && E(c, h);
        },
        d(e) {
          e && q(s), (d = !1), p();
        },
      };
    }
    function oo(e) {
      let s, a, t, n, i, l, u, c, d, p, h, y, g, f, b, k, w, v, x, z, C, M;
      function N(s) {
        e[19](s);
      }
      let L = { tutorial: 2 === e[14].tutorial, showStats: e[1].played > 0 || (e[6].modes[e[13]].historical && !e[2].active) };
      function O(s) {
        e[25](s);
      }
      void 0 !== e[9] && (L.showRefresh = e[9]),
        (t = new Ns({ props: L })),
        se.push(() => je(t, "showRefresh", N)),
        t.$on("closeTutPopUp", m(e[20])),
        t.$on("stats", e[21]),
        t.$on("tutorial", e[22]),
        t.$on("settings", e[23]),
        t.$on("reload", e[18]);
      let A = { tutorial: 1 === e[14].tutorial, board: e[2].board, guesses: e[2].guesses, icon: e[6].modes[e[13]].icon };
      function E(s) {
        e[27](s);
      }
      void 0 !== e[2].board.words && (A.value = e[2].board.words), (l = new na({ props: A })), e[24](l), se.push(() => je(l, "value", O)), l.$on("closeTutPopUp", m(e[26]));
      let D = { disabled: !e[2].active || 3 === e[14].tutorial };
      function R(s) {
        e[30](s);
      }
      void 0 !== e[2].board.words[6 === e[2].guesses ? 0 : e[2].guesses] && (D.value = e[2].board.words[6 === e[2].guesses ? 0 : e[2].guesses]),
        (d = new ka({ props: D })),
        se.push(() => je(d, "value", E)),
        d.$on("keystroke", e[28]),
        d.$on("submitWord", e[16]),
        d.$on("esc", e[29]);
      let W = { fullscreen: 0 === e[14].tutorial, $$slots: { default: [Vt] }, $$scope: { ctx: e } };
      function G(s) {
        e[34](s);
      }
      void 0 !== e[7] && (W.visible = e[7]), (y = new Sa({ props: W })), se.push(() => je(y, "visible", R)), y.$on("close", m(e[31]));
      let P = { $$slots: { default: [eo] }, $$scope: { ctx: e } };
      function J(s) {
        e[37](s);
      }
      void 0 !== e[8] && (P.visible = e[8]), (b = new Sa({ props: P })), se.push(() => je(b, "visible", G));
      let U = { fullscreen: !0, $$slots: { footer: [to], default: [ao] }, $$scope: { ctx: e } };
      return (
        void 0 !== e[4] && (U.visible = e[4]),
        (v = new Sa({ props: U })),
        se.push(() => je(v, "visible", J)),
        {
          c() {
            (s = _()),
              (a = S("main")),
              qe(t.$$.fragment),
              (i = _()),
              qe(l.$$.fragment),
              (c = _()),
              qe(d.$$.fragment),
              (h = _()),
              qe(y.$$.fragment),
              (f = _()),
              qe(b.$$.fragment),
              (w = _()),
              qe(v.$$.fragment),
              I(a, "--rows", 6),
              I(a, "--cols", 5),
              H(a, "class", "svelte-1ixvu6x"),
              B(a, "guesses", 0 !== e[2].guesses);
          },
          m(o, n) {
            j(o, s, n),
              j(o, a, n),
              Ce(t, a, null),
              $(a, i),
              Ce(l, a, null),
              $(a, c),
              Ce(d, a, null),
              j(o, h, n),
              Ce(y, o, n),
              j(o, f, n),
              Ce(b, o, n),
              j(o, w, n),
              Ce(v, o, n),
              (z = !0),
              C ||
                ((M = [
                  T(document.body, "click", function () {
                    r(e[10].hideCtx) && e[10].hideCtx.apply(this, arguments);
                  }),
                  T(document.body, "contextmenu", function () {
                    r(e[10].hideCtx) && e[10].hideCtx.apply(this, arguments);
                  }),
                ]),
                (C = !0));
          },
          p(s, o) {
            e = s;
            const r = {};
            16384 & o[0] && (r.tutorial = 2 === e[14].tutorial),
              8262 & o[0] && (r.showStats = e[1].played > 0 || (e[6].modes[e[13]].historical && !e[2].active)),
              !n && 512 & o[0] && ((n = !0), (r.showRefresh = e[9]), ie(() => (n = !1))),
              t.$set(r);
            const i = {};
            16384 & o[0] && (i.tutorial = 1 === e[14].tutorial),
              4 & o[0] && (i.board = e[2].board),
              4 & o[0] && (i.guesses = e[2].guesses),
              8256 & o[0] && (i.icon = e[6].modes[e[13]].icon),
              !u && 4 & o[0] && ((u = !0), (i.value = e[2].board.words), ie(() => (u = !1))),
              l.$set(i);
            const c = {};
            16388 & o[0] && (c.disabled = !e[2].active || 3 === e[14].tutorial),
              !p && 4 & o[0] && ((p = !0), (c.value = e[2].board.words[6 === e[2].guesses ? 0 : e[2].guesses]), ie(() => (p = !1))),
              d.$set(c),
              4 & o[0] && B(a, "guesses", 0 !== e[2].guesses);
            const m = {};
            16384 & o[0] && (m.fullscreen = 0 === e[14].tutorial), (128 & o[0]) | (2048 & o[1]) && (m.$$scope = { dirty: o, ctx: e }), !g && 128 & o[0] && ((g = !0), (m.visible = e[7]), ie(() => (g = !1))), y.$set(m);
            const h = {};
            (10823 & o[0]) | (2048 & o[1]) && (h.$$scope = { dirty: o, ctx: e }), !k && 256 & o[0] && ((k = !0), (h.visible = e[8]), ie(() => (k = !1))), b.$set(h);
            const f = {};
            (12396 & o[0]) | (2048 & o[1]) && (f.$$scope = { dirty: o, ctx: e }), !x && 16 & o[0] && ((x = !0), (f.visible = e[4]), ie(() => (x = !1))), v.$set(f);
          },
          i(e) {
            z || (ke(t.$$.fragment, e), ke(l.$$.fragment, e), ke(d.$$.fragment, e), ke(y.$$.fragment, e), ke(b.$$.fragment, e), ke(v.$$.fragment, e), (z = !0));
          },
          o(e) {
            we(t.$$.fragment, e), we(l.$$.fragment, e), we(d.$$.fragment, e), we(y.$$.fragment, e), we(b.$$.fragment, e), we(v.$$.fragment, e), (z = !1);
          },
          d(r) {
            r && q(s), r && q(a), Se(t), e[24](null), Se(l), Se(d), r && q(h), Se(y, r), r && q(f), Se(b, r), r && q(w), Se(v, r), (C = !1), o(M);
          },
        }
      );
    }
    function ro(e, s, a) {
      let t, o, r;
      i(e, ys, (e) => a(13, (t = e))), i(e, gs, (e) => a(38, (o = e))), i(e, fs, (e) => a(14, (r = e)));
      let { word: n } = s,
        { stats: l } = s,
        { game: u } = s,
        { toaster: c } = s;
      Q("toaster", c);
      const d = Z("version"),
        p = 2e3;
      let m,
        h,
        g,
        f = 3 === r.tutorial,
        b = !1,
        k = !1,
        w = !1,
        v = 0;
      function $() {
        a(2, (u.active = !1), u),
          setTimeout(() => a(8, (k = !0)), p),
          as.modes[t].historical || (a(1, ++l.guesses.fail, l), a(1, ++l.played, l), "streak" in l && a(1, (l.streak = 0), l), a(1, (l.lastGame = as.modes[t].seed), l), localStorage.setItem(`stats-${t}`, JSON.stringify(l)));
      }
      X(() => {
        u.active || setTimeout(() => a(8, (k = !0)), p);
      });
      return (
        (e.$$set = (e) => {
          "word" in e && a(0, (n = e.word)), "stats" in e && a(1, (l = e.stats)), "game" in e && a(2, (u = e.game)), "toaster" in e && a(3, (c = e.toaster));
        }),
        (e.$$.update = () => {
          48 & e.$$.dirty[0] && b && g && a(12, (v = Math.floor(g.length * Math.random())));
        }),
        [
          n,
          l,
          u,
          c,
          b,
          g,
          as,
          f,
          k,
          w,
          m,
          h,
          v,
          t,
          r,
          d,
          function () {
            if (5 !== u.board.words[u.guesses].length) c.pop("Not enough letters"), m.shake(u.guesses);
            else if (Ye.contains(u.board.words[u.guesses])) {
              if (u.guesses > 0) {
                const e = (function (e, s) {
                  for (let a = 0; a < 5; ++a) if ("🟩" === e.state[s - 1][a] && e.words[s - 1][a] !== e.words[s][a]) return { pos: a, char: e.words[s - 1][a], type: "🟩" };
                  for (let a = 0; a < 5; ++a) if ("🟨" === e.state[s - 1][a] && !e.words[s].includes(e.words[s - 1][a])) return { pos: a, char: e.words[s - 1][a], type: "🟨" };
                  return { pos: -1, char: "", type: "⬛" };
                })(u.board, u.guesses);
                if (r.hard[t]) {
                  if ("🟩" === e.type)
                    return (
                      c.pop(
                        `${(function (e) {
                          switch (e % 10) {
                            case 1:
                              return `${e}st`;
                            case 2:
                              return `${e}nd`;
                            case 3:
                              return `${e}rd`;
                            default:
                              return `${e}th`;
                          }
                        })(e.pos + 1)} letter must be ${e.char.toUpperCase()}`
                      ),
                      void m.shake(u.guesses)
                    );
                  if ("🟨" === e.type) return c.pop(`Guess must contain ${e.char.toUpperCase()}`), void m.shake(u.guesses);
                } else "⬛" !== e.type && a(2, (u.validHard = !1), u);
              }
              const e = (function (e, s) {
                const a = e.split(""),
                  t = Array(5).fill("⬛");
                for (let o = 0; o < e.length; ++o) a[o] === s.charAt(o) && ((t[o] = "🟩"), (a[o] = "$"));
                for (let o = 0; o < e.length; ++o) {
                  const e = a.indexOf(s[o]);
                  "🟩" !== t[o] && e >= 0 && ((a[e] = "$"), (t[o] = "🟨"));
                }
                return t;
              })(n, u.board.words[u.guesses]);
              a(2, (u.board.state[u.guesses] = e), u),
                e.forEach((e, s) => {
                  ("🔳" !== o[u.board.words[u.guesses][s]] && "🟩" !== e) || y(gs, (o[u.board.words[u.guesses][s]] = e), o);
                }),
                a(2, ++u.guesses, u),
                u.board.words[u.guesses - 1] === n
                  ? (m.bounce(u.guesses - 1),
                    a(2, (u.active = !1), u),
                    setTimeout(() => c.pop(ns[u.guesses - 1]), 1200),
                    setTimeout(() => a(8, (k = !0)), 2800),
                    as.modes[t].historical ||
                      (a(1, ++l.guesses[u.guesses], l),
                      a(1, ++l.played, l),
                      "streak" in l && (a(1, (l.streak = as.modes[t].seed - l.lastGame > as.modes[t].unit ? 1 : l.streak + 1), l), l.streak > l.maxStreak && a(1, (l.maxStreak = l.streak), l)),
                      a(1, (l.lastGame = as.modes[t].seed), l),
                      localStorage.setItem(`stats-${t}`, JSON.stringify(l))))
                  : 6 === u.guesses && $();
            } else c.pop("Not in word list"), m.shake(u.guesses);
          },
          function () {
            a(4, (b = !1)), setTimeout(() => a(8, (k = !0)), rs), $();
          },
          function () {
            a(6, (as.modes[t].historical = !1), as),
              a(6, (as.modes[t].seed = ss(t)), as),
              a(2, (u = is(t))),
              a(0, (n = Ye.words[os(0, Ye.words.length, as.modes[t].seed)])),
              y(
                gs,
                (o = {
                  a: "🔳",
                  b: "🔳",
                  c: "🔳",
                  d: "🔳",
                  e: "🔳",
                  f: "🔳",
                  g: "🔳",
                  h: "🔳",
                  i: "🔳",
                  j: "🔳",
                  k: "🔳",
                  l: "🔳",
                  m: "🔳",
                  n: "🔳",
                  o: "🔳",
                  p: "🔳",
                  q: "🔳",
                  r: "🔳",
                  s: "🔳",
                  t: "🔳",
                  u: "🔳",
                  v: "🔳",
                  w: "🔳",
                  x: "🔳",
                  y: "🔳",
                  z: "🔳",
                }),
                o
              ),
              a(8, (k = !1)),
              a(9, (w = !1)),
              h.reset(t);
          },
          function (e) {
            (w = e), a(9, w);
          },
          () => y(fs, (r.tutorial = 1), r),
          () => a(8, (k = !0)),
          () => a(7, (f = !0)),
          () => a(4, (b = !0)),
          function (e) {
            se[e ? "unshift" : "push"](() => {
              (m = e), a(10, m);
            });
          },
          function (s) {
            e.$$.not_equal(u.board.words, s) && ((u.board.words = s), a(2, u));
          },
          () => y(fs, (r.tutorial = 0), r),
          function (s) {
            e.$$.not_equal(u.board.words[6 === u.guesses ? 0 : u.guesses], s) && ((u.board.words[6 === u.guesses ? 0 : u.guesses] = s), a(2, u));
          },
          () => {
            r.tutorial && y(fs, (r.tutorial = 0), r), m.hideCtx();
          },
          () => {
            a(7, (f = !1)), a(8, (k = !1)), a(4, (b = !1));
          },
          function (e) {
            (f = e), a(7, f);
          },
          () => 3 === r.tutorial && y(fs, --r.tutorial, r),
          function (e) {
            se[e ? "unshift" : "push"](() => {
              (h = e), a(11, h);
            });
          },
          () => a(9, (w = !0)),
          function (e) {
            (k = e), a(8, k);
          },
          () => {
            localStorage.clear(), c.pop("localStorage cleared");
          },
          function (e) {
            se[e ? "unshift" : "push"](() => {
              (g = e), a(5, g);
            });
          },
          function (e) {
            (b = e), a(4, b);
          },
        ]
      );
    }
    class no extends _e {
      constructor(e) {
        super(), Ne(this, e, ro, oo, n, { word: 0, stats: 1, game: 2, toaster: 3 }, null, [-1, -1]);
      }
    }
    function io(e) {
      let s, a, t;
      function o(s) {
        e[6](s);
      }
      let r = { stats: e[1], word: e[2], toaster: e[3] };
      return (
        void 0 !== e[0] && (r.game = e[0]),
        (s = new no({ props: r })),
        se.push(() => je(s, "game", o)),
        {
          c() {
            qe(s.$$.fragment);
          },
          m(e, a) {
            Ce(s, e, a), (t = !0);
          },
          p(e, t) {
            const o = {};
            2 & t && (o.stats = e[1]), 4 & t && (o.word = e[2]), 8 & t && (o.toaster = e[3]), !a && 1 & t && ((a = !0), (o.game = e[0]), ie(() => (a = !1))), s.$set(o);
          },
          i(e) {
            t || (ke(s.$$.fragment, e), (t = !0));
          },
          o(e) {
            we(s.$$.fragment, e), (t = !1);
          },
          d(e) {
            Se(s, e);
          },
        }
      );
    }
    function lo(e) {
      let s, a, t, o;
      (s = new qt({ props: {} })), e[5](s);
      let r = e[3] && io(e);
      return {
        c() {
          qe(s.$$.fragment), (a = _()), r && r.c(), (t = L());
        },
        m(e, n) {
          Ce(s, e, n), j(e, a, n), r && r.m(e, n), j(e, t, n), (o = !0);
        },
        p(e, [a]) {
          s.$set({}),
            e[3]
              ? r
                ? (r.p(e, a), 8 & a && ke(r, 1))
                : ((r = io(e)), r.c(), ke(r, 1), r.m(t.parentNode, t))
              : r &&
                (fe(),
                we(r, 1, 1, () => {
                  r = null;
                }),
                be());
        },
        i(e) {
          o || (ke(s.$$.fragment, e), ke(r), (o = !0));
        },
        o(e) {
          we(s.$$.fragment, e), we(r), (o = !1);
        },
        d(o) {
          e[5](null), Se(s, o), o && q(a), r && r.d(o), o && q(t);
        },
      };
    }
    function uo(e, s, a) {
      let t;
      i(e, ys, (e) => a(8, (t = e)));
      let o,
        r,
        n,
        { version: l } = s;
      Q("version", l), localStorage.setItem("version", l), fs.set(JSON.parse(localStorage.getItem("settings")) || ls()), fs.subscribe((e) => localStorage.setItem("settings", JSON.stringify(e)));
      const u = window.location.hash.slice(1).split("/"),
        c = isNaN(Fe[u[0]]) ? parseInt(localStorage.getItem("mode")) || as.default : Fe[u[0]];
      let d;
      return (
        ys.set(c),
        !isNaN(parseInt(u[1])) && parseInt(u[1]) < ts(c) && ((as.modes[c].seed = (parseInt(u[1]) - 1) * as.modes[c].unit + as.modes[c].start), (as.modes[c].historical = !0)),
        ys.subscribe((e) => {
          let s;
          localStorage.setItem("mode", `${e}`),
            (window.location.hash = Fe[e]),
            a(
              1,
              (o =
                JSON.parse(localStorage.getItem(`stats-${e}`)) ||
                (function (e) {
                  const s = { played: 0, lastGame: 0, guesses: { fail: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0 } };
                  return as.modes[e].streak ? Object.assign(Object.assign({}, s), { streak: 0, maxStreak: 0 }) : s;
                })(e))
            ),
            a(2, (r = Ye.words[os(0, Ye.words.length, as.modes[e].seed)])),
            !0 === as.modes[e].historical
              ? ((s = JSON.parse(localStorage.getItem(`state-${e}-h`))), s && s.wordNumber === ts(e) ? a(0, (n = s)) : a(0, (n = is(e))))
              : ((s = JSON.parse(localStorage.getItem(`state-${e}`))), !s || as.modes[e].seed - s.time >= as.modes[e].unit ? a(0, (n = is(e))) : (s.wordNumber || (s.wordNumber = ts(e)), a(0, (n = s))));
          const t = {
            a: "🔳",
            b: "🔳",
            c: "🔳",
            d: "🔳",
            e: "🔳",
            f: "🔳",
            g: "🔳",
            h: "🔳",
            i: "🔳",
            j: "🔳",
            k: "🔳",
            l: "🔳",
            m: "🔳",
            n: "🔳",
            o: "🔳",
            p: "🔳",
            q: "🔳",
            r: "🔳",
            s: "🔳",
            t: "🔳",
            u: "🔳",
            v: "🔳",
            w: "🔳",
            x: "🔳",
            y: "🔳",
            z: "🔳",
          };
          for (let e = 0; e < 6; ++e) for (let s = 0; s < n.board.words[e].length; ++s) ("🔳" !== t[n.board.words[e][s]] && "🟩" !== n.board.state[e][s]) || (t[n.board.words[e][s]] = n.board.state[e][s]);
          gs.set(t);
        }),
        (e.$$set = (e) => {
          "version" in e && a(4, (l = e.version));
        }),
        (e.$$.update = () => {
          1 & e.$$.dirty &&
            (function (e) {
              as.modes[t].historical ? localStorage.setItem(`state-${t}-h`, JSON.stringify(e)) : localStorage.setItem(`state-${t}`, JSON.stringify(e));
            })(n);
        }),
        [
          n,
          o,
          r,
          d,
          l,
          function (e) {
            se[e ? "unshift" : "push"](() => {
              (d = e), a(3, d);
            });
          },
          function (e) {
            (n = e), a(0, n);
          },
        ]
      );
    }
    return new (class extends _e {
      constructor(e) {
        super(), Ne(this, e, uo, lo, n, { version: 4 });
      }
    })(
      //! IF ANYTHING IN THIS FILE IS CHANGED MAKE SURE setVersion.js HAS ALSO BEEN UPDATED
      { target: document.body, props: { version: "1.2.3" } }
    );
  })();
  //# sourceMappingURL=bundle.js.map