import {
  __commonJS,
  __require
} from "./chunk-ELXAK55F.js";

// node_modules/p5/lib/p5.min.js
var require_p5_min = __commonJS({
  "node_modules/p5/lib/p5.min.js"(exports, module) {
    !function(e) {
      if (typeof exports == "object" && typeof module != "undefined")
        module.exports = e();
      else if (typeof define == "function" && define.amd)
        define([], e);
      else {
        (typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this).p5 = e();
      }
    }(function() {
      return function i(a, s, l) {
        function u(t, e2) {
          if (!s[t]) {
            if (!a[t]) {
              var r = typeof __require == "function" && __require;
              if (!e2 && r)
                return r(t, true);
              if (c)
                return c(t, true);
              var n = new Error("Cannot find module '" + t + "'");
              throw n.code = "MODULE_NOT_FOUND", n;
            }
            var o = s[t] = { exports: {} };
            a[t][0].call(o.exports, function(e3) {
              return u(a[t][1][e3] || e3);
            }, o, o.exports, i, a, s, l);
          }
          return s[t].exports;
        }
        for (var c = typeof __require == "function" && __require, e = 0; e < l.length; e++)
          u(l[e]);
        return u;
      }({ 1: [function(e, t, r) {
        "use strict";
        r.byteLength = function(e2) {
          var t2 = d(e2), r2 = t2[0], n2 = t2[1];
          return 3 * (r2 + n2) / 4 - n2;
        }, r.toByteArray = function(e2) {
          var t2, r2, n2 = d(e2), o2 = n2[0], i2 = n2[1], a = new c(function(e3, t3) {
            return 3 * (e3 + t3) / 4 - t3;
          }(o2, i2)), s2 = 0, l2 = 0 < i2 ? o2 - 4 : o2;
          for (r2 = 0; r2 < l2; r2 += 4)
            t2 = u[e2.charCodeAt(r2)] << 18 | u[e2.charCodeAt(r2 + 1)] << 12 | u[e2.charCodeAt(r2 + 2)] << 6 | u[e2.charCodeAt(r2 + 3)], a[s2++] = t2 >> 16 & 255, a[s2++] = t2 >> 8 & 255, a[s2++] = 255 & t2;
          i2 === 2 && (t2 = u[e2.charCodeAt(r2)] << 2 | u[e2.charCodeAt(r2 + 1)] >> 4, a[s2++] = 255 & t2);
          i2 === 1 && (t2 = u[e2.charCodeAt(r2)] << 10 | u[e2.charCodeAt(r2 + 1)] << 4 | u[e2.charCodeAt(r2 + 2)] >> 2, a[s2++] = t2 >> 8 & 255, a[s2++] = 255 & t2);
          return a;
        }, r.fromByteArray = function(e2) {
          for (var t2, r2 = e2.length, n2 = r2 % 3, o2 = [], i2 = 0, a = r2 - n2; i2 < a; i2 += 16383)
            o2.push(l(e2, i2, a < i2 + 16383 ? a : i2 + 16383));
          n2 == 1 ? (t2 = e2[r2 - 1], o2.push(s[t2 >> 2] + s[t2 << 4 & 63] + "==")) : n2 == 2 && (t2 = (e2[r2 - 2] << 8) + e2[r2 - 1], o2.push(s[t2 >> 10] + s[t2 >> 4 & 63] + s[t2 << 2 & 63] + "="));
          return o2.join("");
        };
        for (var s = [], u = [], c = typeof Uint8Array != "undefined" ? Uint8Array : Array, n = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", o = 0, i = n.length; o < i; ++o)
          s[o] = n[o], u[n.charCodeAt(o)] = o;
        function d(e2) {
          var t2 = e2.length;
          if (0 < t2 % 4)
            throw new Error("Invalid string. Length must be a multiple of 4");
          var r2 = e2.indexOf("=");
          return r2 === -1 && (r2 = t2), [r2, r2 === t2 ? 0 : 4 - r2 % 4];
        }
        function l(e2, t2, r2) {
          for (var n2, o2, i2 = [], a = t2; a < r2; a += 3)
            n2 = (e2[a] << 16 & 16711680) + (e2[a + 1] << 8 & 65280) + (255 & e2[a + 2]), i2.push(s[(o2 = n2) >> 18 & 63] + s[o2 >> 12 & 63] + s[o2 >> 6 & 63] + s[63 & o2]);
          return i2.join("");
        }
        u["-".charCodeAt(0)] = 62, u["_".charCodeAt(0)] = 63;
      }, {}], 2: [function(e, t, r) {
      }, {}], 3: [function(e, t, r) {
        arguments[4][2][0].apply(r, arguments);
      }, { dup: 2 }], 4: [function(U, e, N) {
        (function(d) {
          "use strict";
          var n = U("base64-js"), i = U("ieee754"), e2 = typeof Symbol == "function" && typeof Symbol.for == "function" ? Symbol.for("nodejs.util.inspect.custom") : null;
          N.Buffer = d, N.SlowBuffer = function(e3) {
            +e3 != e3 && (e3 = 0);
            return d.alloc(+e3);
          }, N.INSPECT_MAX_BYTES = 50;
          var r = 2147483647;
          function a(e3) {
            if (r < e3)
              throw new RangeError('The value "' + e3 + '" is invalid for option "size"');
            var t2 = new Uint8Array(e3);
            return Object.setPrototypeOf(t2, d.prototype), t2;
          }
          function d(e3, t2, r2) {
            if (typeof e3 != "number")
              return o(e3, t2, r2);
            if (typeof t2 == "string")
              throw new TypeError('The "string" argument must be of type string. Received type number');
            return l(e3);
          }
          function o(e3, t2, r2) {
            if (typeof e3 == "string")
              return function(e4, t3) {
                typeof t3 == "string" && t3 !== "" || (t3 = "utf8");
                if (!d.isEncoding(t3))
                  throw new TypeError("Unknown encoding: " + t3);
                var r3 = 0 | f(e4, t3), n3 = a(r3), o3 = n3.write(e4, t3);
                o3 !== r3 && (n3 = n3.slice(0, o3));
                return n3;
              }(e3, t2);
            if (ArrayBuffer.isView(e3))
              return u(e3);
            if (e3 == null)
              throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof e3);
            if (R(e3, ArrayBuffer) || e3 && R(e3.buffer, ArrayBuffer))
              return function(e4, t3, r3) {
                if (t3 < 0 || e4.byteLength < t3)
                  throw new RangeError('"offset" is outside of buffer bounds');
                if (e4.byteLength < t3 + (r3 || 0))
                  throw new RangeError('"length" is outside of buffer bounds');
                var n3;
                n3 = t3 === void 0 && r3 === void 0 ? new Uint8Array(e4) : r3 === void 0 ? new Uint8Array(e4, t3) : new Uint8Array(e4, t3, r3);
                return Object.setPrototypeOf(n3, d.prototype), n3;
              }(e3, t2, r2);
            if (typeof e3 == "number")
              throw new TypeError('The "value" argument must not be of type number. Received type number');
            var n2 = e3.valueOf && e3.valueOf();
            if (n2 != null && n2 !== e3)
              return d.from(n2, t2, r2);
            var o2 = function(e4) {
              if (d.isBuffer(e4)) {
                var t3 = 0 | c(e4.length), r3 = a(t3);
                return r3.length === 0 || e4.copy(r3, 0, 0, t3), r3;
              }
              if (e4.length !== void 0)
                return typeof e4.length != "number" || D(e4.length) ? a(0) : u(e4);
              if (e4.type === "Buffer" && Array.isArray(e4.data))
                return u(e4.data);
            }(e3);
            if (o2)
              return o2;
            if (typeof Symbol != "undefined" && Symbol.toPrimitive != null && typeof e3[Symbol.toPrimitive] == "function")
              return d.from(e3[Symbol.toPrimitive]("string"), t2, r2);
            throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof e3);
          }
          function s(e3) {
            if (typeof e3 != "number")
              throw new TypeError('"size" argument must be of type number');
            if (e3 < 0)
              throw new RangeError('The value "' + e3 + '" is invalid for option "size"');
          }
          function l(e3) {
            return s(e3), a(e3 < 0 ? 0 : 0 | c(e3));
          }
          function u(e3) {
            for (var t2 = e3.length < 0 ? 0 : 0 | c(e3.length), r2 = a(t2), n2 = 0; n2 < t2; n2 += 1)
              r2[n2] = 255 & e3[n2];
            return r2;
          }
          function c(e3) {
            if (r <= e3)
              throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + r.toString(16) + " bytes");
            return 0 | e3;
          }
          function f(e3, t2) {
            if (d.isBuffer(e3))
              return e3.length;
            if (ArrayBuffer.isView(e3) || R(e3, ArrayBuffer))
              return e3.byteLength;
            if (typeof e3 != "string")
              throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type ' + typeof e3);
            var r2 = e3.length, n2 = 2 < arguments.length && arguments[2] === true;
            if (!n2 && r2 === 0)
              return 0;
            for (var o2 = false; ; )
              switch (t2) {
                case "ascii":
                case "latin1":
                case "binary":
                  return r2;
                case "utf8":
                case "utf-8":
                  return P(e3).length;
                case "ucs2":
                case "ucs-2":
                case "utf16le":
                case "utf-16le":
                  return 2 * r2;
                case "hex":
                  return r2 >>> 1;
                case "base64":
                  return k(e3).length;
                default:
                  if (o2)
                    return n2 ? -1 : P(e3).length;
                  t2 = ("" + t2).toLowerCase(), o2 = true;
              }
          }
          function h(e3, t2, r2) {
            var n2 = e3[t2];
            e3[t2] = e3[r2], e3[r2] = n2;
          }
          function p(e3, t2, r2, n2, o2) {
            if (e3.length === 0)
              return -1;
            if (typeof r2 == "string" ? (n2 = r2, r2 = 0) : 2147483647 < r2 ? r2 = 2147483647 : r2 < -2147483648 && (r2 = -2147483648), D(r2 = +r2) && (r2 = o2 ? 0 : e3.length - 1), r2 < 0 && (r2 = e3.length + r2), r2 >= e3.length) {
              if (o2)
                return -1;
              r2 = e3.length - 1;
            } else if (r2 < 0) {
              if (!o2)
                return -1;
              r2 = 0;
            }
            if (typeof t2 == "string" && (t2 = d.from(t2, n2)), d.isBuffer(t2))
              return t2.length === 0 ? -1 : y(e3, t2, r2, n2, o2);
            if (typeof t2 == "number")
              return t2 &= 255, typeof Uint8Array.prototype.indexOf == "function" ? o2 ? Uint8Array.prototype.indexOf.call(e3, t2, r2) : Uint8Array.prototype.lastIndexOf.call(e3, t2, r2) : y(e3, [t2], r2, n2, o2);
            throw new TypeError("val must be string, number or Buffer");
          }
          function y(e3, t2, r2, n2, o2) {
            var i2, a2 = 1, s2 = e3.length, l2 = t2.length;
            if (n2 !== void 0 && ((n2 = String(n2).toLowerCase()) === "ucs2" || n2 === "ucs-2" || n2 === "utf16le" || n2 === "utf-16le")) {
              if (e3.length < 2 || t2.length < 2)
                return -1;
              s2 /= a2 = 2, l2 /= 2, r2 /= 2;
            }
            function u2(e4, t3) {
              return a2 === 1 ? e4[t3] : e4.readUInt16BE(t3 * a2);
            }
            if (o2) {
              var c2 = -1;
              for (i2 = r2; i2 < s2; i2++)
                if (u2(e3, i2) === u2(t2, c2 === -1 ? 0 : i2 - c2)) {
                  if (c2 === -1 && (c2 = i2), i2 - c2 + 1 === l2)
                    return c2 * a2;
                } else
                  c2 !== -1 && (i2 -= i2 - c2), c2 = -1;
            } else
              for (s2 < r2 + l2 && (r2 = s2 - l2), i2 = r2; 0 <= i2; i2--) {
                for (var d2 = true, f2 = 0; f2 < l2; f2++)
                  if (u2(e3, i2 + f2) !== u2(t2, f2)) {
                    d2 = false;
                    break;
                  }
                if (d2)
                  return i2;
              }
            return -1;
          }
          function m(e3, t2, r2, n2) {
            r2 = Number(r2) || 0;
            var o2 = e3.length - r2;
            n2 ? o2 < (n2 = Number(n2)) && (n2 = o2) : n2 = o2;
            var i2 = t2.length;
            i2 / 2 < n2 && (n2 = i2 / 2);
            for (var a2 = 0; a2 < n2; ++a2) {
              var s2 = parseInt(t2.substr(2 * a2, 2), 16);
              if (D(s2))
                return a2;
              e3[r2 + a2] = s2;
            }
            return a2;
          }
          function g(e3, t2, r2, n2) {
            return A(function(e4) {
              for (var t3 = [], r3 = 0; r3 < e4.length; ++r3)
                t3.push(255 & e4.charCodeAt(r3));
              return t3;
            }(t2), e3, r2, n2);
          }
          function v(e3, t2, r2, n2) {
            return A(function(e4, t3) {
              for (var r3, n3, o2, i2 = [], a2 = 0; a2 < e4.length && !((t3 -= 2) < 0); ++a2)
                r3 = e4.charCodeAt(a2), n3 = r3 >> 8, o2 = r3 % 256, i2.push(o2), i2.push(n3);
              return i2;
            }(t2, e3.length - r2), e3, r2, n2);
          }
          function b(e3, t2, r2) {
            return t2 === 0 && r2 === e3.length ? n.fromByteArray(e3) : n.fromByteArray(e3.slice(t2, r2));
          }
          function _(e3, t2, r2) {
            r2 = Math.min(e3.length, r2);
            for (var n2 = [], o2 = t2; o2 < r2; ) {
              var i2, a2, s2, l2, u2 = e3[o2], c2 = null, d2 = 239 < u2 ? 4 : 223 < u2 ? 3 : 191 < u2 ? 2 : 1;
              if (o2 + d2 <= r2)
                switch (d2) {
                  case 1:
                    u2 < 128 && (c2 = u2);
                    break;
                  case 2:
                    (192 & (i2 = e3[o2 + 1])) == 128 && 127 < (l2 = (31 & u2) << 6 | 63 & i2) && (c2 = l2);
                    break;
                  case 3:
                    i2 = e3[o2 + 1], a2 = e3[o2 + 2], (192 & i2) == 128 && (192 & a2) == 128 && 2047 < (l2 = (15 & u2) << 12 | (63 & i2) << 6 | 63 & a2) && (l2 < 55296 || 57343 < l2) && (c2 = l2);
                    break;
                  case 4:
                    i2 = e3[o2 + 1], a2 = e3[o2 + 2], s2 = e3[o2 + 3], (192 & i2) == 128 && (192 & a2) == 128 && (192 & s2) == 128 && 65535 < (l2 = (15 & u2) << 18 | (63 & i2) << 12 | (63 & a2) << 6 | 63 & s2) && l2 < 1114112 && (c2 = l2);
                }
              c2 === null ? (c2 = 65533, d2 = 1) : 65535 < c2 && (c2 -= 65536, n2.push(c2 >>> 10 & 1023 | 55296), c2 = 56320 | 1023 & c2), n2.push(c2), o2 += d2;
            }
            return function(e4) {
              var t3 = e4.length;
              if (t3 <= x)
                return String.fromCharCode.apply(String, e4);
              var r3 = "", n3 = 0;
              for (; n3 < t3; )
                r3 += String.fromCharCode.apply(String, e4.slice(n3, n3 += x));
              return r3;
            }(n2);
          }
          N.kMaxLength = r, (d.TYPED_ARRAY_SUPPORT = function() {
            try {
              var e3 = new Uint8Array(1), t2 = { foo: function() {
                return 42;
              } };
              return Object.setPrototypeOf(t2, Uint8Array.prototype), Object.setPrototypeOf(e3, t2), e3.foo() === 42;
            } catch (e4) {
              return false;
            }
          }()) || typeof console == "undefined" || typeof console.error != "function" || console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."), Object.defineProperty(d.prototype, "parent", { enumerable: true, get: function() {
            if (d.isBuffer(this))
              return this.buffer;
          } }), Object.defineProperty(d.prototype, "offset", { enumerable: true, get: function() {
            if (d.isBuffer(this))
              return this.byteOffset;
          } }), typeof Symbol != "undefined" && Symbol.species != null && d[Symbol.species] === d && Object.defineProperty(d, Symbol.species, { value: null, configurable: true, enumerable: false, writable: false }), d.poolSize = 8192, d.from = function(e3, t2, r2) {
            return o(e3, t2, r2);
          }, Object.setPrototypeOf(d.prototype, Uint8Array.prototype), Object.setPrototypeOf(d, Uint8Array), d.alloc = function(e3, t2, r2) {
            return o2 = t2, i2 = r2, s(n2 = e3), n2 <= 0 ? a(n2) : o2 !== void 0 ? typeof i2 == "string" ? a(n2).fill(o2, i2) : a(n2).fill(o2) : a(n2);
            var n2, o2, i2;
          }, d.allocUnsafe = function(e3) {
            return l(e3);
          }, d.allocUnsafeSlow = function(e3) {
            return l(e3);
          }, d.isBuffer = function(e3) {
            return e3 != null && e3._isBuffer === true && e3 !== d.prototype;
          }, d.compare = function(e3, t2) {
            if (R(e3, Uint8Array) && (e3 = d.from(e3, e3.offset, e3.byteLength)), R(t2, Uint8Array) && (t2 = d.from(t2, t2.offset, t2.byteLength)), !d.isBuffer(e3) || !d.isBuffer(t2))
              throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');
            if (e3 === t2)
              return 0;
            for (var r2 = e3.length, n2 = t2.length, o2 = 0, i2 = Math.min(r2, n2); o2 < i2; ++o2)
              if (e3[o2] !== t2[o2]) {
                r2 = e3[o2], n2 = t2[o2];
                break;
              }
            return r2 < n2 ? -1 : n2 < r2 ? 1 : 0;
          }, d.isEncoding = function(e3) {
            switch (String(e3).toLowerCase()) {
              case "hex":
              case "utf8":
              case "utf-8":
              case "ascii":
              case "latin1":
              case "binary":
              case "base64":
              case "ucs2":
              case "ucs-2":
              case "utf16le":
              case "utf-16le":
                return true;
              default:
                return false;
            }
          }, d.concat = function(e3, t2) {
            if (!Array.isArray(e3))
              throw new TypeError('"list" argument must be an Array of Buffers');
            if (e3.length === 0)
              return d.alloc(0);
            var r2;
            if (t2 === void 0)
              for (r2 = t2 = 0; r2 < e3.length; ++r2)
                t2 += e3[r2].length;
            var n2 = d.allocUnsafe(t2), o2 = 0;
            for (r2 = 0; r2 < e3.length; ++r2) {
              var i2 = e3[r2];
              if (R(i2, Uint8Array) && (i2 = d.from(i2)), !d.isBuffer(i2))
                throw new TypeError('"list" argument must be an Array of Buffers');
              i2.copy(n2, o2), o2 += i2.length;
            }
            return n2;
          }, d.byteLength = f, d.prototype._isBuffer = true, d.prototype.swap16 = function() {
            var e3 = this.length;
            if (e3 % 2 != 0)
              throw new RangeError("Buffer size must be a multiple of 16-bits");
            for (var t2 = 0; t2 < e3; t2 += 2)
              h(this, t2, t2 + 1);
            return this;
          }, d.prototype.swap32 = function() {
            var e3 = this.length;
            if (e3 % 4 != 0)
              throw new RangeError("Buffer size must be a multiple of 32-bits");
            for (var t2 = 0; t2 < e3; t2 += 4)
              h(this, t2, t2 + 3), h(this, t2 + 1, t2 + 2);
            return this;
          }, d.prototype.swap64 = function() {
            var e3 = this.length;
            if (e3 % 8 != 0)
              throw new RangeError("Buffer size must be a multiple of 64-bits");
            for (var t2 = 0; t2 < e3; t2 += 8)
              h(this, t2, t2 + 7), h(this, t2 + 1, t2 + 6), h(this, t2 + 2, t2 + 5), h(this, t2 + 3, t2 + 4);
            return this;
          }, d.prototype.toLocaleString = d.prototype.toString = function() {
            var e3 = this.length;
            return e3 === 0 ? "" : arguments.length === 0 ? _(this, 0, e3) : function(e4, t2, r2) {
              var n2 = false;
              if ((t2 === void 0 || t2 < 0) && (t2 = 0), t2 > this.length)
                return "";
              if ((r2 === void 0 || r2 > this.length) && (r2 = this.length), r2 <= 0)
                return "";
              if ((r2 >>>= 0) <= (t2 >>>= 0))
                return "";
              for (e4 = e4 || "utf8"; ; )
                switch (e4) {
                  case "hex":
                    return j(this, t2, r2);
                  case "utf8":
                  case "utf-8":
                    return _(this, t2, r2);
                  case "ascii":
                    return w(this, t2, r2);
                  case "latin1":
                  case "binary":
                    return S(this, t2, r2);
                  case "base64":
                    return b(this, t2, r2);
                  case "ucs2":
                  case "ucs-2":
                  case "utf16le":
                  case "utf-16le":
                    return M(this, t2, r2);
                  default:
                    if (n2)
                      throw new TypeError("Unknown encoding: " + e4);
                    e4 = (e4 + "").toLowerCase(), n2 = true;
                }
            }.apply(this, arguments);
          }, d.prototype.equals = function(e3) {
            if (!d.isBuffer(e3))
              throw new TypeError("Argument must be a Buffer");
            return this === e3 || d.compare(this, e3) === 0;
          }, d.prototype.inspect = function() {
            var e3 = "", t2 = N.INSPECT_MAX_BYTES;
            return e3 = this.toString("hex", 0, t2).replace(/(.{2})/g, "$1 ").trim(), this.length > t2 && (e3 += " ... "), "<Buffer " + e3 + ">";
          }, e2 && (d.prototype[e2] = d.prototype.inspect), d.prototype.compare = function(e3, t2, r2, n2, o2) {
            if (R(e3, Uint8Array) && (e3 = d.from(e3, e3.offset, e3.byteLength)), !d.isBuffer(e3))
              throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type ' + typeof e3);
            if (t2 === void 0 && (t2 = 0), r2 === void 0 && (r2 = e3 ? e3.length : 0), n2 === void 0 && (n2 = 0), o2 === void 0 && (o2 = this.length), t2 < 0 || r2 > e3.length || n2 < 0 || o2 > this.length)
              throw new RangeError("out of range index");
            if (o2 <= n2 && r2 <= t2)
              return 0;
            if (o2 <= n2)
              return -1;
            if (r2 <= t2)
              return 1;
            if (this === e3)
              return 0;
            for (var i2 = (o2 >>>= 0) - (n2 >>>= 0), a2 = (r2 >>>= 0) - (t2 >>>= 0), s2 = Math.min(i2, a2), l2 = this.slice(n2, o2), u2 = e3.slice(t2, r2), c2 = 0; c2 < s2; ++c2)
              if (l2[c2] !== u2[c2]) {
                i2 = l2[c2], a2 = u2[c2];
                break;
              }
            return i2 < a2 ? -1 : a2 < i2 ? 1 : 0;
          }, d.prototype.includes = function(e3, t2, r2) {
            return this.indexOf(e3, t2, r2) !== -1;
          }, d.prototype.indexOf = function(e3, t2, r2) {
            return p(this, e3, t2, r2, true);
          }, d.prototype.lastIndexOf = function(e3, t2, r2) {
            return p(this, e3, t2, r2, false);
          }, d.prototype.write = function(e3, t2, r2, n2) {
            if (t2 === void 0)
              n2 = "utf8", r2 = this.length, t2 = 0;
            else if (r2 === void 0 && typeof t2 == "string")
              n2 = t2, r2 = this.length, t2 = 0;
            else {
              if (!isFinite(t2))
                throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");
              t2 >>>= 0, isFinite(r2) ? (r2 >>>= 0, n2 === void 0 && (n2 = "utf8")) : (n2 = r2, r2 = void 0);
            }
            var o2 = this.length - t2;
            if ((r2 === void 0 || o2 < r2) && (r2 = o2), 0 < e3.length && (r2 < 0 || t2 < 0) || t2 > this.length)
              throw new RangeError("Attempt to write outside buffer bounds");
            n2 = n2 || "utf8";
            for (var i2, a2, s2, l2, u2, c2, d2 = false; ; )
              switch (n2) {
                case "hex":
                  return m(this, e3, t2, r2);
                case "utf8":
                case "utf-8":
                  return u2 = t2, c2 = r2, A(P(e3, (l2 = this).length - u2), l2, u2, c2);
                case "ascii":
                  return g(this, e3, t2, r2);
                case "latin1":
                case "binary":
                  return g(this, e3, t2, r2);
                case "base64":
                  return i2 = this, a2 = t2, s2 = r2, A(k(e3), i2, a2, s2);
                case "ucs2":
                case "ucs-2":
                case "utf16le":
                case "utf-16le":
                  return v(this, e3, t2, r2);
                default:
                  if (d2)
                    throw new TypeError("Unknown encoding: " + n2);
                  n2 = ("" + n2).toLowerCase(), d2 = true;
              }
          }, d.prototype.toJSON = function() {
            return { type: "Buffer", data: Array.prototype.slice.call(this._arr || this, 0) };
          };
          var x = 4096;
          function w(e3, t2, r2) {
            var n2 = "";
            r2 = Math.min(e3.length, r2);
            for (var o2 = t2; o2 < r2; ++o2)
              n2 += String.fromCharCode(127 & e3[o2]);
            return n2;
          }
          function S(e3, t2, r2) {
            var n2 = "";
            r2 = Math.min(e3.length, r2);
            for (var o2 = t2; o2 < r2; ++o2)
              n2 += String.fromCharCode(e3[o2]);
            return n2;
          }
          function j(e3, t2, r2) {
            var n2 = e3.length;
            (!t2 || t2 < 0) && (t2 = 0), (!r2 || r2 < 0 || n2 < r2) && (r2 = n2);
            for (var o2 = "", i2 = t2; i2 < r2; ++i2)
              o2 += I[e3[i2]];
            return o2;
          }
          function M(e3, t2, r2) {
            for (var n2 = e3.slice(t2, r2), o2 = "", i2 = 0; i2 < n2.length; i2 += 2)
              o2 += String.fromCharCode(n2[i2] + 256 * n2[i2 + 1]);
            return o2;
          }
          function E(e3, t2, r2) {
            if (e3 % 1 != 0 || e3 < 0)
              throw new RangeError("offset is not uint");
            if (r2 < e3 + t2)
              throw new RangeError("Trying to access beyond buffer length");
          }
          function T(e3, t2, r2, n2, o2, i2) {
            if (!d.isBuffer(e3))
              throw new TypeError('"buffer" argument must be a Buffer instance');
            if (o2 < t2 || t2 < i2)
              throw new RangeError('"value" argument is out of bounds');
            if (r2 + n2 > e3.length)
              throw new RangeError("Index out of range");
          }
          function O(e3, t2, r2, n2) {
            if (r2 + n2 > e3.length)
              throw new RangeError("Index out of range");
            if (r2 < 0)
              throw new RangeError("Index out of range");
          }
          function C(e3, t2, r2, n2, o2) {
            return t2 = +t2, r2 >>>= 0, o2 || O(e3, 0, r2, 4), i.write(e3, t2, r2, n2, 23, 4), r2 + 4;
          }
          function L(e3, t2, r2, n2, o2) {
            return t2 = +t2, r2 >>>= 0, o2 || O(e3, 0, r2, 8), i.write(e3, t2, r2, n2, 52, 8), r2 + 8;
          }
          d.prototype.slice = function(e3, t2) {
            var r2 = this.length;
            (e3 = ~~e3) < 0 ? (e3 += r2) < 0 && (e3 = 0) : r2 < e3 && (e3 = r2), (t2 = t2 === void 0 ? r2 : ~~t2) < 0 ? (t2 += r2) < 0 && (t2 = 0) : r2 < t2 && (t2 = r2), t2 < e3 && (t2 = e3);
            var n2 = this.subarray(e3, t2);
            return Object.setPrototypeOf(n2, d.prototype), n2;
          }, d.prototype.readUIntLE = function(e3, t2, r2) {
            e3 >>>= 0, t2 >>>= 0, r2 || E(e3, t2, this.length);
            for (var n2 = this[e3], o2 = 1, i2 = 0; ++i2 < t2 && (o2 *= 256); )
              n2 += this[e3 + i2] * o2;
            return n2;
          }, d.prototype.readUIntBE = function(e3, t2, r2) {
            e3 >>>= 0, t2 >>>= 0, r2 || E(e3, t2, this.length);
            for (var n2 = this[e3 + --t2], o2 = 1; 0 < t2 && (o2 *= 256); )
              n2 += this[e3 + --t2] * o2;
            return n2;
          }, d.prototype.readUInt8 = function(e3, t2) {
            return e3 >>>= 0, t2 || E(e3, 1, this.length), this[e3];
          }, d.prototype.readUInt16LE = function(e3, t2) {
            return e3 >>>= 0, t2 || E(e3, 2, this.length), this[e3] | this[e3 + 1] << 8;
          }, d.prototype.readUInt16BE = function(e3, t2) {
            return e3 >>>= 0, t2 || E(e3, 2, this.length), this[e3] << 8 | this[e3 + 1];
          }, d.prototype.readUInt32LE = function(e3, t2) {
            return e3 >>>= 0, t2 || E(e3, 4, this.length), (this[e3] | this[e3 + 1] << 8 | this[e3 + 2] << 16) + 16777216 * this[e3 + 3];
          }, d.prototype.readUInt32BE = function(e3, t2) {
            return e3 >>>= 0, t2 || E(e3, 4, this.length), 16777216 * this[e3] + (this[e3 + 1] << 16 | this[e3 + 2] << 8 | this[e3 + 3]);
          }, d.prototype.readIntLE = function(e3, t2, r2) {
            e3 >>>= 0, t2 >>>= 0, r2 || E(e3, t2, this.length);
            for (var n2 = this[e3], o2 = 1, i2 = 0; ++i2 < t2 && (o2 *= 256); )
              n2 += this[e3 + i2] * o2;
            return (o2 *= 128) <= n2 && (n2 -= Math.pow(2, 8 * t2)), n2;
          }, d.prototype.readIntBE = function(e3, t2, r2) {
            e3 >>>= 0, t2 >>>= 0, r2 || E(e3, t2, this.length);
            for (var n2 = t2, o2 = 1, i2 = this[e3 + --n2]; 0 < n2 && (o2 *= 256); )
              i2 += this[e3 + --n2] * o2;
            return (o2 *= 128) <= i2 && (i2 -= Math.pow(2, 8 * t2)), i2;
          }, d.prototype.readInt8 = function(e3, t2) {
            return e3 >>>= 0, t2 || E(e3, 1, this.length), 128 & this[e3] ? -1 * (255 - this[e3] + 1) : this[e3];
          }, d.prototype.readInt16LE = function(e3, t2) {
            e3 >>>= 0, t2 || E(e3, 2, this.length);
            var r2 = this[e3] | this[e3 + 1] << 8;
            return 32768 & r2 ? 4294901760 | r2 : r2;
          }, d.prototype.readInt16BE = function(e3, t2) {
            e3 >>>= 0, t2 || E(e3, 2, this.length);
            var r2 = this[e3 + 1] | this[e3] << 8;
            return 32768 & r2 ? 4294901760 | r2 : r2;
          }, d.prototype.readInt32LE = function(e3, t2) {
            return e3 >>>= 0, t2 || E(e3, 4, this.length), this[e3] | this[e3 + 1] << 8 | this[e3 + 2] << 16 | this[e3 + 3] << 24;
          }, d.prototype.readInt32BE = function(e3, t2) {
            return e3 >>>= 0, t2 || E(e3, 4, this.length), this[e3] << 24 | this[e3 + 1] << 16 | this[e3 + 2] << 8 | this[e3 + 3];
          }, d.prototype.readFloatLE = function(e3, t2) {
            return e3 >>>= 0, t2 || E(e3, 4, this.length), i.read(this, e3, true, 23, 4);
          }, d.prototype.readFloatBE = function(e3, t2) {
            return e3 >>>= 0, t2 || E(e3, 4, this.length), i.read(this, e3, false, 23, 4);
          }, d.prototype.readDoubleLE = function(e3, t2) {
            return e3 >>>= 0, t2 || E(e3, 8, this.length), i.read(this, e3, true, 52, 8);
          }, d.prototype.readDoubleBE = function(e3, t2) {
            return e3 >>>= 0, t2 || E(e3, 8, this.length), i.read(this, e3, false, 52, 8);
          }, d.prototype.writeUIntLE = function(e3, t2, r2, n2) {
            e3 = +e3, t2 >>>= 0, r2 >>>= 0, n2 || T(this, e3, t2, r2, Math.pow(2, 8 * r2) - 1, 0);
            var o2 = 1, i2 = 0;
            for (this[t2] = 255 & e3; ++i2 < r2 && (o2 *= 256); )
              this[t2 + i2] = e3 / o2 & 255;
            return t2 + r2;
          }, d.prototype.writeUIntBE = function(e3, t2, r2, n2) {
            e3 = +e3, t2 >>>= 0, r2 >>>= 0, n2 || T(this, e3, t2, r2, Math.pow(2, 8 * r2) - 1, 0);
            var o2 = r2 - 1, i2 = 1;
            for (this[t2 + o2] = 255 & e3; 0 <= --o2 && (i2 *= 256); )
              this[t2 + o2] = e3 / i2 & 255;
            return t2 + r2;
          }, d.prototype.writeUInt8 = function(e3, t2, r2) {
            return e3 = +e3, t2 >>>= 0, r2 || T(this, e3, t2, 1, 255, 0), this[t2] = 255 & e3, t2 + 1;
          }, d.prototype.writeUInt16LE = function(e3, t2, r2) {
            return e3 = +e3, t2 >>>= 0, r2 || T(this, e3, t2, 2, 65535, 0), this[t2] = 255 & e3, this[t2 + 1] = e3 >>> 8, t2 + 2;
          }, d.prototype.writeUInt16BE = function(e3, t2, r2) {
            return e3 = +e3, t2 >>>= 0, r2 || T(this, e3, t2, 2, 65535, 0), this[t2] = e3 >>> 8, this[t2 + 1] = 255 & e3, t2 + 2;
          }, d.prototype.writeUInt32LE = function(e3, t2, r2) {
            return e3 = +e3, t2 >>>= 0, r2 || T(this, e3, t2, 4, 4294967295, 0), this[t2 + 3] = e3 >>> 24, this[t2 + 2] = e3 >>> 16, this[t2 + 1] = e3 >>> 8, this[t2] = 255 & e3, t2 + 4;
          }, d.prototype.writeUInt32BE = function(e3, t2, r2) {
            return e3 = +e3, t2 >>>= 0, r2 || T(this, e3, t2, 4, 4294967295, 0), this[t2] = e3 >>> 24, this[t2 + 1] = e3 >>> 16, this[t2 + 2] = e3 >>> 8, this[t2 + 3] = 255 & e3, t2 + 4;
          }, d.prototype.writeIntLE = function(e3, t2, r2, n2) {
            if (e3 = +e3, t2 >>>= 0, !n2) {
              var o2 = Math.pow(2, 8 * r2 - 1);
              T(this, e3, t2, r2, o2 - 1, -o2);
            }
            var i2 = 0, a2 = 1, s2 = 0;
            for (this[t2] = 255 & e3; ++i2 < r2 && (a2 *= 256); )
              e3 < 0 && s2 === 0 && this[t2 + i2 - 1] !== 0 && (s2 = 1), this[t2 + i2] = (e3 / a2 >> 0) - s2 & 255;
            return t2 + r2;
          }, d.prototype.writeIntBE = function(e3, t2, r2, n2) {
            if (e3 = +e3, t2 >>>= 0, !n2) {
              var o2 = Math.pow(2, 8 * r2 - 1);
              T(this, e3, t2, r2, o2 - 1, -o2);
            }
            var i2 = r2 - 1, a2 = 1, s2 = 0;
            for (this[t2 + i2] = 255 & e3; 0 <= --i2 && (a2 *= 256); )
              e3 < 0 && s2 === 0 && this[t2 + i2 + 1] !== 0 && (s2 = 1), this[t2 + i2] = (e3 / a2 >> 0) - s2 & 255;
            return t2 + r2;
          }, d.prototype.writeInt8 = function(e3, t2, r2) {
            return e3 = +e3, t2 >>>= 0, r2 || T(this, e3, t2, 1, 127, -128), e3 < 0 && (e3 = 255 + e3 + 1), this[t2] = 255 & e3, t2 + 1;
          }, d.prototype.writeInt16LE = function(e3, t2, r2) {
            return e3 = +e3, t2 >>>= 0, r2 || T(this, e3, t2, 2, 32767, -32768), this[t2] = 255 & e3, this[t2 + 1] = e3 >>> 8, t2 + 2;
          }, d.prototype.writeInt16BE = function(e3, t2, r2) {
            return e3 = +e3, t2 >>>= 0, r2 || T(this, e3, t2, 2, 32767, -32768), this[t2] = e3 >>> 8, this[t2 + 1] = 255 & e3, t2 + 2;
          }, d.prototype.writeInt32LE = function(e3, t2, r2) {
            return e3 = +e3, t2 >>>= 0, r2 || T(this, e3, t2, 4, 2147483647, -2147483648), this[t2] = 255 & e3, this[t2 + 1] = e3 >>> 8, this[t2 + 2] = e3 >>> 16, this[t2 + 3] = e3 >>> 24, t2 + 4;
          }, d.prototype.writeInt32BE = function(e3, t2, r2) {
            return e3 = +e3, t2 >>>= 0, r2 || T(this, e3, t2, 4, 2147483647, -2147483648), e3 < 0 && (e3 = 4294967295 + e3 + 1), this[t2] = e3 >>> 24, this[t2 + 1] = e3 >>> 16, this[t2 + 2] = e3 >>> 8, this[t2 + 3] = 255 & e3, t2 + 4;
          }, d.prototype.writeFloatLE = function(e3, t2, r2) {
            return C(this, e3, t2, true, r2);
          }, d.prototype.writeFloatBE = function(e3, t2, r2) {
            return C(this, e3, t2, false, r2);
          }, d.prototype.writeDoubleLE = function(e3, t2, r2) {
            return L(this, e3, t2, true, r2);
          }, d.prototype.writeDoubleBE = function(e3, t2, r2) {
            return L(this, e3, t2, false, r2);
          }, d.prototype.copy = function(e3, t2, r2, n2) {
            if (!d.isBuffer(e3))
              throw new TypeError("argument should be a Buffer");
            if (r2 = r2 || 0, n2 || n2 === 0 || (n2 = this.length), t2 >= e3.length && (t2 = e3.length), t2 = t2 || 0, 0 < n2 && n2 < r2 && (n2 = r2), n2 === r2)
              return 0;
            if (e3.length === 0 || this.length === 0)
              return 0;
            if (t2 < 0)
              throw new RangeError("targetStart out of bounds");
            if (r2 < 0 || r2 >= this.length)
              throw new RangeError("Index out of range");
            if (n2 < 0)
              throw new RangeError("sourceEnd out of bounds");
            n2 > this.length && (n2 = this.length), e3.length - t2 < n2 - r2 && (n2 = e3.length - t2 + r2);
            var o2 = n2 - r2;
            if (this === e3 && typeof Uint8Array.prototype.copyWithin == "function")
              this.copyWithin(t2, r2, n2);
            else if (this === e3 && r2 < t2 && t2 < n2)
              for (var i2 = o2 - 1; 0 <= i2; --i2)
                e3[i2 + t2] = this[i2 + r2];
            else
              Uint8Array.prototype.set.call(e3, this.subarray(r2, n2), t2);
            return o2;
          }, d.prototype.fill = function(e3, t2, r2, n2) {
            if (typeof e3 == "string") {
              if (typeof t2 == "string" ? (n2 = t2, t2 = 0, r2 = this.length) : typeof r2 == "string" && (n2 = r2, r2 = this.length), n2 !== void 0 && typeof n2 != "string")
                throw new TypeError("encoding must be a string");
              if (typeof n2 == "string" && !d.isEncoding(n2))
                throw new TypeError("Unknown encoding: " + n2);
              if (e3.length === 1) {
                var o2 = e3.charCodeAt(0);
                (n2 === "utf8" && o2 < 128 || n2 === "latin1") && (e3 = o2);
              }
            } else
              typeof e3 == "number" ? e3 &= 255 : typeof e3 == "boolean" && (e3 = Number(e3));
            if (t2 < 0 || this.length < t2 || this.length < r2)
              throw new RangeError("Out of range index");
            if (r2 <= t2)
              return this;
            var i2;
            if (t2 >>>= 0, r2 = r2 === void 0 ? this.length : r2 >>> 0, typeof (e3 = e3 || 0) == "number")
              for (i2 = t2; i2 < r2; ++i2)
                this[i2] = e3;
            else {
              var a2 = d.isBuffer(e3) ? e3 : d.from(e3, n2), s2 = a2.length;
              if (s2 === 0)
                throw new TypeError('The value "' + e3 + '" is invalid for argument "value"');
              for (i2 = 0; i2 < r2 - t2; ++i2)
                this[i2 + t2] = a2[i2 % s2];
            }
            return this;
          };
          var t = /[^+/0-9A-Za-z-_]/g;
          function P(e3, t2) {
            var r2;
            t2 = t2 || 1 / 0;
            for (var n2 = e3.length, o2 = null, i2 = [], a2 = 0; a2 < n2; ++a2) {
              if (55295 < (r2 = e3.charCodeAt(a2)) && r2 < 57344) {
                if (!o2) {
                  if (56319 < r2) {
                    -1 < (t2 -= 3) && i2.push(239, 191, 189);
                    continue;
                  }
                  if (a2 + 1 === n2) {
                    -1 < (t2 -= 3) && i2.push(239, 191, 189);
                    continue;
                  }
                  o2 = r2;
                  continue;
                }
                if (r2 < 56320) {
                  -1 < (t2 -= 3) && i2.push(239, 191, 189), o2 = r2;
                  continue;
                }
                r2 = 65536 + (o2 - 55296 << 10 | r2 - 56320);
              } else
                o2 && -1 < (t2 -= 3) && i2.push(239, 191, 189);
              if (o2 = null, r2 < 128) {
                if (--t2 < 0)
                  break;
                i2.push(r2);
              } else if (r2 < 2048) {
                if ((t2 -= 2) < 0)
                  break;
                i2.push(r2 >> 6 | 192, 63 & r2 | 128);
              } else if (r2 < 65536) {
                if ((t2 -= 3) < 0)
                  break;
                i2.push(r2 >> 12 | 224, r2 >> 6 & 63 | 128, 63 & r2 | 128);
              } else {
                if (!(r2 < 1114112))
                  throw new Error("Invalid code point");
                if ((t2 -= 4) < 0)
                  break;
                i2.push(r2 >> 18 | 240, r2 >> 12 & 63 | 128, r2 >> 6 & 63 | 128, 63 & r2 | 128);
              }
            }
            return i2;
          }
          function k(e3) {
            return n.toByteArray(function(e4) {
              if ((e4 = (e4 = e4.split("=")[0]).trim().replace(t, "")).length < 2)
                return "";
              for (; e4.length % 4 != 0; )
                e4 += "=";
              return e4;
            }(e3));
          }
          function A(e3, t2, r2, n2) {
            for (var o2 = 0; o2 < n2 && !(o2 + r2 >= t2.length || o2 >= e3.length); ++o2)
              t2[o2 + r2] = e3[o2];
            return o2;
          }
          function R(e3, t2) {
            return e3 instanceof t2 || e3 != null && e3.constructor != null && e3.constructor.name != null && e3.constructor.name === t2.name;
          }
          function D(e3) {
            return e3 != e3;
          }
          var I = function() {
            for (var e3 = "0123456789abcdef", t2 = new Array(256), r2 = 0; r2 < 16; ++r2)
              for (var n2 = 16 * r2, o2 = 0; o2 < 16; ++o2)
                t2[n2 + o2] = e3[r2] + e3[o2];
            return t2;
          }();
        }).call(this, U("buffer").Buffer);
      }, { "base64-js": 1, buffer: 4, ieee754: 233 }], 5: [function(e, t, r) {
        t.exports = function(e2) {
          if (typeof e2 != "function")
            throw TypeError(String(e2) + " is not a function");
          return e2;
        };
      }, {}], 6: [function(e, t, r) {
        var n = e("../internals/is-object");
        t.exports = function(e2) {
          if (!n(e2) && e2 !== null)
            throw TypeError("Can't set " + String(e2) + " as a prototype");
          return e2;
        };
      }, { "../internals/is-object": 73 }], 7: [function(e, t, r) {
        var n = e("../internals/well-known-symbol"), o = e("../internals/object-create"), i = e("../internals/object-define-property"), a = n("unscopables"), s = Array.prototype;
        s[a] == null && i.f(s, a, { configurable: true, value: o(null) }), t.exports = function(e2) {
          s[a][e2] = true;
        };
      }, { "../internals/object-create": 89, "../internals/object-define-property": 91, "../internals/well-known-symbol": 145 }], 8: [function(e, t, r) {
        "use strict";
        var n = e("../internals/string-multibyte").charAt;
        t.exports = function(e2, t2, r2) {
          return t2 + (r2 ? n(e2, t2).length : 1);
        };
      }, { "../internals/string-multibyte": 122 }], 9: [function(e, t, r) {
        t.exports = function(e2, t2, r2) {
          if (!(e2 instanceof t2))
            throw TypeError("Incorrect " + (r2 ? r2 + " " : "") + "invocation");
          return e2;
        };
      }, {}], 10: [function(e, t, r) {
        var n = e("../internals/is-object");
        t.exports = function(e2) {
          if (!n(e2))
            throw TypeError(String(e2) + " is not an object");
          return e2;
        };
      }, { "../internals/is-object": 73 }], 11: [function(e, t, r) {
        t.exports = typeof ArrayBuffer != "undefined" && typeof DataView != "undefined";
      }, {}], 12: [function(e, t, r) {
        "use strict";
        function n(e2) {
          return l(e2) && u(L, c(e2));
        }
        var o, i = e("../internals/array-buffer-native"), a = e("../internals/descriptors"), s = e("../internals/global"), l = e("../internals/is-object"), u = e("../internals/has"), c = e("../internals/classof"), d = e("../internals/create-non-enumerable-property"), f = e("../internals/redefine"), h = e("../internals/object-define-property").f, p = e("../internals/object-get-prototype-of"), y = e("../internals/object-set-prototype-of"), m = e("../internals/well-known-symbol"), g = e("../internals/uid"), v = s.Int8Array, b = v && v.prototype, _ = s.Uint8ClampedArray, x = _ && _.prototype, w = v && p(v), S = b && p(b), j = Object.prototype, M = j.isPrototypeOf, E = m("toStringTag"), T = g("TYPED_ARRAY_TAG"), O = i && !!y && c(s.opera) !== "Opera", C = false, L = { Int8Array: 1, Uint8Array: 1, Uint8ClampedArray: 1, Int16Array: 2, Uint16Array: 2, Int32Array: 4, Uint32Array: 4, Float32Array: 4, Float64Array: 8 };
        for (o in L)
          s[o] || (O = false);
        if ((!O || typeof w != "function" || w === Function.prototype) && (w = function() {
          throw TypeError("Incorrect invocation");
        }, O))
          for (o in L)
            s[o] && y(s[o], w);
        if ((!O || !S || S === j) && (S = w.prototype, O))
          for (o in L)
            s[o] && y(s[o].prototype, S);
        if (O && p(x) !== S && y(x, S), a && !u(S, E))
          for (o in C = true, h(S, E, { get: function() {
            return l(this) ? this[T] : void 0;
          } }), L)
            s[o] && d(s[o], T, o);
        t.exports = { NATIVE_ARRAY_BUFFER_VIEWS: O, TYPED_ARRAY_TAG: C && T, aTypedArray: function(e2) {
          if (n(e2))
            return e2;
          throw TypeError("Target is not a typed array");
        }, aTypedArrayConstructor: function(e2) {
          if (y) {
            if (M.call(w, e2))
              return e2;
          } else
            for (var t2 in L)
              if (u(L, o)) {
                var r2 = s[t2];
                if (r2 && (e2 === r2 || M.call(r2, e2)))
                  return e2;
              }
          throw TypeError("Target is not a typed array constructor");
        }, exportTypedArrayMethod: function(e2, t2, r2) {
          if (a) {
            if (r2)
              for (var n2 in L) {
                var o2 = s[n2];
                o2 && u(o2.prototype, e2) && delete o2.prototype[e2];
              }
            S[e2] && !r2 || f(S, e2, r2 ? t2 : O && b[e2] || t2);
          }
        }, exportTypedArrayStaticMethod: function(e2, t2, r2) {
          var n2, o2;
          if (a) {
            if (y) {
              if (r2)
                for (n2 in L)
                  (o2 = s[n2]) && u(o2, e2) && delete o2[e2];
              if (w[e2] && !r2)
                return;
              try {
                return f(w, e2, r2 ? t2 : O && v[e2] || t2);
              } catch (e3) {
              }
            }
            for (n2 in L)
              !(o2 = s[n2]) || o2[e2] && !r2 || f(o2, e2, t2);
          }
        }, isView: function(e2) {
          var t2 = c(e2);
          return t2 === "DataView" || u(L, t2);
        }, isTypedArray: n, TypedArray: w, TypedArrayPrototype: S };
      }, { "../internals/array-buffer-native": 11, "../internals/classof": 29, "../internals/create-non-enumerable-property": 37, "../internals/descriptors": 42, "../internals/global": 58, "../internals/has": 59, "../internals/is-object": 73, "../internals/object-define-property": 91, "../internals/object-get-prototype-of": 96, "../internals/object-set-prototype-of": 100, "../internals/redefine": 107, "../internals/uid": 142, "../internals/well-known-symbol": 145 }], 13: [function(e, t, r) {
        "use strict";
        function n(e2) {
          return [255 & e2];
        }
        function o(e2) {
          return [255 & e2, e2 >> 8 & 255];
        }
        function i(e2) {
          return [255 & e2, e2 >> 8 & 255, e2 >> 16 & 255, e2 >> 24 & 255];
        }
        function a(e2) {
          return e2[3] << 24 | e2[2] << 16 | e2[1] << 8 | e2[0];
        }
        function s(e2) {
          return V(e2, 23, 4);
        }
        function l(e2) {
          return V(e2, 52, 8);
        }
        function u(e2, t2) {
          E(e2[R], t2, { get: function() {
            return L(this)[t2];
          } });
        }
        function c(e2, t2, r2, n2) {
          var o2 = x(r2), i2 = L(e2);
          if (o2 + t2 > i2.byteLength)
            throw G(D);
          var a2 = L(i2.buffer).bytes, s2 = o2 + i2.byteOffset, l2 = a2.slice(s2, s2 + t2);
          return n2 ? l2 : l2.reverse();
        }
        function d(e2, t2, r2, n2, o2, i2) {
          var a2 = x(r2), s2 = L(e2);
          if (a2 + t2 > s2.byteLength)
            throw G(D);
          for (var l2 = L(s2.buffer).bytes, u2 = a2 + s2.byteOffset, c2 = n2(+o2), d2 = 0; d2 < t2; d2++)
            l2[u2 + d2] = c2[i2 ? d2 : t2 - d2 - 1];
        }
        var f = e("../internals/global"), h = e("../internals/descriptors"), p = e("../internals/array-buffer-native"), y = e("../internals/create-non-enumerable-property"), m = e("../internals/redefine-all"), g = e("../internals/fails"), v = e("../internals/an-instance"), b = e("../internals/to-integer"), _ = e("../internals/to-length"), x = e("../internals/to-index"), w = e("../internals/ieee754"), S = e("../internals/object-get-prototype-of"), j = e("../internals/object-set-prototype-of"), M = e("../internals/object-get-own-property-names").f, E = e("../internals/object-define-property").f, T = e("../internals/array-fill"), O = e("../internals/set-to-string-tag"), C = e("../internals/internal-state"), L = C.get, P = C.set, k = "ArrayBuffer", A = "DataView", R = "prototype", D = "Wrong index", I = f[k], U = I, N = f[A], F = N && N[R], B = Object.prototype, G = f.RangeError, V = w.pack, z = w.unpack;
        if (p) {
          if (!g(function() {
            I(1);
          }) || !g(function() {
            new I(-1);
          }) || g(function() {
            return new I(), new I(1.5), new I(NaN), I.name != k;
          })) {
            for (var H, W = (U = function(e2) {
              return v(this, U), new I(x(e2));
            })[R] = I[R], q = M(I), X = 0; q.length > X; )
              (H = q[X++]) in U || y(U, H, I[H]);
            W.constructor = U;
          }
          j && S(F) !== B && j(F, B);
          var Y = new N(new U(2)), Z = F.setInt8;
          Y.setInt8(0, 2147483648), Y.setInt8(1, 2147483649), !Y.getInt8(0) && Y.getInt8(1) || m(F, { setInt8: function(e2, t2) {
            Z.call(this, e2, t2 << 24 >> 24);
          }, setUint8: function(e2, t2) {
            Z.call(this, e2, t2 << 24 >> 24);
          } }, { unsafe: true });
        } else
          U = function(e2) {
            v(this, U, k);
            var t2 = x(e2);
            P(this, { bytes: T.call(new Array(t2), 0), byteLength: t2 }), h || (this.byteLength = t2);
          }, N = function(e2, t2, r2) {
            v(this, N, A), v(e2, U, A);
            var n2 = L(e2).byteLength, o2 = b(t2);
            if (o2 < 0 || n2 < o2)
              throw G("Wrong offset");
            if (n2 < o2 + (r2 = r2 === void 0 ? n2 - o2 : _(r2)))
              throw G("Wrong length");
            P(this, { buffer: e2, byteLength: r2, byteOffset: o2 }), h || (this.buffer = e2, this.byteLength = r2, this.byteOffset = o2);
          }, h && (u(U, "byteLength"), u(N, "buffer"), u(N, "byteLength"), u(N, "byteOffset")), m(N[R], { getInt8: function(e2) {
            return c(this, 1, e2)[0] << 24 >> 24;
          }, getUint8: function(e2) {
            return c(this, 1, e2)[0];
          }, getInt16: function(e2, t2) {
            var r2 = c(this, 2, e2, 1 < arguments.length ? t2 : void 0);
            return (r2[1] << 8 | r2[0]) << 16 >> 16;
          }, getUint16: function(e2, t2) {
            var r2 = c(this, 2, e2, 1 < arguments.length ? t2 : void 0);
            return r2[1] << 8 | r2[0];
          }, getInt32: function(e2, t2) {
            return a(c(this, 4, e2, 1 < arguments.length ? t2 : void 0));
          }, getUint32: function(e2, t2) {
            return a(c(this, 4, e2, 1 < arguments.length ? t2 : void 0)) >>> 0;
          }, getFloat32: function(e2, t2) {
            return z(c(this, 4, e2, 1 < arguments.length ? t2 : void 0), 23);
          }, getFloat64: function(e2, t2) {
            return z(c(this, 8, e2, 1 < arguments.length ? t2 : void 0), 52);
          }, setInt8: function(e2, t2) {
            d(this, 1, e2, n, t2);
          }, setUint8: function(e2, t2) {
            d(this, 1, e2, n, t2);
          }, setInt16: function(e2, t2, r2) {
            d(this, 2, e2, o, t2, 2 < arguments.length ? r2 : void 0);
          }, setUint16: function(e2, t2, r2) {
            d(this, 2, e2, o, t2, 2 < arguments.length ? r2 : void 0);
          }, setInt32: function(e2, t2, r2) {
            d(this, 4, e2, i, t2, 2 < arguments.length ? r2 : void 0);
          }, setUint32: function(e2, t2, r2) {
            d(this, 4, e2, i, t2, 2 < arguments.length ? r2 : void 0);
          }, setFloat32: function(e2, t2, r2) {
            d(this, 4, e2, s, t2, 2 < arguments.length ? r2 : void 0);
          }, setFloat64: function(e2, t2, r2) {
            d(this, 8, e2, l, t2, 2 < arguments.length ? r2 : void 0);
          } });
        O(U, k), O(N, A), t.exports = { ArrayBuffer: U, DataView: N };
      }, { "../internals/an-instance": 9, "../internals/array-buffer-native": 11, "../internals/array-fill": 15, "../internals/create-non-enumerable-property": 37, "../internals/descriptors": 42, "../internals/fails": 50, "../internals/global": 58, "../internals/ieee754": 64, "../internals/internal-state": 69, "../internals/object-define-property": 91, "../internals/object-get-own-property-names": 94, "../internals/object-get-prototype-of": 96, "../internals/object-set-prototype-of": 100, "../internals/redefine-all": 106, "../internals/set-to-string-tag": 116, "../internals/to-index": 130, "../internals/to-integer": 132, "../internals/to-length": 133 }], 14: [function(e, t, r) {
        "use strict";
        var c = e("../internals/to-object"), d = e("../internals/to-absolute-index"), f = e("../internals/to-length"), h = Math.min;
        t.exports = [].copyWithin || function(e2, t2, r2) {
          var n = c(this), o = f(n.length), i = d(e2, o), a = d(t2, o), s = 2 < arguments.length ? r2 : void 0, l = h((s === void 0 ? o : d(s, o)) - a, o - i), u = 1;
          for (a < i && i < a + l && (u = -1, a += l - 1, i += l - 1); 0 < l--; )
            a in n ? n[i] = n[a] : delete n[i], i += u, a += u;
          return n;
        };
      }, { "../internals/to-absolute-index": 129, "../internals/to-length": 133, "../internals/to-object": 134 }], 15: [function(e, t, r) {
        "use strict";
        var u = e("../internals/to-object"), c = e("../internals/to-absolute-index"), d = e("../internals/to-length");
        t.exports = function(e2, t2, r2) {
          for (var n = u(this), o = d(n.length), i = arguments.length, a = c(1 < i ? t2 : void 0, o), s = 2 < i ? r2 : void 0, l = s === void 0 ? o : c(s, o); a < l; )
            n[a++] = e2;
          return n;
        };
      }, { "../internals/to-absolute-index": 129, "../internals/to-length": 133, "../internals/to-object": 134 }], 16: [function(e, t, r) {
        "use strict";
        var n = e("../internals/array-iteration").forEach, o = e("../internals/array-method-is-strict"), i = e("../internals/array-method-uses-to-length"), a = o("forEach"), s = i("forEach");
        t.exports = a && s ? [].forEach : function(e2, t2) {
          return n(this, e2, 1 < arguments.length ? t2 : void 0);
        };
      }, { "../internals/array-iteration": 19, "../internals/array-method-is-strict": 22, "../internals/array-method-uses-to-length": 23 }], 17: [function(e, t, r) {
        "use strict";
        var m = e("../internals/function-bind-context"), g = e("../internals/to-object"), v = e("../internals/call-with-safe-iteration-closing"), b = e("../internals/is-array-iterator-method"), _ = e("../internals/to-length"), x = e("../internals/create-property"), w = e("../internals/get-iterator-method");
        t.exports = function(e2, t2, r2) {
          var n, o, i, a, s, l, u = g(e2), c = typeof this == "function" ? this : Array, d = arguments.length, f = 1 < d ? t2 : void 0, h = f !== void 0, p = w(u), y = 0;
          if (h && (f = m(f, 2 < d ? r2 : void 0, 2)), p == null || c == Array && b(p))
            for (o = new c(n = _(u.length)); y < n; y++)
              l = h ? f(u[y], y) : u[y], x(o, y, l);
          else
            for (s = (a = p.call(u)).next, o = new c(); !(i = s.call(a)).done; y++)
              l = h ? v(a, f, [i.value, y], true) : i.value, x(o, y, l);
          return o.length = y, o;
        };
      }, { "../internals/call-with-safe-iteration-closing": 26, "../internals/create-property": 39, "../internals/function-bind-context": 53, "../internals/get-iterator-method": 56, "../internals/is-array-iterator-method": 70, "../internals/to-length": 133, "../internals/to-object": 134 }], 18: [function(e, t, r) {
        function n(s) {
          return function(e2, t2, r2) {
            var n2, o = l(e2), i = u(o.length), a = c(r2, i);
            if (s && t2 != t2) {
              for (; a < i; )
                if ((n2 = o[a++]) != n2)
                  return true;
            } else
              for (; a < i; a++)
                if ((s || a in o) && o[a] === t2)
                  return s || a || 0;
            return !s && -1;
          };
        }
        var l = e("../internals/to-indexed-object"), u = e("../internals/to-length"), c = e("../internals/to-absolute-index");
        t.exports = { includes: n(true), indexOf: n(false) };
      }, { "../internals/to-absolute-index": 129, "../internals/to-indexed-object": 131, "../internals/to-length": 133 }], 19: [function(e, t, r) {
        function n(h) {
          var p = h == 1, y = h == 2, m = h == 3, g = h == 4, v = h == 6, b = h == 5 || v;
          return function(e2, t2, r2, n2) {
            for (var o, i, a = w(e2), s = x(a), l = _(t2, r2, 3), u = S(s.length), c = 0, d = n2 || j, f = p ? d(e2, u) : y ? d(e2, 0) : void 0; c < u; c++)
              if ((b || c in s) && (i = l(o = s[c], c, a), h)) {
                if (p)
                  f[c] = i;
                else if (i)
                  switch (h) {
                    case 3:
                      return true;
                    case 5:
                      return o;
                    case 6:
                      return c;
                    case 2:
                      M.call(f, o);
                  }
                else if (g)
                  return false;
              }
            return v ? -1 : m || g ? g : f;
          };
        }
        var _ = e("../internals/function-bind-context"), x = e("../internals/indexed-object"), w = e("../internals/to-object"), S = e("../internals/to-length"), j = e("../internals/array-species-create"), M = [].push;
        t.exports = { forEach: n(0), map: n(1), filter: n(2), some: n(3), every: n(4), find: n(5), findIndex: n(6) };
      }, { "../internals/array-species-create": 25, "../internals/function-bind-context": 53, "../internals/indexed-object": 65, "../internals/to-length": 133, "../internals/to-object": 134 }], 20: [function(e, t, r) {
        "use strict";
        var i = e("../internals/to-indexed-object"), a = e("../internals/to-integer"), s = e("../internals/to-length"), n = e("../internals/array-method-is-strict"), o = e("../internals/array-method-uses-to-length"), l = Math.min, u = [].lastIndexOf, c = !!u && 1 / [1].lastIndexOf(1, -0) < 0, d = n("lastIndexOf"), f = o("indexOf", { ACCESSORS: true, 1: 0 }), h = c || !d || !f;
        t.exports = h ? function(e2, t2) {
          if (c)
            return u.apply(this, arguments) || 0;
          var r2 = i(this), n2 = s(r2.length), o2 = n2 - 1;
          for (1 < arguments.length && (o2 = l(o2, a(t2))), o2 < 0 && (o2 = n2 + o2); 0 <= o2; o2--)
            if (o2 in r2 && r2[o2] === e2)
              return o2 || 0;
          return -1;
        } : u;
      }, { "../internals/array-method-is-strict": 22, "../internals/array-method-uses-to-length": 23, "../internals/to-indexed-object": 131, "../internals/to-integer": 132, "../internals/to-length": 133 }], 21: [function(e, t, r) {
        var n = e("../internals/fails"), o = e("../internals/well-known-symbol"), i = e("../internals/engine-v8-version"), a = o("species");
        t.exports = function(t2) {
          return 51 <= i || !n(function() {
            var e2 = [];
            return (e2.constructor = {})[a] = function() {
              return { foo: 1 };
            }, e2[t2](Boolean).foo !== 1;
          });
        };
      }, { "../internals/engine-v8-version": 47, "../internals/fails": 50, "../internals/well-known-symbol": 145 }], 22: [function(e, t, r) {
        "use strict";
        var n = e("../internals/fails");
        t.exports = function(e2, t2) {
          var r2 = [][e2];
          return !!r2 && n(function() {
            r2.call(null, t2 || function() {
              throw 1;
            }, 1);
          });
        };
      }, { "../internals/fails": 50 }], 23: [function(e, t, r) {
        function a(e2) {
          throw e2;
        }
        var s = e("../internals/descriptors"), l = e("../internals/fails"), u = e("../internals/has"), c = Object.defineProperty, d = {};
        t.exports = function(e2, t2) {
          if (u(d, e2))
            return d[e2];
          var r2 = [][e2], n = !!u(t2 = t2 || {}, "ACCESSORS") && t2.ACCESSORS, o = u(t2, 0) ? t2[0] : a, i = u(t2, 1) ? t2[1] : void 0;
          return d[e2] = !!r2 && !l(function() {
            if (n && !s)
              return true;
            var e3 = { length: -1 };
            n ? c(e3, 1, { enumerable: true, get: a }) : e3[1] = 1, r2.call(e3, o, i);
          });
        };
      }, { "../internals/descriptors": 42, "../internals/fails": 50, "../internals/has": 59 }], 24: [function(e, t, r) {
        function n(u) {
          return function(e2, t2, r2, n2) {
            c(t2);
            var o = d(e2), i = f(o), a = h(o.length), s = u ? a - 1 : 0, l = u ? -1 : 1;
            if (r2 < 2)
              for (; ; ) {
                if (s in i) {
                  n2 = i[s], s += l;
                  break;
                }
                if (s += l, u ? s < 0 : a <= s)
                  throw TypeError("Reduce of empty array with no initial value");
              }
            for (; u ? 0 <= s : s < a; s += l)
              s in i && (n2 = t2(n2, i[s], s, o));
            return n2;
          };
        }
        var c = e("../internals/a-function"), d = e("../internals/to-object"), f = e("../internals/indexed-object"), h = e("../internals/to-length");
        t.exports = { left: n(false), right: n(true) };
      }, { "../internals/a-function": 5, "../internals/indexed-object": 65, "../internals/to-length": 133, "../internals/to-object": 134 }], 25: [function(e, t, r) {
        var n = e("../internals/is-object"), o = e("../internals/is-array"), i = e("../internals/well-known-symbol")("species");
        t.exports = function(e2, t2) {
          var r2;
          return o(e2) && (typeof (r2 = e2.constructor) != "function" || r2 !== Array && !o(r2.prototype) ? n(r2) && (r2 = r2[i]) === null && (r2 = void 0) : r2 = void 0), new (r2 === void 0 ? Array : r2)(t2 === 0 ? 0 : t2);
        };
      }, { "../internals/is-array": 71, "../internals/is-object": 73, "../internals/well-known-symbol": 145 }], 26: [function(e, t, r) {
        var i = e("../internals/an-object");
        t.exports = function(t2, e2, r2, n) {
          try {
            return n ? e2(i(r2)[0], r2[1]) : e2(r2);
          } catch (e3) {
            var o = t2.return;
            throw o !== void 0 && i(o.call(t2)), e3;
          }
        };
      }, { "../internals/an-object": 10 }], 27: [function(e, t, r) {
        var o = e("../internals/well-known-symbol")("iterator"), i = false;
        try {
          var n = 0, a = { next: function() {
            return { done: !!n++ };
          }, return: function() {
            i = true;
          } };
          a[o] = function() {
            return this;
          }, Array.from(a, function() {
            throw 2;
          });
        } catch (e2) {
        }
        t.exports = function(e2, t2) {
          if (!t2 && !i)
            return false;
          var r2 = false;
          try {
            var n2 = {};
            n2[o] = function() {
              return { next: function() {
                return { done: r2 = true };
              } };
            }, e2(n2);
          } catch (e3) {
          }
          return r2;
        };
      }, { "../internals/well-known-symbol": 145 }], 28: [function(e, t, r) {
        var n = {}.toString;
        t.exports = function(e2) {
          return n.call(e2).slice(8, -1);
        };
      }, {}], 29: [function(e, t, r) {
        var n = e("../internals/to-string-tag-support"), o = e("../internals/classof-raw"), i = e("../internals/well-known-symbol")("toStringTag"), a = o(function() {
          return arguments;
        }()) == "Arguments";
        t.exports = n ? o : function(e2) {
          var t2, r2, n2;
          return e2 === void 0 ? "Undefined" : e2 === null ? "Null" : typeof (r2 = function(e3, t3) {
            try {
              return e3[t3];
            } catch (e4) {
            }
          }(t2 = Object(e2), i)) == "string" ? r2 : a ? o(t2) : (n2 = o(t2)) == "Object" && typeof t2.callee == "function" ? "Arguments" : n2;
        };
      }, { "../internals/classof-raw": 28, "../internals/to-string-tag-support": 138, "../internals/well-known-symbol": 145 }], 30: [function(e, t, r) {
        "use strict";
        var u = e("../internals/object-define-property").f, c = e("../internals/object-create"), d = e("../internals/redefine-all"), f = e("../internals/function-bind-context"), h = e("../internals/an-instance"), p = e("../internals/iterate"), a = e("../internals/define-iterator"), s = e("../internals/set-species"), y = e("../internals/descriptors"), m = e("../internals/internal-metadata").fastKey, n = e("../internals/internal-state"), g = n.set, v = n.getterFor;
        t.exports = { getConstructor: function(e2, r2, n2, o) {
          function i(e3, t2, r3) {
            var n3, o2, i2 = s2(e3), a3 = l(e3, t2);
            return a3 ? a3.value = r3 : (i2.last = a3 = { index: o2 = m(t2, true), key: t2, value: r3, previous: n3 = i2.last, next: void 0, removed: false }, i2.first || (i2.first = a3), n3 && (n3.next = a3), y ? i2.size++ : e3.size++, o2 !== "F" && (i2.index[o2] = a3)), e3;
          }
          var a2 = e2(function(e3, t2) {
            h(e3, a2, r2), g(e3, { type: r2, index: c(null), first: void 0, last: void 0, size: 0 }), y || (e3.size = 0), t2 != null && p(t2, e3[o], e3, n2);
          }), s2 = v(r2), l = function(e3, t2) {
            var r3, n3 = s2(e3), o2 = m(t2);
            if (o2 !== "F")
              return n3.index[o2];
            for (r3 = n3.first; r3; r3 = r3.next)
              if (r3.key == t2)
                return r3;
          };
          return d(a2.prototype, { clear: function() {
            for (var e3 = s2(this), t2 = e3.index, r3 = e3.first; r3; )
              r3.removed = true, r3.previous && (r3.previous = r3.previous.next = void 0), delete t2[r3.index], r3 = r3.next;
            e3.first = e3.last = void 0, y ? e3.size = 0 : this.size = 0;
          }, delete: function(e3) {
            var t2 = s2(this), r3 = l(this, e3);
            if (r3) {
              var n3 = r3.next, o2 = r3.previous;
              delete t2.index[r3.index], r3.removed = true, o2 && (o2.next = n3), n3 && (n3.previous = o2), t2.first == r3 && (t2.first = n3), t2.last == r3 && (t2.last = o2), y ? t2.size-- : this.size--;
            }
            return !!r3;
          }, forEach: function(e3, t2) {
            for (var r3, n3 = s2(this), o2 = f(e3, 1 < arguments.length ? t2 : void 0, 3); r3 = r3 ? r3.next : n3.first; )
              for (o2(r3.value, r3.key, this); r3 && r3.removed; )
                r3 = r3.previous;
          }, has: function(e3) {
            return !!l(this, e3);
          } }), d(a2.prototype, n2 ? { get: function(e3) {
            var t2 = l(this, e3);
            return t2 && t2.value;
          }, set: function(e3, t2) {
            return i(this, e3 === 0 ? 0 : e3, t2);
          } } : { add: function(e3) {
            return i(this, e3 = e3 === 0 ? 0 : e3, e3);
          } }), y && u(a2.prototype, "size", { get: function() {
            return s2(this).size;
          } }), a2;
        }, setStrong: function(e2, t2, r2) {
          var n2 = t2 + " Iterator", o = v(t2), i = v(n2);
          a(e2, t2, function(e3, t3) {
            g(this, { type: n2, target: e3, state: o(e3), kind: t3, last: void 0 });
          }, function() {
            for (var e3 = i(this), t3 = e3.kind, r3 = e3.last; r3 && r3.removed; )
              r3 = r3.previous;
            return e3.target && (e3.last = r3 = r3 ? r3.next : e3.state.first) ? t3 == "keys" ? { value: r3.key, done: false } : t3 == "values" ? { value: r3.value, done: false } : { value: [r3.key, r3.value], done: false } : { value: e3.target = void 0, done: true };
          }, r2 ? "entries" : "values", !r2, true), s(t2);
        } };
      }, { "../internals/an-instance": 9, "../internals/define-iterator": 40, "../internals/descriptors": 42, "../internals/function-bind-context": 53, "../internals/internal-metadata": 68, "../internals/internal-state": 69, "../internals/iterate": 76, "../internals/object-create": 89, "../internals/object-define-property": 91, "../internals/redefine-all": 106, "../internals/set-species": 115 }], 31: [function(e, t, r) {
        "use strict";
        var m = e("../internals/export"), g = e("../internals/global"), v = e("../internals/is-forced"), b = e("../internals/redefine"), _ = e("../internals/internal-metadata"), x = e("../internals/iterate"), w = e("../internals/an-instance"), S = e("../internals/is-object"), j = e("../internals/fails"), M = e("../internals/check-correctness-of-iteration"), E = e("../internals/set-to-string-tag"), T = e("../internals/inherit-if-required");
        t.exports = function(n, e2, t2) {
          function r2(e3) {
            var r3 = l[e3];
            b(l, e3, e3 == "add" ? function(e4) {
              return r3.call(this, e4 === 0 ? 0 : e4), this;
            } : e3 == "delete" ? function(e4) {
              return !(i && !S(e4)) && r3.call(this, e4 === 0 ? 0 : e4);
            } : e3 == "get" ? function(e4) {
              return i && !S(e4) ? void 0 : r3.call(this, e4 === 0 ? 0 : e4);
            } : e3 == "has" ? function(e4) {
              return !(i && !S(e4)) && r3.call(this, e4 === 0 ? 0 : e4);
            } : function(e4, t3) {
              return r3.call(this, e4 === 0 ? 0 : e4, t3), this;
            });
          }
          var o = n.indexOf("Map") !== -1, i = n.indexOf("Weak") !== -1, a = o ? "set" : "add", s = g[n], l = s && s.prototype, u = s, c = {};
          if (v(n, typeof s != "function" || !(i || l.forEach && !j(function() {
            new s().entries().next();
          }))))
            u = t2.getConstructor(e2, n, o, a), _.REQUIRED = true;
          else if (v(n, true)) {
            var d = new u(), f = d[a](i ? {} : -0, 1) != d, h = j(function() {
              d.has(1);
            }), p = M(function(e3) {
              new s(e3);
            }), y = !i && j(function() {
              for (var e3 = new s(), t3 = 5; t3--; )
                e3[a](t3, t3);
              return !e3.has(-0);
            });
            p || (((u = e2(function(e3, t3) {
              w(e3, u, n);
              var r3 = T(new s(), e3, u);
              return t3 != null && x(t3, r3[a], r3, o), r3;
            })).prototype = l).constructor = u), (h || y) && (r2("delete"), r2("has"), o && r2("get")), (y || f) && r2(a), i && l.clear && delete l.clear;
          }
          return c[n] = u, m({ global: true, forced: u != s }, c), E(u, n), i || t2.setStrong(u, n, o), u;
        };
      }, { "../internals/an-instance": 9, "../internals/check-correctness-of-iteration": 27, "../internals/export": 49, "../internals/fails": 50, "../internals/global": 58, "../internals/inherit-if-required": 66, "../internals/internal-metadata": 68, "../internals/is-forced": 72, "../internals/is-object": 73, "../internals/iterate": 76, "../internals/redefine": 107, "../internals/set-to-string-tag": 116 }], 32: [function(e, t, r) {
        var s = e("../internals/has"), l = e("../internals/own-keys"), u = e("../internals/object-get-own-property-descriptor"), c = e("../internals/object-define-property");
        t.exports = function(e2, t2) {
          for (var r2 = l(t2), n = c.f, o = u.f, i = 0; i < r2.length; i++) {
            var a = r2[i];
            s(e2, a) || n(e2, a, o(t2, a));
          }
        };
      }, { "../internals/has": 59, "../internals/object-define-property": 91, "../internals/object-get-own-property-descriptor": 92, "../internals/own-keys": 102 }], 33: [function(e, t, r) {
        var n = e("../internals/well-known-symbol")("match");
        t.exports = function(t2) {
          var r2 = /./;
          try {
            "/./"[t2](r2);
          } catch (e2) {
            try {
              return r2[n] = false, "/./"[t2](r2);
            } catch (e3) {
            }
          }
          return false;
        };
      }, { "../internals/well-known-symbol": 145 }], 34: [function(e, t, r) {
        var n = e("../internals/fails");
        t.exports = !n(function() {
          function e2() {
          }
          return e2.prototype.constructor = null, Object.getPrototypeOf(new e2()) !== e2.prototype;
        });
      }, { "../internals/fails": 50 }], 35: [function(e, t, r) {
        var a = e("../internals/require-object-coercible"), s = /"/g;
        t.exports = function(e2, t2, r2, n) {
          var o = String(a(e2)), i = "<" + t2;
          return r2 !== "" && (i += " " + r2 + '="' + String(n).replace(s, "&quot;") + '"'), i + ">" + o + "</" + t2 + ">";
        };
      }, { "../internals/require-object-coercible": 112 }], 36: [function(e, t, r) {
        "use strict";
        function o() {
          return this;
        }
        var i = e("../internals/iterators-core").IteratorPrototype, a = e("../internals/object-create"), s = e("../internals/create-property-descriptor"), l = e("../internals/set-to-string-tag"), u = e("../internals/iterators");
        t.exports = function(e2, t2, r2) {
          var n = t2 + " Iterator";
          return e2.prototype = a(i, { next: s(1, r2) }), l(e2, n, false, true), u[n] = o, e2;
        };
      }, { "../internals/create-property-descriptor": 38, "../internals/iterators": 78, "../internals/iterators-core": 77, "../internals/object-create": 89, "../internals/set-to-string-tag": 116 }], 37: [function(e, t, r) {
        var n = e("../internals/descriptors"), o = e("../internals/object-define-property"), i = e("../internals/create-property-descriptor");
        t.exports = n ? function(e2, t2, r2) {
          return o.f(e2, t2, i(1, r2));
        } : function(e2, t2, r2) {
          return e2[t2] = r2, e2;
        };
      }, { "../internals/create-property-descriptor": 38, "../internals/descriptors": 42, "../internals/object-define-property": 91 }], 38: [function(e, t, r) {
        t.exports = function(e2, t2) {
          return { enumerable: !(1 & e2), configurable: !(2 & e2), writable: !(4 & e2), value: t2 };
        };
      }, {}], 39: [function(e, t, r) {
        "use strict";
        var o = e("../internals/to-primitive"), i = e("../internals/object-define-property"), a = e("../internals/create-property-descriptor");
        t.exports = function(e2, t2, r2) {
          var n = o(t2);
          n in e2 ? i.f(e2, n, a(0, r2)) : e2[n] = r2;
        };
      }, { "../internals/create-property-descriptor": 38, "../internals/object-define-property": 91, "../internals/to-primitive": 137 }], 40: [function(e, t, r) {
        "use strict";
        function g() {
          return this;
        }
        var v = e("../internals/export"), b = e("../internals/create-iterator-constructor"), _ = e("../internals/object-get-prototype-of"), x = e("../internals/object-set-prototype-of"), w = e("../internals/set-to-string-tag"), S = e("../internals/create-non-enumerable-property"), j = e("../internals/redefine"), n = e("../internals/well-known-symbol"), M = e("../internals/is-pure"), E = e("../internals/iterators"), o = e("../internals/iterators-core"), T = o.IteratorPrototype, O = o.BUGGY_SAFARI_ITERATORS, C = n("iterator"), L = "values", P = "entries";
        t.exports = function(e2, t2, r2, n2, o2, i, a) {
          b(r2, t2, n2);
          function s(e3) {
            if (e3 === o2 && y)
              return y;
            if (!O && e3 in h)
              return h[e3];
            switch (e3) {
              case "keys":
              case L:
              case P:
                return function() {
                  return new r2(this, e3);
                };
            }
            return function() {
              return new r2(this);
            };
          }
          var l, u, c, d = t2 + " Iterator", f = false, h = e2.prototype, p = h[C] || h["@@iterator"] || o2 && h[o2], y = !O && p || s(o2), m = t2 == "Array" && h.entries || p;
          if (m && (l = _(m.call(new e2())), T !== Object.prototype && l.next && (M || _(l) === T || (x ? x(l, T) : typeof l[C] != "function" && S(l, C, g)), w(l, d, true, true), M && (E[d] = g))), o2 == L && p && p.name !== L && (f = true, y = function() {
            return p.call(this);
          }), M && !a || h[C] === y || S(h, C, y), E[t2] = y, o2)
            if (u = { values: s(L), keys: i ? y : s("keys"), entries: s(P) }, a)
              for (c in u)
                !O && !f && c in h || j(h, c, u[c]);
            else
              v({ target: t2, proto: true, forced: O || f }, u);
          return u;
        };
      }, { "../internals/create-iterator-constructor": 36, "../internals/create-non-enumerable-property": 37, "../internals/export": 49, "../internals/is-pure": 74, "../internals/iterators": 78, "../internals/iterators-core": 77, "../internals/object-get-prototype-of": 96, "../internals/object-set-prototype-of": 100, "../internals/redefine": 107, "../internals/set-to-string-tag": 116, "../internals/well-known-symbol": 145 }], 41: [function(e, t, r) {
        var n = e("../internals/path"), o = e("../internals/has"), i = e("../internals/well-known-symbol-wrapped"), a = e("../internals/object-define-property").f;
        t.exports = function(e2) {
          var t2 = n.Symbol || (n.Symbol = {});
          o(t2, e2) || a(t2, e2, { value: i.f(e2) });
        };
      }, { "../internals/has": 59, "../internals/object-define-property": 91, "../internals/path": 103, "../internals/well-known-symbol-wrapped": 144 }], 42: [function(e, t, r) {
        var n = e("../internals/fails");
        t.exports = !n(function() {
          return Object.defineProperty({}, 1, { get: function() {
            return 7;
          } })[1] != 7;
        });
      }, { "../internals/fails": 50 }], 43: [function(e, t, r) {
        var n = e("../internals/global"), o = e("../internals/is-object"), i = n.document, a = o(i) && o(i.createElement);
        t.exports = function(e2) {
          return a ? i.createElement(e2) : {};
        };
      }, { "../internals/global": 58, "../internals/is-object": 73 }], 44: [function(e, t, r) {
        t.exports = { CSSRuleList: 0, CSSStyleDeclaration: 0, CSSValueList: 0, ClientRectList: 0, DOMRectList: 0, DOMStringList: 0, DOMTokenList: 1, DataTransferItemList: 0, FileList: 0, HTMLAllCollection: 0, HTMLCollection: 0, HTMLFormElement: 0, HTMLSelectElement: 0, MediaList: 0, MimeTypeArray: 0, NamedNodeMap: 0, NodeList: 1, PaintRequestList: 0, Plugin: 0, PluginArray: 0, SVGLengthList: 0, SVGNumberList: 0, SVGPathSegList: 0, SVGPointList: 0, SVGStringList: 0, SVGTransformList: 0, SourceBufferList: 0, StyleSheetList: 0, TextTrackCueList: 0, TextTrackList: 0, TouchList: 0 };
      }, {}], 45: [function(e, t, r) {
        var n = e("../internals/engine-user-agent");
        t.exports = /(iphone|ipod|ipad).*applewebkit/i.test(n);
      }, { "../internals/engine-user-agent": 46 }], 46: [function(e, t, r) {
        var n = e("../internals/get-built-in");
        t.exports = n("navigator", "userAgent") || "";
      }, { "../internals/get-built-in": 55 }], 47: [function(e, t, r) {
        var n, o, i = e("../internals/global"), a = e("../internals/engine-user-agent"), s = i.process, l = s && s.versions, u = l && l.v8;
        u ? o = (n = u.split("."))[0] + n[1] : a && (!(n = a.match(/Edge\/(\d+)/)) || 74 <= n[1]) && (n = a.match(/Chrome\/(\d+)/)) && (o = n[1]), t.exports = o && +o;
      }, { "../internals/engine-user-agent": 46, "../internals/global": 58 }], 48: [function(e, t, r) {
        t.exports = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"];
      }, {}], 49: [function(e, t, r) {
        var c = e("../internals/global"), d = e("../internals/object-get-own-property-descriptor").f, f = e("../internals/create-non-enumerable-property"), h = e("../internals/redefine"), p = e("../internals/set-global"), y = e("../internals/copy-constructor-properties"), m = e("../internals/is-forced");
        t.exports = function(e2, t2) {
          var r2, n, o, i, a, s = e2.target, l = e2.global, u = e2.stat;
          if (r2 = l ? c : u ? c[s] || p(s, {}) : (c[s] || {}).prototype)
            for (n in t2) {
              if (i = t2[n], o = e2.noTargetGet ? (a = d(r2, n)) && a.value : r2[n], !m(l ? n : s + (u ? "." : "#") + n, e2.forced) && o !== void 0) {
                if (typeof i == typeof o)
                  continue;
                y(i, o);
              }
              (e2.sham || o && o.sham) && f(i, "sham", true), h(r2, n, i, e2);
            }
        };
      }, { "../internals/copy-constructor-properties": 32, "../internals/create-non-enumerable-property": 37, "../internals/global": 58, "../internals/is-forced": 72, "../internals/object-get-own-property-descriptor": 92, "../internals/redefine": 107, "../internals/set-global": 114 }], 50: [function(e, t, r) {
        t.exports = function(e2) {
          try {
            return !!e2();
          } catch (e3) {
            return true;
          }
        };
      }, {}], 51: [function(e, t, r) {
        "use strict";
        e("../modules/es.regexp.exec");
        var d = e("../internals/redefine"), f = e("../internals/fails"), h = e("../internals/well-known-symbol"), p = e("../internals/regexp-exec"), y = e("../internals/create-non-enumerable-property"), m = h("species"), g = !f(function() {
          var e2 = /./;
          return e2.exec = function() {
            var e3 = [];
            return e3.groups = { a: "7" }, e3;
          }, "".replace(e2, "$<a>") !== "7";
        }), v = "a".replace(/./, "$0") === "$0", n = h("replace"), b = !!/./[n] && /./[n]("a", "$0") === "", _ = !f(function() {
          var e2 = /(?:)/, t2 = e2.exec;
          e2.exec = function() {
            return t2.apply(this, arguments);
          };
          var r2 = "ab".split(e2);
          return r2.length !== 2 || r2[0] !== "a" || r2[1] !== "b";
        });
        t.exports = function(r2, e2, t2, n2) {
          var o = h(r2), i = !f(function() {
            var e3 = {};
            return e3[o] = function() {
              return 7;
            }, ""[r2](e3) != 7;
          }), a = i && !f(function() {
            var e3 = false, t3 = /a/;
            return r2 === "split" && ((t3 = { constructor: {} }).constructor[m] = function() {
              return t3;
            }, t3.flags = "", t3[o] = /./[o]), t3.exec = function() {
              return e3 = true, null;
            }, t3[o](""), !e3;
          });
          if (!i || !a || r2 === "replace" && (!g || !v || b) || r2 === "split" && !_) {
            var s = /./[o], l = t2(o, ""[r2], function(e3, t3, r3, n3, o2) {
              return t3.exec === p ? i && !o2 ? { done: true, value: s.call(t3, r3, n3) } : { done: true, value: e3.call(r3, t3, n3) } : { done: false };
            }, { REPLACE_KEEPS_$0: v, REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: b }), u = l[0], c = l[1];
            d(String.prototype, r2, u), d(RegExp.prototype, o, e2 == 2 ? function(e3, t3) {
              return c.call(e3, this, t3);
            } : function(e3) {
              return c.call(e3, this);
            });
          }
          n2 && y(RegExp.prototype[o], "sham", true);
        };
      }, { "../internals/create-non-enumerable-property": 37, "../internals/fails": 50, "../internals/redefine": 107, "../internals/regexp-exec": 109, "../internals/well-known-symbol": 145, "../modules/es.regexp.exec": 178 }], 52: [function(e, t, r) {
        var n = e("../internals/fails");
        t.exports = !n(function() {
          return Object.isExtensible(Object.preventExtensions({}));
        });
      }, { "../internals/fails": 50 }], 53: [function(e, t, r) {
        var i = e("../internals/a-function");
        t.exports = function(n, o, e2) {
          if (i(n), o === void 0)
            return n;
          switch (e2) {
            case 0:
              return function() {
                return n.call(o);
              };
            case 1:
              return function(e3) {
                return n.call(o, e3);
              };
            case 2:
              return function(e3, t2) {
                return n.call(o, e3, t2);
              };
            case 3:
              return function(e3, t2, r2) {
                return n.call(o, e3, t2, r2);
              };
          }
          return function() {
            return n.apply(o, arguments);
          };
        };
      }, { "../internals/a-function": 5 }], 54: [function(e, t, r) {
        "use strict";
        var i = e("../internals/a-function"), a = e("../internals/is-object"), s = [].slice, l = {};
        t.exports = Function.bind || function(t2) {
          var r2 = i(this), n = s.call(arguments, 1), o = function() {
            var e2 = n.concat(s.call(arguments));
            return this instanceof o ? function(e3, t3, r3) {
              if (!(t3 in l)) {
                for (var n2 = [], o2 = 0; o2 < t3; o2++)
                  n2[o2] = "a[" + o2 + "]";
                l[t3] = Function("C,a", "return new C(" + n2.join(",") + ")");
              }
              return l[t3](e3, r3);
            }(r2, e2.length, e2) : r2.apply(t2, e2);
          };
          return a(r2.prototype) && (o.prototype = r2.prototype), o;
        };
      }, { "../internals/a-function": 5, "../internals/is-object": 73 }], 55: [function(e, t, r) {
        function n(e2) {
          return typeof e2 == "function" ? e2 : void 0;
        }
        var o = e("../internals/path"), i = e("../internals/global");
        t.exports = function(e2, t2) {
          return arguments.length < 2 ? n(o[e2]) || n(i[e2]) : o[e2] && o[e2][t2] || i[e2] && i[e2][t2];
        };
      }, { "../internals/global": 58, "../internals/path": 103 }], 56: [function(e, t, r) {
        var n = e("../internals/classof"), o = e("../internals/iterators"), i = e("../internals/well-known-symbol")("iterator");
        t.exports = function(e2) {
          if (e2 != null)
            return e2[i] || e2["@@iterator"] || o[n(e2)];
        };
      }, { "../internals/classof": 29, "../internals/iterators": 78, "../internals/well-known-symbol": 145 }], 57: [function(e, t, r) {
        var n = e("../internals/an-object"), o = e("../internals/get-iterator-method");
        t.exports = function(e2) {
          var t2 = o(e2);
          if (typeof t2 != "function")
            throw TypeError(String(e2) + " is not iterable");
          return n(t2.call(e2));
        };
      }, { "../internals/an-object": 10, "../internals/get-iterator-method": 56 }], 58: [function(e, r, t) {
        (function(e2) {
          function t2(e3) {
            return e3 && e3.Math == Math && e3;
          }
          r.exports = t2(typeof globalThis == "object" && globalThis) || t2(typeof window == "object" && window) || t2(typeof self == "object" && self) || t2(typeof e2 == "object" && e2) || Function("return this")();
        }).call(this, typeof global != "undefined" ? global : typeof self != "undefined" ? self : typeof window != "undefined" ? window : {});
      }, {}], 59: [function(e, t, r) {
        var n = {}.hasOwnProperty;
        t.exports = function(e2, t2) {
          return n.call(e2, t2);
        };
      }, {}], 60: [function(e, t, r) {
        t.exports = {};
      }, {}], 61: [function(e, t, r) {
        var n = e("../internals/global");
        t.exports = function(e2, t2) {
          var r2 = n.console;
          r2 && r2.error && (arguments.length === 1 ? r2.error(e2) : r2.error(e2, t2));
        };
      }, { "../internals/global": 58 }], 62: [function(e, t, r) {
        var n = e("../internals/get-built-in");
        t.exports = n("document", "documentElement");
      }, { "../internals/get-built-in": 55 }], 63: [function(e, t, r) {
        var n = e("../internals/descriptors"), o = e("../internals/fails"), i = e("../internals/document-create-element");
        t.exports = !n && !o(function() {
          return Object.defineProperty(i("div"), "a", { get: function() {
            return 7;
          } }).a != 7;
        });
      }, { "../internals/descriptors": 42, "../internals/document-create-element": 43, "../internals/fails": 50 }], 64: [function(e, t, r) {
        var h = Math.abs, p = Math.pow, y = Math.floor, m = Math.log, g = Math.LN2;
        t.exports = { pack: function(e2, t2, r2) {
          var n, o, i, a = new Array(r2), s = 8 * r2 - t2 - 1, l = (1 << s) - 1, u = l >> 1, c = t2 === 23 ? p(2, -24) - p(2, -77) : 0, d = e2 < 0 || e2 === 0 && 1 / e2 < 0 ? 1 : 0, f = 0;
          for ((e2 = h(e2)) != e2 || e2 === 1 / 0 ? (o = e2 != e2 ? 1 : 0, n = l) : (n = y(m(e2) / g), e2 * (i = p(2, -n)) < 1 && (n--, i *= 2), 2 <= (e2 += 1 <= n + u ? c / i : c * p(2, 1 - u)) * i && (n++, i /= 2), l <= n + u ? (o = 0, n = l) : 1 <= n + u ? (o = (e2 * i - 1) * p(2, t2), n += u) : (o = e2 * p(2, u - 1) * p(2, t2), n = 0)); 8 <= t2; a[f++] = 255 & o, o /= 256, t2 -= 8)
            ;
          for (n = n << t2 | o, s += t2; 0 < s; a[f++] = 255 & n, n /= 256, s -= 8)
            ;
          return a[--f] |= 128 * d, a;
        }, unpack: function(e2, t2) {
          var r2, n = e2.length, o = 8 * n - t2 - 1, i = (1 << o) - 1, a = i >> 1, s = o - 7, l = n - 1, u = e2[l--], c = 127 & u;
          for (u >>= 7; 0 < s; c = 256 * c + e2[l], l--, s -= 8)
            ;
          for (r2 = c & (1 << -s) - 1, c >>= -s, s += t2; 0 < s; r2 = 256 * r2 + e2[l], l--, s -= 8)
            ;
          if (c === 0)
            c = 1 - a;
          else {
            if (c === i)
              return r2 ? NaN : u ? -1 / 0 : 1 / 0;
            r2 += p(2, t2), c -= a;
          }
          return (u ? -1 : 1) * r2 * p(2, c - t2);
        } };
      }, {}], 65: [function(e, t, r) {
        var n = e("../internals/fails"), o = e("../internals/classof-raw"), i = "".split;
        t.exports = n(function() {
          return !Object("z").propertyIsEnumerable(0);
        }) ? function(e2) {
          return o(e2) == "String" ? i.call(e2, "") : Object(e2);
        } : Object;
      }, { "../internals/classof-raw": 28, "../internals/fails": 50 }], 66: [function(e, t, r) {
        var i = e("../internals/is-object"), a = e("../internals/object-set-prototype-of");
        t.exports = function(e2, t2, r2) {
          var n, o;
          return a && typeof (n = t2.constructor) == "function" && n !== r2 && i(o = n.prototype) && o !== r2.prototype && a(e2, o), e2;
        };
      }, { "../internals/is-object": 73, "../internals/object-set-prototype-of": 100 }], 67: [function(e, t, r) {
        var n = e("../internals/shared-store"), o = Function.toString;
        typeof n.inspectSource != "function" && (n.inspectSource = function(e2) {
          return o.call(e2);
        }), t.exports = n.inspectSource;
      }, { "../internals/shared-store": 118 }], 68: [function(e, t, r) {
        function n(e2) {
          s(e2, c, { value: { objectID: "O" + ++d, weakData: {} } });
        }
        var o = e("../internals/hidden-keys"), i = e("../internals/is-object"), a = e("../internals/has"), s = e("../internals/object-define-property").f, l = e("../internals/uid"), u = e("../internals/freezing"), c = l("meta"), d = 0, f = Object.isExtensible || function() {
          return true;
        }, h = t.exports = { REQUIRED: false, fastKey: function(e2, t2) {
          if (!i(e2))
            return typeof e2 == "symbol" ? e2 : (typeof e2 == "string" ? "S" : "P") + e2;
          if (!a(e2, c)) {
            if (!f(e2))
              return "F";
            if (!t2)
              return "E";
            n(e2);
          }
          return e2[c].objectID;
        }, getWeakData: function(e2, t2) {
          if (!a(e2, c)) {
            if (!f(e2))
              return true;
            if (!t2)
              return false;
            n(e2);
          }
          return e2[c].weakData;
        }, onFreeze: function(e2) {
          return u && h.REQUIRED && f(e2) && !a(e2, c) && n(e2), e2;
        } };
        o[c] = true;
      }, { "../internals/freezing": 52, "../internals/has": 59, "../internals/hidden-keys": 60, "../internals/is-object": 73, "../internals/object-define-property": 91, "../internals/uid": 142 }], 69: [function(e, t, r) {
        var n, o, i, a = e("../internals/native-weak-map"), s = e("../internals/global"), l = e("../internals/is-object"), u = e("../internals/create-non-enumerable-property"), c = e("../internals/has"), d = e("../internals/shared-key"), f = e("../internals/hidden-keys"), h = s.WeakMap;
        if (a) {
          var p = new h(), y = p.get, m = p.has, g = p.set;
          n = function(e2, t2) {
            return g.call(p, e2, t2), t2;
          }, o = function(e2) {
            return y.call(p, e2) || {};
          }, i = function(e2) {
            return m.call(p, e2);
          };
        } else {
          var v = d("state");
          f[v] = true, n = function(e2, t2) {
            return u(e2, v, t2), t2;
          }, o = function(e2) {
            return c(e2, v) ? e2[v] : {};
          }, i = function(e2) {
            return c(e2, v);
          };
        }
        t.exports = { set: n, get: o, has: i, enforce: function(e2) {
          return i(e2) ? o(e2) : n(e2, {});
        }, getterFor: function(r2) {
          return function(e2) {
            var t2;
            if (!l(e2) || (t2 = o(e2)).type !== r2)
              throw TypeError("Incompatible receiver, " + r2 + " required");
            return t2;
          };
        } };
      }, { "../internals/create-non-enumerable-property": 37, "../internals/global": 58, "../internals/has": 59, "../internals/hidden-keys": 60, "../internals/is-object": 73, "../internals/native-weak-map": 84, "../internals/shared-key": 117 }], 70: [function(e, t, r) {
        var n = e("../internals/well-known-symbol"), o = e("../internals/iterators"), i = n("iterator"), a = Array.prototype;
        t.exports = function(e2) {
          return e2 !== void 0 && (o.Array === e2 || a[i] === e2);
        };
      }, { "../internals/iterators": 78, "../internals/well-known-symbol": 145 }], 71: [function(e, t, r) {
        var n = e("../internals/classof-raw");
        t.exports = Array.isArray || function(e2) {
          return n(e2) == "Array";
        };
      }, { "../internals/classof-raw": 28 }], 72: [function(e, t, r) {
        function n(e2, t2) {
          var r2 = s[a(e2)];
          return r2 == u || r2 != l && (typeof t2 == "function" ? o(t2) : !!t2);
        }
        var o = e("../internals/fails"), i = /#|\.prototype\./, a = n.normalize = function(e2) {
          return String(e2).replace(i, ".").toLowerCase();
        }, s = n.data = {}, l = n.NATIVE = "N", u = n.POLYFILL = "P";
        t.exports = n;
      }, { "../internals/fails": 50 }], 73: [function(e, t, r) {
        t.exports = function(e2) {
          return typeof e2 == "object" ? e2 !== null : typeof e2 == "function";
        };
      }, {}], 74: [function(e, t, r) {
        t.exports = false;
      }, {}], 75: [function(e, t, r) {
        var n = e("../internals/is-object"), o = e("../internals/classof-raw"), i = e("../internals/well-known-symbol")("match");
        t.exports = function(e2) {
          var t2;
          return n(e2) && ((t2 = e2[i]) !== void 0 ? !!t2 : o(e2) == "RegExp");
        };
      }, { "../internals/classof-raw": 28, "../internals/is-object": 73, "../internals/well-known-symbol": 145 }], 76: [function(e, t, r) {
        function h(e2, t2) {
          this.stopped = e2, this.result = t2;
        }
        var p = e("../internals/an-object"), y = e("../internals/is-array-iterator-method"), m = e("../internals/to-length"), g = e("../internals/function-bind-context"), v = e("../internals/get-iterator-method"), b = e("../internals/call-with-safe-iteration-closing");
        (t.exports = function(e2, t2, r2, n, o) {
          var i, a, s, l, u, c, d, f = g(t2, r2, n ? 2 : 1);
          if (o)
            i = e2;
          else {
            if (typeof (a = v(e2)) != "function")
              throw TypeError("Target is not iterable");
            if (y(a)) {
              for (s = 0, l = m(e2.length); s < l; s++)
                if ((u = n ? f(p(d = e2[s])[0], d[1]) : f(e2[s])) && u instanceof h)
                  return u;
              return new h(false);
            }
            i = a.call(e2);
          }
          for (c = i.next; !(d = c.call(i)).done; )
            if (typeof (u = b(i, f, d.value, n)) == "object" && u && u instanceof h)
              return u;
          return new h(false);
        }).stop = function(e2) {
          return new h(true, e2);
        };
      }, { "../internals/an-object": 10, "../internals/call-with-safe-iteration-closing": 26, "../internals/function-bind-context": 53, "../internals/get-iterator-method": 56, "../internals/is-array-iterator-method": 70, "../internals/to-length": 133 }], 77: [function(e, t, r) {
        "use strict";
        var n, o, i, a = e("../internals/object-get-prototype-of"), s = e("../internals/create-non-enumerable-property"), l = e("../internals/has"), u = e("../internals/well-known-symbol"), c = e("../internals/is-pure"), d = u("iterator"), f = false;
        [].keys && ("next" in (i = [].keys()) ? (o = a(a(i))) !== Object.prototype && (n = o) : f = true), n == null && (n = {}), c || l(n, d) || s(n, d, function() {
          return this;
        }), t.exports = { IteratorPrototype: n, BUGGY_SAFARI_ITERATORS: f };
      }, { "../internals/create-non-enumerable-property": 37, "../internals/has": 59, "../internals/is-pure": 74, "../internals/object-get-prototype-of": 96, "../internals/well-known-symbol": 145 }], 78: [function(e, t, r) {
        arguments[4][60][0].apply(r, arguments);
      }, { dup: 60 }], 79: [function(e, t, r) {
        t.exports = Math.sign || function(e2) {
          return (e2 = +e2) == 0 || e2 != e2 ? e2 : e2 < 0 ? -1 : 1;
        };
      }, {}], 80: [function(e, t, r) {
        var n, o, i, a, s, l, u, c, d = e("../internals/global"), f = e("../internals/object-get-own-property-descriptor").f, h = e("../internals/classof-raw"), p = e("../internals/task").set, y = e("../internals/engine-is-ios"), m = d.MutationObserver || d.WebKitMutationObserver, g = d.process, v = d.Promise, b = h(g) == "process", _ = f(d, "queueMicrotask"), x = _ && _.value;
        x || (n = function() {
          var e2, t2;
          for (b && (e2 = g.domain) && e2.exit(); o; ) {
            t2 = o.fn, o = o.next;
            try {
              t2();
            } catch (e3) {
              throw o ? a() : i = void 0, e3;
            }
          }
          i = void 0, e2 && e2.enter();
        }, a = b ? function() {
          g.nextTick(n);
        } : m && !y ? (s = true, l = document.createTextNode(""), new m(n).observe(l, { characterData: true }), function() {
          l.data = s = !s;
        }) : v && v.resolve ? (u = v.resolve(void 0), c = u.then, function() {
          c.call(u, n);
        }) : function() {
          p.call(d, n);
        }), t.exports = x || function(e2) {
          var t2 = { fn: e2, next: void 0 };
          i && (i.next = t2), o || (o = t2, a()), i = t2;
        };
      }, { "../internals/classof-raw": 28, "../internals/engine-is-ios": 45, "../internals/global": 58, "../internals/object-get-own-property-descriptor": 92, "../internals/task": 127 }], 81: [function(e, t, r) {
        var n = e("../internals/global");
        t.exports = n.Promise;
      }, { "../internals/global": 58 }], 82: [function(e, t, r) {
        var n = e("../internals/fails");
        t.exports = !!Object.getOwnPropertySymbols && !n(function() {
          return !String(Symbol());
        });
      }, { "../internals/fails": 50 }], 83: [function(e, t, r) {
        var n = e("../internals/fails"), o = e("../internals/well-known-symbol"), i = e("../internals/is-pure"), a = o("iterator");
        t.exports = !n(function() {
          var e2 = new URL("b?a=1&b=2&c=3", "http://a"), r2 = e2.searchParams, n2 = "";
          return e2.pathname = "c%20d", r2.forEach(function(e3, t2) {
            r2.delete("b"), n2 += t2 + e3;
          }), i && !e2.toJSON || !r2.sort || e2.href !== "http://a/c%20d?a=1&c=3" || r2.get("c") !== "3" || String(new URLSearchParams("?a=1")) !== "a=1" || !r2[a] || new URL("https://a@b").username !== "a" || new URLSearchParams(new URLSearchParams("a=b")).get("a") !== "b" || new URL("http://\u0442\u0435\u0441\u0442").host !== "xn--e1aybc" || new URL("http://a#\u0431").hash !== "#%D0%B1" || n2 !== "a1c3" || new URL("http://x", void 0).host !== "x";
        });
      }, { "../internals/fails": 50, "../internals/is-pure": 74, "../internals/well-known-symbol": 145 }], 84: [function(e, t, r) {
        var n = e("../internals/global"), o = e("../internals/inspect-source"), i = n.WeakMap;
        t.exports = typeof i == "function" && /native code/.test(o(i));
      }, { "../internals/global": 58, "../internals/inspect-source": 67 }], 85: [function(e, t, r) {
        "use strict";
        function n(e2) {
          var r2, n2;
          this.promise = new e2(function(e3, t2) {
            if (r2 !== void 0 || n2 !== void 0)
              throw TypeError("Bad Promise constructor");
            r2 = e3, n2 = t2;
          }), this.resolve = o(r2), this.reject = o(n2);
        }
        var o = e("../internals/a-function");
        t.exports.f = function(e2) {
          return new n(e2);
        };
      }, { "../internals/a-function": 5 }], 86: [function(e, t, r) {
        var n = e("../internals/is-regexp");
        t.exports = function(e2) {
          if (n(e2))
            throw TypeError("The method doesn't accept regular expressions");
          return e2;
        };
      }, { "../internals/is-regexp": 75 }], 87: [function(e, t, r) {
        var n = e("../internals/global").isFinite;
        t.exports = Number.isFinite || function(e2) {
          return typeof e2 == "number" && n(e2);
        };
      }, { "../internals/global": 58 }], 88: [function(e, t, r) {
        "use strict";
        var f = e("../internals/descriptors"), n = e("../internals/fails"), h = e("../internals/object-keys"), p = e("../internals/object-get-own-property-symbols"), y = e("../internals/object-property-is-enumerable"), m = e("../internals/to-object"), g = e("../internals/indexed-object"), o = Object.assign, i = Object.defineProperty;
        t.exports = !o || n(function() {
          if (f && o({ b: 1 }, o(i({}, "a", { enumerable: true, get: function() {
            i(this, "b", { value: 3, enumerable: false });
          } }), { b: 2 })).b !== 1)
            return true;
          var e2 = {}, t2 = {}, r2 = Symbol(), n2 = "abcdefghijklmnopqrst";
          return e2[r2] = 7, n2.split("").forEach(function(e3) {
            t2[e3] = e3;
          }), o({}, e2)[r2] != 7 || h(o({}, t2)).join("") != n2;
        }) ? function(e2, t2) {
          for (var r2 = m(e2), n2 = arguments.length, o2 = 1, i2 = p.f, a = y.f; o2 < n2; )
            for (var s, l = g(arguments[o2++]), u = i2 ? h(l).concat(i2(l)) : h(l), c = u.length, d = 0; d < c; )
              s = u[d++], f && !a.call(l, s) || (r2[s] = l[s]);
          return r2;
        } : o;
      }, { "../internals/descriptors": 42, "../internals/fails": 50, "../internals/indexed-object": 65, "../internals/object-get-own-property-symbols": 95, "../internals/object-keys": 98, "../internals/object-property-is-enumerable": 99, "../internals/to-object": 134 }], 89: [function(e, t, r) {
        function n() {
        }
        function o(e2) {
          return "<script>" + e2 + "</" + p + ">";
        }
        var i, a = e("../internals/an-object"), s = e("../internals/object-define-properties"), l = e("../internals/enum-bug-keys"), u = e("../internals/hidden-keys"), c = e("../internals/html"), d = e("../internals/document-create-element"), f = e("../internals/shared-key"), h = "prototype", p = "script", y = f("IE_PROTO"), m = function() {
          try {
            i = document.domain && new ActiveXObject("htmlfile");
          } catch (e3) {
          }
          var e2, t2;
          m = i ? function(e3) {
            e3.write(o("")), e3.close();
            var t3 = e3.parentWindow.Object;
            return e3 = null, t3;
          }(i) : ((t2 = d("iframe")).style.display = "none", c.appendChild(t2), t2.src = String("javascript:"), (e2 = t2.contentWindow.document).open(), e2.write(o("document.F=Object")), e2.close(), e2.F);
          for (var r2 = l.length; r2--; )
            delete m[h][l[r2]];
          return m();
        };
        u[y] = true, t.exports = Object.create || function(e2, t2) {
          var r2;
          return e2 !== null ? (n[h] = a(e2), r2 = new n(), n[h] = null, r2[y] = e2) : r2 = m(), t2 === void 0 ? r2 : s(r2, t2);
        };
      }, { "../internals/an-object": 10, "../internals/document-create-element": 43, "../internals/enum-bug-keys": 48, "../internals/hidden-keys": 60, "../internals/html": 62, "../internals/object-define-properties": 90, "../internals/shared-key": 117 }], 90: [function(e, t, r) {
        var n = e("../internals/descriptors"), a = e("../internals/object-define-property"), s = e("../internals/an-object"), l = e("../internals/object-keys");
        t.exports = n ? Object.defineProperties : function(e2, t2) {
          s(e2);
          for (var r2, n2 = l(t2), o = n2.length, i = 0; i < o; )
            a.f(e2, r2 = n2[i++], t2[r2]);
          return e2;
        };
      }, { "../internals/an-object": 10, "../internals/descriptors": 42, "../internals/object-define-property": 91, "../internals/object-keys": 98 }], 91: [function(e, t, r) {
        var n = e("../internals/descriptors"), o = e("../internals/ie8-dom-define"), i = e("../internals/an-object"), a = e("../internals/to-primitive"), s = Object.defineProperty;
        r.f = n ? s : function(e2, t2, r2) {
          if (i(e2), t2 = a(t2, true), i(r2), o)
            try {
              return s(e2, t2, r2);
            } catch (e3) {
            }
          if ("get" in r2 || "set" in r2)
            throw TypeError("Accessors not supported");
          return "value" in r2 && (e2[t2] = r2.value), e2;
        };
      }, { "../internals/an-object": 10, "../internals/descriptors": 42, "../internals/ie8-dom-define": 63, "../internals/to-primitive": 137 }], 92: [function(e, t, r) {
        var n = e("../internals/descriptors"), o = e("../internals/object-property-is-enumerable"), i = e("../internals/create-property-descriptor"), a = e("../internals/to-indexed-object"), s = e("../internals/to-primitive"), l = e("../internals/has"), u = e("../internals/ie8-dom-define"), c = Object.getOwnPropertyDescriptor;
        r.f = n ? c : function(e2, t2) {
          if (e2 = a(e2), t2 = s(t2, true), u)
            try {
              return c(e2, t2);
            } catch (e3) {
            }
          if (l(e2, t2))
            return i(!o.f.call(e2, t2), e2[t2]);
        };
      }, { "../internals/create-property-descriptor": 38, "../internals/descriptors": 42, "../internals/has": 59, "../internals/ie8-dom-define": 63, "../internals/object-property-is-enumerable": 99, "../internals/to-indexed-object": 131, "../internals/to-primitive": 137 }], 93: [function(e, t, r) {
        var n = e("../internals/to-indexed-object"), o = e("../internals/object-get-own-property-names").f, i = {}.toString, a = typeof window == "object" && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];
        t.exports.f = function(e2) {
          return a && i.call(e2) == "[object Window]" ? function(e3) {
            try {
              return o(e3);
            } catch (e4) {
              return a.slice();
            }
          }(e2) : o(n(e2));
        };
      }, { "../internals/object-get-own-property-names": 94, "../internals/to-indexed-object": 131 }], 94: [function(e, t, r) {
        var n = e("../internals/object-keys-internal"), o = e("../internals/enum-bug-keys").concat("length", "prototype");
        r.f = Object.getOwnPropertyNames || function(e2) {
          return n(e2, o);
        };
      }, { "../internals/enum-bug-keys": 48, "../internals/object-keys-internal": 97 }], 95: [function(e, t, r) {
        r.f = Object.getOwnPropertySymbols;
      }, {}], 96: [function(e, t, r) {
        var n = e("../internals/has"), o = e("../internals/to-object"), i = e("../internals/shared-key"), a = e("../internals/correct-prototype-getter"), s = i("IE_PROTO"), l = Object.prototype;
        t.exports = a ? Object.getPrototypeOf : function(e2) {
          return e2 = o(e2), n(e2, s) ? e2[s] : typeof e2.constructor == "function" && e2 instanceof e2.constructor ? e2.constructor.prototype : e2 instanceof Object ? l : null;
        };
      }, { "../internals/correct-prototype-getter": 34, "../internals/has": 59, "../internals/shared-key": 117, "../internals/to-object": 134 }], 97: [function(e, t, r) {
        var a = e("../internals/has"), s = e("../internals/to-indexed-object"), l = e("../internals/array-includes").indexOf, u = e("../internals/hidden-keys");
        t.exports = function(e2, t2) {
          var r2, n = s(e2), o = 0, i = [];
          for (r2 in n)
            !a(u, r2) && a(n, r2) && i.push(r2);
          for (; t2.length > o; )
            a(n, r2 = t2[o++]) && (~l(i, r2) || i.push(r2));
          return i;
        };
      }, { "../internals/array-includes": 18, "../internals/has": 59, "../internals/hidden-keys": 60, "../internals/to-indexed-object": 131 }], 98: [function(e, t, r) {
        var n = e("../internals/object-keys-internal"), o = e("../internals/enum-bug-keys");
        t.exports = Object.keys || function(e2) {
          return n(e2, o);
        };
      }, { "../internals/enum-bug-keys": 48, "../internals/object-keys-internal": 97 }], 99: [function(e, t, r) {
        "use strict";
        var n = {}.propertyIsEnumerable, o = Object.getOwnPropertyDescriptor, i = o && !n.call({ 1: 2 }, 1);
        r.f = i ? function(e2) {
          var t2 = o(this, e2);
          return !!t2 && t2.enumerable;
        } : n;
      }, {}], 100: [function(e, t, r) {
        var o = e("../internals/an-object"), i = e("../internals/a-possible-prototype");
        t.exports = Object.setPrototypeOf || ("__proto__" in {} ? function() {
          var r2, n = false, e2 = {};
          try {
            (r2 = Object.getOwnPropertyDescriptor(Object.prototype, "__proto__").set).call(e2, []), n = e2 instanceof Array;
          } catch (e3) {
          }
          return function(e3, t2) {
            return o(e3), i(t2), n ? r2.call(e3, t2) : e3.__proto__ = t2, e3;
          };
        }() : void 0);
      }, { "../internals/a-possible-prototype": 6, "../internals/an-object": 10 }], 101: [function(e, t, r) {
        "use strict";
        var n = e("../internals/to-string-tag-support"), o = e("../internals/classof");
        t.exports = n ? {}.toString : function() {
          return "[object " + o(this) + "]";
        };
      }, { "../internals/classof": 29, "../internals/to-string-tag-support": 138 }], 102: [function(e, t, r) {
        var n = e("../internals/get-built-in"), o = e("../internals/object-get-own-property-names"), i = e("../internals/object-get-own-property-symbols"), a = e("../internals/an-object");
        t.exports = n("Reflect", "ownKeys") || function(e2) {
          var t2 = o.f(a(e2)), r2 = i.f;
          return r2 ? t2.concat(r2(e2)) : t2;
        };
      }, { "../internals/an-object": 10, "../internals/get-built-in": 55, "../internals/object-get-own-property-names": 94, "../internals/object-get-own-property-symbols": 95 }], 103: [function(e, t, r) {
        var n = e("../internals/global");
        t.exports = n;
      }, { "../internals/global": 58 }], 104: [function(e, t, r) {
        t.exports = function(e2) {
          try {
            return { error: false, value: e2() };
          } catch (e3) {
            return { error: true, value: e3 };
          }
        };
      }, {}], 105: [function(e, t, r) {
        var n = e("../internals/an-object"), o = e("../internals/is-object"), i = e("../internals/new-promise-capability");
        t.exports = function(e2, t2) {
          if (n(e2), o(t2) && t2.constructor === e2)
            return t2;
          var r2 = i.f(e2);
          return (0, r2.resolve)(t2), r2.promise;
        };
      }, { "../internals/an-object": 10, "../internals/is-object": 73, "../internals/new-promise-capability": 85 }], 106: [function(e, t, r) {
        var o = e("../internals/redefine");
        t.exports = function(e2, t2, r2) {
          for (var n in t2)
            o(e2, n, t2[n], r2);
          return e2;
        };
      }, { "../internals/redefine": 107 }], 107: [function(e, t, r) {
        var s = e("../internals/global"), l = e("../internals/create-non-enumerable-property"), u = e("../internals/has"), c = e("../internals/set-global"), n = e("../internals/inspect-source"), o = e("../internals/internal-state"), i = o.get, d = o.enforce, f = String(String).split("String");
        (t.exports = function(e2, t2, r2, n2) {
          var o2 = !!n2 && !!n2.unsafe, i2 = !!n2 && !!n2.enumerable, a = !!n2 && !!n2.noTargetGet;
          typeof r2 == "function" && (typeof t2 != "string" || u(r2, "name") || l(r2, "name", t2), d(r2).source = f.join(typeof t2 == "string" ? t2 : "")), e2 !== s ? (o2 ? !a && e2[t2] && (i2 = true) : delete e2[t2], i2 ? e2[t2] = r2 : l(e2, t2, r2)) : i2 ? e2[t2] = r2 : c(t2, r2);
        })(Function.prototype, "toString", function() {
          return typeof this == "function" && i(this).source || n(this);
        });
      }, { "../internals/create-non-enumerable-property": 37, "../internals/global": 58, "../internals/has": 59, "../internals/inspect-source": 67, "../internals/internal-state": 69, "../internals/set-global": 114 }], 108: [function(e, t, r) {
        var o = e("./classof-raw"), i = e("./regexp-exec");
        t.exports = function(e2, t2) {
          var r2 = e2.exec;
          if (typeof r2 == "function") {
            var n = r2.call(e2, t2);
            if (typeof n != "object")
              throw TypeError("RegExp exec method returned something other than an Object or null");
            return n;
          }
          if (o(e2) !== "RegExp")
            throw TypeError("RegExp#exec called on incompatible receiver");
          return i.call(e2, t2);
        };
      }, { "./classof-raw": 28, "./regexp-exec": 109 }], 109: [function(e, t, r) {
        "use strict";
        var n, o, d = e("./regexp-flags"), i = e("./regexp-sticky-helpers"), f = RegExp.prototype.exec, h = String.prototype.replace, a = f, p = (n = /a/, o = /b*/g, f.call(n, "a"), f.call(o, "a"), n.lastIndex !== 0 || o.lastIndex !== 0), y = i.UNSUPPORTED_Y || i.BROKEN_CARET, m = /()??/.exec("")[1] !== void 0;
        (p || m || y) && (a = function(e2) {
          var t2, r2, n2, o2, i2 = this, a2 = y && i2.sticky, s = d.call(i2), l = i2.source, u = 0, c = e2;
          return a2 && ((s = s.replace("y", "")).indexOf("g") === -1 && (s += "g"), c = String(e2).slice(i2.lastIndex), 0 < i2.lastIndex && (!i2.multiline || i2.multiline && e2[i2.lastIndex - 1] !== "\n") && (l = "(?: " + l + ")", c = " " + c, u++), r2 = new RegExp("^(?:" + l + ")", s)), m && (r2 = new RegExp("^" + l + "$(?!\\s)", s)), p && (t2 = i2.lastIndex), n2 = f.call(a2 ? r2 : i2, c), a2 ? n2 ? (n2.input = n2.input.slice(u), n2[0] = n2[0].slice(u), n2.index = i2.lastIndex, i2.lastIndex += n2[0].length) : i2.lastIndex = 0 : p && n2 && (i2.lastIndex = i2.global ? n2.index + n2[0].length : t2), m && n2 && 1 < n2.length && h.call(n2[0], r2, function() {
            for (o2 = 1; o2 < arguments.length - 2; o2++)
              arguments[o2] === void 0 && (n2[o2] = void 0);
          }), n2;
        }), t.exports = a;
      }, { "./regexp-flags": 110, "./regexp-sticky-helpers": 111 }], 110: [function(e, t, r) {
        "use strict";
        var n = e("../internals/an-object");
        t.exports = function() {
          var e2 = n(this), t2 = "";
          return e2.global && (t2 += "g"), e2.ignoreCase && (t2 += "i"), e2.multiline && (t2 += "m"), e2.dotAll && (t2 += "s"), e2.unicode && (t2 += "u"), e2.sticky && (t2 += "y"), t2;
        };
      }, { "../internals/an-object": 10 }], 111: [function(e, t, r) {
        "use strict";
        var n = e("./fails");
        function o(e2, t2) {
          return RegExp(e2, t2);
        }
        r.UNSUPPORTED_Y = n(function() {
          var e2 = o("a", "y");
          return e2.lastIndex = 2, e2.exec("abcd") != null;
        }), r.BROKEN_CARET = n(function() {
          var e2 = o("^r", "gy");
          return e2.lastIndex = 2, e2.exec("str") != null;
        });
      }, { "./fails": 50 }], 112: [function(e, t, r) {
        t.exports = function(e2) {
          if (e2 == null)
            throw TypeError("Can't call method on " + e2);
          return e2;
        };
      }, {}], 113: [function(e, t, r) {
        t.exports = Object.is || function(e2, t2) {
          return e2 === t2 ? e2 !== 0 || 1 / e2 == 1 / t2 : e2 != e2 && t2 != t2;
        };
      }, {}], 114: [function(e, t, r) {
        var n = e("../internals/global"), o = e("../internals/create-non-enumerable-property");
        t.exports = function(t2, r2) {
          try {
            o(n, t2, r2);
          } catch (e2) {
            n[t2] = r2;
          }
          return r2;
        };
      }, { "../internals/create-non-enumerable-property": 37, "../internals/global": 58 }], 115: [function(e, t, r) {
        "use strict";
        var n = e("../internals/get-built-in"), o = e("../internals/object-define-property"), i = e("../internals/well-known-symbol"), a = e("../internals/descriptors"), s = i("species");
        t.exports = function(e2) {
          var t2 = n(e2), r2 = o.f;
          a && t2 && !t2[s] && r2(t2, s, { configurable: true, get: function() {
            return this;
          } });
        };
      }, { "../internals/descriptors": 42, "../internals/get-built-in": 55, "../internals/object-define-property": 91, "../internals/well-known-symbol": 145 }], 116: [function(e, t, r) {
        var n = e("../internals/object-define-property").f, o = e("../internals/has"), i = e("../internals/well-known-symbol")("toStringTag");
        t.exports = function(e2, t2, r2) {
          e2 && !o(e2 = r2 ? e2 : e2.prototype, i) && n(e2, i, { configurable: true, value: t2 });
        };
      }, { "../internals/has": 59, "../internals/object-define-property": 91, "../internals/well-known-symbol": 145 }], 117: [function(e, t, r) {
        var n = e("../internals/shared"), o = e("../internals/uid"), i = n("keys");
        t.exports = function(e2) {
          return i[e2] || (i[e2] = o(e2));
        };
      }, { "../internals/shared": 119, "../internals/uid": 142 }], 118: [function(e, t, r) {
        var n = e("../internals/global"), o = e("../internals/set-global"), i = "__core-js_shared__", a = n[i] || o(i, {});
        t.exports = a;
      }, { "../internals/global": 58, "../internals/set-global": 114 }], 119: [function(e, t, r) {
        var n = e("../internals/is-pure"), o = e("../internals/shared-store");
        (t.exports = function(e2, t2) {
          return o[e2] || (o[e2] = t2 !== void 0 ? t2 : {});
        })("versions", []).push({ version: "3.6.5", mode: n ? "pure" : "global", copyright: "\xA9 2020 Denis Pushkarev (zloirock.ru)" });
      }, { "../internals/is-pure": 74, "../internals/shared-store": 118 }], 120: [function(e, t, r) {
        var o = e("../internals/an-object"), i = e("../internals/a-function"), a = e("../internals/well-known-symbol")("species");
        t.exports = function(e2, t2) {
          var r2, n = o(e2).constructor;
          return n === void 0 || (r2 = o(n)[a]) == null ? t2 : i(r2);
        };
      }, { "../internals/a-function": 5, "../internals/an-object": 10, "../internals/well-known-symbol": 145 }], 121: [function(e, t, r) {
        var n = e("../internals/fails");
        t.exports = function(t2) {
          return n(function() {
            var e2 = ""[t2]('"');
            return e2 !== e2.toLowerCase() || 3 < e2.split('"').length;
          });
        };
      }, { "../internals/fails": 50 }], 122: [function(e, t, r) {
        function n(s) {
          return function(e2, t2) {
            var r2, n2, o = String(u(e2)), i = l(t2), a = o.length;
            return i < 0 || a <= i ? s ? "" : void 0 : (r2 = o.charCodeAt(i)) < 55296 || 56319 < r2 || i + 1 === a || (n2 = o.charCodeAt(i + 1)) < 56320 || 57343 < n2 ? s ? o.charAt(i) : r2 : s ? o.slice(i, i + 2) : n2 - 56320 + (r2 - 55296 << 10) + 65536;
          };
        }
        var l = e("../internals/to-integer"), u = e("../internals/require-object-coercible");
        t.exports = { codeAt: n(false), charAt: n(true) };
      }, { "../internals/require-object-coercible": 112, "../internals/to-integer": 132 }], 123: [function(e, t, r) {
        "use strict";
        function g(e2) {
          return e2 + 22 + 75 * (e2 < 26);
        }
        function v(e2, t2, r2) {
          var n = 0;
          for (e2 = r2 ? x(e2 / 700) : e2 >> 1, e2 += x(e2 / t2); 455 < e2; n += 36)
            e2 = x(e2 / 35);
          return x(n + 36 * e2 / (e2 + 38));
        }
        function i(e2) {
          var t2, r2, n = [], o = (e2 = function(e3) {
            for (var t3 = [], r3 = 0, n2 = e3.length; r3 < n2; ) {
              var o2 = e3.charCodeAt(r3++);
              if (55296 <= o2 && o2 <= 56319 && r3 < n2) {
                var i3 = e3.charCodeAt(r3++);
                (64512 & i3) == 56320 ? t3.push(((1023 & o2) << 10) + (1023 & i3) + 65536) : (t3.push(o2), r3--);
              } else
                t3.push(o2);
            }
            return t3;
          }(e2)).length, i2 = 128, a2 = 0, s2 = 72;
          for (t2 = 0; t2 < e2.length; t2++)
            (r2 = e2[t2]) < 128 && n.push(w(r2));
          var l = n.length, u = l;
          for (l && n.push("-"); u < o; ) {
            var c = b;
            for (t2 = 0; t2 < e2.length; t2++)
              i2 <= (r2 = e2[t2]) && r2 < c && (c = r2);
            var d = u + 1;
            if (c - i2 > x((b - a2) / d))
              throw RangeError(_);
            for (a2 += (c - i2) * d, i2 = c, t2 = 0; t2 < e2.length; t2++) {
              if ((r2 = e2[t2]) < i2 && ++a2 > b)
                throw RangeError(_);
              if (r2 == i2) {
                for (var f = a2, h = 36; ; h += 36) {
                  var p = h <= s2 ? 1 : s2 + 26 <= h ? 26 : h - s2;
                  if (f < p)
                    break;
                  var y = f - p, m = 36 - p;
                  n.push(w(g(p + y % m))), f = x(y / m);
                }
                n.push(w(g(f))), s2 = v(a2, d, u == l), a2 = 0, ++u;
              }
            }
            ++a2, ++i2;
          }
          return n.join("");
        }
        var b = 2147483647, a = /[^\0-\u007E]/, s = /[.\u3002\uFF0E\uFF61]/g, _ = "Overflow: input needs wider integers to process", x = Math.floor, w = String.fromCharCode;
        t.exports = function(e2) {
          var t2, r2, n = [], o = e2.toLowerCase().replace(s, ".").split(".");
          for (t2 = 0; t2 < o.length; t2++)
            r2 = o[t2], n.push(a.test(r2) ? "xn--" + i(r2) : r2);
          return n.join(".");
        };
      }, {}], 124: [function(e, t, r) {
        "use strict";
        var o = e("../internals/to-integer"), i = e("../internals/require-object-coercible");
        t.exports = "".repeat || function(e2) {
          var t2 = String(i(this)), r2 = "", n = o(e2);
          if (n < 0 || n == 1 / 0)
            throw RangeError("Wrong number of repetitions");
          for (; 0 < n; (n >>>= 1) && (t2 += t2))
            1 & n && (r2 += t2);
          return r2;
        };
      }, { "../internals/require-object-coercible": 112, "../internals/to-integer": 132 }], 125: [function(e, t, r) {
        var n = e("../internals/fails"), o = e("../internals/whitespaces");
        t.exports = function(e2) {
          return n(function() {
            return !!o[e2]() || "\u200B\x85\u180E"[e2]() != "\u200B\x85\u180E" || o[e2].name !== e2;
          });
        };
      }, { "../internals/fails": 50, "../internals/whitespaces": 146 }], 126: [function(e, t, r) {
        function n(r2) {
          return function(e2) {
            var t2 = String(o(e2));
            return 1 & r2 && (t2 = t2.replace(a, "")), 2 & r2 && (t2 = t2.replace(s, "")), t2;
          };
        }
        var o = e("../internals/require-object-coercible"), i = "[" + e("../internals/whitespaces") + "]", a = RegExp("^" + i + i + "*"), s = RegExp(i + i + "*$");
        t.exports = { start: n(1), end: n(2), trim: n(3) };
      }, { "../internals/require-object-coercible": 112, "../internals/whitespaces": 146 }], 127: [function(e, t, r) {
        function n(e2) {
          if (j.hasOwnProperty(e2)) {
            var t2 = j[e2];
            delete j[e2], t2();
          }
        }
        function o(e2) {
          return function() {
            n(e2);
          };
        }
        function i(e2) {
          n(e2.data);
        }
        function a(e2) {
          c.postMessage(e2 + "", g.protocol + "//" + g.host);
        }
        var s, l, u, c = e("../internals/global"), d = e("../internals/fails"), f = e("../internals/classof-raw"), h = e("../internals/function-bind-context"), p = e("../internals/html"), y = e("../internals/document-create-element"), m = e("../internals/engine-is-ios"), g = c.location, v = c.setImmediate, b = c.clearImmediate, _ = c.process, x = c.MessageChannel, w = c.Dispatch, S = 0, j = {}, M = "onreadystatechange";
        v && b || (v = function(e2) {
          for (var t2 = [], r2 = 1; r2 < arguments.length; )
            t2.push(arguments[r2++]);
          return j[++S] = function() {
            (typeof e2 == "function" ? e2 : Function(e2)).apply(void 0, t2);
          }, s(S), S;
        }, b = function(e2) {
          delete j[e2];
        }, f(_) == "process" ? s = function(e2) {
          _.nextTick(o(e2));
        } : w && w.now ? s = function(e2) {
          w.now(o(e2));
        } : x && !m ? (u = (l = new x()).port2, l.port1.onmessage = i, s = h(u.postMessage, u, 1)) : !c.addEventListener || typeof postMessage != "function" || c.importScripts || d(a) || g.protocol === "file:" ? s = M in y("script") ? function(e2) {
          p.appendChild(y("script"))[M] = function() {
            p.removeChild(this), n(e2);
          };
        } : function(e2) {
          setTimeout(o(e2), 0);
        } : (s = a, c.addEventListener("message", i, false))), t.exports = { set: v, clear: b };
      }, { "../internals/classof-raw": 28, "../internals/document-create-element": 43, "../internals/engine-is-ios": 45, "../internals/fails": 50, "../internals/function-bind-context": 53, "../internals/global": 58, "../internals/html": 62 }], 128: [function(e, t, r) {
        var n = e("../internals/classof-raw");
        t.exports = function(e2) {
          if (typeof e2 != "number" && n(e2) != "Number")
            throw TypeError("Incorrect invocation");
          return +e2;
        };
      }, { "../internals/classof-raw": 28 }], 129: [function(e, t, r) {
        var n = e("../internals/to-integer"), o = Math.max, i = Math.min;
        t.exports = function(e2, t2) {
          var r2 = n(e2);
          return r2 < 0 ? o(r2 + t2, 0) : i(r2, t2);
        };
      }, { "../internals/to-integer": 132 }], 130: [function(e, t, r) {
        var n = e("../internals/to-integer"), o = e("../internals/to-length");
        t.exports = function(e2) {
          if (e2 === void 0)
            return 0;
          var t2 = n(e2), r2 = o(t2);
          if (t2 !== r2)
            throw RangeError("Wrong length or index");
          return r2;
        };
      }, { "../internals/to-integer": 132, "../internals/to-length": 133 }], 131: [function(e, t, r) {
        var n = e("../internals/indexed-object"), o = e("../internals/require-object-coercible");
        t.exports = function(e2) {
          return n(o(e2));
        };
      }, { "../internals/indexed-object": 65, "../internals/require-object-coercible": 112 }], 132: [function(e, t, r) {
        var n = Math.ceil, o = Math.floor;
        t.exports = function(e2) {
          return isNaN(e2 = +e2) ? 0 : (0 < e2 ? o : n)(e2);
        };
      }, {}], 133: [function(e, t, r) {
        var n = e("../internals/to-integer"), o = Math.min;
        t.exports = function(e2) {
          return 0 < e2 ? o(n(e2), 9007199254740991) : 0;
        };
      }, { "../internals/to-integer": 132 }], 134: [function(e, t, r) {
        var n = e("../internals/require-object-coercible");
        t.exports = function(e2) {
          return Object(n(e2));
        };
      }, { "../internals/require-object-coercible": 112 }], 135: [function(e, t, r) {
        var n = e("../internals/to-positive-integer");
        t.exports = function(e2, t2) {
          var r2 = n(e2);
          if (r2 % t2)
            throw RangeError("Wrong offset");
          return r2;
        };
      }, { "../internals/to-positive-integer": 136 }], 136: [function(e, t, r) {
        var n = e("../internals/to-integer");
        t.exports = function(e2) {
          var t2 = n(e2);
          if (t2 < 0)
            throw RangeError("The argument can't be less than 0");
          return t2;
        };
      }, { "../internals/to-integer": 132 }], 137: [function(e, t, r) {
        var o = e("../internals/is-object");
        t.exports = function(e2, t2) {
          if (!o(e2))
            return e2;
          var r2, n;
          if (t2 && typeof (r2 = e2.toString) == "function" && !o(n = r2.call(e2)))
            return n;
          if (typeof (r2 = e2.valueOf) == "function" && !o(n = r2.call(e2)))
            return n;
          if (!t2 && typeof (r2 = e2.toString) == "function" && !o(n = r2.call(e2)))
            return n;
          throw TypeError("Can't convert object to primitive value");
        };
      }, { "../internals/is-object": 73 }], 138: [function(e, t, r) {
        var n = {};
        n[e("../internals/well-known-symbol")("toStringTag")] = "z", t.exports = String(n) === "[object z]";
      }, { "../internals/well-known-symbol": 145 }], 139: [function(e, t, r) {
        "use strict";
        function p(e2, t2) {
          for (var r2 = 0, n2 = t2.length, o2 = new (X(e2))(n2); r2 < n2; )
            o2[r2] = t2[r2++];
          return o2;
        }
        function n(e2, t2) {
          U(e2, t2, { get: function() {
            return D(this)[t2];
          } });
        }
        function y(e2) {
          var t2;
          return e2 instanceof G || (t2 = S(e2)) == "ArrayBuffer" || t2 == "SharedArrayBuffer";
        }
        function o(e2, t2) {
          return Y(e2) && typeof t2 != "symbol" && t2 in e2 && String(+t2) == String(t2);
        }
        function i(e2, t2) {
          return o(e2, t2 = h(t2, true)) ? f(2, e2[t2]) : N(e2, t2);
        }
        function a(e2, t2, r2) {
          return !(o(e2, t2 = h(t2, true)) && j(r2) && w(r2, "value")) || w(r2, "get") || w(r2, "set") || r2.configurable || w(r2, "writable") && !r2.writable || w(r2, "enumerable") && !r2.enumerable ? U(e2, t2, r2) : (e2[t2] = r2.value, e2);
        }
        var l = e("../internals/export"), u = e("../internals/global"), s = e("../internals/descriptors"), m = e("../internals/typed-array-constructors-require-wrappers"), c = e("../internals/array-buffer-view-core"), d = e("../internals/array-buffer"), g = e("../internals/an-instance"), f = e("../internals/create-property-descriptor"), v = e("../internals/create-non-enumerable-property"), b = e("../internals/to-length"), _ = e("../internals/to-index"), x = e("../internals/to-offset"), h = e("../internals/to-primitive"), w = e("../internals/has"), S = e("../internals/classof"), j = e("../internals/is-object"), M = e("../internals/object-create"), E = e("../internals/object-set-prototype-of"), T = e("../internals/object-get-own-property-names").f, O = e("../internals/typed-array-from"), C = e("../internals/array-iteration").forEach, L = e("../internals/set-species"), P = e("../internals/object-define-property"), k = e("../internals/object-get-own-property-descriptor"), A = e("../internals/internal-state"), R = e("../internals/inherit-if-required"), D = A.get, I = A.set, U = P.f, N = k.f, F = Math.round, B = u.RangeError, G = d.ArrayBuffer, V = d.DataView, z = c.NATIVE_ARRAY_BUFFER_VIEWS, H = c.TYPED_ARRAY_TAG, W = c.TypedArray, q = c.TypedArrayPrototype, X = c.aTypedArrayConstructor, Y = c.isTypedArray, Z = "BYTES_PER_ELEMENT", Q = "Wrong length";
        s ? (z || (k.f = i, P.f = a, n(q, "buffer"), n(q, "byteOffset"), n(q, "byteLength"), n(q, "length")), l({ target: "Object", stat: true, forced: !z }, { getOwnPropertyDescriptor: i, defineProperty: a }), t.exports = function(e2, t2, i2) {
          function c2(e3, o3) {
            U(e3, o3, { get: function() {
              return e4 = o3, (t3 = D(this)).view[r2](e4 * d2 + t3.byteOffset, true);
              var e4, t3;
            }, set: function(e4) {
              return t3 = o3, r3 = e4, n3 = D(this), i2 && (r3 = (r3 = F(r3)) < 0 ? 0 : 255 < r3 ? 255 : 255 & r3), void n3.view[a2](t3 * d2 + n3.byteOffset, r3, true);
              var t3, r3, n3;
            }, enumerable: true });
          }
          var d2 = e2.match(/\d+$/)[0] / 8, f2 = e2 + (i2 ? "Clamped" : "") + "Array", r2 = "get" + e2, a2 = "set" + e2, o2 = u[f2], h2 = o2, n2 = h2 && h2.prototype, s2 = {};
          z ? m && (h2 = t2(function(e3, t3, r3, n3) {
            return g(e3, h2, f2), R(j(t3) ? y(t3) ? n3 !== void 0 ? new o2(t3, x(r3, d2), n3) : r3 !== void 0 ? new o2(t3, x(r3, d2)) : new o2(t3) : Y(t3) ? p(h2, t3) : O.call(h2, t3) : new o2(_(t3)), e3, h2);
          }), E && E(h2, W), C(T(o2), function(e3) {
            e3 in h2 || v(h2, e3, o2[e3]);
          }), h2.prototype = n2) : (h2 = t2(function(e3, t3, r3, n3) {
            g(e3, h2, f2);
            var o3, i3, a3, s3 = 0, l2 = 0;
            if (j(t3)) {
              if (!y(t3))
                return Y(t3) ? p(h2, t3) : O.call(h2, t3);
              o3 = t3, l2 = x(r3, d2);
              var u2 = t3.byteLength;
              if (n3 === void 0) {
                if (u2 % d2)
                  throw B(Q);
                if ((i3 = u2 - l2) < 0)
                  throw B(Q);
              } else if (u2 < (i3 = b(n3) * d2) + l2)
                throw B(Q);
              a3 = i3 / d2;
            } else
              a3 = _(t3), o3 = new G(i3 = a3 * d2);
            for (I(e3, { buffer: o3, byteOffset: l2, byteLength: i3, length: a3, view: new V(o3) }); s3 < a3; )
              c2(e3, s3++);
          }), E && E(h2, W), n2 = h2.prototype = M(q)), n2.constructor !== h2 && v(n2, "constructor", h2), H && v(n2, H, f2), s2[f2] = h2, l({ global: true, forced: h2 != o2, sham: !z }, s2), Z in h2 || v(h2, Z, d2), Z in n2 || v(n2, Z, d2), L(f2);
        }) : t.exports = function() {
        };
      }, { "../internals/an-instance": 9, "../internals/array-buffer": 13, "../internals/array-buffer-view-core": 12, "../internals/array-iteration": 19, "../internals/classof": 29, "../internals/create-non-enumerable-property": 37, "../internals/create-property-descriptor": 38, "../internals/descriptors": 42, "../internals/export": 49, "../internals/global": 58, "../internals/has": 59, "../internals/inherit-if-required": 66, "../internals/internal-state": 69, "../internals/is-object": 73, "../internals/object-create": 89, "../internals/object-define-property": 91, "../internals/object-get-own-property-descriptor": 92, "../internals/object-get-own-property-names": 94, "../internals/object-set-prototype-of": 100, "../internals/set-species": 115, "../internals/to-index": 130, "../internals/to-length": 133, "../internals/to-offset": 135, "../internals/to-primitive": 137, "../internals/typed-array-constructors-require-wrappers": 140, "../internals/typed-array-from": 141 }], 140: [function(e, t, r) {
        var n = e("../internals/global"), o = e("../internals/fails"), i = e("../internals/check-correctness-of-iteration"), a = e("../internals/array-buffer-view-core").NATIVE_ARRAY_BUFFER_VIEWS, s = n.ArrayBuffer, l = n.Int8Array;
        t.exports = !a || !o(function() {
          l(1);
        }) || !o(function() {
          new l(-1);
        }) || !i(function(e2) {
          new l(), new l(null), new l(1.5), new l(e2);
        }, true) || o(function() {
          return new l(new s(2), 1, void 0).length !== 1;
        });
      }, { "../internals/array-buffer-view-core": 12, "../internals/check-correctness-of-iteration": 27, "../internals/fails": 50, "../internals/global": 58 }], 141: [function(e, t, r) {
        var p = e("../internals/to-object"), y = e("../internals/to-length"), m = e("../internals/get-iterator-method"), g = e("../internals/is-array-iterator-method"), v = e("../internals/function-bind-context"), b = e("../internals/array-buffer-view-core").aTypedArrayConstructor;
        t.exports = function(e2, t2, r2) {
          var n, o, i, a, s, l, u = p(e2), c = arguments.length, d = 1 < c ? t2 : void 0, f = d !== void 0, h = m(u);
          if (h != null && !g(h))
            for (l = (s = h.call(u)).next, u = []; !(a = l.call(s)).done; )
              u.push(a.value);
          for (f && 2 < c && (d = v(d, r2, 2)), o = y(u.length), i = new (b(this))(o), n = 0; n < o; n++)
            i[n] = f ? d(u[n], n) : u[n];
          return i;
        };
      }, { "../internals/array-buffer-view-core": 12, "../internals/function-bind-context": 53, "../internals/get-iterator-method": 56, "../internals/is-array-iterator-method": 70, "../internals/to-length": 133, "../internals/to-object": 134 }], 142: [function(e, t, r) {
        var n = 0, o = Math.random();
        t.exports = function(e2) {
          return "Symbol(" + String(e2 === void 0 ? "" : e2) + ")_" + (++n + o).toString(36);
        };
      }, {}], 143: [function(e, t, r) {
        var n = e("../internals/native-symbol");
        t.exports = n && !Symbol.sham && typeof Symbol.iterator == "symbol";
      }, { "../internals/native-symbol": 82 }], 144: [function(e, t, r) {
        var n = e("../internals/well-known-symbol");
        r.f = n;
      }, { "../internals/well-known-symbol": 145 }], 145: [function(e, t, r) {
        var n = e("../internals/global"), o = e("../internals/shared"), i = e("../internals/has"), a = e("../internals/uid"), s = e("../internals/native-symbol"), l = e("../internals/use-symbol-as-uid"), u = o("wks"), c = n.Symbol, d = l ? c : c && c.withoutSetter || a;
        t.exports = function(e2) {
          return i(u, e2) || (s && i(c, e2) ? u[e2] = c[e2] : u[e2] = d("Symbol." + e2)), u[e2];
        };
      }, { "../internals/global": 58, "../internals/has": 59, "../internals/native-symbol": 82, "../internals/shared": 119, "../internals/uid": 142, "../internals/use-symbol-as-uid": 143 }], 146: [function(e, t, r) {
        t.exports = "	\n\v\f\r \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF";
      }, {}], 147: [function(e, t, r) {
        "use strict";
        var n = e("../internals/export"), o = e("../internals/global"), i = e("../internals/array-buffer"), a = e("../internals/set-species"), s = "ArrayBuffer", l = i[s];
        n({ global: true, forced: o[s] !== l }, { ArrayBuffer: l }), a(s);
      }, { "../internals/array-buffer": 13, "../internals/export": 49, "../internals/global": 58, "../internals/set-species": 115 }], 148: [function(e, t, r) {
        "use strict";
        function u(e2) {
          if (!a(e2))
            return false;
          var t2 = e2[y];
          return t2 !== void 0 ? !!t2 : i(e2);
        }
        var n = e("../internals/export"), o = e("../internals/fails"), i = e("../internals/is-array"), a = e("../internals/is-object"), c = e("../internals/to-object"), d = e("../internals/to-length"), f = e("../internals/create-property"), h = e("../internals/array-species-create"), s = e("../internals/array-method-has-species-support"), l = e("../internals/well-known-symbol"), p = e("../internals/engine-v8-version"), y = l("isConcatSpreadable"), m = 9007199254740991, g = "Maximum allowed index exceeded", v = 51 <= p || !o(function() {
          var e2 = [];
          return e2[y] = false, e2.concat()[0] !== e2;
        }), b = s("concat");
        n({ target: "Array", proto: true, forced: !v || !b }, { concat: function(e2) {
          var t2, r2, n2, o2, i2, a2 = c(this), s2 = h(a2, 0), l2 = 0;
          for (t2 = -1, n2 = arguments.length; t2 < n2; t2++)
            if (u(i2 = t2 === -1 ? a2 : arguments[t2])) {
              if (o2 = d(i2.length), m < l2 + o2)
                throw TypeError(g);
              for (r2 = 0; r2 < o2; r2++, l2++)
                r2 in i2 && f(s2, l2, i2[r2]);
            } else {
              if (m <= l2)
                throw TypeError(g);
              f(s2, l2++, i2);
            }
          return s2.length = l2, s2;
        } });
      }, { "../internals/array-method-has-species-support": 21, "../internals/array-species-create": 25, "../internals/create-property": 39, "../internals/engine-v8-version": 47, "../internals/export": 49, "../internals/fails": 50, "../internals/is-array": 71, "../internals/is-object": 73, "../internals/to-length": 133, "../internals/to-object": 134, "../internals/well-known-symbol": 145 }], 149: [function(e, t, r) {
        "use strict";
        var n = e("../internals/export"), o = e("../internals/array-iteration").every, i = e("../internals/array-method-is-strict"), a = e("../internals/array-method-uses-to-length"), s = i("every"), l = a("every");
        n({ target: "Array", proto: true, forced: !s || !l }, { every: function(e2, t2) {
          return o(this, e2, 1 < arguments.length ? t2 : void 0);
        } });
      }, { "../internals/array-iteration": 19, "../internals/array-method-is-strict": 22, "../internals/array-method-uses-to-length": 23, "../internals/export": 49 }], 150: [function(e, t, r) {
        var n = e("../internals/export"), o = e("../internals/array-fill"), i = e("../internals/add-to-unscopables");
        n({ target: "Array", proto: true }, { fill: o }), i("fill");
      }, { "../internals/add-to-unscopables": 7, "../internals/array-fill": 15, "../internals/export": 49 }], 151: [function(e, t, r) {
        "use strict";
        var n = e("../internals/export"), o = e("../internals/array-iteration").filter, i = e("../internals/array-method-has-species-support"), a = e("../internals/array-method-uses-to-length"), s = i("filter"), l = a("filter");
        n({ target: "Array", proto: true, forced: !s || !l }, { filter: function(e2, t2) {
          return o(this, e2, 1 < arguments.length ? t2 : void 0);
        } });
      }, { "../internals/array-iteration": 19, "../internals/array-method-has-species-support": 21, "../internals/array-method-uses-to-length": 23, "../internals/export": 49 }], 152: [function(e, t, r) {
        "use strict";
        var n = e("../internals/export"), o = e("../internals/array-for-each");
        n({ target: "Array", proto: true, forced: [].forEach != o }, { forEach: o });
      }, { "../internals/array-for-each": 16, "../internals/export": 49 }], 153: [function(e, t, r) {
        var n = e("../internals/export"), o = e("../internals/array-from");
        n({ target: "Array", stat: true, forced: !e("../internals/check-correctness-of-iteration")(function(e2) {
          Array.from(e2);
        }) }, { from: o });
      }, { "../internals/array-from": 17, "../internals/check-correctness-of-iteration": 27, "../internals/export": 49 }], 154: [function(e, t, r) {
        "use strict";
        var n = e("../internals/export"), o = e("../internals/array-includes").includes, i = e("../internals/add-to-unscopables");
        n({ target: "Array", proto: true, forced: !e("../internals/array-method-uses-to-length")("indexOf", { ACCESSORS: true, 1: 0 }) }, { includes: function(e2, t2) {
          return o(this, e2, 1 < arguments.length ? t2 : void 0);
        } }), i("includes");
      }, { "../internals/add-to-unscopables": 7, "../internals/array-includes": 18, "../internals/array-method-uses-to-length": 23, "../internals/export": 49 }], 155: [function(e, t, r) {
        "use strict";
        var n = e("../internals/export"), o = e("../internals/array-includes").indexOf, i = e("../internals/array-method-is-strict"), a = e("../internals/array-method-uses-to-length"), s = [].indexOf, l = !!s && 1 / [1].indexOf(1, -0) < 0, u = i("indexOf"), c = a("indexOf", { ACCESSORS: true, 1: 0 });
        n({ target: "Array", proto: true, forced: l || !u || !c }, { indexOf: function(e2, t2) {
          return l ? s.apply(this, arguments) || 0 : o(this, e2, 1 < arguments.length ? t2 : void 0);
        } });
      }, { "../internals/array-includes": 18, "../internals/array-method-is-strict": 22, "../internals/array-method-uses-to-length": 23, "../internals/export": 49 }], 156: [function(e, t, r) {
        "use strict";
        var n = e("../internals/to-indexed-object"), o = e("../internals/add-to-unscopables"), i = e("../internals/iterators"), a = e("../internals/internal-state"), s = e("../internals/define-iterator"), l = "Array Iterator", u = a.set, c = a.getterFor(l);
        t.exports = s(Array, "Array", function(e2, t2) {
          u(this, { type: l, target: n(e2), index: 0, kind: t2 });
        }, function() {
          var e2 = c(this), t2 = e2.target, r2 = e2.kind, n2 = e2.index++;
          return !t2 || n2 >= t2.length ? { value: e2.target = void 0, done: true } : r2 == "keys" ? { value: n2, done: false } : r2 == "values" ? { value: t2[n2], done: false } : { value: [n2, t2[n2]], done: false };
        }, "values"), i.Arguments = i.Array, o("keys"), o("values"), o("entries");
      }, { "../internals/add-to-unscopables": 7, "../internals/define-iterator": 40, "../internals/internal-state": 69, "../internals/iterators": 78, "../internals/to-indexed-object": 131 }], 157: [function(e, t, r) {
        "use strict";
        var n = e("../internals/export"), o = e("../internals/indexed-object"), i = e("../internals/to-indexed-object"), a = e("../internals/array-method-is-strict"), s = [].join, l = o != Object, u = a("join", ",");
        n({ target: "Array", proto: true, forced: l || !u }, { join: function(e2) {
          return s.call(i(this), e2 === void 0 ? "," : e2);
        } });
      }, { "../internals/array-method-is-strict": 22, "../internals/export": 49, "../internals/indexed-object": 65, "../internals/to-indexed-object": 131 }], 158: [function(e, t, r) {
        var n = e("../internals/export"), o = e("../internals/array-last-index-of");
        n({ target: "Array", proto: true, forced: o !== [].lastIndexOf }, { lastIndexOf: o });
      }, { "../internals/array-last-index-of": 20, "../internals/export": 49 }], 159: [function(e, t, r) {
        "use strict";
        var n = e("../internals/export"), o = e("../internals/array-iteration").map, i = e("../internals/array-method-has-species-support"), a = e("../internals/array-method-uses-to-length"), s = i("map"), l = a("map");
        n({ target: "Array", proto: true, forced: !s || !l }, { map: function(e2, t2) {
          return o(this, e2, 1 < arguments.length ? t2 : void 0);
        } });
      }, { "../internals/array-iteration": 19, "../internals/array-method-has-species-support": 21, "../internals/array-method-uses-to-length": 23, "../internals/export": 49 }], 160: [function(e, t, r) {
        "use strict";
        var n = e("../internals/export"), u = e("../internals/is-object"), c = e("../internals/is-array"), d = e("../internals/to-absolute-index"), f = e("../internals/to-length"), h = e("../internals/to-indexed-object"), p = e("../internals/create-property"), o = e("../internals/well-known-symbol"), i = e("../internals/array-method-has-species-support"), a = e("../internals/array-method-uses-to-length"), s = i("slice"), l = a("slice", { ACCESSORS: true, 0: 0, 1: 2 }), y = o("species"), m = [].slice, g = Math.max;
        n({ target: "Array", proto: true, forced: !s || !l }, { slice: function(e2, t2) {
          var r2, n2, o2, i2 = h(this), a2 = f(i2.length), s2 = d(e2, a2), l2 = d(t2 === void 0 ? a2 : t2, a2);
          if (c(i2) && (typeof (r2 = i2.constructor) != "function" || r2 !== Array && !c(r2.prototype) ? u(r2) && (r2 = r2[y]) === null && (r2 = void 0) : r2 = void 0, r2 === Array || r2 === void 0))
            return m.call(i2, s2, l2);
          for (n2 = new (r2 === void 0 ? Array : r2)(g(l2 - s2, 0)), o2 = 0; s2 < l2; s2++, o2++)
            s2 in i2 && p(n2, o2, i2[s2]);
          return n2.length = o2, n2;
        } });
      }, { "../internals/array-method-has-species-support": 21, "../internals/array-method-uses-to-length": 23, "../internals/create-property": 39, "../internals/export": 49, "../internals/is-array": 71, "../internals/is-object": 73, "../internals/to-absolute-index": 129, "../internals/to-indexed-object": 131, "../internals/to-length": 133, "../internals/well-known-symbol": 145 }], 161: [function(e, t, r) {
        "use strict";
        var n = e("../internals/export"), o = e("../internals/array-iteration").some, i = e("../internals/array-method-is-strict"), a = e("../internals/array-method-uses-to-length"), s = i("some"), l = a("some");
        n({ target: "Array", proto: true, forced: !s || !l }, { some: function(e2, t2) {
          return o(this, e2, 1 < arguments.length ? t2 : void 0);
        } });
      }, { "../internals/array-iteration": 19, "../internals/array-method-is-strict": 22, "../internals/array-method-uses-to-length": 23, "../internals/export": 49 }], 162: [function(e, t, r) {
        "use strict";
        var n = e("../internals/export"), f = e("../internals/to-absolute-index"), h = e("../internals/to-integer"), p = e("../internals/to-length"), y = e("../internals/to-object"), m = e("../internals/array-species-create"), g = e("../internals/create-property"), o = e("../internals/array-method-has-species-support"), i = e("../internals/array-method-uses-to-length"), a = o("splice"), s = i("splice", { ACCESSORS: true, 0: 0, 1: 2 }), v = Math.max, b = Math.min;
        n({ target: "Array", proto: true, forced: !a || !s }, { splice: function(e2, t2) {
          var r2, n2, o2, i2, a2, s2, l = y(this), u = p(l.length), c = f(e2, u), d = arguments.length;
          if (d === 0 ? r2 = n2 = 0 : n2 = d === 1 ? (r2 = 0, u - c) : (r2 = d - 2, b(v(h(t2), 0), u - c)), 9007199254740991 < u + r2 - n2)
            throw TypeError("Maximum allowed length exceeded");
          for (o2 = m(l, n2), i2 = 0; i2 < n2; i2++)
            (a2 = c + i2) in l && g(o2, i2, l[a2]);
          if (r2 < (o2.length = n2)) {
            for (i2 = c; i2 < u - n2; i2++)
              s2 = i2 + r2, (a2 = i2 + n2) in l ? l[s2] = l[a2] : delete l[s2];
            for (i2 = u; u - n2 + r2 < i2; i2--)
              delete l[i2 - 1];
          } else if (n2 < r2)
            for (i2 = u - n2; c < i2; i2--)
              s2 = i2 + r2 - 1, (a2 = i2 + n2 - 1) in l ? l[s2] = l[a2] : delete l[s2];
          for (i2 = 0; i2 < r2; i2++)
            l[i2 + c] = arguments[i2 + 2];
          return l.length = u - n2 + r2, o2;
        } });
      }, { "../internals/array-method-has-species-support": 21, "../internals/array-method-uses-to-length": 23, "../internals/array-species-create": 25, "../internals/create-property": 39, "../internals/export": 49, "../internals/to-absolute-index": 129, "../internals/to-integer": 132, "../internals/to-length": 133, "../internals/to-object": 134 }], 163: [function(e, t, r) {
        var n = e("../internals/descriptors"), o = e("../internals/object-define-property").f, i = Function.prototype, a = i.toString, s = /^\s*function ([^ (]*)/;
        !n || "name" in i || o(i, "name", { configurable: true, get: function() {
          try {
            return a.call(this).match(s)[1];
          } catch (e2) {
            return "";
          }
        } });
      }, { "../internals/descriptors": 42, "../internals/object-define-property": 91 }], 164: [function(e, t, r) {
        "use strict";
        var n = e("../internals/collection"), o = e("../internals/collection-strong");
        t.exports = n("Map", function(t2) {
          return function(e2) {
            return t2(this, arguments.length ? e2 : void 0);
          };
        }, o);
      }, { "../internals/collection": 31, "../internals/collection-strong": 30 }], 165: [function(e, t, r) {
        var n = e("../internals/export"), o = Math.hypot, l = Math.abs, u = Math.sqrt;
        n({ target: "Math", stat: true, forced: !!o && o(1 / 0, NaN) !== 1 / 0 }, { hypot: function(e2, t2) {
          for (var r2, n2, o2 = 0, i = 0, a = arguments.length, s = 0; i < a; )
            s < (r2 = l(arguments[i++])) ? (o2 = o2 * (n2 = s / r2) * n2 + 1, s = r2) : o2 += 0 < r2 ? (n2 = r2 / s) * n2 : r2;
          return s === 1 / 0 ? 1 / 0 : s * u(o2);
        } });
      }, { "../internals/export": 49 }], 166: [function(e, t, r) {
        e("../internals/export")({ target: "Math", stat: true }, { sign: e("../internals/math-sign") });
      }, { "../internals/export": 49, "../internals/math-sign": 79 }], 167: [function(e, t, r) {
        "use strict";
        function n(e2) {
          var t2, r2, n2, o2, i2, a2, s2, l2, u2 = d(e2, false);
          if (typeof u2 == "string" && 2 < u2.length) {
            if ((t2 = (u2 = g(u2)).charCodeAt(0)) === 43 || t2 === 45) {
              if ((r2 = u2.charCodeAt(2)) === 88 || r2 === 120)
                return NaN;
            } else if (t2 === 48) {
              switch (u2.charCodeAt(1)) {
                case 66:
                case 98:
                  n2 = 2, o2 = 49;
                  break;
                case 79:
                case 111:
                  n2 = 8, o2 = 55;
                  break;
                default:
                  return +u2;
              }
              for (a2 = (i2 = u2.slice(2)).length, s2 = 0; s2 < a2; s2++)
                if ((l2 = i2.charCodeAt(s2)) < 48 || o2 < l2)
                  return NaN;
              return parseInt(i2, n2);
            }
          }
          return +u2;
        }
        var o = e("../internals/descriptors"), i = e("../internals/global"), a = e("../internals/is-forced"), s = e("../internals/redefine"), l = e("../internals/has"), u = e("../internals/classof-raw"), c = e("../internals/inherit-if-required"), d = e("../internals/to-primitive"), f = e("../internals/fails"), h = e("../internals/object-create"), p = e("../internals/object-get-own-property-names").f, y = e("../internals/object-get-own-property-descriptor").f, m = e("../internals/object-define-property").f, g = e("../internals/string-trim").trim, v = "Number", b = i[v], _ = b.prototype, x = u(h(_)) == v;
        if (a(v, !b(" 0o1") || !b("0b1") || b("+0x1"))) {
          for (var w, S = function(e2) {
            var t2 = arguments.length < 1 ? 0 : e2, r2 = this;
            return r2 instanceof S && (x ? f(function() {
              _.valueOf.call(r2);
            }) : u(r2) != v) ? c(new b(n(t2)), r2, S) : n(t2);
          }, j = o ? p(b) : "MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","), M = 0; j.length > M; M++)
            l(b, w = j[M]) && !l(S, w) && m(S, w, y(b, w));
          (S.prototype = _).constructor = S, s(i, v, S);
        }
      }, { "../internals/classof-raw": 28, "../internals/descriptors": 42, "../internals/fails": 50, "../internals/global": 58, "../internals/has": 59, "../internals/inherit-if-required": 66, "../internals/is-forced": 72, "../internals/object-create": 89, "../internals/object-define-property": 91, "../internals/object-get-own-property-descriptor": 92, "../internals/object-get-own-property-names": 94, "../internals/redefine": 107, "../internals/string-trim": 126, "../internals/to-primitive": 137 }], 168: [function(e, t, r) {
        e("../internals/export")({ target: "Number", stat: true }, { isFinite: e("../internals/number-is-finite") });
      }, { "../internals/export": 49, "../internals/number-is-finite": 87 }], 169: [function(e, t, r) {
        "use strict";
        var n = e("../internals/export"), h = e("../internals/to-integer"), p = e("../internals/this-number-value"), y = e("../internals/string-repeat"), o = e("../internals/fails"), i = 1 .toFixed, m = Math.floor, g = function(e2, t2, r2) {
          return t2 === 0 ? r2 : t2 % 2 == 1 ? g(e2, t2 - 1, r2 * e2) : g(e2 * e2, t2 / 2, r2);
        };
        n({ target: "Number", proto: true, forced: i && (8e-5 .toFixed(3) !== "0.000" || 0.9 .toFixed(0) !== "1" || 1.255 .toFixed(2) !== "1.25" || 1000000000000000100 .toFixed(0) !== "1000000000000000128") || !o(function() {
          i.call({});
        }) }, { toFixed: function(e2) {
          function t2(e3, t3) {
            for (var r3 = -1, n3 = t3; ++r3 < 6; )
              n3 += e3 * c[r3], c[r3] = n3 % 1e7, n3 = m(n3 / 1e7);
          }
          function r2(e3) {
            for (var t3 = 6, r3 = 0; 0 <= --t3; )
              r3 += c[t3], c[t3] = m(r3 / e3), r3 = r3 % e3 * 1e7;
          }
          function n2() {
            for (var e3 = 6, t3 = ""; 0 <= --e3; )
              if (t3 !== "" || e3 === 0 || c[e3] !== 0) {
                var r3 = String(c[e3]);
                t3 = t3 === "" ? r3 : t3 + y.call("0", 7 - r3.length) + r3;
              }
            return t3;
          }
          var o2, i2, a, s, l = p(this), u = h(e2), c = [0, 0, 0, 0, 0, 0], d = "", f = "0";
          if (u < 0 || 20 < u)
            throw RangeError("Incorrect fraction digits");
          if (l != l)
            return "NaN";
          if (l <= -1e21 || 1e21 <= l)
            return String(l);
          if (l < 0 && (d = "-", l = -l), 1e-21 < l)
            if (i2 = (o2 = function(e3) {
              for (var t3 = 0, r3 = e3; 4096 <= r3; )
                t3 += 12, r3 /= 4096;
              for (; 2 <= r3; )
                t3 += 1, r3 /= 2;
              return t3;
            }(l * g(2, 69, 1)) - 69) < 0 ? l * g(2, -o2, 1) : l / g(2, o2, 1), i2 *= 4503599627370496, 0 < (o2 = 52 - o2)) {
              for (t2(0, i2), a = u; 7 <= a; )
                t2(1e7, 0), a -= 7;
              for (t2(g(10, a, 1), 0), a = o2 - 1; 23 <= a; )
                r2(1 << 23), a -= 23;
              r2(1 << a), t2(1, 1), r2(2), f = n2();
            } else
              t2(0, i2), t2(1 << -o2, 0), f = n2() + y.call("0", u);
          return f = 0 < u ? d + ((s = f.length) <= u ? "0." + y.call("0", u - s) + f : f.slice(0, s - u) + "." + f.slice(s - u)) : d + f;
        } });
      }, { "../internals/export": 49, "../internals/fails": 50, "../internals/string-repeat": 124, "../internals/this-number-value": 128, "../internals/to-integer": 132 }], 170: [function(e, t, r) {
        var n = e("../internals/export"), o = e("../internals/object-assign");
        n({ target: "Object", stat: true, forced: Object.assign !== o }, { assign: o });
      }, { "../internals/export": 49, "../internals/object-assign": 88 }], 171: [function(e, t, r) {
        var n = e("../internals/export"), o = e("../internals/fails"), i = e("../internals/object-get-own-property-names-external").f;
        n({ target: "Object", stat: true, forced: o(function() {
          return !Object.getOwnPropertyNames(1);
        }) }, { getOwnPropertyNames: i });
      }, { "../internals/export": 49, "../internals/fails": 50, "../internals/object-get-own-property-names-external": 93 }], 172: [function(e, t, r) {
        var n = e("../internals/export"), o = e("../internals/fails"), i = e("../internals/to-object"), a = e("../internals/object-get-prototype-of"), s = e("../internals/correct-prototype-getter");
        n({ target: "Object", stat: true, forced: o(function() {
          a(1);
        }), sham: !s }, { getPrototypeOf: function(e2) {
          return a(i(e2));
        } });
      }, { "../internals/correct-prototype-getter": 34, "../internals/export": 49, "../internals/fails": 50, "../internals/object-get-prototype-of": 96, "../internals/to-object": 134 }], 173: [function(e, t, r) {
        var n = e("../internals/export"), o = e("../internals/to-object"), i = e("../internals/object-keys");
        n({ target: "Object", stat: true, forced: e("../internals/fails")(function() {
          i(1);
        }) }, { keys: function(e2) {
          return i(o(e2));
        } });
      }, { "../internals/export": 49, "../internals/fails": 50, "../internals/object-keys": 98, "../internals/to-object": 134 }], 174: [function(e, t, r) {
        var n = e("../internals/to-string-tag-support"), o = e("../internals/redefine"), i = e("../internals/object-to-string");
        n || o(Object.prototype, "toString", i, { unsafe: true });
      }, { "../internals/object-to-string": 101, "../internals/redefine": 107, "../internals/to-string-tag-support": 138 }], 175: [function(e, t, r) {
        "use strict";
        function y(e2) {
          var t2;
          return !(!x(e2) || typeof (t2 = e2.then) != "function") && t2;
        }
        function i(d2, f2, h2) {
          if (!f2.notified) {
            f2.notified = true;
            var p2 = f2.reactions;
            L(function() {
              for (var e2 = f2.value, t2 = f2.state == 1, r2 = 0; p2.length > r2; ) {
                var n2, o2, i2, a2 = p2[r2++], s2 = t2 ? a2.ok : a2.fail, l2 = a2.resolve, u2 = a2.reject, c2 = a2.domain;
                try {
                  s2 ? (t2 || (f2.rejection === 2 && oe(d2, f2), f2.rejection = 1), s2 === true ? n2 = e2 : (c2 && c2.enter(), n2 = s2(e2), c2 && (c2.exit(), i2 = true)), n2 === a2.promise ? u2(W("Promise-chain cycle")) : (o2 = y(n2)) ? o2.call(n2, l2, u2) : l2(n2)) : u2(e2);
                } catch (e3) {
                  c2 && !i2 && c2.exit(), u2(e3);
                }
              }
              f2.reactions = [], f2.notified = false, h2 && !f2.rejection && re(d2, f2);
            });
          }
        }
        function o(e2, t2, r2) {
          var n2, o2;
          J ? ((n2 = q.createEvent("Event")).promise = t2, n2.reason = r2, n2.initEvent(e2, false, true), h.dispatchEvent(n2)) : n2 = { promise: t2, reason: r2 }, (o2 = h["on" + e2]) ? o2(n2) : e2 === $ && k("Unhandled promise rejection", r2);
        }
        function a(t2, r2, n2, o2) {
          return function(e2) {
            t2(r2, n2, e2, o2);
          };
        }
        function s(e2, t2, r2, n2) {
          t2.done || (t2.done = true, n2 && (t2 = n2), t2.value = r2, t2.state = 2, i(e2, t2, true));
        }
        var n, l, u, c, d = e("../internals/export"), f = e("../internals/is-pure"), h = e("../internals/global"), p = e("../internals/get-built-in"), m = e("../internals/native-promise-constructor"), g = e("../internals/redefine"), v = e("../internals/redefine-all"), b = e("../internals/set-to-string-tag"), _ = e("../internals/set-species"), x = e("../internals/is-object"), w = e("../internals/a-function"), S = e("../internals/an-instance"), j = e("../internals/classof-raw"), M = e("../internals/inspect-source"), E = e("../internals/iterate"), T = e("../internals/check-correctness-of-iteration"), O = e("../internals/species-constructor"), C = e("../internals/task").set, L = e("../internals/microtask"), P = e("../internals/promise-resolve"), k = e("../internals/host-report-errors"), A = e("../internals/new-promise-capability"), R = e("../internals/perform"), D = e("../internals/internal-state"), I = e("../internals/is-forced"), U = e("../internals/well-known-symbol"), N = e("../internals/engine-v8-version"), F = U("species"), B = "Promise", G = D.get, V = D.set, z = D.getterFor(B), H = m, W = h.TypeError, q = h.document, X = h.process, Y = p("fetch"), Z = A.f, Q = Z, K = j(X) == "process", J = !!(q && q.createEvent && h.dispatchEvent), $ = "unhandledrejection", ee = I(B, function() {
          if (!(M(H) !== String(H))) {
            if (N === 66)
              return true;
            if (!K && typeof PromiseRejectionEvent != "function")
              return true;
          }
          if (f && !H.prototype.finally)
            return true;
          if (51 <= N && /native code/.test(H))
            return false;
          function e2(e3) {
            e3(function() {
            }, function() {
            });
          }
          var t2 = H.resolve(1);
          return (t2.constructor = {})[F] = e2, !(t2.then(function() {
          }) instanceof e2);
        }), te = ee || !T(function(e2) {
          H.all(e2).catch(function() {
          });
        }), re = function(r2, n2) {
          C.call(h, function() {
            var e2, t2 = n2.value;
            if (ne(n2) && (e2 = R(function() {
              K ? X.emit("unhandledRejection", t2, r2) : o($, r2, t2);
            }), n2.rejection = K || ne(n2) ? 2 : 1, e2.error))
              throw e2.value;
          });
        }, ne = function(e2) {
          return e2.rejection !== 1 && !e2.parent;
        }, oe = function(e2, t2) {
          C.call(h, function() {
            K ? X.emit("rejectionHandled", e2) : o("rejectionhandled", e2, t2.value);
          });
        }, ie = function(r2, n2, e2, t2) {
          if (!n2.done) {
            n2.done = true, t2 && (n2 = t2);
            try {
              if (r2 === e2)
                throw W("Promise can't be resolved itself");
              var o2 = y(e2);
              o2 ? L(function() {
                var t3 = { done: false };
                try {
                  o2.call(e2, a(ie, r2, t3, n2), a(s, r2, t3, n2));
                } catch (e3) {
                  s(r2, t3, e3, n2);
                }
              }) : (n2.value = e2, n2.state = 1, i(r2, n2, false));
            } catch (e3) {
              s(r2, { done: false }, e3, n2);
            }
          }
        };
        ee && (H = function(e2) {
          S(this, H, B), w(e2), n.call(this);
          var t2 = G(this);
          try {
            e2(a(ie, this, t2), a(s, this, t2));
          } catch (e3) {
            s(this, t2, e3);
          }
        }, (n = function() {
          V(this, { type: B, done: false, notified: false, parent: false, reactions: [], rejection: false, state: 0, value: void 0 });
        }).prototype = v(H.prototype, { then: function(e2, t2) {
          var r2 = z(this), n2 = Z(O(this, H));
          return n2.ok = typeof e2 != "function" || e2, n2.fail = typeof t2 == "function" && t2, n2.domain = K ? X.domain : void 0, r2.parent = true, r2.reactions.push(n2), r2.state != 0 && i(this, r2, false), n2.promise;
        }, catch: function(e2) {
          return this.then(void 0, e2);
        } }), l = function() {
          var e2 = new n(), t2 = G(e2);
          this.promise = e2, this.resolve = a(ie, e2, t2), this.reject = a(s, e2, t2);
        }, A.f = Z = function(e2) {
          return e2 === H || e2 === u ? new l(e2) : Q(e2);
        }, f || typeof m != "function" || (c = m.prototype.then, g(m.prototype, "then", function(e2, t2) {
          var r2 = this;
          return new H(function(e3, t3) {
            c.call(r2, e3, t3);
          }).then(e2, t2);
        }, { unsafe: true }), typeof Y == "function" && d({ global: true, enumerable: true, forced: true }, { fetch: function(e2) {
          return P(H, Y.apply(h, arguments));
        } }))), d({ global: true, wrap: true, forced: ee }, { Promise: H }), b(H, B, false, true), _(B), u = p(B), d({ target: B, stat: true, forced: ee }, { reject: function(e2) {
          var t2 = Z(this);
          return t2.reject.call(void 0, e2), t2.promise;
        } }), d({ target: B, stat: true, forced: f || ee }, { resolve: function(e2) {
          return P(f && this === u ? H : this, e2);
        } }), d({ target: B, stat: true, forced: te }, { all: function(e2) {
          var s2 = this, t2 = Z(s2), l2 = t2.resolve, u2 = t2.reject, r2 = R(function() {
            var n2 = w(s2.resolve), o2 = [], i2 = 0, a2 = 1;
            E(e2, function(e3) {
              var t3 = i2++, r3 = false;
              o2.push(void 0), a2++, n2.call(s2, e3).then(function(e4) {
                r3 || (r3 = true, o2[t3] = e4, --a2 || l2(o2));
              }, u2);
            }), --a2 || l2(o2);
          });
          return r2.error && u2(r2.value), t2.promise;
        }, race: function(e2) {
          var r2 = this, n2 = Z(r2), o2 = n2.reject, t2 = R(function() {
            var t3 = w(r2.resolve);
            E(e2, function(e3) {
              t3.call(r2, e3).then(n2.resolve, o2);
            });
          });
          return t2.error && o2(t2.value), n2.promise;
        } });
      }, { "../internals/a-function": 5, "../internals/an-instance": 9, "../internals/check-correctness-of-iteration": 27, "../internals/classof-raw": 28, "../internals/engine-v8-version": 47, "../internals/export": 49, "../internals/get-built-in": 55, "../internals/global": 58, "../internals/host-report-errors": 61, "../internals/inspect-source": 67, "../internals/internal-state": 69, "../internals/is-forced": 72, "../internals/is-object": 73, "../internals/is-pure": 74, "../internals/iterate": 76, "../internals/microtask": 80, "../internals/native-promise-constructor": 81, "../internals/new-promise-capability": 85, "../internals/perform": 104, "../internals/promise-resolve": 105, "../internals/redefine": 107, "../internals/redefine-all": 106, "../internals/set-species": 115, "../internals/set-to-string-tag": 116, "../internals/species-constructor": 120, "../internals/task": 127, "../internals/well-known-symbol": 145 }], 176: [function(e, t, r) {
        var n = e("../internals/export"), o = e("../internals/get-built-in"), l = e("../internals/a-function"), u = e("../internals/an-object"), c = e("../internals/is-object"), d = e("../internals/object-create"), f = e("../internals/function-bind"), i = e("../internals/fails"), h = o("Reflect", "construct"), p = i(function() {
          function e2() {
          }
          return !(h(function() {
          }, [], e2) instanceof e2);
        }), y = !i(function() {
          h(function() {
          });
        }), a = p || y;
        n({ target: "Reflect", stat: true, forced: a, sham: a }, { construct: function(e2, t2, r2) {
          l(e2), u(t2);
          var n2 = arguments.length < 3 ? e2 : l(r2);
          if (y && !p)
            return h(e2, t2, n2);
          if (e2 == n2) {
            switch (t2.length) {
              case 0:
                return new e2();
              case 1:
                return new e2(t2[0]);
              case 2:
                return new e2(t2[0], t2[1]);
              case 3:
                return new e2(t2[0], t2[1], t2[2]);
              case 4:
                return new e2(t2[0], t2[1], t2[2], t2[3]);
            }
            var o2 = [null];
            return o2.push.apply(o2, t2), new (f.apply(e2, o2))();
          }
          var i2 = n2.prototype, a2 = d(c(i2) ? i2 : Object.prototype), s = Function.apply.call(e2, a2, t2);
          return c(s) ? s : a2;
        } });
      }, { "../internals/a-function": 5, "../internals/an-object": 10, "../internals/export": 49, "../internals/fails": 50, "../internals/function-bind": 54, "../internals/get-built-in": 55, "../internals/is-object": 73, "../internals/object-create": 89 }], 177: [function(e, t, r) {
        var n = e("../internals/descriptors"), o = e("../internals/global"), i = e("../internals/is-forced"), s = e("../internals/inherit-if-required"), a = e("../internals/object-define-property").f, l = e("../internals/object-get-own-property-names").f, u = e("../internals/is-regexp"), c = e("../internals/regexp-flags"), d = e("../internals/regexp-sticky-helpers"), f = e("../internals/redefine"), h = e("../internals/fails"), p = e("../internals/internal-state").set, y = e("../internals/set-species"), m = e("../internals/well-known-symbol")("match"), g = o.RegExp, v = g.prototype, b = /a/g, _ = /a/g, x = new g(b) !== b, w = d.UNSUPPORTED_Y;
        if (n && i("RegExp", !x || w || h(function() {
          return _[m] = false, g(b) != b || g(_) == _ || g(b, "i") != "/a/i";
        }))) {
          let S2 = function(t2) {
            t2 in j || a(j, t2, { configurable: true, get: function() {
              return g[t2];
            }, set: function(e2) {
              g[t2] = e2;
            } });
          };
          var S = S2;
          for (var j = function(e2, t2) {
            var r2, n2 = this instanceof j, o2 = u(e2), i2 = t2 === void 0;
            if (!n2 && o2 && e2.constructor === j && i2)
              return e2;
            x ? o2 && !i2 && (e2 = e2.source) : e2 instanceof j && (i2 && (t2 = c.call(e2)), e2 = e2.source), w && (r2 = !!t2 && -1 < t2.indexOf("y")) && (t2 = t2.replace(/y/g, ""));
            var a2 = s(x ? new g(e2, t2) : g(e2, t2), n2 ? this : v, j);
            return w && r2 && p(a2, { sticky: r2 }), a2;
          }, M = l(g), E = 0; M.length > E; )
            S2(M[E++]);
          (v.constructor = j).prototype = v, f(o, "RegExp", j);
        }
        y("RegExp");
      }, { "../internals/descriptors": 42, "../internals/fails": 50, "../internals/global": 58, "../internals/inherit-if-required": 66, "../internals/internal-state": 69, "../internals/is-forced": 72, "../internals/is-regexp": 75, "../internals/object-define-property": 91, "../internals/object-get-own-property-names": 94, "../internals/redefine": 107, "../internals/regexp-flags": 110, "../internals/regexp-sticky-helpers": 111, "../internals/set-species": 115, "../internals/well-known-symbol": 145 }], 178: [function(e, t, r) {
        "use strict";
        var n = e("../internals/export"), o = e("../internals/regexp-exec");
        n({ target: "RegExp", proto: true, forced: /./.exec !== o }, { exec: o });
      }, { "../internals/export": 49, "../internals/regexp-exec": 109 }], 179: [function(e, t, r) {
        "use strict";
        var n = e("../internals/redefine"), o = e("../internals/an-object"), i = e("../internals/fails"), a = e("../internals/regexp-flags"), s = "toString", l = RegExp.prototype, u = l[s], c = i(function() {
          return u.call({ source: "a", flags: "b" }) != "/a/b";
        }), d = u.name != s;
        (c || d) && n(RegExp.prototype, s, function() {
          var e2 = o(this), t2 = String(e2.source), r2 = e2.flags;
          return "/" + t2 + "/" + String(r2 === void 0 && e2 instanceof RegExp && !("flags" in l) ? a.call(e2) : r2);
        }, { unsafe: true });
      }, { "../internals/an-object": 10, "../internals/fails": 50, "../internals/redefine": 107, "../internals/regexp-flags": 110 }], 180: [function(e, t, r) {
        "use strict";
        var n = e("../internals/collection"), o = e("../internals/collection-strong");
        t.exports = n("Set", function(t2) {
          return function(e2) {
            return t2(this, arguments.length ? e2 : void 0);
          };
        }, o);
      }, { "../internals/collection": 31, "../internals/collection-strong": 30 }], 181: [function(e, t, r) {
        "use strict";
        var n, o = e("../internals/export"), i = e("../internals/object-get-own-property-descriptor").f, s = e("../internals/to-length"), l = e("../internals/not-a-regexp"), u = e("../internals/require-object-coercible"), a = e("../internals/correct-is-regexp-logic"), c = e("../internals/is-pure"), d = "".endsWith, f = Math.min, h = a("endsWith");
        o({ target: "String", proto: true, forced: !!(c || h || (!(n = i(String.prototype, "endsWith")) || n.writable)) && !h }, { endsWith: function(e2, t2) {
          var r2 = String(u(this));
          l(e2);
          var n2 = 1 < arguments.length ? t2 : void 0, o2 = s(r2.length), i2 = n2 === void 0 ? o2 : f(s(n2), o2), a2 = String(e2);
          return d ? d.call(r2, a2, i2) : r2.slice(i2 - a2.length, i2) === a2;
        } });
      }, { "../internals/correct-is-regexp-logic": 33, "../internals/export": 49, "../internals/is-pure": 74, "../internals/not-a-regexp": 86, "../internals/object-get-own-property-descriptor": 92, "../internals/require-object-coercible": 112, "../internals/to-length": 133 }], 182: [function(e, t, r) {
        "use strict";
        var n = e("../internals/export"), o = e("../internals/not-a-regexp"), i = e("../internals/require-object-coercible");
        n({ target: "String", proto: true, forced: !e("../internals/correct-is-regexp-logic")("includes") }, { includes: function(e2, t2) {
          return !!~String(i(this)).indexOf(o(e2), 1 < arguments.length ? t2 : void 0);
        } });
      }, { "../internals/correct-is-regexp-logic": 33, "../internals/export": 49, "../internals/not-a-regexp": 86, "../internals/require-object-coercible": 112 }], 183: [function(e, t, r) {
        "use strict";
        var o = e("../internals/string-multibyte").charAt, n = e("../internals/internal-state"), i = e("../internals/define-iterator"), a = "String Iterator", s = n.set, l = n.getterFor(a);
        i(String, "String", function(e2) {
          s(this, { type: a, string: String(e2), index: 0 });
        }, function() {
          var e2, t2 = l(this), r2 = t2.string, n2 = t2.index;
          return n2 >= r2.length ? { value: void 0, done: true } : (e2 = o(r2, n2), t2.index += e2.length, { value: e2, done: false });
        });
      }, { "../internals/define-iterator": 40, "../internals/internal-state": 69, "../internals/string-multibyte": 122 }], 184: [function(e, t, r) {
        "use strict";
        var n = e("../internals/fix-regexp-well-known-symbol-logic"), d = e("../internals/an-object"), f = e("../internals/to-length"), o = e("../internals/require-object-coercible"), h = e("../internals/advance-string-index"), p = e("../internals/regexp-exec-abstract");
        n("match", 1, function(n2, u, c) {
          return [function(e2) {
            var t2 = o(this), r2 = e2 == null ? void 0 : e2[n2];
            return r2 !== void 0 ? r2.call(e2, t2) : new RegExp(e2)[n2](String(t2));
          }, function(e2) {
            var t2 = c(u, e2, this);
            if (t2.done)
              return t2.value;
            var r2 = d(e2), n3 = String(this);
            if (!r2.global)
              return p(r2, n3);
            for (var o2, i = r2.unicode, a = [], s = r2.lastIndex = 0; (o2 = p(r2, n3)) !== null; ) {
              var l = String(o2[0]);
              (a[s] = l) === "" && (r2.lastIndex = h(n3, f(r2.lastIndex), i)), s++;
            }
            return s === 0 ? null : a;
          }];
        });
      }, { "../internals/advance-string-index": 8, "../internals/an-object": 10, "../internals/fix-regexp-well-known-symbol-logic": 51, "../internals/regexp-exec-abstract": 108, "../internals/require-object-coercible": 112, "../internals/to-length": 133 }], 185: [function(e, t, r) {
        e("../internals/export")({ target: "String", proto: true }, { repeat: e("../internals/string-repeat") });
      }, { "../internals/export": 49, "../internals/string-repeat": 124 }], 186: [function(e, t, r) {
        "use strict";
        var n = e("../internals/fix-regexp-well-known-symbol-logic"), T = e("../internals/an-object"), f = e("../internals/to-object"), O = e("../internals/to-length"), C = e("../internals/to-integer"), i = e("../internals/require-object-coercible"), L = e("../internals/advance-string-index"), P = e("../internals/regexp-exec-abstract"), k = Math.max, A = Math.min, h = Math.floor, p = /\$([$&'`]|\d\d?|<[^>]*>)/g, y = /\$([$&'`]|\d\d?)/g;
        n("replace", 2, function(o, x, w, e2) {
          var S = e2.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE, j = e2.REPLACE_KEEPS_$0, M = S ? "$" : "$0";
          return [function(e3, t2) {
            var r2 = i(this), n2 = e3 == null ? void 0 : e3[o];
            return n2 !== void 0 ? n2.call(e3, r2, t2) : x.call(String(r2), e3, t2);
          }, function(e3, t2) {
            if (!S && j || typeof t2 == "string" && t2.indexOf(M) === -1) {
              var r2 = w(x, e3, this, t2);
              if (r2.done)
                return r2.value;
            }
            var n2 = T(e3), o2 = String(this), i2 = typeof t2 == "function";
            i2 || (t2 = String(t2));
            var a = n2.global;
            if (a) {
              var s = n2.unicode;
              n2.lastIndex = 0;
            }
            for (var l = []; ; ) {
              var u = P(n2, o2);
              if (u === null)
                break;
              if (l.push(u), !a)
                break;
              String(u[0]) === "" && (n2.lastIndex = L(o2, O(n2.lastIndex), s));
            }
            for (var c, d = "", f2 = 0, h2 = 0; h2 < l.length; h2++) {
              u = l[h2];
              for (var p2 = String(u[0]), y2 = k(A(C(u.index), o2.length), 0), m = [], g = 1; g < u.length; g++)
                m.push((c = u[g]) === void 0 ? c : String(c));
              var v = u.groups;
              if (i2) {
                var b = [p2].concat(m, y2, o2);
                v !== void 0 && b.push(v);
                var _ = String(t2.apply(void 0, b));
              } else
                _ = E(p2, o2, y2, m, v, t2);
              f2 <= y2 && (d += o2.slice(f2, y2) + _, f2 = y2 + p2.length);
            }
            return d + o2.slice(f2);
          }];
          function E(i2, a, s, l, u, e3) {
            var c = s + i2.length, d = l.length, t2 = y;
            return u !== void 0 && (u = f(u), t2 = p), x.call(e3, t2, function(e4, t3) {
              var r2;
              switch (t3.charAt(0)) {
                case "$":
                  return "$";
                case "&":
                  return i2;
                case "`":
                  return a.slice(0, s);
                case "'":
                  return a.slice(c);
                case "<":
                  r2 = u[t3.slice(1, -1)];
                  break;
                default:
                  var n2 = +t3;
                  if (n2 == 0)
                    return e4;
                  if (d < n2) {
                    var o2 = h(n2 / 10);
                    return o2 === 0 ? e4 : o2 <= d ? l[o2 - 1] === void 0 ? t3.charAt(1) : l[o2 - 1] + t3.charAt(1) : e4;
                  }
                  r2 = l[n2 - 1];
              }
              return r2 === void 0 ? "" : r2;
            });
          }
        });
      }, { "../internals/advance-string-index": 8, "../internals/an-object": 10, "../internals/fix-regexp-well-known-symbol-logic": 51, "../internals/regexp-exec-abstract": 108, "../internals/require-object-coercible": 112, "../internals/to-integer": 132, "../internals/to-length": 133, "../internals/to-object": 134 }], 187: [function(e, t, r) {
        "use strict";
        var n = e("../internals/fix-regexp-well-known-symbol-logic"), l = e("../internals/an-object"), o = e("../internals/require-object-coercible"), u = e("../internals/same-value"), c = e("../internals/regexp-exec-abstract");
        n("search", 1, function(n2, a, s) {
          return [function(e2) {
            var t2 = o(this), r2 = e2 == null ? void 0 : e2[n2];
            return r2 !== void 0 ? r2.call(e2, t2) : new RegExp(e2)[n2](String(t2));
          }, function(e2) {
            var t2 = s(a, e2, this);
            if (t2.done)
              return t2.value;
            var r2 = l(e2), n3 = String(this), o2 = r2.lastIndex;
            u(o2, 0) || (r2.lastIndex = 0);
            var i = c(r2, n3);
            return u(r2.lastIndex, o2) || (r2.lastIndex = o2), i === null ? -1 : i.index;
          }];
        });
      }, { "../internals/an-object": 10, "../internals/fix-regexp-well-known-symbol-logic": 51, "../internals/regexp-exec-abstract": 108, "../internals/require-object-coercible": 112, "../internals/same-value": 113 }], 188: [function(e, t, r) {
        "use strict";
        var n = e("../internals/fix-regexp-well-known-symbol-logic"), d = e("../internals/is-regexp"), b = e("../internals/an-object"), f = e("../internals/require-object-coercible"), _ = e("../internals/species-constructor"), x = e("../internals/advance-string-index"), w = e("../internals/to-length"), S = e("../internals/regexp-exec-abstract"), h = e("../internals/regexp-exec"), o = e("../internals/fails"), p = [].push, j = Math.min, M = 4294967295, E = !o(function() {
          return !RegExp(M, "y");
        });
        n("split", 2, function(o2, m, g) {
          var v;
          return v = "abbc".split(/(b)*/)[1] == "c" || "test".split(/(?:)/, -1).length != 4 || "ab".split(/(?:ab)*/).length != 2 || ".".split(/(.?)(.?)/).length != 4 || 1 < ".".split(/()()/).length || "".split(/.?/).length ? function(e2, t2) {
            var r2 = String(f(this)), n2 = t2 === void 0 ? M : t2 >>> 0;
            if (n2 == 0)
              return [];
            if (e2 === void 0)
              return [r2];
            if (!d(e2))
              return m.call(r2, e2, n2);
            for (var o3, i, a, s = [], l = (e2.ignoreCase ? "i" : "") + (e2.multiline ? "m" : "") + (e2.unicode ? "u" : "") + (e2.sticky ? "y" : ""), u = 0, c = new RegExp(e2.source, l + "g"); (o3 = h.call(c, r2)) && !(u < (i = c.lastIndex) && (s.push(r2.slice(u, o3.index)), 1 < o3.length && o3.index < r2.length && p.apply(s, o3.slice(1)), a = o3[0].length, u = i, s.length >= n2)); )
              c.lastIndex === o3.index && c.lastIndex++;
            return u === r2.length ? !a && c.test("") || s.push("") : s.push(r2.slice(u)), s.length > n2 ? s.slice(0, n2) : s;
          } : "0".split(void 0, 0).length ? function(e2, t2) {
            return e2 === void 0 && t2 === 0 ? [] : m.call(this, e2, t2);
          } : m, [function(e2, t2) {
            var r2 = f(this), n2 = e2 == null ? void 0 : e2[o2];
            return n2 !== void 0 ? n2.call(e2, r2, t2) : v.call(String(r2), e2, t2);
          }, function(e2, t2) {
            var r2 = g(v, e2, this, t2, v !== m);
            if (r2.done)
              return r2.value;
            var n2 = b(e2), o3 = String(this), i = _(n2, RegExp), a = n2.unicode, s = (n2.ignoreCase ? "i" : "") + (n2.multiline ? "m" : "") + (n2.unicode ? "u" : "") + (E ? "y" : "g"), l = new i(E ? n2 : "^(?:" + n2.source + ")", s), u = t2 === void 0 ? M : t2 >>> 0;
            if (u == 0)
              return [];
            if (o3.length === 0)
              return S(l, o3) === null ? [o3] : [];
            for (var c = 0, d2 = 0, f2 = []; d2 < o3.length; ) {
              l.lastIndex = E ? d2 : 0;
              var h2, p2 = S(l, E ? o3 : o3.slice(d2));
              if (p2 === null || (h2 = j(w(l.lastIndex + (E ? 0 : d2)), o3.length)) === c)
                d2 = x(o3, d2, a);
              else {
                if (f2.push(o3.slice(c, d2)), f2.length === u)
                  return f2;
                for (var y = 1; y <= p2.length - 1; y++)
                  if (f2.push(p2[y]), f2.length === u)
                    return f2;
                d2 = c = h2;
              }
            }
            return f2.push(o3.slice(c)), f2;
          }];
        }, !E);
      }, { "../internals/advance-string-index": 8, "../internals/an-object": 10, "../internals/fails": 50, "../internals/fix-regexp-well-known-symbol-logic": 51, "../internals/is-regexp": 75, "../internals/regexp-exec": 109, "../internals/regexp-exec-abstract": 108, "../internals/require-object-coercible": 112, "../internals/species-constructor": 120, "../internals/to-length": 133 }], 189: [function(e, t, r) {
        "use strict";
        var n = e("../internals/export"), o = e("../internals/create-html");
        n({ target: "String", proto: true, forced: e("../internals/string-html-forced")("sub") }, { sub: function() {
          return o(this, "sub", "", "");
        } });
      }, { "../internals/create-html": 35, "../internals/export": 49, "../internals/string-html-forced": 121 }], 190: [function(e, t, r) {
        "use strict";
        var n = e("../internals/export"), o = e("../internals/string-trim").trim;
        n({ target: "String", proto: true, forced: e("../internals/string-trim-forced")("trim") }, { trim: function() {
          return o(this);
        } });
      }, { "../internals/export": 49, "../internals/string-trim": 126, "../internals/string-trim-forced": 125 }], 191: [function(e, t, r) {
        "use strict";
        var n = e("../internals/export"), o = e("../internals/descriptors"), i = e("../internals/global"), a = e("../internals/has"), s = e("../internals/is-object"), l = e("../internals/object-define-property").f, u = e("../internals/copy-constructor-properties"), c = i.Symbol;
        if (o && typeof c == "function" && (!("description" in c.prototype) || c().description !== void 0)) {
          var d = {}, f = function(e2) {
            var t2 = arguments.length < 1 || e2 === void 0 ? void 0 : String(e2), r2 = this instanceof f ? new c(t2) : t2 === void 0 ? c() : c(t2);
            return t2 === "" && (d[r2] = true), r2;
          };
          u(f, c);
          var h = f.prototype = c.prototype;
          h.constructor = f;
          var p = h.toString, y = String(c("test")) == "Symbol(test)", m = /^Symbol\((.*)\)[^)]+$/;
          l(h, "description", { configurable: true, get: function() {
            var e2 = s(this) ? this.valueOf() : this, t2 = p.call(e2);
            if (a(d, e2))
              return "";
            var r2 = y ? t2.slice(7, -1) : t2.replace(m, "$1");
            return r2 === "" ? void 0 : r2;
          } }), n({ global: true, forced: true }, { Symbol: f });
        }
      }, { "../internals/copy-constructor-properties": 32, "../internals/descriptors": 42, "../internals/export": 49, "../internals/global": 58, "../internals/has": 59, "../internals/is-object": 73, "../internals/object-define-property": 91 }], 192: [function(e, t, r) {
        e("../internals/define-well-known-symbol")("iterator");
      }, { "../internals/define-well-known-symbol": 41 }], 193: [function(e, t, r) {
        "use strict";
        function o(e2, t2) {
          var r2 = re[e2] = S(Q[W]);
          return X(r2, { type: H, tag: e2, description: t2 }), d || (r2.description = t2), r2;
        }
        function n(t2, e2) {
          v(t2);
          var r2 = _(e2), n2 = j(r2).concat(he(r2));
          return V(n2, function(e3) {
            d && !fe.call(r2, e3) || de(t2, e3, r2[e3]);
          }), t2;
        }
        function i(e2, t2) {
          var r2 = _(e2), n2 = x(t2, true);
          if (r2 !== Z || !y(re, n2) || y(ne, n2)) {
            var o2 = J(r2, n2);
            return !o2 || !y(re, n2) || y(r2, z) && r2[z][n2] || (o2.enumerable = true), o2;
          }
        }
        function a(e2) {
          var t2 = ee(_(e2)), r2 = [];
          return V(t2, function(e3) {
            y(re, e3) || y(D, e3) || r2.push(e3);
          }), r2;
        }
        var s = e("../internals/export"), l = e("../internals/global"), u = e("../internals/get-built-in"), c = e("../internals/is-pure"), d = e("../internals/descriptors"), f = e("../internals/native-symbol"), h = e("../internals/use-symbol-as-uid"), p = e("../internals/fails"), y = e("../internals/has"), m = e("../internals/is-array"), g = e("../internals/is-object"), v = e("../internals/an-object"), b = e("../internals/to-object"), _ = e("../internals/to-indexed-object"), x = e("../internals/to-primitive"), w = e("../internals/create-property-descriptor"), S = e("../internals/object-create"), j = e("../internals/object-keys"), M = e("../internals/object-get-own-property-names"), E = e("../internals/object-get-own-property-names-external"), T = e("../internals/object-get-own-property-symbols"), O = e("../internals/object-get-own-property-descriptor"), C = e("../internals/object-define-property"), L = e("../internals/object-property-is-enumerable"), P = e("../internals/create-non-enumerable-property"), k = e("../internals/redefine"), A = e("../internals/shared"), R = e("../internals/shared-key"), D = e("../internals/hidden-keys"), I = e("../internals/uid"), U = e("../internals/well-known-symbol"), N = e("../internals/well-known-symbol-wrapped"), F = e("../internals/define-well-known-symbol"), B = e("../internals/set-to-string-tag"), G = e("../internals/internal-state"), V = e("../internals/array-iteration").forEach, z = R("hidden"), H = "Symbol", W = "prototype", q = U("toPrimitive"), X = G.set, Y = G.getterFor(H), Z = Object[W], Q = l.Symbol, K = u("JSON", "stringify"), J = O.f, $ = C.f, ee = E.f, te = L.f, re = A("symbols"), ne = A("op-symbols"), oe = A("string-to-symbol-registry"), ie = A("symbol-to-string-registry"), ae = A("wks"), se = l.QObject, le = !se || !se[W] || !se[W].findChild, ue = d && p(function() {
          return S($({}, "a", { get: function() {
            return $(this, "a", { value: 7 }).a;
          } })).a != 7;
        }) ? function(e2, t2, r2) {
          var n2 = J(Z, t2);
          n2 && delete Z[t2], $(e2, t2, r2), n2 && e2 !== Z && $(Z, t2, n2);
        } : $, ce = h ? function(e2) {
          return typeof e2 == "symbol";
        } : function(e2) {
          return Object(e2) instanceof Q;
        }, de = function(e2, t2, r2) {
          e2 === Z && de(ne, t2, r2), v(e2);
          var n2 = x(t2, true);
          return v(r2), y(re, n2) ? (r2.enumerable ? (y(e2, z) && e2[z][n2] && (e2[z][n2] = false), r2 = S(r2, { enumerable: w(0, false) })) : (y(e2, z) || $(e2, z, w(1, {})), e2[z][n2] = true), ue(e2, n2, r2)) : $(e2, n2, r2);
        }, fe = function(e2) {
          var t2 = x(e2, true), r2 = te.call(this, t2);
          return !(this === Z && y(re, t2) && !y(ne, t2)) && (!(r2 || !y(this, t2) || !y(re, t2) || y(this, z) && this[z][t2]) || r2);
        }, he = function(e2) {
          var t2 = e2 === Z, r2 = ee(t2 ? ne : _(e2)), n2 = [];
          return V(r2, function(e3) {
            !y(re, e3) || t2 && !y(Z, e3) || n2.push(re[e3]);
          }), n2;
        };
        f || (k((Q = function(e2) {
          if (this instanceof Q)
            throw TypeError("Symbol is not a constructor");
          var t2 = arguments.length && e2 !== void 0 ? String(e2) : void 0, r2 = I(t2), n2 = function(e3) {
            this === Z && n2.call(ne, e3), y(this, z) && y(this[z], r2) && (this[z][r2] = false), ue(this, r2, w(1, e3));
          };
          return d && le && ue(Z, r2, { configurable: true, set: n2 }), o(r2, t2);
        })[W], "toString", function() {
          return Y(this).tag;
        }), k(Q, "withoutSetter", function(e2) {
          return o(I(e2), e2);
        }), L.f = fe, C.f = de, O.f = i, M.f = E.f = a, T.f = he, N.f = function(e2) {
          return o(U(e2), e2);
        }, d && ($(Q[W], "description", { configurable: true, get: function() {
          return Y(this).description;
        } }), c || k(Z, "propertyIsEnumerable", fe, { unsafe: true }))), s({ global: true, wrap: true, forced: !f, sham: !f }, { Symbol: Q }), V(j(ae), function(e2) {
          F(e2);
        }), s({ target: H, stat: true, forced: !f }, { for: function(e2) {
          var t2 = String(e2);
          if (y(oe, t2))
            return oe[t2];
          var r2 = Q(t2);
          return oe[t2] = r2, ie[r2] = t2, r2;
        }, keyFor: function(e2) {
          if (!ce(e2))
            throw TypeError(e2 + " is not a symbol");
          if (y(ie, e2))
            return ie[e2];
        }, useSetter: function() {
          le = true;
        }, useSimple: function() {
          le = false;
        } }), s({ target: "Object", stat: true, forced: !f, sham: !d }, { create: function(e2, t2) {
          return t2 === void 0 ? S(e2) : n(S(e2), t2);
        }, defineProperty: de, defineProperties: n, getOwnPropertyDescriptor: i }), s({ target: "Object", stat: true, forced: !f }, { getOwnPropertyNames: a, getOwnPropertySymbols: he }), s({ target: "Object", stat: true, forced: p(function() {
          T.f(1);
        }) }, { getOwnPropertySymbols: function(e2) {
          return T.f(b(e2));
        } }), K && s({ target: "JSON", stat: true, forced: !f || p(function() {
          var e2 = Q();
          return K([e2]) != "[null]" || K({ a: e2 }) != "{}" || K(Object(e2)) != "{}";
        }) }, { stringify: function(e2, t2, r2) {
          for (var n2, o2 = [e2], i2 = 1; i2 < arguments.length; )
            o2.push(arguments[i2++]);
          if ((g(n2 = t2) || e2 !== void 0) && !ce(e2))
            return m(t2) || (t2 = function(e3, t3) {
              if (typeof n2 == "function" && (t3 = n2.call(this, e3, t3)), !ce(t3))
                return t3;
            }), o2[1] = t2, K.apply(null, o2);
        } });
        Q[W][q] || P(Q[W], q, Q[W].valueOf), B(Q, H), D[z] = true;
      }, { "../internals/an-object": 10, "../internals/array-iteration": 19, "../internals/create-non-enumerable-property": 37, "../internals/create-property-descriptor": 38, "../internals/define-well-known-symbol": 41, "../internals/descriptors": 42, "../internals/export": 49, "../internals/fails": 50, "../internals/get-built-in": 55, "../internals/global": 58, "../internals/has": 59, "../internals/hidden-keys": 60, "../internals/internal-state": 69, "../internals/is-array": 71, "../internals/is-object": 73, "../internals/is-pure": 74, "../internals/native-symbol": 82, "../internals/object-create": 89, "../internals/object-define-property": 91, "../internals/object-get-own-property-descriptor": 92, "../internals/object-get-own-property-names": 94, "../internals/object-get-own-property-names-external": 93, "../internals/object-get-own-property-symbols": 95, "../internals/object-keys": 98, "../internals/object-property-is-enumerable": 99, "../internals/redefine": 107, "../internals/set-to-string-tag": 116, "../internals/shared": 119, "../internals/shared-key": 117, "../internals/to-indexed-object": 131, "../internals/to-object": 134, "../internals/to-primitive": 137, "../internals/uid": 142, "../internals/use-symbol-as-uid": 143, "../internals/well-known-symbol": 145, "../internals/well-known-symbol-wrapped": 144 }], 194: [function(e, t, r) {
        "use strict";
        var n = e("../internals/array-buffer-view-core"), o = e("../internals/array-copy-within"), i = n.aTypedArray;
        (0, n.exportTypedArrayMethod)("copyWithin", function(e2, t2, r2) {
          return o.call(i(this), e2, t2, 2 < arguments.length ? r2 : void 0);
        });
      }, { "../internals/array-buffer-view-core": 12, "../internals/array-copy-within": 14 }], 195: [function(e, t, r) {
        "use strict";
        var n = e("../internals/array-buffer-view-core"), o = e("../internals/array-iteration").every, i = n.aTypedArray;
        (0, n.exportTypedArrayMethod)("every", function(e2, t2) {
          return o(i(this), e2, 1 < arguments.length ? t2 : void 0);
        });
      }, { "../internals/array-buffer-view-core": 12, "../internals/array-iteration": 19 }], 196: [function(e, t, r) {
        "use strict";
        var n = e("../internals/array-buffer-view-core"), o = e("../internals/array-fill"), i = n.aTypedArray;
        (0, n.exportTypedArrayMethod)("fill", function(e2) {
          return o.apply(i(this), arguments);
        });
      }, { "../internals/array-buffer-view-core": 12, "../internals/array-fill": 15 }], 197: [function(e, t, r) {
        "use strict";
        var n = e("../internals/array-buffer-view-core"), s = e("../internals/array-iteration").filter, l = e("../internals/species-constructor"), u = n.aTypedArray, c = n.aTypedArrayConstructor;
        (0, n.exportTypedArrayMethod)("filter", function(e2, t2) {
          for (var r2 = s(u(this), e2, 1 < arguments.length ? t2 : void 0), n2 = l(this, this.constructor), o = 0, i = r2.length, a = new (c(n2))(i); o < i; )
            a[o] = r2[o++];
          return a;
        });
      }, { "../internals/array-buffer-view-core": 12, "../internals/array-iteration": 19, "../internals/species-constructor": 120 }], 198: [function(e, t, r) {
        "use strict";
        var n = e("../internals/array-buffer-view-core"), o = e("../internals/array-iteration").findIndex, i = n.aTypedArray;
        (0, n.exportTypedArrayMethod)("findIndex", function(e2, t2) {
          return o(i(this), e2, 1 < arguments.length ? t2 : void 0);
        });
      }, { "../internals/array-buffer-view-core": 12, "../internals/array-iteration": 19 }], 199: [function(e, t, r) {
        "use strict";
        var n = e("../internals/array-buffer-view-core"), o = e("../internals/array-iteration").find, i = n.aTypedArray;
        (0, n.exportTypedArrayMethod)("find", function(e2, t2) {
          return o(i(this), e2, 1 < arguments.length ? t2 : void 0);
        });
      }, { "../internals/array-buffer-view-core": 12, "../internals/array-iteration": 19 }], 200: [function(e, t, r) {
        e("../internals/typed-array-constructor")("Float32", function(n) {
          return function(e2, t2, r2) {
            return n(this, e2, t2, r2);
          };
        });
      }, { "../internals/typed-array-constructor": 139 }], 201: [function(e, t, r) {
        e("../internals/typed-array-constructor")("Float64", function(n) {
          return function(e2, t2, r2) {
            return n(this, e2, t2, r2);
          };
        });
      }, { "../internals/typed-array-constructor": 139 }], 202: [function(e, t, r) {
        "use strict";
        var n = e("../internals/array-buffer-view-core"), o = e("../internals/array-iteration").forEach, i = n.aTypedArray;
        (0, n.exportTypedArrayMethod)("forEach", function(e2, t2) {
          o(i(this), e2, 1 < arguments.length ? t2 : void 0);
        });
      }, { "../internals/array-buffer-view-core": 12, "../internals/array-iteration": 19 }], 203: [function(e, t, r) {
        "use strict";
        var n = e("../internals/array-buffer-view-core"), o = e("../internals/array-includes").includes, i = n.aTypedArray;
        (0, n.exportTypedArrayMethod)("includes", function(e2, t2) {
          return o(i(this), e2, 1 < arguments.length ? t2 : void 0);
        });
      }, { "../internals/array-buffer-view-core": 12, "../internals/array-includes": 18 }], 204: [function(e, t, r) {
        "use strict";
        var n = e("../internals/array-buffer-view-core"), o = e("../internals/array-includes").indexOf, i = n.aTypedArray;
        (0, n.exportTypedArrayMethod)("indexOf", function(e2, t2) {
          return o(i(this), e2, 1 < arguments.length ? t2 : void 0);
        });
      }, { "../internals/array-buffer-view-core": 12, "../internals/array-includes": 18 }], 205: [function(e, t, r) {
        e("../internals/typed-array-constructor")("Int16", function(n) {
          return function(e2, t2, r2) {
            return n(this, e2, t2, r2);
          };
        });
      }, { "../internals/typed-array-constructor": 139 }], 206: [function(e, t, r) {
        e("../internals/typed-array-constructor")("Int32", function(n) {
          return function(e2, t2, r2) {
            return n(this, e2, t2, r2);
          };
        });
      }, { "../internals/typed-array-constructor": 139 }], 207: [function(e, t, r) {
        "use strict";
        function n() {
          return u.call(f(this));
        }
        var o = e("../internals/global"), i = e("../internals/array-buffer-view-core"), a = e("../modules/es.array.iterator"), s = e("../internals/well-known-symbol")("iterator"), l = o.Uint8Array, u = a.values, c = a.keys, d = a.entries, f = i.aTypedArray, h = i.exportTypedArrayMethod, p = l && l.prototype[s], y = !!p && (p.name == "values" || p.name == null);
        h("entries", function() {
          return d.call(f(this));
        }), h("keys", function() {
          return c.call(f(this));
        }), h("values", n, !y), h(s, n, !y);
      }, { "../internals/array-buffer-view-core": 12, "../internals/global": 58, "../internals/well-known-symbol": 145, "../modules/es.array.iterator": 156 }], 208: [function(e, t, r) {
        "use strict";
        var n = e("../internals/array-buffer-view-core"), o = n.aTypedArray, i = n.exportTypedArrayMethod, a = [].join;
        i("join", function(e2) {
          return a.apply(o(this), arguments);
        });
      }, { "../internals/array-buffer-view-core": 12 }], 209: [function(e, t, r) {
        "use strict";
        var n = e("../internals/array-buffer-view-core"), o = e("../internals/array-last-index-of"), i = n.aTypedArray;
        (0, n.exportTypedArrayMethod)("lastIndexOf", function(e2) {
          return o.apply(i(this), arguments);
        });
      }, { "../internals/array-buffer-view-core": 12, "../internals/array-last-index-of": 20 }], 210: [function(e, t, r) {
        "use strict";
        var n = e("../internals/array-buffer-view-core"), o = e("../internals/array-iteration").map, i = e("../internals/species-constructor"), a = n.aTypedArray, s = n.aTypedArrayConstructor;
        (0, n.exportTypedArrayMethod)("map", function(e2, t2) {
          return o(a(this), e2, 1 < arguments.length ? t2 : void 0, function(e3, t3) {
            return new (s(i(e3, e3.constructor)))(t3);
          });
        });
      }, { "../internals/array-buffer-view-core": 12, "../internals/array-iteration": 19, "../internals/species-constructor": 120 }], 211: [function(e, t, r) {
        "use strict";
        var n = e("../internals/array-buffer-view-core"), o = e("../internals/array-reduce").right, i = n.aTypedArray;
        (0, n.exportTypedArrayMethod)("reduceRight", function(e2, t2) {
          return o(i(this), e2, arguments.length, 1 < arguments.length ? t2 : void 0);
        });
      }, { "../internals/array-buffer-view-core": 12, "../internals/array-reduce": 24 }], 212: [function(e, t, r) {
        "use strict";
        var n = e("../internals/array-buffer-view-core"), o = e("../internals/array-reduce").left, i = n.aTypedArray;
        (0, n.exportTypedArrayMethod)("reduce", function(e2, t2) {
          return o(i(this), e2, arguments.length, 1 < arguments.length ? t2 : void 0);
        });
      }, { "../internals/array-buffer-view-core": 12, "../internals/array-reduce": 24 }], 213: [function(e, t, r) {
        "use strict";
        var n = e("../internals/array-buffer-view-core"), o = n.aTypedArray, i = n.exportTypedArrayMethod, a = Math.floor;
        i("reverse", function() {
          for (var e2, t2 = o(this).length, r2 = a(t2 / 2), n2 = 0; n2 < r2; )
            e2 = this[n2], this[n2++] = this[--t2], this[t2] = e2;
          return this;
        });
      }, { "../internals/array-buffer-view-core": 12 }], 214: [function(e, t, r) {
        "use strict";
        var n = e("../internals/array-buffer-view-core"), s = e("../internals/to-length"), l = e("../internals/to-offset"), u = e("../internals/to-object"), o = e("../internals/fails"), c = n.aTypedArray;
        (0, n.exportTypedArrayMethod)("set", function(e2, t2) {
          c(this);
          var r2 = l(1 < arguments.length ? t2 : void 0, 1), n2 = this.length, o2 = u(e2), i = s(o2.length), a = 0;
          if (n2 < i + r2)
            throw RangeError("Wrong length");
          for (; a < i; )
            this[r2 + a] = o2[a++];
        }, o(function() {
          new Int8Array(1).set({});
        }));
      }, { "../internals/array-buffer-view-core": 12, "../internals/fails": 50, "../internals/to-length": 133, "../internals/to-object": 134, "../internals/to-offset": 135 }], 215: [function(e, t, r) {
        "use strict";
        var n = e("../internals/array-buffer-view-core"), s = e("../internals/species-constructor"), o = e("../internals/fails"), l = n.aTypedArray, u = n.aTypedArrayConstructor, i = n.exportTypedArrayMethod, c = [].slice;
        i("slice", function(e2, t2) {
          for (var r2 = c.call(l(this), e2, t2), n2 = s(this, this.constructor), o2 = 0, i2 = r2.length, a = new (u(n2))(i2); o2 < i2; )
            a[o2] = r2[o2++];
          return a;
        }, o(function() {
          new Int8Array(1).slice();
        }));
      }, { "../internals/array-buffer-view-core": 12, "../internals/fails": 50, "../internals/species-constructor": 120 }], 216: [function(e, t, r) {
        "use strict";
        var n = e("../internals/array-buffer-view-core"), o = e("../internals/array-iteration").some, i = n.aTypedArray;
        (0, n.exportTypedArrayMethod)("some", function(e2, t2) {
          return o(i(this), e2, 1 < arguments.length ? t2 : void 0);
        });
      }, { "../internals/array-buffer-view-core": 12, "../internals/array-iteration": 19 }], 217: [function(e, t, r) {
        "use strict";
        var n = e("../internals/array-buffer-view-core"), o = n.aTypedArray, i = n.exportTypedArrayMethod, a = [].sort;
        i("sort", function(e2) {
          return a.call(o(this), e2);
        });
      }, { "../internals/array-buffer-view-core": 12 }], 218: [function(e, t, r) {
        "use strict";
        var n = e("../internals/array-buffer-view-core"), i = e("../internals/to-length"), a = e("../internals/to-absolute-index"), s = e("../internals/species-constructor"), l = n.aTypedArray;
        (0, n.exportTypedArrayMethod)("subarray", function(e2, t2) {
          var r2 = l(this), n2 = r2.length, o = a(e2, n2);
          return new (s(r2, r2.constructor))(r2.buffer, r2.byteOffset + o * r2.BYTES_PER_ELEMENT, i((t2 === void 0 ? n2 : a(t2, n2)) - o));
        });
      }, { "../internals/array-buffer-view-core": 12, "../internals/species-constructor": 120, "../internals/to-absolute-index": 129, "../internals/to-length": 133 }], 219: [function(e, t, r) {
        "use strict";
        var n = e("../internals/global"), o = e("../internals/array-buffer-view-core"), i = e("../internals/fails"), a = n.Int8Array, s = o.aTypedArray, l = o.exportTypedArrayMethod, u = [].toLocaleString, c = [].slice, d = !!a && i(function() {
          u.call(new a(1));
        });
        l("toLocaleString", function() {
          return u.apply(d ? c.call(s(this)) : s(this), arguments);
        }, i(function() {
          return [1, 2].toLocaleString() != new a([1, 2]).toLocaleString();
        }) || !i(function() {
          a.prototype.toLocaleString.call([1, 2]);
        }));
      }, { "../internals/array-buffer-view-core": 12, "../internals/fails": 50, "../internals/global": 58 }], 220: [function(e, t, r) {
        "use strict";
        var n = e("../internals/array-buffer-view-core").exportTypedArrayMethod, o = e("../internals/fails"), i = e("../internals/global").Uint8Array, a = i && i.prototype || {}, s = [].toString, l = [].join;
        o(function() {
          s.call({});
        }) && (s = function() {
          return l.call(this);
        }), n("toString", s, a.toString != s);
      }, { "../internals/array-buffer-view-core": 12, "../internals/fails": 50, "../internals/global": 58 }], 221: [function(e, t, r) {
        e("../internals/typed-array-constructor")("Uint16", function(n) {
          return function(e2, t2, r2) {
            return n(this, e2, t2, r2);
          };
        });
      }, { "../internals/typed-array-constructor": 139 }], 222: [function(e, t, r) {
        e("../internals/typed-array-constructor")("Uint32", function(n) {
          return function(e2, t2, r2) {
            return n(this, e2, t2, r2);
          };
        });
      }, { "../internals/typed-array-constructor": 139 }], 223: [function(e, t, r) {
        e("../internals/typed-array-constructor")("Uint8", function(n) {
          return function(e2, t2, r2) {
            return n(this, e2, t2, r2);
          };
        });
      }, { "../internals/typed-array-constructor": 139 }], 224: [function(e, t, r) {
        e("../internals/typed-array-constructor")("Uint8", function(n) {
          return function(e2, t2, r2) {
            return n(this, e2, t2, r2);
          };
        }, true);
      }, { "../internals/typed-array-constructor": 139 }], 225: [function(e, t, r) {
        var n = e("../internals/global"), o = e("../internals/dom-iterables"), i = e("../internals/array-for-each"), a = e("../internals/create-non-enumerable-property");
        for (var s in o) {
          var l = n[s], u = l && l.prototype;
          if (u && u.forEach !== i)
            try {
              a(u, "forEach", i);
            } catch (e2) {
              u.forEach = i;
            }
        }
      }, { "../internals/array-for-each": 16, "../internals/create-non-enumerable-property": 37, "../internals/dom-iterables": 44, "../internals/global": 58 }], 226: [function(e, t, r) {
        var n = e("../internals/global"), o = e("../internals/dom-iterables"), i = e("../modules/es.array.iterator"), a = e("../internals/create-non-enumerable-property"), s = e("../internals/well-known-symbol"), l = s("iterator"), u = s("toStringTag"), c = i.values;
        for (var d in o) {
          var f = n[d], h = f && f.prototype;
          if (h) {
            if (h[l] !== c)
              try {
                a(h, l, c);
              } catch (e2) {
                h[l] = c;
              }
            if (h[u] || a(h, u, d), o[d]) {
              for (var p in i)
                if (h[p] !== i[p])
                  try {
                    a(h, p, i[p]);
                  } catch (e2) {
                    h[p] = i[p];
                  }
            }
          }
        }
      }, { "../internals/create-non-enumerable-property": 37, "../internals/dom-iterables": 44, "../internals/global": 58, "../internals/well-known-symbol": 145, "../modules/es.array.iterator": 156 }], 227: [function(e, t, r) {
        "use strict";
        e("../modules/es.array.iterator");
        function o(t2) {
          try {
            return decodeURIComponent(t2);
          } catch (e2) {
            return t2;
          }
        }
        function a(e2) {
          var t2, r2 = e2.replace(U, " "), n2 = 4;
          try {
            return decodeURIComponent(r2);
          } catch (e3) {
            for (; n2; )
              r2 = r2.replace((t2 = n2--, N[t2 - 1] || (N[t2 - 1] = RegExp("((?:%[\\da-f]{2}){" + t2 + "})", "gi"))), o);
            return r2;
          }
        }
        function n(e2) {
          return B[e2];
        }
        function i(e2) {
          return encodeURIComponent(e2).replace(F, n);
        }
        function f(e2, t2) {
          if (t2)
            for (var r2, n2, o2 = t2.split("&"), i2 = 0; i2 < o2.length; )
              (r2 = o2[i2++]).length && (n2 = r2.split("="), e2.push({ key: a(n2.shift()), value: a(n2.join("=")) }));
        }
        function h(e2) {
          this.entries.length = 0, f(this.entries, e2);
        }
        function u(e2, t2) {
          if (e2 < t2)
            throw TypeError("Not enough arguments");
        }
        var s = e("../internals/export"), l = e("../internals/get-built-in"), c = e("../internals/native-url"), d = e("../internals/redefine"), p = e("../internals/redefine-all"), y = e("../internals/set-to-string-tag"), m = e("../internals/create-iterator-constructor"), g = e("../internals/internal-state"), v = e("../internals/an-instance"), b = e("../internals/has"), _ = e("../internals/function-bind-context"), x = e("../internals/classof"), w = e("../internals/an-object"), S = e("../internals/is-object"), j = e("../internals/object-create"), M = e("../internals/create-property-descriptor"), E = e("../internals/get-iterator"), T = e("../internals/get-iterator-method"), O = e("../internals/well-known-symbol"), C = l("fetch"), L = l("Headers"), P = O("iterator"), k = "URLSearchParams", A = k + "Iterator", R = g.set, D = g.getterFor(k), I = g.getterFor(A), U = /\+/g, N = Array(4), F = /[!'()~]|%20/g, B = { "!": "%21", "'": "%27", "(": "%28", ")": "%29", "~": "%7E", "%20": "+" }, G = m(function(e2, t2) {
          R(this, { type: A, iterator: E(D(e2).entries), kind: t2 });
        }, "Iterator", function() {
          var e2 = I(this), t2 = e2.kind, r2 = e2.iterator.next(), n2 = r2.value;
          return r2.done || (r2.value = t2 === "keys" ? n2.key : t2 === "values" ? n2.value : [n2.key, n2.value]), r2;
        }), V = function(e2) {
          v(this, V, k);
          var t2, r2, n2, o2, i2, a2, s2, l2, u2, c2 = 0 < arguments.length ? e2 : void 0, d2 = [];
          if (R(this, { type: k, entries: d2, updateURL: function() {
          }, updateSearchParams: h }), c2 !== void 0)
            if (S(c2))
              if (typeof (t2 = T(c2)) == "function")
                for (n2 = (r2 = t2.call(c2)).next; !(o2 = n2.call(r2)).done; ) {
                  if ((s2 = (a2 = (i2 = E(w(o2.value))).next).call(i2)).done || (l2 = a2.call(i2)).done || !a2.call(i2).done)
                    throw TypeError("Expected sequence with length 2");
                  d2.push({ key: s2.value + "", value: l2.value + "" });
                }
              else
                for (u2 in c2)
                  b(c2, u2) && d2.push({ key: u2, value: c2[u2] + "" });
            else
              f(d2, typeof c2 == "string" ? c2.charAt(0) === "?" ? c2.slice(1) : c2 : c2 + "");
        }, z = V.prototype;
        p(z, { append: function(e2, t2) {
          u(arguments.length, 2);
          var r2 = D(this);
          r2.entries.push({ key: e2 + "", value: t2 + "" }), r2.updateURL();
        }, delete: function(e2) {
          u(arguments.length, 1);
          for (var t2 = D(this), r2 = t2.entries, n2 = e2 + "", o2 = 0; o2 < r2.length; )
            r2[o2].key === n2 ? r2.splice(o2, 1) : o2++;
          t2.updateURL();
        }, get: function(e2) {
          u(arguments.length, 1);
          for (var t2 = D(this).entries, r2 = e2 + "", n2 = 0; n2 < t2.length; n2++)
            if (t2[n2].key === r2)
              return t2[n2].value;
          return null;
        }, getAll: function(e2) {
          u(arguments.length, 1);
          for (var t2 = D(this).entries, r2 = e2 + "", n2 = [], o2 = 0; o2 < t2.length; o2++)
            t2[o2].key === r2 && n2.push(t2[o2].value);
          return n2;
        }, has: function(e2) {
          u(arguments.length, 1);
          for (var t2 = D(this).entries, r2 = e2 + "", n2 = 0; n2 < t2.length; )
            if (t2[n2++].key === r2)
              return true;
          return false;
        }, set: function(e2, t2) {
          u(arguments.length, 1);
          for (var r2, n2 = D(this), o2 = n2.entries, i2 = false, a2 = e2 + "", s2 = t2 + "", l2 = 0; l2 < o2.length; l2++)
            (r2 = o2[l2]).key === a2 && (i2 ? o2.splice(l2--, 1) : (i2 = true, r2.value = s2));
          i2 || o2.push({ key: a2, value: s2 }), n2.updateURL();
        }, sort: function() {
          var e2, t2, r2, n2 = D(this), o2 = n2.entries, i2 = o2.slice();
          for (r2 = o2.length = 0; r2 < i2.length; r2++) {
            for (e2 = i2[r2], t2 = 0; t2 < r2; t2++)
              if (o2[t2].key > e2.key) {
                o2.splice(t2, 0, e2);
                break;
              }
            t2 === r2 && o2.push(e2);
          }
          n2.updateURL();
        }, forEach: function(e2, t2) {
          for (var r2, n2 = D(this).entries, o2 = _(e2, 1 < arguments.length ? t2 : void 0, 3), i2 = 0; i2 < n2.length; )
            o2((r2 = n2[i2++]).value, r2.key, this);
        }, keys: function() {
          return new G(this, "keys");
        }, values: function() {
          return new G(this, "values");
        }, entries: function() {
          return new G(this, "entries");
        } }, { enumerable: true }), d(z, P, z.entries), d(z, "toString", function() {
          for (var e2, t2 = D(this).entries, r2 = [], n2 = 0; n2 < t2.length; )
            e2 = t2[n2++], r2.push(i(e2.key) + "=" + i(e2.value));
          return r2.join("&");
        }, { enumerable: true }), y(V, k), s({ global: true, forced: !c }, { URLSearchParams: V }), c || typeof C != "function" || typeof L != "function" || s({ global: true, enumerable: true, forced: true }, { fetch: function(e2, t2) {
          var r2, n2, o2, i2 = [e2];
          return 1 < arguments.length && (S(r2 = t2) && (n2 = r2.body, x(n2) === k && ((o2 = r2.headers ? new L(r2.headers) : new L()).has("content-type") || o2.set("content-type", "application/x-www-form-urlencoded;charset=UTF-8"), r2 = j(r2, { body: M(0, String(n2)), headers: M(0, o2) }))), i2.push(r2)), C.apply(this, i2);
        } }), t.exports = { URLSearchParams: V, getState: D };
      }, { "../internals/an-instance": 9, "../internals/an-object": 10, "../internals/classof": 29, "../internals/create-iterator-constructor": 36, "../internals/create-property-descriptor": 38, "../internals/export": 49, "../internals/function-bind-context": 53, "../internals/get-built-in": 55, "../internals/get-iterator": 57, "../internals/get-iterator-method": 56, "../internals/has": 59, "../internals/internal-state": 69, "../internals/is-object": 73, "../internals/native-url": 83, "../internals/object-create": 89, "../internals/redefine": 107, "../internals/redefine-all": 106, "../internals/set-to-string-tag": 116, "../internals/well-known-symbol": 145, "../modules/es.array.iterator": 156 }], 228: [function(e, t, r) {
        "use strict";
        e("../modules/es.string.iterator");
        function _(e2, t2) {
          var r2, n2, o2;
          if (t2.charAt(0) == "[") {
            if (t2.charAt(t2.length - 1) != "]")
              return I;
            if (!(r2 = Q(t2.slice(1, -1))))
              return I;
            e2.host = r2;
          } else if (ne(e2)) {
            if (t2 = m(t2), W.test(t2))
              return I;
            if ((r2 = Z(t2)) === null)
              return I;
            e2.host = r2;
          } else {
            if (q.test(t2))
              return I;
            for (r2 = "", n2 = T(t2), o2 = 0; o2 < n2.length; o2++)
              r2 += te(n2[o2], K);
            e2.host = r2;
          }
        }
        function c(e2) {
          var t2, r2, n2, o2;
          if (typeof e2 == "number") {
            for (t2 = [], r2 = 0; r2 < 4; r2++)
              t2.unshift(e2 % 256), e2 = A(e2 / 256);
            return t2.join(".");
          }
          if (typeof e2 != "object")
            return e2;
          for (t2 = "", n2 = function(e3) {
            for (var t3 = null, r3 = 1, n3 = null, o3 = 0, i2 = 0; i2 < 8; i2++)
              e3[i2] !== 0 ? (r3 < o3 && (t3 = n3, r3 = o3), n3 = null, o3 = 0) : (n3 === null && (n3 = i2), ++o3);
            return r3 < o3 && (t3 = n3, r3 = o3), t3;
          }(e2), r2 = 0; r2 < 8; r2++)
            o2 && e2[r2] === 0 || (o2 = o2 && false, n2 === r2 ? (t2 += r2 ? ":" : "::", o2 = true) : (t2 += e2[r2].toString(16), r2 < 7 && (t2 += ":")));
          return "[" + t2 + "]";
        }
        function x(e2) {
          return e2.username != "" || e2.password != "";
        }
        function o(e2) {
          return !e2.host || e2.cannotBeABaseURL || e2.scheme == "file";
        }
        function w(e2, t2) {
          var r2;
          return e2.length == 2 && N.test(e2.charAt(0)) && ((r2 = e2.charAt(1)) == ":" || !t2 && r2 == "|");
        }
        function S(e2) {
          var t2;
          return 1 < e2.length && w(e2.slice(0, 2)) && (e2.length == 2 || (t2 = e2.charAt(2)) === "/" || t2 === "\\" || t2 === "?" || t2 === "#");
        }
        function j(e2) {
          var t2 = e2.path, r2 = t2.length;
          !r2 || e2.scheme == "file" && r2 == 1 && w(t2[0], true) || t2.pop();
        }
        function d(e2, t2, r2, n2) {
          var o2, i2, a2, s2, l2, u2, c2 = r2 || oe, d2 = 0, f2 = "", h2 = false, p2 = false, y2 = false;
          for (r2 || (e2.scheme = "", e2.username = "", e2.password = "", e2.host = null, e2.port = null, e2.path = [], e2.query = null, e2.fragment = null, e2.cannotBeABaseURL = false, t2 = t2.replace(X, "")), t2 = t2.replace(Y, ""), o2 = T(t2); d2 <= o2.length; ) {
            switch (i2 = o2[d2], c2) {
              case oe:
                if (!i2 || !N.test(i2)) {
                  if (r2)
                    return D;
                  c2 = ae;
                  continue;
                }
                f2 += i2.toLowerCase(), c2 = ie;
                break;
              case ie:
                if (i2 && (F.test(i2) || i2 == "+" || i2 == "-" || i2 == "."))
                  f2 += i2.toLowerCase();
                else {
                  if (i2 != ":") {
                    if (r2)
                      return D;
                    f2 = "", c2 = ae, d2 = 0;
                    continue;
                  }
                  if (r2 && (ne(e2) != E(re, f2) || f2 == "file" && (x(e2) || e2.port !== null) || e2.scheme == "file" && !e2.host))
                    return;
                  if (e2.scheme = f2, r2)
                    return void (ne(e2) && re[e2.scheme] == e2.port && (e2.port = null));
                  f2 = "", e2.scheme == "file" ? c2 = ge : ne(e2) && n2 && n2.scheme == e2.scheme ? c2 = se : ne(e2) ? c2 = de : o2[d2 + 1] == "/" ? (c2 = le, d2++) : (e2.cannotBeABaseURL = true, e2.path.push(""), c2 = we);
                }
                break;
              case ae:
                if (!n2 || n2.cannotBeABaseURL && i2 != "#")
                  return D;
                if (n2.cannotBeABaseURL && i2 == "#") {
                  e2.scheme = n2.scheme, e2.path = n2.path.slice(), e2.query = n2.query, e2.fragment = "", e2.cannotBeABaseURL = true, c2 = je;
                  break;
                }
                c2 = n2.scheme == "file" ? ge : ue;
                continue;
              case se:
                if (i2 != "/" || o2[d2 + 1] != "/") {
                  c2 = ue;
                  continue;
                }
                c2 = fe, d2++;
                break;
              case le:
                if (i2 == "/") {
                  c2 = he;
                  break;
                }
                c2 = xe;
                continue;
              case ue:
                if (e2.scheme = n2.scheme, i2 == M)
                  e2.username = n2.username, e2.password = n2.password, e2.host = n2.host, e2.port = n2.port, e2.path = n2.path.slice(), e2.query = n2.query;
                else if (i2 == "/" || i2 == "\\" && ne(e2))
                  c2 = ce;
                else if (i2 == "?")
                  e2.username = n2.username, e2.password = n2.password, e2.host = n2.host, e2.port = n2.port, e2.path = n2.path.slice(), e2.query = "", c2 = Se;
                else {
                  if (i2 != "#") {
                    e2.username = n2.username, e2.password = n2.password, e2.host = n2.host, e2.port = n2.port, e2.path = n2.path.slice(), e2.path.pop(), c2 = xe;
                    continue;
                  }
                  e2.username = n2.username, e2.password = n2.password, e2.host = n2.host, e2.port = n2.port, e2.path = n2.path.slice(), e2.query = n2.query, e2.fragment = "", c2 = je;
                }
                break;
              case ce:
                if (!ne(e2) || i2 != "/" && i2 != "\\") {
                  if (i2 != "/") {
                    e2.username = n2.username, e2.password = n2.password, e2.host = n2.host, e2.port = n2.port, c2 = xe;
                    continue;
                  }
                  c2 = he;
                } else
                  c2 = fe;
                break;
              case de:
                if (c2 = fe, i2 != "/" || f2.charAt(d2 + 1) != "/")
                  continue;
                d2++;
                break;
              case fe:
                if (i2 == "/" || i2 == "\\")
                  break;
                c2 = he;
                continue;
              case he:
                if (i2 == "@") {
                  h2 && (f2 = "%40" + f2), h2 = true, a2 = T(f2);
                  for (var m2 = 0; m2 < a2.length; m2++) {
                    var g2 = a2[m2];
                    if (g2 != ":" || y2) {
                      var v2 = te(g2, ee);
                      y2 ? e2.password += v2 : e2.username += v2;
                    } else
                      y2 = true;
                  }
                  f2 = "";
                } else if (i2 == M || i2 == "/" || i2 == "?" || i2 == "#" || i2 == "\\" && ne(e2)) {
                  if (h2 && f2 == "")
                    return "Invalid authority";
                  d2 -= T(f2).length + 1, f2 = "", c2 = pe;
                } else
                  f2 += i2;
                break;
              case pe:
              case ye:
                if (r2 && e2.scheme == "file") {
                  c2 = be;
                  continue;
                }
                if (i2 != ":" || p2) {
                  if (i2 == M || i2 == "/" || i2 == "?" || i2 == "#" || i2 == "\\" && ne(e2)) {
                    if (ne(e2) && f2 == "")
                      return I;
                    if (r2 && f2 == "" && (x(e2) || e2.port !== null))
                      return;
                    if (s2 = _(e2, f2))
                      return s2;
                    if (f2 = "", c2 = _e, r2)
                      return;
                    continue;
                  }
                  i2 == "[" ? p2 = true : i2 == "]" && (p2 = false), f2 += i2;
                } else {
                  if (f2 == "")
                    return I;
                  if (s2 = _(e2, f2))
                    return s2;
                  if (f2 = "", c2 = me, r2 == ye)
                    return;
                }
                break;
              case me:
                if (!B.test(i2)) {
                  if (i2 == M || i2 == "/" || i2 == "?" || i2 == "#" || i2 == "\\" && ne(e2) || r2) {
                    if (f2 != "") {
                      var b2 = parseInt(f2, 10);
                      if (65535 < b2)
                        return U;
                      e2.port = ne(e2) && b2 === re[e2.scheme] ? null : b2, f2 = "";
                    }
                    if (r2)
                      return;
                    c2 = _e;
                    continue;
                  }
                  return U;
                }
                f2 += i2;
                break;
              case ge:
                if (e2.scheme = "file", i2 == "/" || i2 == "\\")
                  c2 = ve;
                else {
                  if (!n2 || n2.scheme != "file") {
                    c2 = xe;
                    continue;
                  }
                  if (i2 == M)
                    e2.host = n2.host, e2.path = n2.path.slice(), e2.query = n2.query;
                  else if (i2 == "?")
                    e2.host = n2.host, e2.path = n2.path.slice(), e2.query = "", c2 = Se;
                  else {
                    if (i2 != "#") {
                      S(o2.slice(d2).join("")) || (e2.host = n2.host, e2.path = n2.path.slice(), j(e2)), c2 = xe;
                      continue;
                    }
                    e2.host = n2.host, e2.path = n2.path.slice(), e2.query = n2.query, e2.fragment = "", c2 = je;
                  }
                }
                break;
              case ve:
                if (i2 == "/" || i2 == "\\") {
                  c2 = be;
                  break;
                }
                n2 && n2.scheme == "file" && !S(o2.slice(d2).join("")) && (w(n2.path[0], true) ? e2.path.push(n2.path[0]) : e2.host = n2.host), c2 = xe;
                continue;
              case be:
                if (i2 == M || i2 == "/" || i2 == "\\" || i2 == "?" || i2 == "#") {
                  if (!r2 && w(f2))
                    c2 = xe;
                  else if (f2 == "") {
                    if (e2.host = "", r2)
                      return;
                    c2 = _e;
                  } else {
                    if (s2 = _(e2, f2))
                      return s2;
                    if (e2.host == "localhost" && (e2.host = ""), r2)
                      return;
                    f2 = "", c2 = _e;
                  }
                  continue;
                }
                f2 += i2;
                break;
              case _e:
                if (ne(e2)) {
                  if (c2 = xe, i2 != "/" && i2 != "\\")
                    continue;
                } else if (r2 || i2 != "?")
                  if (r2 || i2 != "#") {
                    if (i2 != M && (c2 = xe, i2 != "/"))
                      continue;
                  } else
                    e2.fragment = "", c2 = je;
                else
                  e2.query = "", c2 = Se;
                break;
              case xe:
                if (i2 == M || i2 == "/" || i2 == "\\" && ne(e2) || !r2 && (i2 == "?" || i2 == "#")) {
                  if ((u2 = (u2 = f2).toLowerCase()) === ".." || u2 === "%2e." || u2 === ".%2e" || u2 === "%2e%2e" ? (j(e2), i2 == "/" || i2 == "\\" && ne(e2) || e2.path.push("")) : (l2 = f2) === "." || l2.toLowerCase() === "%2e" ? i2 == "/" || i2 == "\\" && ne(e2) || e2.path.push("") : (e2.scheme == "file" && !e2.path.length && w(f2) && (e2.host && (e2.host = ""), f2 = f2.charAt(0) + ":"), e2.path.push(f2)), f2 = "", e2.scheme == "file" && (i2 == M || i2 == "?" || i2 == "#"))
                    for (; 1 < e2.path.length && e2.path[0] === ""; )
                      e2.path.shift();
                  i2 == "?" ? (e2.query = "", c2 = Se) : i2 == "#" && (e2.fragment = "", c2 = je);
                } else
                  f2 += te(i2, $);
                break;
              case we:
                i2 == "?" ? (e2.query = "", c2 = Se) : i2 == "#" ? (e2.fragment = "", c2 = je) : i2 != M && (e2.path[0] += te(i2, K));
                break;
              case Se:
                r2 || i2 != "#" ? i2 != M && (i2 == "'" && ne(e2) ? e2.query += "%27" : e2.query += i2 == "#" ? "%23" : te(i2, K)) : (e2.fragment = "", c2 = je);
                break;
              case je:
                i2 != M && (e2.fragment += te(i2, J));
            }
            d2++;
          }
        }
        function n(e2, t2) {
          return { get: e2, set: t2, configurable: true, enumerable: true };
        }
        var M, i = e("../internals/export"), f = e("../internals/descriptors"), a = e("../internals/native-url"), s = e("../internals/global"), l = e("../internals/object-define-properties"), u = e("../internals/redefine"), h = e("../internals/an-instance"), E = e("../internals/has"), p = e("../internals/object-assign"), T = e("../internals/array-from"), y = e("../internals/string-multibyte").codeAt, m = e("../internals/string-punycode-to-ascii"), g = e("../internals/set-to-string-tag"), v = e("../modules/web.url-search-params"), b = e("../internals/internal-state"), O = s.URL, C = v.URLSearchParams, L = v.getState, P = b.set, k = b.getterFor("URL"), A = Math.floor, R = Math.pow, D = "Invalid scheme", I = "Invalid host", U = "Invalid port", N = /[A-Za-z]/, F = /[\d+-.A-Za-z]/, B = /\d/, G = /^(0x|0X)/, V = /^[0-7]+$/, z = /^\d+$/, H = /^[\dA-Fa-f]+$/, W = /[\u0000\u0009\u000A\u000D #%/:?@[\\]]/, q = /[\u0000\u0009\u000A\u000D #/:?@[\\]]/, X = /^[\u0000-\u001F ]+|[\u0000-\u001F ]+$/g, Y = /[\u0009\u000A\u000D]/g, Z = function(e2) {
          var t2, r2, n2, o2, i2, a2, s2, l2 = e2.split(".");
          if (l2.length && l2[l2.length - 1] == "" && l2.pop(), 4 < (t2 = l2.length))
            return e2;
          for (r2 = [], n2 = 0; n2 < t2; n2++) {
            if ((o2 = l2[n2]) == "")
              return e2;
            if (i2 = 10, 1 < o2.length && o2.charAt(0) == "0" && (i2 = G.test(o2) ? 16 : 8, o2 = o2.slice(i2 == 8 ? 1 : 2)), o2 === "")
              a2 = 0;
            else {
              if (!(i2 == 10 ? z : i2 == 8 ? V : H).test(o2))
                return e2;
              a2 = parseInt(o2, i2);
            }
            r2.push(a2);
          }
          for (n2 = 0; n2 < t2; n2++)
            if (a2 = r2[n2], n2 == t2 - 1) {
              if (a2 >= R(256, 5 - t2))
                return null;
            } else if (255 < a2)
              return null;
          for (s2 = r2.pop(), n2 = 0; n2 < r2.length; n2++)
            s2 += r2[n2] * R(256, 3 - n2);
          return s2;
        }, Q = function(e2) {
          function t2() {
            return e2.charAt(f2);
          }
          var r2, n2, o2, i2, a2, s2, l2, u2 = [0, 0, 0, 0, 0, 0, 0, 0], c2 = 0, d2 = null, f2 = 0;
          if (t2() == ":") {
            if (e2.charAt(1) != ":")
              return;
            f2 += 2, d2 = ++c2;
          }
          for (; t2(); ) {
            if (c2 == 8)
              return;
            if (t2() != ":") {
              for (r2 = n2 = 0; n2 < 4 && H.test(t2()); )
                r2 = 16 * r2 + parseInt(t2(), 16), f2++, n2++;
              if (t2() == ".") {
                if (n2 == 0)
                  return;
                if (f2 -= n2, 6 < c2)
                  return;
                for (o2 = 0; t2(); ) {
                  if (i2 = null, 0 < o2) {
                    if (!(t2() == "." && o2 < 4))
                      return;
                    f2++;
                  }
                  if (!B.test(t2()))
                    return;
                  for (; B.test(t2()); ) {
                    if (a2 = parseInt(t2(), 10), i2 === null)
                      i2 = a2;
                    else {
                      if (i2 == 0)
                        return;
                      i2 = 10 * i2 + a2;
                    }
                    if (255 < i2)
                      return;
                    f2++;
                  }
                  u2[c2] = 256 * u2[c2] + i2, ++o2 != 2 && o2 != 4 || c2++;
                }
                if (o2 != 4)
                  return;
                break;
              }
              if (t2() == ":") {
                if (f2++, !t2())
                  return;
              } else if (t2())
                return;
              u2[c2++] = r2;
            } else {
              if (d2 !== null)
                return;
              f2++, d2 = ++c2;
            }
          }
          if (d2 !== null)
            for (s2 = c2 - d2, c2 = 7; c2 != 0 && 0 < s2; )
              l2 = u2[c2], u2[c2--] = u2[d2 + s2 - 1], u2[d2 + --s2] = l2;
          else if (c2 != 8)
            return;
          return u2;
        }, K = {}, J = p({}, K, { " ": 1, '"': 1, "<": 1, ">": 1, "`": 1 }), $ = p({}, J, { "#": 1, "?": 1, "{": 1, "}": 1 }), ee = p({}, $, { "/": 1, ":": 1, ";": 1, "=": 1, "@": 1, "[": 1, "\\": 1, "]": 1, "^": 1, "|": 1 }), te = function(e2, t2) {
          var r2 = y(e2, 0);
          return 32 < r2 && r2 < 127 && !E(t2, e2) ? e2 : encodeURIComponent(e2);
        }, re = { ftp: 21, file: null, http: 80, https: 443, ws: 80, wss: 443 }, ne = function(e2) {
          return E(re, e2.scheme);
        }, oe = {}, ie = {}, ae = {}, se = {}, le = {}, ue = {}, ce = {}, de = {}, fe = {}, he = {}, pe = {}, ye = {}, me = {}, ge = {}, ve = {}, be = {}, _e = {}, xe = {}, we = {}, Se = {}, je = {}, Me = function(e2, t2) {
          var r2, n2, o2 = h(this, Me, "URL"), i2 = 1 < arguments.length ? t2 : void 0, a2 = String(e2), s2 = P(o2, { type: "URL" });
          if (i2 !== void 0) {
            if (i2 instanceof Me)
              r2 = k(i2);
            else if (n2 = d(r2 = {}, String(i2)))
              throw TypeError(n2);
          }
          if (n2 = d(s2, a2, null, r2))
            throw TypeError(n2);
          var l2 = s2.searchParams = new C(), u2 = L(l2);
          u2.updateSearchParams(s2.query), u2.updateURL = function() {
            s2.query = String(l2) || null;
          }, f || (o2.href = Te.call(o2), o2.origin = Oe.call(o2), o2.protocol = Ce.call(o2), o2.username = Le.call(o2), o2.password = Pe.call(o2), o2.host = ke.call(o2), o2.hostname = Ae.call(o2), o2.port = Re.call(o2), o2.pathname = De.call(o2), o2.search = Ie.call(o2), o2.searchParams = Ue.call(o2), o2.hash = Ne.call(o2));
        }, Ee = Me.prototype, Te = function() {
          var e2 = k(this), t2 = e2.scheme, r2 = e2.username, n2 = e2.password, o2 = e2.host, i2 = e2.port, a2 = e2.path, s2 = e2.query, l2 = e2.fragment, u2 = t2 + ":";
          return o2 !== null ? (u2 += "//", x(e2) && (u2 += r2 + (n2 ? ":" + n2 : "") + "@"), u2 += c(o2), i2 !== null && (u2 += ":" + i2)) : t2 == "file" && (u2 += "//"), u2 += e2.cannotBeABaseURL ? a2[0] : a2.length ? "/" + a2.join("/") : "", s2 !== null && (u2 += "?" + s2), l2 !== null && (u2 += "#" + l2), u2;
        }, Oe = function() {
          var e2 = k(this), t2 = e2.scheme, r2 = e2.port;
          if (t2 == "blob")
            try {
              return new URL(t2.path[0]).origin;
            } catch (e3) {
              return "null";
            }
          return t2 != "file" && ne(e2) ? t2 + "://" + c(e2.host) + (r2 !== null ? ":" + r2 : "") : "null";
        }, Ce = function() {
          return k(this).scheme + ":";
        }, Le = function() {
          return k(this).username;
        }, Pe = function() {
          return k(this).password;
        }, ke = function() {
          var e2 = k(this), t2 = e2.host, r2 = e2.port;
          return t2 === null ? "" : r2 === null ? c(t2) : c(t2) + ":" + r2;
        }, Ae = function() {
          var e2 = k(this).host;
          return e2 === null ? "" : c(e2);
        }, Re = function() {
          var e2 = k(this).port;
          return e2 === null ? "" : String(e2);
        }, De = function() {
          var e2 = k(this), t2 = e2.path;
          return e2.cannotBeABaseURL ? t2[0] : t2.length ? "/" + t2.join("/") : "";
        }, Ie = function() {
          var e2 = k(this).query;
          return e2 ? "?" + e2 : "";
        }, Ue = function() {
          return k(this).searchParams;
        }, Ne = function() {
          var e2 = k(this).fragment;
          return e2 ? "#" + e2 : "";
        };
        if (f && l(Ee, { href: n(Te, function(e2) {
          var t2 = k(this), r2 = String(e2), n2 = d(t2, r2);
          if (n2)
            throw TypeError(n2);
          L(t2.searchParams).updateSearchParams(t2.query);
        }), origin: n(Oe), protocol: n(Ce, function(e2) {
          var t2 = k(this);
          d(t2, String(e2) + ":", oe);
        }), username: n(Le, function(e2) {
          var t2 = k(this), r2 = T(String(e2));
          if (!o(t2)) {
            t2.username = "";
            for (var n2 = 0; n2 < r2.length; n2++)
              t2.username += te(r2[n2], ee);
          }
        }), password: n(Pe, function(e2) {
          var t2 = k(this), r2 = T(String(e2));
          if (!o(t2)) {
            t2.password = "";
            for (var n2 = 0; n2 < r2.length; n2++)
              t2.password += te(r2[n2], ee);
          }
        }), host: n(ke, function(e2) {
          var t2 = k(this);
          t2.cannotBeABaseURL || d(t2, String(e2), pe);
        }), hostname: n(Ae, function(e2) {
          var t2 = k(this);
          t2.cannotBeABaseURL || d(t2, String(e2), ye);
        }), port: n(Re, function(e2) {
          var t2 = k(this);
          o(t2) || ((e2 = String(e2)) == "" ? t2.port = null : d(t2, e2, me));
        }), pathname: n(De, function(e2) {
          var t2 = k(this);
          t2.cannotBeABaseURL || (t2.path = [], d(t2, e2 + "", _e));
        }), search: n(Ie, function(e2) {
          var t2 = k(this);
          (e2 = String(e2)) == "" ? t2.query = null : (e2.charAt(0) == "?" && (e2 = e2.slice(1)), t2.query = "", d(t2, e2, Se)), L(t2.searchParams).updateSearchParams(t2.query);
        }), searchParams: n(Ue), hash: n(Ne, function(e2) {
          var t2 = k(this);
          (e2 = String(e2)) != "" ? (e2.charAt(0) == "#" && (e2 = e2.slice(1)), t2.fragment = "", d(t2, e2, je)) : t2.fragment = null;
        }) }), u(Ee, "toJSON", function() {
          return Te.call(this);
        }, { enumerable: true }), u(Ee, "toString", function() {
          return Te.call(this);
        }, { enumerable: true }), O) {
          var Fe = O.createObjectURL, Be = O.revokeObjectURL;
          Fe && u(Me, "createObjectURL", function(e2) {
            return Fe.apply(O, arguments);
          }), Be && u(Me, "revokeObjectURL", function(e2) {
            return Be.apply(O, arguments);
          });
        }
        g(Me, "URL"), i({ global: true, forced: !a, sham: !f }, { URL: Me });
      }, { "../internals/an-instance": 9, "../internals/array-from": 17, "../internals/descriptors": 42, "../internals/export": 49, "../internals/global": 58, "../internals/has": 59, "../internals/internal-state": 69, "../internals/native-url": 83, "../internals/object-assign": 88, "../internals/object-define-properties": 90, "../internals/redefine": 107, "../internals/set-to-string-tag": 116, "../internals/string-multibyte": 122, "../internals/string-punycode-to-ascii": 123, "../modules/es.string.iterator": 183, "../modules/web.url-search-params": 227 }], 229: [function(e, t, r) {
        "use strict";
        t.exports = e("./").polyfill();
      }, { "./": 230 }], 230: [function(z, r, n) {
        (function(G, V) {
          var e, t;
          e = this, t = function() {
            "use strict";
            function l(e3) {
              return typeof e3 == "function";
            }
            var r2 = Array.isArray ? Array.isArray : function(e3) {
              return Object.prototype.toString.call(e3) === "[object Array]";
            }, n2 = 0, t2 = void 0, o = void 0, a = function(e3, t3) {
              f[n2] = e3, f[n2 + 1] = t3, (n2 += 2) === 2 && (o ? o(h) : v());
            };
            var e2 = typeof window != "undefined" ? window : void 0, i = e2 || {}, s = i.MutationObserver || i.WebKitMutationObserver, u = typeof self == "undefined" && G !== void 0 && {}.toString.call(G) === "[object process]", c = typeof Uint8ClampedArray != "undefined" && typeof importScripts != "undefined" && typeof MessageChannel != "undefined";
            function d() {
              var e3 = setTimeout;
              return function() {
                return e3(h, 1);
              };
            }
            var f = new Array(1e3);
            function h() {
              for (var e3 = 0; e3 < n2; e3 += 2) {
                (0, f[e3])(f[e3 + 1]), f[e3] = void 0, f[e3 + 1] = void 0;
              }
              n2 = 0;
            }
            var p, y, m, g, v = void 0;
            function b(e3, t3) {
              var r3 = this, n3 = new this.constructor(w);
              n3[x] === void 0 && I(n3);
              var o2 = r3._state;
              if (o2) {
                var i2 = arguments[o2 - 1];
                a(function() {
                  return R(o2, n3, i2, r3._result);
                });
              } else
                k(r3, n3, e3, t3);
              return n3;
            }
            function _(e3) {
              if (e3 && typeof e3 == "object" && e3.constructor === this)
                return e3;
              var t3 = new this(w);
              return O(t3, e3), t3;
            }
            v = u ? function() {
              return G.nextTick(h);
            } : s ? (y = 0, m = new s(h), g = document.createTextNode(""), m.observe(g, { characterData: true }), function() {
              g.data = y = ++y % 2;
            }) : c ? ((p = new MessageChannel()).port1.onmessage = h, function() {
              return p.port2.postMessage(0);
            }) : e2 === void 0 && typeof z == "function" ? function() {
              try {
                var e3 = Function("return this")().require("vertx");
                return (t2 = e3.runOnLoop || e3.runOnContext) !== void 0 ? function() {
                  t2(h);
                } : d();
              } catch (e4) {
                return d();
              }
            }() : d();
            var x = Math.random().toString(36).substring(2);
            function w() {
            }
            var S = void 0, j = 1, M = 2;
            function E(e3, n3, o2) {
              a(function(t3) {
                var r3 = false, e4 = function(e5, t4, r4, n4) {
                  try {
                    e5.call(t4, r4, n4);
                  } catch (e6) {
                    return e6;
                  }
                }(o2, n3, function(e5) {
                  r3 || (r3 = true, n3 !== e5 ? O(t3, e5) : L(t3, e5));
                }, function(e5) {
                  r3 || (r3 = true, P(t3, e5));
                }, t3._label);
                !r3 && e4 && (r3 = true, P(t3, e4));
              }, e3);
            }
            function T(e3, t3, r3) {
              var n3, o2;
              t3.constructor === e3.constructor && r3 === b && t3.constructor.resolve === _ ? (n3 = e3, (o2 = t3)._state === j ? L(n3, o2._result) : o2._state === M ? P(n3, o2._result) : k(o2, void 0, function(e4) {
                return O(n3, e4);
              }, function(e4) {
                return P(n3, e4);
              })) : r3 === void 0 ? L(e3, t3) : l(r3) ? E(e3, t3, r3) : L(e3, t3);
            }
            function O(t3, e3) {
              if (t3 === e3)
                P(t3, new TypeError("You cannot resolve a promise with itself"));
              else if (o2 = typeof (n3 = e3), n3 === null || o2 != "object" && o2 != "function")
                L(t3, e3);
              else {
                var r3 = void 0;
                try {
                  r3 = e3.then;
                } catch (e4) {
                  return void P(t3, e4);
                }
                T(t3, e3, r3);
              }
              var n3, o2;
            }
            function C(e3) {
              e3._onerror && e3._onerror(e3._result), A(e3);
            }
            function L(e3, t3) {
              e3._state === S && (e3._result = t3, e3._state = j, e3._subscribers.length !== 0 && a(A, e3));
            }
            function P(e3, t3) {
              e3._state === S && (e3._state = M, e3._result = t3, a(C, e3));
            }
            function k(e3, t3, r3, n3) {
              var o2 = e3._subscribers, i2 = o2.length;
              e3._onerror = null, o2[i2] = t3, o2[i2 + j] = r3, o2[i2 + M] = n3, i2 === 0 && e3._state && a(A, e3);
            }
            function A(e3) {
              var t3 = e3._subscribers, r3 = e3._state;
              if (t3.length !== 0) {
                for (var n3 = void 0, o2 = void 0, i2 = e3._result, a2 = 0; a2 < t3.length; a2 += 3)
                  n3 = t3[a2], o2 = t3[a2 + r3], n3 ? R(r3, n3, o2, i2) : o2(i2);
                e3._subscribers.length = 0;
              }
            }
            function R(e3, t3, r3, n3) {
              var o2 = l(r3), i2 = void 0, a2 = void 0, s2 = true;
              if (o2) {
                try {
                  i2 = r3(n3);
                } catch (e4) {
                  s2 = false, a2 = e4;
                }
                if (t3 === i2)
                  return void P(t3, new TypeError("A promises callback cannot return that same promise."));
              } else
                i2 = n3;
              t3._state !== S || (o2 && s2 ? O(t3, i2) : s2 === false ? P(t3, a2) : e3 === j ? L(t3, i2) : e3 === M && P(t3, i2));
            }
            var D = 0;
            function I(e3) {
              e3[x] = D++, e3._state = void 0, e3._result = void 0, e3._subscribers = [];
            }
            var U = (N.prototype._enumerate = function(e3) {
              for (var t3 = 0; this._state === S && t3 < e3.length; t3++)
                this._eachEntry(e3[t3], t3);
            }, N.prototype._eachEntry = function(t3, e3) {
              var r3 = this._instanceConstructor, n3 = r3.resolve;
              if (n3 === _) {
                var o2 = void 0, i2 = void 0, a2 = false;
                try {
                  o2 = t3.then;
                } catch (e4) {
                  a2 = true, i2 = e4;
                }
                if (o2 === b && t3._state !== S)
                  this._settledAt(t3._state, e3, t3._result);
                else if (typeof o2 != "function")
                  this._remaining--, this._result[e3] = t3;
                else if (r3 === F) {
                  var s2 = new r3(w);
                  a2 ? P(s2, i2) : T(s2, t3, o2), this._willSettleAt(s2, e3);
                } else
                  this._willSettleAt(new r3(function(e4) {
                    return e4(t3);
                  }), e3);
              } else
                this._willSettleAt(n3(t3), e3);
            }, N.prototype._settledAt = function(e3, t3, r3) {
              var n3 = this.promise;
              n3._state === S && (this._remaining--, e3 === M ? P(n3, r3) : this._result[t3] = r3), this._remaining === 0 && L(n3, this._result);
            }, N.prototype._willSettleAt = function(e3, t3) {
              var r3 = this;
              k(e3, void 0, function(e4) {
                return r3._settledAt(j, t3, e4);
              }, function(e4) {
                return r3._settledAt(M, t3, e4);
              });
            }, N);
            function N(e3, t3) {
              this._instanceConstructor = e3, this.promise = new e3(w), this.promise[x] || I(this.promise), r2(t3) ? (this.length = t3.length, this._remaining = t3.length, this._result = new Array(this.length), this.length === 0 ? L(this.promise, this._result) : (this.length = this.length || 0, this._enumerate(t3), this._remaining === 0 && L(this.promise, this._result))) : P(this.promise, new Error("Array Methods must be provided an Array"));
            }
            var F = (B.prototype.catch = function(e3) {
              return this.then(null, e3);
            }, B.prototype.finally = function(t3) {
              var r3 = this.constructor;
              return l(t3) ? this.then(function(e3) {
                return r3.resolve(t3()).then(function() {
                  return e3;
                });
              }, function(e3) {
                return r3.resolve(t3()).then(function() {
                  throw e3;
                });
              }) : this.then(t3, t3);
            }, B);
            function B(e3) {
              this[x] = D++, this._result = this._state = void 0, this._subscribers = [], w !== e3 && (typeof e3 != "function" && function() {
                throw new TypeError("You must pass a resolver function as the first argument to the promise constructor");
              }(), this instanceof B ? function(t3, e4) {
                try {
                  e4(function(e5) {
                    O(t3, e5);
                  }, function(e5) {
                    P(t3, e5);
                  });
                } catch (e5) {
                  P(t3, e5);
                }
              }(this, e3) : function() {
                throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
              }());
            }
            return F.prototype.then = b, F.all = function(e3) {
              return new U(this, e3).promise;
            }, F.race = function(o2) {
              var i2 = this;
              return r2(o2) ? new i2(function(e3, t3) {
                for (var r3 = o2.length, n3 = 0; n3 < r3; n3++)
                  i2.resolve(o2[n3]).then(e3, t3);
              }) : new i2(function(e3, t3) {
                return t3(new TypeError("You must pass an array to race."));
              });
            }, F.resolve = _, F.reject = function(e3) {
              var t3 = new this(w);
              return P(t3, e3), t3;
            }, F._setScheduler = function(e3) {
              o = e3;
            }, F._setAsap = function(e3) {
              a = e3;
            }, F._asap = a, F.polyfill = function() {
              var e3 = void 0;
              if (V !== void 0)
                e3 = V;
              else if (typeof self != "undefined")
                e3 = self;
              else
                try {
                  e3 = Function("return this")();
                } catch (e4) {
                  throw new Error("polyfill failed because global object is unavailable in this environment");
                }
              var t3 = e3.Promise;
              if (t3) {
                var r3 = null;
                try {
                  r3 = Object.prototype.toString.call(t3.resolve());
                } catch (e4) {
                }
                if (r3 === "[object Promise]" && !t3.cast)
                  return;
              }
              e3.Promise = F;
            }, F.Promise = F;
          }, typeof n == "object" && r !== void 0 ? r.exports = t() : e.ES6Promise = t();
        }).call(this, z("_process"), typeof global != "undefined" ? global : typeof self != "undefined" ? self : typeof window != "undefined" ? window : {});
      }, { _process: 238 }], 231: [function(e, n, o) {
        !function(e2, t) {
          if (0, o !== void 0 && n !== void 0)
            t(o, n);
          else {
            var r = { exports: {} };
            t(r.exports, r), e2.fetchJsonp = r.exports;
          }
        }(this, function(e2, t) {
          "use strict";
          var r = 5e3, n2 = "callback";
          function d(t2) {
            try {
              delete window[t2];
            } catch (e3) {
              window[t2] = void 0;
            }
          }
          function f(e3) {
            var t2 = document.getElementById(e3);
            t2 && document.getElementsByTagName("head")[0].removeChild(t2);
          }
          t.exports = function(i) {
            var a = arguments.length <= 1 || arguments[1] === void 0 ? {} : arguments[1], s = i, l = a.timeout || r, u = a.jsonpCallback || n2, c = void 0;
            return new Promise(function(t2, e3) {
              var r2 = a.jsonpCallbackFunction || "jsonp_" + Date.now() + "_" + Math.ceil(1e5 * Math.random()), n3 = u + "_" + r2;
              window[r2] = function(e4) {
                t2({ ok: true, json: function() {
                  return Promise.resolve(e4);
                } }), c && clearTimeout(c), f(n3), d(r2);
              }, s += s.indexOf("?") === -1 ? "?" : "&";
              var o2 = document.createElement("script");
              o2.setAttribute("src", "" + s + u + "=" + r2), a.charset && o2.setAttribute("charset", a.charset), o2.id = n3, document.getElementsByTagName("head")[0].appendChild(o2), c = setTimeout(function() {
                e3(new Error("JSONP request to " + i + " timed out")), d(r2), f(n3), window[r2] = function() {
                  d(r2);
                };
              }, l), o2.onerror = function() {
                e3(new Error("JSONP request to " + i + " failed")), d(r2), f(n3), c && clearTimeout(c);
              };
            });
          };
        });
      }, {}], 232: [function(e, t, r) {
        var n = n || function(s) {
          "use strict";
          if (!(s === void 0 || typeof navigator != "undefined" && /MSIE [1-9]\./.test(navigator.userAgent))) {
            var e2 = s.document, l = function() {
              return s.URL || s.webkitURL || s;
            }, u = e2.createElementNS("http://www.w3.org/1999/xhtml", "a"), c = "download" in u, d = /constructor/i.test(s.HTMLElement) || s.safari, f = /CriOS\/[\d]+/.test(navigator.userAgent), h = function(e3) {
              (s.setImmediate || s.setTimeout)(function() {
                throw e3;
              }, 0);
            }, p = function(e3) {
              setTimeout(function() {
                typeof e3 == "string" ? l().revokeObjectURL(e3) : e3.remove();
              }, 4e4);
            }, y = function(e3) {
              return /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e3.type) ? new Blob([String.fromCharCode(65279), e3], { type: e3.type }) : e3;
            }, n2 = function(e3, r2, t3) {
              t3 || (e3 = y(e3));
              function n3() {
                !function(e4, t4, r3) {
                  for (var n4 = (t4 = [].concat(t4)).length; n4--; ) {
                    var o2 = e4["on" + t4[n4]];
                    if (typeof o2 == "function")
                      try {
                        o2.call(e4, r3 || e4);
                      } catch (e5) {
                        h(e5);
                      }
                  }
                }(i, "writestart progress write writeend".split(" "));
              }
              var o, i = this, a = e3.type === "application/octet-stream";
              if (i.readyState = i.INIT, c)
                return o = l().createObjectURL(e3), void setTimeout(function() {
                  var e4, t4;
                  u.href = o, u.download = r2, e4 = u, t4 = new MouseEvent("click"), e4.dispatchEvent(t4), n3(), p(o), i.readyState = i.DONE;
                });
              !function() {
                if ((f || a && d) && s.FileReader) {
                  var t4 = new FileReader();
                  return t4.onloadend = function() {
                    var e4 = f ? t4.result : t4.result.replace(/^data:[^;]*;/, "data:attachment/file;");
                    s.open(e4, "_blank") || (s.location.href = e4), e4 = void 0, i.readyState = i.DONE, n3();
                  }, t4.readAsDataURL(e3), i.readyState = i.INIT;
                }
                (o = o || l().createObjectURL(e3), a) ? s.location.href = o : s.open(o, "_blank") || (s.location.href = o);
                i.readyState = i.DONE, n3(), p(o);
              }();
            }, t2 = n2.prototype;
            return typeof navigator != "undefined" && navigator.msSaveOrOpenBlob ? function(e3, t3, r2) {
              return t3 = t3 || e3.name || "download", r2 || (e3 = y(e3)), navigator.msSaveOrOpenBlob(e3, t3);
            } : (t2.abort = function() {
            }, t2.readyState = t2.INIT = 0, t2.WRITING = 1, t2.DONE = 2, t2.error = t2.onwritestart = t2.onprogress = t2.onwrite = t2.onabort = t2.onerror = t2.onwriteend = null, function(e3, t3, r2) {
              return new n2(e3, t3 || e3.name || "download", r2);
            });
          }
        }(typeof self != "undefined" && self || typeof window != "undefined" && window || this.content);
        t !== void 0 && t.exports && (t.exports.saveAs = n);
      }, {}], 233: [function(e, t, r) {
        r.read = function(e2, t2, r2, n, o) {
          var i, a, s = 8 * o - n - 1, l = (1 << s) - 1, u = l >> 1, c = -7, d = r2 ? o - 1 : 0, f = r2 ? -1 : 1, h = e2[t2 + d];
          for (d += f, i = h & (1 << -c) - 1, h >>= -c, c += s; 0 < c; i = 256 * i + e2[t2 + d], d += f, c -= 8)
            ;
          for (a = i & (1 << -c) - 1, i >>= -c, c += n; 0 < c; a = 256 * a + e2[t2 + d], d += f, c -= 8)
            ;
          if (i === 0)
            i = 1 - u;
          else {
            if (i === l)
              return a ? NaN : 1 / 0 * (h ? -1 : 1);
            a += Math.pow(2, n), i -= u;
          }
          return (h ? -1 : 1) * a * Math.pow(2, i - n);
        }, r.write = function(e2, t2, r2, n, o, i) {
          var a, s, l, u = 8 * i - o - 1, c = (1 << u) - 1, d = c >> 1, f = o === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0, h = n ? 0 : i - 1, p = n ? 1 : -1, y = t2 < 0 || t2 === 0 && 1 / t2 < 0 ? 1 : 0;
          for (t2 = Math.abs(t2), isNaN(t2) || t2 === 1 / 0 ? (s = isNaN(t2) ? 1 : 0, a = c) : (a = Math.floor(Math.log(t2) / Math.LN2), t2 * (l = Math.pow(2, -a)) < 1 && (a--, l *= 2), 2 <= (t2 += 1 <= a + d ? f / l : f * Math.pow(2, 1 - d)) * l && (a++, l /= 2), c <= a + d ? (s = 0, a = c) : 1 <= a + d ? (s = (t2 * l - 1) * Math.pow(2, o), a += d) : (s = t2 * Math.pow(2, d - 1) * Math.pow(2, o), a = 0)); 8 <= o; e2[r2 + h] = 255 & s, h += p, s /= 256, o -= 8)
            ;
          for (a = a << o | s, u += o; 0 < u; e2[r2 + h] = 255 & a, h += p, a /= 256, u -= 8)
            ;
          e2[r2 + h - p] |= 128 * y;
        };
      }, {}], 234: [function(e, t, r) {
        "use strict";
        var n;
        function m(e2, t2) {
          return e2.b === t2.b && e2.a === t2.a;
        }
        function g(e2, t2) {
          return e2.b < t2.b || e2.b === t2.b && e2.a <= t2.a;
        }
        function v(e2, t2, r2) {
          var n2 = t2.b - e2.b, o2 = r2.b - t2.b;
          return 0 < n2 + o2 ? n2 < o2 ? t2.a - e2.a + n2 / (n2 + o2) * (e2.a - r2.a) : t2.a - r2.a + o2 / (n2 + o2) * (r2.a - e2.a) : 0;
        }
        function b(e2, t2, r2) {
          var n2 = t2.b - e2.b, o2 = r2.b - t2.b;
          return 0 < n2 + o2 ? (t2.a - r2.a) * n2 + (t2.a - e2.a) * o2 : 0;
        }
        function _(e2, t2) {
          return e2.a < t2.a || e2.a === t2.a && e2.b <= t2.b;
        }
        function x(e2, t2, r2) {
          var n2 = t2.a - e2.a, o2 = r2.a - t2.a;
          return 0 < n2 + o2 ? n2 < o2 ? t2.b - e2.b + n2 / (n2 + o2) * (e2.b - r2.b) : t2.b - r2.b + o2 / (n2 + o2) * (r2.b - e2.b) : 0;
        }
        function w(e2, t2, r2) {
          var n2 = t2.a - e2.a, o2 = r2.a - t2.a;
          return 0 < n2 + o2 ? (t2.b - r2.b) * n2 + (t2.b - e2.b) * o2 : 0;
        }
        function S(e2, t2, r2, n2) {
          return (e2 = e2 < 0 ? 0 : e2) <= (r2 = r2 < 0 ? 0 : r2) ? r2 === 0 ? (t2 + n2) / 2 : t2 + e2 / (e2 + r2) * (n2 - t2) : n2 + r2 / (e2 + r2) * (t2 - n2);
        }
        function a(e2) {
          var t2 = i(e2.b);
          return o(t2, e2.c), o(t2.b, e2.c), s(t2, e2.a), t2;
        }
        function j(e2, t2) {
          var r2 = false, n2 = false;
          e2 !== t2 && (t2.a !== e2.a && (n2 = true, y(t2.a, e2.a)), t2.d !== e2.d && (r2 = true, l(t2.d, e2.d)), h(t2, e2), n2 || (o(t2, e2.a), e2.a.c = e2), r2 || (s(t2, e2.d), e2.d.a = e2));
        }
        function d(e2) {
          var t2 = e2.b, r2 = false;
          e2.d !== e2.b.d && (r2 = true, l(e2.d, e2.b.d)), e2.c === e2 ? y(e2.a, null) : (e2.b.d.a = K(e2), e2.a.c = e2.c, h(e2, K(e2)), r2 || s(e2, e2.d)), t2.c === t2 ? (y(t2.a, null), l(t2.d, null)) : (e2.d.a = K(t2), t2.a.c = t2.c, h(t2, K(t2))), p(e2);
        }
        function M(e2) {
          var t2 = i(e2), r2 = t2.b;
          return h(t2, e2.e), t2.a = e2.b.a, o(r2, t2.a), t2.d = r2.d = e2.d, t2 = t2.b, h(e2.b, K(e2.b)), h(e2.b, t2), e2.b.a = t2.a, t2.b.a.c = t2.b, t2.b.d = e2.b.d, t2.f = e2.f, t2.b.f = e2.b.f, t2;
        }
        function f(e2, t2) {
          var r2 = false, n2 = i(e2), o2 = n2.b;
          return t2.d !== e2.d && (r2 = true, l(t2.d, e2.d)), h(n2, e2.e), h(o2, t2), n2.a = e2.b.a, o2.a = t2.a, n2.d = o2.d = e2.d, e2.d.a = o2, r2 || s(n2, e2.d), n2;
        }
        function i(e2) {
          var t2 = new Q(), r2 = new Q(), n2 = e2.b.h;
          return (((r2.h = n2).b.h = t2).h = e2).b.h = r2, t2.b = r2, ((t2.c = t2).e = r2).b = t2, (r2.c = r2).e = t2;
        }
        function h(e2, t2) {
          var r2 = e2.c, n2 = t2.c;
          r2.b.e = t2, (n2.b.e = e2).c = n2, t2.c = r2;
        }
        function o(e2, t2) {
          var r2 = t2.f, n2 = new $(t2, r2);
          for (r2.e = n2, r2 = (t2.f = n2).c = e2; r2.a = n2, (r2 = r2.c) !== e2; )
            ;
        }
        function s(e2, t2) {
          var r2 = t2.d, n2 = new Z(t2, r2);
          for (r2.b = n2, (t2.d = n2).a = e2, n2.c = t2.c, r2 = e2; r2.d = n2, (r2 = r2.e) !== e2; )
            ;
        }
        function p(e2) {
          var t2 = e2.h;
          e2 = e2.b.h, (t2.b.h = e2).b.h = t2;
        }
        function y(e2, t2) {
          for (var r2 = e2.c, n2 = r2; n2.a = t2, (n2 = n2.c) !== r2; )
            ;
          r2 = e2.f, ((n2 = e2.e).f = r2).e = n2;
        }
        function l(e2, t2) {
          for (var r2 = e2.a, n2 = r2; n2.d = t2, (n2 = n2.e) !== r2; )
            ;
          r2 = e2.d, ((n2 = e2.b).d = r2).b = n2;
        }
        function E(e2) {
          var t2 = 0;
          return Math.abs(e2[1]) > Math.abs(e2[0]) && (t2 = 1), Math.abs(e2[2]) > Math.abs(e2[t2]) && (t2 = 2), t2;
        }
        function T(e2, t2) {
          e2.f += t2.f, e2.b.f += t2.b.f;
        }
        function u(e2, t2, r2) {
          return e2 = e2.a, t2 = t2.a, r2 = r2.a, t2.b.a === e2 ? r2.b.a === e2 ? g(t2.a, r2.a) ? b(r2.b.a, t2.a, r2.a) <= 0 : 0 <= b(t2.b.a, r2.a, t2.a) : b(r2.b.a, e2, r2.a) <= 0 : r2.b.a === e2 ? 0 <= b(t2.b.a, e2, t2.a) : (t2 = v(t2.b.a, e2, t2.a), (e2 = v(r2.b.a, e2, r2.a)) <= t2);
        }
        function O(e2) {
          e2.a.i = null;
          var t2 = e2.e;
          t2.a.c = t2.c, t2.c.a = t2.a, e2.e = null;
        }
        function c(e2, t2) {
          d(e2.a), e2.c = false, (e2.a = t2).i = e2;
        }
        function C(e2) {
          for (var t2 = e2.a.a; (e2 = de(e2)).a.a === t2; )
            ;
          return e2.c && (c(e2, t2 = f(ce(e2).a.b, e2.a.e)), e2 = de(e2)), e2;
        }
        function L(e2, t2, r2) {
          var n2 = new ue();
          return n2.a = r2, n2.e = H(e2.f, t2.e, n2), r2.i = n2;
        }
        function P(e2, t2) {
          switch (e2.s) {
            case 100130:
              return (1 & t2) != 0;
            case 100131:
              return t2 !== 0;
            case 100132:
              return 0 < t2;
            case 100133:
              return t2 < 0;
            case 100134:
              return 2 <= t2 || t2 <= -2;
          }
          return false;
        }
        function k(e2) {
          var t2 = e2.a, r2 = t2.d;
          r2.c = e2.d, r2.a = t2, O(e2);
        }
        function A(e2, t2, r2) {
          for (t2 = (e2 = t2).a; e2 !== r2; ) {
            e2.c = false;
            var n2 = ce(e2), o2 = n2.a;
            if (o2.a !== t2.a) {
              if (!n2.c) {
                k(e2);
                break;
              }
              c(n2, o2 = f(t2.c.b, o2.b));
            }
            t2.c !== o2 && (j(K(o2), o2), j(t2, o2)), k(e2), t2 = n2.a, e2 = n2;
          }
          return t2;
        }
        function R(e2, t2, r2, n2, o2, i2) {
          for (var a2 = true; L(e2, t2, r2.b), (r2 = r2.c) !== n2; )
            ;
          for (o2 === null && (o2 = ce(t2).a.b.c); (r2 = (n2 = ce(t2)).a.b).a === o2.a; )
            r2.c !== o2 && (j(K(r2), r2), j(K(o2), r2)), n2.f = t2.f - r2.f, n2.d = P(e2, n2.f), t2.b = true, !a2 && N(e2, t2) && (T(r2, o2), O(t2), d(o2)), a2 = false, t2 = n2, o2 = r2;
          t2.b = true, i2 && B(e2, t2);
        }
        function D(e2, t2, r2, n2, o2) {
          var i2 = [t2.g[0], t2.g[1], t2.g[2]];
          t2.d = null, t2.d = e2.o && e2.o(i2, r2, n2, e2.c) || null, t2.d === null && (o2 ? e2.n || (Y(e2, 100156), e2.n = true) : t2.d = r2[0]);
        }
        function I(e2, t2, r2) {
          var n2 = [null, null, null, null];
          n2[0] = t2.a.d, n2[1] = r2.a.d, D(e2, t2.a, n2, [0.5, 0.5, 0, 0], false), j(t2, r2);
        }
        function U(e2, t2, r2, n2, o2) {
          var i2 = Math.abs(t2.b - e2.b) + Math.abs(t2.a - e2.a), a2 = Math.abs(r2.b - e2.b) + Math.abs(r2.a - e2.a), s2 = o2 + 1;
          n2[o2] = 0.5 * a2 / (i2 + a2), n2[s2] = 0.5 * i2 / (i2 + a2), e2.g[0] += n2[o2] * t2.g[0] + n2[s2] * r2.g[0], e2.g[1] += n2[o2] * t2.g[1] + n2[s2] * r2.g[1], e2.g[2] += n2[o2] * t2.g[2] + n2[s2] * r2.g[2];
        }
        function N(e2, t2) {
          var r2 = ce(t2), n2 = t2.a, o2 = r2.a;
          if (g(n2.a, o2.a)) {
            if (0 < b(o2.b.a, n2.a, o2.a))
              return false;
            if (m(n2.a, o2.a)) {
              if (n2.a !== o2.a) {
                r2 = e2.e;
                var i2 = n2.a.h;
                if (0 <= i2) {
                  var a2 = (r2 = r2.b).d, s2 = r2.e, l2 = r2.c, u2 = l2[i2];
                  a2[u2] = a2[r2.a], (l2[a2[u2]] = u2) <= --r2.a && (u2 <= 1 ? se(r2, u2) : g(s2[a2[u2 >> 1]], s2[a2[u2]]) ? se(r2, u2) : le(r2, u2)), s2[i2] = null, l2[i2] = r2.b, r2.b = i2;
                } else
                  for (r2.c[-(i2 + 1)] = null; 0 < r2.a && r2.c[r2.d[r2.a - 1]] === null; )
                    --r2.a;
                I(e2, K(o2), n2);
              }
            } else
              M(o2.b), j(n2, K(o2)), t2.b = r2.b = true;
          } else {
            if (b(n2.b.a, o2.a, n2.a) < 0)
              return false;
            de(t2).b = t2.b = true, M(n2.b), j(K(o2), n2);
          }
          return true;
        }
        function F(e2, t2) {
          var r2 = ce(t2), n2 = t2.a, o2 = r2.a, i2 = n2.a, a2 = o2.a, s2 = n2.b.a, l2 = o2.b.a, u2 = new $();
          if (b(s2, e2.a, i2), b(l2, e2.a, a2), i2 === a2 || Math.min(i2.a, s2.a) > Math.max(a2.a, l2.a))
            return false;
          if (g(i2, a2)) {
            if (0 < b(l2, i2, a2))
              return false;
          } else if (b(s2, a2, i2) < 0)
            return false;
          var c2, d2, f2 = s2, h2 = i2, p2 = l2, y2 = a2;
          if (g(f2, h2) || (c2 = f2, f2 = h2, h2 = c2), g(p2, y2) || (c2 = p2, p2 = y2, y2 = c2), g(f2, p2) || (c2 = f2, f2 = p2, p2 = c2, c2 = h2, h2 = y2, y2 = c2), g(p2, h2) ? g(h2, y2) ? ((c2 = v(f2, p2, h2)) + (d2 = v(p2, h2, y2)) < 0 && (c2 = -c2, d2 = -d2), u2.b = S(c2, p2.b, d2, h2.b)) : ((c2 = b(f2, p2, h2)) + (d2 = -b(f2, y2, h2)) < 0 && (c2 = -c2, d2 = -d2), u2.b = S(c2, p2.b, d2, y2.b)) : u2.b = (p2.b + h2.b) / 2, _(f2, h2) || (c2 = f2, f2 = h2, h2 = c2), _(p2, y2) || (c2 = p2, p2 = y2, y2 = c2), _(f2, p2) || (c2 = f2, f2 = p2, p2 = c2, c2 = h2, h2 = y2, y2 = c2), _(p2, h2) ? _(h2, y2) ? ((c2 = x(f2, p2, h2)) + (d2 = x(p2, h2, y2)) < 0 && (c2 = -c2, d2 = -d2), u2.a = S(c2, p2.a, d2, h2.a)) : ((c2 = w(f2, p2, h2)) + (d2 = -w(f2, y2, h2)) < 0 && (c2 = -c2, d2 = -d2), u2.a = S(c2, p2.a, d2, y2.a)) : u2.a = (p2.a + h2.a) / 2, g(u2, e2.a) && (u2.b = e2.a.b, u2.a = e2.a.a), f2 = g(i2, a2) ? i2 : a2, g(f2, u2) && (u2.b = f2.b, u2.a = f2.a), m(u2, i2) || m(u2, a2))
            return N(e2, t2), false;
          if (!m(s2, e2.a) && 0 <= b(s2, e2.a, u2) || !m(l2, e2.a) && b(l2, e2.a, u2) <= 0) {
            if (l2 === e2.a)
              return M(n2.b), j(o2.b, n2), n2 = ce(t2 = C(t2)).a, A(e2, ce(t2), r2), R(e2, t2, K(n2), n2, n2, true), true;
            if (s2 !== e2.a)
              return 0 <= b(s2, e2.a, u2) && (de(t2).b = t2.b = true, M(n2.b), n2.a.b = e2.a.b, n2.a.a = e2.a.a), b(l2, e2.a, u2) <= 0 && (t2.b = r2.b = true, M(o2.b), o2.a.b = e2.a.b, o2.a.a = e2.a.a), false;
            for (M(o2.b), j(n2.e, K(o2)), a2 = (i2 = r2 = t2).a.b.a; (i2 = de(i2)).a.b.a === a2; )
              ;
            return i2 = ce(t2 = i2).a.b.c, r2.a = K(o2), R(e2, t2, (o2 = A(e2, r2, null)).c, n2.b.c, i2, true), true;
          }
          return M(n2.b), M(o2.b), j(K(o2), n2), n2.a.b = u2.b, n2.a.a = u2.a, n2.a.h = te(e2.e, n2.a), n2 = n2.a, o2 = [0, 0, 0, 0], u2 = [i2.d, s2.d, a2.d, l2.d], n2.g[0] = n2.g[1] = n2.g[2] = 0, U(n2, i2, s2, o2, 0), U(n2, a2, l2, o2, 2), D(e2, n2, u2, o2, true), de(t2).b = t2.b = r2.b = true, false;
        }
        function B(e2, t2) {
          for (var r2 = ce(t2); ; ) {
            for (; r2.b; )
              r2 = ce(t2 = r2);
            if (!t2.b && ((t2 = de(r2 = t2)) === null || !t2.b))
              break;
            t2.b = false;
            var n2, o2 = t2.a, i2 = r2.a;
            if (n2 = o2.b.a !== i2.b.a)
              e: {
                var a2 = ce(n2 = t2), s2 = n2.a, l2 = a2.a, u2 = void 0;
                if (g(s2.b.a, l2.b.a)) {
                  if (b(s2.b.a, l2.b.a, s2.a) < 0) {
                    n2 = false;
                    break e;
                  }
                  de(n2).b = n2.b = true, u2 = M(s2), j(l2.b, u2), u2.d.c = n2.d;
                } else {
                  if (0 < b(l2.b.a, s2.b.a, l2.a)) {
                    n2 = false;
                    break e;
                  }
                  n2.b = a2.b = true, u2 = M(l2), j(s2.e, l2.b), u2.b.d.c = n2.d;
                }
                n2 = true;
              }
            if (n2 && (r2.c ? (O(r2), d(i2), i2 = (r2 = ce(t2)).a) : t2.c && (O(t2), d(o2), o2 = (t2 = de(r2)).a)), o2.a !== i2.a) {
              if (o2.b.a === i2.b.a || t2.c || r2.c || o2.b.a !== e2.a && i2.b.a !== e2.a)
                N(e2, t2);
              else if (F(e2, t2))
                break;
            }
            o2.a === i2.a && o2.b.a === i2.b.a && (T(i2, o2), O(t2), d(o2), t2 = de(r2));
          }
        }
        function G(e2, t2) {
          for (var r2 = (e2.a = t2).c; r2.i === null; )
            if ((r2 = r2.c) === t2.c) {
              r2 = e2;
              var n2 = t2;
              (a2 = new ue()).a = n2.c.b;
              for (var o2 = (l2 = r2.f).a; (o2 = o2.a).b !== null && !l2.c(l2.b, a2, o2.b); )
                ;
              var i2 = ce(l2 = o2.b), a2 = l2.a;
              o2 = i2.a;
              if (b(a2.b.a, n2, a2.a) === 0)
                m((a2 = l2.a).a, n2) || m(a2.b.a, n2) || (M(a2.b), l2.c && (d(a2.c), l2.c = false), j(n2.c, a2), G(r2, n2));
              else {
                var s2 = g(o2.b.a, a2.b.a) ? l2 : i2;
                i2 = void 0;
                l2.d || s2.c ? (i2 = s2 === l2 ? f(n2.c.b, a2.e) : f(o2.b.c.b, n2.c).b, s2.c ? c(s2, i2) : ((l2 = L(a2 = r2, l2, i2)).f = de(l2).f + l2.a.f, l2.d = P(a2, l2.f)), G(r2, n2)) : R(r2, l2, n2.c, n2.c, null, true);
              }
              return;
            }
          if (l2 = (a2 = ce(r2 = C(r2.i))).a, (a2 = A(e2, a2, null)).c === l2) {
            a2 = (l2 = a2).c, o2 = ce(r2), i2 = r2.a, s2 = o2.a;
            var l2, u2 = false;
            i2.b.a !== s2.b.a && F(e2, r2), m(i2.a, e2.a) && (j(K(a2), i2), a2 = ce(r2 = C(r2)).a, A(e2, ce(r2), o2), u2 = true), m(s2.a, e2.a) && (j(l2, K(s2)), l2 = A(e2, o2, null), u2 = true), u2 ? R(e2, r2, l2.c, a2, a2, true) : (n2 = g(s2.a, i2.a) ? K(s2) : i2, R(e2, r2, n2 = f(l2.c.b, n2), n2.c, n2.c, false), n2.b.i.c = true, B(e2, r2));
          } else
            R(e2, r2, a2.c, l2, l2, true);
        }
        function V(e2, t2) {
          var r2 = new ue(), n2 = a(e2.b);
          n2.a.b = 4e150, n2.a.a = t2, n2.b.a.b = -4e150, n2.b.a.a = t2, e2.a = n2.b.a, r2.a = n2, r2.f = 0, r2.d = false, r2.c = false, r2.h = true, r2.b = false, n2 = H(n2 = e2.f, n2.a, r2), r2.e = n2;
        }
        function z(e2) {
          this.a = new W(), this.b = e2, this.c = u;
        }
        function H(e2, t2, r2) {
          for (; (t2 = t2.c).b !== null && !e2.c(e2.b, t2.b, r2); )
            ;
          return e2 = new W(r2, t2.a, t2), t2.a.c = e2, t2.a = e2;
        }
        function W(e2, t2, r2) {
          this.b = e2 || null, this.a = t2 || this, this.c = r2 || this;
        }
        function q() {
          this.d = 0, this.p = this.b = this.q = null, this.j = [0, 0, 0], this.s = 100130, this.n = false, this.o = this.a = this.e = this.f = null, this.m = false, this.c = this.r = this.i = this.k = this.l = this.h = null;
        }
        function X(e2, t2) {
          if (e2.d !== t2)
            for (; e2.d !== t2; )
              if (e2.d < t2)
                switch (e2.d) {
                  case 0:
                    Y(e2, 100151), e2.u(null);
                    break;
                  case 1:
                    Y(e2, 100152), e2.t();
                }
              else
                switch (e2.d) {
                  case 2:
                    Y(e2, 100154), e2.v();
                    break;
                  case 1:
                    Y(e2, 100153), e2.w();
                }
        }
        function Y(e2, t2) {
          e2.p && e2.p(t2, e2.c);
        }
        function Z(e2, t2) {
          this.b = e2 || this, this.d = t2 || this, this.a = null, this.c = false;
        }
        function Q() {
          (this.h = this).i = this.d = this.a = this.e = this.c = this.b = null, this.f = 0;
        }
        function K(e2) {
          return e2.b.e;
        }
        function J() {
          this.c = new $(), this.a = new Z(), this.b = new Q(), this.d = new Q(), this.b.b = this.d, this.d.b = this.b;
        }
        function $(e2, t2) {
          this.e = e2 || this, this.f = t2 || this, this.d = this.c = null, this.g = [0, 0, 0], this.h = this.a = this.b = 0;
        }
        function ee() {
          this.c = [], this.d = null, this.a = 0, this.e = false, this.b = new ne();
        }
        function te(e2, t2) {
          if (e2.e) {
            var r2, n2 = e2.b, o2 = ++n2.a;
            return 2 * o2 > n2.f && (n2.f *= 2, n2.c = oe(n2.c, n2.f + 1)), n2.b === 0 ? r2 = o2 : (r2 = n2.b, n2.b = n2.c[n2.b]), n2.e[r2] = t2, n2.c[r2] = o2, n2.d[o2] = r2, n2.h && le(n2, o2), r2;
          }
          return n2 = e2.a++, e2.c[n2] = t2, -(n2 + 1);
        }
        function re(e2) {
          if (e2.a === 0)
            return ae(e2.b);
          var t2 = e2.c[e2.d[e2.a - 1]];
          if (e2.b.a !== 0 && g(ie(e2.b), t2))
            return ae(e2.b);
          for (; --e2.a, 0 < e2.a && e2.c[e2.d[e2.a - 1]] === null; )
            ;
          return t2;
        }
        function ne() {
          this.d = oe([0], 33), this.e = [null, null], this.c = [0, 0], this.a = 0, this.f = 32, this.b = 0, this.h = false, this.d[1] = 1;
        }
        function oe(e2, t2) {
          for (var r2 = Array(t2), n2 = 0; n2 < e2.length; n2++)
            r2[n2] = e2[n2];
          for (; n2 < t2; n2++)
            r2[n2] = 0;
          return r2;
        }
        function ie(e2) {
          return e2.e[e2.d[1]];
        }
        function ae(e2) {
          var t2 = e2.d, r2 = e2.e, n2 = e2.c, o2 = t2[1], i2 = r2[o2];
          return 0 < e2.a && (t2[1] = t2[e2.a], n2[t2[1]] = 1, r2[o2] = null, n2[o2] = e2.b, e2.b = o2, 0 < --e2.a && se(e2, 1)), i2;
        }
        function se(e2, t2) {
          for (var r2 = e2.d, n2 = e2.e, o2 = e2.c, i2 = t2, a2 = r2[i2]; ; ) {
            var s2 = i2 << 1;
            s2 < e2.a && g(n2[r2[s2 + 1]], n2[r2[s2]]) && (s2 += 1);
            var l2 = r2[s2];
            if (s2 > e2.a || g(n2[a2], n2[l2])) {
              o2[r2[i2] = a2] = i2;
              break;
            }
            o2[r2[i2] = l2] = i2, i2 = s2;
          }
        }
        function le(e2, t2) {
          for (var r2 = e2.d, n2 = e2.e, o2 = e2.c, i2 = t2, a2 = r2[i2]; ; ) {
            var s2 = i2 >> 1, l2 = r2[s2];
            if (s2 == 0 || g(n2[l2], n2[a2])) {
              o2[r2[i2] = a2] = i2;
              break;
            }
            o2[r2[i2] = l2] = i2, i2 = s2;
          }
        }
        function ue() {
          this.e = this.a = null, this.f = 0, this.c = this.b = this.h = this.d = false;
        }
        function ce(e2) {
          return e2.e.c.b;
        }
        function de(e2) {
          return e2.e.a.b;
        }
        (n = q.prototype).x = function() {
          X(this, 0);
        }, n.B = function(e2, t2) {
          switch (e2) {
            case 100142:
              return;
            case 100140:
              switch (t2) {
                case 100130:
                case 100131:
                case 100132:
                case 100133:
                case 100134:
                  return void (this.s = t2);
              }
              break;
            case 100141:
              return void (this.m = !!t2);
            default:
              return void Y(this, 100900);
          }
          Y(this, 100901);
        }, n.y = function(e2) {
          switch (e2) {
            case 100142:
              return 0;
            case 100140:
              return this.s;
            case 100141:
              return this.m;
            default:
              Y(this, 100900);
          }
          return false;
        }, n.A = function(e2, t2, r2) {
          this.j[0] = e2, this.j[1] = t2, this.j[2] = r2;
        }, n.z = function(e2, t2) {
          var r2 = t2 || null;
          switch (e2) {
            case 100100:
            case 100106:
              this.h = r2;
              break;
            case 100104:
            case 100110:
              this.l = r2;
              break;
            case 100101:
            case 100107:
              this.k = r2;
              break;
            case 100102:
            case 100108:
              this.i = r2;
              break;
            case 100103:
            case 100109:
              this.p = r2;
              break;
            case 100105:
            case 100111:
              this.o = r2;
              break;
            case 100112:
              this.r = r2;
              break;
            default:
              Y(this, 100900);
          }
        }, n.C = function(e2, t2) {
          var r2 = false, n2 = [0, 0, 0];
          X(this, 2);
          for (var o2 = 0; o2 < 3; ++o2) {
            var i2 = e2[o2];
            i2 < -1e150 && (i2 = -1e150, r2 = true), 1e150 < i2 && (i2 = 1e150, r2 = true), n2[o2] = i2;
          }
          r2 && Y(this, 100155), (r2 = this.q) === null ? j(r2 = a(this.b), r2.b) : (M(r2), r2 = r2.e), r2.a.d = t2, r2.a.g[0] = n2[0], r2.a.g[1] = n2[1], r2.a.g[2] = n2[2], r2.f = 1, r2.b.f = -1, this.q = r2;
        }, n.u = function(e2) {
          X(this, 0), this.d = 1, this.b = new J(), this.c = e2;
        }, n.t = function() {
          X(this, 1), this.d = 2, this.q = null;
        }, n.v = function() {
          X(this, 2), this.d = 1;
        }, n.w = function() {
          X(this, 1), this.d = 0;
          var e2, t2, r2 = false, n2 = [l2 = this.j[0], o2 = this.j[1], a2 = this.j[2]];
          if (l2 === 0 && o2 === 0 && a2 === 0) {
            for (var o2 = [-2e150, -2e150, -2e150], i2 = [2e150, 2e150, 2e150], a2 = [], s2 = [], l2 = (r2 = this.b.c).e; l2 !== r2; l2 = l2.e)
              for (var u2 = 0; u2 < 3; ++u2) {
                var c2 = l2.g[u2];
                c2 < i2[u2] && (i2[u2] = c2, s2[u2] = l2), c2 > o2[u2] && (o2[u2] = c2, a2[u2] = l2);
              }
            if (l2 = 0, o2[1] - i2[1] > o2[0] - i2[0] && (l2 = 1), o2[2] - i2[2] > o2[l2] - i2[l2] && (l2 = 2), i2[l2] >= o2[l2])
              n2[0] = 0, n2[1] = 0, n2[2] = 1;
            else {
              for (o2 = 0, i2 = s2[l2], a2 = a2[l2], s2 = [0, 0, 0], i2 = [i2.g[0] - a2.g[0], i2.g[1] - a2.g[1], i2.g[2] - a2.g[2]], u2 = [0, 0, 0], l2 = r2.e; l2 !== r2; l2 = l2.e)
                u2[0] = l2.g[0] - a2.g[0], u2[1] = l2.g[1] - a2.g[1], u2[2] = l2.g[2] - a2.g[2], s2[0] = i2[1] * u2[2] - i2[2] * u2[1], s2[1] = i2[2] * u2[0] - i2[0] * u2[2], s2[2] = i2[0] * u2[1] - i2[1] * u2[0], o2 < (c2 = s2[0] * s2[0] + s2[1] * s2[1] + s2[2] * s2[2]) && (o2 = c2, n2[0] = s2[0], n2[1] = s2[1], n2[2] = s2[2]);
              o2 <= 0 && (n2[0] = n2[1] = n2[2] = 0, n2[E(i2)] = 1);
            }
            r2 = true;
          }
          for (s2 = E(n2), l2 = this.b.c, o2 = (s2 + 1) % 3, a2 = (s2 + 2) % 3, s2 = 0 < n2[s2] ? 1 : -1, n2 = l2.e; n2 !== l2; n2 = n2.e)
            n2.b = n2.g[o2], n2.a = s2 * n2.g[a2];
          if (r2) {
            for (n2 = 0, l2 = (r2 = this.b.a).b; l2 !== r2; l2 = l2.b)
              if (!((o2 = l2.a).f <= 0))
                for (; n2 += (o2.a.b - o2.b.a.b) * (o2.a.a + o2.b.a.a), (o2 = o2.e) !== l2.a; )
                  ;
            if (n2 < 0)
              for (r2 = (n2 = this.b.c).e; r2 !== n2; r2 = r2.e)
                r2.a = -r2.a;
          }
          for (this.n = false, l2 = (n2 = this.b.b).h; l2 !== n2; l2 = r2)
            r2 = l2.h, o2 = l2.e, m(l2.a, l2.b.a) && l2.e.e !== l2 && (I(this, o2, l2), d(l2), o2 = (l2 = o2).e), o2.e === l2 && (o2 !== l2 && (o2 !== r2 && o2 !== r2.b || (r2 = r2.h), d(o2)), l2 !== r2 && l2 !== r2.b || (r2 = r2.h), d(l2));
          for (this.e = n2 = new ee(), l2 = (r2 = this.b.c).e; l2 !== r2; l2 = l2.e)
            l2.h = te(n2, l2);
          for (!function(e3) {
            e3.d = [];
            for (var t3 = 0; t3 < e3.a; t3++)
              e3.d[t3] = t3;
            e3.d.sort(function(r3) {
              return function(e4, t4) {
                return g(r3[e4], r3[t4]) ? 1 : -1;
              };
            }(e3.c)), e3.e = true, function(e4) {
              for (var t4 = e4.a; 1 <= t4; --t4)
                se(e4, t4);
              e4.h = true;
            }(e3.b);
          }(n2), this.f = new z(this), V(this, -4e150), V(this, 4e150); (n2 = re(this.e)) !== null; ) {
            for (; ; ) {
              e:
                if (l2 = this.e, l2.a === 0)
                  r2 = ie(l2.b);
                else if (r2 = l2.c[l2.d[l2.a - 1]], l2.b.a !== 0 && (l2 = ie(l2.b), g(l2, r2))) {
                  r2 = l2;
                  break e;
                }
              if (r2 === null || !m(r2, n2))
                break;
              r2 = re(this.e), I(this, n2.c, r2.c);
            }
            G(this, n2);
          }
          for (this.a = this.f.a.a.b.a.a, n2 = 0; (r2 = this.f.a.a.b) !== null; )
            r2.h || ++n2, O(r2);
          for (this.f = null, (n2 = this.e).b = null, n2.d = null, this.e = n2.c = null, l2 = (n2 = this.b).a.b; l2 !== n2.a; l2 = r2)
            r2 = l2.b, (l2 = l2.a).e.e === l2 && (T(l2.c, l2), d(l2));
          if (!this.n) {
            if (n2 = this.b, this.m)
              for (l2 = n2.b.h; l2 !== n2.b; l2 = r2)
                r2 = l2.h, l2.b.d.c !== l2.d.c ? l2.f = l2.d.c ? 1 : -1 : d(l2);
            else
              for (l2 = n2.a.b; l2 !== n2.a; l2 = r2)
                if (r2 = l2.b, l2.c) {
                  for (l2 = l2.a; g(l2.b.a, l2.a); l2 = l2.c.b)
                    ;
                  for (; g(l2.a, l2.b.a); l2 = l2.e)
                    ;
                  for (o2 = l2.c.b, a2 = void 0; l2.e !== o2; )
                    if (g(l2.b.a, o2.a)) {
                      for (; o2.e !== l2 && (g((t2 = o2.e).b.a, t2.a) || b(o2.a, o2.b.a, o2.e.b.a) <= 0); )
                        o2 = (a2 = f(o2.e, o2)).b;
                      o2 = o2.c.b;
                    } else {
                      for (; o2.e !== l2 && (g((e2 = l2.c.b).a, e2.b.a) || 0 <= b(l2.b.a, l2.a, l2.c.b.a)); )
                        l2 = (a2 = f(l2, l2.c.b)).b;
                      l2 = l2.e;
                    }
                  for (; o2.e.e !== l2; )
                    o2 = (a2 = f(o2.e, o2)).b;
                }
            if (this.h || this.i || this.k || this.l)
              if (this.m) {
                for (r2 = (n2 = this.b).a.b; r2 !== n2.a; r2 = r2.b)
                  if (r2.c) {
                    for (this.h && this.h(2, this.c), l2 = r2.a; this.k && this.k(l2.a.d, this.c), (l2 = l2.e) !== r2.a; )
                      ;
                    this.i && this.i(this.c);
                  }
              } else {
                for (n2 = this.b, r2 = !!this.l, l2 = false, o2 = -1, a2 = n2.a.d; a2 !== n2.a; a2 = a2.d)
                  if (a2.c)
                    for (l2 || (this.h && this.h(4, this.c), l2 = true), s2 = a2.a; r2 && (o2 !== (i2 = s2.b.d.c ? 0 : 1) && (o2 = i2, this.l && this.l(!!o2, this.c))), this.k && this.k(s2.a.d, this.c), (s2 = s2.e) !== a2.a; )
                      ;
                l2 && this.i && this.i(this.c);
              }
            if (this.r) {
              for (l2 = (n2 = this.b).a.b; l2 !== n2.a; l2 = r2)
                if (r2 = l2.b, !l2.c) {
                  for (a2 = (o2 = l2.a).e, s2 = void 0; a2 = (s2 = a2).e, (s2.d = null) === s2.b.d && (s2.c === s2 ? y(s2.a, null) : (s2.a.c = s2.c, h(s2, K(s2))), (i2 = s2.b).c === i2 ? y(i2.a, null) : (i2.a.c = i2.c, h(i2, K(i2))), p(s2)), s2 !== o2; )
                    ;
                  o2 = l2.d, ((l2 = l2.b).d = o2).b = l2;
                }
              return this.r(this.b), void (this.c = this.b = null);
            }
          }
          this.b = this.c = null;
        }, this.libtess = { GluTesselator: q, windingRule: { GLU_TESS_WINDING_ODD: 100130, GLU_TESS_WINDING_NONZERO: 100131, GLU_TESS_WINDING_POSITIVE: 100132, GLU_TESS_WINDING_NEGATIVE: 100133, GLU_TESS_WINDING_ABS_GEQ_TWO: 100134 }, primitiveType: { GL_LINE_LOOP: 2, GL_TRIANGLES: 4, GL_TRIANGLE_STRIP: 5, GL_TRIANGLE_FAN: 6 }, errorType: { GLU_TESS_MISSING_BEGIN_POLYGON: 100151, GLU_TESS_MISSING_END_POLYGON: 100153, GLU_TESS_MISSING_BEGIN_CONTOUR: 100152, GLU_TESS_MISSING_END_CONTOUR: 100154, GLU_TESS_COORD_TOO_LARGE: 100155, GLU_TESS_NEED_COMBINE_CALLBACK: 100156 }, gluEnum: { GLU_TESS_MESH: 100112, GLU_TESS_TOLERANCE: 100142, GLU_TESS_WINDING_RULE: 100140, GLU_TESS_BOUNDARY_ONLY: 100141, GLU_INVALID_ENUM: 100900, GLU_INVALID_VALUE: 100901, GLU_TESS_BEGIN: 100100, GLU_TESS_VERTEX: 100101, GLU_TESS_END: 100102, GLU_TESS_ERROR: 100103, GLU_TESS_EDGE_FLAG: 100104, GLU_TESS_COMBINE: 100105, GLU_TESS_BEGIN_DATA: 100106, GLU_TESS_VERTEX_DATA: 100107, GLU_TESS_END_DATA: 100108, GLU_TESS_ERROR_DATA: 100109, GLU_TESS_EDGE_FLAG_DATA: 100110, GLU_TESS_COMBINE_DATA: 100111 } }, q.prototype.gluDeleteTess = q.prototype.x, q.prototype.gluTessProperty = q.prototype.B, q.prototype.gluGetTessProperty = q.prototype.y, q.prototype.gluTessNormal = q.prototype.A, q.prototype.gluTessCallback = q.prototype.z, q.prototype.gluTessVertex = q.prototype.C, q.prototype.gluTessBeginPolygon = q.prototype.u, q.prototype.gluTessBeginContour = q.prototype.t, q.prototype.gluTessEndContour = q.prototype.v, q.prototype.gluTessEndPolygon = q.prototype.w, t !== void 0 && (t.exports = this.libtess);
      }, {}], 235: [function(e, t, r) {
        "use strict";
        function O(e2, t2, r2, n) {
          for (var o = e2[t2++], i = 1 << o, a = 1 + i, s = 1 + a, l = o + 1, u = (1 << l) - 1, c = 0, d = 0, f = 0, h = e2[t2++], p = new Int32Array(4096), y = null; ; ) {
            for (; c < 16 && h !== 0; )
              d |= e2[t2++] << c, c += 8, h === 1 ? h = e2[t2++] : --h;
            if (c < l)
              break;
            var m = d & u;
            if (d >>= l, c -= l, m != i) {
              if (m == a)
                break;
              for (var g = m < s ? m : y, v = 0, b = g; i < b; )
                b = p[b] >> 8, ++v;
              var _ = b;
              if (n < f + v + (g !== m ? 1 : 0))
                return void console.log("Warning, gif stream longer than expected.");
              r2[f++] = _;
              var x = f += v;
              for (g !== m && (r2[f++] = _), b = g; v--; )
                b = p[b], r2[--x] = 255 & b, b >>= 8;
              y !== null && s < 4096 && (p[s++] = y << 8 | _, u + 1 <= s && l < 12 && (++l, u = u << 1 | 1)), y = m;
            } else
              s = 1 + a, u = (1 << (l = o + 1)) - 1, y = null;
          }
          return f !== n && console.log("Warning, gif stream shorter than expected."), r2;
        }
        try {
          r.GifWriter = function(g, e2, t2, r2) {
            var v = 0, n = (r2 = r2 === void 0 ? {} : r2).loop === void 0 ? null : r2.loop, b = r2.palette === void 0 ? null : r2.palette;
            if (e2 <= 0 || t2 <= 0 || 65535 < e2 || 65535 < t2)
              throw new Error("Width/Height invalid.");
            function _(e3) {
              var t3 = e3.length;
              if (t3 < 2 || 256 < t3 || t3 & t3 - 1)
                throw new Error("Invalid code/color length, must be power of 2 and 2 .. 256.");
              return t3;
            }
            g[v++] = 71, g[v++] = 73, g[v++] = 70, g[v++] = 56, g[v++] = 57, g[v++] = 97;
            var o = 0, i = 0;
            if (b !== null) {
              for (var a = _(b); a >>= 1; )
                ++o;
              if (a = 1 << o, --o, r2.background !== void 0) {
                if (a <= (i = r2.background))
                  throw new Error("Background index out of range.");
                if (i === 0)
                  throw new Error("Background index explicitly passed as 0.");
              }
            }
            if (g[v++] = 255 & e2, g[v++] = e2 >> 8 & 255, g[v++] = 255 & t2, g[v++] = t2 >> 8 & 255, g[v++] = (b !== null ? 128 : 0) | o, g[v++] = i, g[v++] = 0, b !== null)
              for (var s = 0, l = b.length; s < l; ++s) {
                var u = b[s];
                g[v++] = u >> 16 & 255, g[v++] = u >> 8 & 255, g[v++] = 255 & u;
              }
            if (n !== null) {
              if (n < 0 || 65535 < n)
                throw new Error("Loop count invalid.");
              g[v++] = 33, g[v++] = 255, g[v++] = 11, g[v++] = 78, g[v++] = 69, g[v++] = 84, g[v++] = 83, g[v++] = 67, g[v++] = 65, g[v++] = 80, g[v++] = 69, g[v++] = 50, g[v++] = 46, g[v++] = 48, g[v++] = 3, g[v++] = 1, g[v++] = 255 & n, g[v++] = n >> 8 & 255, g[v++] = 0;
            }
            var x = false;
            this.addFrame = function(e3, t3, r3, n2, o2, i2) {
              if (x === true && (--v, x = false), i2 = i2 === void 0 ? {} : i2, e3 < 0 || t3 < 0 || 65535 < e3 || 65535 < t3)
                throw new Error("x/y invalid.");
              if (r3 <= 0 || n2 <= 0 || 65535 < r3 || 65535 < n2)
                throw new Error("Width/Height invalid.");
              if (o2.length < r3 * n2)
                throw new Error("Not enough pixels for the frame size.");
              var a2 = true, s2 = i2.palette;
              if (s2 == null && (a2 = false, s2 = b), s2 == null)
                throw new Error("Must supply either a local or global palette.");
              for (var l2 = _(s2), u2 = 0; l2 >>= 1; )
                ++u2;
              l2 = 1 << u2;
              var c = i2.delay === void 0 ? 0 : i2.delay, d = i2.disposal === void 0 ? 0 : i2.disposal;
              if (d < 0 || 3 < d)
                throw new Error("Disposal out of range.");
              var f = false, h = 0;
              if (i2.transparent !== void 0 && i2.transparent !== null && (f = true, (h = i2.transparent) < 0 || l2 <= h))
                throw new Error("Transparent color index.");
              if (d === 0 && !f && c === 0 || (g[v++] = 33, g[v++] = 249, g[v++] = 4, g[v++] = d << 2 | (f === true ? 1 : 0), g[v++] = 255 & c, g[v++] = c >> 8 & 255, g[v++] = h, g[v++] = 0), g[v++] = 44, g[v++] = 255 & e3, g[v++] = e3 >> 8 & 255, g[v++] = 255 & t3, g[v++] = t3 >> 8 & 255, g[v++] = 255 & r3, g[v++] = r3 >> 8 & 255, g[v++] = 255 & n2, g[v++] = n2 >> 8 & 255, g[v++] = a2 === true ? 128 | u2 - 1 : 0, a2 === true)
                for (var p = 0, y = s2.length; p < y; ++p) {
                  var m = s2[p];
                  g[v++] = m >> 16 & 255, g[v++] = m >> 8 & 255, g[v++] = 255 & m;
                }
              return v = function(t4, r4, e4, n3) {
                t4[r4++] = e4;
                var o3 = r4++, i3 = 1 << e4, a3 = i3 - 1, s3 = 1 + i3, l3 = 1 + s3, u3 = e4 + 1, c2 = 0, d2 = 0;
                function f2(e5) {
                  for (; e5 <= c2; )
                    t4[r4++] = 255 & d2, d2 >>= 8, c2 -= 8, r4 === o3 + 256 && (t4[o3] = 255, o3 = r4++);
                }
                function h2(e5) {
                  d2 |= e5 << c2, c2 += u3, f2(8);
                }
                var p2 = n3[0] & a3, y2 = {};
                h2(i3);
                for (var m2 = 1, g2 = n3.length; m2 < g2; ++m2) {
                  var v2 = n3[m2] & a3, b2 = p2 << 8 | v2, _2 = y2[b2];
                  if (_2 === void 0) {
                    for (d2 |= p2 << c2, c2 += u3; 8 <= c2; )
                      t4[r4++] = 255 & d2, d2 >>= 8, c2 -= 8, r4 === o3 + 256 && (t4[o3] = 255, o3 = r4++);
                    l3 === 4096 ? (h2(i3), l3 = 1 + s3, u3 = e4 + 1, y2 = {}) : (1 << u3 <= l3 && ++u3, y2[b2] = l3++), p2 = v2;
                  } else
                    p2 = _2;
                }
                h2(p2), h2(s3), f2(1), o3 + 1 === r4 ? t4[o3] = 0 : (t4[o3] = r4 - o3 - 1, t4[r4++] = 0);
                return r4;
              }(g, v, u2 < 2 ? 2 : u2, o2);
            }, this.end = function() {
              return x === false && (g[v++] = 59, x = true), v;
            }, this.getOutputBuffer = function() {
              return g;
            }, this.setOutputBuffer = function(e3) {
              g = e3;
            }, this.getOutputBufferPosition = function() {
              return v;
            }, this.setOutputBufferPosition = function(e3) {
              v = e3;
            };
          }, r.GifReader = function(x) {
            var e2 = 0;
            if (x[e2++] !== 71 || x[e2++] !== 73 || x[e2++] !== 70 || x[e2++] !== 56 || (x[e2++] + 1 & 253) != 56 || x[e2++] !== 97)
              throw new Error("Invalid GIF 87a/89a header.");
            var w = x[e2++] | x[e2++] << 8, t2 = x[e2++] | x[e2++] << 8, r2 = x[e2++], n = r2 >> 7, o = 1 << 1 + (7 & r2);
            x[e2++], x[e2++];
            var i = null, a = null;
            n && (i = e2, e2 += 3 * (a = o));
            var s = true, l = [], u = 0, c = null, d = 0, f = null;
            for (this.width = w, this.height = t2; s && e2 < x.length; )
              switch (x[e2++]) {
                case 33:
                  switch (x[e2++]) {
                    case 255:
                      if (x[e2] !== 11 || x[e2 + 1] == 78 && x[e2 + 2] == 69 && x[e2 + 3] == 84 && x[e2 + 4] == 83 && x[e2 + 5] == 67 && x[e2 + 6] == 65 && x[e2 + 7] == 80 && x[e2 + 8] == 69 && x[e2 + 9] == 50 && x[e2 + 10] == 46 && x[e2 + 11] == 48 && x[e2 + 12] == 3 && x[e2 + 13] == 1 && x[e2 + 16] == 0)
                        e2 += 14, f = x[e2++] | x[e2++] << 8, e2++;
                      else
                        for (e2 += 12; ; ) {
                          if (!(0 <= (T = x[e2++])))
                            throw Error("Invalid block size");
                          if (T === 0)
                            break;
                          e2 += T;
                        }
                      break;
                    case 249:
                      if (x[e2++] !== 4 || x[e2 + 4] !== 0)
                        throw new Error("Invalid graphics extension block.");
                      var h = x[e2++];
                      u = x[e2++] | x[e2++] << 8, c = x[e2++], (1 & h) == 0 && (c = null), d = h >> 2 & 7, e2++;
                      break;
                    case 254:
                      for (; ; ) {
                        if (!(0 <= (T = x[e2++])))
                          throw Error("Invalid block size");
                        if (T === 0)
                          break;
                        e2 += T;
                      }
                      break;
                    default:
                      throw new Error("Unknown graphic control label: 0x" + x[e2 - 1].toString(16));
                  }
                  break;
                case 44:
                  var p = x[e2++] | x[e2++] << 8, y = x[e2++] | x[e2++] << 8, m = x[e2++] | x[e2++] << 8, g = x[e2++] | x[e2++] << 8, v = x[e2++], b = v >> 6 & 1, _ = 1 << 1 + (7 & v), S = i, j = a, M = false;
                  if (v >> 7) {
                    M = true;
                    S = e2, e2 += 3 * (j = _);
                  }
                  var E = e2;
                  for (e2++; ; ) {
                    var T;
                    if (!(0 <= (T = x[e2++])))
                      throw Error("Invalid block size");
                    if (T === 0)
                      break;
                    e2 += T;
                  }
                  l.push({ x: p, y, width: m, height: g, has_local_palette: M, palette_offset: S, palette_size: j, data_offset: E, data_length: e2 - E, transparent_index: c, interlaced: !!b, delay: u, disposal: d });
                  break;
                case 59:
                  s = false;
                  break;
                default:
                  throw new Error("Unknown gif block: 0x" + x[e2 - 1].toString(16));
              }
            this.numFrames = function() {
              return l.length;
            }, this.loopCount = function() {
              return f;
            }, this.frameInfo = function(e3) {
              if (e3 < 0 || e3 >= l.length)
                throw new Error("Frame index out of range.");
              return l[e3];
            }, this.decodeAndBlitFrameBGRA = function(e3, t3) {
              var r3 = this.frameInfo(e3), n2 = r3.width * r3.height, o2 = new Uint8Array(n2);
              O(x, r3.data_offset, o2, n2);
              var i2 = r3.palette_offset, a2 = r3.transparent_index;
              a2 === null && (a2 = 256);
              var s2 = r3.width, l2 = w - s2, u2 = s2, c2 = 4 * (r3.y * w + r3.x), d2 = 4 * ((r3.y + r3.height) * w + r3.x), f2 = c2, h2 = 4 * l2;
              r3.interlaced === true && (h2 += 4 * w * 7);
              for (var p2 = 8, y2 = 0, m2 = o2.length; y2 < m2; ++y2) {
                var g2 = o2[y2];
                if (u2 === 0 && (u2 = s2, d2 <= (f2 += h2) && (h2 = 4 * l2 + 4 * w * (p2 - 1), f2 = c2 + (s2 + l2) * (p2 << 1), p2 >>= 1)), g2 === a2)
                  f2 += 4;
                else {
                  var v2 = x[i2 + 3 * g2], b2 = x[i2 + 3 * g2 + 1], _2 = x[i2 + 3 * g2 + 2];
                  t3[f2++] = _2, t3[f2++] = b2, t3[f2++] = v2, t3[f2++] = 255;
                }
                --u2;
              }
            }, this.decodeAndBlitFrameRGBA = function(e3, t3) {
              var r3 = this.frameInfo(e3), n2 = r3.width * r3.height, o2 = new Uint8Array(n2);
              O(x, r3.data_offset, o2, n2);
              var i2 = r3.palette_offset, a2 = r3.transparent_index;
              a2 === null && (a2 = 256);
              var s2 = r3.width, l2 = w - s2, u2 = s2, c2 = 4 * (r3.y * w + r3.x), d2 = 4 * ((r3.y + r3.height) * w + r3.x), f2 = c2, h2 = 4 * l2;
              r3.interlaced === true && (h2 += 4 * w * 7);
              for (var p2 = 8, y2 = 0, m2 = o2.length; y2 < m2; ++y2) {
                var g2 = o2[y2];
                if (u2 === 0 && (u2 = s2, d2 <= (f2 += h2) && (h2 = 4 * l2 + 4 * w * (p2 - 1), f2 = c2 + (s2 + l2) * (p2 << 1), p2 >>= 1)), g2 === a2)
                  f2 += 4;
                else {
                  var v2 = x[i2 + 3 * g2], b2 = x[i2 + 3 * g2 + 1], _2 = x[i2 + 3 * g2 + 2];
                  t3[f2++] = v2, t3[f2++] = b2, t3[f2++] = _2, t3[f2++] = 255;
                }
                --u2;
              }
            };
          };
        } catch (e2) {
        }
      }, {}], 236: [function(Br, t, r) {
        (function(Fr) {
          var e;
          e = this, function(M) {
            "use strict";
            function e2(e3) {
              if (this == null)
                throw TypeError();
              var t3 = String(this), r3 = t3.length, n2 = e3 ? Number(e3) : 0;
              if (n2 != n2 && (n2 = 0), !(n2 < 0 || r3 <= n2)) {
                var o2, i2 = t3.charCodeAt(n2);
                return 55296 <= i2 && i2 <= 56319 && n2 + 1 < r3 && 56320 <= (o2 = t3.charCodeAt(n2 + 1)) && o2 <= 57343 ? 1024 * (i2 - 55296) + o2 - 56320 + 65536 : i2;
              }
            }
            var t2;
            String.prototype.codePointAt || ((t2 = function() {
              try {
                var e3 = {}, t3 = Object.defineProperty, r3 = t3(e3, e3, e3) && t3;
              } catch (e4) {
              }
              return r3;
            }()) ? t2(String.prototype, "codePointAt", { value: e2, configurable: true, writable: true }) : String.prototype.codePointAt = e2);
            var l = 0, i = -3;
            function r2() {
              this.table = new Uint16Array(16), this.trans = new Uint16Array(288);
            }
            function a(e3, t3) {
              this.source = e3, this.sourceIndex = 0, this.tag = 0, this.bitcount = 0, this.dest = t3, this.destLen = 0, this.ltree = new r2(), this.dtree = new r2();
            }
            var s = new r2(), u = new r2(), c = new Uint8Array(30), d = new Uint16Array(30), f = new Uint8Array(30), h = new Uint16Array(30), p = new Uint8Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]), y = new r2(), m = new Uint8Array(320);
            function n(e3, t3, r3, n2) {
              var o2, i2;
              for (o2 = 0; o2 < r3; ++o2)
                e3[o2] = 0;
              for (o2 = 0; o2 < 30 - r3; ++o2)
                e3[o2 + r3] = o2 / r3 | 0;
              for (i2 = n2, o2 = 0; o2 < 30; ++o2)
                t3[o2] = i2, i2 += 1 << e3[o2];
            }
            var g = new Uint16Array(16);
            function v(e3, t3, r3, n2) {
              var o2, i2;
              for (o2 = 0; o2 < 16; ++o2)
                e3.table[o2] = 0;
              for (o2 = 0; o2 < n2; ++o2)
                e3.table[t3[r3 + o2]]++;
              for (o2 = i2 = e3.table[0] = 0; o2 < 16; ++o2)
                g[o2] = i2, i2 += e3.table[o2];
              for (o2 = 0; o2 < n2; ++o2)
                t3[r3 + o2] && (e3.trans[g[t3[r3 + o2]]++] = o2);
            }
            function b(e3) {
              e3.bitcount-- || (e3.tag = e3.source[e3.sourceIndex++], e3.bitcount = 7);
              var t3 = 1 & e3.tag;
              return e3.tag >>>= 1, t3;
            }
            function _(e3, t3, r3) {
              if (!t3)
                return r3;
              for (; e3.bitcount < 24; )
                e3.tag |= e3.source[e3.sourceIndex++] << e3.bitcount, e3.bitcount += 8;
              var n2 = e3.tag & 65535 >>> 16 - t3;
              return e3.tag >>>= t3, e3.bitcount -= t3, n2 + r3;
            }
            function x(e3, t3) {
              for (; e3.bitcount < 24; )
                e3.tag |= e3.source[e3.sourceIndex++] << e3.bitcount, e3.bitcount += 8;
              for (var r3 = 0, n2 = 0, o2 = 0, i2 = e3.tag; n2 = 2 * n2 + (1 & i2), i2 >>>= 1, ++o2, r3 += t3.table[o2], 0 <= (n2 -= t3.table[o2]); )
                ;
              return e3.tag = i2, e3.bitcount -= o2, t3.trans[r3 + n2];
            }
            function w(e3, t3, r3) {
              var n2, o2, i2, a2, s2, l2;
              for (n2 = _(e3, 5, 257), o2 = _(e3, 5, 1), i2 = _(e3, 4, 4), a2 = 0; a2 < 19; ++a2)
                m[a2] = 0;
              for (a2 = 0; a2 < i2; ++a2) {
                var u2 = _(e3, 3, 0);
                m[p[a2]] = u2;
              }
              for (v(y, m, 0, 19), s2 = 0; s2 < n2 + o2; ) {
                var c2 = x(e3, y);
                switch (c2) {
                  case 16:
                    var d2 = m[s2 - 1];
                    for (l2 = _(e3, 2, 3); l2; --l2)
                      m[s2++] = d2;
                    break;
                  case 17:
                    for (l2 = _(e3, 3, 3); l2; --l2)
                      m[s2++] = 0;
                    break;
                  case 18:
                    for (l2 = _(e3, 7, 11); l2; --l2)
                      m[s2++] = 0;
                    break;
                  default:
                    m[s2++] = c2;
                }
              }
              v(t3, m, 0, n2), v(r3, m, n2, o2);
            }
            function S(e3, t3, r3) {
              for (; ; ) {
                var n2, o2, i2, a2, s2 = x(e3, t3);
                if (s2 === 256)
                  return l;
                if (s2 < 256)
                  e3.dest[e3.destLen++] = s2;
                else
                  for (n2 = _(e3, c[s2 -= 257], d[s2]), o2 = x(e3, r3), a2 = i2 = e3.destLen - _(e3, f[o2], h[o2]); a2 < i2 + n2; ++a2)
                    e3.dest[e3.destLen++] = e3.dest[a2];
              }
            }
            function j(e3) {
              for (var t3, r3; 8 < e3.bitcount; )
                e3.sourceIndex--, e3.bitcount -= 8;
              if ((t3 = 256 * (t3 = e3.source[e3.sourceIndex + 1]) + e3.source[e3.sourceIndex]) !== (65535 & ~(256 * e3.source[e3.sourceIndex + 3] + e3.source[e3.sourceIndex + 2])))
                return i;
              for (e3.sourceIndex += 4, r3 = t3; r3; --r3)
                e3.dest[e3.destLen++] = e3.source[e3.sourceIndex++];
              return e3.bitcount = 0, l;
            }
            !function(e3, t3) {
              var r3;
              for (r3 = 0; r3 < 7; ++r3)
                e3.table[r3] = 0;
              for (e3.table[7] = 24, e3.table[8] = 152, e3.table[9] = 112, r3 = 0; r3 < 24; ++r3)
                e3.trans[r3] = 256 + r3;
              for (r3 = 0; r3 < 144; ++r3)
                e3.trans[24 + r3] = r3;
              for (r3 = 0; r3 < 8; ++r3)
                e3.trans[168 + r3] = 280 + r3;
              for (r3 = 0; r3 < 112; ++r3)
                e3.trans[176 + r3] = 144 + r3;
              for (r3 = 0; r3 < 5; ++r3)
                t3.table[r3] = 0;
              for (t3.table[5] = 32, r3 = 0; r3 < 32; ++r3)
                t3.trans[r3] = r3;
            }(s, u), n(c, d, 4, 3), n(f, h, 2, 1), c[28] = 0, d[28] = 258;
            var o = function(e3, t3) {
              var r3, n2, o2 = new a(e3, t3);
              do {
                switch (r3 = b(o2), _(o2, 2, 0)) {
                  case 0:
                    n2 = j(o2);
                    break;
                  case 1:
                    n2 = S(o2, s, u);
                    break;
                  case 2:
                    w(o2, o2.ltree, o2.dtree), n2 = S(o2, o2.ltree, o2.dtree);
                    break;
                  default:
                    n2 = i;
                }
                if (n2 !== l)
                  throw new Error("Data error");
              } while (!r3);
              return o2.destLen < o2.dest.length ? typeof o2.dest.slice == "function" ? o2.dest.slice(0, o2.destLen) : o2.dest.subarray(0, o2.destLen) : o2.dest;
            };
            function E(e3, t3, r3, n2, o2) {
              return Math.pow(1 - o2, 3) * e3 + 3 * Math.pow(1 - o2, 2) * o2 * t3 + 3 * (1 - o2) * Math.pow(o2, 2) * r3 + Math.pow(o2, 3) * n2;
            }
            function T() {
              this.x1 = Number.NaN, this.y1 = Number.NaN, this.x2 = Number.NaN, this.y2 = Number.NaN;
            }
            function D() {
              this.commands = [], this.fill = "black", this.stroke = null, this.strokeWidth = 1;
            }
            function O(e3) {
              throw new Error(e3);
            }
            function C(e3, t3) {
              e3 || O(t3);
            }
            T.prototype.isEmpty = function() {
              return isNaN(this.x1) || isNaN(this.y1) || isNaN(this.x2) || isNaN(this.y2);
            }, T.prototype.addPoint = function(e3, t3) {
              typeof e3 == "number" && ((isNaN(this.x1) || isNaN(this.x2)) && (this.x1 = e3, this.x2 = e3), e3 < this.x1 && (this.x1 = e3), e3 > this.x2 && (this.x2 = e3)), typeof t3 == "number" && ((isNaN(this.y1) || isNaN(this.y2)) && (this.y1 = t3, this.y2 = t3), t3 < this.y1 && (this.y1 = t3), t3 > this.y2 && (this.y2 = t3));
            }, T.prototype.addX = function(e3) {
              this.addPoint(e3, null);
            }, T.prototype.addY = function(e3) {
              this.addPoint(null, e3);
            }, T.prototype.addBezier = function(e3, t3, r3, n2, o2, i2, a2, s2) {
              var l2 = [e3, t3], u2 = [r3, n2], c2 = [o2, i2], d2 = [a2, s2];
              this.addPoint(e3, t3), this.addPoint(a2, s2);
              for (var f2 = 0; f2 <= 1; f2++) {
                var h2 = 6 * l2[f2] - 12 * u2[f2] + 6 * c2[f2], p2 = -3 * l2[f2] + 9 * u2[f2] - 9 * c2[f2] + 3 * d2[f2], y2 = 3 * u2[f2] - 3 * l2[f2];
                if (p2 != 0) {
                  var m2 = Math.pow(h2, 2) - 4 * y2 * p2;
                  if (!(m2 < 0)) {
                    var g2 = (-h2 + Math.sqrt(m2)) / (2 * p2);
                    0 < g2 && g2 < 1 && (f2 === 0 && this.addX(E(l2[f2], u2[f2], c2[f2], d2[f2], g2)), f2 === 1 && this.addY(E(l2[f2], u2[f2], c2[f2], d2[f2], g2)));
                    var v2 = (-h2 - Math.sqrt(m2)) / (2 * p2);
                    0 < v2 && v2 < 1 && (f2 === 0 && this.addX(E(l2[f2], u2[f2], c2[f2], d2[f2], v2)), f2 === 1 && this.addY(E(l2[f2], u2[f2], c2[f2], d2[f2], v2)));
                  }
                } else {
                  if (h2 == 0)
                    continue;
                  var b2 = -y2 / h2;
                  0 < b2 && b2 < 1 && (f2 === 0 && this.addX(E(l2[f2], u2[f2], c2[f2], d2[f2], b2)), f2 === 1 && this.addY(E(l2[f2], u2[f2], c2[f2], d2[f2], b2)));
                }
              }
            }, T.prototype.addQuad = function(e3, t3, r3, n2, o2, i2) {
              var a2 = e3 + 2 / 3 * (r3 - e3), s2 = t3 + 2 / 3 * (n2 - t3), l2 = a2 + 1 / 3 * (o2 - e3), u2 = s2 + 1 / 3 * (i2 - t3);
              this.addBezier(e3, t3, a2, s2, l2, u2, o2, i2);
            }, D.prototype.moveTo = function(e3, t3) {
              this.commands.push({ type: "M", x: e3, y: t3 });
            }, D.prototype.lineTo = function(e3, t3) {
              this.commands.push({ type: "L", x: e3, y: t3 });
            }, D.prototype.curveTo = D.prototype.bezierCurveTo = function(e3, t3, r3, n2, o2, i2) {
              this.commands.push({ type: "C", x1: e3, y1: t3, x2: r3, y2: n2, x: o2, y: i2 });
            }, D.prototype.quadTo = D.prototype.quadraticCurveTo = function(e3, t3, r3, n2) {
              this.commands.push({ type: "Q", x1: e3, y1: t3, x: r3, y: n2 });
            }, D.prototype.close = D.prototype.closePath = function() {
              this.commands.push({ type: "Z" });
            }, D.prototype.extend = function(e3) {
              if (e3.commands)
                e3 = e3.commands;
              else if (e3 instanceof T) {
                var t3 = e3;
                return this.moveTo(t3.x1, t3.y1), this.lineTo(t3.x2, t3.y1), this.lineTo(t3.x2, t3.y2), this.lineTo(t3.x1, t3.y2), void this.close();
              }
              Array.prototype.push.apply(this.commands, e3);
            }, D.prototype.getBoundingBox = function() {
              for (var e3 = new T(), t3 = 0, r3 = 0, n2 = 0, o2 = 0, i2 = 0; i2 < this.commands.length; i2++) {
                var a2 = this.commands[i2];
                switch (a2.type) {
                  case "M":
                    e3.addPoint(a2.x, a2.y), t3 = n2 = a2.x, r3 = o2 = a2.y;
                    break;
                  case "L":
                    e3.addPoint(a2.x, a2.y), n2 = a2.x, o2 = a2.y;
                    break;
                  case "Q":
                    e3.addQuad(n2, o2, a2.x1, a2.y1, a2.x, a2.y), n2 = a2.x, o2 = a2.y;
                    break;
                  case "C":
                    e3.addBezier(n2, o2, a2.x1, a2.y1, a2.x2, a2.y2, a2.x, a2.y), n2 = a2.x, o2 = a2.y;
                    break;
                  case "Z":
                    n2 = t3, o2 = r3;
                    break;
                  default:
                    throw new Error("Unexpected path command " + a2.type);
                }
              }
              return e3.isEmpty() && e3.addPoint(0, 0), e3;
            }, D.prototype.draw = function(e3) {
              e3.beginPath();
              for (var t3 = 0; t3 < this.commands.length; t3 += 1) {
                var r3 = this.commands[t3];
                r3.type === "M" ? e3.moveTo(r3.x, r3.y) : r3.type === "L" ? e3.lineTo(r3.x, r3.y) : r3.type === "C" ? e3.bezierCurveTo(r3.x1, r3.y1, r3.x2, r3.y2, r3.x, r3.y) : r3.type === "Q" ? e3.quadraticCurveTo(r3.x1, r3.y1, r3.x, r3.y) : r3.type === "Z" && e3.closePath();
              }
              this.fill && (e3.fillStyle = this.fill, e3.fill()), this.stroke && (e3.strokeStyle = this.stroke, e3.lineWidth = this.strokeWidth, e3.stroke());
            }, D.prototype.toPathData = function(i2) {
              function e3() {
                for (var e4, t4 = arguments, r4 = "", n3 = 0; n3 < arguments.length; n3 += 1) {
                  var o2 = t4[n3];
                  0 <= o2 && 0 < n3 && (r4 += " "), r4 += (e4 = o2, Math.round(e4) === e4 ? "" + Math.round(e4) : e4.toFixed(i2));
                }
                return r4;
              }
              i2 = i2 !== void 0 ? i2 : 2;
              for (var t3 = "", r3 = 0; r3 < this.commands.length; r3 += 1) {
                var n2 = this.commands[r3];
                n2.type === "M" ? t3 += "M" + e3(n2.x, n2.y) : n2.type === "L" ? t3 += "L" + e3(n2.x, n2.y) : n2.type === "C" ? t3 += "C" + e3(n2.x1, n2.y1, n2.x2, n2.y2, n2.x, n2.y) : n2.type === "Q" ? t3 += "Q" + e3(n2.x1, n2.y1, n2.x, n2.y) : n2.type === "Z" && (t3 += "Z");
              }
              return t3;
            }, D.prototype.toSVG = function(e3) {
              var t3 = '<path d="';
              return t3 += this.toPathData(e3), t3 += '"', this.fill && this.fill !== "black" && (this.fill === null ? t3 += ' fill="none"' : t3 += ' fill="' + this.fill + '"'), this.stroke && (t3 += ' stroke="' + this.stroke + '" stroke-width="' + this.strokeWidth + '"'), t3 += "/>";
            }, D.prototype.toDOMElement = function(e3) {
              var t3 = this.toPathData(e3), r3 = document.createElementNS("http://www.w3.org/2000/svg", "path");
              return r3.setAttribute("d", t3), r3;
            };
            var L = { fail: O, argument: C, assert: C }, P = {}, k = {}, A = {};
            function R(e3) {
              return function() {
                return e3;
              };
            }
            k.BYTE = function(e3) {
              return L.argument(0 <= e3 && e3 <= 255, "Byte value should be between 0 and 255."), [e3];
            }, A.BYTE = R(1), k.CHAR = function(e3) {
              return [e3.charCodeAt(0)];
            }, A.CHAR = R(1), k.CHARARRAY = function(e3) {
              for (var t3 = [], r3 = 0; r3 < e3.length; r3 += 1)
                t3[r3] = e3.charCodeAt(r3);
              return t3;
            }, A.CHARARRAY = function(e3) {
              return e3.length;
            }, k.USHORT = function(e3) {
              return [e3 >> 8 & 255, 255 & e3];
            }, A.USHORT = R(2), k.SHORT = function(e3) {
              return 32768 <= e3 && (e3 = -(65536 - e3)), [e3 >> 8 & 255, 255 & e3];
            }, A.SHORT = R(2), k.UINT24 = function(e3) {
              return [e3 >> 16 & 255, e3 >> 8 & 255, 255 & e3];
            }, A.UINT24 = R(3), k.ULONG = function(e3) {
              return [e3 >> 24 & 255, e3 >> 16 & 255, e3 >> 8 & 255, 255 & e3];
            }, A.ULONG = R(4), k.LONG = function(e3) {
              return 2147483648 <= e3 && (e3 = -(4294967296 - e3)), [e3 >> 24 & 255, e3 >> 16 & 255, e3 >> 8 & 255, 255 & e3];
            }, A.LONG = R(4), k.FIXED = k.ULONG, A.FIXED = A.ULONG, k.FWORD = k.SHORT, A.FWORD = A.SHORT, k.UFWORD = k.USHORT, A.UFWORD = A.USHORT, k.LONGDATETIME = function(e3) {
              return [0, 0, 0, 0, e3 >> 24 & 255, e3 >> 16 & 255, e3 >> 8 & 255, 255 & e3];
            }, A.LONGDATETIME = R(8), k.TAG = function(e3) {
              return L.argument(e3.length === 4, "Tag should be exactly 4 ASCII characters."), [e3.charCodeAt(0), e3.charCodeAt(1), e3.charCodeAt(2), e3.charCodeAt(3)];
            }, A.TAG = R(4), k.Card8 = k.BYTE, A.Card8 = A.BYTE, k.Card16 = k.USHORT, A.Card16 = A.USHORT, k.OffSize = k.BYTE, A.OffSize = A.BYTE, k.SID = k.USHORT, A.SID = A.USHORT, k.NUMBER = function(e3) {
              return -107 <= e3 && e3 <= 107 ? [e3 + 139] : 108 <= e3 && e3 <= 1131 ? [247 + ((e3 -= 108) >> 8), 255 & e3] : -1131 <= e3 && e3 <= -108 ? [251 + ((e3 = -e3 - 108) >> 8), 255 & e3] : -32768 <= e3 && e3 <= 32767 ? k.NUMBER16(e3) : k.NUMBER32(e3);
            }, A.NUMBER = function(e3) {
              return k.NUMBER(e3).length;
            }, k.NUMBER16 = function(e3) {
              return [28, e3 >> 8 & 255, 255 & e3];
            }, A.NUMBER16 = R(3), k.NUMBER32 = function(e3) {
              return [29, e3 >> 24 & 255, e3 >> 16 & 255, e3 >> 8 & 255, 255 & e3];
            }, A.NUMBER32 = R(5), k.REAL = function(e3) {
              var t3 = e3.toString(), r3 = /\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/.exec(t3);
              if (r3) {
                var n2 = parseFloat("1e" + ((r3[2] ? +r3[2] : 0) + r3[1].length));
                t3 = (Math.round(e3 * n2) / n2).toString();
              }
              for (var o2 = "", i2 = 0, a2 = t3.length; i2 < a2; i2 += 1) {
                var s2 = t3[i2];
                o2 += s2 === "e" ? t3[++i2] === "-" ? "c" : "b" : s2 === "." ? "a" : s2 === "-" ? "e" : s2;
              }
              for (var l2 = [30], u2 = 0, c2 = (o2 += 1 & o2.length ? "f" : "ff").length; u2 < c2; u2 += 2)
                l2.push(parseInt(o2.substr(u2, 2), 16));
              return l2;
            }, A.REAL = function(e3) {
              return k.REAL(e3).length;
            }, k.NAME = k.CHARARRAY, A.NAME = A.CHARARRAY, k.STRING = k.CHARARRAY, A.STRING = A.CHARARRAY, P.UTF8 = function(e3, t3, r3) {
              for (var n2 = [], o2 = r3, i2 = 0; i2 < o2; i2++, t3 += 1)
                n2[i2] = e3.getUint8(t3);
              return String.fromCharCode.apply(null, n2);
            }, P.UTF16 = function(e3, t3, r3) {
              for (var n2 = [], o2 = r3 / 2, i2 = 0; i2 < o2; i2++, t3 += 2)
                n2[i2] = e3.getUint16(t3);
              return String.fromCharCode.apply(null, n2);
            }, k.UTF16 = function(e3) {
              for (var t3 = [], r3 = 0; r3 < e3.length; r3 += 1) {
                var n2 = e3.charCodeAt(r3);
                t3[t3.length] = n2 >> 8 & 255, t3[t3.length] = 255 & n2;
              }
              return t3;
            }, A.UTF16 = function(e3) {
              return 2 * e3.length;
            };
            var I = { "x-mac-croatian": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\u0160\u2122\xB4\xA8\u2260\u017D\xD8\u221E\xB1\u2264\u2265\u2206\xB5\u2202\u2211\u220F\u0161\u222B\xAA\xBA\u03A9\u017E\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u0106\xAB\u010C\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u0110\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\uF8FF\xA9\u2044\u20AC\u2039\u203A\xC6\xBB\u2013\xB7\u201A\u201E\u2030\xC2\u0107\xC1\u010D\xC8\xCD\xCE\xCF\xCC\xD3\xD4\u0111\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u03C0\xCB\u02DA\xB8\xCA\xE6\u02C7", "x-mac-cyrillic": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\u0490\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u0491\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E", "x-mac-gaelic": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u1E02\xB1\u2264\u2265\u1E03\u010A\u010B\u1E0A\u1E0B\u1E1E\u1E1F\u0120\u0121\u1E40\xE6\xF8\u1E41\u1E56\u1E57\u027C\u0192\u017F\u1E60\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\u1E61\u1E9B\xFF\u0178\u1E6A\u20AC\u2039\u203A\u0176\u0177\u1E6B\xB7\u1EF2\u1EF3\u204A\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\u2663\xD2\xDA\xDB\xD9\u0131\xDD\xFD\u0174\u0175\u1E84\u1E85\u1E80\u1E81\u1E82\u1E83", "x-mac-greek": "\xC4\xB9\xB2\xC9\xB3\xD6\xDC\u0385\xE0\xE2\xE4\u0384\xA8\xE7\xE9\xE8\xEA\xEB\xA3\u2122\xEE\xEF\u2022\xBD\u2030\xF4\xF6\xA6\u20AC\xF9\xFB\xFC\u2020\u0393\u0394\u0398\u039B\u039E\u03A0\xDF\xAE\xA9\u03A3\u03AA\xA7\u2260\xB0\xB7\u0391\xB1\u2264\u2265\xA5\u0392\u0395\u0396\u0397\u0399\u039A\u039C\u03A6\u03AB\u03A8\u03A9\u03AC\u039D\xAC\u039F\u03A1\u2248\u03A4\xAB\xBB\u2026\xA0\u03A5\u03A7\u0386\u0388\u0153\u2013\u2015\u201C\u201D\u2018\u2019\xF7\u0389\u038A\u038C\u038E\u03AD\u03AE\u03AF\u03CC\u038F\u03CD\u03B1\u03B2\u03C8\u03B4\u03B5\u03C6\u03B3\u03B7\u03B9\u03BE\u03BA\u03BB\u03BC\u03BD\u03BF\u03C0\u03CE\u03C1\u03C3\u03C4\u03B8\u03C9\u03C2\u03C7\u03C5\u03B6\u03CA\u03CB\u0390\u03B0\xAD", "x-mac-icelandic": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\xDD\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u03A9\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\u20AC\xD0\xF0\xDE\xFE\xFD\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uF8FF\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7", "x-mac-inuit": "\u1403\u1404\u1405\u1406\u140A\u140B\u1431\u1432\u1433\u1434\u1438\u1439\u1449\u144E\u144F\u1450\u1451\u1455\u1456\u1466\u146D\u146E\u146F\u1470\u1472\u1473\u1483\u148B\u148C\u148D\u148E\u1490\u1491\xB0\u14A1\u14A5\u14A6\u2022\xB6\u14A7\xAE\xA9\u2122\u14A8\u14AA\u14AB\u14BB\u14C2\u14C3\u14C4\u14C5\u14C7\u14C8\u14D0\u14EF\u14F0\u14F1\u14F2\u14F4\u14F5\u1505\u14D5\u14D6\u14D7\u14D8\u14DA\u14DB\u14EA\u1528\u1529\u152A\u152B\u152D\u2026\xA0\u152E\u153E\u1555\u1556\u1557\u2013\u2014\u201C\u201D\u2018\u2019\u1558\u1559\u155A\u155D\u1546\u1547\u1548\u1549\u154B\u154C\u1550\u157F\u1580\u1581\u1582\u1583\u1584\u1585\u158F\u1590\u1591\u1592\u1593\u1594\u1595\u1671\u1672\u1673\u1674\u1675\u1676\u1596\u15A0\u15A1\u15A2\u15A3\u15A4\u15A5\u15A6\u157C\u0141\u0142", "x-mac-ce": "\xC4\u0100\u0101\xC9\u0104\xD6\xDC\xE1\u0105\u010C\xE4\u010D\u0106\u0107\xE9\u0179\u017A\u010E\xED\u010F\u0112\u0113\u0116\xF3\u0117\xF4\xF6\xF5\xFA\u011A\u011B\xFC\u2020\xB0\u0118\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\u0119\xA8\u2260\u0123\u012E\u012F\u012A\u2264\u2265\u012B\u0136\u2202\u2211\u0142\u013B\u013C\u013D\u013E\u0139\u013A\u0145\u0146\u0143\xAC\u221A\u0144\u0147\u2206\xAB\xBB\u2026\xA0\u0148\u0150\xD5\u0151\u014C\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\u014D\u0154\u0155\u0158\u2039\u203A\u0159\u0156\u0157\u0160\u201A\u201E\u0161\u015A\u015B\xC1\u0164\u0165\xCD\u017D\u017E\u016A\xD3\xD4\u016B\u016E\xDA\u016F\u0170\u0171\u0172\u0173\xDD\xFD\u0137\u017B\u0141\u017C\u0122\u02C7", macintosh: "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u03A9\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\u20AC\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uF8FF\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7", "x-mac-romanian": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\u0102\u0218\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u03A9\u0103\u0219\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\u20AC\u2039\u203A\u021A\u021B\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uF8FF\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7", "x-mac-turkish": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u03A9\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u011E\u011F\u0130\u0131\u015E\u015F\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uF8FF\xD2\xDA\xDB\xD9\uF8A0\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7" };
            P.MACSTRING = function(e3, t3, r3, n2) {
              var o2 = I[n2];
              if (o2 !== void 0) {
                for (var i2 = "", a2 = 0; a2 < r3; a2++) {
                  var s2 = e3.getUint8(t3 + a2);
                  i2 += s2 <= 127 ? String.fromCharCode(s2) : o2[127 & s2];
                }
                return i2;
              }
            };
            var U, N = typeof WeakMap == "function" && new WeakMap();
            function F(e3) {
              return -128 <= e3 && e3 <= 127;
            }
            function B(e3, t3, r3) {
              for (var n2 = 0, o2 = e3.length; t3 < o2 && n2 < 64 && e3[t3] === 0; )
                ++t3, ++n2;
              return r3.push(128 | n2 - 1), t3;
            }
            function G(e3, t3, r3) {
              for (var n2 = 0, o2 = e3.length, i2 = t3; i2 < o2 && n2 < 64; ) {
                var a2 = e3[i2];
                if (!F(a2))
                  break;
                if (a2 === 0 && i2 + 1 < o2 && e3[i2 + 1] === 0)
                  break;
                ++i2, ++n2;
              }
              r3.push(n2 - 1);
              for (var s2 = t3; s2 < i2; ++s2)
                r3.push(e3[s2] + 256 & 255);
              return i2;
            }
            function V(e3, t3, r3) {
              for (var n2 = 0, o2 = e3.length, i2 = t3; i2 < o2 && n2 < 64; ) {
                var a2 = e3[i2];
                if (a2 === 0)
                  break;
                if (F(a2) && i2 + 1 < o2 && F(e3[i2 + 1]))
                  break;
                ++i2, ++n2;
              }
              r3.push(64 | n2 - 1);
              for (var s2 = t3; s2 < i2; ++s2) {
                var l2 = e3[s2];
                r3.push(l2 + 65536 >> 8 & 255, l2 + 256 & 255);
              }
              return i2;
            }
            k.MACSTRING = function(e3, t3) {
              var r3 = function(e4) {
                if (!U)
                  for (var t4 in U = {}, I)
                    U[t4] = new String(t4);
                var r4 = U[e4];
                if (r4 !== void 0) {
                  if (N) {
                    var n3 = N.get(r4);
                    if (n3 !== void 0)
                      return n3;
                  }
                  var o3 = I[e4];
                  if (o3 !== void 0) {
                    for (var i3 = {}, a2 = 0; a2 < o3.length; a2++)
                      i3[o3.charCodeAt(a2)] = a2 + 128;
                    return N && N.set(r4, i3), i3;
                  }
                }
              }(t3);
              if (r3 !== void 0) {
                for (var n2 = [], o2 = 0; o2 < e3.length; o2++) {
                  var i2 = e3.charCodeAt(o2);
                  if (128 <= i2 && (i2 = r3[i2]) === void 0)
                    return;
                  n2[o2] = i2;
                }
                return n2;
              }
            }, A.MACSTRING = function(e3, t3) {
              var r3 = k.MACSTRING(e3, t3);
              return r3 !== void 0 ? r3.length : 0;
            }, k.VARDELTAS = function(e3) {
              for (var t3 = 0, r3 = []; t3 < e3.length; ) {
                var n2 = e3[t3];
                t3 = n2 === 0 ? B(e3, t3, r3) : -128 <= n2 && n2 <= 127 ? G(e3, t3, r3) : V(e3, t3, r3);
              }
              return r3;
            }, k.INDEX = function(e3) {
              for (var t3 = 1, r3 = [t3], n2 = [], o2 = 0; o2 < e3.length; o2 += 1) {
                var i2 = k.OBJECT(e3[o2]);
                Array.prototype.push.apply(n2, i2), t3 += i2.length, r3.push(t3);
              }
              if (n2.length === 0)
                return [0, 0];
              for (var a2 = [], s2 = 1 + Math.floor(Math.log(t3) / Math.log(2)) / 8 | 0, l2 = [void 0, k.BYTE, k.USHORT, k.UINT24, k.ULONG][s2], u2 = 0; u2 < r3.length; u2 += 1) {
                var c2 = l2(r3[u2]);
                Array.prototype.push.apply(a2, c2);
              }
              return Array.prototype.concat(k.Card16(e3.length), k.OffSize(s2), a2, n2);
            }, A.INDEX = function(e3) {
              return k.INDEX(e3).length;
            }, k.DICT = function(e3) {
              for (var t3 = [], r3 = Object.keys(e3), n2 = r3.length, o2 = 0; o2 < n2; o2 += 1) {
                var i2 = parseInt(r3[o2], 0), a2 = e3[i2];
                t3 = (t3 = t3.concat(k.OPERAND(a2.value, a2.type))).concat(k.OPERATOR(i2));
              }
              return t3;
            }, A.DICT = function(e3) {
              return k.DICT(e3).length;
            }, k.OPERATOR = function(e3) {
              return e3 < 1200 ? [e3] : [12, e3 - 1200];
            }, k.OPERAND = function(e3, t3) {
              var r3 = [];
              if (Array.isArray(t3))
                for (var n2 = 0; n2 < t3.length; n2 += 1)
                  L.argument(e3.length === t3.length, "Not enough arguments given for type" + t3), r3 = r3.concat(k.OPERAND(e3[n2], t3[n2]));
              else if (t3 === "SID")
                r3 = r3.concat(k.NUMBER(e3));
              else if (t3 === "offset")
                r3 = r3.concat(k.NUMBER32(e3));
              else if (t3 === "number")
                r3 = r3.concat(k.NUMBER(e3));
              else {
                if (t3 !== "real")
                  throw new Error("Unknown operand type " + t3);
                r3 = r3.concat(k.REAL(e3));
              }
              return r3;
            }, k.OP = k.BYTE, A.OP = A.BYTE;
            var z = typeof WeakMap == "function" && new WeakMap();
            function H(e3, t3, r3) {
              for (var n2 = 0; n2 < t3.length; n2 += 1) {
                var o2 = t3[n2];
                this[o2.name] = o2.value;
              }
              if (this.tableName = e3, this.fields = t3, r3)
                for (var i2 = Object.keys(r3), a2 = 0; a2 < i2.length; a2 += 1) {
                  var s2 = i2[a2], l2 = r3[s2];
                  this[s2] !== void 0 && (this[s2] = l2);
                }
            }
            function W(e3, t3, r3) {
              r3 === void 0 && (r3 = t3.length);
              var n2 = new Array(t3.length + 1);
              n2[0] = { name: e3 + "Count", type: "USHORT", value: r3 };
              for (var o2 = 0; o2 < t3.length; o2++)
                n2[o2 + 1] = { name: e3 + o2, type: "USHORT", value: t3[o2] };
              return n2;
            }
            function q(e3, t3, r3) {
              var n2 = t3.length, o2 = new Array(n2 + 1);
              o2[0] = { name: e3 + "Count", type: "USHORT", value: n2 };
              for (var i2 = 0; i2 < n2; i2++)
                o2[i2 + 1] = { name: e3 + i2, type: "TABLE", value: r3(t3[i2], i2) };
              return o2;
            }
            function X(e3, t3, r3) {
              var n2 = t3.length, o2 = [];
              o2[0] = { name: e3 + "Count", type: "USHORT", value: n2 };
              for (var i2 = 0; i2 < n2; i2++)
                o2 = o2.concat(r3(t3[i2], i2));
              return o2;
            }
            function Y(e3) {
              e3.format === 1 ? H.call(this, "coverageTable", [{ name: "coverageFormat", type: "USHORT", value: 1 }].concat(W("glyph", e3.glyphs))) : L.assert(false, "Can't create coverage table format 2 yet.");
            }
            function Z(e3) {
              H.call(this, "scriptListTable", X("scriptRecord", e3, function(e4, t3) {
                var r3 = e4.script, n2 = r3.defaultLangSys;
                return L.assert(!!n2, "Unable to write GSUB: script " + e4.tag + " has no default language system."), [{ name: "scriptTag" + t3, type: "TAG", value: e4.tag }, { name: "script" + t3, type: "TABLE", value: new H("scriptTable", [{ name: "defaultLangSys", type: "TABLE", value: new H("defaultLangSys", [{ name: "lookupOrder", type: "USHORT", value: 0 }, { name: "reqFeatureIndex", type: "USHORT", value: n2.reqFeatureIndex }].concat(W("featureIndex", n2.featureIndexes))) }].concat(X("langSys", r3.langSysRecords, function(e5, t4) {
                  var r4 = e5.langSys;
                  return [{ name: "langSysTag" + t4, type: "TAG", value: e5.tag }, { name: "langSys" + t4, type: "TABLE", value: new H("langSys", [{ name: "lookupOrder", type: "USHORT", value: 0 }, { name: "reqFeatureIndex", type: "USHORT", value: r4.reqFeatureIndex }].concat(W("featureIndex", r4.featureIndexes))) }];
                }))) }];
              }));
            }
            function Q(e3) {
              H.call(this, "featureListTable", X("featureRecord", e3, function(e4, t3) {
                var r3 = e4.feature;
                return [{ name: "featureTag" + t3, type: "TAG", value: e4.tag }, { name: "feature" + t3, type: "TABLE", value: new H("featureTable", [{ name: "featureParams", type: "USHORT", value: r3.featureParams }].concat(W("lookupListIndex", r3.lookupListIndexes))) }];
              }));
            }
            function K(e3, r3) {
              H.call(this, "lookupListTable", q("lookup", e3, function(e4) {
                var t3 = r3[e4.lookupType];
                return L.assert(!!t3, "Unable to write GSUB lookup type " + e4.lookupType + " tables."), new H("lookupTable", [{ name: "lookupType", type: "USHORT", value: e4.lookupType }, { name: "lookupFlag", type: "USHORT", value: e4.lookupFlag }].concat(q("subtable", e4.subtables, t3)));
              }));
            }
            k.CHARSTRING = function(e3) {
              if (z) {
                var t3 = z.get(e3);
                if (t3 !== void 0)
                  return t3;
              }
              for (var r3 = [], n2 = e3.length, o2 = 0; o2 < n2; o2 += 1) {
                var i2 = e3[o2];
                r3 = r3.concat(k[i2.type](i2.value));
              }
              return z && z.set(e3, r3), r3;
            }, A.CHARSTRING = function(e3) {
              return k.CHARSTRING(e3).length;
            }, k.OBJECT = function(e3) {
              var t3 = k[e3.type];
              return L.argument(t3 !== void 0, "No encoding function for type " + e3.type), t3(e3.value);
            }, A.OBJECT = function(e3) {
              var t3 = A[e3.type];
              return L.argument(t3 !== void 0, "No sizeOf function for type " + e3.type), t3(e3.value);
            }, k.TABLE = function(e3) {
              for (var t3 = [], r3 = e3.fields.length, n2 = [], o2 = [], i2 = 0; i2 < r3; i2 += 1) {
                var a2 = e3.fields[i2], s2 = k[a2.type];
                L.argument(s2 !== void 0, "No encoding function for field type " + a2.type + " (" + a2.name + ")");
                var l2 = e3[a2.name];
                l2 === void 0 && (l2 = a2.value);
                var u2 = s2(l2);
                a2.type === "TABLE" ? (o2.push(t3.length), t3 = t3.concat([0, 0]), n2.push(u2)) : t3 = t3.concat(u2);
              }
              for (var c2 = 0; c2 < n2.length; c2 += 1) {
                var d2 = o2[c2], f2 = t3.length;
                L.argument(f2 < 65536, "Table " + e3.tableName + " too big."), t3[d2] = f2 >> 8, t3[d2 + 1] = 255 & f2, t3 = t3.concat(n2[c2]);
              }
              return t3;
            }, A.TABLE = function(e3) {
              for (var t3 = 0, r3 = e3.fields.length, n2 = 0; n2 < r3; n2 += 1) {
                var o2 = e3.fields[n2], i2 = A[o2.type];
                L.argument(i2 !== void 0, "No sizeOf function for field type " + o2.type + " (" + o2.name + ")");
                var a2 = e3[o2.name];
                a2 === void 0 && (a2 = o2.value), t3 += i2(a2), o2.type === "TABLE" && (t3 += 2);
              }
              return t3;
            }, k.RECORD = k.TABLE, A.RECORD = A.TABLE, k.LITERAL = function(e3) {
              return e3;
            }, A.LITERAL = function(e3) {
              return e3.length;
            }, H.prototype.encode = function() {
              return k.TABLE(this);
            }, H.prototype.sizeOf = function() {
              return A.TABLE(this);
            };
            var J = { Table: H, Record: H, Coverage: (Y.prototype = Object.create(H.prototype)).constructor = Y, ScriptList: (Z.prototype = Object.create(H.prototype)).constructor = Z, FeatureList: (Q.prototype = Object.create(H.prototype)).constructor = Q, LookupList: (K.prototype = Object.create(H.prototype)).constructor = K, ushortList: W, tableList: q, recordList: X };
            function $(e3, t3) {
              return e3.getUint8(t3);
            }
            function ee(e3, t3) {
              return e3.getUint16(t3, false);
            }
            function te(e3, t3) {
              return e3.getUint32(t3, false);
            }
            function re(e3, t3) {
              return e3.getInt16(t3, false) + e3.getUint16(t3 + 2, false) / 65535;
            }
            var ne = { byte: 1, uShort: 2, short: 2, uLong: 4, fixed: 4, longDateTime: 8, tag: 4 };
            function oe(e3, t3) {
              this.data = e3, this.offset = t3, this.relativeOffset = 0;
            }
            oe.prototype.parseByte = function() {
              var e3 = this.data.getUint8(this.offset + this.relativeOffset);
              return this.relativeOffset += 1, e3;
            }, oe.prototype.parseChar = function() {
              var e3 = this.data.getInt8(this.offset + this.relativeOffset);
              return this.relativeOffset += 1, e3;
            }, oe.prototype.parseCard8 = oe.prototype.parseByte, oe.prototype.parseCard16 = oe.prototype.parseUShort = function() {
              var e3 = this.data.getUint16(this.offset + this.relativeOffset);
              return this.relativeOffset += 2, e3;
            }, oe.prototype.parseSID = oe.prototype.parseUShort, oe.prototype.parseOffset16 = oe.prototype.parseUShort, oe.prototype.parseShort = function() {
              var e3 = this.data.getInt16(this.offset + this.relativeOffset);
              return this.relativeOffset += 2, e3;
            }, oe.prototype.parseF2Dot14 = function() {
              var e3 = this.data.getInt16(this.offset + this.relativeOffset) / 16384;
              return this.relativeOffset += 2, e3;
            }, oe.prototype.parseOffset32 = oe.prototype.parseULong = function() {
              var e3 = te(this.data, this.offset + this.relativeOffset);
              return this.relativeOffset += 4, e3;
            }, oe.prototype.parseFixed = function() {
              var e3 = re(this.data, this.offset + this.relativeOffset);
              return this.relativeOffset += 4, e3;
            }, oe.prototype.parseString = function(e3) {
              var t3 = this.data, r3 = this.offset + this.relativeOffset, n2 = "";
              this.relativeOffset += e3;
              for (var o2 = 0; o2 < e3; o2++)
                n2 += String.fromCharCode(t3.getUint8(r3 + o2));
              return n2;
            }, oe.prototype.parseTag = function() {
              return this.parseString(4);
            }, oe.prototype.parseLongDateTime = function() {
              var e3 = te(this.data, this.offset + this.relativeOffset + 4);
              return e3 -= 2082844800, this.relativeOffset += 8, e3;
            }, oe.prototype.parseVersion = function(e3) {
              var t3 = ee(this.data, this.offset + this.relativeOffset), r3 = ee(this.data, this.offset + this.relativeOffset + 2);
              return this.relativeOffset += 4, e3 === void 0 && (e3 = 4096), t3 + r3 / e3 / 10;
            }, oe.prototype.skip = function(e3, t3) {
              t3 === void 0 && (t3 = 1), this.relativeOffset += ne[e3] * t3;
            }, oe.prototype.parseULongList = function(e3) {
              e3 === void 0 && (e3 = this.parseULong());
              for (var t3 = new Array(e3), r3 = this.data, n2 = this.offset + this.relativeOffset, o2 = 0; o2 < e3; o2++)
                t3[o2] = r3.getUint32(n2), n2 += 4;
              return this.relativeOffset += 4 * e3, t3;
            }, oe.prototype.parseOffset16List = oe.prototype.parseUShortList = function(e3) {
              e3 === void 0 && (e3 = this.parseUShort());
              for (var t3 = new Array(e3), r3 = this.data, n2 = this.offset + this.relativeOffset, o2 = 0; o2 < e3; o2++)
                t3[o2] = r3.getUint16(n2), n2 += 2;
              return this.relativeOffset += 2 * e3, t3;
            }, oe.prototype.parseShortList = function(e3) {
              for (var t3 = new Array(e3), r3 = this.data, n2 = this.offset + this.relativeOffset, o2 = 0; o2 < e3; o2++)
                t3[o2] = r3.getInt16(n2), n2 += 2;
              return this.relativeOffset += 2 * e3, t3;
            }, oe.prototype.parseByteList = function(e3) {
              for (var t3 = new Array(e3), r3 = this.data, n2 = this.offset + this.relativeOffset, o2 = 0; o2 < e3; o2++)
                t3[o2] = r3.getUint8(n2++);
              return this.relativeOffset += e3, t3;
            }, oe.prototype.parseList = function(e3, t3) {
              t3 || (t3 = e3, e3 = this.parseUShort());
              for (var r3 = new Array(e3), n2 = 0; n2 < e3; n2++)
                r3[n2] = t3.call(this);
              return r3;
            }, oe.prototype.parseList32 = function(e3, t3) {
              t3 || (t3 = e3, e3 = this.parseULong());
              for (var r3 = new Array(e3), n2 = 0; n2 < e3; n2++)
                r3[n2] = t3.call(this);
              return r3;
            }, oe.prototype.parseRecordList = function(e3, t3) {
              t3 || (t3 = e3, e3 = this.parseUShort());
              for (var r3 = new Array(e3), n2 = Object.keys(t3), o2 = 0; o2 < e3; o2++) {
                for (var i2 = {}, a2 = 0; a2 < n2.length; a2++) {
                  var s2 = n2[a2], l2 = t3[s2];
                  i2[s2] = l2.call(this);
                }
                r3[o2] = i2;
              }
              return r3;
            }, oe.prototype.parseRecordList32 = function(e3, t3) {
              t3 || (t3 = e3, e3 = this.parseULong());
              for (var r3 = new Array(e3), n2 = Object.keys(t3), o2 = 0; o2 < e3; o2++) {
                for (var i2 = {}, a2 = 0; a2 < n2.length; a2++) {
                  var s2 = n2[a2], l2 = t3[s2];
                  i2[s2] = l2.call(this);
                }
                r3[o2] = i2;
              }
              return r3;
            }, oe.prototype.parseStruct = function(e3) {
              if (typeof e3 == "function")
                return e3.call(this);
              for (var t3 = Object.keys(e3), r3 = {}, n2 = 0; n2 < t3.length; n2++) {
                var o2 = t3[n2], i2 = e3[o2];
                r3[o2] = i2.call(this);
              }
              return r3;
            }, oe.prototype.parseValueRecord = function(e3) {
              if (e3 === void 0 && (e3 = this.parseUShort()), e3 !== 0) {
                var t3 = {};
                return 1 & e3 && (t3.xPlacement = this.parseShort()), 2 & e3 && (t3.yPlacement = this.parseShort()), 4 & e3 && (t3.xAdvance = this.parseShort()), 8 & e3 && (t3.yAdvance = this.parseShort()), 16 & e3 && (t3.xPlaDevice = void 0, this.parseShort()), 32 & e3 && (t3.yPlaDevice = void 0, this.parseShort()), 64 & e3 && (t3.xAdvDevice = void 0, this.parseShort()), 128 & e3 && (t3.yAdvDevice = void 0, this.parseShort()), t3;
              }
            }, oe.prototype.parseValueRecordList = function() {
              for (var e3 = this.parseUShort(), t3 = this.parseUShort(), r3 = new Array(t3), n2 = 0; n2 < t3; n2++)
                r3[n2] = this.parseValueRecord(e3);
              return r3;
            }, oe.prototype.parsePointer = function(e3) {
              var t3 = this.parseOffset16();
              if (0 < t3)
                return new oe(this.data, this.offset + t3).parseStruct(e3);
            }, oe.prototype.parsePointer32 = function(e3) {
              var t3 = this.parseOffset32();
              if (0 < t3)
                return new oe(this.data, this.offset + t3).parseStruct(e3);
            }, oe.prototype.parseListOfLists = function(e3) {
              for (var t3 = this.parseOffset16List(), r3 = t3.length, n2 = this.relativeOffset, o2 = new Array(r3), i2 = 0; i2 < r3; i2++) {
                var a2 = t3[i2];
                if (a2 !== 0)
                  if (this.relativeOffset = a2, e3) {
                    for (var s2 = this.parseOffset16List(), l2 = new Array(s2.length), u2 = 0; u2 < s2.length; u2++)
                      this.relativeOffset = a2 + s2[u2], l2[u2] = e3.call(this);
                    o2[i2] = l2;
                  } else
                    o2[i2] = this.parseUShortList();
                else
                  o2[i2] = void 0;
              }
              return this.relativeOffset = n2, o2;
            }, oe.prototype.parseCoverage = function() {
              var e3 = this.offset + this.relativeOffset, t3 = this.parseUShort(), r3 = this.parseUShort();
              if (t3 === 1)
                return { format: 1, glyphs: this.parseUShortList(r3) };
              if (t3 !== 2)
                throw new Error("0x" + e3.toString(16) + ": Coverage format must be 1 or 2.");
              for (var n2 = new Array(r3), o2 = 0; o2 < r3; o2++)
                n2[o2] = { start: this.parseUShort(), end: this.parseUShort(), index: this.parseUShort() };
              return { format: 2, ranges: n2 };
            }, oe.prototype.parseClassDef = function() {
              var e3 = this.offset + this.relativeOffset, t3 = this.parseUShort();
              if (t3 === 1)
                return { format: 1, startGlyph: this.parseUShort(), classes: this.parseUShortList() };
              if (t3 === 2)
                return { format: 2, ranges: this.parseRecordList({ start: oe.uShort, end: oe.uShort, classId: oe.uShort }) };
              throw new Error("0x" + e3.toString(16) + ": ClassDef format must be 1 or 2.");
            }, oe.list = function(e3, t3) {
              return function() {
                return this.parseList(e3, t3);
              };
            }, oe.list32 = function(e3, t3) {
              return function() {
                return this.parseList32(e3, t3);
              };
            }, oe.recordList = function(e3, t3) {
              return function() {
                return this.parseRecordList(e3, t3);
              };
            }, oe.recordList32 = function(e3, t3) {
              return function() {
                return this.parseRecordList32(e3, t3);
              };
            }, oe.pointer = function(e3) {
              return function() {
                return this.parsePointer(e3);
              };
            }, oe.pointer32 = function(e3) {
              return function() {
                return this.parsePointer32(e3);
              };
            }, oe.tag = oe.prototype.parseTag, oe.byte = oe.prototype.parseByte, oe.uShort = oe.offset16 = oe.prototype.parseUShort, oe.uShortList = oe.prototype.parseUShortList, oe.uLong = oe.offset32 = oe.prototype.parseULong, oe.uLongList = oe.prototype.parseULongList, oe.struct = oe.prototype.parseStruct, oe.coverage = oe.prototype.parseCoverage, oe.classDef = oe.prototype.parseClassDef;
            var ie = { reserved: oe.uShort, reqFeatureIndex: oe.uShort, featureIndexes: oe.uShortList };
            oe.prototype.parseScriptList = function() {
              return this.parsePointer(oe.recordList({ tag: oe.tag, script: oe.pointer({ defaultLangSys: oe.pointer(ie), langSysRecords: oe.recordList({ tag: oe.tag, langSys: oe.pointer(ie) }) }) })) || [];
            }, oe.prototype.parseFeatureList = function() {
              return this.parsePointer(oe.recordList({ tag: oe.tag, feature: oe.pointer({ featureParams: oe.offset16, lookupListIndexes: oe.uShortList }) })) || [];
            }, oe.prototype.parseLookupList = function(n2) {
              return this.parsePointer(oe.list(oe.pointer(function() {
                var e3 = this.parseUShort();
                L.argument(1 <= e3 && e3 <= 9, "GPOS/GSUB lookup type " + e3 + " unknown.");
                var t3 = this.parseUShort(), r3 = 16 & t3;
                return { lookupType: e3, lookupFlag: t3, subtables: this.parseList(oe.pointer(n2[e3])), markFilteringSet: r3 ? this.parseUShort() : void 0 };
              }))) || [];
            }, oe.prototype.parseFeatureVariationsList = function() {
              return this.parsePointer32(function() {
                var e3 = this.parseUShort(), t3 = this.parseUShort();
                return L.argument(e3 === 1 && t3 < 1, "GPOS/GSUB feature variations table unknown."), this.parseRecordList32({ conditionSetOffset: oe.offset32, featureTableSubstitutionOffset: oe.offset32 });
              }) || [];
            };
            var ae = { getByte: $, getCard8: $, getUShort: ee, getCard16: ee, getShort: function(e3, t3) {
              return e3.getInt16(t3, false);
            }, getULong: te, getFixed: re, getTag: function(e3, t3) {
              for (var r3 = "", n2 = t3; n2 < t3 + 4; n2 += 1)
                r3 += String.fromCharCode(e3.getInt8(n2));
              return r3;
            }, getOffset: function(e3, t3, r3) {
              for (var n2 = 0, o2 = 0; o2 < r3; o2 += 1)
                n2 <<= 8, n2 += e3.getUint8(t3 + o2);
              return n2;
            }, getBytes: function(e3, t3, r3) {
              for (var n2 = [], o2 = t3; o2 < r3; o2 += 1)
                n2.push(e3.getUint8(o2));
              return n2;
            }, bytesToString: function(e3) {
              for (var t3 = "", r3 = 0; r3 < e3.length; r3 += 1)
                t3 += String.fromCharCode(e3[r3]);
              return t3;
            }, Parser: oe };
            var se = { parse: function(e3, t3) {
              var r3 = {};
              r3.version = ae.getUShort(e3, t3), L.argument(r3.version === 0, "cmap table version should be 0."), r3.numTables = ae.getUShort(e3, t3 + 2);
              for (var n2 = -1, o2 = r3.numTables - 1; 0 <= o2; --o2) {
                var i2 = ae.getUShort(e3, t3 + 4 + 8 * o2), a2 = ae.getUShort(e3, t3 + 4 + 8 * o2 + 2);
                if (i2 === 3 && (a2 === 0 || a2 === 1 || a2 === 10) || i2 === 0 && (a2 === 0 || a2 === 1 || a2 === 2 || a2 === 3 || a2 === 4)) {
                  n2 = ae.getULong(e3, t3 + 4 + 8 * o2 + 4);
                  break;
                }
              }
              if (n2 === -1)
                throw new Error("No valid cmap sub-tables found.");
              var s2 = new ae.Parser(e3, t3 + n2);
              if (r3.format = s2.parseUShort(), r3.format === 12)
                !function(e4, t4) {
                  var r4;
                  t4.parseUShort(), e4.length = t4.parseULong(), e4.language = t4.parseULong(), e4.groupCount = r4 = t4.parseULong(), e4.glyphIndexMap = {};
                  for (var n3 = 0; n3 < r4; n3 += 1)
                    for (var o3 = t4.parseULong(), i3 = t4.parseULong(), a3 = t4.parseULong(), s3 = o3; s3 <= i3; s3 += 1)
                      e4.glyphIndexMap[s3] = a3, a3++;
                }(r3, s2);
              else {
                if (r3.format !== 4)
                  throw new Error("Only format 4 and 12 cmap tables are supported (found format " + r3.format + ").");
                !function(e4, t4, r4, n3, o3) {
                  var i3;
                  e4.length = t4.parseUShort(), e4.language = t4.parseUShort(), e4.segCount = i3 = t4.parseUShort() >> 1, t4.skip("uShort", 3), e4.glyphIndexMap = {};
                  for (var a3 = new ae.Parser(r4, n3 + o3 + 14), s3 = new ae.Parser(r4, n3 + o3 + 16 + 2 * i3), l2 = new ae.Parser(r4, n3 + o3 + 16 + 4 * i3), u2 = new ae.Parser(r4, n3 + o3 + 16 + 6 * i3), c2 = n3 + o3 + 16 + 8 * i3, d2 = 0; d2 < i3 - 1; d2 += 1)
                    for (var f2 = void 0, h2 = a3.parseUShort(), p2 = s3.parseUShort(), y2 = l2.parseShort(), m2 = u2.parseUShort(), g2 = p2; g2 <= h2; g2 += 1)
                      m2 !== 0 ? (c2 = u2.offset + u2.relativeOffset - 2, c2 += m2, c2 += 2 * (g2 - p2), (f2 = ae.getUShort(r4, c2)) !== 0 && (f2 = f2 + y2 & 65535)) : f2 = g2 + y2 & 65535, e4.glyphIndexMap[g2] = f2;
                }(r3, s2, e3, t3, n2);
              }
              return r3;
            }, make: function(e3) {
              var t3, r3 = true;
              for (t3 = e3.length - 1; 0 < t3; --t3) {
                if (65535 < e3.get(t3).unicode) {
                  console.log("Adding CMAP format 12 (needed!)"), r3 = false;
                  break;
                }
              }
              var n2 = [{ name: "version", type: "USHORT", value: 0 }, { name: "numTables", type: "USHORT", value: r3 ? 1 : 2 }, { name: "platformID", type: "USHORT", value: 3 }, { name: "encodingID", type: "USHORT", value: 1 }, { name: "offset", type: "ULONG", value: r3 ? 12 : 20 }];
              r3 || (n2 = n2.concat([{ name: "cmap12PlatformID", type: "USHORT", value: 3 }, { name: "cmap12EncodingID", type: "USHORT", value: 10 }, { name: "cmap12Offset", type: "ULONG", value: 0 }])), n2 = n2.concat([{ name: "format", type: "USHORT", value: 4 }, { name: "cmap4Length", type: "USHORT", value: 0 }, { name: "language", type: "USHORT", value: 0 }, { name: "segCountX2", type: "USHORT", value: 0 }, { name: "searchRange", type: "USHORT", value: 0 }, { name: "entrySelector", type: "USHORT", value: 0 }, { name: "rangeShift", type: "USHORT", value: 0 }]);
              var o2, i2, a2, s2 = new J.Table("cmap", n2);
              for (s2.segments = [], t3 = 0; t3 < e3.length; t3 += 1) {
                for (var l2 = e3.get(t3), u2 = 0; u2 < l2.unicodes.length; u2 += 1)
                  o2 = s2, i2 = l2.unicodes[u2], a2 = t3, o2.segments.push({ end: i2, start: i2, delta: -(i2 - a2), offset: 0, glyphIndex: a2 });
                s2.segments = s2.segments.sort(function(e4, t4) {
                  return e4.start - t4.start;
                });
              }
              s2.segments.push({ end: 65535, start: 65535, delta: 1, offset: 0 });
              var c2 = s2.segments.length, d2 = 0, f2 = [], h2 = [], p2 = [], y2 = [], m2 = [], g2 = [];
              for (t3 = 0; t3 < c2; t3 += 1) {
                var v2 = s2.segments[t3];
                v2.end <= 65535 && v2.start <= 65535 ? (f2 = f2.concat({ name: "end_" + t3, type: "USHORT", value: v2.end }), h2 = h2.concat({ name: "start_" + t3, type: "USHORT", value: v2.start }), p2 = p2.concat({ name: "idDelta_" + t3, type: "SHORT", value: v2.delta }), y2 = y2.concat({ name: "idRangeOffset_" + t3, type: "USHORT", value: v2.offset }), v2.glyphId !== void 0 && (m2 = m2.concat({ name: "glyph_" + t3, type: "USHORT", value: v2.glyphId }))) : d2 += 1, r3 || v2.glyphIndex === void 0 || (g2 = (g2 = (g2 = g2.concat({ name: "cmap12Start_" + t3, type: "ULONG", value: v2.start })).concat({ name: "cmap12End_" + t3, type: "ULONG", value: v2.end })).concat({ name: "cmap12Glyph_" + t3, type: "ULONG", value: v2.glyphIndex }));
              }
              if (s2.segCountX2 = 2 * (c2 - d2), s2.searchRange = 2 * Math.pow(2, Math.floor(Math.log(c2 - d2) / Math.log(2))), s2.entrySelector = Math.log(s2.searchRange / 2) / Math.log(2), s2.rangeShift = s2.segCountX2 - s2.searchRange, s2.fields = s2.fields.concat(f2), s2.fields.push({ name: "reservedPad", type: "USHORT", value: 0 }), s2.fields = s2.fields.concat(h2), s2.fields = s2.fields.concat(p2), s2.fields = s2.fields.concat(y2), s2.fields = s2.fields.concat(m2), s2.cmap4Length = 14 + 2 * f2.length + 2 + 2 * h2.length + 2 * p2.length + 2 * y2.length + 2 * m2.length, !r3) {
                var b2 = 16 + 4 * g2.length;
                s2.cmap12Offset = 20 + s2.cmap4Length, s2.fields = s2.fields.concat([{ name: "cmap12Format", type: "USHORT", value: 12 }, { name: "cmap12Reserved", type: "USHORT", value: 0 }, { name: "cmap12Length", type: "ULONG", value: b2 }, { name: "cmap12Language", type: "ULONG", value: 0 }, { name: "cmap12nGroups", type: "ULONG", value: g2.length / 3 }]), s2.fields = s2.fields.concat(g2);
              }
              return s2;
            } }, le = [".notdef", "space", "exclam", "quotedbl", "numbersign", "dollar", "percent", "ampersand", "quoteright", "parenleft", "parenright", "asterisk", "plus", "comma", "hyphen", "period", "slash", "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "colon", "semicolon", "less", "equal", "greater", "question", "at", "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", "bracketleft", "backslash", "bracketright", "asciicircum", "underscore", "quoteleft", "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", "braceleft", "bar", "braceright", "asciitilde", "exclamdown", "cent", "sterling", "fraction", "yen", "florin", "section", "currency", "quotesingle", "quotedblleft", "guillemotleft", "guilsinglleft", "guilsinglright", "fi", "fl", "endash", "dagger", "daggerdbl", "periodcentered", "paragraph", "bullet", "quotesinglbase", "quotedblbase", "quotedblright", "guillemotright", "ellipsis", "perthousand", "questiondown", "grave", "acute", "circumflex", "tilde", "macron", "breve", "dotaccent", "dieresis", "ring", "cedilla", "hungarumlaut", "ogonek", "caron", "emdash", "AE", "ordfeminine", "Lslash", "Oslash", "OE", "ordmasculine", "ae", "dotlessi", "lslash", "oslash", "oe", "germandbls", "onesuperior", "logicalnot", "mu", "trademark", "Eth", "onehalf", "plusminus", "Thorn", "onequarter", "divide", "brokenbar", "degree", "thorn", "threequarters", "twosuperior", "registered", "minus", "eth", "multiply", "threesuperior", "copyright", "Aacute", "Acircumflex", "Adieresis", "Agrave", "Aring", "Atilde", "Ccedilla", "Eacute", "Ecircumflex", "Edieresis", "Egrave", "Iacute", "Icircumflex", "Idieresis", "Igrave", "Ntilde", "Oacute", "Ocircumflex", "Odieresis", "Ograve", "Otilde", "Scaron", "Uacute", "Ucircumflex", "Udieresis", "Ugrave", "Yacute", "Ydieresis", "Zcaron", "aacute", "acircumflex", "adieresis", "agrave", "aring", "atilde", "ccedilla", "eacute", "ecircumflex", "edieresis", "egrave", "iacute", "icircumflex", "idieresis", "igrave", "ntilde", "oacute", "ocircumflex", "odieresis", "ograve", "otilde", "scaron", "uacute", "ucircumflex", "udieresis", "ugrave", "yacute", "ydieresis", "zcaron", "exclamsmall", "Hungarumlautsmall", "dollaroldstyle", "dollarsuperior", "ampersandsmall", "Acutesmall", "parenleftsuperior", "parenrightsuperior", "266 ff", "onedotenleader", "zerooldstyle", "oneoldstyle", "twooldstyle", "threeoldstyle", "fouroldstyle", "fiveoldstyle", "sixoldstyle", "sevenoldstyle", "eightoldstyle", "nineoldstyle", "commasuperior", "threequartersemdash", "periodsuperior", "questionsmall", "asuperior", "bsuperior", "centsuperior", "dsuperior", "esuperior", "isuperior", "lsuperior", "msuperior", "nsuperior", "osuperior", "rsuperior", "ssuperior", "tsuperior", "ff", "ffi", "ffl", "parenleftinferior", "parenrightinferior", "Circumflexsmall", "hyphensuperior", "Gravesmall", "Asmall", "Bsmall", "Csmall", "Dsmall", "Esmall", "Fsmall", "Gsmall", "Hsmall", "Ismall", "Jsmall", "Ksmall", "Lsmall", "Msmall", "Nsmall", "Osmall", "Psmall", "Qsmall", "Rsmall", "Ssmall", "Tsmall", "Usmall", "Vsmall", "Wsmall", "Xsmall", "Ysmall", "Zsmall", "colonmonetary", "onefitted", "rupiah", "Tildesmall", "exclamdownsmall", "centoldstyle", "Lslashsmall", "Scaronsmall", "Zcaronsmall", "Dieresissmall", "Brevesmall", "Caronsmall", "Dotaccentsmall", "Macronsmall", "figuredash", "hypheninferior", "Ogoneksmall", "Ringsmall", "Cedillasmall", "questiondownsmall", "oneeighth", "threeeighths", "fiveeighths", "seveneighths", "onethird", "twothirds", "zerosuperior", "foursuperior", "fivesuperior", "sixsuperior", "sevensuperior", "eightsuperior", "ninesuperior", "zeroinferior", "oneinferior", "twoinferior", "threeinferior", "fourinferior", "fiveinferior", "sixinferior", "seveninferior", "eightinferior", "nineinferior", "centinferior", "dollarinferior", "periodinferior", "commainferior", "Agravesmall", "Aacutesmall", "Acircumflexsmall", "Atildesmall", "Adieresissmall", "Aringsmall", "AEsmall", "Ccedillasmall", "Egravesmall", "Eacutesmall", "Ecircumflexsmall", "Edieresissmall", "Igravesmall", "Iacutesmall", "Icircumflexsmall", "Idieresissmall", "Ethsmall", "Ntildesmall", "Ogravesmall", "Oacutesmall", "Ocircumflexsmall", "Otildesmall", "Odieresissmall", "OEsmall", "Oslashsmall", "Ugravesmall", "Uacutesmall", "Ucircumflexsmall", "Udieresissmall", "Yacutesmall", "Thornsmall", "Ydieresissmall", "001.000", "001.001", "001.002", "001.003", "Black", "Bold", "Book", "Light", "Medium", "Regular", "Roman", "Semibold"], ue = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "space", "exclam", "quotedbl", "numbersign", "dollar", "percent", "ampersand", "quoteright", "parenleft", "parenright", "asterisk", "plus", "comma", "hyphen", "period", "slash", "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "colon", "semicolon", "less", "equal", "greater", "question", "at", "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", "bracketleft", "backslash", "bracketright", "asciicircum", "underscore", "quoteleft", "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", "braceleft", "bar", "braceright", "asciitilde", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "exclamdown", "cent", "sterling", "fraction", "yen", "florin", "section", "currency", "quotesingle", "quotedblleft", "guillemotleft", "guilsinglleft", "guilsinglright", "fi", "fl", "", "endash", "dagger", "daggerdbl", "periodcentered", "", "paragraph", "bullet", "quotesinglbase", "quotedblbase", "quotedblright", "guillemotright", "ellipsis", "perthousand", "", "questiondown", "", "grave", "acute", "circumflex", "tilde", "macron", "breve", "dotaccent", "dieresis", "", "ring", "cedilla", "", "hungarumlaut", "ogonek", "caron", "emdash", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "AE", "", "ordfeminine", "", "", "", "", "Lslash", "Oslash", "OE", "ordmasculine", "", "", "", "", "", "ae", "", "", "", "dotlessi", "", "", "lslash", "oslash", "oe", "germandbls"], ce = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "space", "exclamsmall", "Hungarumlautsmall", "", "dollaroldstyle", "dollarsuperior", "ampersandsmall", "Acutesmall", "parenleftsuperior", "parenrightsuperior", "twodotenleader", "onedotenleader", "comma", "hyphen", "period", "fraction", "zerooldstyle", "oneoldstyle", "twooldstyle", "threeoldstyle", "fouroldstyle", "fiveoldstyle", "sixoldstyle", "sevenoldstyle", "eightoldstyle", "nineoldstyle", "colon", "semicolon", "commasuperior", "threequartersemdash", "periodsuperior", "questionsmall", "", "asuperior", "bsuperior", "centsuperior", "dsuperior", "esuperior", "", "", "isuperior", "", "", "lsuperior", "msuperior", "nsuperior", "osuperior", "", "", "rsuperior", "ssuperior", "tsuperior", "", "ff", "fi", "fl", "ffi", "ffl", "parenleftinferior", "", "parenrightinferior", "Circumflexsmall", "hyphensuperior", "Gravesmall", "Asmall", "Bsmall", "Csmall", "Dsmall", "Esmall", "Fsmall", "Gsmall", "Hsmall", "Ismall", "Jsmall", "Ksmall", "Lsmall", "Msmall", "Nsmall", "Osmall", "Psmall", "Qsmall", "Rsmall", "Ssmall", "Tsmall", "Usmall", "Vsmall", "Wsmall", "Xsmall", "Ysmall", "Zsmall", "colonmonetary", "onefitted", "rupiah", "Tildesmall", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "exclamdownsmall", "centoldstyle", "Lslashsmall", "", "", "Scaronsmall", "Zcaronsmall", "Dieresissmall", "Brevesmall", "Caronsmall", "", "Dotaccentsmall", "", "", "Macronsmall", "", "", "figuredash", "hypheninferior", "", "", "Ogoneksmall", "Ringsmall", "Cedillasmall", "", "", "", "onequarter", "onehalf", "threequarters", "questiondownsmall", "oneeighth", "threeeighths", "fiveeighths", "seveneighths", "onethird", "twothirds", "", "", "zerosuperior", "onesuperior", "twosuperior", "threesuperior", "foursuperior", "fivesuperior", "sixsuperior", "sevensuperior", "eightsuperior", "ninesuperior", "zeroinferior", "oneinferior", "twoinferior", "threeinferior", "fourinferior", "fiveinferior", "sixinferior", "seveninferior", "eightinferior", "nineinferior", "centinferior", "dollarinferior", "periodinferior", "commainferior", "Agravesmall", "Aacutesmall", "Acircumflexsmall", "Atildesmall", "Adieresissmall", "Aringsmall", "AEsmall", "Ccedillasmall", "Egravesmall", "Eacutesmall", "Ecircumflexsmall", "Edieresissmall", "Igravesmall", "Iacutesmall", "Icircumflexsmall", "Idieresissmall", "Ethsmall", "Ntildesmall", "Ogravesmall", "Oacutesmall", "Ocircumflexsmall", "Otildesmall", "Odieresissmall", "OEsmall", "Oslashsmall", "Ugravesmall", "Uacutesmall", "Ucircumflexsmall", "Udieresissmall", "Yacutesmall", "Thornsmall", "Ydieresissmall"], de = [".notdef", ".null", "nonmarkingreturn", "space", "exclam", "quotedbl", "numbersign", "dollar", "percent", "ampersand", "quotesingle", "parenleft", "parenright", "asterisk", "plus", "comma", "hyphen", "period", "slash", "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "colon", "semicolon", "less", "equal", "greater", "question", "at", "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", "bracketleft", "backslash", "bracketright", "asciicircum", "underscore", "grave", "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", "braceleft", "bar", "braceright", "asciitilde", "Adieresis", "Aring", "Ccedilla", "Eacute", "Ntilde", "Odieresis", "Udieresis", "aacute", "agrave", "acircumflex", "adieresis", "atilde", "aring", "ccedilla", "eacute", "egrave", "ecircumflex", "edieresis", "iacute", "igrave", "icircumflex", "idieresis", "ntilde", "oacute", "ograve", "ocircumflex", "odieresis", "otilde", "uacute", "ugrave", "ucircumflex", "udieresis", "dagger", "degree", "cent", "sterling", "section", "bullet", "paragraph", "germandbls", "registered", "copyright", "trademark", "acute", "dieresis", "notequal", "AE", "Oslash", "infinity", "plusminus", "lessequal", "greaterequal", "yen", "mu", "partialdiff", "summation", "product", "pi", "integral", "ordfeminine", "ordmasculine", "Omega", "ae", "oslash", "questiondown", "exclamdown", "logicalnot", "radical", "florin", "approxequal", "Delta", "guillemotleft", "guillemotright", "ellipsis", "nonbreakingspace", "Agrave", "Atilde", "Otilde", "OE", "oe", "endash", "emdash", "quotedblleft", "quotedblright", "quoteleft", "quoteright", "divide", "lozenge", "ydieresis", "Ydieresis", "fraction", "currency", "guilsinglleft", "guilsinglright", "fi", "fl", "daggerdbl", "periodcentered", "quotesinglbase", "quotedblbase", "perthousand", "Acircumflex", "Ecircumflex", "Aacute", "Edieresis", "Egrave", "Iacute", "Icircumflex", "Idieresis", "Igrave", "Oacute", "Ocircumflex", "apple", "Ograve", "Uacute", "Ucircumflex", "Ugrave", "dotlessi", "circumflex", "tilde", "macron", "breve", "dotaccent", "ring", "cedilla", "hungarumlaut", "ogonek", "caron", "Lslash", "lslash", "Scaron", "scaron", "Zcaron", "zcaron", "brokenbar", "Eth", "eth", "Yacute", "yacute", "Thorn", "thorn", "minus", "multiply", "onesuperior", "twosuperior", "threesuperior", "onehalf", "onequarter", "threequarters", "franc", "Gbreve", "gbreve", "Idotaccent", "Scedilla", "scedilla", "Cacute", "cacute", "Ccaron", "ccaron", "dcroat"];
            function fe(e3) {
              this.font = e3;
            }
            function he(e3) {
              this.cmap = e3;
            }
            function pe(e3, t3) {
              this.encoding = e3, this.charset = t3;
            }
            function ye(e3) {
              switch (e3.version) {
                case 1:
                  this.names = de.slice();
                  break;
                case 2:
                  this.names = new Array(e3.numberOfGlyphs);
                  for (var t3 = 0; t3 < e3.numberOfGlyphs; t3++)
                    e3.glyphNameIndex[t3] < de.length ? this.names[t3] = de[e3.glyphNameIndex[t3]] : this.names[t3] = e3.names[e3.glyphNameIndex[t3] - de.length];
                  break;
                case 2.5:
                  this.names = new Array(e3.numberOfGlyphs);
                  for (var r3 = 0; r3 < e3.numberOfGlyphs; r3++)
                    this.names[r3] = de[r3 + e3.glyphNameIndex[r3]];
                  break;
                case 3:
                default:
                  this.names = [];
              }
            }
            fe.prototype.charToGlyphIndex = function(e3) {
              var t3 = e3.codePointAt(0), r3 = this.font.glyphs;
              if (r3) {
                for (var n2 = 0; n2 < r3.length; n2 += 1)
                  for (var o2 = r3.get(n2), i2 = 0; i2 < o2.unicodes.length; i2 += 1)
                    if (o2.unicodes[i2] === t3)
                      return n2;
              }
              return null;
            }, he.prototype.charToGlyphIndex = function(e3) {
              return this.cmap.glyphIndexMap[e3.codePointAt(0)] || 0;
            }, pe.prototype.charToGlyphIndex = function(e3) {
              var t3 = e3.codePointAt(0), r3 = this.encoding[t3];
              return this.charset.indexOf(r3);
            }, ye.prototype.nameToGlyphIndex = function(e3) {
              return this.names.indexOf(e3);
            }, ye.prototype.glyphIndexToName = function(e3) {
              return this.names[e3];
            };
            var me = { line: function(e3, t3, r3, n2, o2) {
              e3.beginPath(), e3.moveTo(t3, r3), e3.lineTo(n2, o2), e3.stroke();
            } };
            function ge(e3) {
              this.bindConstructorValues(e3);
            }
            function ve(t3, e3, r3) {
              Object.defineProperty(t3, e3, { get: function() {
                return t3.path, t3[r3];
              }, set: function(e4) {
                t3[r3] = e4;
              }, enumerable: true, configurable: true });
            }
            function be(e3, t3) {
              if (this.font = e3, this.glyphs = {}, Array.isArray(t3))
                for (var r3 = 0; r3 < t3.length; r3++)
                  this.glyphs[r3] = t3[r3];
              this.length = t3 && t3.length || 0;
            }
            ge.prototype.bindConstructorValues = function(e3) {
              var t3, r3;
              this.index = e3.index || 0, this.name = e3.name || null, this.unicode = e3.unicode || void 0, this.unicodes = e3.unicodes || e3.unicode !== void 0 ? [e3.unicode] : [], e3.xMin && (this.xMin = e3.xMin), e3.yMin && (this.yMin = e3.yMin), e3.xMax && (this.xMax = e3.xMax), e3.yMax && (this.yMax = e3.yMax), e3.advanceWidth && (this.advanceWidth = e3.advanceWidth), Object.defineProperty(this, "path", (t3 = e3.path, r3 = t3 || new D(), { configurable: true, get: function() {
                return typeof r3 == "function" && (r3 = r3()), r3;
              }, set: function(e4) {
                r3 = e4;
              } }));
            }, ge.prototype.addUnicode = function(e3) {
              this.unicodes.length === 0 && (this.unicode = e3), this.unicodes.push(e3);
            }, ge.prototype.getBoundingBox = function() {
              return this.path.getBoundingBox();
            }, ge.prototype.getPath = function(e3, t3, r3, n2, o2) {
              var i2, a2;
              e3 = e3 !== void 0 ? e3 : 0, t3 = t3 !== void 0 ? t3 : 0, r3 = r3 !== void 0 ? r3 : 72;
              var s2 = (n2 = n2 || {}).xScale, l2 = n2.yScale;
              if (n2.hinting && o2 && o2.hinting && (a2 = this.path && o2.hinting.exec(this, r3)), a2)
                i2 = o2.hinting.getCommands(a2), e3 = Math.round(e3), t3 = Math.round(t3), s2 = l2 = 1;
              else {
                i2 = this.path.commands;
                var u2 = 1 / this.path.unitsPerEm * r3;
                s2 === void 0 && (s2 = u2), l2 === void 0 && (l2 = u2);
              }
              for (var c2 = new D(), d2 = 0; d2 < i2.length; d2 += 1) {
                var f2 = i2[d2];
                f2.type === "M" ? c2.moveTo(e3 + f2.x * s2, t3 + -f2.y * l2) : f2.type === "L" ? c2.lineTo(e3 + f2.x * s2, t3 + -f2.y * l2) : f2.type === "Q" ? c2.quadraticCurveTo(e3 + f2.x1 * s2, t3 + -f2.y1 * l2, e3 + f2.x * s2, t3 + -f2.y * l2) : f2.type === "C" ? c2.curveTo(e3 + f2.x1 * s2, t3 + -f2.y1 * l2, e3 + f2.x2 * s2, t3 + -f2.y2 * l2, e3 + f2.x * s2, t3 + -f2.y * l2) : f2.type === "Z" && c2.closePath();
              }
              return c2;
            }, ge.prototype.getContours = function() {
              if (this.points === void 0)
                return [];
              for (var e3 = [], t3 = [], r3 = 0; r3 < this.points.length; r3 += 1) {
                var n2 = this.points[r3];
                t3.push(n2), n2.lastPointOfContour && (e3.push(t3), t3 = []);
              }
              return L.argument(t3.length === 0, "There are still points left in the current contour."), e3;
            }, ge.prototype.getMetrics = function() {
              for (var e3 = this.path.commands, t3 = [], r3 = [], n2 = 0; n2 < e3.length; n2 += 1) {
                var o2 = e3[n2];
                o2.type !== "Z" && (t3.push(o2.x), r3.push(o2.y)), o2.type !== "Q" && o2.type !== "C" || (t3.push(o2.x1), r3.push(o2.y1)), o2.type === "C" && (t3.push(o2.x2), r3.push(o2.y2));
              }
              var i2 = { xMin: Math.min.apply(null, t3), yMin: Math.min.apply(null, r3), xMax: Math.max.apply(null, t3), yMax: Math.max.apply(null, r3), leftSideBearing: this.leftSideBearing };
              return isFinite(i2.xMin) || (i2.xMin = 0), isFinite(i2.xMax) || (i2.xMax = this.advanceWidth), isFinite(i2.yMin) || (i2.yMin = 0), isFinite(i2.yMax) || (i2.yMax = 0), i2.rightSideBearing = this.advanceWidth - i2.leftSideBearing - (i2.xMax - i2.xMin), i2;
            }, ge.prototype.draw = function(e3, t3, r3, n2, o2) {
              this.getPath(t3, r3, n2, o2).draw(e3);
            }, ge.prototype.drawPoints = function(a2, e3, t3, r3) {
              function n2(e4, t4, r4, n3) {
                var o3 = 2 * Math.PI;
                a2.beginPath();
                for (var i3 = 0; i3 < e4.length; i3 += 1)
                  a2.moveTo(t4 + e4[i3].x * n3, r4 + e4[i3].y * n3), a2.arc(t4 + e4[i3].x * n3, r4 + e4[i3].y * n3, 2, 0, o3, false);
                a2.closePath(), a2.fill();
              }
              e3 = e3 !== void 0 ? e3 : 0, t3 = t3 !== void 0 ? t3 : 0, r3 = r3 !== void 0 ? r3 : 24;
              for (var o2 = 1 / this.path.unitsPerEm * r3, i2 = [], s2 = [], l2 = this.path, u2 = 0; u2 < l2.commands.length; u2 += 1) {
                var c2 = l2.commands[u2];
                c2.x !== void 0 && i2.push({ x: c2.x, y: -c2.y }), c2.x1 !== void 0 && s2.push({ x: c2.x1, y: -c2.y1 }), c2.x2 !== void 0 && s2.push({ x: c2.x2, y: -c2.y2 });
              }
              a2.fillStyle = "blue", n2(i2, e3, t3, o2), a2.fillStyle = "red", n2(s2, e3, t3, o2);
            }, ge.prototype.drawMetrics = function(e3, t3, r3, n2) {
              var o2;
              t3 = t3 !== void 0 ? t3 : 0, r3 = r3 !== void 0 ? r3 : 0, n2 = n2 !== void 0 ? n2 : 24, o2 = 1 / this.path.unitsPerEm * n2, e3.lineWidth = 1, e3.strokeStyle = "black", me.line(e3, t3, -1e4, t3, 1e4), me.line(e3, -1e4, r3, 1e4, r3);
              var i2 = this.xMin || 0, a2 = this.yMin || 0, s2 = this.xMax || 0, l2 = this.yMax || 0, u2 = this.advanceWidth || 0;
              e3.strokeStyle = "blue", me.line(e3, t3 + i2 * o2, -1e4, t3 + i2 * o2, 1e4), me.line(e3, t3 + s2 * o2, -1e4, t3 + s2 * o2, 1e4), me.line(e3, -1e4, r3 + -a2 * o2, 1e4, r3 + -a2 * o2), me.line(e3, -1e4, r3 + -l2 * o2, 1e4, r3 + -l2 * o2), e3.strokeStyle = "green", me.line(e3, t3 + u2 * o2, -1e4, t3 + u2 * o2, 1e4);
            }, be.prototype.get = function(e3) {
              return typeof this.glyphs[e3] == "function" && (this.glyphs[e3] = this.glyphs[e3]()), this.glyphs[e3];
            }, be.prototype.push = function(e3, t3) {
              this.glyphs[e3] = t3, this.length++;
            };
            var _e = { GlyphSet: be, glyphLoader: function(e3, t3) {
              return new ge({ index: t3, font: e3 });
            }, ttfGlyphLoader: function(r3, e3, n2, o2, i2, a2) {
              return function() {
                var t3 = new ge({ index: e3, font: r3 });
                return t3.path = function() {
                  n2(t3, o2, i2);
                  var e4 = a2(r3.glyphs, t3);
                  return e4.unitsPerEm = r3.unitsPerEm, e4;
                }, ve(t3, "xMin", "_xMin"), ve(t3, "xMax", "_xMax"), ve(t3, "yMin", "_yMin"), ve(t3, "yMax", "_yMax"), t3;
              };
            }, cffGlyphLoader: function(r3, e3, n2, o2) {
              return function() {
                var t3 = new ge({ index: e3, font: r3 });
                return t3.path = function() {
                  var e4 = n2(r3, t3, o2);
                  return e4.unitsPerEm = r3.unitsPerEm, e4;
                }, t3;
              };
            } };
            function xe(e3, t3) {
              if (e3 === t3)
                return true;
              if (Array.isArray(e3) && Array.isArray(t3)) {
                if (e3.length !== t3.length)
                  return false;
                for (var r3 = 0; r3 < e3.length; r3 += 1)
                  if (!xe(e3[r3], t3[r3]))
                    return false;
                return true;
              }
              return false;
            }
            function we(e3) {
              return e3.length < 1240 ? 107 : e3.length < 33900 ? 1131 : 32768;
            }
            function Se(e3, t3, r3) {
              var n2, o2, i2 = [], a2 = [], s2 = ae.getCard16(e3, t3);
              if (s2 !== 0) {
                var l2 = ae.getByte(e3, t3 + 2);
                n2 = t3 + (s2 + 1) * l2 + 2;
                for (var u2 = t3 + 3, c2 = 0; c2 < s2 + 1; c2 += 1)
                  i2.push(ae.getOffset(e3, u2, l2)), u2 += l2;
                o2 = n2 + i2[s2];
              } else
                o2 = t3 + 2;
              for (var d2 = 0; d2 < i2.length - 1; d2 += 1) {
                var f2 = ae.getBytes(e3, n2 + i2[d2], n2 + i2[d2 + 1]);
                r3 && (f2 = r3(f2)), a2.push(f2);
              }
              return { objects: a2, startOffset: t3, endOffset: o2 };
            }
            function je(e3, t3) {
              if (t3 === 28)
                return e3.parseByte() << 8 | e3.parseByte();
              if (t3 === 29)
                return e3.parseByte() << 24 | e3.parseByte() << 16 | e3.parseByte() << 8 | e3.parseByte();
              if (t3 === 30)
                return function(e4) {
                  for (var t4 = "", r3 = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ".", "E", "E-", null, "-"]; ; ) {
                    var n2 = e4.parseByte(), o2 = n2 >> 4, i2 = 15 & n2;
                    if (o2 == 15)
                      break;
                    if (t4 += r3[o2], i2 == 15)
                      break;
                    t4 += r3[i2];
                  }
                  return parseFloat(t4);
                }(e3);
              if (32 <= t3 && t3 <= 246)
                return t3 - 139;
              if (247 <= t3 && t3 <= 250)
                return 256 * (t3 - 247) + e3.parseByte() + 108;
              if (251 <= t3 && t3 <= 254)
                return 256 * -(t3 - 251) - e3.parseByte() - 108;
              throw new Error("Invalid b0 " + t3);
            }
            function Me(e3, t3, r3) {
              t3 = t3 !== void 0 ? t3 : 0;
              var n2 = new ae.Parser(e3, t3), o2 = [], i2 = [];
              for (r3 = r3 !== void 0 ? r3 : e3.length; n2.relativeOffset < r3; ) {
                var a2 = n2.parseByte();
                a2 <= 21 ? (a2 === 12 && (a2 = 1200 + n2.parseByte()), o2.push([a2, i2]), i2 = []) : i2.push(je(n2, a2));
              }
              return function(e4) {
                for (var t4 = {}, r4 = 0; r4 < e4.length; r4 += 1) {
                  var n3 = e4[r4][0], o3 = e4[r4][1], i3 = void 0;
                  if (i3 = o3.length === 1 ? o3[0] : o3, t4.hasOwnProperty(n3) && !isNaN(t4[n3]))
                    throw new Error("Object " + t4 + " already has key " + n3);
                  t4[n3] = i3;
                }
                return t4;
              }(o2);
            }
            function Ee(e3, t3) {
              return t3 = t3 <= 390 ? le[t3] : e3[t3 - 391];
            }
            function Te(e3, t3, r3) {
              for (var n2, o2 = {}, i2 = 0; i2 < t3.length; i2 += 1) {
                var a2 = t3[i2];
                if (Array.isArray(a2.type)) {
                  var s2 = [];
                  s2.length = a2.type.length;
                  for (var l2 = 0; l2 < a2.type.length; l2++)
                    (n2 = e3[a2.op] !== void 0 ? e3[a2.op][l2] : void 0) === void 0 && (n2 = a2.value !== void 0 && a2.value[l2] !== void 0 ? a2.value[l2] : null), a2.type[l2] === "SID" && (n2 = Ee(r3, n2)), s2[l2] = n2;
                  o2[a2.name] = s2;
                } else
                  (n2 = e3[a2.op]) === void 0 && (n2 = a2.value !== void 0 ? a2.value : null), a2.type === "SID" && (n2 = Ee(r3, n2)), o2[a2.name] = n2;
              }
              return o2;
            }
            var Oe = [{ name: "version", op: 0, type: "SID" }, { name: "notice", op: 1, type: "SID" }, { name: "copyright", op: 1200, type: "SID" }, { name: "fullName", op: 2, type: "SID" }, { name: "familyName", op: 3, type: "SID" }, { name: "weight", op: 4, type: "SID" }, { name: "isFixedPitch", op: 1201, type: "number", value: 0 }, { name: "italicAngle", op: 1202, type: "number", value: 0 }, { name: "underlinePosition", op: 1203, type: "number", value: -100 }, { name: "underlineThickness", op: 1204, type: "number", value: 50 }, { name: "paintType", op: 1205, type: "number", value: 0 }, { name: "charstringType", op: 1206, type: "number", value: 2 }, { name: "fontMatrix", op: 1207, type: ["real", "real", "real", "real", "real", "real"], value: [1e-3, 0, 0, 1e-3, 0, 0] }, { name: "uniqueId", op: 13, type: "number" }, { name: "fontBBox", op: 5, type: ["number", "number", "number", "number"], value: [0, 0, 0, 0] }, { name: "strokeWidth", op: 1208, type: "number", value: 0 }, { name: "xuid", op: 14, type: [], value: null }, { name: "charset", op: 15, type: "offset", value: 0 }, { name: "encoding", op: 16, type: "offset", value: 0 }, { name: "charStrings", op: 17, type: "offset", value: 0 }, { name: "private", op: 18, type: ["number", "offset"], value: [0, 0] }, { name: "ros", op: 1230, type: ["SID", "SID", "number"] }, { name: "cidFontVersion", op: 1231, type: "number", value: 0 }, { name: "cidFontRevision", op: 1232, type: "number", value: 0 }, { name: "cidFontType", op: 1233, type: "number", value: 0 }, { name: "cidCount", op: 1234, type: "number", value: 8720 }, { name: "uidBase", op: 1235, type: "number" }, { name: "fdArray", op: 1236, type: "offset" }, { name: "fdSelect", op: 1237, type: "offset" }, { name: "fontName", op: 1238, type: "SID" }], Ce = [{ name: "subrs", op: 19, type: "offset", value: 0 }, { name: "defaultWidthX", op: 20, type: "number", value: 0 }, { name: "nominalWidthX", op: 21, type: "number", value: 0 }];
            function Le(e3, t3, r3, n2) {
              return Te(Me(e3, t3, r3), Ce, n2);
            }
            function Pe(e3, t3, r3, n2) {
              for (var o2, i2, a2 = [], s2 = 0; s2 < r3.length; s2 += 1) {
                var l2 = new DataView(new Uint8Array(r3[s2]).buffer), u2 = (i2 = n2, Te(Me(o2 = l2, 0, o2.byteLength), Oe, i2));
                u2._subrs = [], u2._subrsBias = 0;
                var c2 = u2.private[0], d2 = u2.private[1];
                if (c2 !== 0 && d2 !== 0) {
                  var f2 = Le(e3, d2 + t3, c2, n2);
                  if (u2._defaultWidthX = f2.defaultWidthX, u2._nominalWidthX = f2.nominalWidthX, f2.subrs !== 0) {
                    var h2 = Se(e3, d2 + f2.subrs + t3);
                    u2._subrs = h2.objects, u2._subrsBias = we(u2._subrs);
                  }
                  u2._privateDict = f2;
                }
                a2.push(u2);
              }
              return a2;
            }
            function ke(m2, g2, e3) {
              var v2, b2, _2, x2, w2, S2, t3, j2, M2 = new D(), E2 = [], T2 = 0, O2 = false, C2 = false, L2 = 0, P2 = 0;
              if (m2.isCIDFont) {
                var r3 = m2.tables.cff.topDict._fdSelect[g2.index], n2 = m2.tables.cff.topDict._fdArray[r3];
                w2 = n2._subrs, S2 = n2._subrsBias, t3 = n2._defaultWidthX, j2 = n2._nominalWidthX;
              } else
                w2 = m2.tables.cff.topDict._subrs, S2 = m2.tables.cff.topDict._subrsBias, t3 = m2.tables.cff.topDict._defaultWidthX, j2 = m2.tables.cff.topDict._nominalWidthX;
              var k2 = t3;
              function A2(e4, t4) {
                C2 && M2.closePath(), M2.moveTo(e4, t4), C2 = true;
              }
              function R2() {
                E2.length % 2 == 0 || O2 || (k2 = E2.shift() + j2), T2 += E2.length >> 1, E2.length = 0, O2 = true;
              }
              return function e4(t4) {
                for (var r4, n3, o2, i2, a2, s2, l2, u2, c2, d2, f2, h2, p2 = 0; p2 < t4.length; ) {
                  var y2 = t4[p2];
                  switch (p2 += 1, y2) {
                    case 1:
                    case 3:
                      R2();
                      break;
                    case 4:
                      1 < E2.length && !O2 && (k2 = E2.shift() + j2, O2 = true), P2 += E2.pop(), A2(L2, P2);
                      break;
                    case 5:
                      for (; 0 < E2.length; )
                        L2 += E2.shift(), P2 += E2.shift(), M2.lineTo(L2, P2);
                      break;
                    case 6:
                      for (; 0 < E2.length && (L2 += E2.shift(), M2.lineTo(L2, P2), E2.length !== 0); )
                        P2 += E2.shift(), M2.lineTo(L2, P2);
                      break;
                    case 7:
                      for (; 0 < E2.length && (P2 += E2.shift(), M2.lineTo(L2, P2), E2.length !== 0); )
                        L2 += E2.shift(), M2.lineTo(L2, P2);
                      break;
                    case 8:
                      for (; 0 < E2.length; )
                        v2 = L2 + E2.shift(), b2 = P2 + E2.shift(), _2 = v2 + E2.shift(), x2 = b2 + E2.shift(), L2 = _2 + E2.shift(), P2 = x2 + E2.shift(), M2.curveTo(v2, b2, _2, x2, L2, P2);
                      break;
                    case 10:
                      a2 = E2.pop() + S2, (s2 = w2[a2]) && e4(s2);
                      break;
                    case 11:
                      return;
                    case 12:
                      switch (y2 = t4[p2], p2 += 1, y2) {
                        case 35:
                          v2 = L2 + E2.shift(), b2 = P2 + E2.shift(), _2 = v2 + E2.shift(), x2 = b2 + E2.shift(), l2 = _2 + E2.shift(), u2 = x2 + E2.shift(), c2 = l2 + E2.shift(), d2 = u2 + E2.shift(), f2 = c2 + E2.shift(), h2 = d2 + E2.shift(), L2 = f2 + E2.shift(), P2 = h2 + E2.shift(), E2.shift(), M2.curveTo(v2, b2, _2, x2, l2, u2), M2.curveTo(c2, d2, f2, h2, L2, P2);
                          break;
                        case 34:
                          v2 = L2 + E2.shift(), b2 = P2, _2 = v2 + E2.shift(), x2 = b2 + E2.shift(), l2 = _2 + E2.shift(), u2 = x2, c2 = l2 + E2.shift(), d2 = x2, f2 = c2 + E2.shift(), h2 = P2, L2 = f2 + E2.shift(), M2.curveTo(v2, b2, _2, x2, l2, u2), M2.curveTo(c2, d2, f2, h2, L2, P2);
                          break;
                        case 36:
                          v2 = L2 + E2.shift(), b2 = P2 + E2.shift(), _2 = v2 + E2.shift(), x2 = b2 + E2.shift(), l2 = _2 + E2.shift(), u2 = x2, c2 = l2 + E2.shift(), d2 = x2, f2 = c2 + E2.shift(), h2 = d2 + E2.shift(), L2 = f2 + E2.shift(), M2.curveTo(v2, b2, _2, x2, l2, u2), M2.curveTo(c2, d2, f2, h2, L2, P2);
                          break;
                        case 37:
                          v2 = L2 + E2.shift(), b2 = P2 + E2.shift(), _2 = v2 + E2.shift(), x2 = b2 + E2.shift(), l2 = _2 + E2.shift(), u2 = x2 + E2.shift(), c2 = l2 + E2.shift(), d2 = u2 + E2.shift(), f2 = c2 + E2.shift(), h2 = d2 + E2.shift(), Math.abs(f2 - L2) > Math.abs(h2 - P2) ? L2 = f2 + E2.shift() : P2 = h2 + E2.shift(), M2.curveTo(v2, b2, _2, x2, l2, u2), M2.curveTo(c2, d2, f2, h2, L2, P2);
                          break;
                        default:
                          console.log("Glyph " + g2.index + ": unknown operator 1200" + y2), E2.length = 0;
                      }
                      break;
                    case 14:
                      0 < E2.length && !O2 && (k2 = E2.shift() + j2, O2 = true), C2 && (M2.closePath(), C2 = false);
                      break;
                    case 18:
                      R2();
                      break;
                    case 19:
                    case 20:
                      R2(), p2 += T2 + 7 >> 3;
                      break;
                    case 21:
                      2 < E2.length && !O2 && (k2 = E2.shift() + j2, O2 = true), P2 += E2.pop(), A2(L2 += E2.pop(), P2);
                      break;
                    case 22:
                      1 < E2.length && !O2 && (k2 = E2.shift() + j2, O2 = true), A2(L2 += E2.pop(), P2);
                      break;
                    case 23:
                      R2();
                      break;
                    case 24:
                      for (; 2 < E2.length; )
                        v2 = L2 + E2.shift(), b2 = P2 + E2.shift(), _2 = v2 + E2.shift(), x2 = b2 + E2.shift(), L2 = _2 + E2.shift(), P2 = x2 + E2.shift(), M2.curveTo(v2, b2, _2, x2, L2, P2);
                      L2 += E2.shift(), P2 += E2.shift(), M2.lineTo(L2, P2);
                      break;
                    case 25:
                      for (; 6 < E2.length; )
                        L2 += E2.shift(), P2 += E2.shift(), M2.lineTo(L2, P2);
                      v2 = L2 + E2.shift(), b2 = P2 + E2.shift(), _2 = v2 + E2.shift(), x2 = b2 + E2.shift(), L2 = _2 + E2.shift(), P2 = x2 + E2.shift(), M2.curveTo(v2, b2, _2, x2, L2, P2);
                      break;
                    case 26:
                      for (E2.length % 2 && (L2 += E2.shift()); 0 < E2.length; )
                        v2 = L2, b2 = P2 + E2.shift(), _2 = v2 + E2.shift(), x2 = b2 + E2.shift(), L2 = _2, P2 = x2 + E2.shift(), M2.curveTo(v2, b2, _2, x2, L2, P2);
                      break;
                    case 27:
                      for (E2.length % 2 && (P2 += E2.shift()); 0 < E2.length; )
                        v2 = L2 + E2.shift(), b2 = P2, _2 = v2 + E2.shift(), x2 = b2 + E2.shift(), L2 = _2 + E2.shift(), P2 = x2, M2.curveTo(v2, b2, _2, x2, L2, P2);
                      break;
                    case 28:
                      r4 = t4[p2], n3 = t4[p2 + 1], E2.push((r4 << 24 | n3 << 16) >> 16), p2 += 2;
                      break;
                    case 29:
                      a2 = E2.pop() + m2.gsubrsBias, (s2 = m2.gsubrs[a2]) && e4(s2);
                      break;
                    case 30:
                      for (; 0 < E2.length && (v2 = L2, b2 = P2 + E2.shift(), _2 = v2 + E2.shift(), x2 = b2 + E2.shift(), L2 = _2 + E2.shift(), P2 = x2 + (E2.length === 1 ? E2.shift() : 0), M2.curveTo(v2, b2, _2, x2, L2, P2), E2.length !== 0); )
                        v2 = L2 + E2.shift(), b2 = P2, _2 = v2 + E2.shift(), x2 = b2 + E2.shift(), P2 = x2 + E2.shift(), L2 = _2 + (E2.length === 1 ? E2.shift() : 0), M2.curveTo(v2, b2, _2, x2, L2, P2);
                      break;
                    case 31:
                      for (; 0 < E2.length && (v2 = L2 + E2.shift(), b2 = P2, _2 = v2 + E2.shift(), x2 = b2 + E2.shift(), P2 = x2 + E2.shift(), L2 = _2 + (E2.length === 1 ? E2.shift() : 0), M2.curveTo(v2, b2, _2, x2, L2, P2), E2.length !== 0); )
                        v2 = L2, b2 = P2 + E2.shift(), _2 = v2 + E2.shift(), x2 = b2 + E2.shift(), L2 = _2 + E2.shift(), P2 = x2 + (E2.length === 1 ? E2.shift() : 0), M2.curveTo(v2, b2, _2, x2, L2, P2);
                      break;
                    default:
                      y2 < 32 ? console.log("Glyph " + g2.index + ": unknown operator " + y2) : y2 < 247 ? E2.push(y2 - 139) : y2 < 251 ? (r4 = t4[p2], p2 += 1, E2.push(256 * (y2 - 247) + r4 + 108)) : y2 < 255 ? (r4 = t4[p2], p2 += 1, E2.push(256 * -(y2 - 251) - r4 - 108)) : (r4 = t4[p2], n3 = t4[p2 + 1], o2 = t4[p2 + 2], i2 = t4[p2 + 3], p2 += 4, E2.push((r4 << 24 | n3 << 16 | o2 << 8 | i2) / 65536));
                  }
                }
              }(e3), g2.advanceWidth = k2, M2;
            }
            function Ae(e3, t3) {
              var r3, n2 = le.indexOf(e3);
              return 0 <= n2 && (r3 = n2), 0 <= (n2 = t3.indexOf(e3)) ? r3 = n2 + le.length : (r3 = le.length + t3.length, t3.push(e3)), r3;
            }
            function Re(e3, t3, r3) {
              for (var n2 = {}, o2 = 0; o2 < e3.length; o2 += 1) {
                var i2 = e3[o2], a2 = t3[i2.name];
                a2 === void 0 || xe(a2, i2.value) || (i2.type === "SID" && (a2 = Ae(a2, r3)), n2[i2.op] = { name: i2.name, type: i2.type, value: a2 });
              }
              return n2;
            }
            function De(e3, t3) {
              var r3 = new J.Record("Top DICT", [{ name: "dict", type: "DICT", value: {} }]);
              return r3.dict = Re(Oe, e3, t3), r3;
            }
            function Ie(e3) {
              var t3 = new J.Record("Top DICT INDEX", [{ name: "topDicts", type: "INDEX", value: [] }]);
              return t3.topDicts = [{ name: "topDict_0", type: "TABLE", value: e3 }], t3;
            }
            function Ue(e3) {
              var t3 = [], r3 = e3.path;
              t3.push({ name: "width", type: "NUMBER", value: e3.advanceWidth });
              for (var n2 = 0, o2 = 0, i2 = 0; i2 < r3.commands.length; i2 += 1) {
                var a2 = void 0, s2 = void 0, l2 = r3.commands[i2];
                if (l2.type === "Q") {
                  l2 = { type: "C", x: l2.x, y: l2.y, x1: 1 / 3 * n2 + 2 / 3 * l2.x1, y1: 1 / 3 * o2 + 2 / 3 * l2.y1, x2: 1 / 3 * l2.x + 2 / 3 * l2.x1, y2: 1 / 3 * l2.y + 2 / 3 * l2.y1 };
                }
                if (l2.type === "M")
                  a2 = Math.round(l2.x - n2), s2 = Math.round(l2.y - o2), t3.push({ name: "dx", type: "NUMBER", value: a2 }), t3.push({ name: "dy", type: "NUMBER", value: s2 }), t3.push({ name: "rmoveto", type: "OP", value: 21 }), n2 = Math.round(l2.x), o2 = Math.round(l2.y);
                else if (l2.type === "L")
                  a2 = Math.round(l2.x - n2), s2 = Math.round(l2.y - o2), t3.push({ name: "dx", type: "NUMBER", value: a2 }), t3.push({ name: "dy", type: "NUMBER", value: s2 }), t3.push({ name: "rlineto", type: "OP", value: 5 }), n2 = Math.round(l2.x), o2 = Math.round(l2.y);
                else if (l2.type === "C") {
                  var u2 = Math.round(l2.x1 - n2), c2 = Math.round(l2.y1 - o2), d2 = Math.round(l2.x2 - l2.x1), f2 = Math.round(l2.y2 - l2.y1);
                  a2 = Math.round(l2.x - l2.x2), s2 = Math.round(l2.y - l2.y2), t3.push({ name: "dx1", type: "NUMBER", value: u2 }), t3.push({ name: "dy1", type: "NUMBER", value: c2 }), t3.push({ name: "dx2", type: "NUMBER", value: d2 }), t3.push({ name: "dy2", type: "NUMBER", value: f2 }), t3.push({ name: "dx", type: "NUMBER", value: a2 }), t3.push({ name: "dy", type: "NUMBER", value: s2 }), t3.push({ name: "rrcurveto", type: "OP", value: 8 }), n2 = Math.round(l2.x), o2 = Math.round(l2.y);
                }
              }
              return t3.push({ name: "endchar", type: "OP", value: 14 }), t3;
            }
            var Ne = { parse: function(e3, t3, r3) {
              r3.tables.cff = {};
              var n2, o2, i2, a2 = Se(e3, (n2 = e3, o2 = t3, (i2 = {}).formatMajor = ae.getCard8(n2, o2), i2.formatMinor = ae.getCard8(n2, o2 + 1), i2.size = ae.getCard8(n2, o2 + 2), i2.offsetSize = ae.getCard8(n2, o2 + 3), i2.startOffset = o2, i2.endOffset = o2 + 4, i2).endOffset, ae.bytesToString), s2 = Se(e3, a2.endOffset), l2 = Se(e3, s2.endOffset, ae.bytesToString), u2 = Se(e3, l2.endOffset);
              r3.gsubrs = u2.objects, r3.gsubrsBias = we(r3.gsubrs);
              var c2 = Pe(e3, t3, s2.objects, l2.objects);
              if (c2.length !== 1)
                throw new Error("CFF table has too many fonts in 'FontSet' - count of fonts NameIndex.length = " + c2.length);
              var d2 = c2[0];
              if ((r3.tables.cff.topDict = d2)._privateDict && (r3.defaultWidthX = d2._privateDict.defaultWidthX, r3.nominalWidthX = d2._privateDict.nominalWidthX), d2.ros[0] !== void 0 && d2.ros[1] !== void 0 && (r3.isCIDFont = true), r3.isCIDFont) {
                var f2 = d2.fdArray, h2 = d2.fdSelect;
                if (f2 === 0 || h2 === 0)
                  throw new Error("Font is marked as a CID font, but FDArray and/or FDSelect information is missing");
                var p2 = Pe(e3, t3, Se(e3, f2 += t3).objects, l2.objects);
                d2._fdArray = p2, h2 += t3, d2._fdSelect = function(e4, t4, r4, n3) {
                  var o3, i3 = [], a3 = new ae.Parser(e4, t4), s3 = a3.parseCard8();
                  if (s3 === 0)
                    for (var l3 = 0; l3 < r4; l3++) {
                      if (n3 <= (o3 = a3.parseCard8()))
                        throw new Error("CFF table CID Font FDSelect has bad FD index value " + o3 + " (FD count " + n3 + ")");
                      i3.push(o3);
                    }
                  else {
                    if (s3 !== 3)
                      throw new Error("CFF Table CID Font FDSelect table has unsupported format " + s3);
                    var u3, c3 = a3.parseCard16(), d3 = a3.parseCard16();
                    if (d3 !== 0)
                      throw new Error("CFF Table CID Font FDSelect format 3 range has bad initial GID " + d3);
                    for (var f3 = 0; f3 < c3; f3++) {
                      if (o3 = a3.parseCard8(), u3 = a3.parseCard16(), n3 <= o3)
                        throw new Error("CFF table CID Font FDSelect has bad FD index value " + o3 + " (FD count " + n3 + ")");
                      if (r4 < u3)
                        throw new Error("CFF Table CID Font FDSelect format 3 range has bad GID " + u3);
                      for (; d3 < u3; d3++)
                        i3.push(o3);
                      d3 = u3;
                    }
                    if (u3 !== r4)
                      throw new Error("CFF Table CID Font FDSelect format 3 range has bad final GID " + u3);
                  }
                  return i3;
                }(e3, h2, r3.numGlyphs, p2.length);
              }
              var y2 = t3 + d2.private[1], m2 = Le(e3, y2, d2.private[0], l2.objects);
              if (r3.defaultWidthX = m2.defaultWidthX, r3.nominalWidthX = m2.nominalWidthX, m2.subrs !== 0) {
                var g2 = Se(e3, y2 + m2.subrs);
                r3.subrs = g2.objects, r3.subrsBias = we(r3.subrs);
              } else
                r3.subrs = [], r3.subrsBias = 0;
              var v2 = Se(e3, t3 + d2.charStrings);
              r3.nGlyphs = v2.objects.length;
              var b2 = function(e4, t4, r4, n3) {
                var o3, i3, a3 = new ae.Parser(e4, t4);
                --r4;
                var s3 = [".notdef"], l3 = a3.parseCard8();
                if (l3 === 0)
                  for (var u3 = 0; u3 < r4; u3 += 1)
                    o3 = a3.parseSID(), s3.push(Ee(n3, o3));
                else if (l3 === 1)
                  for (; s3.length <= r4; ) {
                    o3 = a3.parseSID(), i3 = a3.parseCard8();
                    for (var c3 = 0; c3 <= i3; c3 += 1)
                      s3.push(Ee(n3, o3)), o3 += 1;
                  }
                else {
                  if (l3 !== 2)
                    throw new Error("Unknown charset format " + l3);
                  for (; s3.length <= r4; ) {
                    o3 = a3.parseSID(), i3 = a3.parseCard16();
                    for (var d3 = 0; d3 <= i3; d3 += 1)
                      s3.push(Ee(n3, o3)), o3 += 1;
                  }
                }
                return s3;
              }(e3, t3 + d2.charset, r3.nGlyphs, l2.objects);
              d2.encoding === 0 ? r3.cffEncoding = new pe(ue, b2) : d2.encoding === 1 ? r3.cffEncoding = new pe(ce, b2) : r3.cffEncoding = function(e4, t4, r4) {
                var n3, o3 = {}, i3 = new ae.Parser(e4, t4), a3 = i3.parseCard8();
                if (a3 === 0)
                  for (var s3 = i3.parseCard8(), l3 = 0; l3 < s3; l3 += 1)
                    o3[n3 = i3.parseCard8()] = l3;
                else {
                  if (a3 !== 1)
                    throw new Error("Unknown encoding format " + a3);
                  var u3 = i3.parseCard8();
                  n3 = 1;
                  for (var c3 = 0; c3 < u3; c3 += 1)
                    for (var d3 = i3.parseCard8(), f3 = i3.parseCard8(), h3 = d3; h3 <= d3 + f3; h3 += 1)
                      o3[h3] = n3, n3 += 1;
                }
                return new pe(o3, r4);
              }(e3, t3 + d2.encoding, b2), r3.encoding = r3.encoding || r3.cffEncoding, r3.glyphs = new _e.GlyphSet(r3);
              for (var _2 = 0; _2 < r3.nGlyphs; _2 += 1) {
                var x2 = v2.objects[_2];
                r3.glyphs.push(_2, _e.cffGlyphLoader(r3, _2, ke, x2));
              }
            }, make: function(e3, t3) {
              for (var r3, n2 = new J.Table("CFF ", [{ name: "header", type: "RECORD" }, { name: "nameIndex", type: "RECORD" }, { name: "topDictIndex", type: "RECORD" }, { name: "stringIndex", type: "RECORD" }, { name: "globalSubrIndex", type: "RECORD" }, { name: "charsets", type: "RECORD" }, { name: "charStringsIndex", type: "RECORD" }, { name: "privateDict", type: "RECORD" }]), o2 = 1 / t3.unitsPerEm, i2 = { version: t3.version, fullName: t3.fullName, familyName: t3.familyName, weight: t3.weightName, fontBBox: t3.fontBBox || [0, 0, 0, 0], fontMatrix: [o2, 0, 0, o2, 0, 0], charset: 999, encoding: 0, charStrings: 999, private: [0, 999] }, a2 = [], s2 = 1; s2 < e3.length; s2 += 1)
                r3 = e3.get(s2), a2.push(r3.name);
              var l2 = [];
              n2.header = new J.Record("Header", [{ name: "major", type: "Card8", value: 1 }, { name: "minor", type: "Card8", value: 0 }, { name: "hdrSize", type: "Card8", value: 4 }, { name: "major", type: "Card8", value: 1 }]), n2.nameIndex = function(e4) {
                var t4 = new J.Record("Name INDEX", [{ name: "names", type: "INDEX", value: [] }]);
                t4.names = [];
                for (var r4 = 0; r4 < e4.length; r4 += 1)
                  t4.names.push({ name: "name_" + r4, type: "NAME", value: e4[r4] });
                return t4;
              }([t3.postScriptName]);
              var u2, c2, d2, f2 = De(i2, l2);
              n2.topDictIndex = Ie(f2), n2.globalSubrIndex = new J.Record("Global Subr INDEX", [{ name: "subrs", type: "INDEX", value: [] }]), n2.charsets = function(e4, t4) {
                for (var r4 = new J.Record("Charsets", [{ name: "format", type: "Card8", value: 0 }]), n3 = 0; n3 < e4.length; n3 += 1) {
                  var o3 = Ae(e4[n3], t4);
                  r4.fields.push({ name: "glyph_" + n3, type: "SID", value: o3 });
                }
                return r4;
              }(a2, l2), n2.charStringsIndex = function(e4) {
                for (var t4 = new J.Record("CharStrings INDEX", [{ name: "charStrings", type: "INDEX", value: [] }]), r4 = 0; r4 < e4.length; r4 += 1) {
                  var n3 = e4.get(r4), o3 = Ue(n3);
                  t4.charStrings.push({ name: n3.name, type: "CHARSTRING", value: o3 });
                }
                return t4;
              }(e3), n2.privateDict = (u2 = {}, c2 = l2, (d2 = new J.Record("Private DICT", [{ name: "dict", type: "DICT", value: {} }])).dict = Re(Ce, u2, c2), d2), n2.stringIndex = function(e4) {
                var t4 = new J.Record("String INDEX", [{ name: "strings", type: "INDEX", value: [] }]);
                t4.strings = [];
                for (var r4 = 0; r4 < e4.length; r4 += 1)
                  t4.strings.push({ name: "string_" + r4, type: "STRING", value: e4[r4] });
                return t4;
              }(l2);
              var h2 = n2.header.sizeOf() + n2.nameIndex.sizeOf() + n2.topDictIndex.sizeOf() + n2.stringIndex.sizeOf() + n2.globalSubrIndex.sizeOf();
              return i2.charset = h2, i2.encoding = 0, i2.charStrings = i2.charset + n2.charsets.sizeOf(), i2.private[1] = i2.charStrings + n2.charStringsIndex.sizeOf(), f2 = De(i2, l2), n2.topDictIndex = Ie(f2), n2;
            } };
            var Fe = { parse: function(e3, t3) {
              var r3 = {}, n2 = new ae.Parser(e3, t3);
              return r3.version = n2.parseVersion(), r3.fontRevision = Math.round(1e3 * n2.parseFixed()) / 1e3, r3.checkSumAdjustment = n2.parseULong(), r3.magicNumber = n2.parseULong(), L.argument(r3.magicNumber === 1594834165, "Font header has wrong magic number."), r3.flags = n2.parseUShort(), r3.unitsPerEm = n2.parseUShort(), r3.created = n2.parseLongDateTime(), r3.modified = n2.parseLongDateTime(), r3.xMin = n2.parseShort(), r3.yMin = n2.parseShort(), r3.xMax = n2.parseShort(), r3.yMax = n2.parseShort(), r3.macStyle = n2.parseUShort(), r3.lowestRecPPEM = n2.parseUShort(), r3.fontDirectionHint = n2.parseShort(), r3.indexToLocFormat = n2.parseShort(), r3.glyphDataFormat = n2.parseShort(), r3;
            }, make: function(e3) {
              var t3 = Math.round(new Date().getTime() / 1e3) + 2082844800, r3 = t3;
              return e3.createdTimestamp && (r3 = e3.createdTimestamp + 2082844800), new J.Table("head", [{ name: "version", type: "FIXED", value: 65536 }, { name: "fontRevision", type: "FIXED", value: 65536 }, { name: "checkSumAdjustment", type: "ULONG", value: 0 }, { name: "magicNumber", type: "ULONG", value: 1594834165 }, { name: "flags", type: "USHORT", value: 0 }, { name: "unitsPerEm", type: "USHORT", value: 1e3 }, { name: "created", type: "LONGDATETIME", value: r3 }, { name: "modified", type: "LONGDATETIME", value: t3 }, { name: "xMin", type: "SHORT", value: 0 }, { name: "yMin", type: "SHORT", value: 0 }, { name: "xMax", type: "SHORT", value: 0 }, { name: "yMax", type: "SHORT", value: 0 }, { name: "macStyle", type: "USHORT", value: 0 }, { name: "lowestRecPPEM", type: "USHORT", value: 0 }, { name: "fontDirectionHint", type: "SHORT", value: 2 }, { name: "indexToLocFormat", type: "SHORT", value: 0 }, { name: "glyphDataFormat", type: "SHORT", value: 0 }], e3);
            } };
            var Be = { parse: function(e3, t3) {
              var r3 = {}, n2 = new ae.Parser(e3, t3);
              return r3.version = n2.parseVersion(), r3.ascender = n2.parseShort(), r3.descender = n2.parseShort(), r3.lineGap = n2.parseShort(), r3.advanceWidthMax = n2.parseUShort(), r3.minLeftSideBearing = n2.parseShort(), r3.minRightSideBearing = n2.parseShort(), r3.xMaxExtent = n2.parseShort(), r3.caretSlopeRise = n2.parseShort(), r3.caretSlopeRun = n2.parseShort(), r3.caretOffset = n2.parseShort(), n2.relativeOffset += 8, r3.metricDataFormat = n2.parseShort(), r3.numberOfHMetrics = n2.parseUShort(), r3;
            }, make: function(e3) {
              return new J.Table("hhea", [{ name: "version", type: "FIXED", value: 65536 }, { name: "ascender", type: "FWORD", value: 0 }, { name: "descender", type: "FWORD", value: 0 }, { name: "lineGap", type: "FWORD", value: 0 }, { name: "advanceWidthMax", type: "UFWORD", value: 0 }, { name: "minLeftSideBearing", type: "FWORD", value: 0 }, { name: "minRightSideBearing", type: "FWORD", value: 0 }, { name: "xMaxExtent", type: "FWORD", value: 0 }, { name: "caretSlopeRise", type: "SHORT", value: 1 }, { name: "caretSlopeRun", type: "SHORT", value: 0 }, { name: "caretOffset", type: "SHORT", value: 0 }, { name: "reserved1", type: "SHORT", value: 0 }, { name: "reserved2", type: "SHORT", value: 0 }, { name: "reserved3", type: "SHORT", value: 0 }, { name: "reserved4", type: "SHORT", value: 0 }, { name: "metricDataFormat", type: "SHORT", value: 0 }, { name: "numberOfHMetrics", type: "USHORT", value: 0 }], e3);
            } };
            var Ge = { parse: function(e3, t3, r3, n2, o2) {
              for (var i2, a2, s2 = new ae.Parser(e3, t3), l2 = 0; l2 < n2; l2 += 1) {
                l2 < r3 && (i2 = s2.parseUShort(), a2 = s2.parseShort());
                var u2 = o2.get(l2);
                u2.advanceWidth = i2, u2.leftSideBearing = a2;
              }
            }, make: function(e3) {
              for (var t3 = new J.Table("hmtx", []), r3 = 0; r3 < e3.length; r3 += 1) {
                var n2 = e3.get(r3), o2 = n2.advanceWidth || 0, i2 = n2.leftSideBearing || 0;
                t3.fields.push({ name: "advanceWidth_" + r3, type: "USHORT", value: o2 }), t3.fields.push({ name: "leftSideBearing_" + r3, type: "SHORT", value: i2 });
              }
              return t3;
            } };
            var Ve = { make: function(e3) {
              for (var t3 = new J.Table("ltag", [{ name: "version", type: "ULONG", value: 1 }, { name: "flags", type: "ULONG", value: 0 }, { name: "numTags", type: "ULONG", value: e3.length }]), r3 = "", n2 = 12 + 4 * e3.length, o2 = 0; o2 < e3.length; ++o2) {
                var i2 = r3.indexOf(e3[o2]);
                i2 < 0 && (i2 = r3.length, r3 += e3[o2]), t3.fields.push({ name: "offset " + o2, type: "USHORT", value: n2 + i2 }), t3.fields.push({ name: "length " + o2, type: "USHORT", value: e3[o2].length });
              }
              return t3.fields.push({ name: "stringPool", type: "CHARARRAY", value: r3 }), t3;
            }, parse: function(e3, t3) {
              var r3 = new ae.Parser(e3, t3), n2 = r3.parseULong();
              L.argument(n2 === 1, "Unsupported ltag table version."), r3.skip("uLong", 1);
              for (var o2 = r3.parseULong(), i2 = [], a2 = 0; a2 < o2; a2++) {
                for (var s2 = "", l2 = t3 + r3.parseUShort(), u2 = r3.parseUShort(), c2 = l2; c2 < l2 + u2; ++c2)
                  s2 += String.fromCharCode(e3.getInt8(c2));
                i2.push(s2);
              }
              return i2;
            } };
            var ze = { parse: function(e3, t3) {
              var r3 = {}, n2 = new ae.Parser(e3, t3);
              return r3.version = n2.parseVersion(), r3.numGlyphs = n2.parseUShort(), r3.version === 1 && (r3.maxPoints = n2.parseUShort(), r3.maxContours = n2.parseUShort(), r3.maxCompositePoints = n2.parseUShort(), r3.maxCompositeContours = n2.parseUShort(), r3.maxZones = n2.parseUShort(), r3.maxTwilightPoints = n2.parseUShort(), r3.maxStorage = n2.parseUShort(), r3.maxFunctionDefs = n2.parseUShort(), r3.maxInstructionDefs = n2.parseUShort(), r3.maxStackElements = n2.parseUShort(), r3.maxSizeOfInstructions = n2.parseUShort(), r3.maxComponentElements = n2.parseUShort(), r3.maxComponentDepth = n2.parseUShort()), r3;
            }, make: function(e3) {
              return new J.Table("maxp", [{ name: "version", type: "FIXED", value: 20480 }, { name: "numGlyphs", type: "USHORT", value: e3 }]);
            } }, He = ["copyright", "fontFamily", "fontSubfamily", "uniqueID", "fullName", "version", "postScriptName", "trademark", "manufacturer", "designer", "description", "manufacturerURL", "designerURL", "license", "licenseURL", "reserved", "preferredFamily", "preferredSubfamily", "compatibleFullName", "sampleText", "postScriptFindFontName", "wwsFamily", "wwsSubfamily"], We = { 0: "en", 1: "fr", 2: "de", 3: "it", 4: "nl", 5: "sv", 6: "es", 7: "da", 8: "pt", 9: "no", 10: "he", 11: "ja", 12: "ar", 13: "fi", 14: "el", 15: "is", 16: "mt", 17: "tr", 18: "hr", 19: "zh-Hant", 20: "ur", 21: "hi", 22: "th", 23: "ko", 24: "lt", 25: "pl", 26: "hu", 27: "es", 28: "lv", 29: "se", 30: "fo", 31: "fa", 32: "ru", 33: "zh", 34: "nl-BE", 35: "ga", 36: "sq", 37: "ro", 38: "cz", 39: "sk", 40: "si", 41: "yi", 42: "sr", 43: "mk", 44: "bg", 45: "uk", 46: "be", 47: "uz", 48: "kk", 49: "az-Cyrl", 50: "az-Arab", 51: "hy", 52: "ka", 53: "mo", 54: "ky", 55: "tg", 56: "tk", 57: "mn-CN", 58: "mn", 59: "ps", 60: "ks", 61: "ku", 62: "sd", 63: "bo", 64: "ne", 65: "sa", 66: "mr", 67: "bn", 68: "as", 69: "gu", 70: "pa", 71: "or", 72: "ml", 73: "kn", 74: "ta", 75: "te", 76: "si", 77: "my", 78: "km", 79: "lo", 80: "vi", 81: "id", 82: "tl", 83: "ms", 84: "ms-Arab", 85: "am", 86: "ti", 87: "om", 88: "so", 89: "sw", 90: "rw", 91: "rn", 92: "ny", 93: "mg", 94: "eo", 128: "cy", 129: "eu", 130: "ca", 131: "la", 132: "qu", 133: "gn", 134: "ay", 135: "tt", 136: "ug", 137: "dz", 138: "jv", 139: "su", 140: "gl", 141: "af", 142: "br", 143: "iu", 144: "gd", 145: "gv", 146: "ga", 147: "to", 148: "el-polyton", 149: "kl", 150: "az", 151: "nn" }, qe = { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 5, 11: 1, 12: 4, 13: 0, 14: 6, 15: 0, 16: 0, 17: 0, 18: 0, 19: 2, 20: 4, 21: 9, 22: 21, 23: 3, 24: 29, 25: 29, 26: 29, 27: 29, 28: 29, 29: 0, 30: 0, 31: 4, 32: 7, 33: 25, 34: 0, 35: 0, 36: 0, 37: 0, 38: 29, 39: 29, 40: 0, 41: 5, 42: 7, 43: 7, 44: 7, 45: 7, 46: 7, 47: 7, 48: 7, 49: 7, 50: 4, 51: 24, 52: 23, 53: 7, 54: 7, 55: 7, 56: 7, 57: 27, 58: 7, 59: 4, 60: 4, 61: 4, 62: 4, 63: 26, 64: 9, 65: 9, 66: 9, 67: 13, 68: 13, 69: 11, 70: 10, 71: 12, 72: 17, 73: 16, 74: 14, 75: 15, 76: 18, 77: 19, 78: 20, 79: 22, 80: 30, 81: 0, 82: 0, 83: 0, 84: 4, 85: 28, 86: 28, 87: 28, 88: 0, 89: 0, 90: 0, 91: 0, 92: 0, 93: 0, 94: 0, 128: 0, 129: 0, 130: 0, 131: 0, 132: 0, 133: 0, 134: 0, 135: 7, 136: 4, 137: 26, 138: 0, 139: 0, 140: 0, 141: 0, 142: 0, 143: 28, 144: 0, 145: 0, 146: 0, 147: 0, 148: 6, 149: 0, 150: 0, 151: 0 }, Xe = { 1078: "af", 1052: "sq", 1156: "gsw", 1118: "am", 5121: "ar-DZ", 15361: "ar-BH", 3073: "ar", 2049: "ar-IQ", 11265: "ar-JO", 13313: "ar-KW", 12289: "ar-LB", 4097: "ar-LY", 6145: "ary", 8193: "ar-OM", 16385: "ar-QA", 1025: "ar-SA", 10241: "ar-SY", 7169: "aeb", 14337: "ar-AE", 9217: "ar-YE", 1067: "hy", 1101: "as", 2092: "az-Cyrl", 1068: "az", 1133: "ba", 1069: "eu", 1059: "be", 2117: "bn", 1093: "bn-IN", 8218: "bs-Cyrl", 5146: "bs", 1150: "br", 1026: "bg", 1027: "ca", 3076: "zh-HK", 5124: "zh-MO", 2052: "zh", 4100: "zh-SG", 1028: "zh-TW", 1155: "co", 1050: "hr", 4122: "hr-BA", 1029: "cs", 1030: "da", 1164: "prs", 1125: "dv", 2067: "nl-BE", 1043: "nl", 3081: "en-AU", 10249: "en-BZ", 4105: "en-CA", 9225: "en-029", 16393: "en-IN", 6153: "en-IE", 8201: "en-JM", 17417: "en-MY", 5129: "en-NZ", 13321: "en-PH", 18441: "en-SG", 7177: "en-ZA", 11273: "en-TT", 2057: "en-GB", 1033: "en", 12297: "en-ZW", 1061: "et", 1080: "fo", 1124: "fil", 1035: "fi", 2060: "fr-BE", 3084: "fr-CA", 1036: "fr", 5132: "fr-LU", 6156: "fr-MC", 4108: "fr-CH", 1122: "fy", 1110: "gl", 1079: "ka", 3079: "de-AT", 1031: "de", 5127: "de-LI", 4103: "de-LU", 2055: "de-CH", 1032: "el", 1135: "kl", 1095: "gu", 1128: "ha", 1037: "he", 1081: "hi", 1038: "hu", 1039: "is", 1136: "ig", 1057: "id", 1117: "iu", 2141: "iu-Latn", 2108: "ga", 1076: "xh", 1077: "zu", 1040: "it", 2064: "it-CH", 1041: "ja", 1099: "kn", 1087: "kk", 1107: "km", 1158: "quc", 1159: "rw", 1089: "sw", 1111: "kok", 1042: "ko", 1088: "ky", 1108: "lo", 1062: "lv", 1063: "lt", 2094: "dsb", 1134: "lb", 1071: "mk", 2110: "ms-BN", 1086: "ms", 1100: "ml", 1082: "mt", 1153: "mi", 1146: "arn", 1102: "mr", 1148: "moh", 1104: "mn", 2128: "mn-CN", 1121: "ne", 1044: "nb", 2068: "nn", 1154: "oc", 1096: "or", 1123: "ps", 1045: "pl", 1046: "pt", 2070: "pt-PT", 1094: "pa", 1131: "qu-BO", 2155: "qu-EC", 3179: "qu", 1048: "ro", 1047: "rm", 1049: "ru", 9275: "smn", 4155: "smj-NO", 5179: "smj", 3131: "se-FI", 1083: "se", 2107: "se-SE", 8251: "sms", 6203: "sma-NO", 7227: "sms", 1103: "sa", 7194: "sr-Cyrl-BA", 3098: "sr", 6170: "sr-Latn-BA", 2074: "sr-Latn", 1132: "nso", 1074: "tn", 1115: "si", 1051: "sk", 1060: "sl", 11274: "es-AR", 16394: "es-BO", 13322: "es-CL", 9226: "es-CO", 5130: "es-CR", 7178: "es-DO", 12298: "es-EC", 17418: "es-SV", 4106: "es-GT", 18442: "es-HN", 2058: "es-MX", 19466: "es-NI", 6154: "es-PA", 15370: "es-PY", 10250: "es-PE", 20490: "es-PR", 3082: "es", 1034: "es", 21514: "es-US", 14346: "es-UY", 8202: "es-VE", 2077: "sv-FI", 1053: "sv", 1114: "syr", 1064: "tg", 2143: "tzm", 1097: "ta", 1092: "tt", 1098: "te", 1054: "th", 1105: "bo", 1055: "tr", 1090: "tk", 1152: "ug", 1058: "uk", 1070: "hsb", 1056: "ur", 2115: "uz-Cyrl", 1091: "uz", 1066: "vi", 1106: "cy", 1160: "wo", 1157: "sah", 1144: "ii", 1130: "yo" };
            function Ye(e3, t3, r3) {
              switch (e3) {
                case 0:
                  if (t3 === 65535)
                    return "und";
                  if (r3)
                    return r3[t3];
                  break;
                case 1:
                  return We[t3];
                case 3:
                  return Xe[t3];
              }
            }
            var Ze = "utf-16", Qe = { 0: "macintosh", 1: "x-mac-japanese", 2: "x-mac-chinesetrad", 3: "x-mac-korean", 6: "x-mac-greek", 7: "x-mac-cyrillic", 9: "x-mac-devanagai", 10: "x-mac-gurmukhi", 11: "x-mac-gujarati", 12: "x-mac-oriya", 13: "x-mac-bengali", 14: "x-mac-tamil", 15: "x-mac-telugu", 16: "x-mac-kannada", 17: "x-mac-malayalam", 18: "x-mac-sinhalese", 19: "x-mac-burmese", 20: "x-mac-khmer", 21: "x-mac-thai", 22: "x-mac-lao", 23: "x-mac-georgian", 24: "x-mac-armenian", 25: "x-mac-chinesesimp", 26: "x-mac-tibetan", 27: "x-mac-mongolian", 28: "x-mac-ethiopic", 29: "x-mac-ce", 30: "x-mac-vietnamese", 31: "x-mac-extarabic" }, Ke = { 15: "x-mac-icelandic", 17: "x-mac-turkish", 18: "x-mac-croatian", 24: "x-mac-ce", 25: "x-mac-ce", 26: "x-mac-ce", 27: "x-mac-ce", 28: "x-mac-ce", 30: "x-mac-icelandic", 37: "x-mac-romanian", 38: "x-mac-ce", 39: "x-mac-ce", 40: "x-mac-ce", 143: "x-mac-inuit", 146: "x-mac-gaelic" };
            function Je(e3, t3, r3) {
              switch (e3) {
                case 0:
                  return Ze;
                case 1:
                  return Ke[r3] || Qe[t3];
                case 3:
                  if (t3 === 1 || t3 === 10)
                    return Ze;
              }
            }
            function $e(e3) {
              var t3 = {};
              for (var r3 in e3)
                t3[e3[r3]] = parseInt(r3);
              return t3;
            }
            function et(e3, t3, r3, n2, o2, i2) {
              return new J.Record("NameRecord", [{ name: "platformID", type: "USHORT", value: e3 }, { name: "encodingID", type: "USHORT", value: t3 }, { name: "languageID", type: "USHORT", value: r3 }, { name: "nameID", type: "USHORT", value: n2 }, { name: "length", type: "USHORT", value: o2 }, { name: "offset", type: "USHORT", value: i2 }]);
            }
            function tt(e3, t3) {
              var r3 = function(e4, t4) {
                var r4 = e4.length, n3 = t4.length - r4 + 1;
                e:
                  for (var o3 = 0; o3 < n3; o3++)
                    for (; o3 < n3; o3++) {
                      for (var i2 = 0; i2 < r4; i2++)
                        if (t4[o3 + i2] !== e4[i2])
                          continue e;
                      return o3;
                    }
                return -1;
              }(e3, t3);
              if (r3 < 0) {
                r3 = t3.length;
                for (var n2 = 0, o2 = e3.length; n2 < o2; ++n2)
                  t3.push(e3[n2]);
              }
              return r3;
            }
            var rt = { parse: function(e3, t3, r3) {
              for (var n2 = {}, o2 = new ae.Parser(e3, t3), i2 = o2.parseUShort(), a2 = o2.parseUShort(), s2 = o2.offset + o2.parseUShort(), l2 = 0; l2 < a2; l2++) {
                var u2 = o2.parseUShort(), c2 = o2.parseUShort(), d2 = o2.parseUShort(), f2 = o2.parseUShort(), h2 = He[f2] || f2, p2 = o2.parseUShort(), y2 = o2.parseUShort(), m2 = Ye(u2, d2, r3), g2 = Je(u2, c2, d2);
                if (g2 !== void 0 && m2 !== void 0) {
                  var v2 = void 0;
                  if (v2 = g2 === Ze ? P.UTF16(e3, s2 + y2, p2) : P.MACSTRING(e3, s2 + y2, p2, g2)) {
                    var b2 = n2[h2];
                    b2 === void 0 && (b2 = n2[h2] = {}), b2[m2] = v2;
                  }
                }
              }
              return i2 === 1 && o2.parseUShort(), n2;
            }, make: function(e3, t3) {
              var r3, n2 = [], o2 = {}, i2 = $e(He);
              for (var a2 in e3) {
                var s2 = i2[a2];
                if (s2 === void 0 && (s2 = a2), r3 = parseInt(s2), isNaN(r3))
                  throw new Error('Name table entry "' + a2 + '" does not exist, see nameTableNames for complete list.');
                o2[r3] = e3[a2], n2.push(r3);
              }
              for (var l2 = $e(We), u2 = $e(Xe), c2 = [], d2 = [], f2 = 0; f2 < n2.length; f2++) {
                var h2 = o2[r3 = n2[f2]];
                for (var p2 in h2) {
                  var y2 = h2[p2], m2 = 1, g2 = l2[p2], v2 = qe[g2], b2 = Je(m2, v2, g2), _2 = k.MACSTRING(y2, b2);
                  _2 === void 0 && (m2 = 0, (g2 = t3.indexOf(p2)) < 0 && (g2 = t3.length, t3.push(p2)), v2 = 4, _2 = k.UTF16(y2));
                  var x2 = tt(_2, d2);
                  c2.push(et(m2, v2, g2, r3, _2.length, x2));
                  var w2 = u2[p2];
                  if (w2 !== void 0) {
                    var S2 = k.UTF16(y2), j2 = tt(S2, d2);
                    c2.push(et(3, 1, w2, r3, S2.length, j2));
                  }
                }
              }
              c2.sort(function(e4, t4) {
                return e4.platformID - t4.platformID || e4.encodingID - t4.encodingID || e4.languageID - t4.languageID || e4.nameID - t4.nameID;
              });
              for (var M2 = new J.Table("name", [{ name: "format", type: "USHORT", value: 0 }, { name: "count", type: "USHORT", value: c2.length }, { name: "stringOffset", type: "USHORT", value: 6 + 12 * c2.length }]), E2 = 0; E2 < c2.length; E2++)
                M2.fields.push({ name: "record_" + E2, type: "RECORD", value: c2[E2] });
              return M2.fields.push({ name: "strings", type: "LITERAL", value: d2 }), M2;
            } }, nt = [{ begin: 0, end: 127 }, { begin: 128, end: 255 }, { begin: 256, end: 383 }, { begin: 384, end: 591 }, { begin: 592, end: 687 }, { begin: 688, end: 767 }, { begin: 768, end: 879 }, { begin: 880, end: 1023 }, { begin: 11392, end: 11519 }, { begin: 1024, end: 1279 }, { begin: 1328, end: 1423 }, { begin: 1424, end: 1535 }, { begin: 42240, end: 42559 }, { begin: 1536, end: 1791 }, { begin: 1984, end: 2047 }, { begin: 2304, end: 2431 }, { begin: 2432, end: 2559 }, { begin: 2560, end: 2687 }, { begin: 2688, end: 2815 }, { begin: 2816, end: 2943 }, { begin: 2944, end: 3071 }, { begin: 3072, end: 3199 }, { begin: 3200, end: 3327 }, { begin: 3328, end: 3455 }, { begin: 3584, end: 3711 }, { begin: 3712, end: 3839 }, { begin: 4256, end: 4351 }, { begin: 6912, end: 7039 }, { begin: 4352, end: 4607 }, { begin: 7680, end: 7935 }, { begin: 7936, end: 8191 }, { begin: 8192, end: 8303 }, { begin: 8304, end: 8351 }, { begin: 8352, end: 8399 }, { begin: 8400, end: 8447 }, { begin: 8448, end: 8527 }, { begin: 8528, end: 8591 }, { begin: 8592, end: 8703 }, { begin: 8704, end: 8959 }, { begin: 8960, end: 9215 }, { begin: 9216, end: 9279 }, { begin: 9280, end: 9311 }, { begin: 9312, end: 9471 }, { begin: 9472, end: 9599 }, { begin: 9600, end: 9631 }, { begin: 9632, end: 9727 }, { begin: 9728, end: 9983 }, { begin: 9984, end: 10175 }, { begin: 12288, end: 12351 }, { begin: 12352, end: 12447 }, { begin: 12448, end: 12543 }, { begin: 12544, end: 12591 }, { begin: 12592, end: 12687 }, { begin: 43072, end: 43135 }, { begin: 12800, end: 13055 }, { begin: 13056, end: 13311 }, { begin: 44032, end: 55215 }, { begin: 55296, end: 57343 }, { begin: 67840, end: 67871 }, { begin: 19968, end: 40959 }, { begin: 57344, end: 63743 }, { begin: 12736, end: 12783 }, { begin: 64256, end: 64335 }, { begin: 64336, end: 65023 }, { begin: 65056, end: 65071 }, { begin: 65040, end: 65055 }, { begin: 65104, end: 65135 }, { begin: 65136, end: 65279 }, { begin: 65280, end: 65519 }, { begin: 65520, end: 65535 }, { begin: 3840, end: 4095 }, { begin: 1792, end: 1871 }, { begin: 1920, end: 1983 }, { begin: 3456, end: 3583 }, { begin: 4096, end: 4255 }, { begin: 4608, end: 4991 }, { begin: 5024, end: 5119 }, { begin: 5120, end: 5759 }, { begin: 5760, end: 5791 }, { begin: 5792, end: 5887 }, { begin: 6016, end: 6143 }, { begin: 6144, end: 6319 }, { begin: 10240, end: 10495 }, { begin: 40960, end: 42127 }, { begin: 5888, end: 5919 }, { begin: 66304, end: 66351 }, { begin: 66352, end: 66383 }, { begin: 66560, end: 66639 }, { begin: 118784, end: 119039 }, { begin: 119808, end: 120831 }, { begin: 1044480, end: 1048573 }, { begin: 65024, end: 65039 }, { begin: 917504, end: 917631 }, { begin: 6400, end: 6479 }, { begin: 6480, end: 6527 }, { begin: 6528, end: 6623 }, { begin: 6656, end: 6687 }, { begin: 11264, end: 11359 }, { begin: 11568, end: 11647 }, { begin: 19904, end: 19967 }, { begin: 43008, end: 43055 }, { begin: 65536, end: 65663 }, { begin: 65856, end: 65935 }, { begin: 66432, end: 66463 }, { begin: 66464, end: 66527 }, { begin: 66640, end: 66687 }, { begin: 66688, end: 66735 }, { begin: 67584, end: 67647 }, { begin: 68096, end: 68191 }, { begin: 119552, end: 119647 }, { begin: 73728, end: 74751 }, { begin: 119648, end: 119679 }, { begin: 7040, end: 7103 }, { begin: 7168, end: 7247 }, { begin: 7248, end: 7295 }, { begin: 43136, end: 43231 }, { begin: 43264, end: 43311 }, { begin: 43312, end: 43359 }, { begin: 43520, end: 43615 }, { begin: 65936, end: 65999 }, { begin: 66e3, end: 66047 }, { begin: 66208, end: 66271 }, { begin: 127024, end: 127135 }];
            var ot = { parse: function(e3, t3) {
              var r3 = {}, n2 = new ae.Parser(e3, t3);
              r3.version = n2.parseUShort(), r3.xAvgCharWidth = n2.parseShort(), r3.usWeightClass = n2.parseUShort(), r3.usWidthClass = n2.parseUShort(), r3.fsType = n2.parseUShort(), r3.ySubscriptXSize = n2.parseShort(), r3.ySubscriptYSize = n2.parseShort(), r3.ySubscriptXOffset = n2.parseShort(), r3.ySubscriptYOffset = n2.parseShort(), r3.ySuperscriptXSize = n2.parseShort(), r3.ySuperscriptYSize = n2.parseShort(), r3.ySuperscriptXOffset = n2.parseShort(), r3.ySuperscriptYOffset = n2.parseShort(), r3.yStrikeoutSize = n2.parseShort(), r3.yStrikeoutPosition = n2.parseShort(), r3.sFamilyClass = n2.parseShort(), r3.panose = [];
              for (var o2 = 0; o2 < 10; o2++)
                r3.panose[o2] = n2.parseByte();
              return r3.ulUnicodeRange1 = n2.parseULong(), r3.ulUnicodeRange2 = n2.parseULong(), r3.ulUnicodeRange3 = n2.parseULong(), r3.ulUnicodeRange4 = n2.parseULong(), r3.achVendID = String.fromCharCode(n2.parseByte(), n2.parseByte(), n2.parseByte(), n2.parseByte()), r3.fsSelection = n2.parseUShort(), r3.usFirstCharIndex = n2.parseUShort(), r3.usLastCharIndex = n2.parseUShort(), r3.sTypoAscender = n2.parseShort(), r3.sTypoDescender = n2.parseShort(), r3.sTypoLineGap = n2.parseShort(), r3.usWinAscent = n2.parseUShort(), r3.usWinDescent = n2.parseUShort(), 1 <= r3.version && (r3.ulCodePageRange1 = n2.parseULong(), r3.ulCodePageRange2 = n2.parseULong()), 2 <= r3.version && (r3.sxHeight = n2.parseShort(), r3.sCapHeight = n2.parseShort(), r3.usDefaultChar = n2.parseUShort(), r3.usBreakChar = n2.parseUShort(), r3.usMaxContent = n2.parseUShort()), r3;
            }, make: function(e3) {
              return new J.Table("OS/2", [{ name: "version", type: "USHORT", value: 3 }, { name: "xAvgCharWidth", type: "SHORT", value: 0 }, { name: "usWeightClass", type: "USHORT", value: 0 }, { name: "usWidthClass", type: "USHORT", value: 0 }, { name: "fsType", type: "USHORT", value: 0 }, { name: "ySubscriptXSize", type: "SHORT", value: 650 }, { name: "ySubscriptYSize", type: "SHORT", value: 699 }, { name: "ySubscriptXOffset", type: "SHORT", value: 0 }, { name: "ySubscriptYOffset", type: "SHORT", value: 140 }, { name: "ySuperscriptXSize", type: "SHORT", value: 650 }, { name: "ySuperscriptYSize", type: "SHORT", value: 699 }, { name: "ySuperscriptXOffset", type: "SHORT", value: 0 }, { name: "ySuperscriptYOffset", type: "SHORT", value: 479 }, { name: "yStrikeoutSize", type: "SHORT", value: 49 }, { name: "yStrikeoutPosition", type: "SHORT", value: 258 }, { name: "sFamilyClass", type: "SHORT", value: 0 }, { name: "bFamilyType", type: "BYTE", value: 0 }, { name: "bSerifStyle", type: "BYTE", value: 0 }, { name: "bWeight", type: "BYTE", value: 0 }, { name: "bProportion", type: "BYTE", value: 0 }, { name: "bContrast", type: "BYTE", value: 0 }, { name: "bStrokeVariation", type: "BYTE", value: 0 }, { name: "bArmStyle", type: "BYTE", value: 0 }, { name: "bLetterform", type: "BYTE", value: 0 }, { name: "bMidline", type: "BYTE", value: 0 }, { name: "bXHeight", type: "BYTE", value: 0 }, { name: "ulUnicodeRange1", type: "ULONG", value: 0 }, { name: "ulUnicodeRange2", type: "ULONG", value: 0 }, { name: "ulUnicodeRange3", type: "ULONG", value: 0 }, { name: "ulUnicodeRange4", type: "ULONG", value: 0 }, { name: "achVendID", type: "CHARARRAY", value: "XXXX" }, { name: "fsSelection", type: "USHORT", value: 0 }, { name: "usFirstCharIndex", type: "USHORT", value: 0 }, { name: "usLastCharIndex", type: "USHORT", value: 0 }, { name: "sTypoAscender", type: "SHORT", value: 0 }, { name: "sTypoDescender", type: "SHORT", value: 0 }, { name: "sTypoLineGap", type: "SHORT", value: 0 }, { name: "usWinAscent", type: "USHORT", value: 0 }, { name: "usWinDescent", type: "USHORT", value: 0 }, { name: "ulCodePageRange1", type: "ULONG", value: 0 }, { name: "ulCodePageRange2", type: "ULONG", value: 0 }, { name: "sxHeight", type: "SHORT", value: 0 }, { name: "sCapHeight", type: "SHORT", value: 0 }, { name: "usDefaultChar", type: "USHORT", value: 0 }, { name: "usBreakChar", type: "USHORT", value: 0 }, { name: "usMaxContext", type: "USHORT", value: 0 }], e3);
            }, unicodeRanges: nt, getUnicodeRange: function(e3) {
              for (var t3 = 0; t3 < nt.length; t3 += 1) {
                var r3 = nt[t3];
                if (e3 >= r3.begin && e3 < r3.end)
                  return t3;
              }
              return -1;
            } };
            var it = { parse: function(e3, t3) {
              var r3 = {}, n2 = new ae.Parser(e3, t3);
              switch (r3.version = n2.parseVersion(), r3.italicAngle = n2.parseFixed(), r3.underlinePosition = n2.parseShort(), r3.underlineThickness = n2.parseShort(), r3.isFixedPitch = n2.parseULong(), r3.minMemType42 = n2.parseULong(), r3.maxMemType42 = n2.parseULong(), r3.minMemType1 = n2.parseULong(), r3.maxMemType1 = n2.parseULong(), r3.version) {
                case 1:
                  r3.names = de.slice();
                  break;
                case 2:
                  r3.numberOfGlyphs = n2.parseUShort(), r3.glyphNameIndex = new Array(r3.numberOfGlyphs);
                  for (var o2 = 0; o2 < r3.numberOfGlyphs; o2++)
                    r3.glyphNameIndex[o2] = n2.parseUShort();
                  r3.names = [];
                  for (var i2 = 0; i2 < r3.numberOfGlyphs; i2++)
                    if (r3.glyphNameIndex[i2] >= de.length) {
                      var a2 = n2.parseChar();
                      r3.names.push(n2.parseString(a2));
                    }
                  break;
                case 2.5:
                  r3.numberOfGlyphs = n2.parseUShort(), r3.offset = new Array(r3.numberOfGlyphs);
                  for (var s2 = 0; s2 < r3.numberOfGlyphs; s2++)
                    r3.offset[s2] = n2.parseChar();
              }
              return r3;
            }, make: function() {
              return new J.Table("post", [{ name: "version", type: "FIXED", value: 196608 }, { name: "italicAngle", type: "FIXED", value: 0 }, { name: "underlinePosition", type: "FWORD", value: 0 }, { name: "underlineThickness", type: "FWORD", value: 0 }, { name: "isFixedPitch", type: "ULONG", value: 0 }, { name: "minMemType42", type: "ULONG", value: 0 }, { name: "maxMemType42", type: "ULONG", value: 0 }, { name: "minMemType1", type: "ULONG", value: 0 }, { name: "maxMemType1", type: "ULONG", value: 0 }]);
            } }, at = new Array(9);
            at[1] = function() {
              var e3 = this.offset + this.relativeOffset, t3 = this.parseUShort();
              return t3 === 1 ? { substFormat: 1, coverage: this.parsePointer(oe.coverage), deltaGlyphId: this.parseUShort() } : t3 === 2 ? { substFormat: 2, coverage: this.parsePointer(oe.coverage), substitute: this.parseOffset16List() } : void L.assert(false, "0x" + e3.toString(16) + ": lookup type 1 format must be 1 or 2.");
            }, at[2] = function() {
              var e3 = this.parseUShort();
              return L.argument(e3 === 1, "GSUB Multiple Substitution Subtable identifier-format must be 1"), { substFormat: e3, coverage: this.parsePointer(oe.coverage), sequences: this.parseListOfLists() };
            }, at[3] = function() {
              var e3 = this.parseUShort();
              return L.argument(e3 === 1, "GSUB Alternate Substitution Subtable identifier-format must be 1"), { substFormat: e3, coverage: this.parsePointer(oe.coverage), alternateSets: this.parseListOfLists() };
            }, at[4] = function() {
              var e3 = this.parseUShort();
              return L.argument(e3 === 1, "GSUB ligature table identifier-format must be 1"), { substFormat: e3, coverage: this.parsePointer(oe.coverage), ligatureSets: this.parseListOfLists(function() {
                return { ligGlyph: this.parseUShort(), components: this.parseUShortList(this.parseUShort() - 1) };
              }) };
            };
            var st = { sequenceIndex: oe.uShort, lookupListIndex: oe.uShort };
            at[5] = function() {
              var e3 = this.offset + this.relativeOffset, t3 = this.parseUShort();
              if (t3 === 1)
                return { substFormat: t3, coverage: this.parsePointer(oe.coverage), ruleSets: this.parseListOfLists(function() {
                  var e4 = this.parseUShort(), t4 = this.parseUShort();
                  return { input: this.parseUShortList(e4 - 1), lookupRecords: this.parseRecordList(t4, st) };
                }) };
              if (t3 === 2)
                return { substFormat: t3, coverage: this.parsePointer(oe.coverage), classDef: this.parsePointer(oe.classDef), classSets: this.parseListOfLists(function() {
                  var e4 = this.parseUShort(), t4 = this.parseUShort();
                  return { classes: this.parseUShortList(e4 - 1), lookupRecords: this.parseRecordList(t4, st) };
                }) };
              if (t3 === 3) {
                var r3 = this.parseUShort(), n2 = this.parseUShort();
                return { substFormat: t3, coverages: this.parseList(r3, oe.pointer(oe.coverage)), lookupRecords: this.parseRecordList(n2, st) };
              }
              L.assert(false, "0x" + e3.toString(16) + ": lookup type 5 format must be 1, 2 or 3.");
            }, at[6] = function() {
              var e3 = this.offset + this.relativeOffset, t3 = this.parseUShort();
              return t3 === 1 ? { substFormat: 1, coverage: this.parsePointer(oe.coverage), chainRuleSets: this.parseListOfLists(function() {
                return { backtrack: this.parseUShortList(), input: this.parseUShortList(this.parseShort() - 1), lookahead: this.parseUShortList(), lookupRecords: this.parseRecordList(st) };
              }) } : t3 === 2 ? { substFormat: 2, coverage: this.parsePointer(oe.coverage), backtrackClassDef: this.parsePointer(oe.classDef), inputClassDef: this.parsePointer(oe.classDef), lookaheadClassDef: this.parsePointer(oe.classDef), chainClassSet: this.parseListOfLists(function() {
                return { backtrack: this.parseUShortList(), input: this.parseUShortList(this.parseShort() - 1), lookahead: this.parseUShortList(), lookupRecords: this.parseRecordList(st) };
              }) } : t3 === 3 ? { substFormat: 3, backtrackCoverage: this.parseList(oe.pointer(oe.coverage)), inputCoverage: this.parseList(oe.pointer(oe.coverage)), lookaheadCoverage: this.parseList(oe.pointer(oe.coverage)), lookupRecords: this.parseRecordList(st) } : void L.assert(false, "0x" + e3.toString(16) + ": lookup type 6 format must be 1, 2 or 3.");
            }, at[7] = function() {
              var e3 = this.parseUShort();
              L.argument(e3 === 1, "GSUB Extension Substitution subtable identifier-format must be 1");
              var t3 = this.parseUShort(), r3 = new oe(this.data, this.offset + this.parseULong());
              return { substFormat: 1, lookupType: t3, extension: at[t3].call(r3) };
            }, at[8] = function() {
              var e3 = this.parseUShort();
              return L.argument(e3 === 1, "GSUB Reverse Chaining Contextual Single Substitution Subtable identifier-format must be 1"), { substFormat: e3, coverage: this.parsePointer(oe.coverage), backtrackCoverage: this.parseList(oe.pointer(oe.coverage)), lookaheadCoverage: this.parseList(oe.pointer(oe.coverage)), substitutes: this.parseUShortList() };
            };
            var lt = new Array(9);
            lt[1] = function(e3) {
              return e3.substFormat === 1 ? new J.Table("substitutionTable", [{ name: "substFormat", type: "USHORT", value: 1 }, { name: "coverage", type: "TABLE", value: new J.Coverage(e3.coverage) }, { name: "deltaGlyphID", type: "USHORT", value: e3.deltaGlyphId }]) : new J.Table("substitutionTable", [{ name: "substFormat", type: "USHORT", value: 2 }, { name: "coverage", type: "TABLE", value: new J.Coverage(e3.coverage) }].concat(J.ushortList("substitute", e3.substitute)));
            }, lt[3] = function(e3) {
              return L.assert(e3.substFormat === 1, "Lookup type 3 substFormat must be 1."), new J.Table("substitutionTable", [{ name: "substFormat", type: "USHORT", value: 1 }, { name: "coverage", type: "TABLE", value: new J.Coverage(e3.coverage) }].concat(J.tableList("altSet", e3.alternateSets, function(e4) {
                return new J.Table("alternateSetTable", J.ushortList("alternate", e4));
              })));
            }, lt[4] = function(e3) {
              return L.assert(e3.substFormat === 1, "Lookup type 4 substFormat must be 1."), new J.Table("substitutionTable", [{ name: "substFormat", type: "USHORT", value: 1 }, { name: "coverage", type: "TABLE", value: new J.Coverage(e3.coverage) }].concat(J.tableList("ligSet", e3.ligatureSets, function(e4) {
                return new J.Table("ligatureSetTable", J.tableList("ligature", e4, function(e5) {
                  return new J.Table("ligatureTable", [{ name: "ligGlyph", type: "USHORT", value: e5.ligGlyph }].concat(J.ushortList("component", e5.components, e5.components.length + 1)));
                }));
              })));
            };
            var ut = { parse: function(e3, t3) {
              var r3 = new oe(e3, t3 = t3 || 0), n2 = r3.parseVersion(1);
              return L.argument(n2 === 1 || n2 === 1.1, "Unsupported GSUB table version."), n2 === 1 ? { version: n2, scripts: r3.parseScriptList(), features: r3.parseFeatureList(), lookups: r3.parseLookupList(at) } : { version: n2, scripts: r3.parseScriptList(), features: r3.parseFeatureList(), lookups: r3.parseLookupList(at), variations: r3.parseFeatureVariationsList() };
            }, make: function(e3) {
              return new J.Table("GSUB", [{ name: "version", type: "ULONG", value: 65536 }, { name: "scripts", type: "TABLE", value: new J.ScriptList(e3.scripts) }, { name: "features", type: "TABLE", value: new J.FeatureList(e3.features) }, { name: "lookups", type: "TABLE", value: new J.LookupList(e3.lookups, lt) }]);
            } };
            var ct = { parse: function(e3, t3) {
              var r3 = new ae.Parser(e3, t3), n2 = r3.parseULong();
              L.argument(n2 === 1, "Unsupported META table version."), r3.parseULong(), r3.parseULong();
              for (var o2 = r3.parseULong(), i2 = {}, a2 = 0; a2 < o2; a2++) {
                var s2 = r3.parseTag(), l2 = r3.parseULong(), u2 = r3.parseULong(), c2 = P.UTF8(e3, t3 + l2, u2);
                i2[s2] = c2;
              }
              return i2;
            }, make: function(e3) {
              var t3 = Object.keys(e3).length, r3 = "", n2 = 16 + 12 * t3, o2 = new J.Table("meta", [{ name: "version", type: "ULONG", value: 1 }, { name: "flags", type: "ULONG", value: 0 }, { name: "offset", type: "ULONG", value: n2 }, { name: "numTags", type: "ULONG", value: t3 }]);
              for (var i2 in e3) {
                var a2 = r3.length;
                r3 += e3[i2], o2.fields.push({ name: "tag " + i2, type: "TAG", value: i2 }), o2.fields.push({ name: "offset " + i2, type: "ULONG", value: n2 + a2 }), o2.fields.push({ name: "length " + i2, type: "ULONG", value: e3[i2].length });
              }
              return o2.fields.push({ name: "stringPool", type: "CHARARRAY", value: r3 }), o2;
            } };
            function dt(e3) {
              return Math.log(e3) / Math.log(2) | 0;
            }
            function ft(e3) {
              for (; e3.length % 4 != 0; )
                e3.push(0);
              for (var t3 = 0, r3 = 0; r3 < e3.length; r3 += 4)
                t3 += (e3[r3] << 24) + (e3[r3 + 1] << 16) + (e3[r3 + 2] << 8) + e3[r3 + 3];
              return t3 %= Math.pow(2, 32);
            }
            function ht(e3, t3, r3, n2) {
              return new J.Record("Table Record", [{ name: "tag", type: "TAG", value: e3 !== void 0 ? e3 : "" }, { name: "checkSum", type: "ULONG", value: t3 !== void 0 ? t3 : 0 }, { name: "offset", type: "ULONG", value: r3 !== void 0 ? r3 : 0 }, { name: "length", type: "ULONG", value: n2 !== void 0 ? n2 : 0 }]);
            }
            function pt(e3) {
              var t3 = new J.Table("sfnt", [{ name: "version", type: "TAG", value: "OTTO" }, { name: "numTables", type: "USHORT", value: 0 }, { name: "searchRange", type: "USHORT", value: 0 }, { name: "entrySelector", type: "USHORT", value: 0 }, { name: "rangeShift", type: "USHORT", value: 0 }]);
              t3.tables = e3, t3.numTables = e3.length;
              var r3 = Math.pow(2, dt(t3.numTables));
              t3.searchRange = 16 * r3, t3.entrySelector = dt(r3), t3.rangeShift = 16 * t3.numTables - t3.searchRange;
              for (var n2 = [], o2 = [], i2 = t3.sizeOf() + ht().sizeOf() * t3.numTables; i2 % 4 != 0; )
                i2 += 1, o2.push({ name: "padding", type: "BYTE", value: 0 });
              for (var a2 = 0; a2 < e3.length; a2 += 1) {
                var s2 = e3[a2];
                L.argument(s2.tableName.length === 4, "Table name" + s2.tableName + " is invalid.");
                var l2 = s2.sizeOf(), u2 = ht(s2.tableName, ft(s2.encode()), i2, l2);
                for (n2.push({ name: u2.tag + " Table Record", type: "RECORD", value: u2 }), o2.push({ name: s2.tableName + " table", type: "RECORD", value: s2 }), i2 += l2, L.argument(!isNaN(i2), "Something went wrong calculating the offset."); i2 % 4 != 0; )
                  i2 += 1, o2.push({ name: "padding", type: "BYTE", value: 0 });
              }
              return n2.sort(function(e4, t4) {
                return e4.value.tag > t4.value.tag ? 1 : -1;
              }), t3.fields = t3.fields.concat(n2), t3.fields = t3.fields.concat(o2), t3;
            }
            function yt(e3, t3, r3) {
              for (var n2 = 0; n2 < t3.length; n2 += 1) {
                var o2 = e3.charToGlyphIndex(t3[n2]);
                if (0 < o2)
                  return e3.glyphs.get(o2).getMetrics();
              }
              return r3;
            }
            var mt = { make: pt, fontToTable: function(e3) {
              for (var t3, r3 = [], n2 = [], o2 = [], i2 = [], a2 = [], s2 = [], l2 = [], u2 = 0, c2 = 0, d2 = 0, f2 = 0, h2 = 0, p2 = 0; p2 < e3.glyphs.length; p2 += 1) {
                var y2 = e3.glyphs.get(p2), m2 = 0 | y2.unicode;
                if (isNaN(y2.advanceWidth))
                  throw new Error("Glyph " + y2.name + " (" + p2 + "): advanceWidth is not a number.");
                (m2 < t3 || t3 === void 0) && 0 < m2 && (t3 = m2), u2 < m2 && (u2 = m2);
                var g2 = ot.getUnicodeRange(m2);
                if (g2 < 32)
                  c2 |= 1 << g2;
                else if (g2 < 64)
                  d2 |= 1 << g2 - 32;
                else if (g2 < 96)
                  f2 |= 1 << g2 - 64;
                else {
                  if (!(g2 < 123))
                    throw new Error("Unicode ranges bits > 123 are reserved for internal usage");
                  h2 |= 1 << g2 - 96;
                }
                if (y2.name !== ".notdef") {
                  var v2 = y2.getMetrics();
                  r3.push(v2.xMin), n2.push(v2.yMin), o2.push(v2.xMax), i2.push(v2.yMax), s2.push(v2.leftSideBearing), l2.push(v2.rightSideBearing), a2.push(y2.advanceWidth);
                }
              }
              var b2 = { xMin: Math.min.apply(null, r3), yMin: Math.min.apply(null, n2), xMax: Math.max.apply(null, o2), yMax: Math.max.apply(null, i2), advanceWidthMax: Math.max.apply(null, a2), advanceWidthAvg: function(e4) {
                for (var t4 = 0, r4 = 0; r4 < e4.length; r4 += 1)
                  t4 += e4[r4];
                return t4 / e4.length;
              }(a2), minLeftSideBearing: Math.min.apply(null, s2), maxLeftSideBearing: Math.max.apply(null, s2), minRightSideBearing: Math.min.apply(null, l2) };
              b2.ascender = e3.ascender, b2.descender = e3.descender;
              var _2 = Fe.make({ flags: 3, unitsPerEm: e3.unitsPerEm, xMin: b2.xMin, yMin: b2.yMin, xMax: b2.xMax, yMax: b2.yMax, lowestRecPPEM: 3, createdTimestamp: e3.createdTimestamp }), x2 = Be.make({ ascender: b2.ascender, descender: b2.descender, advanceWidthMax: b2.advanceWidthMax, minLeftSideBearing: b2.minLeftSideBearing, minRightSideBearing: b2.minRightSideBearing, xMaxExtent: b2.maxLeftSideBearing + (b2.xMax - b2.xMin), numberOfHMetrics: e3.glyphs.length }), w2 = ze.make(e3.glyphs.length), S2 = ot.make({ xAvgCharWidth: Math.round(b2.advanceWidthAvg), usWeightClass: e3.tables.os2.usWeightClass, usWidthClass: e3.tables.os2.usWidthClass, usFirstCharIndex: t3, usLastCharIndex: u2, ulUnicodeRange1: c2, ulUnicodeRange2: d2, ulUnicodeRange3: f2, ulUnicodeRange4: h2, fsSelection: e3.tables.os2.fsSelection, sTypoAscender: b2.ascender, sTypoDescender: b2.descender, sTypoLineGap: 0, usWinAscent: b2.yMax, usWinDescent: Math.abs(b2.yMin), ulCodePageRange1: 1, sxHeight: yt(e3, "xyvw", { yMax: Math.round(b2.ascender / 2) }).yMax, sCapHeight: yt(e3, "HIKLEFJMNTZBDPRAGOQSUVWXY", b2).yMax, usDefaultChar: e3.hasChar(" ") ? 32 : 0, usBreakChar: e3.hasChar(" ") ? 32 : 0 }), j2 = Ge.make(e3.glyphs), M2 = se.make(e3.glyphs), E2 = e3.getEnglishName("fontFamily"), T2 = e3.getEnglishName("fontSubfamily"), O2 = E2 + " " + T2, C2 = e3.getEnglishName("postScriptName");
              C2 = C2 || E2.replace(/\s/g, "") + "-" + T2;
              var L2 = {};
              for (var P2 in e3.names)
                L2[P2] = e3.names[P2];
              L2.uniqueID || (L2.uniqueID = { en: e3.getEnglishName("manufacturer") + ":" + O2 }), L2.postScriptName || (L2.postScriptName = { en: C2 }), L2.preferredFamily || (L2.preferredFamily = e3.names.fontFamily), L2.preferredSubfamily || (L2.preferredSubfamily = e3.names.fontSubfamily);
              var k2 = [], A2 = rt.make(L2, k2), R2 = 0 < k2.length ? Ve.make(k2) : void 0, D2 = it.make(), I2 = Ne.make(e3.glyphs, { version: e3.getEnglishName("version"), fullName: O2, familyName: E2, weightName: T2, postScriptName: C2, unitsPerEm: e3.unitsPerEm, fontBBox: [0, b2.yMin, b2.ascender, b2.advanceWidthMax] }), U2 = e3.metas && 0 < Object.keys(e3.metas).length ? ct.make(e3.metas) : void 0, N2 = [_2, x2, w2, S2, A2, M2, D2, I2, j2];
              R2 && N2.push(R2), e3.tables.gsub && N2.push(ut.make(e3.tables.gsub)), U2 && N2.push(U2);
              for (var F2 = pt(N2), B2 = ft(F2.encode()), G2 = F2.fields, V2 = false, z2 = 0; z2 < G2.length; z2 += 1)
                if (G2[z2].name === "head table") {
                  G2[z2].value.checkSumAdjustment = 2981146554 - B2, V2 = true;
                  break;
                }
              if (!V2)
                throw new Error("Could not find head table with checkSum to adjust.");
              return F2;
            }, computeCheckSum: ft };
            function gt(e3, t3) {
              for (var r3 = 0, n2 = e3.length - 1; r3 <= n2; ) {
                var o2 = r3 + n2 >>> 1, i2 = e3[o2].tag;
                if (i2 === t3)
                  return o2;
                i2 < t3 ? r3 = 1 + o2 : n2 = o2 - 1;
              }
              return -r3 - 1;
            }
            function vt(e3, t3) {
              for (var r3 = 0, n2 = e3.length - 1; r3 <= n2; ) {
                var o2 = r3 + n2 >>> 1, i2 = e3[o2];
                if (i2 === t3)
                  return o2;
                i2 < t3 ? r3 = 1 + o2 : n2 = o2 - 1;
              }
              return -r3 - 1;
            }
            function bt(e3, t3) {
              for (var r3, n2 = 0, o2 = e3.length - 1; n2 <= o2; ) {
                var i2 = n2 + o2 >>> 1, a2 = (r3 = e3[i2]).start;
                if (a2 === t3)
                  return r3;
                a2 < t3 ? n2 = 1 + i2 : o2 = i2 - 1;
              }
              if (0 < n2)
                return t3 > (r3 = e3[n2 - 1]).end ? 0 : r3;
            }
            function _t(e3, t3) {
              this.font = e3, this.tableName = t3;
            }
            function xt(e3) {
              _t.call(this, e3, "gpos");
            }
            function wt(e3) {
              _t.call(this, e3, "gsub");
            }
            function St(e3, t3) {
              var r3 = e3.length;
              if (r3 !== t3.length)
                return false;
              for (var n2 = 0; n2 < r3; n2++)
                if (e3[n2] !== t3[n2])
                  return false;
              return true;
            }
            function jt(e3, t3, r3) {
              for (var n2 = e3.subtables, o2 = 0; o2 < n2.length; o2++) {
                var i2 = n2[o2];
                if (i2.substFormat === t3)
                  return i2;
              }
              if (r3)
                return n2.push(r3), r3;
            }
            function Mt(e3) {
              for (var t3 = new ArrayBuffer(e3.length), r3 = new Uint8Array(t3), n2 = 0; n2 < e3.length; ++n2)
                r3[n2] = e3[n2];
              return t3;
            }
            function Et(e3, t3) {
              if (!e3)
                throw t3;
            }
            function Tt(e3, t3, r3, n2, o2) {
              var i2;
              return i2 = 0 < (t3 & n2) ? (i2 = e3.parseByte(), (t3 & o2) == 0 && (i2 = -i2), r3 + i2) : 0 < (t3 & o2) ? r3 : r3 + e3.parseShort();
            }
            function Ot(e3, t3, r3) {
              var n2, o2, i2 = new ae.Parser(t3, r3);
              if (e3.numberOfContours = i2.parseShort(), e3._xMin = i2.parseShort(), e3._yMin = i2.parseShort(), e3._xMax = i2.parseShort(), e3._yMax = i2.parseShort(), 0 < e3.numberOfContours) {
                for (var a2 = e3.endPointIndices = [], s2 = 0; s2 < e3.numberOfContours; s2 += 1)
                  a2.push(i2.parseUShort());
                e3.instructionLength = i2.parseUShort(), e3.instructions = [];
                for (var l2 = 0; l2 < e3.instructionLength; l2 += 1)
                  e3.instructions.push(i2.parseByte());
                var u2 = a2[a2.length - 1] + 1;
                n2 = [];
                for (var c2 = 0; c2 < u2; c2 += 1)
                  if (o2 = i2.parseByte(), n2.push(o2), 0 < (8 & o2))
                    for (var d2 = i2.parseByte(), f2 = 0; f2 < d2; f2 += 1)
                      n2.push(o2), c2 += 1;
                if (L.argument(n2.length === u2, "Bad flags."), 0 < a2.length) {
                  var h2, p2 = [];
                  if (0 < u2) {
                    for (var y2 = 0; y2 < u2; y2 += 1)
                      o2 = n2[y2], (h2 = {}).onCurve = !!(1 & o2), h2.lastPointOfContour = 0 <= a2.indexOf(y2), p2.push(h2);
                    for (var m2 = 0, g2 = 0; g2 < u2; g2 += 1)
                      o2 = n2[g2], (h2 = p2[g2]).x = Tt(i2, o2, m2, 2, 16), m2 = h2.x;
                    for (var v2 = 0, b2 = 0; b2 < u2; b2 += 1)
                      o2 = n2[b2], (h2 = p2[b2]).y = Tt(i2, o2, v2, 4, 32), v2 = h2.y;
                  }
                  e3.points = p2;
                } else
                  e3.points = [];
              } else if (e3.numberOfContours === 0)
                e3.points = [];
              else {
                e3.isComposite = true, e3.points = [], e3.components = [];
                for (var _2 = true; _2; ) {
                  n2 = i2.parseUShort();
                  var x2 = { glyphIndex: i2.parseUShort(), xScale: 1, scale01: 0, scale10: 0, yScale: 1, dx: 0, dy: 0 };
                  0 < (1 & n2) ? 0 < (2 & n2) ? (x2.dx = i2.parseShort(), x2.dy = i2.parseShort()) : x2.matchedPoints = [i2.parseUShort(), i2.parseUShort()] : 0 < (2 & n2) ? (x2.dx = i2.parseChar(), x2.dy = i2.parseChar()) : x2.matchedPoints = [i2.parseByte(), i2.parseByte()], 0 < (8 & n2) ? x2.xScale = x2.yScale = i2.parseF2Dot14() : 0 < (64 & n2) ? (x2.xScale = i2.parseF2Dot14(), x2.yScale = i2.parseF2Dot14()) : 0 < (128 & n2) && (x2.xScale = i2.parseF2Dot14(), x2.scale01 = i2.parseF2Dot14(), x2.scale10 = i2.parseF2Dot14(), x2.yScale = i2.parseF2Dot14()), e3.components.push(x2), _2 = !!(32 & n2);
                }
                if (256 & n2) {
                  e3.instructionLength = i2.parseUShort(), e3.instructions = [];
                  for (var w2 = 0; w2 < e3.instructionLength; w2 += 1)
                    e3.instructions.push(i2.parseByte());
                }
              }
            }
            function Ct(e3, t3) {
              for (var r3 = [], n2 = 0; n2 < e3.length; n2 += 1) {
                var o2 = e3[n2], i2 = { x: t3.xScale * o2.x + t3.scale01 * o2.y + t3.dx, y: t3.scale10 * o2.x + t3.yScale * o2.y + t3.dy, onCurve: o2.onCurve, lastPointOfContour: o2.lastPointOfContour };
                r3.push(i2);
              }
              return r3;
            }
            function Lt(e3) {
              var t3 = new D();
              if (!e3)
                return t3;
              for (var r3 = function(e4) {
                for (var t4 = [], r4 = [], n3 = 0; n3 < e4.length; n3 += 1) {
                  var o3 = e4[n3];
                  r4.push(o3), o3.lastPointOfContour && (t4.push(r4), r4 = []);
                }
                return L.argument(r4.length === 0, "There are still points left in the current contour."), t4;
              }(e3), n2 = 0; n2 < r3.length; ++n2) {
                var o2 = r3[n2], i2 = null, a2 = o2[o2.length - 1], s2 = o2[0];
                if (a2.onCurve)
                  t3.moveTo(a2.x, a2.y);
                else if (s2.onCurve)
                  t3.moveTo(s2.x, s2.y);
                else {
                  var l2 = { x: 0.5 * (a2.x + s2.x), y: 0.5 * (a2.y + s2.y) };
                  t3.moveTo(l2.x, l2.y);
                }
                for (var u2 = 0; u2 < o2.length; ++u2)
                  if (i2 = a2, a2 = s2, s2 = o2[(u2 + 1) % o2.length], a2.onCurve)
                    t3.lineTo(a2.x, a2.y);
                  else {
                    var c2 = s2;
                    i2.onCurve || { x: 0.5 * (a2.x + i2.x), y: 0.5 * (a2.y + i2.y) }, s2.onCurve || (c2 = { x: 0.5 * (a2.x + s2.x), y: 0.5 * (a2.y + s2.y) }), t3.quadraticCurveTo(a2.x, a2.y, c2.x, c2.y);
                  }
                t3.closePath();
              }
              return t3;
            }
            function Pt(e3, t3) {
              if (t3.isComposite)
                for (var r3 = 0; r3 < t3.components.length; r3 += 1) {
                  var n2 = t3.components[r3], o2 = e3.get(n2.glyphIndex);
                  if (o2.getPath(), o2.points) {
                    var i2 = void 0;
                    if (n2.matchedPoints === void 0)
                      i2 = Ct(o2.points, n2);
                    else {
                      if (n2.matchedPoints[0] > t3.points.length - 1 || n2.matchedPoints[1] > o2.points.length - 1)
                        throw Error("Matched points out of range in " + t3.name);
                      var a2 = t3.points[n2.matchedPoints[0]], s2 = o2.points[n2.matchedPoints[1]], l2 = { xScale: n2.xScale, scale01: n2.scale01, scale10: n2.scale10, yScale: n2.yScale, dx: 0, dy: 0 };
                      s2 = Ct([s2], l2)[0], l2.dx = a2.x - s2.x, l2.dy = a2.y - s2.y, i2 = Ct(o2.points, l2);
                    }
                    t3.points = t3.points.concat(i2);
                  }
                }
              return Lt(t3.points);
            }
            (xt.prototype = _t.prototype = { searchTag: gt, binSearch: vt, getTable: function(e3) {
              var t3 = this.font.tables[this.tableName];
              return !t3 && e3 && (t3 = this.font.tables[this.tableName] = this.createDefaultTable()), t3;
            }, getScriptNames: function() {
              var e3 = this.getTable();
              return e3 ? e3.scripts.map(function(e4) {
                return e4.tag;
              }) : [];
            }, getDefaultScriptName: function() {
              var e3 = this.getTable();
              if (e3) {
                for (var t3 = false, r3 = 0; r3 < e3.scripts.length; r3++) {
                  var n2 = e3.scripts[r3].tag;
                  if (n2 === "DFLT")
                    return n2;
                  n2 === "latn" && (t3 = true);
                }
                return t3 ? "latn" : void 0;
              }
            }, getScriptTable: function(e3, t3) {
              var r3 = this.getTable(t3);
              if (r3) {
                e3 = e3 || "DFLT";
                var n2 = r3.scripts, o2 = gt(r3.scripts, e3);
                if (0 <= o2)
                  return n2[o2].script;
                if (t3) {
                  var i2 = { tag: e3, script: { defaultLangSys: { reserved: 0, reqFeatureIndex: 65535, featureIndexes: [] }, langSysRecords: [] } };
                  return n2.splice(-1 - o2, 0, i2), i2.script;
                }
              }
            }, getLangSysTable: function(e3, t3, r3) {
              var n2 = this.getScriptTable(e3, r3);
              if (n2) {
                if (!t3 || t3 === "dflt" || t3 === "DFLT")
                  return n2.defaultLangSys;
                var o2 = gt(n2.langSysRecords, t3);
                if (0 <= o2)
                  return n2.langSysRecords[o2].langSys;
                if (r3) {
                  var i2 = { tag: t3, langSys: { reserved: 0, reqFeatureIndex: 65535, featureIndexes: [] } };
                  return n2.langSysRecords.splice(-1 - o2, 0, i2), i2.langSys;
                }
              }
            }, getFeatureTable: function(e3, t3, r3, n2) {
              var o2 = this.getLangSysTable(e3, t3, n2);
              if (o2) {
                for (var i2, a2 = o2.featureIndexes, s2 = this.font.tables[this.tableName].features, l2 = 0; l2 < a2.length; l2++)
                  if ((i2 = s2[a2[l2]]).tag === r3)
                    return i2.feature;
                if (n2) {
                  var u2 = s2.length;
                  return L.assert(u2 === 0 || r3 >= s2[u2 - 1].tag, "Features must be added in alphabetical order."), i2 = { tag: r3, feature: { params: 0, lookupListIndexes: [] } }, s2.push(i2), a2.push(u2), i2.feature;
                }
              }
            }, getLookupTables: function(e3, t3, r3, n2, o2) {
              var i2 = this.getFeatureTable(e3, t3, r3, o2), a2 = [];
              if (i2) {
                for (var s2, l2 = i2.lookupListIndexes, u2 = this.font.tables[this.tableName].lookups, c2 = 0; c2 < l2.length; c2++)
                  (s2 = u2[l2[c2]]).lookupType === n2 && a2.push(s2);
                if (a2.length === 0 && o2) {
                  s2 = { lookupType: n2, lookupFlag: 0, subtables: [], markFilteringSet: void 0 };
                  var d2 = u2.length;
                  return u2.push(s2), l2.push(d2), [s2];
                }
              }
              return a2;
            }, getGlyphClass: function(e3, t3) {
              switch (e3.format) {
                case 1:
                  return e3.startGlyph <= t3 && t3 < e3.startGlyph + e3.classes.length ? e3.classes[t3 - e3.startGlyph] : 0;
                case 2:
                  var r3 = bt(e3.ranges, t3);
                  return r3 ? r3.classId : 0;
              }
            }, getCoverageIndex: function(e3, t3) {
              switch (e3.format) {
                case 1:
                  var r3 = vt(e3.glyphs, t3);
                  return 0 <= r3 ? r3 : -1;
                case 2:
                  var n2 = bt(e3.ranges, t3);
                  return n2 ? n2.index + t3 - n2.start : -1;
              }
            }, expandCoverage: function(e3) {
              if (e3.format === 1)
                return e3.glyphs;
              for (var t3 = [], r3 = e3.ranges, n2 = 0; n2 < r3.length; n2++)
                for (var o2 = r3[n2], i2 = o2.start, a2 = o2.end, s2 = i2; s2 <= a2; s2++)
                  t3.push(s2);
              return t3;
            } }).init = function() {
              var e3 = this.getDefaultScriptName();
              this.defaultKerningTables = this.getKerningTables(e3);
            }, xt.prototype.getKerningValue = function(e3, t3, r3) {
              for (var n2 = 0; n2 < e3.length; n2++)
                for (var o2 = e3[n2].subtables, i2 = 0; i2 < o2.length; i2++) {
                  var a2 = o2[i2], s2 = this.getCoverageIndex(a2.coverage, t3);
                  if (!(s2 < 0))
                    switch (a2.posFormat) {
                      case 1:
                        for (var l2 = a2.pairSets[s2], u2 = 0; u2 < l2.length; u2++) {
                          var c2 = l2[u2];
                          if (c2.secondGlyph === r3)
                            return c2.value1 && c2.value1.xAdvance || 0;
                        }
                        break;
                      case 2:
                        var d2 = this.getGlyphClass(a2.classDef1, t3), f2 = this.getGlyphClass(a2.classDef2, r3), h2 = a2.classRecords[d2][f2];
                        return h2.value1 && h2.value1.xAdvance || 0;
                    }
                }
              return 0;
            }, xt.prototype.getKerningTables = function(e3, t3) {
              if (this.font.tables.gpos)
                return this.getLookupTables(e3, t3, "kern", 2);
            }, (wt.prototype = _t.prototype).createDefaultTable = function() {
              return { version: 1, scripts: [{ tag: "DFLT", script: { defaultLangSys: { reserved: 0, reqFeatureIndex: 65535, featureIndexes: [] }, langSysRecords: [] } }], features: [], lookups: [] };
            }, wt.prototype.getSingle = function(e3, t3, r3) {
              for (var n2 = [], o2 = this.getLookupTables(t3, r3, e3, 1), i2 = 0; i2 < o2.length; i2++)
                for (var a2 = o2[i2].subtables, s2 = 0; s2 < a2.length; s2++) {
                  var l2 = a2[s2], u2 = this.expandCoverage(l2.coverage), c2 = void 0;
                  if (l2.substFormat === 1) {
                    var d2 = l2.deltaGlyphId;
                    for (c2 = 0; c2 < u2.length; c2++) {
                      var f2 = u2[c2];
                      n2.push({ sub: f2, by: f2 + d2 });
                    }
                  } else {
                    var h2 = l2.substitute;
                    for (c2 = 0; c2 < u2.length; c2++)
                      n2.push({ sub: u2[c2], by: h2[c2] });
                  }
                }
              return n2;
            }, wt.prototype.getAlternates = function(e3, t3, r3) {
              for (var n2 = [], o2 = this.getLookupTables(t3, r3, e3, 3), i2 = 0; i2 < o2.length; i2++)
                for (var a2 = o2[i2].subtables, s2 = 0; s2 < a2.length; s2++)
                  for (var l2 = a2[s2], u2 = this.expandCoverage(l2.coverage), c2 = l2.alternateSets, d2 = 0; d2 < u2.length; d2++)
                    n2.push({ sub: u2[d2], by: c2[d2] });
              return n2;
            }, wt.prototype.getLigatures = function(e3, t3, r3) {
              for (var n2 = [], o2 = this.getLookupTables(t3, r3, e3, 4), i2 = 0; i2 < o2.length; i2++)
                for (var a2 = o2[i2].subtables, s2 = 0; s2 < a2.length; s2++)
                  for (var l2 = a2[s2], u2 = this.expandCoverage(l2.coverage), c2 = l2.ligatureSets, d2 = 0; d2 < u2.length; d2++)
                    for (var f2 = u2[d2], h2 = c2[d2], p2 = 0; p2 < h2.length; p2++) {
                      var y2 = h2[p2];
                      n2.push({ sub: [f2].concat(y2.components), by: y2.ligGlyph });
                    }
              return n2;
            }, wt.prototype.addSingle = function(e3, t3, r3, n2) {
              var o2 = jt(this.getLookupTables(r3, n2, e3, 1, true)[0], 2, { substFormat: 2, coverage: { format: 1, glyphs: [] }, substitute: [] });
              L.assert(o2.coverage.format === 1, "Ligature: unable to modify coverage table format " + o2.coverage.format);
              var i2 = t3.sub, a2 = this.binSearch(o2.coverage.glyphs, i2);
              a2 < 0 && (a2 = -1 - a2, o2.coverage.glyphs.splice(a2, 0, i2), o2.substitute.splice(a2, 0, 0)), o2.substitute[a2] = t3.by;
            }, wt.prototype.addAlternate = function(e3, t3, r3, n2) {
              var o2 = jt(this.getLookupTables(r3, n2, e3, 3, true)[0], 1, { substFormat: 1, coverage: { format: 1, glyphs: [] }, alternateSets: [] });
              L.assert(o2.coverage.format === 1, "Ligature: unable to modify coverage table format " + o2.coverage.format);
              var i2 = t3.sub, a2 = this.binSearch(o2.coverage.glyphs, i2);
              a2 < 0 && (a2 = -1 - a2, o2.coverage.glyphs.splice(a2, 0, i2), o2.alternateSets.splice(a2, 0, 0)), o2.alternateSets[a2] = t3.by;
            }, wt.prototype.addLigature = function(e3, t3, r3, n2) {
              var o2 = this.getLookupTables(r3, n2, e3, 4, true)[0], i2 = o2.subtables[0];
              i2 || (i2 = { substFormat: 1, coverage: { format: 1, glyphs: [] }, ligatureSets: [] }, o2.subtables[0] = i2), L.assert(i2.coverage.format === 1, "Ligature: unable to modify coverage table format " + i2.coverage.format);
              var a2 = t3.sub[0], s2 = t3.sub.slice(1), l2 = { ligGlyph: t3.by, components: s2 }, u2 = this.binSearch(i2.coverage.glyphs, a2);
              if (0 <= u2) {
                for (var c2 = i2.ligatureSets[u2], d2 = 0; d2 < c2.length; d2++)
                  if (St(c2[d2].components, s2))
                    return;
                c2.push(l2);
              } else
                u2 = -1 - u2, i2.coverage.glyphs.splice(u2, 0, a2), i2.ligatureSets.splice(u2, 0, [l2]);
            }, wt.prototype.getFeature = function(e3, t3, r3) {
              if (/ss\d\d/.test(e3))
                return this.getSingle(e3, t3, r3);
              switch (e3) {
                case "aalt":
                case "salt":
                  return this.getSingle(e3, t3, r3).concat(this.getAlternates(e3, t3, r3));
                case "dlig":
                case "liga":
                case "rlig":
                  return this.getLigatures(e3, t3, r3);
              }
            }, wt.prototype.add = function(e3, t3, r3, n2) {
              if (/ss\d\d/.test(e3))
                return this.addSingle(e3, t3, r3, n2);
              switch (e3) {
                case "aalt":
                case "salt":
                  return typeof t3.by == "number" ? this.addSingle(e3, t3, r3, n2) : this.addAlternate(e3, t3, r3, n2);
                case "dlig":
                case "liga":
                case "rlig":
                  return this.addLigature(e3, t3, r3, n2);
              }
            };
            var kt, At, Rt, Dt, It = { getPath: Lt, parse: function(e3, t3, r3, n2) {
              for (var o2 = new _e.GlyphSet(n2), i2 = 0; i2 < r3.length - 1; i2 += 1) {
                var a2 = r3[i2];
                a2 !== r3[i2 + 1] ? o2.push(i2, _e.ttfGlyphLoader(n2, i2, Ot, e3, t3 + a2, Pt)) : o2.push(i2, _e.glyphLoader(n2, i2));
              }
              return o2;
            } };
            function Ut(e3) {
              this.font = e3, this.getCommands = function(e4) {
                return It.getPath(e4).commands;
              }, this._fpgmState = this._prepState = void 0, this._errorState = 0;
            }
            function Nt(e3) {
              return e3;
            }
            function Ft(e3) {
              return Math.sign(e3) * Math.round(Math.abs(e3));
            }
            function Bt(e3) {
              return Math.sign(e3) * Math.round(Math.abs(2 * e3)) / 2;
            }
            function Gt(e3) {
              return Math.sign(e3) * (Math.round(Math.abs(e3) + 0.5) - 0.5);
            }
            function Vt(e3) {
              return Math.sign(e3) * Math.ceil(Math.abs(e3));
            }
            function zt(e3) {
              return Math.sign(e3) * Math.floor(Math.abs(e3));
            }
            function Ht(e3) {
              var t3 = this.srPeriod, r3 = this.srPhase, n2 = 1;
              return e3 < 0 && (e3 = -e3, n2 = -1), e3 += this.srThreshold - r3, e3 = Math.trunc(e3 / t3) * t3, (e3 += r3) < 0 ? r3 * n2 : e3 * n2;
            }
            var Wt = { x: 1, y: 0, axis: "x", distance: function(e3, t3, r3, n2) {
              return (r3 ? e3.xo : e3.x) - (n2 ? t3.xo : t3.x);
            }, interpolate: function(e3, t3, r3, n2) {
              var o2, i2, a2, s2, l2, u2, c2;
              if (!n2 || n2 === this)
                return o2 = e3.xo - t3.xo, i2 = e3.xo - r3.xo, l2 = t3.x - t3.xo, u2 = r3.x - r3.xo, (c2 = (a2 = Math.abs(o2)) + (s2 = Math.abs(i2))) === 0 ? void (e3.x = e3.xo + (l2 + u2) / 2) : void (e3.x = e3.xo + (l2 * s2 + u2 * a2) / c2);
              o2 = n2.distance(e3, t3, true, true), i2 = n2.distance(e3, r3, true, true), l2 = n2.distance(t3, t3, false, true), u2 = n2.distance(r3, r3, false, true), (c2 = (a2 = Math.abs(o2)) + (s2 = Math.abs(i2))) !== 0 ? Wt.setRelative(e3, e3, (l2 * s2 + u2 * a2) / c2, n2, true) : Wt.setRelative(e3, e3, (l2 + u2) / 2, n2, true);
            }, normalSlope: Number.NEGATIVE_INFINITY, setRelative: function(e3, t3, r3, n2, o2) {
              if (n2 && n2 !== this) {
                var i2 = o2 ? t3.xo : t3.x, a2 = o2 ? t3.yo : t3.y, s2 = i2 + r3 * n2.x, l2 = a2 + r3 * n2.y;
                e3.x = s2 + (e3.y - l2) / n2.normalSlope;
              } else
                e3.x = (o2 ? t3.xo : t3.x) + r3;
            }, slope: 0, touch: function(e3) {
              e3.xTouched = true;
            }, touched: function(e3) {
              return e3.xTouched;
            }, untouch: function(e3) {
              e3.xTouched = false;
            } }, qt = { x: 0, y: 1, axis: "y", distance: function(e3, t3, r3, n2) {
              return (r3 ? e3.yo : e3.y) - (n2 ? t3.yo : t3.y);
            }, interpolate: function(e3, t3, r3, n2) {
              var o2, i2, a2, s2, l2, u2, c2;
              if (!n2 || n2 === this)
                return o2 = e3.yo - t3.yo, i2 = e3.yo - r3.yo, l2 = t3.y - t3.yo, u2 = r3.y - r3.yo, (c2 = (a2 = Math.abs(o2)) + (s2 = Math.abs(i2))) === 0 ? void (e3.y = e3.yo + (l2 + u2) / 2) : void (e3.y = e3.yo + (l2 * s2 + u2 * a2) / c2);
              o2 = n2.distance(e3, t3, true, true), i2 = n2.distance(e3, r3, true, true), l2 = n2.distance(t3, t3, false, true), u2 = n2.distance(r3, r3, false, true), (c2 = (a2 = Math.abs(o2)) + (s2 = Math.abs(i2))) !== 0 ? qt.setRelative(e3, e3, (l2 * s2 + u2 * a2) / c2, n2, true) : qt.setRelative(e3, e3, (l2 + u2) / 2, n2, true);
            }, normalSlope: 0, setRelative: function(e3, t3, r3, n2, o2) {
              if (n2 && n2 !== this) {
                var i2 = o2 ? t3.xo : t3.x, a2 = o2 ? t3.yo : t3.y, s2 = i2 + r3 * n2.x, l2 = a2 + r3 * n2.y;
                e3.y = l2 + n2.normalSlope * (e3.x - s2);
              } else
                e3.y = (o2 ? t3.yo : t3.y) + r3;
            }, slope: Number.POSITIVE_INFINITY, touch: function(e3) {
              e3.yTouched = true;
            }, touched: function(e3) {
              return e3.yTouched;
            }, untouch: function(e3) {
              e3.yTouched = false;
            } };
            function Xt(e3, t3) {
              this.x = e3, this.y = t3, this.axis = void 0, this.slope = t3 / e3, this.normalSlope = -e3 / t3, Object.freeze(this);
            }
            function Yt(e3, t3) {
              var r3 = Math.sqrt(e3 * e3 + t3 * t3);
              return t3 /= r3, (e3 /= r3) === 1 && t3 === 0 ? Wt : e3 === 0 && t3 === 1 ? qt : new Xt(e3, t3);
            }
            function Zt(e3, t3, r3, n2) {
              this.x = this.xo = Math.round(64 * e3) / 64, this.y = this.yo = Math.round(64 * t3) / 64, this.lastPointOfContour = r3, this.onCurve = n2, this.prevPointOnContour = void 0, this.nextPointOnContour = void 0, this.xTouched = false, this.yTouched = false, Object.preventExtensions(this);
            }
            Object.freeze(Wt), Object.freeze(qt), Xt.prototype.distance = function(e3, t3, r3, n2) {
              return this.x * Wt.distance(e3, t3, r3, n2) + this.y * qt.distance(e3, t3, r3, n2);
            }, Xt.prototype.interpolate = function(e3, t3, r3, n2) {
              var o2, i2, a2, s2, l2, u2, c2;
              a2 = n2.distance(e3, t3, true, true), s2 = n2.distance(e3, r3, true, true), o2 = n2.distance(t3, t3, false, true), i2 = n2.distance(r3, r3, false, true), (c2 = (l2 = Math.abs(a2)) + (u2 = Math.abs(s2))) !== 0 ? this.setRelative(e3, e3, (o2 * u2 + i2 * l2) / c2, n2, true) : this.setRelative(e3, e3, (o2 + i2) / 2, n2, true);
            }, Xt.prototype.setRelative = function(e3, t3, r3, n2, o2) {
              n2 = n2 || this;
              var i2 = o2 ? t3.xo : t3.x, a2 = o2 ? t3.yo : t3.y, s2 = i2 + r3 * n2.x, l2 = a2 + r3 * n2.y, u2 = n2.normalSlope, c2 = this.slope, d2 = e3.x, f2 = e3.y;
              e3.x = (c2 * d2 - u2 * s2 + l2 - f2) / (c2 - u2), e3.y = c2 * (e3.x - d2) + f2;
            }, Xt.prototype.touch = function(e3) {
              e3.xTouched = true, e3.yTouched = true;
            }, Zt.prototype.nextTouched = function(e3) {
              for (var t3 = this.nextPointOnContour; !e3.touched(t3) && t3 !== this; )
                t3 = t3.nextPointOnContour;
              return t3;
            }, Zt.prototype.prevTouched = function(e3) {
              for (var t3 = this.prevPointOnContour; !e3.touched(t3) && t3 !== this; )
                t3 = t3.prevPointOnContour;
              return t3;
            };
            var Qt = Object.freeze(new Zt(0, 0)), Kt = { cvCutIn: 17 / 16, deltaBase: 9, deltaShift: 0.125, loop: 1, minDis: 1, autoFlip: true };
            function Jt(e3, t3) {
              switch (this.env = e3, this.stack = [], this.prog = t3, e3) {
                case "glyf":
                  this.zp0 = this.zp1 = this.zp2 = 1, this.rp0 = this.rp1 = this.rp2 = 0;
                case "prep":
                  this.fv = this.pv = this.dpv = Wt, this.round = Ft;
              }
            }
            function $t(e3) {
              for (var t3 = e3.tZone = new Array(e3.gZone.length), r3 = 0; r3 < t3.length; r3++)
                t3[r3] = new Zt(0, 0);
            }
            function er(e3, t3) {
              var r3, n2 = e3.prog, o2 = e3.ip, i2 = 1;
              do {
                if ((r3 = n2[++o2]) === 88)
                  i2++;
                else if (r3 === 89)
                  i2--;
                else if (r3 === 64)
                  o2 += n2[o2 + 1] + 1;
                else if (r3 === 65)
                  o2 += 2 * n2[o2 + 1] + 1;
                else if (176 <= r3 && r3 <= 183)
                  o2 += r3 - 176 + 1;
                else if (184 <= r3 && r3 <= 191)
                  o2 += 2 * (r3 - 184 + 1);
                else if (t3 && i2 === 1 && r3 === 27)
                  break;
              } while (0 < i2);
              e3.ip = o2;
            }
            function tr(e3, t3) {
              M.DEBUG && console.log(t3.step, "SVTCA[" + e3.axis + "]"), t3.fv = t3.pv = t3.dpv = e3;
            }
            function rr(e3, t3) {
              M.DEBUG && console.log(t3.step, "SPVTCA[" + e3.axis + "]"), t3.pv = t3.dpv = e3;
            }
            function nr(e3, t3) {
              M.DEBUG && console.log(t3.step, "SFVTCA[" + e3.axis + "]"), t3.fv = e3;
            }
            function or(e3, t3) {
              var r3, n2, o2 = t3.stack, i2 = o2.pop(), a2 = o2.pop(), s2 = t3.z2[i2], l2 = t3.z1[a2];
              M.DEBUG && console.log("SPVTL[" + e3 + "]", i2, a2), n2 = e3 ? (r3 = s2.y - l2.y, l2.x - s2.x) : (r3 = l2.x - s2.x, l2.y - s2.y), t3.pv = t3.dpv = Yt(r3, n2);
            }
            function ir(e3, t3) {
              var r3, n2, o2 = t3.stack, i2 = o2.pop(), a2 = o2.pop(), s2 = t3.z2[i2], l2 = t3.z1[a2];
              M.DEBUG && console.log("SFVTL[" + e3 + "]", i2, a2), n2 = e3 ? (r3 = s2.y - l2.y, l2.x - s2.x) : (r3 = l2.x - s2.x, l2.y - s2.y), t3.fv = Yt(r3, n2);
            }
            function ar(e3) {
              M.DEBUG && console.log(e3.step, "POP[]"), e3.stack.pop();
            }
            function sr(e3, t3) {
              var r3 = t3.stack.pop(), n2 = t3.z0[r3], o2 = t3.fv, i2 = t3.pv;
              M.DEBUG && console.log(t3.step, "MDAP[" + e3 + "]", r3);
              var a2 = i2.distance(n2, Qt);
              e3 && (a2 = t3.round(a2)), o2.setRelative(n2, Qt, a2, i2), o2.touch(n2), t3.rp0 = t3.rp1 = r3;
            }
            function lr(e3, t3) {
              var r3, n2, o2, i2 = t3.z2, a2 = i2.length - 2;
              M.DEBUG && console.log(t3.step, "IUP[" + e3.axis + "]");
              for (var s2 = 0; s2 < a2; s2++)
                r3 = i2[s2], e3.touched(r3) || (n2 = r3.prevTouched(e3)) !== r3 && (n2 === (o2 = r3.nextTouched(e3)) && e3.setRelative(r3, r3, e3.distance(n2, n2, false, true), e3, true), e3.interpolate(r3, n2, o2, e3));
            }
            function ur(e3, t3) {
              for (var r3 = t3.stack, n2 = e3 ? t3.rp1 : t3.rp2, o2 = (e3 ? t3.z0 : t3.z1)[n2], i2 = t3.fv, a2 = t3.pv, s2 = t3.loop, l2 = t3.z2; s2--; ) {
                var u2 = r3.pop(), c2 = l2[u2], d2 = a2.distance(o2, o2, false, true);
                i2.setRelative(c2, c2, d2, a2), i2.touch(c2), M.DEBUG && console.log(t3.step, (1 < t3.loop ? "loop " + (t3.loop - s2) + ": " : "") + "SHP[" + (e3 ? "rp1" : "rp2") + "]", u2);
              }
              t3.loop = 1;
            }
            function cr(e3, t3) {
              var r3 = t3.stack, n2 = e3 ? t3.rp1 : t3.rp2, o2 = (e3 ? t3.z0 : t3.z1)[n2], i2 = t3.fv, a2 = t3.pv, s2 = r3.pop(), l2 = t3.z2[t3.contours[s2]], u2 = l2;
              M.DEBUG && console.log(t3.step, "SHC[" + e3 + "]", s2);
              for (var c2 = a2.distance(o2, o2, false, true); u2 !== o2 && i2.setRelative(u2, u2, c2, a2), (u2 = u2.nextPointOnContour) !== l2; )
                ;
            }
            function dr(e3, t3) {
              var r3, n2, o2 = t3.stack, i2 = e3 ? t3.rp1 : t3.rp2, a2 = (e3 ? t3.z0 : t3.z1)[i2], s2 = t3.fv, l2 = t3.pv, u2 = o2.pop();
              switch (M.DEBUG && console.log(t3.step, "SHZ[" + e3 + "]", u2), u2) {
                case 0:
                  r3 = t3.tZone;
                  break;
                case 1:
                  r3 = t3.gZone;
                  break;
                default:
                  throw new Error("Invalid zone");
              }
              for (var c2 = l2.distance(a2, a2, false, true), d2 = r3.length - 2, f2 = 0; f2 < d2; f2++)
                n2 = r3[f2], s2.setRelative(n2, n2, c2, l2);
            }
            function fr(e3, t3) {
              var r3 = t3.stack, n2 = r3.pop() / 64, o2 = r3.pop(), i2 = t3.z1[o2], a2 = t3.z0[t3.rp0], s2 = t3.fv, l2 = t3.pv;
              s2.setRelative(i2, a2, n2, l2), s2.touch(i2), M.DEBUG && console.log(t3.step, "MSIRP[" + e3 + "]", n2, o2), t3.rp1 = t3.rp0, t3.rp2 = o2, e3 && (t3.rp0 = o2);
            }
            function hr(e3, t3) {
              var r3 = t3.stack, n2 = r3.pop(), o2 = r3.pop(), i2 = t3.z0[o2], a2 = t3.fv, s2 = t3.pv, l2 = t3.cvt[n2];
              M.DEBUG && console.log(t3.step, "MIAP[" + e3 + "]", n2, "(", l2, ")", o2);
              var u2 = s2.distance(i2, Qt);
              e3 && (Math.abs(u2 - l2) < t3.cvCutIn && (u2 = l2), u2 = t3.round(u2)), a2.setRelative(i2, Qt, u2, s2), t3.zp0 === 0 && (i2.xo = i2.x, i2.yo = i2.y), a2.touch(i2), t3.rp0 = t3.rp1 = o2;
            }
            function pr(e3, t3) {
              var r3 = t3.stack, n2 = r3.pop(), o2 = t3.z2[n2];
              M.DEBUG && console.log(t3.step, "GC[" + e3 + "]", n2), r3.push(64 * t3.dpv.distance(o2, Qt, e3, false));
            }
            function yr(e3, t3) {
              var r3 = t3.stack, n2 = r3.pop(), o2 = r3.pop(), i2 = t3.z1[n2], a2 = t3.z0[o2], s2 = t3.dpv.distance(a2, i2, e3, e3);
              M.DEBUG && console.log(t3.step, "MD[" + e3 + "]", n2, o2, "->", s2), t3.stack.push(Math.round(64 * s2));
            }
            function mr(e3, t3) {
              var r3 = t3.stack, n2 = r3.pop(), o2 = t3.fv, i2 = t3.pv, a2 = t3.ppem, s2 = t3.deltaBase + 16 * (e3 - 1), l2 = t3.deltaShift, u2 = t3.z0;
              M.DEBUG && console.log(t3.step, "DELTAP[" + e3 + "]", n2, r3);
              for (var c2 = 0; c2 < n2; c2++) {
                var d2 = r3.pop(), f2 = r3.pop();
                if (s2 + ((240 & f2) >> 4) === a2) {
                  var h2 = (15 & f2) - 8;
                  0 <= h2 && h2++, M.DEBUG && console.log(t3.step, "DELTAPFIX", d2, "by", h2 * l2);
                  var p2 = u2[d2];
                  o2.setRelative(p2, p2, h2 * l2, i2);
                }
              }
            }
            function gr(e3, t3) {
              var r3 = t3.stack, n2 = r3.pop();
              M.DEBUG && console.log(t3.step, "ROUND[]"), r3.push(64 * t3.round(n2 / 64));
            }
            function vr(e3, t3) {
              var r3 = t3.stack, n2 = r3.pop(), o2 = t3.ppem, i2 = t3.deltaBase + 16 * (e3 - 1), a2 = t3.deltaShift;
              M.DEBUG && console.log(t3.step, "DELTAC[" + e3 + "]", n2, r3);
              for (var s2 = 0; s2 < n2; s2++) {
                var l2 = r3.pop(), u2 = r3.pop();
                if (i2 + ((240 & u2) >> 4) === o2) {
                  var c2 = (15 & u2) - 8;
                  0 <= c2 && c2++;
                  var d2 = c2 * a2;
                  M.DEBUG && console.log(t3.step, "DELTACFIX", l2, "by", d2), t3.cvt[l2] += d2;
                }
              }
            }
            function br(e3, t3) {
              var r3, n2, o2 = t3.stack, i2 = o2.pop(), a2 = o2.pop(), s2 = t3.z2[i2], l2 = t3.z1[a2];
              M.DEBUG && console.log(t3.step, "SDPVTL[" + e3 + "]", i2, a2), n2 = e3 ? (r3 = s2.y - l2.y, l2.x - s2.x) : (r3 = l2.x - s2.x, l2.y - s2.y), t3.dpv = Yt(r3, n2);
            }
            function _r(e3, t3) {
              var r3 = t3.stack, n2 = t3.prog, o2 = t3.ip;
              M.DEBUG && console.log(t3.step, "PUSHB[" + e3 + "]");
              for (var i2 = 0; i2 < e3; i2++)
                r3.push(n2[++o2]);
              t3.ip = o2;
            }
            function xr(e3, t3) {
              var r3 = t3.ip, n2 = t3.prog, o2 = t3.stack;
              M.DEBUG && console.log(t3.ip, "PUSHW[" + e3 + "]");
              for (var i2 = 0; i2 < e3; i2++) {
                var a2 = n2[++r3] << 8 | n2[++r3];
                32768 & a2 && (a2 = -(1 + (65535 ^ a2))), o2.push(a2);
              }
              t3.ip = r3;
            }
            function wr(e3, t3, r3, n2, o2, i2) {
              var a2, s2, l2, u2, c2 = i2.stack, d2 = e3 && c2.pop(), f2 = c2.pop(), h2 = i2.rp0, p2 = i2.z0[h2], y2 = i2.z1[f2], m2 = i2.minDis, g2 = i2.fv, v2 = i2.dpv;
              l2 = 0 <= (s2 = a2 = v2.distance(y2, p2, true, true)) ? 1 : -1, s2 = Math.abs(s2), e3 && (u2 = i2.cvt[d2], n2 && Math.abs(s2 - u2) < i2.cvCutIn && (s2 = u2)), r3 && s2 < m2 && (s2 = m2), n2 && (s2 = i2.round(s2)), g2.setRelative(y2, p2, l2 * s2, v2), g2.touch(y2), M.DEBUG && console.log(i2.step, (e3 ? "MIRP[" : "MDRP[") + (t3 ? "M" : "m") + (r3 ? ">" : "_") + (n2 ? "R" : "_") + (o2 === 0 ? "Gr" : o2 === 1 ? "Bl" : o2 === 2 ? "Wh" : "") + "]", e3 ? d2 + "(" + i2.cvt[d2] + "," + u2 + ")" : "", f2, "(d =", a2, "->", l2 * s2, ")"), i2.rp1 = i2.rp0, i2.rp2 = f2, t3 && (i2.rp0 = f2);
            }
            Ut.prototype.exec = function(e3, t3) {
              if (typeof t3 != "number")
                throw new Error("Point size is not a number!");
              if (!(2 < this._errorState)) {
                var r3 = this.font, n2 = this._prepState;
                if (!n2 || n2.ppem !== t3) {
                  var o2 = this._fpgmState;
                  if (!o2) {
                    Jt.prototype = Kt, (o2 = this._fpgmState = new Jt("fpgm", r3.tables.fpgm)).funcs = [], o2.font = r3, M.DEBUG && (console.log("---EXEC FPGM---"), o2.step = -1);
                    try {
                      At(o2);
                    } catch (e4) {
                      return console.log("Hinting error in FPGM:" + e4), void (this._errorState = 3);
                    }
                  }
                  Jt.prototype = o2, (n2 = this._prepState = new Jt("prep", r3.tables.prep)).ppem = t3;
                  var i2 = r3.tables.cvt;
                  if (i2)
                    for (var a2 = n2.cvt = new Array(i2.length), s2 = t3 / r3.unitsPerEm, l2 = 0; l2 < i2.length; l2++)
                      a2[l2] = i2[l2] * s2;
                  else
                    n2.cvt = [];
                  M.DEBUG && (console.log("---EXEC PREP---"), n2.step = -1);
                  try {
                    At(n2);
                  } catch (e4) {
                    this._errorState < 2 && console.log("Hinting error in PREP:" + e4), this._errorState = 2;
                  }
                }
                if (!(1 < this._errorState))
                  try {
                    return Rt(e3, n2);
                  } catch (e4) {
                    return this._errorState < 1 && (console.log("Hinting error:" + e4), console.log("Note: further hinting errors are silenced")), void (this._errorState = 1);
                  }
              }
            }, Rt = function(e3, t3) {
              var r3, n2, o2, i2 = t3.ppem / t3.font.unitsPerEm, a2 = i2, s2 = e3.components;
              if (Jt.prototype = t3, s2) {
                var l2 = t3.font;
                n2 = [], r3 = [];
                for (var u2 = 0; u2 < s2.length; u2++) {
                  var c2 = s2[u2], d2 = l2.glyphs.get(c2.glyphIndex);
                  o2 = new Jt("glyf", d2.instructions), M.DEBUG && (console.log("---EXEC COMP " + u2 + "---"), o2.step = -1), Dt(d2, o2, i2, a2);
                  for (var f2 = Math.round(c2.dx * i2), h2 = Math.round(c2.dy * a2), p2 = o2.gZone, y2 = o2.contours, m2 = 0; m2 < p2.length; m2++) {
                    var g2 = p2[m2];
                    g2.xTouched = g2.yTouched = false, g2.xo = g2.x = g2.x + f2, g2.yo = g2.y = g2.y + h2;
                  }
                  var v2 = n2.length;
                  n2.push.apply(n2, p2);
                  for (var b2 = 0; b2 < y2.length; b2++)
                    r3.push(y2[b2] + v2);
                }
                e3.instructions && !o2.inhibitGridFit && ((o2 = new Jt("glyf", e3.instructions)).gZone = o2.z0 = o2.z1 = o2.z2 = n2, o2.contours = r3, n2.push(new Zt(0, 0), new Zt(Math.round(e3.advanceWidth * i2), 0)), M.DEBUG && (console.log("---EXEC COMPOSITE---"), o2.step = -1), At(o2), n2.length -= 2);
              } else
                o2 = new Jt("glyf", e3.instructions), M.DEBUG && (console.log("---EXEC GLYPH---"), o2.step = -1), Dt(e3, o2, i2, a2), n2 = o2.gZone;
              return n2;
            }, Dt = function(e3, t3, r3, n2) {
              for (var o2, i2, a2, s2 = e3.points || [], l2 = s2.length, u2 = t3.gZone = t3.z0 = t3.z1 = t3.z2 = [], c2 = t3.contours = [], d2 = 0; d2 < l2; d2++)
                o2 = s2[d2], u2[d2] = new Zt(o2.x * r3, o2.y * n2, o2.lastPointOfContour, o2.onCurve);
              for (var f2 = 0; f2 < l2; f2++)
                o2 = u2[f2], i2 || (i2 = o2, c2.push(f2)), o2.lastPointOfContour ? ((o2.nextPointOnContour = i2).prevPointOnContour = o2, i2 = void 0) : (a2 = u2[f2 + 1], (o2.nextPointOnContour = a2).prevPointOnContour = o2);
              if (!t3.inhibitGridFit) {
                if (M.DEBUG) {
                  console.log("PROCESSING GLYPH", t3.stack);
                  for (var h2 = 0; h2 < l2; h2++)
                    console.log(h2, u2[h2].x, u2[h2].y);
                }
                if (u2.push(new Zt(0, 0), new Zt(Math.round(e3.advanceWidth * r3), 0)), At(t3), u2.length -= 2, M.DEBUG) {
                  console.log("FINISHED GLYPH", t3.stack);
                  for (var p2 = 0; p2 < l2; p2++)
                    console.log(p2, u2[p2].x, u2[p2].y);
                }
              }
            }, At = function(e3) {
              var t3 = e3.prog;
              if (t3) {
                var r3, n2 = t3.length;
                for (e3.ip = 0; e3.ip < n2; e3.ip++) {
                  if (M.DEBUG && e3.step++, !(r3 = kt[t3[e3.ip]]))
                    throw new Error("unknown instruction: 0x" + Number(t3[e3.ip]).toString(16));
                  r3(e3);
                }
              }
            }, kt = [tr.bind(void 0, qt), tr.bind(void 0, Wt), rr.bind(void 0, qt), rr.bind(void 0, Wt), nr.bind(void 0, qt), nr.bind(void 0, Wt), or.bind(void 0, 0), or.bind(void 0, 1), ir.bind(void 0, 0), ir.bind(void 0, 1), function(e3) {
              var t3 = e3.stack, r3 = t3.pop(), n2 = t3.pop();
              M.DEBUG && console.log(e3.step, "SPVFS[]", r3, n2), e3.pv = e3.dpv = Yt(n2, r3);
            }, function(e3) {
              var t3 = e3.stack, r3 = t3.pop(), n2 = t3.pop();
              M.DEBUG && console.log(e3.step, "SPVFS[]", r3, n2), e3.fv = Yt(n2, r3);
            }, function(e3) {
              var t3 = e3.stack, r3 = e3.pv;
              M.DEBUG && console.log(e3.step, "GPV[]"), t3.push(16384 * r3.x), t3.push(16384 * r3.y);
            }, function(e3) {
              var t3 = e3.stack, r3 = e3.fv;
              M.DEBUG && console.log(e3.step, "GFV[]"), t3.push(16384 * r3.x), t3.push(16384 * r3.y);
            }, function(e3) {
              e3.fv = e3.pv, M.DEBUG && console.log(e3.step, "SFVTPV[]");
            }, function(e3) {
              var t3 = e3.stack, r3 = t3.pop(), n2 = t3.pop(), o2 = t3.pop(), i2 = t3.pop(), a2 = t3.pop(), s2 = e3.z0, l2 = e3.z1, u2 = s2[r3], c2 = s2[n2], d2 = l2[o2], f2 = l2[i2], h2 = e3.z2[a2];
              M.DEBUG && console.log("ISECT[], ", r3, n2, o2, i2, a2);
              var p2 = u2.x, y2 = u2.y, m2 = c2.x, g2 = c2.y, v2 = d2.x, b2 = d2.y, _2 = f2.x, x2 = f2.y, w2 = (p2 - m2) * (b2 - x2) - (y2 - g2) * (v2 - _2), S2 = p2 * g2 - y2 * m2, j2 = v2 * x2 - b2 * _2;
              h2.x = (S2 * (v2 - _2) - j2 * (p2 - m2)) / w2, h2.y = (S2 * (b2 - x2) - j2 * (y2 - g2)) / w2;
            }, function(e3) {
              e3.rp0 = e3.stack.pop(), M.DEBUG && console.log(e3.step, "SRP0[]", e3.rp0);
            }, function(e3) {
              e3.rp1 = e3.stack.pop(), M.DEBUG && console.log(e3.step, "SRP1[]", e3.rp1);
            }, function(e3) {
              e3.rp2 = e3.stack.pop(), M.DEBUG && console.log(e3.step, "SRP2[]", e3.rp2);
            }, function(e3) {
              var t3 = e3.stack.pop();
              switch (M.DEBUG && console.log(e3.step, "SZP0[]", t3), e3.zp0 = t3) {
                case 0:
                  e3.tZone || $t(e3), e3.z0 = e3.tZone;
                  break;
                case 1:
                  e3.z0 = e3.gZone;
                  break;
                default:
                  throw new Error("Invalid zone pointer");
              }
            }, function(e3) {
              var t3 = e3.stack.pop();
              switch (M.DEBUG && console.log(e3.step, "SZP1[]", t3), e3.zp1 = t3) {
                case 0:
                  e3.tZone || $t(e3), e3.z1 = e3.tZone;
                  break;
                case 1:
                  e3.z1 = e3.gZone;
                  break;
                default:
                  throw new Error("Invalid zone pointer");
              }
            }, function(e3) {
              var t3 = e3.stack.pop();
              switch (M.DEBUG && console.log(e3.step, "SZP2[]", t3), e3.zp2 = t3) {
                case 0:
                  e3.tZone || $t(e3), e3.z2 = e3.tZone;
                  break;
                case 1:
                  e3.z2 = e3.gZone;
                  break;
                default:
                  throw new Error("Invalid zone pointer");
              }
            }, function(e3) {
              var t3 = e3.stack.pop();
              switch (M.DEBUG && console.log(e3.step, "SZPS[]", t3), e3.zp0 = e3.zp1 = e3.zp2 = t3, t3) {
                case 0:
                  e3.tZone || $t(e3), e3.z0 = e3.z1 = e3.z2 = e3.tZone;
                  break;
                case 1:
                  e3.z0 = e3.z1 = e3.z2 = e3.gZone;
                  break;
                default:
                  throw new Error("Invalid zone pointer");
              }
            }, function(e3) {
              e3.loop = e3.stack.pop(), M.DEBUG && console.log(e3.step, "SLOOP[]", e3.loop);
            }, function(e3) {
              M.DEBUG && console.log(e3.step, "RTG[]"), e3.round = Ft;
            }, function(e3) {
              M.DEBUG && console.log(e3.step, "RTHG[]"), e3.round = Gt;
            }, function(e3) {
              var t3 = e3.stack.pop();
              M.DEBUG && console.log(e3.step, "SMD[]", t3), e3.minDis = t3 / 64;
            }, function(e3) {
              M.DEBUG && console.log(e3.step, "ELSE[]"), er(e3, false);
            }, function(e3) {
              var t3 = e3.stack.pop();
              M.DEBUG && console.log(e3.step, "JMPR[]", t3), e3.ip += t3 - 1;
            }, function(e3) {
              var t3 = e3.stack.pop();
              M.DEBUG && console.log(e3.step, "SCVTCI[]", t3), e3.cvCutIn = t3 / 64;
            }, void 0, void 0, function(e3) {
              var t3 = e3.stack;
              M.DEBUG && console.log(e3.step, "DUP[]"), t3.push(t3[t3.length - 1]);
            }, ar, function(e3) {
              M.DEBUG && console.log(e3.step, "CLEAR[]"), e3.stack.length = 0;
            }, function(e3) {
              var t3 = e3.stack, r3 = t3.pop(), n2 = t3.pop();
              M.DEBUG && console.log(e3.step, "SWAP[]"), t3.push(r3), t3.push(n2);
            }, function(e3) {
              var t3 = e3.stack;
              M.DEBUG && console.log(e3.step, "DEPTH[]"), t3.push(t3.length);
            }, function(e3) {
              var t3 = e3.stack, r3 = t3.pop();
              M.DEBUG && console.log(e3.step, "CINDEX[]", r3), t3.push(t3[t3.length - r3]);
            }, function(e3) {
              var t3 = e3.stack, r3 = t3.pop();
              M.DEBUG && console.log(e3.step, "MINDEX[]", r3), t3.push(t3.splice(t3.length - r3, 1)[0]);
            }, void 0, void 0, void 0, function(e3) {
              var t3 = e3.stack, r3 = t3.pop(), n2 = t3.pop();
              M.DEBUG && console.log(e3.step, "LOOPCALL[]", r3, n2);
              var o2 = e3.ip, i2 = e3.prog;
              e3.prog = e3.funcs[r3];
              for (var a2 = 0; a2 < n2; a2++)
                At(e3), M.DEBUG && console.log(++e3.step, a2 + 1 < n2 ? "next loopcall" : "done loopcall", a2);
              e3.ip = o2, e3.prog = i2;
            }, function(e3) {
              var t3 = e3.stack.pop();
              M.DEBUG && console.log(e3.step, "CALL[]", t3);
              var r3 = e3.ip, n2 = e3.prog;
              e3.prog = e3.funcs[t3], At(e3), e3.ip = r3, e3.prog = n2, M.DEBUG && console.log(++e3.step, "returning from", t3);
            }, function(e3) {
              if (e3.env !== "fpgm")
                throw new Error("FDEF not allowed here");
              var t3 = e3.stack, r3 = e3.prog, n2 = e3.ip, o2 = t3.pop(), i2 = n2;
              for (M.DEBUG && console.log(e3.step, "FDEF[]", o2); r3[++n2] !== 45; )
                ;
              e3.ip = n2, e3.funcs[o2] = r3.slice(i2 + 1, n2);
            }, void 0, sr.bind(void 0, 0), sr.bind(void 0, 1), lr.bind(void 0, qt), lr.bind(void 0, Wt), ur.bind(void 0, 0), ur.bind(void 0, 1), cr.bind(void 0, 0), cr.bind(void 0, 1), dr.bind(void 0, 0), dr.bind(void 0, 1), function(e3) {
              for (var t3 = e3.stack, r3 = e3.loop, n2 = e3.fv, o2 = t3.pop() / 64, i2 = e3.z2; r3--; ) {
                var a2 = t3.pop(), s2 = i2[a2];
                M.DEBUG && console.log(e3.step, (1 < e3.loop ? "loop " + (e3.loop - r3) + ": " : "") + "SHPIX[]", a2, o2), n2.setRelative(s2, s2, o2), n2.touch(s2);
              }
              e3.loop = 1;
            }, function(e3) {
              for (var t3 = e3.stack, r3 = e3.rp1, n2 = e3.rp2, o2 = e3.loop, i2 = e3.z0[r3], a2 = e3.z1[n2], s2 = e3.fv, l2 = e3.dpv, u2 = e3.z2; o2--; ) {
                var c2 = t3.pop(), d2 = u2[c2];
                M.DEBUG && console.log(e3.step, (1 < e3.loop ? "loop " + (e3.loop - o2) + ": " : "") + "IP[]", c2, r3, "<->", n2), s2.interpolate(d2, i2, a2, l2), s2.touch(d2);
              }
              e3.loop = 1;
            }, fr.bind(void 0, 0), fr.bind(void 0, 1), function(e3) {
              for (var t3 = e3.stack, r3 = e3.rp0, n2 = e3.z0[r3], o2 = e3.loop, i2 = e3.fv, a2 = e3.pv, s2 = e3.z1; o2--; ) {
                var l2 = t3.pop(), u2 = s2[l2];
                M.DEBUG && console.log(e3.step, (1 < e3.loop ? "loop " + (e3.loop - o2) + ": " : "") + "ALIGNRP[]", l2), i2.setRelative(u2, n2, 0, a2), i2.touch(u2);
              }
              e3.loop = 1;
            }, function(e3) {
              M.DEBUG && console.log(e3.step, "RTDG[]"), e3.round = Bt;
            }, hr.bind(void 0, 0), hr.bind(void 0, 1), function(e3) {
              var t3 = e3.prog, r3 = e3.ip, n2 = e3.stack, o2 = t3[++r3];
              M.DEBUG && console.log(e3.step, "NPUSHB[]", o2);
              for (var i2 = 0; i2 < o2; i2++)
                n2.push(t3[++r3]);
              e3.ip = r3;
            }, function(e3) {
              var t3 = e3.ip, r3 = e3.prog, n2 = e3.stack, o2 = r3[++t3];
              M.DEBUG && console.log(e3.step, "NPUSHW[]", o2);
              for (var i2 = 0; i2 < o2; i2++) {
                var a2 = r3[++t3] << 8 | r3[++t3];
                32768 & a2 && (a2 = -(1 + (65535 ^ a2))), n2.push(a2);
              }
              e3.ip = t3;
            }, function(e3) {
              var t3 = e3.stack, r3 = e3.store;
              r3 = r3 || (e3.store = []);
              var n2 = t3.pop(), o2 = t3.pop();
              M.DEBUG && console.log(e3.step, "WS", n2, o2), r3[o2] = n2;
            }, function(e3) {
              var t3 = e3.stack, r3 = e3.store, n2 = t3.pop();
              M.DEBUG && console.log(e3.step, "RS", n2);
              var o2 = r3 && r3[n2] || 0;
              t3.push(o2);
            }, function(e3) {
              var t3 = e3.stack, r3 = t3.pop(), n2 = t3.pop();
              M.DEBUG && console.log(e3.step, "WCVTP", r3, n2), e3.cvt[n2] = r3 / 64;
            }, function(e3) {
              var t3 = e3.stack, r3 = t3.pop();
              M.DEBUG && console.log(e3.step, "RCVT", r3), t3.push(64 * e3.cvt[r3]);
            }, pr.bind(void 0, 0), pr.bind(void 0, 1), void 0, yr.bind(void 0, 0), yr.bind(void 0, 1), function(e3) {
              M.DEBUG && console.log(e3.step, "MPPEM[]"), e3.stack.push(e3.ppem);
            }, void 0, function(e3) {
              M.DEBUG && console.log(e3.step, "FLIPON[]"), e3.autoFlip = true;
            }, void 0, void 0, function(e3) {
              var t3 = e3.stack, r3 = t3.pop(), n2 = t3.pop();
              M.DEBUG && console.log(e3.step, "LT[]", r3, n2), t3.push(n2 < r3 ? 1 : 0);
            }, function(e3) {
              var t3 = e3.stack, r3 = t3.pop(), n2 = t3.pop();
              M.DEBUG && console.log(e3.step, "LTEQ[]", r3, n2), t3.push(n2 <= r3 ? 1 : 0);
            }, function(e3) {
              var t3 = e3.stack, r3 = t3.pop(), n2 = t3.pop();
              M.DEBUG && console.log(e3.step, "GT[]", r3, n2), t3.push(r3 < n2 ? 1 : 0);
            }, function(e3) {
              var t3 = e3.stack, r3 = t3.pop(), n2 = t3.pop();
              M.DEBUG && console.log(e3.step, "GTEQ[]", r3, n2), t3.push(r3 <= n2 ? 1 : 0);
            }, function(e3) {
              var t3 = e3.stack, r3 = t3.pop(), n2 = t3.pop();
              M.DEBUG && console.log(e3.step, "EQ[]", r3, n2), t3.push(r3 === n2 ? 1 : 0);
            }, function(e3) {
              var t3 = e3.stack, r3 = t3.pop(), n2 = t3.pop();
              M.DEBUG && console.log(e3.step, "NEQ[]", r3, n2), t3.push(r3 !== n2 ? 1 : 0);
            }, function(e3) {
              var t3 = e3.stack, r3 = t3.pop();
              M.DEBUG && console.log(e3.step, "ODD[]", r3), t3.push(Math.trunc(r3) % 2 ? 1 : 0);
            }, function(e3) {
              var t3 = e3.stack, r3 = t3.pop();
              M.DEBUG && console.log(e3.step, "EVEN[]", r3), t3.push(Math.trunc(r3) % 2 ? 0 : 1);
            }, function(e3) {
              var t3 = e3.stack.pop();
              M.DEBUG && console.log(e3.step, "IF[]", t3), t3 || (er(e3, true), M.DEBUG && console.log(e3.step, "EIF[]"));
            }, function(e3) {
              M.DEBUG && console.log(e3.step, "EIF[]");
            }, function(e3) {
              var t3 = e3.stack, r3 = t3.pop(), n2 = t3.pop();
              M.DEBUG && console.log(e3.step, "AND[]", r3, n2), t3.push(r3 && n2 ? 1 : 0);
            }, function(e3) {
              var t3 = e3.stack, r3 = t3.pop(), n2 = t3.pop();
              M.DEBUG && console.log(e3.step, "OR[]", r3, n2), t3.push(r3 || n2 ? 1 : 0);
            }, function(e3) {
              var t3 = e3.stack, r3 = t3.pop();
              M.DEBUG && console.log(e3.step, "NOT[]", r3), t3.push(r3 ? 0 : 1);
            }, mr.bind(void 0, 1), function(e3) {
              var t3 = e3.stack.pop();
              M.DEBUG && console.log(e3.step, "SDB[]", t3), e3.deltaBase = t3;
            }, function(e3) {
              var t3 = e3.stack.pop();
              M.DEBUG && console.log(e3.step, "SDS[]", t3), e3.deltaShift = Math.pow(0.5, t3);
            }, function(e3) {
              var t3 = e3.stack, r3 = t3.pop(), n2 = t3.pop();
              M.DEBUG && console.log(e3.step, "ADD[]", r3, n2), t3.push(n2 + r3);
            }, function(e3) {
              var t3 = e3.stack, r3 = t3.pop(), n2 = t3.pop();
              M.DEBUG && console.log(e3.step, "SUB[]", r3, n2), t3.push(n2 - r3);
            }, function(e3) {
              var t3 = e3.stack, r3 = t3.pop(), n2 = t3.pop();
              M.DEBUG && console.log(e3.step, "DIV[]", r3, n2), t3.push(64 * n2 / r3);
            }, function(e3) {
              var t3 = e3.stack, r3 = t3.pop(), n2 = t3.pop();
              M.DEBUG && console.log(e3.step, "MUL[]", r3, n2), t3.push(n2 * r3 / 64);
            }, function(e3) {
              var t3 = e3.stack, r3 = t3.pop();
              M.DEBUG && console.log(e3.step, "ABS[]", r3), t3.push(Math.abs(r3));
            }, function(e3) {
              var t3 = e3.stack, r3 = t3.pop();
              M.DEBUG && console.log(e3.step, "NEG[]", r3), t3.push(-r3);
            }, function(e3) {
              var t3 = e3.stack, r3 = t3.pop();
              M.DEBUG && console.log(e3.step, "FLOOR[]", r3), t3.push(64 * Math.floor(r3 / 64));
            }, function(e3) {
              var t3 = e3.stack, r3 = t3.pop();
              M.DEBUG && console.log(e3.step, "CEILING[]", r3), t3.push(64 * Math.ceil(r3 / 64));
            }, gr.bind(void 0, 0), gr.bind(void 0, 1), gr.bind(void 0, 2), gr.bind(void 0, 3), void 0, void 0, void 0, void 0, function(e3) {
              var t3 = e3.stack, r3 = t3.pop(), n2 = t3.pop();
              M.DEBUG && console.log(e3.step, "WCVTF[]", r3, n2), e3.cvt[n2] = r3 * e3.ppem / e3.font.unitsPerEm;
            }, mr.bind(void 0, 2), mr.bind(void 0, 3), vr.bind(void 0, 1), vr.bind(void 0, 2), vr.bind(void 0, 3), function(e3) {
              var t3, r3 = e3.stack.pop();
              switch (M.DEBUG && console.log(e3.step, "SROUND[]", r3), e3.round = Ht, 192 & r3) {
                case 0:
                  t3 = 0.5;
                  break;
                case 64:
                  t3 = 1;
                  break;
                case 128:
                  t3 = 2;
                  break;
                default:
                  throw new Error("invalid SROUND value");
              }
              switch (e3.srPeriod = t3, 48 & r3) {
                case 0:
                  e3.srPhase = 0;
                  break;
                case 16:
                  e3.srPhase = 0.25 * t3;
                  break;
                case 32:
                  e3.srPhase = 0.5 * t3;
                  break;
                case 48:
                  e3.srPhase = 0.75 * t3;
                  break;
                default:
                  throw new Error("invalid SROUND value");
              }
              r3 &= 15, e3.srThreshold = r3 === 0 ? 0 : (r3 / 8 - 0.5) * t3;
            }, function(e3) {
              var t3, r3 = e3.stack.pop();
              switch (M.DEBUG && console.log(e3.step, "S45ROUND[]", r3), e3.round = Ht, 192 & r3) {
                case 0:
                  t3 = Math.sqrt(2) / 2;
                  break;
                case 64:
                  t3 = Math.sqrt(2);
                  break;
                case 128:
                  t3 = 2 * Math.sqrt(2);
                  break;
                default:
                  throw new Error("invalid S45ROUND value");
              }
              switch (e3.srPeriod = t3, 48 & r3) {
                case 0:
                  e3.srPhase = 0;
                  break;
                case 16:
                  e3.srPhase = 0.25 * t3;
                  break;
                case 32:
                  e3.srPhase = 0.5 * t3;
                  break;
                case 48:
                  e3.srPhase = 0.75 * t3;
                  break;
                default:
                  throw new Error("invalid S45ROUND value");
              }
              r3 &= 15, e3.srThreshold = r3 === 0 ? 0 : (r3 / 8 - 0.5) * t3;
            }, void 0, void 0, function(e3) {
              M.DEBUG && console.log(e3.step, "ROFF[]"), e3.round = Nt;
            }, void 0, function(e3) {
              M.DEBUG && console.log(e3.step, "RUTG[]"), e3.round = Vt;
            }, function(e3) {
              M.DEBUG && console.log(e3.step, "RDTG[]"), e3.round = zt;
            }, ar, ar, void 0, void 0, void 0, void 0, void 0, function(e3) {
              var t3 = e3.stack.pop();
              M.DEBUG && console.log(e3.step, "SCANCTRL[]", t3);
            }, br.bind(void 0, 0), br.bind(void 0, 1), function(e3) {
              var t3 = e3.stack, r3 = t3.pop(), n2 = 0;
              M.DEBUG && console.log(e3.step, "GETINFO[]", r3), 1 & r3 && (n2 = 35), 32 & r3 && (n2 |= 4096), t3.push(n2);
            }, void 0, function(e3) {
              var t3 = e3.stack, r3 = t3.pop(), n2 = t3.pop(), o2 = t3.pop();
              M.DEBUG && console.log(e3.step, "ROLL[]"), t3.push(n2), t3.push(r3), t3.push(o2);
            }, function(e3) {
              var t3 = e3.stack, r3 = t3.pop(), n2 = t3.pop();
              M.DEBUG && console.log(e3.step, "MAX[]", r3, n2), t3.push(Math.max(n2, r3));
            }, function(e3) {
              var t3 = e3.stack, r3 = t3.pop(), n2 = t3.pop();
              M.DEBUG && console.log(e3.step, "MIN[]", r3, n2), t3.push(Math.min(n2, r3));
            }, function(e3) {
              var t3 = e3.stack.pop();
              M.DEBUG && console.log(e3.step, "SCANTYPE[]", t3);
            }, function(e3) {
              var t3 = e3.stack.pop(), r3 = e3.stack.pop();
              switch (M.DEBUG && console.log(e3.step, "INSTCTRL[]", t3, r3), t3) {
                case 1:
                  return void (e3.inhibitGridFit = !!r3);
                case 2:
                  return void (e3.ignoreCvt = !!r3);
                default:
                  throw new Error("invalid INSTCTRL[] selector");
              }
            }, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, _r.bind(void 0, 1), _r.bind(void 0, 2), _r.bind(void 0, 3), _r.bind(void 0, 4), _r.bind(void 0, 5), _r.bind(void 0, 6), _r.bind(void 0, 7), _r.bind(void 0, 8), xr.bind(void 0, 1), xr.bind(void 0, 2), xr.bind(void 0, 3), xr.bind(void 0, 4), xr.bind(void 0, 5), xr.bind(void 0, 6), xr.bind(void 0, 7), xr.bind(void 0, 8), wr.bind(void 0, 0, 0, 0, 0, 0), wr.bind(void 0, 0, 0, 0, 0, 1), wr.bind(void 0, 0, 0, 0, 0, 2), wr.bind(void 0, 0, 0, 0, 0, 3), wr.bind(void 0, 0, 0, 0, 1, 0), wr.bind(void 0, 0, 0, 0, 1, 1), wr.bind(void 0, 0, 0, 0, 1, 2), wr.bind(void 0, 0, 0, 0, 1, 3), wr.bind(void 0, 0, 0, 1, 0, 0), wr.bind(void 0, 0, 0, 1, 0, 1), wr.bind(void 0, 0, 0, 1, 0, 2), wr.bind(void 0, 0, 0, 1, 0, 3), wr.bind(void 0, 0, 0, 1, 1, 0), wr.bind(void 0, 0, 0, 1, 1, 1), wr.bind(void 0, 0, 0, 1, 1, 2), wr.bind(void 0, 0, 0, 1, 1, 3), wr.bind(void 0, 0, 1, 0, 0, 0), wr.bind(void 0, 0, 1, 0, 0, 1), wr.bind(void 0, 0, 1, 0, 0, 2), wr.bind(void 0, 0, 1, 0, 0, 3), wr.bind(void 0, 0, 1, 0, 1, 0), wr.bind(void 0, 0, 1, 0, 1, 1), wr.bind(void 0, 0, 1, 0, 1, 2), wr.bind(void 0, 0, 1, 0, 1, 3), wr.bind(void 0, 0, 1, 1, 0, 0), wr.bind(void 0, 0, 1, 1, 0, 1), wr.bind(void 0, 0, 1, 1, 0, 2), wr.bind(void 0, 0, 1, 1, 0, 3), wr.bind(void 0, 0, 1, 1, 1, 0), wr.bind(void 0, 0, 1, 1, 1, 1), wr.bind(void 0, 0, 1, 1, 1, 2), wr.bind(void 0, 0, 1, 1, 1, 3), wr.bind(void 0, 1, 0, 0, 0, 0), wr.bind(void 0, 1, 0, 0, 0, 1), wr.bind(void 0, 1, 0, 0, 0, 2), wr.bind(void 0, 1, 0, 0, 0, 3), wr.bind(void 0, 1, 0, 0, 1, 0), wr.bind(void 0, 1, 0, 0, 1, 1), wr.bind(void 0, 1, 0, 0, 1, 2), wr.bind(void 0, 1, 0, 0, 1, 3), wr.bind(void 0, 1, 0, 1, 0, 0), wr.bind(void 0, 1, 0, 1, 0, 1), wr.bind(void 0, 1, 0, 1, 0, 2), wr.bind(void 0, 1, 0, 1, 0, 3), wr.bind(void 0, 1, 0, 1, 1, 0), wr.bind(void 0, 1, 0, 1, 1, 1), wr.bind(void 0, 1, 0, 1, 1, 2), wr.bind(void 0, 1, 0, 1, 1, 3), wr.bind(void 0, 1, 1, 0, 0, 0), wr.bind(void 0, 1, 1, 0, 0, 1), wr.bind(void 0, 1, 1, 0, 0, 2), wr.bind(void 0, 1, 1, 0, 0, 3), wr.bind(void 0, 1, 1, 0, 1, 0), wr.bind(void 0, 1, 1, 0, 1, 1), wr.bind(void 0, 1, 1, 0, 1, 2), wr.bind(void 0, 1, 1, 0, 1, 3), wr.bind(void 0, 1, 1, 1, 0, 0), wr.bind(void 0, 1, 1, 1, 0, 1), wr.bind(void 0, 1, 1, 1, 0, 2), wr.bind(void 0, 1, 1, 1, 0, 3), wr.bind(void 0, 1, 1, 1, 1, 0), wr.bind(void 0, 1, 1, 1, 1, 1), wr.bind(void 0, 1, 1, 1, 1, 2), wr.bind(void 0, 1, 1, 1, 1, 3)];
            var Sr = Array.from || function(e3) {
              return e3.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]?|[^\uD800-\uDFFF]|./g) || [];
            };
            function jr(e3) {
              (e3 = e3 || {}).empty || (Et(e3.familyName, "When creating a new Font object, familyName is required."), Et(e3.styleName, "When creating a new Font object, styleName is required."), Et(e3.unitsPerEm, "When creating a new Font object, unitsPerEm is required."), Et(e3.ascender, "When creating a new Font object, ascender is required."), Et(e3.descender, "When creating a new Font object, descender is required."), Et(e3.descender < 0, "Descender should be negative (e.g. -512)."), this.names = { fontFamily: { en: e3.familyName || " " }, fontSubfamily: { en: e3.styleName || " " }, fullName: { en: e3.fullName || e3.familyName + " " + e3.styleName }, postScriptName: { en: e3.postScriptName || (e3.familyName + e3.styleName).replace(/\s/g, "") }, designer: { en: e3.designer || " " }, designerURL: { en: e3.designerURL || " " }, manufacturer: { en: e3.manufacturer || " " }, manufacturerURL: { en: e3.manufacturerURL || " " }, license: { en: e3.license || " " }, licenseURL: { en: e3.licenseURL || " " }, version: { en: e3.version || "Version 0.1" }, description: { en: e3.description || " " }, copyright: { en: e3.copyright || " " }, trademark: { en: e3.trademark || " " } }, this.unitsPerEm = e3.unitsPerEm || 1e3, this.ascender = e3.ascender, this.descender = e3.descender, this.createdTimestamp = e3.createdTimestamp, this.tables = { os2: { usWeightClass: e3.weightClass || this.usWeightClasses.MEDIUM, usWidthClass: e3.widthClass || this.usWidthClasses.MEDIUM, fsSelection: e3.fsSelection || this.fsSelectionValues.REGULAR } }), this.supported = true, this.glyphs = new _e.GlyphSet(this, e3.glyphs || []), this.encoding = new fe(this), this.position = new xt(this), this.substitution = new wt(this), this.tables = this.tables || {}, Object.defineProperty(this, "hinting", { get: function() {
                return this._hinting ? this._hinting : this.outlinesFormat === "truetype" ? this._hinting = new Ut(this) : void 0;
              } });
            }
            function Mr(e3, t3) {
              var r3 = JSON.stringify(e3), n2 = 256;
              for (var o2 in t3) {
                var i2 = parseInt(o2);
                if (i2 && !(i2 < 256)) {
                  if (JSON.stringify(t3[o2]) === r3)
                    return i2;
                  n2 <= i2 && (n2 = i2 + 1);
                }
              }
              return t3[n2] = e3, n2;
            }
            function Er(e3, t3, r3, n2) {
              for (var o2 = [{ name: "nameID_" + e3, type: "USHORT", value: Mr(t3.name, n2) }, { name: "flags_" + e3, type: "USHORT", value: 0 }], i2 = 0; i2 < r3.length; ++i2) {
                var a2 = r3[i2].tag;
                o2.push({ name: "axis_" + e3 + " " + a2, type: "FIXED", value: t3.coordinates[a2] << 16 });
              }
              return o2;
            }
            function Tr(e3, t3, r3, n2) {
              var o2 = {}, i2 = new ae.Parser(e3, t3);
              o2.name = n2[i2.parseUShort()] || {}, i2.skip("uShort", 1), o2.coordinates = {};
              for (var a2 = 0; a2 < r3.length; ++a2)
                o2.coordinates[r3[a2].tag] = i2.parseFixed();
              return o2;
            }
            jr.prototype.hasChar = function(e3) {
              return this.encoding.charToGlyphIndex(e3) !== null;
            }, jr.prototype.charToGlyphIndex = function(e3) {
              return this.encoding.charToGlyphIndex(e3);
            }, jr.prototype.charToGlyph = function(e3) {
              var t3 = this.charToGlyphIndex(e3), r3 = this.glyphs.get(t3);
              return r3 = r3 || this.glyphs.get(0);
            }, jr.prototype.stringToGlyphs = function(e3, t3) {
              t3 = t3 || this.defaultRenderOptions;
              for (var r3 = Sr(e3), n2 = [], o2 = 0; o2 < r3.length; o2 += 1) {
                var i2 = r3[o2];
                n2.push(this.charToGlyphIndex(i2));
              }
              var a2 = n2.length;
              if (t3.features) {
                var s2 = t3.script || this.substitution.getDefaultScriptName(), l2 = [];
                t3.features.liga && (l2 = l2.concat(this.substitution.getFeature("liga", s2, t3.language))), t3.features.rlig && (l2 = l2.concat(this.substitution.getFeature("rlig", s2, t3.language)));
                for (var u2 = 0; u2 < a2; u2 += 1)
                  for (var c2 = 0; c2 < l2.length; c2++) {
                    for (var d2 = l2[c2], f2 = d2.sub, h2 = f2.length, p2 = 0; p2 < h2 && f2[p2] === n2[u2 + p2]; )
                      p2++;
                    p2 === h2 && (n2.splice(u2, h2, d2.by), a2 = a2 - h2 + 1);
                  }
              }
              for (var y2 = new Array(a2), m2 = this.glyphs.get(0), g2 = 0; g2 < a2; g2 += 1)
                y2[g2] = this.glyphs.get(n2[g2]) || m2;
              return y2;
            }, jr.prototype.nameToGlyphIndex = function(e3) {
              return this.glyphNames.nameToGlyphIndex(e3);
            }, jr.prototype.nameToGlyph = function(e3) {
              var t3 = this.nameToGlyphIndex(e3), r3 = this.glyphs.get(t3);
              return r3 = r3 || this.glyphs.get(0);
            }, jr.prototype.glyphIndexToName = function(e3) {
              return this.glyphNames.glyphIndexToName ? this.glyphNames.glyphIndexToName(e3) : "";
            }, jr.prototype.getKerningValue = function(e3, t3) {
              e3 = e3.index || e3, t3 = t3.index || t3;
              var r3 = this.position.defaultKerningTables;
              return r3 ? this.position.getKerningValue(r3, e3, t3) : this.kerningPairs[e3 + "," + t3] || 0;
            }, jr.prototype.defaultRenderOptions = { kerning: true, features: { liga: true, rlig: true } }, jr.prototype.forEachGlyph = function(e3, t3, r3, n2, o2, i2) {
              t3 = t3 !== void 0 ? t3 : 0, r3 = r3 !== void 0 ? r3 : 0, n2 = n2 !== void 0 ? n2 : 72, o2 = o2 || this.defaultRenderOptions;
              var a2, s2 = 1 / this.unitsPerEm * n2, l2 = this.stringToGlyphs(e3, o2);
              if (o2.kerning) {
                var u2 = o2.script || this.position.getDefaultScriptName();
                a2 = this.position.getKerningTables(u2, o2.language);
              }
              for (var c2 = 0; c2 < l2.length; c2 += 1) {
                var d2 = l2[c2];
                if (i2.call(this, d2, t3, r3, n2, o2), d2.advanceWidth && (t3 += d2.advanceWidth * s2), o2.kerning && c2 < l2.length - 1)
                  t3 += (a2 ? this.position.getKerningValue(a2, d2.index, l2[c2 + 1].index) : this.getKerningValue(d2, l2[c2 + 1])) * s2;
                o2.letterSpacing ? t3 += o2.letterSpacing * n2 : o2.tracking && (t3 += o2.tracking / 1e3 * n2);
              }
              return t3;
            }, jr.prototype.getPath = function(e3, t3, r3, n2, i2) {
              var a2 = new D();
              return this.forEachGlyph(e3, t3, r3, n2, i2, function(e4, t4, r4, n3) {
                var o2 = e4.getPath(t4, r4, n3, i2, this);
                a2.extend(o2);
              }), a2;
            }, jr.prototype.getPaths = function(e3, t3, r3, n2, i2) {
              var a2 = [];
              return this.forEachGlyph(e3, t3, r3, n2, i2, function(e4, t4, r4, n3) {
                var o2 = e4.getPath(t4, r4, n3, i2, this);
                a2.push(o2);
              }), a2;
            }, jr.prototype.getAdvanceWidth = function(e3, t3, r3) {
              return this.forEachGlyph(e3, 0, 0, t3, r3, function() {
              });
            }, jr.prototype.draw = function(e3, t3, r3, n2, o2, i2) {
              this.getPath(t3, r3, n2, o2, i2).draw(e3);
            }, jr.prototype.drawPoints = function(o2, e3, t3, r3, n2, i2) {
              this.forEachGlyph(e3, t3, r3, n2, i2, function(e4, t4, r4, n3) {
                e4.drawPoints(o2, t4, r4, n3);
              });
            }, jr.prototype.drawMetrics = function(o2, e3, t3, r3, n2, i2) {
              this.forEachGlyph(e3, t3, r3, n2, i2, function(e4, t4, r4, n3) {
                e4.drawMetrics(o2, t4, r4, n3);
              });
            }, jr.prototype.getEnglishName = function(e3) {
              var t3 = this.names[e3];
              if (t3)
                return t3.en;
            }, jr.prototype.validate = function() {
              var r3 = this;
              function e3(e4) {
                var t3 = r3.getEnglishName(e4);
                t3 && t3.trim().length;
              }
              e3("fontFamily"), e3("weightName"), e3("manufacturer"), e3("copyright"), e3("version"), this.unitsPerEm;
            }, jr.prototype.toTables = function() {
              return mt.fontToTable(this);
            }, jr.prototype.toBuffer = function() {
              return console.warn("Font.toBuffer is deprecated. Use Font.toArrayBuffer instead."), this.toArrayBuffer();
            }, jr.prototype.toArrayBuffer = function() {
              for (var e3 = this.toTables().encode(), t3 = new ArrayBuffer(e3.length), r3 = new Uint8Array(t3), n2 = 0; n2 < e3.length; n2++)
                r3[n2] = e3[n2];
              return t3;
            }, jr.prototype.download = function(t3) {
              var e3 = this.getEnglishName("fontFamily"), r3 = this.getEnglishName("fontSubfamily");
              t3 = t3 || e3.replace(/\s/g, "") + "-" + r3 + ".otf";
              var o2 = this.toArrayBuffer();
              if (typeof window != "undefined")
                window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem, window.requestFileSystem(window.TEMPORARY, o2.byteLength, function(e4) {
                  e4.root.getFile(t3, { create: true }, function(n3) {
                    n3.createWriter(function(e5) {
                      var t4 = new DataView(o2), r4 = new Blob([t4], { type: "font/opentype" });
                      e5.write(r4), e5.addEventListener("writeend", function() {
                        location.href = n3.toURL();
                      }, false);
                    });
                  });
                }, function(e4) {
                  throw new Error(e4.name + ": " + e4.message);
                });
              else {
                var n2 = Br("fs"), i2 = function(e4) {
                  for (var t4 = new Fr(e4.byteLength), r4 = new Uint8Array(e4), n3 = 0; n3 < t4.length; ++n3)
                    t4[n3] = r4[n3];
                  return t4;
                }(o2);
                n2.writeFileSync(t3, i2);
              }
            }, jr.prototype.fsSelectionValues = { ITALIC: 1, UNDERSCORE: 2, NEGATIVE: 4, OUTLINED: 8, STRIKEOUT: 16, BOLD: 32, REGULAR: 64, USER_TYPO_METRICS: 128, WWS: 256, OBLIQUE: 512 }, jr.prototype.usWidthClasses = { ULTRA_CONDENSED: 1, EXTRA_CONDENSED: 2, CONDENSED: 3, SEMI_CONDENSED: 4, MEDIUM: 5, SEMI_EXPANDED: 6, EXPANDED: 7, EXTRA_EXPANDED: 8, ULTRA_EXPANDED: 9 }, jr.prototype.usWeightClasses = { THIN: 100, EXTRA_LIGHT: 200, LIGHT: 300, NORMAL: 400, MEDIUM: 500, SEMI_BOLD: 600, BOLD: 700, EXTRA_BOLD: 800, BLACK: 900 };
            var Or = { make: function(e3, t3) {
              var r3, n2, o2, i2, a2 = new J.Table("fvar", [{ name: "version", type: "ULONG", value: 65536 }, { name: "offsetToData", type: "USHORT", value: 0 }, { name: "countSizePairs", type: "USHORT", value: 2 }, { name: "axisCount", type: "USHORT", value: e3.axes.length }, { name: "axisSize", type: "USHORT", value: 20 }, { name: "instanceCount", type: "USHORT", value: e3.instances.length }, { name: "instanceSize", type: "USHORT", value: 4 + 4 * e3.axes.length }]);
              a2.offsetToData = a2.sizeOf();
              for (var s2 = 0; s2 < e3.axes.length; s2++)
                a2.fields = a2.fields.concat((r3 = s2, n2 = e3.axes[s2], o2 = t3, i2 = Mr(n2.name, o2), [{ name: "tag_" + r3, type: "TAG", value: n2.tag }, { name: "minValue_" + r3, type: "FIXED", value: n2.minValue << 16 }, { name: "defaultValue_" + r3, type: "FIXED", value: n2.defaultValue << 16 }, { name: "maxValue_" + r3, type: "FIXED", value: n2.maxValue << 16 }, { name: "flags_" + r3, type: "USHORT", value: 0 }, { name: "nameID_" + r3, type: "USHORT", value: i2 }]));
              for (var l2 = 0; l2 < e3.instances.length; l2++)
                a2.fields = a2.fields.concat(Er(l2, e3.instances[l2], e3.axes, t3));
              return a2;
            }, parse: function(e3, t3, r3) {
              var n2 = new ae.Parser(e3, t3), o2 = n2.parseULong();
              L.argument(o2 === 65536, "Unsupported fvar table version.");
              var i2 = n2.parseOffset16();
              n2.skip("uShort", 1);
              for (var a2, s2, l2, u2, c2, d2 = n2.parseUShort(), f2 = n2.parseUShort(), h2 = n2.parseUShort(), p2 = n2.parseUShort(), y2 = [], m2 = 0; m2 < d2; m2++)
                y2.push((a2 = e3, s2 = t3 + i2 + m2 * f2, l2 = r3, c2 = u2 = void 0, u2 = {}, c2 = new ae.Parser(a2, s2), u2.tag = c2.parseTag(), u2.minValue = c2.parseFixed(), u2.defaultValue = c2.parseFixed(), u2.maxValue = c2.parseFixed(), c2.skip("uShort", 1), u2.name = l2[c2.parseUShort()] || {}, u2));
              for (var g2 = [], v2 = t3 + i2 + d2 * f2, b2 = 0; b2 < h2; b2++)
                g2.push(Tr(e3, v2 + b2 * p2, y2, r3));
              return { axes: y2, instances: g2 };
            } }, Cr = new Array(10);
            Cr[1] = function() {
              var e3 = this.offset + this.relativeOffset, t3 = this.parseUShort();
              return t3 === 1 ? { posFormat: 1, coverage: this.parsePointer(oe.coverage), value: this.parseValueRecord() } : t3 === 2 ? { posFormat: 2, coverage: this.parsePointer(oe.coverage), values: this.parseValueRecordList() } : void L.assert(false, "0x" + e3.toString(16) + ": GPOS lookup type 1 format must be 1 or 2.");
            }, Cr[2] = function() {
              var e3 = this.offset + this.relativeOffset, t3 = this.parseUShort();
              L.assert(t3 === 1 || t3 === 2, "0x" + e3.toString(16) + ": GPOS lookup type 2 format must be 1 or 2.");
              var r3 = this.parsePointer(oe.coverage), n2 = this.parseUShort(), o2 = this.parseUShort();
              if (t3 === 1)
                return { posFormat: t3, coverage: r3, valueFormat1: n2, valueFormat2: o2, pairSets: this.parseList(oe.pointer(oe.list(function() {
                  return { secondGlyph: this.parseUShort(), value1: this.parseValueRecord(n2), value2: this.parseValueRecord(o2) };
                }))) };
              if (t3 === 2) {
                var i2 = this.parsePointer(oe.classDef), a2 = this.parsePointer(oe.classDef), s2 = this.parseUShort(), l2 = this.parseUShort();
                return { posFormat: t3, coverage: r3, valueFormat1: n2, valueFormat2: o2, classDef1: i2, classDef2: a2, class1Count: s2, class2Count: l2, classRecords: this.parseList(s2, oe.list(l2, function() {
                  return { value1: this.parseValueRecord(n2), value2: this.parseValueRecord(o2) };
                })) };
              }
            }, Cr[3] = function() {
              return { error: "GPOS Lookup 3 not supported" };
            }, Cr[4] = function() {
              return { error: "GPOS Lookup 4 not supported" };
            }, Cr[5] = function() {
              return { error: "GPOS Lookup 5 not supported" };
            }, Cr[6] = function() {
              return { error: "GPOS Lookup 6 not supported" };
            }, Cr[7] = function() {
              return { error: "GPOS Lookup 7 not supported" };
            }, Cr[8] = function() {
              return { error: "GPOS Lookup 8 not supported" };
            }, Cr[9] = function() {
              return { error: "GPOS Lookup 9 not supported" };
            };
            var Lr = new Array(10);
            var Pr = { parse: function(e3, t3) {
              var r3 = new oe(e3, t3 = t3 || 0), n2 = r3.parseVersion(1);
              return L.argument(n2 === 1 || n2 === 1.1, "Unsupported GPOS table version " + n2), n2 === 1 ? { version: n2, scripts: r3.parseScriptList(), features: r3.parseFeatureList(), lookups: r3.parseLookupList(Cr) } : { version: n2, scripts: r3.parseScriptList(), features: r3.parseFeatureList(), lookups: r3.parseLookupList(Cr), variations: r3.parseFeatureVariationsList() };
            }, make: function(e3) {
              return new J.Table("GPOS", [{ name: "version", type: "ULONG", value: 65536 }, { name: "scripts", type: "TABLE", value: new J.ScriptList(e3.scripts) }, { name: "features", type: "TABLE", value: new J.FeatureList(e3.features) }, { name: "lookups", type: "TABLE", value: new J.LookupList(e3.lookups, Lr) }]);
            } };
            var kr = { parse: function(e3, t3) {
              var r3 = new ae.Parser(e3, t3), n2 = r3.parseUShort();
              if (n2 === 0)
                return function(e4) {
                  var t4 = {};
                  e4.skip("uShort");
                  var r4 = e4.parseUShort();
                  L.argument(r4 === 0, "Unsupported kern sub-table version."), e4.skip("uShort", 2);
                  var n3 = e4.parseUShort();
                  e4.skip("uShort", 3);
                  for (var o2 = 0; o2 < n3; o2 += 1) {
                    var i2 = e4.parseUShort(), a2 = e4.parseUShort(), s2 = e4.parseShort();
                    t4[i2 + "," + a2] = s2;
                  }
                  return t4;
                }(r3);
              if (n2 === 1)
                return function(e4) {
                  var t4 = {};
                  e4.skip("uShort"), 1 < e4.parseULong() && console.warn("Only the first kern subtable is supported."), e4.skip("uLong");
                  var r4 = 255 & e4.parseUShort();
                  if (e4.skip("uShort"), r4 == 0) {
                    var n3 = e4.parseUShort();
                    e4.skip("uShort", 3);
                    for (var o2 = 0; o2 < n3; o2 += 1) {
                      var i2 = e4.parseUShort(), a2 = e4.parseUShort(), s2 = e4.parseShort();
                      t4[i2 + "," + a2] = s2;
                    }
                  }
                  return t4;
                }(r3);
              throw new Error("Unsupported kern table version (" + n2 + ").");
            } };
            var Ar = { parse: function(e3, t3, r3, n2) {
              for (var o2 = new ae.Parser(e3, t3), i2 = n2 ? o2.parseUShort : o2.parseULong, a2 = [], s2 = 0; s2 < r3 + 1; s2 += 1) {
                var l2 = i2.call(o2);
                n2 && (l2 *= 2), a2.push(l2);
              }
              return a2;
            } };
            function Rr(e3, r3) {
              Br("fs").readFile(e3, function(e4, t3) {
                if (e4)
                  return r3(e4.message);
                r3(null, Mt(t3));
              });
            }
            function Dr(e3, t3) {
              var r3 = new XMLHttpRequest();
              r3.open("get", e3, true), r3.responseType = "arraybuffer", r3.onload = function() {
                return r3.response ? t3(null, r3.response) : t3("Font could not be loaded: " + r3.statusText);
              }, r3.onerror = function() {
                t3("Font could not be loaded");
              }, r3.send();
            }
            function Ir(e3, t3) {
              for (var r3 = [], n2 = 12, o2 = 0; o2 < t3; o2 += 1) {
                var i2 = ae.getTag(e3, n2), a2 = ae.getULong(e3, n2 + 4), s2 = ae.getULong(e3, n2 + 8), l2 = ae.getULong(e3, n2 + 12);
                r3.push({ tag: i2, checksum: a2, offset: s2, length: l2, compression: false }), n2 += 16;
              }
              return r3;
            }
            function Ur(e3, t3) {
              if (t3.compression !== "WOFF")
                return { data: e3, offset: t3.offset };
              var r3 = new Uint8Array(e3.buffer, t3.offset + 2, t3.compressedLength - 2), n2 = new Uint8Array(t3.length);
              if (o(r3, n2), n2.byteLength !== t3.length)
                throw new Error("Decompression error: " + t3.tag + " decompressed length doesn't match recorded length");
              return { data: new DataView(n2.buffer, 0), offset: 0 };
            }
            function Nr(e3) {
              var t3, r3, n2, o2, i2, a2, s2, l2, u2, c2, d2, f2, h2, p2, y2 = new jr({ empty: true }), m2 = new DataView(e3, 0), g2 = [], v2 = ae.getTag(m2, 0);
              if (v2 === String.fromCharCode(0, 1, 0, 0) || v2 === "true" || v2 === "typ1")
                y2.outlinesFormat = "truetype", g2 = Ir(m2, n2 = ae.getUShort(m2, 4));
              else if (v2 === "OTTO")
                y2.outlinesFormat = "cff", g2 = Ir(m2, n2 = ae.getUShort(m2, 4));
              else {
                if (v2 !== "wOFF")
                  throw new Error("Unsupported OpenType signature " + v2);
                var b2 = ae.getTag(m2, 4);
                if (b2 === String.fromCharCode(0, 1, 0, 0))
                  y2.outlinesFormat = "truetype";
                else {
                  if (b2 !== "OTTO")
                    throw new Error("Unsupported OpenType flavor " + v2);
                  y2.outlinesFormat = "cff";
                }
                g2 = function(e4, t4) {
                  for (var r4 = [], n3 = 44, o3 = 0; o3 < t4; o3 += 1) {
                    var i3 = ae.getTag(e4, n3), a3 = ae.getULong(e4, n3 + 4), s3 = ae.getULong(e4, n3 + 8), l3 = ae.getULong(e4, n3 + 12), u3 = void 0;
                    u3 = s3 < l3 && "WOFF", r4.push({ tag: i3, offset: a3, compression: u3, compressedLength: s3, length: l3 }), n3 += 20;
                  }
                  return r4;
                }(m2, n2 = ae.getUShort(m2, 12));
              }
              for (var _2 = 0; _2 < n2; _2 += 1) {
                var x2 = g2[_2], w2 = void 0;
                switch (x2.tag) {
                  case "cmap":
                    w2 = Ur(m2, x2), y2.tables.cmap = se.parse(w2.data, w2.offset), y2.encoding = new he(y2.tables.cmap);
                    break;
                  case "cvt ":
                    w2 = Ur(m2, x2), p2 = new ae.Parser(w2.data, w2.offset), y2.tables.cvt = p2.parseShortList(x2.length / 2);
                    break;
                  case "fvar":
                    i2 = x2;
                    break;
                  case "fpgm":
                    w2 = Ur(m2, x2), p2 = new ae.Parser(w2.data, w2.offset), y2.tables.fpgm = p2.parseByteList(x2.length);
                    break;
                  case "head":
                    w2 = Ur(m2, x2), y2.tables.head = Fe.parse(w2.data, w2.offset), y2.unitsPerEm = y2.tables.head.unitsPerEm, t3 = y2.tables.head.indexToLocFormat;
                    break;
                  case "hhea":
                    w2 = Ur(m2, x2), y2.tables.hhea = Be.parse(w2.data, w2.offset), y2.ascender = y2.tables.hhea.ascender, y2.descender = y2.tables.hhea.descender, y2.numberOfHMetrics = y2.tables.hhea.numberOfHMetrics;
                    break;
                  case "hmtx":
                    u2 = x2;
                    break;
                  case "ltag":
                    w2 = Ur(m2, x2), r3 = Ve.parse(w2.data, w2.offset);
                    break;
                  case "maxp":
                    w2 = Ur(m2, x2), y2.tables.maxp = ze.parse(w2.data, w2.offset), y2.numGlyphs = y2.tables.maxp.numGlyphs;
                    break;
                  case "name":
                    f2 = x2;
                    break;
                  case "OS/2":
                    w2 = Ur(m2, x2), y2.tables.os2 = ot.parse(w2.data, w2.offset);
                    break;
                  case "post":
                    w2 = Ur(m2, x2), y2.tables.post = it.parse(w2.data, w2.offset), y2.glyphNames = new ye(y2.tables.post);
                    break;
                  case "prep":
                    w2 = Ur(m2, x2), p2 = new ae.Parser(w2.data, w2.offset), y2.tables.prep = p2.parseByteList(x2.length);
                    break;
                  case "glyf":
                    a2 = x2;
                    break;
                  case "loca":
                    d2 = x2;
                    break;
                  case "CFF ":
                    o2 = x2;
                    break;
                  case "kern":
                    c2 = x2;
                    break;
                  case "GPOS":
                    s2 = x2;
                    break;
                  case "GSUB":
                    l2 = x2;
                    break;
                  case "meta":
                    h2 = x2;
                }
              }
              var S2 = Ur(m2, f2);
              if (y2.tables.name = rt.parse(S2.data, S2.offset, r3), y2.names = y2.tables.name, a2 && d2) {
                var j2 = t3 === 0, M2 = Ur(m2, d2), E2 = Ar.parse(M2.data, M2.offset, y2.numGlyphs, j2), T2 = Ur(m2, a2);
                y2.glyphs = It.parse(T2.data, T2.offset, E2, y2);
              } else {
                if (!o2)
                  throw new Error("Font doesn't contain TrueType or CFF outlines.");
                var O2 = Ur(m2, o2);
                Ne.parse(O2.data, O2.offset, y2);
              }
              var C2 = Ur(m2, u2);
              if (Ge.parse(C2.data, C2.offset, y2.numberOfHMetrics, y2.numGlyphs, y2.glyphs), function(e4) {
                for (var t4, r4 = e4.tables.cmap.glyphIndexMap, n3 = Object.keys(r4), o3 = 0; o3 < n3.length; o3 += 1) {
                  var i3 = n3[o3], a3 = r4[i3];
                  (t4 = e4.glyphs.get(a3)).addUnicode(parseInt(i3));
                }
                for (var s3 = 0; s3 < e4.glyphs.length; s3 += 1)
                  t4 = e4.glyphs.get(s3), e4.cffEncoding ? e4.isCIDFont ? t4.name = "gid" + s3 : t4.name = e4.cffEncoding.charset[s3] : e4.glyphNames.names && (t4.name = e4.glyphNames.glyphIndexToName(s3));
              }(y2), c2) {
                var L2 = Ur(m2, c2);
                y2.kerningPairs = kr.parse(L2.data, L2.offset);
              } else
                y2.kerningPairs = {};
              if (s2) {
                var P2 = Ur(m2, s2);
                y2.tables.gpos = Pr.parse(P2.data, P2.offset), y2.position.init();
              }
              if (l2) {
                var k2 = Ur(m2, l2);
                y2.tables.gsub = ut.parse(k2.data, k2.offset);
              }
              if (i2) {
                var A2 = Ur(m2, i2);
                y2.tables.fvar = Or.parse(A2.data, A2.offset, y2.names);
              }
              if (h2) {
                var R2 = Ur(m2, h2);
                y2.tables.meta = ct.parse(R2.data, R2.offset), y2.metas = y2.tables.meta;
              }
              return y2;
            }
            M.Font = jr, M.Glyph = ge, M.Path = D, M.BoundingBox = T, M._parse = ae, M.parse = Nr, M.load = function(e3, n2) {
              (typeof window == "undefined" ? Rr : Dr)(e3, function(e4, t3) {
                if (e4)
                  return n2(e4);
                var r3;
                try {
                  r3 = Nr(t3);
                } catch (e5) {
                  return n2(e5, null);
                }
                return n2(null, r3);
              });
            }, M.loadSync = function(e3) {
              return Nr(Mt(Br("fs").readFileSync(e3)));
            }, Object.defineProperty(M, "__esModule", { value: true });
          }(typeof r == "object" && t !== void 0 ? r : e.opentype = {});
        }).call(this, Br("buffer").Buffer);
      }, { buffer: 4, fs: 2 }], 237: [function(e, t, u) {
        (function(o) {
          function i(e2, t2) {
            for (var r = 0, n2 = e2.length - 1; 0 <= n2; n2--) {
              var o2 = e2[n2];
              o2 === "." ? e2.splice(n2, 1) : o2 === ".." ? (e2.splice(n2, 1), r++) : r && (e2.splice(n2, 1), r--);
            }
            if (t2)
              for (; r--; )
                e2.unshift("..");
            return e2;
          }
          function a(e2, t2) {
            if (e2.filter)
              return e2.filter(t2);
            for (var r = [], n2 = 0; n2 < e2.length; n2++)
              t2(e2[n2], n2, e2) && r.push(e2[n2]);
            return r;
          }
          u.resolve = function() {
            for (var e2 = "", t2 = false, r = arguments.length - 1; -1 <= r && !t2; r--) {
              var n2 = 0 <= r ? arguments[r] : o.cwd();
              if (typeof n2 != "string")
                throw new TypeError("Arguments to path.resolve must be strings");
              n2 && (e2 = n2 + "/" + e2, t2 = n2.charAt(0) === "/");
            }
            return (t2 ? "/" : "") + (e2 = i(a(e2.split("/"), function(e3) {
              return !!e3;
            }), !t2).join("/")) || ".";
          }, u.normalize = function(e2) {
            var t2 = u.isAbsolute(e2), r = n(e2, -1) === "/";
            return (e2 = i(a(e2.split("/"), function(e3) {
              return !!e3;
            }), !t2).join("/")) || t2 || (e2 = "."), e2 && r && (e2 += "/"), (t2 ? "/" : "") + e2;
          }, u.isAbsolute = function(e2) {
            return e2.charAt(0) === "/";
          }, u.join = function() {
            var e2 = Array.prototype.slice.call(arguments, 0);
            return u.normalize(a(e2, function(e3, t2) {
              if (typeof e3 != "string")
                throw new TypeError("Arguments to path.join must be strings");
              return e3;
            }).join("/"));
          }, u.relative = function(e2, t2) {
            function r(e3) {
              for (var t3 = 0; t3 < e3.length && e3[t3] === ""; t3++)
                ;
              for (var r2 = e3.length - 1; 0 <= r2 && e3[r2] === ""; r2--)
                ;
              return r2 < t3 ? [] : e3.slice(t3, r2 - t3 + 1);
            }
            e2 = u.resolve(e2).substr(1), t2 = u.resolve(t2).substr(1);
            for (var n2 = r(e2.split("/")), o2 = r(t2.split("/")), i2 = Math.min(n2.length, o2.length), a2 = i2, s = 0; s < i2; s++)
              if (n2[s] !== o2[s]) {
                a2 = s;
                break;
              }
            var l = [];
            for (s = a2; s < n2.length; s++)
              l.push("..");
            return (l = l.concat(o2.slice(a2))).join("/");
          }, u.sep = "/", u.delimiter = ":", u.dirname = function(e2) {
            if (typeof e2 != "string" && (e2 += ""), e2.length === 0)
              return ".";
            for (var t2 = e2.charCodeAt(0), r = t2 === 47, n2 = -1, o2 = true, i2 = e2.length - 1; 1 <= i2; --i2)
              if ((t2 = e2.charCodeAt(i2)) === 47) {
                if (!o2) {
                  n2 = i2;
                  break;
                }
              } else
                o2 = false;
            return n2 === -1 ? r ? "/" : "." : r && n2 === 1 ? "/" : e2.slice(0, n2);
          }, u.basename = function(e2, t2) {
            var r = function(e3) {
              typeof e3 != "string" && (e3 += "");
              var t3, r2 = 0, n2 = -1, o2 = true;
              for (t3 = e3.length - 1; 0 <= t3; --t3)
                if (e3.charCodeAt(t3) === 47) {
                  if (!o2) {
                    r2 = t3 + 1;
                    break;
                  }
                } else
                  n2 === -1 && (o2 = false, n2 = t3 + 1);
              return n2 === -1 ? "" : e3.slice(r2, n2);
            }(e2);
            return t2 && r.substr(-1 * t2.length) === t2 && (r = r.substr(0, r.length - t2.length)), r;
          }, u.extname = function(e2) {
            typeof e2 != "string" && (e2 += "");
            for (var t2 = -1, r = 0, n2 = -1, o2 = true, i2 = 0, a2 = e2.length - 1; 0 <= a2; --a2) {
              var s = e2.charCodeAt(a2);
              if (s === 47) {
                if (o2)
                  continue;
                r = a2 + 1;
                break;
              }
              n2 === -1 && (o2 = false, n2 = a2 + 1), s === 46 ? t2 === -1 ? t2 = a2 : i2 !== 1 && (i2 = 1) : t2 !== -1 && (i2 = -1);
            }
            return t2 === -1 || n2 === -1 || i2 === 0 || i2 === 1 && t2 === n2 - 1 && t2 === r + 1 ? "" : e2.slice(t2, n2);
          };
          var n = "ab".substr(-1) === "b" ? function(e2, t2, r) {
            return e2.substr(t2, r);
          } : function(e2, t2, r) {
            return t2 < 0 && (t2 = e2.length + t2), e2.substr(t2, r);
          };
        }).call(this, e("_process"));
      }, { _process: 238 }], 238: [function(e, t, r) {
        var n, o, i = t.exports = {};
        function a() {
          throw new Error("setTimeout has not been defined");
        }
        function s() {
          throw new Error("clearTimeout has not been defined");
        }
        function l(t2) {
          if (n === setTimeout)
            return setTimeout(t2, 0);
          if ((n === a || !n) && setTimeout)
            return n = setTimeout, setTimeout(t2, 0);
          try {
            return n(t2, 0);
          } catch (e2) {
            try {
              return n.call(null, t2, 0);
            } catch (e3) {
              return n.call(this, t2, 0);
            }
          }
        }
        !function() {
          try {
            n = typeof setTimeout == "function" ? setTimeout : a;
          } catch (e2) {
            n = a;
          }
          try {
            o = typeof clearTimeout == "function" ? clearTimeout : s;
          } catch (e2) {
            o = s;
          }
        }();
        var u, c = [], d = false, f = -1;
        function h() {
          d && u && (d = false, u.length ? c = u.concat(c) : f = -1, c.length && p());
        }
        function p() {
          if (!d) {
            var e2 = l(h);
            d = true;
            for (var t2 = c.length; t2; ) {
              for (u = c, c = []; ++f < t2; )
                u && u[f].run();
              f = -1, t2 = c.length;
            }
            u = null, d = false, function(t3) {
              if (o === clearTimeout)
                return clearTimeout(t3);
              if ((o === s || !o) && clearTimeout)
                return o = clearTimeout, clearTimeout(t3);
              try {
                o(t3);
              } catch (e3) {
                try {
                  return o.call(null, t3);
                } catch (e4) {
                  return o.call(this, t3);
                }
              }
            }(e2);
          }
        }
        function y(e2, t2) {
          this.fun = e2, this.array = t2;
        }
        function m() {
        }
        i.nextTick = function(e2) {
          var t2 = new Array(arguments.length - 1);
          if (1 < arguments.length)
            for (var r2 = 1; r2 < arguments.length; r2++)
              t2[r2 - 1] = arguments[r2];
          c.push(new y(e2, t2)), c.length !== 1 || d || l(p);
        }, y.prototype.run = function() {
          this.fun.apply(null, this.array);
        }, i.title = "browser", i.browser = true, i.env = {}, i.argv = [], i.version = "", i.versions = {}, i.on = m, i.addListener = m, i.once = m, i.off = m, i.removeListener = m, i.removeAllListeners = m, i.emit = m, i.prependListener = m, i.prependOnceListener = m, i.listeners = function(e2) {
          return [];
        }, i.binding = function(e2) {
          throw new Error("process.binding is not supported");
        }, i.cwd = function() {
          return "/";
        }, i.chdir = function(e2) {
          throw new Error("process.chdir is not supported");
        }, i.umask = function() {
          return 0;
        };
      }, {}], 239: [function(e, t, r) {
        !function(e2) {
          "use strict";
          if (!e2.fetch) {
            var t2 = "URLSearchParams" in e2, r2 = "Symbol" in e2 && "iterator" in Symbol, a = "FileReader" in e2 && "Blob" in e2 && function() {
              try {
                return new Blob(), true;
              } catch (e3) {
                return false;
              }
            }(), n = "FormData" in e2, o = "ArrayBuffer" in e2;
            if (o)
              var i = ["[object Int8Array]", "[object Uint8Array]", "[object Uint8ClampedArray]", "[object Int16Array]", "[object Uint16Array]", "[object Int32Array]", "[object Uint32Array]", "[object Float32Array]", "[object Float64Array]"], s = function(e3) {
                return e3 && DataView.prototype.isPrototypeOf(e3);
              }, l = ArrayBuffer.isView || function(e3) {
                return e3 && -1 < i.indexOf(Object.prototype.toString.call(e3));
              };
            p.prototype.append = function(e3, t3) {
              e3 = d(e3), t3 = f(t3);
              var r3 = this.map[e3];
              this.map[e3] = r3 ? r3 + "," + t3 : t3;
            }, p.prototype.delete = function(e3) {
              delete this.map[d(e3)];
            }, p.prototype.get = function(e3) {
              return e3 = d(e3), this.has(e3) ? this.map[e3] : null;
            }, p.prototype.has = function(e3) {
              return this.map.hasOwnProperty(d(e3));
            }, p.prototype.set = function(e3, t3) {
              this.map[d(e3)] = f(t3);
            }, p.prototype.forEach = function(e3, t3) {
              for (var r3 in this.map)
                this.map.hasOwnProperty(r3) && e3.call(t3, this.map[r3], r3, this);
            }, p.prototype.keys = function() {
              var r3 = [];
              return this.forEach(function(e3, t3) {
                r3.push(t3);
              }), h(r3);
            }, p.prototype.values = function() {
              var t3 = [];
              return this.forEach(function(e3) {
                t3.push(e3);
              }), h(t3);
            }, p.prototype.entries = function() {
              var r3 = [];
              return this.forEach(function(e3, t3) {
                r3.push([t3, e3]);
              }), h(r3);
            }, r2 && (p.prototype[Symbol.iterator] = p.prototype.entries);
            var u = ["DELETE", "GET", "HEAD", "OPTIONS", "POST", "PUT"];
            _.prototype.clone = function() {
              return new _(this, { body: this._bodyInit });
            }, b.call(_.prototype), b.call(w.prototype), w.prototype.clone = function() {
              return new w(this._bodyInit, { status: this.status, statusText: this.statusText, headers: new p(this.headers), url: this.url });
            }, w.error = function() {
              var e3 = new w(null, { status: 0, statusText: "" });
              return e3.type = "error", e3;
            };
            var c = [301, 302, 303, 307, 308];
            w.redirect = function(e3, t3) {
              if (c.indexOf(t3) === -1)
                throw new RangeError("Invalid status code");
              return new w(null, { status: t3, headers: { location: e3 } });
            }, e2.Headers = p, e2.Request = _, e2.Response = w, e2.fetch = function(r3, o2) {
              return new Promise(function(n2, e3) {
                var t3 = new _(r3, o2), i2 = new XMLHttpRequest();
                i2.onload = function() {
                  var e4, o3, t4 = { status: i2.status, statusText: i2.statusText, headers: (e4 = i2.getAllResponseHeaders() || "", o3 = new p(), e4.replace(/\r?\n[\t ]+/g, " ").split(/\r?\n/).forEach(function(e5) {
                    var t5 = e5.split(":"), r5 = t5.shift().trim();
                    if (r5) {
                      var n3 = t5.join(":").trim();
                      o3.append(r5, n3);
                    }
                  }), o3) };
                  t4.url = "responseURL" in i2 ? i2.responseURL : t4.headers.get("X-Request-URL");
                  var r4 = "response" in i2 ? i2.response : i2.responseText;
                  n2(new w(r4, t4));
                }, i2.onerror = function() {
                  e3(new TypeError("Network request failed"));
                }, i2.ontimeout = function() {
                  e3(new TypeError("Network request failed"));
                }, i2.open(t3.method, t3.url, true), t3.credentials === "include" ? i2.withCredentials = true : t3.credentials === "omit" && (i2.withCredentials = false), "responseType" in i2 && a && (i2.responseType = "blob"), t3.headers.forEach(function(e4, t4) {
                  i2.setRequestHeader(t4, e4);
                }), i2.send(t3._bodyInit === void 0 ? null : t3._bodyInit);
              });
            }, e2.fetch.polyfill = true;
          }
          function d(e3) {
            if (typeof e3 != "string" && (e3 = String(e3)), /[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(e3))
              throw new TypeError("Invalid character in header field name");
            return e3.toLowerCase();
          }
          function f(e3) {
            return typeof e3 != "string" && (e3 = String(e3)), e3;
          }
          function h(t3) {
            var e3 = { next: function() {
              var e4 = t3.shift();
              return { done: e4 === void 0, value: e4 };
            } };
            return r2 && (e3[Symbol.iterator] = function() {
              return e3;
            }), e3;
          }
          function p(t3) {
            this.map = {}, t3 instanceof p ? t3.forEach(function(e3, t4) {
              this.append(t4, e3);
            }, this) : Array.isArray(t3) ? t3.forEach(function(e3) {
              this.append(e3[0], e3[1]);
            }, this) : t3 && Object.getOwnPropertyNames(t3).forEach(function(e3) {
              this.append(e3, t3[e3]);
            }, this);
          }
          function y(e3) {
            if (e3.bodyUsed)
              return Promise.reject(new TypeError("Already read"));
            e3.bodyUsed = true;
          }
          function m(r3) {
            return new Promise(function(e3, t3) {
              r3.onload = function() {
                e3(r3.result);
              }, r3.onerror = function() {
                t3(r3.error);
              };
            });
          }
          function g(e3) {
            var t3 = new FileReader(), r3 = m(t3);
            return t3.readAsArrayBuffer(e3), r3;
          }
          function v(e3) {
            if (e3.slice)
              return e3.slice(0);
            var t3 = new Uint8Array(e3.byteLength);
            return t3.set(new Uint8Array(e3)), t3.buffer;
          }
          function b() {
            return this.bodyUsed = false, this._initBody = function(e3) {
              if (this._bodyInit = e3)
                if (typeof e3 == "string")
                  this._bodyText = e3;
                else if (a && Blob.prototype.isPrototypeOf(e3))
                  this._bodyBlob = e3;
                else if (n && FormData.prototype.isPrototypeOf(e3))
                  this._bodyFormData = e3;
                else if (t2 && URLSearchParams.prototype.isPrototypeOf(e3))
                  this._bodyText = e3.toString();
                else if (o && a && s(e3))
                  this._bodyArrayBuffer = v(e3.buffer), this._bodyInit = new Blob([this._bodyArrayBuffer]);
                else {
                  if (!o || !ArrayBuffer.prototype.isPrototypeOf(e3) && !l(e3))
                    throw new Error("unsupported BodyInit type");
                  this._bodyArrayBuffer = v(e3);
                }
              else
                this._bodyText = "";
              this.headers.get("content-type") || (typeof e3 == "string" ? this.headers.set("content-type", "text/plain;charset=UTF-8") : this._bodyBlob && this._bodyBlob.type ? this.headers.set("content-type", this._bodyBlob.type) : t2 && URLSearchParams.prototype.isPrototypeOf(e3) && this.headers.set("content-type", "application/x-www-form-urlencoded;charset=UTF-8"));
            }, a && (this.blob = function() {
              var e3 = y(this);
              if (e3)
                return e3;
              if (this._bodyBlob)
                return Promise.resolve(this._bodyBlob);
              if (this._bodyArrayBuffer)
                return Promise.resolve(new Blob([this._bodyArrayBuffer]));
              if (this._bodyFormData)
                throw new Error("could not read FormData body as blob");
              return Promise.resolve(new Blob([this._bodyText]));
            }, this.arrayBuffer = function() {
              return this._bodyArrayBuffer ? y(this) || Promise.resolve(this._bodyArrayBuffer) : this.blob().then(g);
            }), this.text = function() {
              var e3, t3, r3, n2 = y(this);
              if (n2)
                return n2;
              if (this._bodyBlob)
                return e3 = this._bodyBlob, t3 = new FileReader(), r3 = m(t3), t3.readAsText(e3), r3;
              if (this._bodyArrayBuffer)
                return Promise.resolve(function(e4) {
                  for (var t4 = new Uint8Array(e4), r4 = new Array(t4.length), n3 = 0; n3 < t4.length; n3++)
                    r4[n3] = String.fromCharCode(t4[n3]);
                  return r4.join("");
                }(this._bodyArrayBuffer));
              if (this._bodyFormData)
                throw new Error("could not read FormData body as text");
              return Promise.resolve(this._bodyText);
            }, n && (this.formData = function() {
              return this.text().then(x);
            }), this.json = function() {
              return this.text().then(JSON.parse);
            }, this;
          }
          function _(e3, t3) {
            var r3, n2, o2 = (t3 = t3 || {}).body;
            if (e3 instanceof _) {
              if (e3.bodyUsed)
                throw new TypeError("Already read");
              this.url = e3.url, this.credentials = e3.credentials, t3.headers || (this.headers = new p(e3.headers)), this.method = e3.method, this.mode = e3.mode, o2 || e3._bodyInit == null || (o2 = e3._bodyInit, e3.bodyUsed = true);
            } else
              this.url = String(e3);
            if (this.credentials = t3.credentials || this.credentials || "omit", !t3.headers && this.headers || (this.headers = new p(t3.headers)), this.method = (r3 = t3.method || this.method || "GET", n2 = r3.toUpperCase(), -1 < u.indexOf(n2) ? n2 : r3), this.mode = t3.mode || this.mode || null, this.referrer = null, (this.method === "GET" || this.method === "HEAD") && o2)
              throw new TypeError("Body not allowed for GET or HEAD requests");
            this._initBody(o2);
          }
          function x(e3) {
            var o2 = new FormData();
            return e3.trim().split("&").forEach(function(e4) {
              if (e4) {
                var t3 = e4.split("="), r3 = t3.shift().replace(/\+/g, " "), n2 = t3.join("=").replace(/\+/g, " ");
                o2.append(decodeURIComponent(r3), decodeURIComponent(n2));
              }
            }), o2;
          }
          function w(e3, t3) {
            t3 = t3 || {}, this.type = "default", this.status = t3.status === void 0 ? 200 : t3.status, this.ok = 200 <= this.status && this.status < 300, this.statusText = "statusText" in t3 ? t3.statusText : "OK", this.headers = new p(t3.headers), this.url = t3.url || "", this._initBody(e3);
          }
        }(typeof self != "undefined" ? self : this);
      }, {}], 240: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.function.name"), e("core-js/modules/es.object.to-string"), e("core-js/modules/es.regexp.exec"), e("core-js/modules/es.regexp.to-string"), e("core-js/modules/es.string.split"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var l, n = i(e("../core/main")), o = i(e("../color/color_conversion"));
        function i(e2) {
          return e2 && e2.__esModule ? e2 : { default: e2 };
        }
        var u = [{ h: 0, s: 0, b: 0.8275, name: "gray" }, { h: 0, s: 0, b: 0.8627, name: "gray" }, { h: 0, s: 0, b: 0.7529, name: "gray" }, { h: 0.0167, s: 0.1176, b: 1, name: "light pink" }], c = [{ h: 0, s: 0, b: 0, name: "black" }, { h: 0, s: 0, b: 0.5, name: "gray" }, { h: 0, s: 0, b: 1, name: "white" }, { h: 0, s: 0.5, b: 0.5, name: "dark maroon" }, { h: 0, s: 0.5, b: 1, name: "salmon pink" }, { h: 0, s: 1, b: 0, name: "black" }, { h: 0, s: 1, b: 0.5, name: "dark red" }, { h: 0, s: 1, b: 1, name: "red" }, { h: 5, s: 0, b: 1, name: "very light peach" }, { h: 5, s: 0.5, b: 0.5, name: "brown" }, { h: 5, s: 0.5, b: 1, name: "peach" }, { h: 5, s: 1, b: 0.5, name: "brick red" }, { h: 5, s: 1, b: 1, name: "crimson" }, { h: 10, s: 0, b: 1, name: "light peach" }, { h: 10, s: 0.5, b: 0.5, name: "brown" }, { h: 10, s: 0.5, b: 1, name: "light orange" }, { h: 10, s: 1, b: 0.5, name: "brown" }, { h: 10, s: 1, b: 1, name: "orange" }, { h: 15, s: 0, b: 1, name: "very light yellow" }, { h: 15, s: 0.5, b: 0.5, name: "olive green" }, { h: 15, s: 0.5, b: 1, name: "light yellow" }, { h: 15, s: 1, b: 0, name: "dark olive green" }, { h: 15, s: 1, b: 0.5, name: "olive green" }, { h: 15, s: 1, b: 1, name: "yellow" }, { h: 20, s: 0, b: 1, name: "very light yellow" }, { h: 20, s: 0.5, b: 0.5, name: "olive green" }, { h: 20, s: 0.5, b: 1, name: "light yellow green" }, { h: 20, s: 1, b: 0, name: "dark olive green" }, { h: 20, s: 1, b: 0.5, name: "dark yellow green" }, { h: 20, s: 1, b: 1, name: "yellow green" }, { h: 25, s: 0.5, b: 0.5, name: "dark yellow green" }, { h: 25, s: 0.5, b: 1, name: "light green" }, { h: 25, s: 1, b: 0.5, name: "dark green" }, { h: 25, s: 1, b: 1, name: "green" }, { h: 30, s: 0.5, b: 1, name: "light green" }, { h: 30, s: 1, b: 0.5, name: "dark green" }, { h: 30, s: 1, b: 1, name: "green" }, { h: 35, s: 0, b: 0.5, name: "light green" }, { h: 35, s: 0, b: 1, name: "very light green" }, { h: 35, s: 0.5, b: 0.5, name: "dark green" }, { h: 35, s: 0.5, b: 1, name: "light green" }, { h: 35, s: 1, b: 0, name: "very dark green" }, { h: 35, s: 1, b: 0.5, name: "dark green" }, { h: 35, s: 1, b: 1, name: "green" }, { h: 40, s: 0, b: 1, name: "very light green" }, { h: 40, s: 0.5, b: 0.5, name: "dark green" }, { h: 40, s: 0.5, b: 1, name: "light green" }, { h: 40, s: 1, b: 0.5, name: "dark green" }, { h: 40, s: 1, b: 1, name: "green" }, { h: 45, s: 0.5, b: 1, name: "light turquoise" }, { h: 45, s: 1, b: 0.5, name: "dark turquoise" }, { h: 45, s: 1, b: 1, name: "turquoise" }, { h: 50, s: 0, b: 1, name: "light sky blue" }, { h: 50, s: 0.5, b: 0.5, name: "dark cyan" }, { h: 50, s: 0.5, b: 1, name: "light cyan" }, { h: 50, s: 1, b: 0.5, name: "dark cyan" }, { h: 50, s: 1, b: 1, name: "cyan" }, { h: 55, s: 0, b: 1, name: "light sky blue" }, { h: 55, s: 0.5, b: 1, name: "light sky blue" }, { h: 55, s: 1, b: 0.5, name: "dark blue" }, { h: 55, s: 1, b: 1, name: "sky blue" }, { h: 60, s: 0, b: 0.5, name: "gray" }, { h: 60, s: 0, b: 1, name: "very light blue" }, { h: 60, s: 0.5, b: 0.5, name: "blue" }, { h: 60, s: 0.5, b: 1, name: "light blue" }, { h: 60, s: 1, b: 0.5, name: "navy blue" }, { h: 60, s: 1, b: 1, name: "blue" }, { h: 65, s: 0, b: 1, name: "lavender" }, { h: 65, s: 0.5, b: 0.5, name: "navy blue" }, { h: 65, s: 0.5, b: 1, name: "light purple" }, { h: 65, s: 1, b: 0.5, name: "dark navy blue" }, { h: 65, s: 1, b: 1, name: "blue" }, { h: 70, s: 0, b: 1, name: "lavender" }, { h: 70, s: 0.5, b: 0.5, name: "navy blue" }, { h: 70, s: 0.5, b: 1, name: "lavender blue" }, { h: 70, s: 1, b: 0.5, name: "dark navy blue" }, { h: 70, s: 1, b: 1, name: "blue" }, { h: 75, s: 0.5, b: 1, name: "lavender" }, { h: 75, s: 1, b: 0.5, name: "dark purple" }, { h: 75, s: 1, b: 1, name: "purple" }, { h: 80, s: 0.5, b: 1, name: "pinkish purple" }, { h: 80, s: 1, b: 0.5, name: "dark purple" }, { h: 80, s: 1, b: 1, name: "purple" }, { h: 85, s: 0, b: 1, name: "light pink" }, { h: 85, s: 0.5, b: 0.5, name: "purple" }, { h: 85, s: 0.5, b: 1, name: "light fuchsia" }, { h: 85, s: 1, b: 0.5, name: "dark fuchsia" }, { h: 85, s: 1, b: 1, name: "fuchsia" }, { h: 90, s: 0.5, b: 0.5, name: "dark fuchsia" }, { h: 90, s: 0.5, b: 1, name: "hot pink" }, { h: 90, s: 1, b: 0.5, name: "dark fuchsia" }, { h: 90, s: 1, b: 1, name: "fuchsia" }, { h: 95, s: 0, b: 1, name: "pink" }, { h: 95, s: 0.5, b: 1, name: "light pink" }, { h: 95, s: 1, b: 0.5, name: "dark magenta" }, { h: 95, s: 1, b: 1, name: "magenta" }];
        n.default.prototype._rgbColorName = function(e2) {
          var t2 = o.default._rgbaToHSBA(e2);
          return function(e3) {
            var t3;
            if (e3[0] !== 0) {
              e3[0] = Math.round(100 * e3[0]);
              var r2 = e3[0].toString().split(""), n2 = r2.length - 1;
              r2[n2] = parseInt(r2[n2]), r2[n2] < 2.5 ? r2[n2] = 0 : 2.5 <= r2[n2] && r2[n2] < 7.5 && (r2[n2] = 5), r2.length === 2 ? (r2[0] = parseInt(r2[0]), 7.5 <= r2[n2] && (r2[n2] = 0, r2[0] = r2[0] + 1), e3[0] = 10 * r2[0] + r2[1]) : 7.5 <= r2[n2] ? e3[0] = 10 : e3[0] = r2[n2];
            }
            e3[2] = e3[2] / 255;
            for (var o2 = e3.length - 1; 1 <= o2; o2--)
              e3[o2] <= 0.25 ? e3[o2] = 0 : 0.25 < e3[o2] && e3[o2] < 0.75 ? e3[o2] = 0.5 : e3[o2] = 1;
            if (e3[0] === 0 && e3[1] === 0 && e3[2] === 1) {
              for (var i2 = 2; 0 <= i2; i2--)
                l[i2] = Math.round(1e4 * l[i2]) / 1e4;
              for (var a2 = 0; a2 < u.length; a2++) {
                if (u[a2].h === l[0] && u[a2].s === l[1] && u[a2].b === l[2]) {
                  t3 = u[a2].name;
                  break;
                }
                t3 = "white";
              }
            } else
              for (var s = 0; s < c.length; s++)
                if (c[s].h === e3[0] && c[s].s === e3[1] && c[s].b === e3[2]) {
                  t3 = c[s].name;
                  break;
                }
            return t3;
          }([(l = t2)[0], t2[1], t2[2]]);
        };
        var a = n.default;
        r.default = a;
      }, { "../color/color_conversion": 246, "../core/main": 260, "core-js/modules/es.function.name": 163, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.regexp.exec": 178, "core-js/modules/es.regexp.to-string": 179, "core-js/modules/es.string.split": 188 }], 241: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.array.concat"), e("core-js/modules/es.regexp.exec"), e("core-js/modules/es.string.ends-with"), e("core-js/modules/es.string.replace"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, a = (n = e("../core/main")) && n.__esModule ? n : { default: n };
        var l = "_Description", u = "_fallbackDesc", c = "_fallbackTable", d = "_Label", f = "_labelDesc", h = "_labelTable";
        function s(e2) {
          if (e2 === "label" || e2 === "fallback")
            throw new Error("description should not be LABEL or FALLBACK");
          return e2.endsWith(".") || e2.endsWith(";") || e2.endsWith(",") || e2.endsWith("?") || e2.endsWith("!") || (e2 += "."), e2;
        }
        a.default.prototype.describe = function(e2, t2) {
          if (a.default._validateParameters("describe", arguments), typeof e2 == "string") {
            var r2 = this.canvas.id;
            e2 = s(e2), this.dummyDOM || (this.dummyDOM = document.getElementById(r2).parentNode), this.descriptions || (this.descriptions = {}), this.descriptions.fallback ? this.descriptions.fallback.innerHTML !== e2 && (this.descriptions.fallback.innerHTML = e2) : this._describeHTML("fallback", e2), t2 === this.LABEL && (this.descriptions.label ? this.descriptions.label.innerHTML !== e2 && (this.descriptions.label.innerHTML = e2) : this._describeHTML("label", e2));
          }
        }, a.default.prototype.describeElement = function(e2, t2, r2) {
          if (a.default._validateParameters("describeElement", arguments), typeof t2 == "string" && typeof e2 == "string") {
            var n2 = this.canvas.id;
            t2 = s(t2);
            var o2 = function(e3) {
              if (e3 === "label" || e3 === "fallback")
                throw new Error("element name should not be LABEL or FALLBACK");
              e3.endsWith(".") || e3.endsWith(";") || e3.endsWith(",") ? e3 = e3.replace(/.$/, ":") : e3.endsWith(":") || (e3 += ":");
              return e3;
            }(e2);
            e2 = e2.replace(/[^a-zA-Z0-9]/g, "");
            var i = '<th scope="row">'.concat(o2, "</th><td>").concat(t2, "</td>");
            this.dummyDOM || (this.dummyDOM = document.getElementById(n2).parentNode), this.descriptions ? this.descriptions.fallbackElements || (this.descriptions.fallbackElements = {}) : this.descriptions = { fallbackElements: {} }, this.descriptions.fallbackElements[e2] ? this.descriptions.fallbackElements[e2].innerHTML !== i && (this.descriptions.fallbackElements[e2].innerHTML = i) : this._describeElementHTML("fallback", e2, i), r2 === this.LABEL && (this.descriptions.labelElements || (this.descriptions.labelElements = {}), this.descriptions.labelElements[e2] ? this.descriptions.labelElements[e2].innerHTML !== i && (this.descriptions.labelElements[e2].innerHTML = i) : this._describeElementHTML("label", e2, i));
          }
        }, a.default.prototype._describeHTML = function(e2, t2) {
          var r2 = this.canvas.id;
          if (e2 === "fallback") {
            if (this.dummyDOM.querySelector("#".concat(r2 + l)))
              this.dummyDOM.querySelector("#" + r2 + c).insertAdjacentHTML("beforebegin", '<p id="'.concat(r2 + u, '"></p>'));
            else {
              var n2 = '<div id="'.concat(r2).concat(l, '" role="region" aria-label="Canvas Description"><p id="').concat(r2).concat(u, '"></p></div>');
              this.dummyDOM.querySelector("#".concat(r2, "accessibleOutput")) ? this.dummyDOM.querySelector("#".concat(r2, "accessibleOutput")).insertAdjacentHTML("beforebegin", n2) : this.dummyDOM.querySelector("#".concat(r2)).innerHTML = n2;
            }
            return this.descriptions.fallback = this.dummyDOM.querySelector("#".concat(r2).concat(u)), void (this.descriptions.fallback.innerHTML = t2);
          }
          if (e2 === "label") {
            if (this.dummyDOM.querySelector("#".concat(r2 + d)))
              this.dummyDOM.querySelector("#".concat(r2 + h)) && this.dummyDOM.querySelector("#".concat(r2 + h)).insertAdjacentHTML("beforebegin", '<p id="'.concat(r2).concat(f, '"></p>'));
            else {
              var o2 = '<div id="'.concat(r2).concat(d, '" class="p5Label"><p id="').concat(r2).concat(f, '"></p></div>');
              this.dummyDOM.querySelector("#".concat(r2, "accessibleOutputLabel")) ? this.dummyDOM.querySelector("#".concat(r2, "accessibleOutputLabel")).insertAdjacentHTML("beforebegin", o2) : this.dummyDOM.querySelector("#" + r2).insertAdjacentHTML("afterend", o2);
            }
            return this.descriptions.label = this.dummyDOM.querySelector("#" + r2 + f), void (this.descriptions.label.innerHTML = t2);
          }
        }, a.default.prototype._describeElementHTML = function(e2, t2, r2) {
          var n2 = this.canvas.id;
          if (e2 === "fallback") {
            if (this.dummyDOM.querySelector("#".concat(n2 + l)))
              this.dummyDOM.querySelector("#" + n2 + c) || this.dummyDOM.querySelector("#" + n2 + u).insertAdjacentHTML("afterend", '<table id="'.concat(n2).concat(c, '"><caption>Canvas elements and their descriptions</caption></table>'));
            else {
              var o2 = '<div id="'.concat(n2).concat(l, '" role="region" aria-label="Canvas Description"><table id="').concat(n2).concat(c, '"><caption>Canvas elements and their descriptions</caption></table></div>');
              this.dummyDOM.querySelector("#".concat(n2, "accessibleOutput")) ? this.dummyDOM.querySelector("#".concat(n2, "accessibleOutput")).insertAdjacentHTML("beforebegin", o2) : this.dummyDOM.querySelector("#" + n2).innerHTML = o2;
            }
            var i = document.createElement("tr");
            return i.id = n2 + "_fte_" + t2, this.dummyDOM.querySelector("#" + n2 + c).appendChild(i), this.descriptions.fallbackElements[t2] = this.dummyDOM.querySelector("#".concat(n2).concat("_fte_").concat(t2)), void (this.descriptions.fallbackElements[t2].innerHTML = r2);
          }
          if (e2 === "label") {
            if (this.dummyDOM.querySelector("#".concat(n2 + d)))
              this.dummyDOM.querySelector("#".concat(n2 + h)) || this.dummyDOM.querySelector("#" + n2 + f).insertAdjacentHTML("afterend", '<table id="'.concat(n2 + h, '"></table>'));
            else {
              var a2 = '<div id="'.concat(n2).concat(d, '" class="p5Label"><table id="').concat(n2).concat(h, '"></table></div>');
              this.dummyDOM.querySelector("#".concat(n2, "accessibleOutputLabel")) ? this.dummyDOM.querySelector("#".concat(n2, "accessibleOutputLabel")).insertAdjacentHTML("beforebegin", a2) : this.dummyDOM.querySelector("#" + n2).insertAdjacentHTML("afterend", a2);
            }
            var s2 = document.createElement("tr");
            s2.id = n2 + "_lte_" + t2, this.dummyDOM.querySelector("#" + n2 + h).appendChild(s2), this.descriptions.labelElements[t2] = this.dummyDOM.querySelector("#".concat(n2).concat("_lte_").concat(t2)), this.descriptions.labelElements[t2].innerHTML = r2;
          }
        };
        var o = a.default;
        r.default = o;
      }, { "../core/main": 260, "core-js/modules/es.array.concat": 148, "core-js/modules/es.regexp.exec": 178, "core-js/modules/es.string.ends-with": 181, "core-js/modules/es.string.replace": 186 }], 242: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.array.concat"), e("core-js/modules/es.array.map"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, o = (n = e("../core/main")) && n.__esModule ? n : { default: n };
        o.default.prototype._updateGridOutput = function(e2) {
          if (this.dummyDOM.querySelector("#".concat(e2, "_summary"))) {
            var t2 = this._accessibleOutputs[e2], r2 = function(e3, t3) {
              var r3 = "", n3 = "", o3 = 0;
              for (var i2 in t3) {
                var a = 0;
                for (var s in t3[i2]) {
                  var l = '<li id="'.concat(e3, "shape").concat(o3, '">').concat(t3[i2][s].color, " ").concat(i2, ",");
                  i2 === "line" ? l += " location = ".concat(t3[i2][s].pos, ", length = ").concat(t3[i2][s].length, " pixels") : (l += " location = ".concat(t3[i2][s].pos), i2 !== "point" && (l += ", area = ".concat(t3[i2][s].area, " %")), l += "</li>"), r3 += l, a++, o3++;
                }
                n3 = 1 < a ? "".concat(n3, " ").concat(a, " ").concat(i2, "s") : "".concat(n3, " ").concat(a, " ").concat(i2);
              }
              return { numShapes: [o3, n3], details: r3 };
            }(e2, this.ingredients.shapes), n2 = function(e3, t3, r3, n3) {
              var o3 = "".concat(t3, " canvas, ").concat(r3, " by ").concat(n3, " pixels, contains ").concat(e3[0]);
              o3 = e3[0] === 1 ? "".concat(o3, " shape: ").concat(e3[1]) : "".concat(o3, " shapes: ").concat(e3[1]);
              return o3;
            }(r2.numShapes, this.ingredients.colors.background, this.width, this.height), o2 = function(e3, t3) {
              var r3 = 0, n3 = "", o3 = Array.apply(null, Array(10)).map(function() {
              });
              for (var i2 in o3)
                o3[i2] = Array.apply(null, Array(10)).map(function() {
                });
              for (var a in t3)
                for (var s in t3[a]) {
                  var l = void 0;
                  l = a !== "line" ? '<a href="#'.concat(e3, "shape").concat(r3, '">').concat(t3[a][s].color, " ").concat(a, "</a>") : '<a href="#'.concat(e3, "shape").concat(r3, '">').concat(t3[a][s].color, " ").concat(a, " midpoint</a>"), o3[t3[a][s].loc.locY][t3[a][s].loc.locX] ? o3[t3[a][s].loc.locY][t3[a][s].loc.locX] = o3[t3[a][s].loc.locY][t3[a][s].loc.locX] + "  " + l : o3[t3[a][s].loc.locY][t3[a][s].loc.locX] = l, r3++;
                }
              for (var u in o3) {
                var c = "<tr>";
                for (var d in o3[u])
                  c += "<td>", o3[u][d] !== void 0 && (c += o3[u][d]), c += "</td>";
                n3 = n3 + c + "</tr>";
              }
              return n3;
            }(e2, this.ingredients.shapes);
            n2 !== t2.summary.innerHTML && (t2.summary.innerHTML = n2), o2 !== t2.map.innerHTML && (t2.map.innerHTML = o2), r2.details !== t2.shapeDetails.innerHTML && (t2.shapeDetails.innerHTML = r2.details), this._accessibleOutputs[e2] = t2;
          }
        };
        var i = o.default;
        r.default = i;
      }, { "../core/main": 260, "core-js/modules/es.array.concat": 148, "core-js/modules/es.array.map": 159 }], 243: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.array.concat"), e("core-js/modules/es.array.fill"), e("core-js/modules/es.array.map"), e("core-js/modules/es.number.to-fixed"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, o = (n = e("../core/main")) && n.__esModule ? n : { default: n };
        function l(e2, t2, r2) {
          return e2[0] < 0.4 * t2 ? e2[1] < 0.4 * r2 ? "top left" : e2[1] > 0.6 * r2 ? "bottom left" : "mid left" : e2[0] > 0.6 * t2 ? e2[1] < 0.4 * r2 ? "top right" : e2[1] > 0.6 * r2 ? "bottom right" : "mid right" : e2[1] < 0.4 * r2 ? "top middle" : e2[1] > 0.6 * r2 ? "bottom middle" : "middle";
        }
        function u(e2, t2, r2) {
          var n2 = Math.floor(e2[0] / t2 * 10), o2 = Math.floor(e2[1] / r2 * 10);
          return n2 === 10 && --n2, o2 === 10 && --o2, { locX: n2, locY: o2 };
        }
        o.default.prototype.textOutput = function(e2) {
          o.default._validateParameters("textOutput", arguments), this._accessibleOutputs.text || (this._accessibleOutputs.text = true, this._createOutput("textOutput", "Fallback"), e2 === this.LABEL && (this._accessibleOutputs.textLabel = true, this._createOutput("textOutput", "Label")));
        }, o.default.prototype.gridOutput = function(e2) {
          o.default._validateParameters("gridOutput", arguments), this._accessibleOutputs.grid || (this._accessibleOutputs.grid = true, this._createOutput("gridOutput", "Fallback"), e2 === this.LABEL && (this._accessibleOutputs.gridLabel = true, this._createOutput("gridOutput", "Label")));
        }, o.default.prototype._addAccsOutput = function() {
          return this._accessibleOutputs || (this._accessibleOutputs = { text: false, grid: false, textLabel: false, gridLabel: false }), this._accessibleOutputs.grid || this._accessibleOutputs.text;
        }, o.default.prototype._createOutput = function(e2, t2) {
          var r2, n2, o2, i2 = this.canvas.id;
          this.ingredients || (this.ingredients = { shapes: {}, colors: { background: "white", fill: "white", stroke: "black" }, pShapes: "" }), this.dummyDOM || (this.dummyDOM = document.getElementById(i2).parentNode);
          var a = "";
          t2 === "Fallback" ? (r2 = i2 + e2, n2 = i2 + "accessibleOutput", this.dummyDOM.querySelector("#".concat(n2)) || (this.dummyDOM.querySelector("#".concat(i2, "_Description")) ? this.dummyDOM.querySelector("#".concat(i2, "_Description")).insertAdjacentHTML("afterend", '<div id="'.concat(n2, '" role="region" aria-label="Canvas Outputs"></div>')) : this.dummyDOM.querySelector("#".concat(i2)).innerHTML = '<div id="'.concat(n2, '" role="region" aria-label="Canvas Outputs"></div>'))) : t2 === "Label" && (r2 = i2 + e2 + (a = t2), n2 = i2 + "accessibleOutput" + t2, this.dummyDOM.querySelector("#".concat(n2)) || (this.dummyDOM.querySelector("#".concat(i2, "_Label")) ? this.dummyDOM.querySelector("#".concat(i2, "_Label")).insertAdjacentHTML("afterend", '<div id="'.concat(n2, '"></div>')) : this.dummyDOM.querySelector("#".concat(i2)).insertAdjacentHTML("afterend", '<div id="'.concat(n2, '"></div>')))), this._accessibleOutputs[r2] = {}, e2 === "textOutput" ? (a = "#".concat(i2, "gridOutput").concat(a), o2 = '<div id="'.concat(r2, '">Text Output<div id="').concat(r2, 'Summary" aria-label="text output summary"><p id="').concat(r2, '_summary"></p><ul id="').concat(r2, '_list"></ul></div><table id="').concat(r2, '_shapeDetails" summary="text output shape details"></table></div>'), this.dummyDOM.querySelector(a) ? this.dummyDOM.querySelector(a).insertAdjacentHTML("beforebegin", o2) : this.dummyDOM.querySelector("#".concat(n2)).innerHTML = o2, this._accessibleOutputs[r2].list = this.dummyDOM.querySelector("#".concat(r2, "_list"))) : e2 === "gridOutput" && (a = "#".concat(i2, "textOutput").concat(a), o2 = '<div id="'.concat(r2, '">Grid Output<p id="').concat(r2, '_summary" aria-label="grid output summary"><table id="').concat(r2, '_map" summary="grid output content"></table><ul id="').concat(r2, '_shapeDetails" aria-label="grid output shape details"></ul></div>'), this.dummyDOM.querySelector(a) ? this.dummyDOM.querySelector(a).insertAdjacentHTML("afterend", o2) : this.dummyDOM.querySelector("#".concat(n2)).innerHTML = o2, this._accessibleOutputs[r2].map = this.dummyDOM.querySelector("#".concat(r2, "_map"))), this._accessibleOutputs[r2].shapeDetails = this.dummyDOM.querySelector("#".concat(r2, "_shapeDetails")), this._accessibleOutputs[r2].summary = this.dummyDOM.querySelector("#".concat(r2, "_summary"));
        }, o.default.prototype._updateAccsOutput = function() {
          var e2 = this.canvas.id;
          JSON.stringify(this.ingredients.shapes) !== this.ingredients.pShapes && (this.ingredients.pShapes = JSON.stringify(this.ingredients.shapes), this._accessibleOutputs.text && this._updateTextOutput(e2 + "textOutput"), this._accessibleOutputs.grid && this._updateGridOutput(e2 + "gridOutput"), this._accessibleOutputs.textLabel && this._updateTextOutput(e2 + "textOutputLabel"), this._accessibleOutputs.gridLabel && this._updateGridOutput(e2 + "gridOutputLabel"));
        }, o.default.prototype._accsBackground = function(e2) {
          this.ingredients.pShapes = JSON.stringify(this.ingredients.shapes), this.ingredients.shapes = {}, this.ingredients.colors.backgroundRGBA !== e2 && (this.ingredients.colors.backgroundRGBA = e2, this.ingredients.colors.background = this._rgbColorName(e2));
        }, o.default.prototype._accsCanvasColors = function(e2, t2) {
          e2 === "fill" ? this.ingredients.colors.fillRGBA !== t2 && (this.ingredients.colors.fillRGBA = t2, this.ingredients.colors.fill = this._rgbColorName(t2)) : e2 === "stroke" && this.ingredients.colors.strokeRGBA !== t2 && (this.ingredients.colors.strokeRGBA = t2, this.ingredients.colors.stroke = this._rgbColorName(t2));
        }, o.default.prototype._accsOutput = function(e2, t2) {
          e2 === "ellipse" && t2[2] === t2[3] ? e2 = "circle" : e2 === "rectangle" && t2[2] === t2[3] && (e2 = "square");
          var r2 = {}, n2 = true, o2 = function(e3, t3) {
            var r3, n3;
            n3 = e3 === "rectangle" || e3 === "ellipse" || e3 === "arc" || e3 === "circle" || e3 === "square" ? (r3 = Math.round(t3[0] + t3[2] / 2), Math.round(t3[1] + t3[3] / 2)) : e3 === "triangle" ? (r3 = (t3[0] + t3[2] + t3[4]) / 3, (t3[1] + t3[3] + t3[5]) / 3) : e3 === "quadrilateral" ? (r3 = (t3[0] + t3[2] + t3[4] + t3[6]) / 4, (t3[1] + t3[3] + t3[5] + t3[7]) / 4) : e3 === "line" ? (r3 = (t3[0] + t3[2]) / 2, (t3[1] + t3[3]) / 2) : (r3 = t3[0], t3[1]);
            return [r3, n3];
          }(e2, t2);
          if (e2 === "line") {
            r2.color = this.ingredients.colors.stroke, r2.length = Math.round(this.dist(t2[0], t2[1], t2[2], t2[3]));
            var i2 = l([t2[0], [1]], this.width, this.height), a = l([t2[2], [3]], this.width, this.height);
            r2.loc = u(o2, this.width, this.height), r2.pos = i2 === a ? "at ".concat(i2) : "from ".concat(i2, " to ").concat(a);
          } else
            e2 === "point" ? r2.color = this.ingredients.colors.stroke : (r2.color = this.ingredients.colors.fill, r2.area = function(e3, t3, r3, n3) {
              var o3 = 0;
              if (e3 === "arc") {
                var i3 = ((t3[5] - t3[4]) % (2 * Math.PI) + 2 * Math.PI) % (2 * Math.PI);
                if (o3 = i3 * t3[2] * t3[3] / 8, t3[6] === "open" || t3[6] === "chord") {
                  var a2 = t3[0], s2 = t3[1], l2 = t3[0] + t3[2] / 2 * Math.cos(t3[4]).toFixed(2), u2 = t3[1] + t3[3] / 2 * Math.sin(t3[4]).toFixed(2), c = t3[0] + t3[2] / 2 * Math.cos(t3[5]).toFixed(2), d = t3[1] + t3[3] / 2 * Math.sin(t3[5]).toFixed(2), f = Math.abs(a2 * (u2 - d) + l2 * (d - s2) + c * (s2 - u2)) / 2;
                  i3 > Math.PI ? o3 += f : o3 -= f;
                }
              } else
                e3 === "ellipse" || e3 === "circle" ? o3 = 3.14 * t3[2] / 2 * t3[3] / 2 : e3 === "line" ? o3 = 0 : e3 === "point" ? o3 = 0 : e3 === "quadrilateral" ? o3 = Math.abs((t3[6] + t3[0]) * (t3[7] - t3[1]) + (t3[0] + t3[2]) * (t3[1] - t3[3]) + (t3[2] + t3[4]) * (t3[3] - t3[5]) + (t3[4] + t3[6]) * (t3[5] - t3[7])) / 2 : e3 === "rectangle" || e3 === "square" ? o3 = t3[2] * t3[3] : e3 === "triangle" && (o3 = Math.abs(t3[0] * (t3[3] - t3[5]) + t3[2] * (t3[5] - t3[1]) + t3[4] * (t3[1] - t3[3])) / 2);
              return Math.round(100 * o3 / (r3 * n3));
            }(e2, t2, this.width, this.height)), r2.pos = l(o2, this.width, this.height), r2.loc = u(o2, this.width, this.height);
          if (this.ingredients.shapes[e2]) {
            if (this.ingredients.shapes[e2] !== [r2]) {
              for (var s in this.ingredients.shapes[e2])
                JSON.stringify(this.ingredients.shapes[e2][s]) === JSON.stringify(r2) && (n2 = false);
              n2 === true && this.ingredients.shapes[e2].push(r2);
            }
          } else
            this.ingredients.shapes[e2] = [r2];
        };
        var i = o.default;
        r.default = i;
      }, { "../core/main": 260, "core-js/modules/es.array.concat": 148, "core-js/modules/es.array.fill": 150, "core-js/modules/es.array.map": 159, "core-js/modules/es.number.to-fixed": 169 }], 244: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.array.concat"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, o = (n = e("../core/main")) && n.__esModule ? n : { default: n };
        o.default.prototype._updateTextOutput = function(e2) {
          if (this.dummyDOM.querySelector("#".concat(e2, "_summary"))) {
            var t2 = this._accessibleOutputs[e2], r2 = function(e3, t3) {
              var r3 = "", n3 = 0;
              for (var o3 in t3)
                for (var i2 in t3[o3]) {
                  var a = '<li><a href="#'.concat(e3, "shape").concat(n3, '">').concat(t3[o3][i2].color, " ").concat(o3, "</a>");
                  o3 === "line" ? a += ", ".concat(t3[o3][i2].pos, ", ").concat(t3[o3][i2].length, " pixels long.</li>") : (a += ", at ".concat(t3[o3][i2].pos), o3 !== "point" && (a += ", covering ".concat(t3[o3][i2].area, "% of the canvas")), a += ".</li>"), r3 += a, n3++;
                }
              return { numShapes: n3, listShapes: r3 };
            }(e2, this.ingredients.shapes), n2 = function(e3, t3, r3, n3) {
              var o3 = "Your output is a, ".concat(r3, " by ").concat(n3, " pixels, ").concat(t3, " canvas containing the following");
              o3 = e3 === 1 ? "".concat(o3, " shape:") : "".concat(o3, " ").concat(e3, " shapes:");
              return o3;
            }(r2.numShapes, this.ingredients.colors.background, this.width, this.height), o2 = function(e3, t3) {
              var r3 = "", n3 = 0;
              for (var o3 in t3)
                for (var i2 in t3[o3]) {
                  var a = '<tr id="'.concat(e3, "shape").concat(n3, '"><th>').concat(t3[o3][i2].color, " ").concat(o3, "</th>");
                  o3 === "line" ? a += "<td>location = ".concat(t3[o3][i2].pos, "</td><td>length = ").concat(t3[o3][i2].length, " pixels</td></tr>") : (a += "<td>location = ".concat(t3[o3][i2].pos, "</td>"), o3 !== "point" && (a += "<td> area = ".concat(t3[o3][i2].area, "%</td>")), a += "</tr>"), r3 += a, n3++;
                }
              return r3;
            }(e2, this.ingredients.shapes);
            n2 !== t2.summary.innerHTML && (t2.summary.innerHTML = n2), r2.listShapes !== t2.list.innerHTML && (t2.list.innerHTML = r2.listShapes), o2 !== t2.shapeDetails.innerHTML && (t2.shapeDetails.innerHTML = o2), this._accessibleOutputs[e2] = t2;
          }
        };
        var i = o.default;
        r.default = i;
      }, { "../core/main": 260, "core-js/modules/es.array.concat": 148 }], 245: [function(e, t, r) {
        "use strict";
        var n, o = (n = e("./core/main")) && n.__esModule ? n : { default: n };
        e("./core/constants"), e("./core/environment"), e("./core/friendly_errors/stacktrace"), e("./core/friendly_errors/validate_params"), e("./core/friendly_errors/file_errors"), e("./core/friendly_errors/fes_core"), e("./core/helpers"), e("./core/legacy"), e("./core/preload"), e("./core/p5.Element"), e("./core/p5.Graphics"), e("./core/p5.Renderer"), e("./core/p5.Renderer2D"), e("./core/rendering"), e("./core/shim"), e("./core/structure"), e("./core/transform"), e("./core/shape/2d_primitives"), e("./core/shape/attributes"), e("./core/shape/curves"), e("./core/shape/vertex"), e("./accessibility/outputs"), e("./accessibility/textOutput"), e("./accessibility/gridOutput"), e("./accessibility/color_namer"), e("./color/color_conversion"), e("./color/creating_reading"), e("./color/p5.Color"), e("./color/setting"), e("./data/p5.TypedDict"), e("./data/local_storage.js"), e("./dom/dom"), e("./accessibility/describe"), e("./events/acceleration"), e("./events/keyboard"), e("./events/mouse"), e("./events/touch"), e("./image/filters"), e("./image/image"), e("./image/loading_displaying"), e("./image/p5.Image"), e("./image/pixels"), e("./io/files"), e("./io/p5.Table"), e("./io/p5.TableRow"), e("./io/p5.XML"), e("./math/calculation"), e("./math/math"), e("./math/noise"), e("./math/p5.Vector"), e("./math/random"), e("./math/trigonometry"), e("./typography/attributes"), e("./typography/loading_displaying"), e("./typography/p5.Font"), e("./utilities/array_functions"), e("./utilities/conversion"), e("./utilities/string_functions"), e("./utilities/time_date"), e("./webgl/3d_primitives"), e("./webgl/interaction"), e("./webgl/light"), e("./webgl/loading"), e("./webgl/material"), e("./webgl/p5.Camera"), e("./webgl/p5.Geometry"), e("./webgl/p5.Matrix"), e("./webgl/p5.RendererGL.Immediate"), e("./webgl/p5.RendererGL"), e("./webgl/p5.RendererGL.Retained"), e("./webgl/p5.Shader"), e("./webgl/p5.RenderBuffer"), e("./webgl/p5.Texture"), e("./webgl/text"), e("./core/init"), t.exports = o.default;
      }, { "./accessibility/color_namer": 240, "./accessibility/describe": 241, "./accessibility/gridOutput": 242, "./accessibility/outputs": 243, "./accessibility/textOutput": 244, "./color/color_conversion": 246, "./color/creating_reading": 247, "./color/p5.Color": 248, "./color/setting": 249, "./core/constants": 250, "./core/environment": 251, "./core/friendly_errors/fes_core": 252, "./core/friendly_errors/file_errors": 253, "./core/friendly_errors/stacktrace": 254, "./core/friendly_errors/validate_params": 255, "./core/helpers": 256, "./core/init": 257, "./core/legacy": 259, "./core/main": 260, "./core/p5.Element": 261, "./core/p5.Graphics": 262, "./core/p5.Renderer": 263, "./core/p5.Renderer2D": 264, "./core/preload": 265, "./core/rendering": 266, "./core/shape/2d_primitives": 267, "./core/shape/attributes": 268, "./core/shape/curves": 269, "./core/shape/vertex": 270, "./core/shim": 271, "./core/structure": 272, "./core/transform": 273, "./data/local_storage.js": 274, "./data/p5.TypedDict": 275, "./dom/dom": 276, "./events/acceleration": 277, "./events/keyboard": 278, "./events/mouse": 279, "./events/touch": 280, "./image/filters": 281, "./image/image": 282, "./image/loading_displaying": 283, "./image/p5.Image": 284, "./image/pixels": 285, "./io/files": 286, "./io/p5.Table": 287, "./io/p5.TableRow": 288, "./io/p5.XML": 289, "./math/calculation": 290, "./math/math": 291, "./math/noise": 292, "./math/p5.Vector": 293, "./math/random": 294, "./math/trigonometry": 295, "./typography/attributes": 296, "./typography/loading_displaying": 297, "./typography/p5.Font": 298, "./utilities/array_functions": 299, "./utilities/conversion": 300, "./utilities/string_functions": 301, "./utilities/time_date": 302, "./webgl/3d_primitives": 303, "./webgl/interaction": 304, "./webgl/light": 305, "./webgl/loading": 306, "./webgl/material": 307, "./webgl/p5.Camera": 308, "./webgl/p5.Geometry": 309, "./webgl/p5.Matrix": 310, "./webgl/p5.RenderBuffer": 311, "./webgl/p5.RendererGL": 314, "./webgl/p5.RendererGL.Immediate": 312, "./webgl/p5.RendererGL.Retained": 313, "./webgl/p5.Shader": 315, "./webgl/p5.Texture": 316, "./webgl/text": 317 }], 246: [function(e, t, r) {
        "use strict";
        Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, o = (n = e("../core/main")) && n.__esModule ? n : { default: n };
        o.default.ColorConversion = {}, o.default.ColorConversion._hsbaToHSLA = function(e2) {
          var t2 = e2[0], r2 = e2[1], n2 = e2[2], o2 = (2 - r2) * n2 / 2;
          return o2 != 0 && (o2 == 1 ? r2 = 0 : o2 < 0.5 ? r2 /= 2 - r2 : r2 = r2 * n2 / (2 - 2 * o2)), [t2, r2, o2, e2[3]];
        }, o.default.ColorConversion._hsbaToRGBA = function(e2) {
          var t2 = 6 * e2[0], r2 = e2[1], n2 = e2[2], o2 = [];
          if (r2 === 0)
            o2 = [n2, n2, n2, e2[3]];
          else {
            var i2, a, s, l = Math.floor(t2), u = n2 * (1 - r2), c = n2 * (1 - r2 * (t2 - l)), d = n2 * (1 - r2 * (1 + l - t2));
            s = l === 1 ? (i2 = c, a = n2, u) : l === 2 ? (i2 = u, a = n2, d) : l === 3 ? (i2 = u, a = c, n2) : l === 4 ? (i2 = d, a = u, n2) : l === 5 ? (i2 = n2, a = u, c) : (i2 = n2, a = d, u), o2 = [i2, a, s, e2[3]];
          }
          return o2;
        }, o.default.ColorConversion._hslaToHSBA = function(e2) {
          var t2, r2 = e2[0], n2 = e2[1], o2 = e2[2];
          return [r2, n2 = 2 * ((t2 = o2 < 0.5 ? (1 + n2) * o2 : o2 + n2 - o2 * n2) - o2) / t2, t2, e2[3]];
        }, o.default.ColorConversion._hslaToRGBA = function(e2) {
          var t2 = 6 * e2[0], r2 = e2[1], n2 = e2[2], o2 = [];
          if (r2 === 0)
            o2 = [n2, n2, n2, e2[3]];
          else {
            var i2, a = 2 * n2 - (i2 = n2 < 0.5 ? (1 + r2) * n2 : n2 + r2 - n2 * r2), s = function(e3, t3, r3) {
              return e3 < 0 ? e3 += 6 : 6 <= e3 && (e3 -= 6), e3 < 1 ? t3 + (r3 - t3) * e3 : e3 < 3 ? r3 : e3 < 4 ? t3 + (r3 - t3) * (4 - e3) : t3;
            };
            o2 = [s(2 + t2, a, i2), s(t2, a, i2), s(t2 - 2, a, i2), e2[3]];
          }
          return o2;
        }, o.default.ColorConversion._rgbaToHSBA = function(e2) {
          var t2, r2, n2 = e2[0], o2 = e2[1], i2 = e2[2], a = Math.max(n2, o2, i2), s = a - Math.min(n2, o2, i2);
          return s == 0 ? r2 = t2 = 0 : (r2 = s / a, n2 === a ? t2 = (o2 - i2) / s : o2 === a ? t2 = 2 + (i2 - n2) / s : i2 === a && (t2 = 4 + (n2 - o2) / s), t2 < 0 ? t2 += 6 : 6 <= t2 && (t2 -= 6)), [t2 / 6, r2, a, e2[3]];
        }, o.default.ColorConversion._rgbaToHSLA = function(e2) {
          var t2, r2, n2 = e2[0], o2 = e2[1], i2 = e2[2], a = Math.max(n2, o2, i2), s = Math.min(n2, o2, i2), l = a + s, u = a - s;
          return u == 0 ? r2 = t2 = 0 : (r2 = l < 1 ? u / l : u / (2 - l), n2 === a ? t2 = (o2 - i2) / u : o2 === a ? t2 = 2 + (i2 - n2) / u : i2 === a && (t2 = 4 + (n2 - o2) / u), t2 < 0 ? t2 += 6 : 6 <= t2 && (t2 -= 6)), [t2 / 6, r2, l / 2, e2[3]];
        };
        var i = o.default.ColorConversion;
        r.default = i;
      }, { "../core/main": 260 }], 247: [function(e, t, r) {
        "use strict";
        function a(e2) {
          return (a = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e3) {
            return typeof e3;
          } : function(e3) {
            return e3 && typeof Symbol == "function" && e3.constructor === Symbol && e3 !== Symbol.prototype ? "symbol" : typeof e3;
          })(e2);
        }
        e("core-js/modules/es.array.map"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, d = (n = e("../core/main")) && n.__esModule ? n : { default: n }, f = function(e2) {
          if (e2 && e2.__esModule)
            return e2;
          if (e2 === null || a(e2) !== "object" && typeof e2 != "function")
            return { default: e2 };
          var t2 = s();
          if (t2 && t2.has(e2))
            return t2.get(e2);
          var r2 = {}, n2 = Object.defineProperty && Object.getOwnPropertyDescriptor;
          for (var o2 in e2)
            if (Object.prototype.hasOwnProperty.call(e2, o2)) {
              var i = n2 ? Object.getOwnPropertyDescriptor(e2, o2) : null;
              i && (i.get || i.set) ? Object.defineProperty(r2, o2, i) : r2[o2] = e2[o2];
            }
          r2.default = e2, t2 && t2.set(e2, r2);
          return r2;
        }(e("../core/constants"));
        function s() {
          if (typeof WeakMap != "function")
            return null;
          var e2 = new WeakMap();
          return s = function() {
            return e2;
          }, e2;
        }
        e("./p5.Color"), e("../core/friendly_errors/validate_params"), e("../core/friendly_errors/file_errors"), e("../core/friendly_errors/fes_core"), d.default.prototype.alpha = function(e2) {
          return d.default._validateParameters("alpha", arguments), this.color(e2)._getAlpha();
        }, d.default.prototype.blue = function(e2) {
          return d.default._validateParameters("blue", arguments), this.color(e2)._getBlue();
        }, d.default.prototype.brightness = function(e2) {
          return d.default._validateParameters("brightness", arguments), this.color(e2)._getBrightness();
        }, d.default.prototype.color = function() {
          if (d.default._validateParameters("color", arguments), arguments[0] instanceof d.default.Color)
            return arguments[0];
          var e2 = arguments[0] instanceof Array ? arguments[0] : arguments;
          return new d.default.Color(this, e2);
        }, d.default.prototype.green = function(e2) {
          return d.default._validateParameters("green", arguments), this.color(e2)._getGreen();
        }, d.default.prototype.hue = function(e2) {
          return d.default._validateParameters("hue", arguments), this.color(e2)._getHue();
        }, d.default.prototype.lerpColor = function(e2, t2, r2) {
          d.default._validateParameters("lerpColor", arguments);
          var n2, o2, i, a2, s2, l, u = this._colorMode, c = this._colorMaxes;
          if (u === f.RGB)
            s2 = e2.levels.map(function(e3) {
              return e3 / 255;
            }), l = t2.levels.map(function(e3) {
              return e3 / 255;
            });
          else if (u === f.HSB)
            e2._getBrightness(), t2._getBrightness(), s2 = e2.hsba, l = t2.hsba;
          else {
            if (u !== f.HSL)
              throw new Error("".concat(u, "cannot be used for interpolation."));
            e2._getLightness(), t2._getLightness(), s2 = e2.hsla, l = t2.hsla;
          }
          return r2 = Math.max(Math.min(r2, 1), 0), this.lerp === void 0 && (this.lerp = function(e3, t3, r3) {
            return r3 * (t3 - e3) + e3;
          }), n2 = this.lerp(s2[0], l[0], r2), o2 = this.lerp(s2[1], l[1], r2), i = this.lerp(s2[2], l[2], r2), a2 = this.lerp(s2[3], l[3], r2), n2 *= c[u][0], o2 *= c[u][1], i *= c[u][2], a2 *= c[u][3], this.color(n2, o2, i, a2);
        }, d.default.prototype.lightness = function(e2) {
          return d.default._validateParameters("lightness", arguments), this.color(e2)._getLightness();
        }, d.default.prototype.red = function(e2) {
          return d.default._validateParameters("red", arguments), this.color(e2)._getRed();
        }, d.default.prototype.saturation = function(e2) {
          return d.default._validateParameters("saturation", arguments), this.color(e2)._getSaturation();
        };
        var o = d.default;
        r.default = o;
      }, { "../core/constants": 250, "../core/friendly_errors/fes_core": 252, "../core/friendly_errors/file_errors": 253, "../core/friendly_errors/validate_params": 255, "../core/main": 260, "./p5.Color": 248, "core-js/modules/es.array.map": 159 }], 248: [function(e, t, r) {
        "use strict";
        function a(e2) {
          return (a = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e3) {
            return typeof e3;
          } : function(e3) {
            return e3 && typeof Symbol == "function" && e3.constructor === Symbol && e3 !== Symbol.prototype ? "symbol" : typeof e3;
          })(e2);
        }
        e("core-js/modules/es.array.join"), e("core-js/modules/es.array.map"), e("core-js/modules/es.array.slice"), e("core-js/modules/es.object.to-string"), e("core-js/modules/es.regexp.constructor"), e("core-js/modules/es.regexp.exec"), e("core-js/modules/es.regexp.to-string"), e("core-js/modules/es.string.trim"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var d = n(e("../core/main")), f = function(e2) {
          if (e2 && e2.__esModule)
            return e2;
          if (e2 === null || a(e2) !== "object" && typeof e2 != "function")
            return { default: e2 };
          var t2 = s();
          if (t2 && t2.has(e2))
            return t2.get(e2);
          var r2 = {}, n2 = Object.defineProperty && Object.getOwnPropertyDescriptor;
          for (var o2 in e2)
            if (Object.prototype.hasOwnProperty.call(e2, o2)) {
              var i2 = n2 ? Object.getOwnPropertyDescriptor(e2, o2) : null;
              i2 && (i2.get || i2.set) ? Object.defineProperty(r2, o2, i2) : r2[o2] = e2[o2];
            }
          r2.default = e2, t2 && t2.set(e2, r2);
          return r2;
        }(e("../core/constants")), h = n(e("./color_conversion"));
        function s() {
          if (typeof WeakMap != "function")
            return null;
          var e2 = new WeakMap();
          return s = function() {
            return e2;
          }, e2;
        }
        function n(e2) {
          return e2 && e2.__esModule ? e2 : { default: e2 };
        }
        d.default.Color = function(e2, t2) {
          if (this._storeModeAndMaxes(e2._colorMode, e2._colorMaxes), this.mode !== f.RGB && this.mode !== f.HSL && this.mode !== f.HSB)
            throw new Error("".concat(this.mode, " is an invalid colorMode."));
          return this._array = d.default.Color._parseInputs.apply(this, t2), this._calculateLevels(), this;
        }, d.default.Color.prototype.toString = function(e2) {
          var t2 = this.levels, r2 = this._array, n2 = r2[3];
          switch (e2) {
            case "#rrggbb":
              return "#".concat(t2[0] < 16 ? "0".concat(t2[0].toString(16)) : t2[0].toString(16), t2[1] < 16 ? "0".concat(t2[1].toString(16)) : t2[1].toString(16), t2[2] < 16 ? "0".concat(t2[2].toString(16)) : t2[2].toString(16));
            case "#rrggbbaa":
              return "#".concat(t2[0] < 16 ? "0".concat(t2[0].toString(16)) : t2[0].toString(16), t2[1] < 16 ? "0".concat(t2[1].toString(16)) : t2[1].toString(16), t2[2] < 16 ? "0".concat(t2[2].toString(16)) : t2[2].toString(16), t2[3] < 16 ? "0".concat(t2[3].toString(16)) : t2[3].toString(16));
            case "#rgb":
              return "#".concat(Math.round(15 * r2[0]).toString(16), Math.round(15 * r2[1]).toString(16), Math.round(15 * r2[2]).toString(16));
            case "#rgba":
              return "#".concat(Math.round(15 * r2[0]).toString(16), Math.round(15 * r2[1]).toString(16), Math.round(15 * r2[2]).toString(16), Math.round(15 * r2[3]).toString(16));
            case "rgb":
              return "rgb(".concat(t2[0], ", ", t2[1], ", ", t2[2], ")");
            case "rgb%":
              return "rgb(".concat((100 * r2[0]).toPrecision(3), "%, ", (100 * r2[1]).toPrecision(3), "%, ", (100 * r2[2]).toPrecision(3), "%)");
            case "rgba%":
              return "rgba(".concat((100 * r2[0]).toPrecision(3), "%, ", (100 * r2[1]).toPrecision(3), "%, ", (100 * r2[2]).toPrecision(3), "%, ", (100 * r2[3]).toPrecision(3), "%)");
            case "hsb":
            case "hsv":
              return this.hsba || (this.hsba = h.default._rgbaToHSBA(this._array)), "hsb(".concat(this.hsba[0] * this.maxes[f.HSB][0], ", ", this.hsba[1] * this.maxes[f.HSB][1], ", ", this.hsba[2] * this.maxes[f.HSB][2], ")");
            case "hsb%":
            case "hsv%":
              return this.hsba || (this.hsba = h.default._rgbaToHSBA(this._array)), "hsb(".concat((100 * this.hsba[0]).toPrecision(3), "%, ", (100 * this.hsba[1]).toPrecision(3), "%, ", (100 * this.hsba[2]).toPrecision(3), "%)");
            case "hsba":
            case "hsva":
              return this.hsba || (this.hsba = h.default._rgbaToHSBA(this._array)), "hsba(".concat(this.hsba[0] * this.maxes[f.HSB][0], ", ", this.hsba[1] * this.maxes[f.HSB][1], ", ", this.hsba[2] * this.maxes[f.HSB][2], ", ", n2, ")");
            case "hsba%":
            case "hsva%":
              return this.hsba || (this.hsba = h.default._rgbaToHSBA(this._array)), "hsba(".concat((100 * this.hsba[0]).toPrecision(3), "%, ", (100 * this.hsba[1]).toPrecision(3), "%, ", (100 * this.hsba[2]).toPrecision(3), "%, ", (100 * n2).toPrecision(3), "%)");
            case "hsl":
              return this.hsla || (this.hsla = h.default._rgbaToHSLA(this._array)), "hsl(".concat(this.hsla[0] * this.maxes[f.HSL][0], ", ", this.hsla[1] * this.maxes[f.HSL][1], ", ", this.hsla[2] * this.maxes[f.HSL][2], ")");
            case "hsl%":
              return this.hsla || (this.hsla = h.default._rgbaToHSLA(this._array)), "hsl(".concat((100 * this.hsla[0]).toPrecision(3), "%, ", (100 * this.hsla[1]).toPrecision(3), "%, ", (100 * this.hsla[2]).toPrecision(3), "%)");
            case "hsla":
              return this.hsla || (this.hsla = h.default._rgbaToHSLA(this._array)), "hsla(".concat(this.hsla[0] * this.maxes[f.HSL][0], ", ", this.hsla[1] * this.maxes[f.HSL][1], ", ", this.hsla[2] * this.maxes[f.HSL][2], ", ", n2, ")");
            case "hsla%":
              return this.hsla || (this.hsla = h.default._rgbaToHSLA(this._array)), "hsl(".concat((100 * this.hsla[0]).toPrecision(3), "%, ", (100 * this.hsla[1]).toPrecision(3), "%, ", (100 * this.hsla[2]).toPrecision(3), "%, ", (100 * n2).toPrecision(3), "%)");
            case "rgba":
            default:
              return "rgba(".concat(t2[0], ",", t2[1], ",", t2[2], ",", n2, ")");
          }
        }, d.default.Color.prototype.setRed = function(e2) {
          this._array[0] = e2 / this.maxes[f.RGB][0], this._calculateLevels();
        }, d.default.Color.prototype.setGreen = function(e2) {
          this._array[1] = e2 / this.maxes[f.RGB][1], this._calculateLevels();
        }, d.default.Color.prototype.setBlue = function(e2) {
          this._array[2] = e2 / this.maxes[f.RGB][2], this._calculateLevels();
        }, d.default.Color.prototype.setAlpha = function(e2) {
          this._array[3] = e2 / this.maxes[this.mode][3], this._calculateLevels();
        }, d.default.Color.prototype._calculateLevels = function() {
          for (var e2 = this._array, t2 = this.levels = new Array(e2.length), r2 = e2.length - 1; 0 <= r2; --r2)
            t2[r2] = Math.round(255 * e2[r2]);
        }, d.default.Color.prototype._getAlpha = function() {
          return this._array[3] * this.maxes[this.mode][3];
        }, d.default.Color.prototype._storeModeAndMaxes = function(e2, t2) {
          this.mode = e2, this.maxes = t2;
        }, d.default.Color.prototype._getMode = function() {
          return this.mode;
        }, d.default.Color.prototype._getMaxes = function() {
          return this.maxes;
        }, d.default.Color.prototype._getBlue = function() {
          return this._array[2] * this.maxes[f.RGB][2];
        }, d.default.Color.prototype._getBrightness = function() {
          return this.hsba || (this.hsba = h.default._rgbaToHSBA(this._array)), this.hsba[2] * this.maxes[f.HSB][2];
        }, d.default.Color.prototype._getGreen = function() {
          return this._array[1] * this.maxes[f.RGB][1];
        }, d.default.Color.prototype._getHue = function() {
          return this.mode === f.HSB ? (this.hsba || (this.hsba = h.default._rgbaToHSBA(this._array)), this.hsba[0] * this.maxes[f.HSB][0]) : (this.hsla || (this.hsla = h.default._rgbaToHSLA(this._array)), this.hsla[0] * this.maxes[f.HSL][0]);
        }, d.default.Color.prototype._getLightness = function() {
          return this.hsla || (this.hsla = h.default._rgbaToHSLA(this._array)), this.hsla[2] * this.maxes[f.HSL][2];
        }, d.default.Color.prototype._getRed = function() {
          return this._array[0] * this.maxes[f.RGB][0];
        }, d.default.Color.prototype._getSaturation = function() {
          return this.mode === f.HSB ? (this.hsba || (this.hsba = h.default._rgbaToHSBA(this._array)), this.hsba[1] * this.maxes[f.HSB][1]) : (this.hsla || (this.hsla = h.default._rgbaToHSLA(this._array)), this.hsla[1] * this.maxes[f.HSL][1]);
        };
        var p = { aliceblue: "#f0f8ff", antiquewhite: "#faebd7", aqua: "#00ffff", aquamarine: "#7fffd4", azure: "#f0ffff", beige: "#f5f5dc", bisque: "#ffe4c4", black: "#000000", blanchedalmond: "#ffebcd", blue: "#0000ff", blueviolet: "#8a2be2", brown: "#a52a2a", burlywood: "#deb887", cadetblue: "#5f9ea0", chartreuse: "#7fff00", chocolate: "#d2691e", coral: "#ff7f50", cornflowerblue: "#6495ed", cornsilk: "#fff8dc", crimson: "#dc143c", cyan: "#00ffff", darkblue: "#00008b", darkcyan: "#008b8b", darkgoldenrod: "#b8860b", darkgray: "#a9a9a9", darkgreen: "#006400", darkgrey: "#a9a9a9", darkkhaki: "#bdb76b", darkmagenta: "#8b008b", darkolivegreen: "#556b2f", darkorange: "#ff8c00", darkorchid: "#9932cc", darkred: "#8b0000", darksalmon: "#e9967a", darkseagreen: "#8fbc8f", darkslateblue: "#483d8b", darkslategray: "#2f4f4f", darkslategrey: "#2f4f4f", darkturquoise: "#00ced1", darkviolet: "#9400d3", deeppink: "#ff1493", deepskyblue: "#00bfff", dimgray: "#696969", dimgrey: "#696969", dodgerblue: "#1e90ff", firebrick: "#b22222", floralwhite: "#fffaf0", forestgreen: "#228b22", fuchsia: "#ff00ff", gainsboro: "#dcdcdc", ghostwhite: "#f8f8ff", gold: "#ffd700", goldenrod: "#daa520", gray: "#808080", green: "#008000", greenyellow: "#adff2f", grey: "#808080", honeydew: "#f0fff0", hotpink: "#ff69b4", indianred: "#cd5c5c", indigo: "#4b0082", ivory: "#fffff0", khaki: "#f0e68c", lavender: "#e6e6fa", lavenderblush: "#fff0f5", lawngreen: "#7cfc00", lemonchiffon: "#fffacd", lightblue: "#add8e6", lightcoral: "#f08080", lightcyan: "#e0ffff", lightgoldenrodyellow: "#fafad2", lightgray: "#d3d3d3", lightgreen: "#90ee90", lightgrey: "#d3d3d3", lightpink: "#ffb6c1", lightsalmon: "#ffa07a", lightseagreen: "#20b2aa", lightskyblue: "#87cefa", lightslategray: "#778899", lightslategrey: "#778899", lightsteelblue: "#b0c4de", lightyellow: "#ffffe0", lime: "#00ff00", limegreen: "#32cd32", linen: "#faf0e6", magenta: "#ff00ff", maroon: "#800000", mediumaquamarine: "#66cdaa", mediumblue: "#0000cd", mediumorchid: "#ba55d3", mediumpurple: "#9370db", mediumseagreen: "#3cb371", mediumslateblue: "#7b68ee", mediumspringgreen: "#00fa9a", mediumturquoise: "#48d1cc", mediumvioletred: "#c71585", midnightblue: "#191970", mintcream: "#f5fffa", mistyrose: "#ffe4e1", moccasin: "#ffe4b5", navajowhite: "#ffdead", navy: "#000080", oldlace: "#fdf5e6", olive: "#808000", olivedrab: "#6b8e23", orange: "#ffa500", orangered: "#ff4500", orchid: "#da70d6", palegoldenrod: "#eee8aa", palegreen: "#98fb98", paleturquoise: "#afeeee", palevioletred: "#db7093", papayawhip: "#ffefd5", peachpuff: "#ffdab9", peru: "#cd853f", pink: "#ffc0cb", plum: "#dda0dd", powderblue: "#b0e0e6", purple: "#800080", rebeccapurple: "#663399", red: "#ff0000", rosybrown: "#bc8f8f", royalblue: "#4169e1", saddlebrown: "#8b4513", salmon: "#fa8072", sandybrown: "#f4a460", seagreen: "#2e8b57", seashell: "#fff5ee", sienna: "#a0522d", silver: "#c0c0c0", skyblue: "#87ceeb", slateblue: "#6a5acd", slategray: "#708090", slategrey: "#708090", snow: "#fffafa", springgreen: "#00ff7f", steelblue: "#4682b4", tan: "#d2b48c", teal: "#008080", thistle: "#d8bfd8", tomato: "#ff6347", turquoise: "#40e0d0", violet: "#ee82ee", wheat: "#f5deb3", white: "#ffffff", whitesmoke: "#f5f5f5", yellow: "#ffff00", yellowgreen: "#9acd32" }, o = /\s*/, i = /(\d{1,3})/, l = /((?:\d+(?:\.\d+)?)|(?:\.\d+))/, u = new RegExp("".concat(l.source, "%")), y = { HEX3: /^#([a-f0-9])([a-f0-9])([a-f0-9])$/i, HEX4: /^#([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])$/i, HEX6: /^#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})$/i, HEX8: /^#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})$/i, RGB: new RegExp(["^rgb\\(", i.source, ",", i.source, ",", i.source, "\\)$"].join(o.source), "i"), RGB_PERCENT: new RegExp(["^rgb\\(", u.source, ",", u.source, ",", u.source, "\\)$"].join(o.source), "i"), RGBA: new RegExp(["^rgba\\(", i.source, ",", i.source, ",", i.source, ",", l.source, "\\)$"].join(o.source), "i"), RGBA_PERCENT: new RegExp(["^rgba\\(", u.source, ",", u.source, ",", u.source, ",", l.source, "\\)$"].join(o.source), "i"), HSL: new RegExp(["^hsl\\(", i.source, ",", u.source, ",", u.source, "\\)$"].join(o.source), "i"), HSLA: new RegExp(["^hsla\\(", i.source, ",", u.source, ",", u.source, ",", l.source, "\\)$"].join(o.source), "i"), HSB: new RegExp(["^hsb\\(", i.source, ",", u.source, ",", u.source, "\\)$"].join(o.source), "i"), HSBA: new RegExp(["^hsba\\(", i.source, ",", u.source, ",", u.source, ",", l.source, "\\)$"].join(o.source), "i") };
        d.default.Color._parseInputs = function(e2, t2, r2, n2) {
          var o2, i2 = arguments.length, a2 = this.mode, s2 = this.maxes[a2], l2 = [];
          if (3 <= i2) {
            for (l2[0] = e2 / s2[0], l2[1] = t2 / s2[1], l2[2] = r2 / s2[2], l2[3] = typeof n2 == "number" ? n2 / s2[3] : 1, o2 = l2.length - 1; 0 <= o2; --o2) {
              var u2 = l2[o2];
              u2 < 0 ? l2[o2] = 0 : 1 < u2 && (l2[o2] = 1);
            }
            return a2 === f.HSL ? h.default._hslaToRGBA(l2) : a2 === f.HSB ? h.default._hsbaToRGBA(l2) : l2;
          }
          if (i2 === 1 && typeof e2 == "string") {
            var c2 = e2.trim().toLowerCase();
            if (p[c2])
              return d.default.Color._parseInputs.call(this, p[c2]);
            if (y.HEX3.test(c2))
              return (l2 = y.HEX3.exec(c2).slice(1).map(function(e3) {
                return parseInt(e3 + e3, 16) / 255;
              }))[3] = 1, l2;
            if (y.HEX6.test(c2))
              return (l2 = y.HEX6.exec(c2).slice(1).map(function(e3) {
                return parseInt(e3, 16) / 255;
              }))[3] = 1, l2;
            if (y.HEX4.test(c2))
              return l2 = y.HEX4.exec(c2).slice(1).map(function(e3) {
                return parseInt(e3 + e3, 16) / 255;
              });
            if (y.HEX8.test(c2))
              return l2 = y.HEX8.exec(c2).slice(1).map(function(e3) {
                return parseInt(e3, 16) / 255;
              });
            if (y.RGB.test(c2))
              return (l2 = y.RGB.exec(c2).slice(1).map(function(e3) {
                return e3 / 255;
              }))[3] = 1, l2;
            if (y.RGB_PERCENT.test(c2))
              return (l2 = y.RGB_PERCENT.exec(c2).slice(1).map(function(e3) {
                return parseFloat(e3) / 100;
              }))[3] = 1, l2;
            if (y.RGBA.test(c2))
              return l2 = y.RGBA.exec(c2).slice(1).map(function(e3, t3) {
                return t3 === 3 ? parseFloat(e3) : e3 / 255;
              });
            if (y.RGBA_PERCENT.test(c2))
              return l2 = y.RGBA_PERCENT.exec(c2).slice(1).map(function(e3, t3) {
                return t3 === 3 ? parseFloat(e3) : parseFloat(e3) / 100;
              });
            if (y.HSL.test(c2) ? (l2 = y.HSL.exec(c2).slice(1).map(function(e3, t3) {
              return t3 === 0 ? parseInt(e3, 10) / 360 : parseInt(e3, 10) / 100;
            }))[3] = 1 : y.HSLA.test(c2) && (l2 = y.HSLA.exec(c2).slice(1).map(function(e3, t3) {
              return t3 === 0 ? parseInt(e3, 10) / 360 : t3 === 3 ? parseFloat(e3) : parseInt(e3, 10) / 100;
            })), (l2 = l2.map(function(e3) {
              return Math.max(Math.min(e3, 1), 0);
            })).length)
              return h.default._hslaToRGBA(l2);
            if (y.HSB.test(c2) ? (l2 = y.HSB.exec(c2).slice(1).map(function(e3, t3) {
              return t3 === 0 ? parseInt(e3, 10) / 360 : parseInt(e3, 10) / 100;
            }))[3] = 1 : y.HSBA.test(c2) && (l2 = y.HSBA.exec(c2).slice(1).map(function(e3, t3) {
              return t3 === 0 ? parseInt(e3, 10) / 360 : t3 === 3 ? parseFloat(e3) : parseInt(e3, 10) / 100;
            })), l2.length) {
              for (o2 = l2.length - 1; 0 <= o2; --o2)
                l2[o2] = Math.max(Math.min(l2[o2], 1), 0);
              return h.default._hsbaToRGBA(l2);
            }
            l2 = [1, 1, 1, 1];
          } else {
            if (i2 !== 1 && i2 !== 2 || typeof e2 != "number")
              throw new Error("".concat(arguments, "is not a valid color representation."));
            l2[0] = e2 / s2[2], l2[1] = e2 / s2[2], l2[2] = e2 / s2[2], l2[3] = typeof t2 == "number" ? t2 / s2[3] : 1, l2 = l2.map(function(e3) {
              return Math.max(Math.min(e3, 1), 0);
            });
          }
          return l2;
        };
        var c = d.default.Color;
        r.default = c;
      }, { "../core/constants": 250, "../core/main": 260, "./color_conversion": 246, "core-js/modules/es.array.join": 157, "core-js/modules/es.array.map": 159, "core-js/modules/es.array.slice": 160, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.regexp.constructor": 177, "core-js/modules/es.regexp.exec": 178, "core-js/modules/es.regexp.to-string": 179, "core-js/modules/es.string.trim": 190 }], 249: [function(e, t, r) {
        "use strict";
        function a(e2) {
          return (a = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e3) {
            return typeof e3;
          } : function(e3) {
            return e3 && typeof Symbol == "function" && e3.constructor === Symbol && e3 !== Symbol.prototype ? "symbol" : typeof e3;
          })(e2);
        }
        e("core-js/modules/es.array.fill"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, s = (n = e("../core/main")) && n.__esModule ? n : { default: n }, l = function(e2) {
          if (e2 && e2.__esModule)
            return e2;
          if (e2 === null || a(e2) !== "object" && typeof e2 != "function")
            return { default: e2 };
          var t2 = u();
          if (t2 && t2.has(e2))
            return t2.get(e2);
          var r2 = {}, n2 = Object.defineProperty && Object.getOwnPropertyDescriptor;
          for (var o2 in e2)
            if (Object.prototype.hasOwnProperty.call(e2, o2)) {
              var i = n2 ? Object.getOwnPropertyDescriptor(e2, o2) : null;
              i && (i.get || i.set) ? Object.defineProperty(r2, o2, i) : r2[o2] = e2[o2];
            }
          r2.default = e2, t2 && t2.set(e2, r2);
          return r2;
        }(e("../core/constants"));
        function u() {
          if (typeof WeakMap != "function")
            return null;
          var e2 = new WeakMap();
          return u = function() {
            return e2;
          }, e2;
        }
        e("./p5.Color"), s.default.prototype.background = function() {
          var e2;
          return (e2 = this._renderer).background.apply(e2, arguments), this;
        }, s.default.prototype.clear = function() {
          return this._renderer.clear(), this;
        }, s.default.prototype.colorMode = function(e2, t2, r2, n2, o2) {
          if (s.default._validateParameters("colorMode", arguments), e2 === l.RGB || e2 === l.HSB || e2 === l.HSL) {
            this._colorMode = e2;
            var i = this._colorMaxes[e2];
            arguments.length === 2 ? (i[0] = t2, i[1] = t2, i[2] = t2, i[3] = t2) : arguments.length === 4 ? (i[0] = t2, i[1] = r2, i[2] = n2) : arguments.length === 5 && (i[0] = t2, i[1] = r2, i[2] = n2, i[3] = o2);
          }
          return this;
        }, s.default.prototype.fill = function() {
          var e2;
          return this._renderer._setProperty("_fillSet", true), this._renderer._setProperty("_doFill", true), (e2 = this._renderer).fill.apply(e2, arguments), this;
        }, s.default.prototype.noFill = function() {
          return this._renderer._setProperty("_doFill", false), this;
        }, s.default.prototype.noStroke = function() {
          return this._renderer._setProperty("_doStroke", false), this;
        }, s.default.prototype.stroke = function() {
          var e2;
          return this._renderer._setProperty("_strokeSet", true), this._renderer._setProperty("_doStroke", true), (e2 = this._renderer).stroke.apply(e2, arguments), this;
        }, s.default.prototype.erase = function() {
          var e2 = 0 < arguments.length && arguments[0] !== void 0 ? arguments[0] : 255, t2 = 1 < arguments.length && arguments[1] !== void 0 ? arguments[1] : 255;
          return this._renderer.erase(e2, t2), this;
        }, s.default.prototype.noErase = function() {
          return this._renderer.noErase(), this;
        };
        var o = s.default;
        r.default = o;
      }, { "../core/constants": 250, "../core/main": 260, "./p5.Color": 248, "core-js/modules/es.array.fill": 150 }], 250: [function(e, t, r) {
        "use strict";
        Object.defineProperty(r, "__esModule", { value: true }), r.BEZIER = r.QUADRATIC = r.LINEAR = r._CTX_MIDDLE = r._DEFAULT_LEADMULT = r._DEFAULT_TEXT_FILL = r.WORD = r.CHAR = r.BOLDITALIC = r.BOLD = r.ITALIC = r.NORMAL = r.BLUR = r.ERODE = r.DILATE = r.POSTERIZE = r.INVERT = r.OPAQUE = r.GRAY = r.THRESHOLD = r.BURN = r.DODGE = r.SOFT_LIGHT = r.HARD_LIGHT = r.OVERLAY = r.REPLACE = r.SCREEN = r.MULTIPLY = r.EXCLUSION = r.SUBTRACT = r.DIFFERENCE = r.LIGHTEST = r.DARKEST = r.ADD = r.REMOVE = r.BLEND = r.UP_ARROW = r.TAB = r.SHIFT = r.RIGHT_ARROW = r.RETURN = r.OPTION = r.LEFT_ARROW = r.ESCAPE = r.ENTER = r.DOWN_ARROW = r.DELETE = r.CONTROL = r.BACKSPACE = r.ALT = r.AUTO = r.HSL = r.HSB = r.RGB = r.MITER = r.BEVEL = r.ROUND = r.SQUARE = r.PROJECT = r.PIE = r.CHORD = r.OPEN = r.CLOSE = r.TESS = r.QUAD_STRIP = r.QUADS = r.TRIANGLE_STRIP = r.TRIANGLE_FAN = r.TRIANGLES = r.LINE_LOOP = r.LINE_STRIP = r.LINES = r.POINTS = r.BASELINE = r.BOTTOM = r.TOP = r.CENTER = r.LEFT = r.RIGHT = r.RADIUS = r.CORNERS = r.CORNER = r.RAD_TO_DEG = r.DEG_TO_RAD = r.RADIANS = r.DEGREES = r.TWO_PI = r.TAU = r.QUARTER_PI = r.PI = r.HALF_PI = r.WAIT = r.TEXT = r.MOVE = r.HAND = r.CROSS = r.ARROW = r.WEBGL = r.P2D = r.VERSION = void 0, r.FALLBACK = r.LABEL = r.AXES = r.GRID = r._DEFAULT_FILL = r._DEFAULT_STROKE = r.PORTRAIT = r.LANDSCAPE = r.MIRROR = r.CLAMP = r.REPEAT = r.NEAREST = r.IMAGE = r.IMMEDIATE = r.TEXTURE = r.FILL = r.STROKE = r.CURVE = void 0;
        var n = Math.PI;
        r.VERSION = "1.4.0";
        r.P2D = "p2d";
        r.WEBGL = "webgl";
        r.ARROW = "default";
        r.CROSS = "crosshair";
        r.HAND = "pointer";
        r.MOVE = "move";
        r.TEXT = "text";
        r.WAIT = "wait";
        var o = n / 2;
        r.HALF_PI = o;
        var i = n;
        r.PI = i;
        var a = n / 4;
        r.QUARTER_PI = a;
        var s = 2 * n;
        r.TAU = s;
        var l = 2 * n;
        r.TWO_PI = l;
        r.DEGREES = "degrees";
        r.RADIANS = "radians";
        var u = n / 180;
        r.DEG_TO_RAD = u;
        var c = 180 / n;
        r.RAD_TO_DEG = c;
        r.CORNER = "corner";
        r.CORNERS = "corners";
        r.RADIUS = "radius";
        r.RIGHT = "right";
        r.LEFT = "left";
        r.CENTER = "center";
        r.TOP = "top";
        r.BOTTOM = "bottom";
        r.BASELINE = "alphabetic";
        r.POINTS = 0;
        r.LINES = 1;
        r.LINE_STRIP = 3;
        r.LINE_LOOP = 2;
        r.TRIANGLES = 4;
        r.TRIANGLE_FAN = 6;
        r.TRIANGLE_STRIP = 5;
        r.QUADS = "quads";
        r.QUAD_STRIP = "quad_strip";
        r.TESS = "tess";
        r.CLOSE = "close";
        r.OPEN = "open";
        r.CHORD = "chord";
        r.PIE = "pie";
        r.PROJECT = "square";
        r.SQUARE = "butt";
        r.ROUND = "round";
        r.BEVEL = "bevel";
        r.MITER = "miter";
        r.RGB = "rgb";
        r.HSB = "hsb";
        r.HSL = "hsl";
        r.AUTO = "auto";
        r.ALT = 18;
        r.BACKSPACE = 8;
        r.CONTROL = 17;
        r.DELETE = 46;
        r.DOWN_ARROW = 40;
        r.ENTER = 13;
        r.ESCAPE = 27;
        r.LEFT_ARROW = 37;
        r.OPTION = 18;
        r.RETURN = 13;
        r.RIGHT_ARROW = 39;
        r.SHIFT = 16;
        r.TAB = 9;
        r.UP_ARROW = 38;
        r.BLEND = "source-over";
        r.REMOVE = "destination-out";
        r.ADD = "lighter";
        r.DARKEST = "darken";
        r.LIGHTEST = "lighten";
        r.DIFFERENCE = "difference";
        r.SUBTRACT = "subtract";
        r.EXCLUSION = "exclusion";
        r.MULTIPLY = "multiply";
        r.SCREEN = "screen";
        r.REPLACE = "copy";
        r.OVERLAY = "overlay";
        r.HARD_LIGHT = "hard-light";
        r.SOFT_LIGHT = "soft-light";
        r.DODGE = "color-dodge";
        r.BURN = "color-burn";
        r.THRESHOLD = "threshold";
        r.GRAY = "gray";
        r.OPAQUE = "opaque";
        r.INVERT = "invert";
        r.POSTERIZE = "posterize";
        r.DILATE = "dilate";
        r.ERODE = "erode";
        r.BLUR = "blur";
        r.NORMAL = "normal";
        r.ITALIC = "italic";
        r.BOLD = "bold";
        r.BOLDITALIC = "bold italic";
        r.CHAR = "CHAR";
        r.WORD = "WORD";
        r._DEFAULT_TEXT_FILL = "#000000";
        r._DEFAULT_LEADMULT = 1.25;
        r._CTX_MIDDLE = "middle";
        r.LINEAR = "linear";
        r.QUADRATIC = "quadratic";
        r.BEZIER = "bezier";
        r.CURVE = "curve";
        r.STROKE = "stroke";
        r.FILL = "fill";
        r.TEXTURE = "texture";
        r.IMMEDIATE = "immediate";
        r.IMAGE = "image";
        r.NEAREST = "nearest";
        r.REPEAT = "repeat";
        r.CLAMP = "clamp";
        r.MIRROR = "mirror";
        r.LANDSCAPE = "landscape";
        r.PORTRAIT = "portrait";
        r._DEFAULT_STROKE = "#000000";
        r._DEFAULT_FILL = "#FFFFFF";
        r.GRID = "grid";
        r.AXES = "axes";
        r.LABEL = "label";
        r.FALLBACK = "fallback";
      }, {}], 251: [function(e, t, r) {
        "use strict";
        function a(e2) {
          return (a = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e3) {
            return typeof e3;
          } : function(e3) {
            return e3 && typeof Symbol == "function" && e3.constructor === Symbol && e3 !== Symbol.prototype ? "symbol" : typeof e3;
          })(e2);
        }
        e("core-js/modules/es.array.concat"), e("core-js/modules/es.array.filter"), e("core-js/modules/es.array.includes"), e("core-js/modules/es.regexp.exec"), e("core-js/modules/es.string.includes"), e("core-js/modules/es.string.search"), e("core-js/modules/es.string.split"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, o = (n = e("./main")) && n.__esModule ? n : { default: n }, i = function(e2) {
          if (e2 && e2.__esModule)
            return e2;
          if (e2 === null || a(e2) !== "object" && typeof e2 != "function")
            return { default: e2 };
          var t2 = s();
          if (t2 && t2.has(e2))
            return t2.get(e2);
          var r2 = {}, n2 = Object.defineProperty && Object.getOwnPropertyDescriptor;
          for (var o2 in e2)
            if (Object.prototype.hasOwnProperty.call(e2, o2)) {
              var i2 = n2 ? Object.getOwnPropertyDescriptor(e2, o2) : null;
              i2 && (i2.get || i2.set) ? Object.defineProperty(r2, o2, i2) : r2[o2] = e2[o2];
            }
          r2.default = e2, t2 && t2.set(e2, r2);
          return r2;
        }(e("./constants"));
        function s() {
          if (typeof WeakMap != "function")
            return null;
          var e2 = new WeakMap();
          return s = function() {
            return e2;
          }, e2;
        }
        var l = [i.ARROW, i.CROSS, i.HAND, i.MOVE, i.TEXT, i.WAIT];
        o.default.prototype._frameRate = 0, o.default.prototype._lastFrameTime = window.performance.now(), o.default.prototype._targetFrameRate = 60;
        var u = window.print;
        function c() {
          return window.innerWidth || document.documentElement && document.documentElement.clientWidth || document.body && document.body.clientWidth || 0;
        }
        function d() {
          return window.innerHeight || document.documentElement && document.documentElement.clientHeight || document.body && document.body.clientHeight || 0;
        }
        o.default.prototype.print = function() {
          var e2;
          arguments.length ? (e2 = console).log.apply(e2, arguments) : u();
        }, o.default.prototype.frameCount = 0, o.default.prototype.deltaTime = 0, o.default.prototype.focused = document.hasFocus(), o.default.prototype.cursor = function(e2, t2, r2) {
          var n2 = "auto", o2 = this._curElement.elt;
          if (l.includes(e2))
            n2 = e2;
          else if (typeof e2 == "string") {
            var i2 = "";
            t2 && r2 && typeof t2 == "number" && typeof r2 == "number" && (i2 = "".concat(t2, " ").concat(r2)), n2 = e2.substring(0, 7) === "http://" || e2.substring(0, 8) === "https://" ? "url(".concat(e2, ") ").concat(i2, ", auto") : /\.(cur|jpg|jpeg|gif|png|CUR|JPG|JPEG|GIF|PNG)$/.test(e2) ? "url(".concat(e2, ") ").concat(i2, ", auto") : e2;
          }
          o2.style.cursor = n2;
        }, o.default.prototype.frameRate = function(e2) {
          return o.default._validateParameters("frameRate", arguments), typeof e2 != "number" || e2 < 0 ? this._frameRate : (this._setProperty("_targetFrameRate", e2), e2 === 0 && this._setProperty("_frameRate", e2), this);
        }, o.default.prototype.getFrameRate = function() {
          return this.frameRate();
        }, o.default.prototype.setFrameRate = function(e2) {
          return this.frameRate(e2);
        }, o.default.prototype.noCursor = function() {
          this._curElement.elt.style.cursor = "none";
        }, o.default.prototype.displayWidth = screen.width, o.default.prototype.displayHeight = screen.height, o.default.prototype.windowWidth = c(), o.default.prototype.windowHeight = d(), o.default.prototype._onresize = function(e2) {
          this._setProperty("windowWidth", c()), this._setProperty("windowHeight", d());
          var t2, r2 = this._isGlobal ? window : this;
          typeof r2.windowResized == "function" && ((t2 = r2.windowResized(e2)) === void 0 || t2 || e2.preventDefault());
        }, o.default.prototype.width = 0, o.default.prototype.height = 0, o.default.prototype.fullscreen = function(e2) {
          if (o.default._validateParameters("fullscreen", arguments), e2 === void 0)
            return document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement;
          e2 ? function(e3) {
            if (!(document.fullscreenEnabled || document.webkitFullscreenEnabled || document.mozFullScreenEnabled || document.msFullscreenEnabled))
              throw new Error("Fullscreen not enabled in this browser.");
            e3.requestFullscreen ? e3.requestFullscreen() : e3.mozRequestFullScreen ? e3.mozRequestFullScreen() : e3.webkitRequestFullscreen ? e3.webkitRequestFullscreen() : e3.msRequestFullscreen && e3.msRequestFullscreen();
          }(document.documentElement) : document.exitFullscreen ? document.exitFullscreen() : document.mozCancelFullScreen ? document.mozCancelFullScreen() : document.webkitExitFullscreen ? document.webkitExitFullscreen() : document.msExitFullscreen && document.msExitFullscreen();
        }, o.default.prototype.pixelDensity = function(e2) {
          var t2;
          return o.default._validateParameters("pixelDensity", arguments), typeof e2 == "number" ? (e2 !== this._pixelDensity && (this._pixelDensity = e2), (t2 = this).resizeCanvas(this.width, this.height, true)) : t2 = this._pixelDensity, t2;
        }, o.default.prototype.displayDensity = function() {
          return window.devicePixelRatio;
        }, o.default.prototype.getURL = function() {
          return location.href;
        }, o.default.prototype.getURLPath = function() {
          return location.pathname.split("/").filter(function(e2) {
            return e2 !== "";
          });
        }, o.default.prototype.getURLParams = function() {
          for (var e2, t2 = /[?&]([^&=]+)(?:[&=])([^&=]+)/gim, r2 = {}; (e2 = t2.exec(location.search)) != null; )
            e2.index === t2.lastIndex && t2.lastIndex++, r2[e2[1]] = e2[2];
          return r2;
        };
        var f = o.default;
        r.default = f;
      }, { "./constants": 250, "./main": 260, "core-js/modules/es.array.concat": 148, "core-js/modules/es.array.filter": 151, "core-js/modules/es.array.includes": 154, "core-js/modules/es.regexp.exec": 178, "core-js/modules/es.string.includes": 182, "core-js/modules/es.string.search": 187, "core-js/modules/es.string.split": 188 }], 252: [function(r, e, t) {
        "use strict";
        r("core-js/modules/es.symbol"), r("core-js/modules/es.symbol.description"), r("core-js/modules/es.symbol.iterator"), r("core-js/modules/es.array.concat"), r("core-js/modules/es.array.filter"), r("core-js/modules/es.array.for-each"), r("core-js/modules/es.array.includes"), r("core-js/modules/es.array.iterator"), r("core-js/modules/es.array.join"), r("core-js/modules/es.array.map"), r("core-js/modules/es.array.slice"), r("core-js/modules/es.array.some"), r("core-js/modules/es.function.name"), r("core-js/modules/es.object.assign"), r("core-js/modules/es.object.get-own-property-names"), r("core-js/modules/es.object.keys"), r("core-js/modules/es.object.to-string"), r("core-js/modules/es.regexp.constructor"), r("core-js/modules/es.regexp.exec"), r("core-js/modules/es.regexp.to-string"), r("core-js/modules/es.string.iterator"), r("core-js/modules/es.string.match"), r("core-js/modules/es.string.replace"), r("core-js/modules/es.string.search"), r("core-js/modules/es.string.split"), r("core-js/modules/web.dom-collections.for-each"), r("core-js/modules/web.dom-collections.iterator"), Object.defineProperty(t, "__esModule", { value: true }), t.default = void 0;
        var n, o = (n = r("../main")) && n.__esModule ? n : { default: n };
        r("../internationalization");
        var i = null, a = null;
        o.default._friendlyError = o.default._checkForUserDefinedFunctions = o.default._fesErrorMonitor = function() {
        }, i = null;
        var s = "https://github.com/processing/p5.js/wiki/p5.js-overview#why-cant-i-assign-variables-using-p5-functions-and-variables-before-setup";
        a = function() {
          function e2(r2) {
            return Object.getOwnPropertyNames(r2).filter(function(e3) {
              return e3[0] !== "_" && (!(e3 in t2) && (t2[e3] = true));
            }).map(function(e3) {
              var t3;
              return t3 = typeof r2[e3] == "function" ? "function" : e3 === e3.toUpperCase() ? "constant" : "variable", { name: e3, type: t3 };
            });
          }
          var t2 = {};
          (i = [].concat(e2(o.default.prototype), e2(r("../constants")))).sort(function(e3, t3) {
            return t3.name.length - e3.name.length;
          });
        };
        function l(r2, n2) {
          n2 = n2 || console.log.bind(console), i || a(), i.some(function(e2) {
            if (r2.message && r2.message.match("\\W?".concat(e2.name, "\\W")) !== null) {
              var t2 = e2.type === "function" ? "".concat(e2.name, "()") : e2.name;
              return n2("Did you just try to use p5.js's ".concat(t2, " ").concat(e2.type, "? If so, you may want to move it into your sketch's setup() function.\n\nFor more details, see: ").concat(s)), true;
            }
          });
        }
        o.default.prototype._helpForMisusedAtTopLevelCode = l, document.readyState !== "complete" && (window.addEventListener("error", l, false), window.addEventListener("load", function() {
          window.removeEventListener("error", l, false);
        }));
        var u = o.default;
        t.default = u;
      }, { "../constants": 250, "../internationalization": 258, "../main": 260, "./browser_errors": void 0, "core-js/modules/es.array.concat": 148, "core-js/modules/es.array.filter": 151, "core-js/modules/es.array.for-each": 152, "core-js/modules/es.array.includes": 154, "core-js/modules/es.array.iterator": 156, "core-js/modules/es.array.join": 157, "core-js/modules/es.array.map": 159, "core-js/modules/es.array.slice": 160, "core-js/modules/es.array.some": 161, "core-js/modules/es.function.name": 163, "core-js/modules/es.object.assign": 170, "core-js/modules/es.object.get-own-property-names": 171, "core-js/modules/es.object.keys": 173, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.regexp.constructor": 177, "core-js/modules/es.regexp.exec": 178, "core-js/modules/es.regexp.to-string": 179, "core-js/modules/es.string.iterator": 183, "core-js/modules/es.string.match": 184, "core-js/modules/es.string.replace": 186, "core-js/modules/es.string.search": 187, "core-js/modules/es.string.split": 188, "core-js/modules/es.symbol": 193, "core-js/modules/es.symbol.description": 191, "core-js/modules/es.symbol.iterator": 192, "core-js/modules/web.dom-collections.for-each": 225, "core-js/modules/web.dom-collections.iterator": 226 }], 253: [function(e, t, r) {
        "use strict";
        Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, o = (n = e("../main")) && n.__esModule ? n : { default: n };
        e("../internationalization");
        o.default._friendlyFileLoadError = function() {
        };
        var i = o.default;
        r.default = i;
      }, { "../internationalization": 258, "../main": 260 }], 254: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.array.filter"), e("core-js/modules/es.array.index-of"), e("core-js/modules/es.array.join"), e("core-js/modules/es.array.map"), e("core-js/modules/es.array.slice"), e("core-js/modules/es.regexp.exec"), e("core-js/modules/es.string.match"), e("core-js/modules/es.string.replace"), e("core-js/modules/es.string.split"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, o = (n = e("../main")) && n.__esModule ? n : { default: n };
        function i() {
          var t2 = /(^|@)\S+:\d+/, r2 = /^\s*at .*(\S+:\d+|\(native\))/m, n2 = /^(eval@)?(\[native code])?$/;
          return { parse: function(e2) {
            return e2.stacktrace !== void 0 || e2["opera#sourceloc"] !== void 0 ? this.parseOpera(e2) : e2.stack && e2.stack.match(r2) ? this.parseV8OrIE(e2) : e2.stack ? this.parseFFOrSafari(e2) : void 0;
          }, extractLocation: function(e2) {
            if (e2.indexOf(":") === -1)
              return [e2];
            var t3 = /(.+?)(?::(\d+))?(?::(\d+))?$/.exec(e2.replace(/[()]/g, ""));
            return [t3[1], t3[2] || void 0, t3[3] || void 0];
          }, parseV8OrIE: function(e2) {
            return e2.stack.split("\n").filter(function(e3) {
              return !!e3.match(r2);
            }, this).map(function(e3) {
              -1 < e3.indexOf("(eval ") && (e3 = e3.replace(/eval code/g, "eval").replace(/(\(eval at [^()]*)|(\),.*$)/g, ""));
              var t3 = e3.replace(/^\s+/, "").replace(/\(eval code/g, "("), r3 = t3.match(/ (\((.+):(\d+):(\d+)\)$)/), n3 = (t3 = r3 ? t3.replace(r3[0], "") : t3).split(/\s+/).slice(1), o2 = this.extractLocation(r3 ? r3[1] : n3.pop());
              return { functionName: n3.join(" ") || void 0, fileName: -1 < ["eval", "<anonymous>"].indexOf(o2[0]) ? void 0 : o2[0], lineNumber: o2[1], columnNumber: o2[2], source: e3 };
            }, this);
          }, parseFFOrSafari: function(e2) {
            return e2.stack.split("\n").filter(function(e3) {
              return !e3.match(n2);
            }, this).map(function(e3) {
              if (-1 < e3.indexOf(" > eval") && (e3 = e3.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g, ":$1")), e3.indexOf("@") === -1 && e3.indexOf(":") === -1)
                return { functionName: e3 };
              var t3 = /((.*".+"[^@]*)?[^@]*)(?:@)/, r3 = e3.match(t3), n3 = r3 && r3[1] ? r3[1] : void 0, o2 = this.extractLocation(e3.replace(t3, ""));
              return { functionName: n3, fileName: o2[0], lineNumber: o2[1], columnNumber: o2[2], source: e3 };
            }, this);
          }, parseOpera: function(e2) {
            return !e2.stacktrace || -1 < e2.message.indexOf("\n") && e2.message.split("\n").length > e2.stacktrace.split("\n").length ? this.parseOpera9(e2) : e2.stack ? this.parseOpera11(e2) : this.parseOpera10(e2);
          }, parseOpera9: function(e2) {
            for (var t3 = /Line (\d+).*script (?:in )?(\S+)/i, r3 = e2.message.split("\n"), n3 = [], o2 = 2, i2 = r3.length; o2 < i2; o2 += 2) {
              var a2 = t3.exec(r3[o2]);
              a2 && n3.push({ fileName: a2[2], lineNumber: a2[1], source: r3[o2] });
            }
            return n3;
          }, parseOpera10: function(e2) {
            for (var t3 = /Line (\d+).*script (?:in )?(\S+)(?:: In function (\S+))?$/i, r3 = e2.stacktrace.split("\n"), n3 = [], o2 = 0, i2 = r3.length; o2 < i2; o2 += 2) {
              var a2 = t3.exec(r3[o2]);
              a2 && n3.push({ functionName: a2[3] || void 0, fileName: a2[2], lineNumber: a2[1], source: r3[o2] });
            }
            return n3;
          }, parseOpera11: function(e2) {
            return e2.stack.split("\n").filter(function(e3) {
              return !!e3.match(t2) && !e3.match(/^Error created at/);
            }, this).map(function(e3) {
              var t3, r3 = e3.split("@"), n3 = this.extractLocation(r3.pop()), o2 = r3.shift() || "", i2 = o2.replace(/<anonymous function(: (\w+))?>/, "$2").replace(/\([^)]*\)/g, "") || void 0;
              return o2.match(/\(([^)]*)\)/) && (t3 = o2.replace(/^[^(]+\(([^)]*)\)$/, "$1")), { functionName: i2, args: t3 === void 0 || t3 === "[arguments not available]" ? void 0 : t3.split(","), fileName: n3[0], lineNumber: n3[1], columnNumber: n3[2], source: e3 };
            }, this);
          } };
        }
        o.default._getErrorStackParser = function() {
          return new i();
        };
        var a = o.default;
        r.default = a;
      }, { "../main": 260, "core-js/modules/es.array.filter": 151, "core-js/modules/es.array.index-of": 155, "core-js/modules/es.array.join": 157, "core-js/modules/es.array.map": 159, "core-js/modules/es.array.slice": 160, "core-js/modules/es.regexp.exec": 178, "core-js/modules/es.string.match": 184, "core-js/modules/es.string.replace": 186, "core-js/modules/es.string.split": 188 }], 255: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.symbol"), e("core-js/modules/es.symbol.description"), e("core-js/modules/es.symbol.iterator"), e("core-js/modules/es.array.concat"), e("core-js/modules/es.array.for-each"), e("core-js/modules/es.array.includes"), e("core-js/modules/es.array.index-of"), e("core-js/modules/es.array.iterator"), e("core-js/modules/es.array.join"), e("core-js/modules/es.array.last-index-of"), e("core-js/modules/es.array.map"), e("core-js/modules/es.array.slice"), e("core-js/modules/es.function.name"), e("core-js/modules/es.map"), e("core-js/modules/es.number.constructor"), e("core-js/modules/es.object.get-prototype-of"), e("core-js/modules/es.object.keys"), e("core-js/modules/es.object.to-string"), e("core-js/modules/es.reflect.construct"), e("core-js/modules/es.regexp.exec"), e("core-js/modules/es.regexp.to-string"), e("core-js/modules/es.set"), e("core-js/modules/es.string.includes"), e("core-js/modules/es.string.iterator"), e("core-js/modules/es.string.split"), e("core-js/modules/web.dom-collections.for-each"), e("core-js/modules/web.dom-collections.iterator"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, o = (n = e("../main")) && n.__esModule ? n : { default: n };
        (function(e2) {
          if (e2 && e2.__esModule)
            return;
          if (e2 === null || s(e2) !== "object" && typeof e2 != "function")
            return;
          var t2 = a();
          if (t2 && t2.has(e2))
            return t2.get(e2);
          var r2 = {}, n2 = Object.defineProperty && Object.getOwnPropertyDescriptor;
          for (var o2 in e2)
            if (Object.prototype.hasOwnProperty.call(e2, o2)) {
              var i2 = n2 ? Object.getOwnPropertyDescriptor(e2, o2) : null;
              i2 && (i2.get || i2.set) ? Object.defineProperty(r2, o2, i2) : r2[o2] = e2[o2];
            }
          r2.default = e2, t2 && t2.set(e2, r2);
        })(e("../constants")), e("../internationalization");
        function a() {
          if (typeof WeakMap != "function")
            return null;
          var e2 = new WeakMap();
          return a = function() {
            return e2;
          }, e2;
        }
        function s(e2) {
          return (s = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e3) {
            return typeof e3;
          } : function(e3) {
            return e3 && typeof Symbol == "function" && e3.constructor === Symbol && e3 !== Symbol.prototype ? "symbol" : typeof e3;
          })(e2);
        }
        o.default._validateParameters = o.default._clearValidateParamsCache = function() {
        };
        var i = o.default;
        r.default = i;
      }, { "../../../docs/parameterData.json": void 0, "../constants": 250, "../internationalization": 258, "../main": 260, "core-js/modules/es.array.concat": 148, "core-js/modules/es.array.for-each": 152, "core-js/modules/es.array.includes": 154, "core-js/modules/es.array.index-of": 155, "core-js/modules/es.array.iterator": 156, "core-js/modules/es.array.join": 157, "core-js/modules/es.array.last-index-of": 158, "core-js/modules/es.array.map": 159, "core-js/modules/es.array.slice": 160, "core-js/modules/es.function.name": 163, "core-js/modules/es.map": 164, "core-js/modules/es.number.constructor": 167, "core-js/modules/es.object.get-prototype-of": 172, "core-js/modules/es.object.keys": 173, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.reflect.construct": 176, "core-js/modules/es.regexp.exec": 178, "core-js/modules/es.regexp.to-string": 179, "core-js/modules/es.set": 180, "core-js/modules/es.string.includes": 182, "core-js/modules/es.string.iterator": 183, "core-js/modules/es.string.split": 188, "core-js/modules/es.symbol": 193, "core-js/modules/es.symbol.description": 191, "core-js/modules/es.symbol.iterator": 192, "core-js/modules/web.dom-collections.for-each": 225, "core-js/modules/web.dom-collections.iterator": 226 }], 256: [function(e, t, r) {
        "use strict";
        function a(e2) {
          return (a = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e3) {
            return typeof e3;
          } : function(e3) {
            return e3 && typeof Symbol == "function" && e3.constructor === Symbol && e3 !== Symbol.prototype ? "symbol" : typeof e3;
          })(e2);
        }
        Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var i = function(e2) {
          if (e2 && e2.__esModule)
            return e2;
          if (e2 === null || a(e2) !== "object" && typeof e2 != "function")
            return { default: e2 };
          var t2 = s();
          if (t2 && t2.has(e2))
            return t2.get(e2);
          var r2 = {}, n2 = Object.defineProperty && Object.getOwnPropertyDescriptor;
          for (var o in e2)
            if (Object.prototype.hasOwnProperty.call(e2, o)) {
              var i2 = n2 ? Object.getOwnPropertyDescriptor(e2, o) : null;
              i2 && (i2.get || i2.set) ? Object.defineProperty(r2, o, i2) : r2[o] = e2[o];
            }
          r2.default = e2, t2 && t2.set(e2, r2);
          return r2;
        }(e("./constants"));
        function s() {
          if (typeof WeakMap != "function")
            return null;
          var e2 = new WeakMap();
          return s = function() {
            return e2;
          }, e2;
        }
        var n = { modeAdjust: function(e2, t2, r2, n2, o) {
          return o === i.CORNER ? { x: e2, y: t2, w: r2, h: n2 } : o === i.CORNERS ? { x: e2, y: t2, w: r2 - e2, h: n2 - t2 } : o === i.RADIUS ? { x: e2 - r2, y: t2 - n2, w: 2 * r2, h: 2 * n2 } : o === i.CENTER ? { x: e2 - 0.5 * r2, y: t2 - 0.5 * n2, w: r2, h: n2 } : void 0;
        } };
        r.default = n;
      }, { "./constants": 250 }], 257: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.array.iterator"), e("core-js/modules/es.object.to-string"), e("core-js/modules/es.promise"), e("core-js/modules/es.string.iterator"), e("core-js/modules/web.dom-collections.iterator");
        var n, o = (n = e("../core/main")) && n.__esModule ? n : { default: n };
        e("./internationalization");
        var i = Promise.resolve();
        Promise.all([new Promise(function(e2, t2) {
          document.readyState === "complete" ? e2() : window.addEventListener("load", e2, false);
        }), i]).then(function() {
          window._setupDone === void 0 ? window.mocha || (window.setup && typeof window.setup == "function" || window.draw && typeof window.draw == "function") && !o.default.instance && new o.default() : console.warn("p5.js seems to have been imported multiple times. Please remove the duplicate import");
        });
      }, { "../core/main": 260, "./internationalization": 258, "core-js/modules/es.array.iterator": 156, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.promise": 175, "core-js/modules/es.string.iterator": 183, "core-js/modules/web.dom-collections.iterator": 226 }], 258: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.array.includes"), e("core-js/modules/es.array.iterator"), e("core-js/modules/es.array.join"), e("core-js/modules/es.array.slice"), e("core-js/modules/es.object.keys"), e("core-js/modules/es.object.to-string"), e("core-js/modules/es.promise"), e("core-js/modules/es.regexp.exec"), e("core-js/modules/es.string.includes"), e("core-js/modules/es.string.iterator"), e("core-js/modules/es.string.split"), e("core-js/modules/web.dom-collections.iterator"), Object.defineProperty(r, "__esModule", { value: true }), r.initialize = r.translator = void 0;
        var i, a, n = s(e("i18next")), o = s(e("i18next-browser-languagedetector"));
        function s(e2) {
          return e2 && e2.__esModule ? e2 : { default: e2 };
        }
        function l(e2, t2) {
          for (var r2 = 0; r2 < t2.length; r2++) {
            var n2 = t2[r2];
            n2.enumerable = n2.enumerable || false, n2.configurable = true, "value" in n2 && (n2.writable = true), Object.defineProperty(e2, n2.key, n2);
          }
        }
        var u = function() {
          function r2(e3, t3) {
            !function(e4, t4) {
              if (!(e4 instanceof t4))
                throw new TypeError("Cannot call a class as a function");
            }(this, r2), this.init(e3, t3);
          }
          var e2, t2, n2;
          return e2 = r2, (t2 = [{ key: "fetchWithTimeout", value: function(e3, t3, r3) {
            var n3 = 2 < arguments.length && r3 !== void 0 ? r3 : 2e3;
            return Promise.race([fetch(e3, t3), new Promise(function(e4, t4) {
              return setTimeout(function() {
                return t4(new Error("timeout"));
              }, n3);
            })]);
          } }, { key: "init", value: function(e3, t3) {
            var r3 = 1 < arguments.length && t3 !== void 0 ? t3 : {};
            this.services = e3, this.options = r3;
          } }, { key: "read", value: function(e3, t3, r3) {
            var n3 = this.options.loadPath;
            if (e3 === this.options.fallback)
              r3(null, i[e3][t3]);
            else if (a.includes(e3)) {
              var o2 = this.services.interpolator.interpolate(n3, { lng: e3, ns: t3 });
              this.loadUrl(o2, r3);
            } else
              r3("Not found", false);
          } }, { key: "loadUrl", value: function(t3, r3) {
            this.fetchWithTimeout(t3).then(function(e3) {
              if (!e3.ok)
                throw new Error("failed loading ".concat(t3));
              return e3.json();
            }, function() {
              throw new Error("failed loading ".concat(t3));
            }).then(function(e3) {
              return r3(null, e3);
            }).catch(r3);
          } }]) && l(e2.prototype, t2), n2 && l(e2, n2), r2;
        }();
        u.type = "backend";
        var c = function(e2, t2) {
          console.debug("p5.js translator called before translations were loaded"), n.default.t(e2, t2);
        };
        r.translator = c;
        r.initialize = function() {
          return n.default.use(o.default).use(u).init({ fallbackLng: "en", nestingPrefix: "$tr(", nestingSuffix: ")", defaultNS: "translation", returnEmptyString: false, interpolation: { escapeValue: false }, detection: { checkWhitelist: false, order: ["querystring", "navigator", "htmlTag", "path", "subdomain"], caches: [] }, backend: { fallback: "en", loadPath: "https://cdn.jsdelivr.net/npm/p5/translations/{{lng}}/{{ns}}.json" }, partialBundledLanguages: true, resources: i }).then(function(e2) {
            r.translator = c = e2;
          }, function(e2) {
            return console.debug("Translations failed to load (".concat(e2, ")"));
          });
        };
      }, { "../../translations": void 0, "../../translations/dev": void 0, "core-js/modules/es.array.includes": 154, "core-js/modules/es.array.iterator": 156, "core-js/modules/es.array.join": 157, "core-js/modules/es.array.slice": 160, "core-js/modules/es.object.keys": 173, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.promise": 175, "core-js/modules/es.regexp.exec": 178, "core-js/modules/es.string.includes": 182, "core-js/modules/es.string.iterator": 183, "core-js/modules/es.string.split": 188, "core-js/modules/web.dom-collections.iterator": 226, i18next: 3, "i18next-browser-languagedetector": 3 }], 259: [function(e, t, r) {
        "use strict";
        Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, o = (n = e("./main")) && n.__esModule ? n : { default: n };
        o.default.prototype.pushStyle = function() {
          throw new Error("pushStyle() not used, see push()");
        }, o.default.prototype.popStyle = function() {
          throw new Error("popStyle() not used, see pop()");
        }, o.default.prototype.popMatrix = function() {
          throw new Error("popMatrix() not used, see pop()");
        }, o.default.prototype.pushMatrix = function() {
          throw new Error("pushMatrix() not used, see push()");
        };
        var i = o.default;
        r.default = i;
      }, { "./main": 260 }], 260: [function(e, t, r) {
        "use strict";
        function a(e2) {
          return (a = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e3) {
            return typeof e3;
          } : function(e3) {
            return e3 && typeof Symbol == "function" && e3.constructor === Symbol && e3 !== Symbol.prototype ? "symbol" : typeof e3;
          })(e2);
        }
        e("core-js/modules/es.symbol"), e("core-js/modules/es.symbol.description"), e("core-js/modules/es.symbol.iterator"), e("core-js/modules/es.array.for-each"), e("core-js/modules/es.array.iterator"), e("core-js/modules/es.array.slice"), e("core-js/modules/es.object.get-own-property-names"), e("core-js/modules/es.object.to-string"), e("core-js/modules/es.string.iterator"), e("core-js/modules/web.dom-collections.for-each"), e("core-js/modules/web.dom-collections.iterator"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0, e("./shim");
        var n = function(e2) {
          if (e2 && e2.__esModule)
            return e2;
          if (e2 === null || a(e2) !== "object" && typeof e2 != "function")
            return { default: e2 };
          var t2 = s();
          if (t2 && t2.has(e2))
            return t2.get(e2);
          var r2 = {}, n2 = Object.defineProperty && Object.getOwnPropertyDescriptor;
          for (var o2 in e2)
            if (Object.prototype.hasOwnProperty.call(e2, o2)) {
              var i2 = n2 ? Object.getOwnPropertyDescriptor(e2, o2) : null;
              i2 && (i2.get || i2.set) ? Object.defineProperty(r2, o2, i2) : r2[o2] = e2[o2];
            }
          r2.default = e2, t2 && t2.set(e2, r2);
          return r2;
        }(e("./constants"));
        function s() {
          if (typeof WeakMap != "function")
            return null;
          var e2 = new WeakMap();
          return s = function() {
            return e2;
          }, e2;
        }
        function o(e2, t2) {
          for (var r2 = 0; r2 < t2.length; r2++) {
            var n2 = t2[r2];
            n2.enumerable = n2.enumerable || false, n2.configurable = true, "value" in n2 && (n2.writable = true), Object.defineProperty(e2, n2.key, n2);
          }
        }
        var i = function() {
          function _(e3, t3, r3) {
            var f = this;
            !function(e4, t4) {
              if (!(e4 instanceof t4))
                throw new TypeError("Cannot call a class as a function");
            }(this, _), this._setupDone = false, this._pixelDensity = Math.ceil(window.devicePixelRatio) || 1, this._userNode = t3, this._curElement = null, this._elements = [], this._glAttributes = null, this._requestAnimId = 0, this._preloadCount = 0, this._isGlobal = false, this._loop = true, this._initializeInstanceVariables(), this._defaultCanvasSize = { width: 100, height: 100 }, this._events = { mousemove: null, mousedown: null, mouseup: null, dragend: null, dragover: null, click: null, dblclick: null, mouseover: null, mouseout: null, keydown: null, keyup: null, keypress: null, touchstart: null, touchmove: null, touchend: null, resize: null, blur: null }, this._millisStart = -1, this._lcg_random_state = null, this._gaussian_previous = false, this._events.wheel = null, this._loadingScreenId = "p5_loading", this._registeredMethods = {};
            var n2 = Object.getOwnPropertyNames(_.prototype._registeredMethods), o2 = true, i2 = false, a2 = void 0;
            try {
              for (var s2, l2 = n2[Symbol.iterator](); !(o2 = (s2 = l2.next()).done); o2 = true) {
                var u2 = s2.value;
                this._registeredMethods[u2] = _.prototype._registeredMethods[u2].slice();
              }
            } catch (e4) {
              i2 = true, a2 = e4;
            } finally {
              try {
                o2 || l2.return == null || l2.return();
              } finally {
                if (i2)
                  throw a2;
              }
            }
            window.DeviceOrientationEvent && (this._events.deviceorientation = null), window.DeviceMotionEvent && !window._isNodeWebkit && (this._events.devicemotion = null), this._start = function() {
              f._userNode && typeof f._userNode == "string" && (f._userNode = document.getElementById(f._userNode));
              var e4 = f._isGlobal ? window : f;
              if (e4.preload) {
                var t4 = document.getElementById(f._loadingScreenId);
                if (!t4)
                  (t4 = document.createElement("div")).innerHTML = "Loading...", t4.style.position = "absolute", t4.id = f._loadingScreenId, (f._userNode || document.body).appendChild(t4);
                var r4 = f._preloadMethods;
                for (var n3 in r4) {
                  r4[n3] = r4[n3] || _;
                  var o3 = r4[n3];
                  o3 !== _.prototype && o3 !== _ || (f._isGlobal && (window[n3] = f._wrapPreload(f, n3)), o3 = f), f._registeredPreloadMethods[n3] = o3[n3], o3[n3] = f._wrapPreload(o3, n3);
                }
                e4.preload(), f._runIfPreloadsAreDone();
              } else
                f._setup(), f._draw();
            }, this._runIfPreloadsAreDone = function() {
              var e4 = this._isGlobal ? window : this;
              if (e4._preloadCount === 0) {
                var t4 = document.getElementById(e4._loadingScreenId);
                t4 && t4.parentNode.removeChild(t4), this._setupDone || (this._lastFrameTime = window.performance.now(), e4._setup(), e4._draw());
              }
            }, this._decrementPreload = function() {
              var e4 = this._isGlobal ? window : this;
              typeof e4.preload == "function" && (e4._setProperty("_preloadCount", e4._preloadCount - 1), e4._runIfPreloadsAreDone());
            }, this._wrapPreload = function(n3, o3) {
              var i3 = this;
              return function() {
                i3._incrementPreload();
                for (var e4 = arguments.length, t4 = new Array(e4), r4 = 0; r4 < e4; r4++)
                  t4[r4] = arguments[r4];
                return i3._registeredPreloadMethods[o3].apply(n3, t4);
              };
            }, this._incrementPreload = function() {
              var e4 = this._isGlobal ? window : this;
              e4._setProperty("_preloadCount", e4._preloadCount + 1);
            }, this._setup = function() {
              f.createCanvas(f._defaultCanvasSize.width, f._defaultCanvasSize.height, "p2d");
              var e4 = f._isGlobal ? window : f;
              if (typeof e4.preload == "function")
                for (var t4 in f._preloadMethods)
                  e4[t4] = f._preloadMethods[t4][t4], e4[t4] && f && (e4[t4] = e4[t4].bind(f));
              f._millisStart = window.performance.now(), typeof e4.setup == "function" && e4.setup();
              var r4 = document.getElementsByTagName("canvas"), n3 = true, o3 = false, i3 = void 0;
              try {
                for (var a3, s3 = r4[Symbol.iterator](); !(n3 = (a3 = s3.next()).done); n3 = true) {
                  var l3 = a3.value;
                  l3.dataset.hidden === "true" && (l3.style.visibility = "", delete l3.dataset.hidden);
                }
              } catch (e5) {
                o3 = true, i3 = e5;
              } finally {
                try {
                  n3 || s3.return == null || s3.return();
                } finally {
                  if (o3)
                    throw i3;
                }
              }
              f._lastFrameTime = window.performance.now(), f._setupDone = true, (f._accessibleOutputs.grid || f._accessibleOutputs.text) && f._updateAccsOutput();
            }, this._draw = function() {
              var e4 = window.performance.now(), t4 = e4 - f._lastFrameTime, r4 = 1e3 / f._targetFrameRate;
              (!f._loop || r4 - 5 <= t4) && (f.redraw(), f._frameRate = 1e3 / (e4 - f._lastFrameTime), f.deltaTime = e4 - f._lastFrameTime, f._setProperty("deltaTime", f.deltaTime), f._lastFrameTime = e4, f._updateMouseCoords !== void 0 && (f._updateMouseCoords(), f._setProperty("movedX", 0), f._setProperty("movedY", 0))), f._loop && (f._requestAnimId = window.requestAnimationFrame(f._draw));
            }, this._setProperty = function(e4, t4) {
              f[e4] = t4, f._isGlobal && (window[e4] = t4);
            }, this.remove = function() {
              var e4 = document.getElementById(f._loadingScreenId);
              if (e4 && (e4.parentNode.removeChild(e4), f._incrementPreload()), f._curElement) {
                for (var t4 in f._loop = false, f._requestAnimId && window.cancelAnimationFrame(f._requestAnimId), f._events)
                  window.removeEventListener(t4, f._events[t4]);
                var r4 = true, n3 = false, o3 = void 0;
                try {
                  for (var i3, a3 = f._elements[Symbol.iterator](); !(r4 = (i3 = a3.next()).done); r4 = true) {
                    var s3 = i3.value;
                    for (var l3 in s3.elt && s3.elt.parentNode && s3.elt.parentNode.removeChild(s3.elt), s3._events)
                      s3.elt.removeEventListener(l3, s3._events[l3]);
                  }
                } catch (e5) {
                  n3 = true, o3 = e5;
                } finally {
                  try {
                    r4 || a3.return == null || a3.return();
                  } finally {
                    if (n3)
                      throw o3;
                  }
                }
                var u3 = f;
                f._registeredMethods.remove.forEach(function(e5) {
                  e5 !== void 0 && e5.call(u3);
                });
              }
              if (f._isGlobal) {
                for (var c2 in _.prototype)
                  try {
                    delete window[c2];
                  } catch (e5) {
                    window[c2] = void 0;
                  }
                for (var d2 in f)
                  if (f.hasOwnProperty(d2))
                    try {
                      delete window[d2];
                    } catch (e5) {
                      window[d2] = void 0;
                    }
                _.instance = null;
              }
            }, this._registeredMethods.init.forEach(function(e4) {
              e4 !== void 0 && e4.call(this);
            }, this), this._setupPromisePreloads();
            var c = this._createFriendlyGlobalFunctionBinder();
            if (e3)
              e3(this), _._checkForUserDefinedFunctions(this);
            else {
              for (var d in this._isGlobal = true, _.instance = this, _.prototype)
                if (typeof _.prototype[d] == "function") {
                  var h = d.substring(2);
                  this._events.hasOwnProperty(h) || (Math.hasOwnProperty(d) && Math[d] === _.prototype[d] ? c(d, _.prototype[d]) : c(d, _.prototype[d].bind(this)));
                } else
                  c(d, _.prototype[d]);
              for (var p in this)
                this.hasOwnProperty(p) && c(p, this[p]);
            }
            for (var y in this._events) {
              var m = this["_on".concat(y)];
              if (m) {
                var g = m.bind(this);
                window.addEventListener(y, g, { passive: false }), this._events[y] = g;
              }
            }
            function v() {
              f._setProperty("focused", true);
            }
            function b() {
              f._setProperty("focused", false);
            }
            window.addEventListener("focus", v), window.addEventListener("blur", b), this.registerMethod("remove", function() {
              window.removeEventListener("focus", v), window.removeEventListener("blur", b);
            }), document.readyState === "complete" ? this._start() : window.addEventListener("load", this._start.bind(this), false);
          }
          var e2, t2, r2;
          return e2 = _, (t2 = [{ key: "_initializeInstanceVariables", value: function() {
            this._accessibleOutputs = { text: false, grid: false, textLabel: false, gridLabel: false }, this._styles = [], this._bezierDetail = 20, this._curveDetail = 20, this._colorMode = n.RGB, this._colorMaxes = { rgb: [255, 255, 255, 255], hsb: [360, 100, 100, 1], hsl: [360, 100, 100, 1] }, this._downKeys = {};
          } }, { key: "registerPreloadMethod", value: function(e3, t3) {
            _.prototype._preloadMethods.hasOwnProperty(e3) || (_.prototype._preloadMethods[e3] = t3);
          } }, { key: "registerMethod", value: function(e3, t3) {
            var r3 = this || _.prototype;
            r3._registeredMethods.hasOwnProperty(e3) || (r3._registeredMethods[e3] = []), r3._registeredMethods[e3].push(t3);
          } }, { key: "_createFriendlyGlobalFunctionBinder", value: function(e3) {
            var t3 = 0 < arguments.length && e3 !== void 0 ? e3 : {}, r3 = t3.globalObject || window;
            t3.log || console.log.bind(console);
            return function(e4, t4) {
              r3[e4] = t4;
            };
          } }]) && o(e2.prototype, t2), r2 && o(e2, r2), _;
        }();
        for (var l in i.instance = null, i.disableFriendlyErrors = false, n)
          i.prototype[l] = n[l];
        i.prototype._preloadMethods = { loadJSON: i.prototype, loadImage: i.prototype, loadStrings: i.prototype, loadXML: i.prototype, loadBytes: i.prototype, loadTable: i.prototype, loadFont: i.prototype, loadModel: i.prototype, loadShader: i.prototype }, i.prototype._registeredMethods = { init: [], pre: [], post: [], remove: [] }, i.prototype._registeredPreloadMethods = {};
        var u = i;
        r.default = u;
      }, { "./constants": 250, "./shim": 271, "core-js/modules/es.array.for-each": 152, "core-js/modules/es.array.iterator": 156, "core-js/modules/es.array.slice": 160, "core-js/modules/es.object.get-own-property-names": 171, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.string.iterator": 183, "core-js/modules/es.symbol": 193, "core-js/modules/es.symbol.description": 191, "core-js/modules/es.symbol.iterator": 192, "core-js/modules/web.dom-collections.for-each": 225, "core-js/modules/web.dom-collections.iterator": 226 }], 261: [function(e, t, r) {
        "use strict";
        Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, o = (n = e("./main")) && n.__esModule ? n : { default: n };
        o.default.Element = function(e2, t2) {
          this.elt = e2, this._pInst = this._pixelsState = t2, this._events = {}, this.width = this.elt.offsetWidth, this.height = this.elt.offsetHeight;
        }, o.default.Element.prototype.parent = function(e2) {
          return e2 === void 0 ? this.elt.parentNode : (typeof e2 == "string" ? (e2[0] === "#" && (e2 = e2.substring(1)), e2 = document.getElementById(e2)) : e2 instanceof o.default.Element && (e2 = e2.elt), e2.appendChild(this.elt), this);
        }, o.default.Element.prototype.id = function(e2) {
          return e2 === void 0 ? this.elt.id : (this.elt.id = e2, this.width = this.elt.offsetWidth, this.height = this.elt.offsetHeight, this);
        }, o.default.Element.prototype.class = function(e2) {
          return e2 === void 0 ? this.elt.className : (this.elt.className = e2, this);
        }, o.default.Element.prototype.mousePressed = function(t2) {
          return o.default.Element._adjustListener("mousedown", function(e2) {
            return this._pInst._setProperty("mouseIsPressed", true), this._pInst._setMouseButton(e2), t2.call(this);
          }, this), this;
        }, o.default.Element.prototype.doubleClicked = function(e2) {
          return o.default.Element._adjustListener("dblclick", e2, this), this;
        }, o.default.Element.prototype.mouseWheel = function(e2) {
          return o.default.Element._adjustListener("wheel", e2, this), this;
        }, o.default.Element.prototype.mouseReleased = function(e2) {
          return o.default.Element._adjustListener("mouseup", e2, this), this;
        }, o.default.Element.prototype.mouseClicked = function(e2) {
          return o.default.Element._adjustListener("click", e2, this), this;
        }, o.default.Element.prototype.mouseMoved = function(e2) {
          return o.default.Element._adjustListener("mousemove", e2, this), this;
        }, o.default.Element.prototype.mouseOver = function(e2) {
          return o.default.Element._adjustListener("mouseover", e2, this), this;
        }, o.default.Element.prototype.mouseOut = function(e2) {
          return o.default.Element._adjustListener("mouseout", e2, this), this;
        }, o.default.Element.prototype.touchStarted = function(e2) {
          return o.default.Element._adjustListener("touchstart", e2, this), this;
        }, o.default.Element.prototype.touchMoved = function(e2) {
          return o.default.Element._adjustListener("touchmove", e2, this), this;
        }, o.default.Element.prototype.touchEnded = function(e2) {
          return o.default.Element._adjustListener("touchend", e2, this), this;
        }, o.default.Element.prototype.dragOver = function(e2) {
          return o.default.Element._adjustListener("dragover", e2, this), this;
        }, o.default.Element.prototype.dragLeave = function(e2) {
          return o.default.Element._adjustListener("dragleave", e2, this), this;
        }, o.default.Element._adjustListener = function(e2, t2, r2) {
          return t2 === false ? o.default.Element._detachListener(e2, r2) : o.default.Element._attachListener(e2, t2, r2), this;
        }, o.default.Element._attachListener = function(e2, t2, r2) {
          r2._events[e2] && o.default.Element._detachListener(e2, r2);
          var n2 = t2.bind(r2);
          r2.elt.addEventListener(e2, n2, false), r2._events[e2] = n2;
        }, o.default.Element._detachListener = function(e2, t2) {
          var r2 = t2._events[e2];
          t2.elt.removeEventListener(e2, r2, false), t2._events[e2] = null;
        }, o.default.Element.prototype._setProperty = function(e2, t2) {
          this[e2] = t2;
        };
        var i = o.default.Element;
        r.default = i;
      }, { "./main": 260 }], 262: [function(e, t, r) {
        "use strict";
        function a(e2) {
          return (a = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e3) {
            return typeof e3;
          } : function(e3) {
            return e3 && typeof Symbol == "function" && e3.constructor === Symbol && e3 !== Symbol.prototype ? "symbol" : typeof e3;
          })(e2);
        }
        e("core-js/modules/es.array.index-of"), e("core-js/modules/es.array.splice"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, s = (n = e("./main")) && n.__esModule ? n : { default: n }, l = function(e2) {
          if (e2 && e2.__esModule)
            return e2;
          if (e2 === null || a(e2) !== "object" && typeof e2 != "function")
            return { default: e2 };
          var t2 = u();
          if (t2 && t2.has(e2))
            return t2.get(e2);
          var r2 = {}, n2 = Object.defineProperty && Object.getOwnPropertyDescriptor;
          for (var o2 in e2)
            if (Object.prototype.hasOwnProperty.call(e2, o2)) {
              var i = n2 ? Object.getOwnPropertyDescriptor(e2, o2) : null;
              i && (i.get || i.set) ? Object.defineProperty(r2, o2, i) : r2[o2] = e2[o2];
            }
          r2.default = e2, t2 && t2.set(e2, r2);
          return r2;
        }(e("./constants"));
        function u() {
          if (typeof WeakMap != "function")
            return null;
          var e2 = new WeakMap();
          return u = function() {
            return e2;
          }, e2;
        }
        s.default.Graphics = function(e2, t2, r2, n2) {
          var o2 = r2 || l.P2D;
          this.canvas = document.createElement("canvas");
          var i = n2._userNode || document.body;
          for (var a2 in i.appendChild(this.canvas), s.default.Element.call(this, this.canvas, n2), s.default.prototype)
            this[a2] || (typeof s.default.prototype[a2] == "function" ? this[a2] = s.default.prototype[a2].bind(this) : this[a2] = s.default.prototype[a2]);
          return s.default.prototype._initializeInstanceVariables.apply(this), this.width = e2, this.height = t2, this._pixelDensity = n2._pixelDensity, o2 === l.WEBGL ? this._renderer = new s.default.RendererGL(this.canvas, this, false) : this._renderer = new s.default.Renderer2D(this.canvas, this, false), n2._elements.push(this), Object.defineProperty(this, "deltaTime", { get: function() {
            return this._pInst.deltaTime;
          } }), this._renderer.resize(e2, t2), this._renderer._applyDefaults(), this;
        }, s.default.Graphics.prototype = Object.create(s.default.Element.prototype), s.default.Graphics.prototype.reset = function() {
          this._renderer.resetMatrix(), this._renderer.isP3D && this._renderer._update();
        }, s.default.Graphics.prototype.remove = function() {
          this.elt.parentNode && this.elt.parentNode.removeChild(this.elt);
          var e2 = this._pInst._elements.indexOf(this);
          for (var t2 in e2 !== -1 && this._pInst._elements.splice(e2, 1), this._events)
            this.elt.removeEventListener(t2, this._events[t2]);
        };
        var o = s.default.Graphics;
        r.default = o;
      }, { "./constants": 250, "./main": 260, "core-js/modules/es.array.index-of": 155, "core-js/modules/es.array.splice": 162 }], 263: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.symbol"), e("core-js/modules/es.symbol.description"), e("core-js/modules/es.symbol.iterator"), e("core-js/modules/es.array.iterator"), e("core-js/modules/es.number.constructor"), e("core-js/modules/es.object.assign"), e("core-js/modules/es.object.to-string"), e("core-js/modules/es.regexp.exec"), e("core-js/modules/es.regexp.to-string"), e("core-js/modules/es.string.iterator"), e("core-js/modules/es.string.replace"), e("core-js/modules/es.string.split"), e("core-js/modules/web.dom-collections.iterator"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, l = (n = e("./main")) && n.__esModule ? n : { default: n }, S = function(e2) {
          if (e2 && e2.__esModule)
            return e2;
          if (e2 === null || s(e2) !== "object" && typeof e2 != "function")
            return { default: e2 };
          var t2 = a();
          if (t2 && t2.has(e2))
            return t2.get(e2);
          var r2 = {}, n2 = Object.defineProperty && Object.getOwnPropertyDescriptor;
          for (var o2 in e2)
            if (Object.prototype.hasOwnProperty.call(e2, o2)) {
              var i = n2 ? Object.getOwnPropertyDescriptor(e2, o2) : null;
              i && (i.get || i.set) ? Object.defineProperty(r2, o2, i) : r2[o2] = e2[o2];
            }
          r2.default = e2, t2 && t2.set(e2, r2);
          return r2;
        }(e("../core/constants"));
        function a() {
          if (typeof WeakMap != "function")
            return null;
          var e2 = new WeakMap();
          return a = function() {
            return e2;
          }, e2;
        }
        function s(e2) {
          return (s = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e3) {
            return typeof e3;
          } : function(e3) {
            return e3 && typeof Symbol == "function" && e3.constructor === Symbol && e3 !== Symbol.prototype ? "symbol" : typeof e3;
          })(e2);
        }
        function u(e2) {
          var t2 = 0, r2 = 0;
          if (e2.offsetParent)
            for (; t2 += e2.offsetLeft, r2 += e2.offsetTop, e2 = e2.offsetParent; )
              ;
          else
            t2 += e2.offsetLeft, r2 += e2.offsetTop;
          return [t2, r2];
        }
        l.default.Renderer = function(e2, t2, r2) {
          l.default.Element.call(this, e2, t2), this.canvas = e2, this._pixelsState = t2, r2 ? (this._isMainCanvas = true, this._pInst._setProperty("_curElement", this), this._pInst._setProperty("canvas", this.canvas), this._pInst._setProperty("width", this.width), this._pInst._setProperty("height", this.height)) : (this.canvas.style.display = "none", this._styles = []), this._textSize = 12, this._textLeading = 15, this._textFont = "sans-serif", this._textStyle = S.NORMAL, this._textAscent = null, this._textDescent = null, this._textAlign = S.LEFT, this._textBaseline = S.BASELINE, this._textWrap = S.WORD, this._rectMode = S.CORNER, this._ellipseMode = S.CENTER, this._curveTightness = 0, this._imageMode = S.CORNER, this._tint = null, this._doStroke = true, this._doFill = true, this._strokeSet = false, this._fillSet = false, this._leadingSet = false;
        }, l.default.Renderer.prototype = Object.create(l.default.Element.prototype), l.default.Renderer.prototype.push = function() {
          return { properties: { _doStroke: this._doStroke, _strokeSet: this._strokeSet, _doFill: this._doFill, _fillSet: this._fillSet, _tint: this._tint, _imageMode: this._imageMode, _rectMode: this._rectMode, _ellipseMode: this._ellipseMode, _textFont: this._textFont, _textLeading: this._textLeading, _leadingSet: this._leadingSet, _textSize: this._textSize, _textAlign: this._textAlign, _textBaseline: this._textBaseline, _textStyle: this._textStyle, _textWrap: this._textWrap } };
        }, l.default.Renderer.prototype.pop = function(e2) {
          e2.properties && Object.assign(this, e2.properties);
        }, l.default.Renderer.prototype.resize = function(e2, t2) {
          this.width = e2, this.height = t2, this.elt.width = e2 * this._pInst._pixelDensity, this.elt.height = t2 * this._pInst._pixelDensity, this.elt.style.width = "".concat(e2, "px"), this.elt.style.height = "".concat(t2, "px"), this._isMainCanvas && (this._pInst._setProperty("width", this.width), this._pInst._setProperty("height", this.height));
        }, l.default.Renderer.prototype.get = function(e2, t2, r2, n2) {
          var o2 = this._pixelsState, i = o2._pixelDensity, a2 = this.canvas;
          if (e2 === void 0 && t2 === void 0)
            e2 = t2 = 0, r2 = o2.width, n2 = o2.height;
          else if (e2 *= i, t2 *= i, r2 === void 0 && n2 === void 0)
            return e2 < 0 || t2 < 0 || e2 >= a2.width || t2 >= a2.height ? [0, 0, 0, 0] : this._getPixel(e2, t2);
          var s2 = new l.default.Image(r2, n2);
          return s2.canvas.getContext("2d").drawImage(a2, e2, t2, r2 * i, n2 * i, 0, 0, r2, n2), s2;
        }, l.default.Renderer.prototype.textLeading = function(e2) {
          return typeof e2 == "number" ? (this._setProperty("_leadingSet", true), this._setProperty("_textLeading", e2), this._pInst) : this._textLeading;
        }, l.default.Renderer.prototype.textSize = function(e2) {
          return typeof e2 == "number" ? (this._setProperty("_textSize", e2), this._leadingSet || this._setProperty("_textLeading", e2 * S._DEFAULT_LEADMULT), this._applyTextProperties()) : this._textSize;
        }, l.default.Renderer.prototype.textStyle = function(e2) {
          return e2 ? (e2 !== S.NORMAL && e2 !== S.ITALIC && e2 !== S.BOLD && e2 !== S.BOLDITALIC || this._setProperty("_textStyle", e2), this._applyTextProperties()) : this._textStyle;
        }, l.default.Renderer.prototype.textAscent = function() {
          return this._textAscent === null && this._updateTextMetrics(), this._textAscent;
        }, l.default.Renderer.prototype.textDescent = function() {
          return this._textDescent === null && this._updateTextMetrics(), this._textDescent;
        }, l.default.Renderer.prototype.textAlign = function(e2, t2) {
          return e2 !== void 0 ? (this._setProperty("_textAlign", e2), t2 !== void 0 && this._setProperty("_textBaseline", t2), this._applyTextProperties()) : { horizontal: this._textAlign, vertical: this._textBaseline };
        }, l.default.Renderer.prototype.textWrap = function(e2) {
          return this._setProperty("_textWrap", e2), this._textWrap;
        }, l.default.Renderer.prototype.text = function(e2, t2, r2, n2, o2) {
          var i, a2, s2, l2, u2, c, d, f = this._pInst, h = this._textWrap, p = Number.MAX_VALUE;
          if ((this._doFill || this._doStroke) && e2 !== void 0) {
            if (typeof e2 != "string" && (e2 = e2.toString()), i = (e2 = e2.replace(/(\t)/g, "  ")).split("\n"), n2 !== void 0) {
              switch (this._rectMode === S.CENTER && (t2 -= n2 / 2), this._textAlign) {
                case S.CENTER:
                  t2 += n2 / 2;
                  break;
                case S.RIGHT:
                  t2 += n2;
              }
              var y = false;
              if (o2 !== void 0) {
                switch (this._rectMode === S.CENTER && (r2 -= o2 / 2), this._textBaseline) {
                  case S.BOTTOM:
                    d = r2 + (o2 - totalHeight), r2 = Math.max(d, r2);
                    break;
                  case S.CENTER:
                    d = r2 + (o2 - totalHeight) / 2, r2 = Math.max(d, r2);
                    break;
                  case S.BASELINE:
                    y = true, this._textBaseline = S.TOP;
                }
                p = r2 + o2 - f.textAscent();
              }
              if (h === S.WORD)
                for (var m = 0; m < i.length; m++) {
                  a2 = "", u2 = i[m].split(" ");
                  for (var g = 0; g < u2.length; g++)
                    s2 = "".concat(a2 + u2[g]) + " ", n2 < (l2 = this.textWidth(s2)) && 0 < a2.length ? (this._renderText(f, a2, t2, r2, p), a2 = "".concat(u2[g]) + " ", r2 += f.textLeading()) : a2 = s2;
                  this._renderText(f, a2, t2, r2, p), r2 += f.textLeading(), y && (this._textBaseline = S.BASELINE);
                }
              else {
                for (var v = 0; v < i.length; v++) {
                  a2 = "", c = i[v].split("");
                  for (var b = 0; b < c.length; b++)
                    s2 = "".concat(a2 + c[b]), (l2 = this.textWidth(s2)) <= n2 ? a2 += c[b] : n2 < l2 && 0 < a2.length && (this._renderText(f, a2, t2, r2, p), r2 += f.textLeading(), a2 = "".concat(c[b]));
                }
                this._renderText(f, a2, t2, r2, p), r2 += f.textLeading(), y && (this._textBaseline = S.BASELINE);
              }
            } else {
              var _ = 0, x = f.textAlign().vertical;
              x === S.CENTER ? _ = (i.length - 1) * f.textLeading() / 2 : x === S.BOTTOM && (_ = (i.length - 1) * f.textLeading());
              for (var w = 0; w < i.length; w++)
                this._renderText(f, i[w], t2, r2 - _, p), r2 += f.textLeading();
            }
            return f;
          }
        }, l.default.Renderer.prototype._applyDefaults = function() {
          return this;
        }, l.default.Renderer.prototype._isOpenType = function() {
          var e2 = 0 < arguments.length && arguments[0] !== void 0 ? arguments[0] : this._textFont;
          return s(e2) === "object" && e2.font && e2.font.supported;
        }, l.default.Renderer.prototype._updateTextMetrics = function() {
          if (this._isOpenType())
            return this._setProperty("_textAscent", this._textFont._textAscent()), this._setProperty("_textDescent", this._textFont._textDescent()), this;
          var e2 = document.createElement("span");
          e2.style.fontFamily = this._textFont, e2.style.fontSize = "".concat(this._textSize, "px"), e2.innerHTML = "ABCjgq|";
          var t2 = document.createElement("div");
          t2.style.display = "inline-block", t2.style.width = "1px", t2.style.height = "0px";
          var r2 = document.createElement("div");
          r2.appendChild(e2), r2.appendChild(t2), r2.style.height = "0px", r2.style.overflow = "hidden", document.body.appendChild(r2), t2.style.verticalAlign = "baseline";
          var n2 = u(t2), o2 = u(e2), i = n2[1] - o2[1];
          t2.style.verticalAlign = "bottom", n2 = u(t2), o2 = u(e2);
          var a2 = n2[1] - o2[1] - i;
          return document.body.removeChild(r2), this._setProperty("_textAscent", i), this._setProperty("_textDescent", a2), this;
        };
        var o = l.default.Renderer;
        r.default = o;
      }, { "../core/constants": 250, "./main": 260, "core-js/modules/es.array.iterator": 156, "core-js/modules/es.number.constructor": 167, "core-js/modules/es.object.assign": 170, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.regexp.exec": 178, "core-js/modules/es.regexp.to-string": 179, "core-js/modules/es.string.iterator": 183, "core-js/modules/es.string.replace": 186, "core-js/modules/es.string.split": 188, "core-js/modules/es.symbol": 193, "core-js/modules/es.symbol.description": 191, "core-js/modules/es.symbol.iterator": 192, "core-js/modules/web.dom-collections.iterator": 226 }], 264: [function(e, t, r) {
        "use strict";
        function a(e2) {
          return (a = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e3) {
            return typeof e3;
          } : function(e3) {
            return e3 && typeof Symbol == "function" && e3.constructor === Symbol && e3 !== Symbol.prototype ? "symbol" : typeof e3;
          })(e2);
        }
        e("core-js/modules/es.array.concat"), e("core-js/modules/es.array.fill"), e("core-js/modules/es.array.for-each"), e("core-js/modules/es.array.slice"), e("core-js/modules/es.function.name"), e("core-js/modules/es.number.to-fixed"), e("core-js/modules/es.object.to-string"), e("core-js/modules/es.regexp.to-string"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var d = n(e("./main")), p = function(e2) {
          if (e2 && e2.__esModule)
            return e2;
          if (e2 === null || a(e2) !== "object" && typeof e2 != "function")
            return { default: e2 };
          var t2 = s();
          if (t2 && t2.has(e2))
            return t2.get(e2);
          var r2 = {}, n2 = Object.defineProperty && Object.getOwnPropertyDescriptor;
          for (var o2 in e2)
            if (Object.prototype.hasOwnProperty.call(e2, o2)) {
              var i = n2 ? Object.getOwnPropertyDescriptor(e2, o2) : null;
              i && (i.get || i.set) ? Object.defineProperty(r2, o2, i) : r2[o2] = e2[o2];
            }
          r2.default = e2, t2 && t2.set(e2, r2);
          return r2;
        }(e("./constants")), f = n(e("../image/filters"));
        function s() {
          if (typeof WeakMap != "function")
            return null;
          var e2 = new WeakMap();
          return s = function() {
            return e2;
          }, e2;
        }
        function n(e2) {
          return e2 && e2.__esModule ? e2 : { default: e2 };
        }
        e("./p5.Renderer");
        var m = "rgba(0,0,0,0)";
        d.default.Renderer2D = function(e2, t2, r2) {
          return d.default.Renderer.call(this, e2, t2, r2), this.drawingContext = this.canvas.getContext("2d"), this._pInst._setProperty("drawingContext", this.drawingContext), this;
        }, d.default.Renderer2D.prototype = Object.create(d.default.Renderer.prototype), d.default.Renderer2D.prototype._applyDefaults = function() {
          this._cachedFillStyle = this._cachedStrokeStyle = void 0, this._cachedBlendMode = p.BLEND, this._setFill(p._DEFAULT_FILL), this._setStroke(p._DEFAULT_STROKE), this.drawingContext.lineCap = p.ROUND, this.drawingContext.font = "normal 12px sans-serif";
        }, d.default.Renderer2D.prototype.resize = function(e2, t2) {
          d.default.Renderer.prototype.resize.call(this, e2, t2), this.drawingContext.scale(this._pInst._pixelDensity, this._pInst._pixelDensity);
        }, d.default.Renderer2D.prototype.background = function() {
          if (this.drawingContext.save(), this.resetMatrix(), (arguments.length <= 0 ? void 0 : arguments[0]) instanceof d.default.Image)
            this._pInst.image(arguments.length <= 0 ? void 0 : arguments[0], 0, 0, this.width, this.height);
          else {
            var e2, t2 = this._getFill(), r2 = (e2 = this._pInst).color.apply(e2, arguments);
            this._pInst._addAccsOutput() && this._pInst._accsBackground(r2.levels);
            var n2 = r2.toString();
            this._setFill(n2), this._isErasing && this.blendMode(this._cachedBlendMode), this.drawingContext.fillRect(0, 0, this.width, this.height), this._setFill(t2), this._isErasing && this._pInst.erase();
          }
          this.drawingContext.restore();
        }, d.default.Renderer2D.prototype.clear = function() {
          this.drawingContext.save(), this.resetMatrix(), this.drawingContext.clearRect(0, 0, this.width, this.height), this.drawingContext.restore();
        }, d.default.Renderer2D.prototype.fill = function() {
          var e2, t2 = (e2 = this._pInst).color.apply(e2, arguments);
          this._setFill(t2.toString()), this._pInst._addAccsOutput() && this._pInst._accsCanvasColors("fill", t2.levels);
        }, d.default.Renderer2D.prototype.stroke = function() {
          var e2, t2 = (e2 = this._pInst).color.apply(e2, arguments);
          this._setStroke(t2.toString()), this._pInst._addAccsOutput() && this._pInst._accsCanvasColors("stroke", t2.levels);
        }, d.default.Renderer2D.prototype.erase = function(e2, t2) {
          if (!this._isErasing) {
            this._cachedFillStyle = this.drawingContext.fillStyle;
            var r2 = this._pInst.color(255, e2).toString();
            this.drawingContext.fillStyle = r2, this._cachedStrokeStyle = this.drawingContext.strokeStyle;
            var n2 = this._pInst.color(255, t2).toString();
            this.drawingContext.strokeStyle = n2;
            var o2 = this._cachedBlendMode;
            this.blendMode(p.REMOVE), this._cachedBlendMode = o2, this._isErasing = true;
          }
        }, d.default.Renderer2D.prototype.noErase = function() {
          this._isErasing && (this.drawingContext.fillStyle = this._cachedFillStyle, this.drawingContext.strokeStyle = this._cachedStrokeStyle, this.blendMode(this._cachedBlendMode), this._isErasing = false);
        }, d.default.Renderer2D.prototype.image = function(e2, t2, r2, n2, o2, i, a2, s2, l) {
          var u;
          e2.gifProperties && e2._animateGif(this._pInst);
          try {
            this._tint && (d.default.MediaElement && e2 instanceof d.default.MediaElement && e2.loadPixels(), e2.canvas && (u = this._getTintedImageCanvas(e2))), u = u || (e2.canvas || e2.elt);
            var c = 1;
            e2.width && 0 < e2.width && (c = u.width / e2.width), this._isErasing && this.blendMode(this._cachedBlendMode), this.drawingContext.drawImage(u, c * t2, c * r2, c * n2, c * o2, i, a2, s2, l), this._isErasing && this._pInst.erase();
          } catch (e3) {
            if (e3.name !== "NS_ERROR_NOT_AVAILABLE")
              throw e3;
          }
        }, d.default.Renderer2D.prototype._getTintedImageCanvas = function(e2) {
          if (!e2.canvas)
            return e2;
          var t2 = f.default._toPixels(e2.canvas), r2 = document.createElement("canvas");
          r2.width = e2.canvas.width, r2.height = e2.canvas.height;
          for (var n2 = r2.getContext("2d"), o2 = n2.createImageData(e2.canvas.width, e2.canvas.height), i = o2.data, a2 = 0; a2 < t2.length; a2 += 4) {
            var s2 = t2[a2], l = t2[a2 + 1], u = t2[a2 + 2], c = t2[a2 + 3];
            i[a2] = s2 * this._tint[0] / 255, i[a2 + 1] = l * this._tint[1] / 255, i[a2 + 2] = u * this._tint[2] / 255, i[a2 + 3] = c * this._tint[3] / 255;
          }
          return n2.putImageData(o2, 0, 0), r2;
        }, d.default.Renderer2D.prototype.blendMode = function(e2) {
          if (e2 === p.SUBTRACT)
            console.warn("blendMode(SUBTRACT) only works in WEBGL mode.");
          else {
            if (e2 !== p.BLEND && e2 !== p.REMOVE && e2 !== p.DARKEST && e2 !== p.LIGHTEST && e2 !== p.DIFFERENCE && e2 !== p.MULTIPLY && e2 !== p.EXCLUSION && e2 !== p.SCREEN && e2 !== p.REPLACE && e2 !== p.OVERLAY && e2 !== p.HARD_LIGHT && e2 !== p.SOFT_LIGHT && e2 !== p.DODGE && e2 !== p.BURN && e2 !== p.ADD)
              throw new Error("Mode ".concat(e2, " not recognized."));
            this._cachedBlendMode = e2, this.drawingContext.globalCompositeOperation = e2;
          }
        }, d.default.Renderer2D.prototype.blend = function() {
          for (var e2 = this.drawingContext.globalCompositeOperation, t2 = arguments.length, r2 = new Array(t2), n2 = 0; n2 < t2; n2++)
            r2[n2] = arguments[n2];
          var o2 = r2[r2.length - 1], i = Array.prototype.slice.call(r2, 0, r2.length - 1);
          this.drawingContext.globalCompositeOperation = o2, d.default.prototype.copy.apply(this, i), this.drawingContext.globalCompositeOperation = e2;
        }, d.default.Renderer2D.prototype._getPixel = function(e2, t2) {
          var r2;
          return [(r2 = this.drawingContext.getImageData(e2, t2, 1, 1).data)[0], r2[1], r2[2], r2[3]];
        }, d.default.Renderer2D.prototype.loadPixels = function() {
          var e2 = this._pixelsState, t2 = e2._pixelDensity, r2 = this.width * t2, n2 = this.height * t2, o2 = this.drawingContext.getImageData(0, 0, r2, n2);
          e2._setProperty("imageData", o2), e2._setProperty("pixels", o2.data);
        }, d.default.Renderer2D.prototype.set = function(e2, t2, r2) {
          e2 = Math.floor(e2), t2 = Math.floor(t2);
          var n2 = this._pixelsState;
          if (r2 instanceof d.default.Image)
            this.drawingContext.save(), this.drawingContext.setTransform(1, 0, 0, 1, 0, 0), this.drawingContext.scale(n2._pixelDensity, n2._pixelDensity), this.drawingContext.clearRect(e2, t2, r2.width, r2.height), this.drawingContext.drawImage(r2.canvas, e2, t2), this.drawingContext.restore();
          else {
            var o2 = 0, i = 0, a2 = 0, s2 = 0, l = 4 * (t2 * n2._pixelDensity * (this.width * n2._pixelDensity) + e2 * n2._pixelDensity);
            if (n2.imageData || n2.loadPixels.call(n2), typeof r2 == "number")
              l < n2.pixels.length && (a2 = i = o2 = r2, s2 = 255);
            else if (r2 instanceof Array) {
              if (r2.length < 4)
                throw new Error("pixel array must be of the form [R, G, B, A]");
              l < n2.pixels.length && (o2 = r2[0], i = r2[1], a2 = r2[2], s2 = r2[3]);
            } else
              r2 instanceof d.default.Color && l < n2.pixels.length && (o2 = r2.levels[0], i = r2.levels[1], a2 = r2.levels[2], s2 = r2.levels[3]);
            for (var u = 0; u < n2._pixelDensity; u++)
              for (var c = 0; c < n2._pixelDensity; c++)
                l = 4 * ((t2 * n2._pixelDensity + c) * this.width * n2._pixelDensity + (e2 * n2._pixelDensity + u)), n2.pixels[l] = o2, n2.pixels[l + 1] = i, n2.pixels[l + 2] = a2, n2.pixels[l + 3] = s2;
          }
        }, d.default.Renderer2D.prototype.updatePixels = function(e2, t2, r2, n2) {
          var o2 = this._pixelsState, i = o2._pixelDensity;
          e2 === void 0 && t2 === void 0 && r2 === void 0 && n2 === void 0 && (t2 = e2 = 0, r2 = this.width, n2 = this.height), e2 *= i, t2 *= i, r2 *= i, n2 *= i, this.gifProperties && (this.gifProperties.frames[this.gifProperties.displayIndex].image = o2.imageData), this.drawingContext.putImageData(o2.imageData, e2, t2, 0, 0, r2, n2);
        }, d.default.Renderer2D.prototype._acuteArcToBezier = function(e2, t2) {
          var r2 = t2 / 2, n2 = Math.cos(r2), o2 = Math.sin(r2), i = 1 / Math.tan(r2), a2 = e2 + r2, s2 = Math.cos(a2), l = Math.sin(a2), u = (4 - n2) / 3, c = o2 + (n2 - u) * i;
          return { ax: Math.cos(e2).toFixed(7), ay: Math.sin(e2).toFixed(7), bx: (u * s2 + c * l).toFixed(7), by: (u * l - c * s2).toFixed(7), cx: (u * s2 - c * l).toFixed(7), cy: (u * l + c * s2).toFixed(7), dx: Math.cos(e2 + t2).toFixed(7), dy: Math.sin(e2 + t2).toFixed(7) };
        }, d.default.Renderer2D.prototype.arc = function(r2, n2, e2, t2, o2, i, a2) {
          var s2 = this.drawingContext, l = e2 / 2, u = t2 / 2, c = 0, d2 = [];
          for (r2 += l, n2 += u; 1e-5 <= i - o2; )
            c = Math.min(i - o2, p.HALF_PI), d2.push(this._acuteArcToBezier(o2, c)), o2 += c;
          return this._doFill && (s2.beginPath(), d2.forEach(function(e3, t3) {
            t3 === 0 && s2.moveTo(r2 + e3.ax * l, n2 + e3.ay * u), s2.bezierCurveTo(r2 + e3.bx * l, n2 + e3.by * u, r2 + e3.cx * l, n2 + e3.cy * u, r2 + e3.dx * l, n2 + e3.dy * u);
          }), a2 !== p.PIE && a2 != null || s2.lineTo(r2, n2), s2.closePath(), s2.fill()), this._doStroke && (s2.beginPath(), d2.forEach(function(e3, t3) {
            t3 === 0 && s2.moveTo(r2 + e3.ax * l, n2 + e3.ay * u), s2.bezierCurveTo(r2 + e3.bx * l, n2 + e3.by * u, r2 + e3.cx * l, n2 + e3.cy * u, r2 + e3.dx * l, n2 + e3.dy * u);
          }), a2 === p.PIE ? (s2.lineTo(r2, n2), s2.closePath()) : a2 === p.CHORD && s2.closePath(), s2.stroke()), this;
        }, d.default.Renderer2D.prototype.ellipse = function(e2) {
          var t2 = this.drawingContext, r2 = this._doFill, n2 = this._doStroke, o2 = parseFloat(e2[0]), i = parseFloat(e2[1]), a2 = parseFloat(e2[2]), s2 = parseFloat(e2[3]);
          if (r2 && !n2) {
            if (this._getFill() === m)
              return this;
          } else if (!r2 && n2 && this._getStroke() === m)
            return this;
          var l = a2 / 2 * 0.5522847498, u = s2 / 2 * 0.5522847498, c = o2 + a2, d2 = i + s2, f2 = o2 + a2 / 2, h = i + s2 / 2;
          t2.beginPath(), t2.moveTo(o2, h), t2.bezierCurveTo(o2, h - u, f2 - l, i, f2, i), t2.bezierCurveTo(f2 + l, i, c, h - u, c, h), t2.bezierCurveTo(c, h + u, f2 + l, d2, f2, d2), t2.bezierCurveTo(f2 - l, d2, o2, h + u, o2, h), r2 && t2.fill(), n2 && t2.stroke();
        }, d.default.Renderer2D.prototype.line = function(e2, t2, r2, n2) {
          var o2 = this.drawingContext;
          return this._doStroke && (this._getStroke() === m || (o2.beginPath(), o2.moveTo(e2, t2), o2.lineTo(r2, n2), o2.stroke())), this;
        }, d.default.Renderer2D.prototype.point = function(e2, t2) {
          var r2 = this.drawingContext;
          if (!this._doStroke)
            return this;
          if (this._getStroke() === m)
            return this;
          var n2 = this._getStroke(), o2 = this._getFill();
          this._setFill(n2), r2.beginPath(), r2.arc(e2, t2, r2.lineWidth / 2, 0, p.TWO_PI, false), r2.fill(), this._setFill(o2);
        }, d.default.Renderer2D.prototype.quad = function(e2, t2, r2, n2, o2, i, a2, s2) {
          var l = this.drawingContext, u = this._doFill, c = this._doStroke;
          if (u && !c) {
            if (this._getFill() === m)
              return this;
          } else if (!u && c && this._getStroke() === m)
            return this;
          return l.beginPath(), l.moveTo(e2, t2), l.lineTo(r2, n2), l.lineTo(o2, i), l.lineTo(a2, s2), l.closePath(), u && l.fill(), c && l.stroke(), this;
        }, d.default.Renderer2D.prototype.rect = function(e2) {
          var t2 = e2[0], r2 = e2[1], n2 = e2[2], o2 = e2[3], i = e2[4], a2 = e2[5], s2 = e2[6], l = e2[7], u = this.drawingContext, c = this._doFill, d2 = this._doStroke;
          if (c && !d2) {
            if (this._getFill() === m)
              return this;
          } else if (!c && d2 && this._getStroke() === m)
            return this;
          if (u.beginPath(), i === void 0)
            u.rect(t2, r2, n2, o2);
          else {
            a2 === void 0 && (a2 = i), s2 === void 0 && (s2 = a2), l === void 0 && (l = s2);
            var f2 = Math.abs(n2), h = Math.abs(o2), p2 = f2 / 2, y = h / 2;
            f2 < 2 * i && (i = p2), h < 2 * i && (i = y), f2 < 2 * a2 && (a2 = p2), h < 2 * a2 && (a2 = y), f2 < 2 * s2 && (s2 = p2), h < 2 * s2 && (s2 = y), f2 < 2 * l && (l = p2), h < 2 * l && (l = y), u.beginPath(), u.moveTo(t2 + i, r2), u.arcTo(t2 + n2, r2, t2 + n2, r2 + o2, a2), u.arcTo(t2 + n2, r2 + o2, t2, r2 + o2, s2), u.arcTo(t2, r2 + o2, t2, r2, l), u.arcTo(t2, r2, t2 + n2, r2, i), u.closePath();
          }
          return this._doFill && u.fill(), this._doStroke && u.stroke(), this;
        }, d.default.Renderer2D.prototype.triangle = function(e2) {
          var t2 = this.drawingContext, r2 = this._doFill, n2 = this._doStroke, o2 = e2[0], i = e2[1], a2 = e2[2], s2 = e2[3], l = e2[4], u = e2[5];
          if (r2 && !n2) {
            if (this._getFill() === m)
              return this;
          } else if (!r2 && n2 && this._getStroke() === m)
            return this;
          t2.beginPath(), t2.moveTo(o2, i), t2.lineTo(a2, s2), t2.lineTo(l, u), t2.closePath(), r2 && t2.fill(), n2 && t2.stroke();
        }, d.default.Renderer2D.prototype.endShape = function(e2, t2, r2, n2, o2, i, a2) {
          if (t2.length === 0)
            return this;
          if (!this._doStroke && !this._doFill)
            return this;
          var s2, l, u, c = e2 === p.CLOSE;
          c && !i && t2.push(t2[0]);
          var d2 = t2.length;
          if (!r2 || a2 !== p.POLYGON && a2 !== null)
            if (!n2 || a2 !== p.POLYGON && a2 !== null)
              if (!o2 || a2 !== p.POLYGON && a2 !== null)
                if (a2 === p.POINTS)
                  for (l = 0; l < d2; l++)
                    s2 = t2[l], this._doStroke && this._pInst.stroke(s2[6]), this._pInst.point(s2[0], s2[1]);
                else if (a2 === p.LINES)
                  for (l = 0; l + 1 < d2; l += 2)
                    s2 = t2[l], this._doStroke && this._pInst.stroke(t2[l + 1][6]), this._pInst.line(s2[0], s2[1], t2[l + 1][0], t2[l + 1][1]);
                else if (a2 === p.TRIANGLES)
                  for (l = 0; l + 2 < d2; l += 3)
                    s2 = t2[l], this.drawingContext.beginPath(), this.drawingContext.moveTo(s2[0], s2[1]), this.drawingContext.lineTo(t2[l + 1][0], t2[l + 1][1]), this.drawingContext.lineTo(t2[l + 2][0], t2[l + 2][1]), this.drawingContext.closePath(), this._doFill && (this._pInst.fill(t2[l + 2][5]), this.drawingContext.fill()), this._doStroke && (this._pInst.stroke(t2[l + 2][6]), this.drawingContext.stroke());
                else if (a2 === p.TRIANGLE_STRIP)
                  for (l = 0; l + 1 < d2; l++)
                    s2 = t2[l], this.drawingContext.beginPath(), this.drawingContext.moveTo(t2[l + 1][0], t2[l + 1][1]), this.drawingContext.lineTo(s2[0], s2[1]), this._doStroke && this._pInst.stroke(t2[l + 1][6]), this._doFill && this._pInst.fill(t2[l + 1][5]), l + 2 < d2 && (this.drawingContext.lineTo(t2[l + 2][0], t2[l + 2][1]), this._doStroke && this._pInst.stroke(t2[l + 2][6]), this._doFill && this._pInst.fill(t2[l + 2][5])), this._doFillStrokeClose(c);
                else if (a2 === p.TRIANGLE_FAN) {
                  if (2 < d2) {
                    for (this.drawingContext.beginPath(), l = 2; l < d2; l++)
                      s2 = t2[l], this.drawingContext.moveTo(t2[0][0], t2[0][1]), this.drawingContext.lineTo(t2[l - 1][0], t2[l - 1][1]), this.drawingContext.lineTo(s2[0], s2[1]), this.drawingContext.lineTo(t2[0][0], t2[0][1]), l < d2 - 1 && (this._doFill && s2[5] !== t2[l + 1][5] || this._doStroke && s2[6] !== t2[l + 1][6]) && (this._doFill && (this._pInst.fill(s2[5]), this.drawingContext.fill(), this._pInst.fill(t2[l + 1][5])), this._doStroke && (this._pInst.stroke(s2[6]), this.drawingContext.stroke(), this._pInst.stroke(t2[l + 1][6])), this.drawingContext.closePath(), this.drawingContext.beginPath());
                    this._doFillStrokeClose(c);
                  }
                } else if (a2 === p.QUADS)
                  for (l = 0; l + 3 < d2; l += 4) {
                    for (s2 = t2[l], this.drawingContext.beginPath(), this.drawingContext.moveTo(s2[0], s2[1]), u = 1; u < 4; u++)
                      this.drawingContext.lineTo(t2[l + u][0], t2[l + u][1]);
                    this.drawingContext.lineTo(s2[0], s2[1]), this._doFill && this._pInst.fill(t2[l + 3][5]), this._doStroke && this._pInst.stroke(t2[l + 3][6]), this._doFillStrokeClose(c);
                  }
                else if (a2 === p.QUAD_STRIP) {
                  if (3 < d2)
                    for (l = 0; l + 1 < d2; l += 2)
                      s2 = t2[l], this.drawingContext.beginPath(), l + 3 < d2 ? (this.drawingContext.moveTo(t2[l + 2][0], t2[l + 2][1]), this.drawingContext.lineTo(s2[0], s2[1]), this.drawingContext.lineTo(t2[l + 1][0], t2[l + 1][1]), this.drawingContext.lineTo(t2[l + 3][0], t2[l + 3][1]), this._doFill && this._pInst.fill(t2[l + 3][5]), this._doStroke && this._pInst.stroke(t2[l + 3][6])) : (this.drawingContext.moveTo(s2[0], s2[1]), this.drawingContext.lineTo(t2[l + 1][0], t2[l + 1][1])), this._doFillStrokeClose(c);
                } else {
                  for (this.drawingContext.beginPath(), this.drawingContext.moveTo(t2[0][0], t2[0][1]), l = 1; l < d2; l++)
                    (s2 = t2[l]).isVert && (s2.moveTo ? this.drawingContext.moveTo(s2[0], s2[1]) : this.drawingContext.lineTo(s2[0], s2[1]));
                  this._doFillStrokeClose(c);
                }
              else {
                for (this.drawingContext.beginPath(), l = 0; l < d2; l++)
                  t2[l].isVert ? t2[l].moveTo ? this.drawingContext.moveTo(t2[l][0], t2[l][1]) : this.drawingContext.lineTo(t2[l][0], t2[l][1]) : this.drawingContext.quadraticCurveTo(t2[l][0], t2[l][1], t2[l][2], t2[l][3]);
                this._doFillStrokeClose(c);
              }
            else {
              for (this.drawingContext.beginPath(), l = 0; l < d2; l++)
                t2[l].isVert ? t2[l].moveTo ? this.drawingContext.moveTo(t2[l][0], t2[l][1]) : this.drawingContext.lineTo(t2[l][0], t2[l][1]) : this.drawingContext.bezierCurveTo(t2[l][0], t2[l][1], t2[l][2], t2[l][3], t2[l][4], t2[l][5]);
              this._doFillStrokeClose(c);
            }
          else if (3 < d2) {
            var f2 = [], h = 1 - this._curveTightness;
            for (this.drawingContext.beginPath(), this.drawingContext.moveTo(t2[1][0], t2[1][1]), l = 1; l + 2 < d2; l++)
              s2 = t2[l], f2[0] = [s2[0], s2[1]], f2[1] = [s2[0] + (h * t2[l + 1][0] - h * t2[l - 1][0]) / 6, s2[1] + (h * t2[l + 1][1] - h * t2[l - 1][1]) / 6], f2[2] = [t2[l + 1][0] + (h * t2[l][0] - h * t2[l + 2][0]) / 6, t2[l + 1][1] + (h * t2[l][1] - h * t2[l + 2][1]) / 6], f2[3] = [t2[l + 1][0], t2[l + 1][1]], this.drawingContext.bezierCurveTo(f2[1][0], f2[1][1], f2[2][0], f2[2][1], f2[3][0], f2[3][1]);
            c && this.drawingContext.lineTo(t2[l + 1][0], t2[l + 1][1]), this._doFillStrokeClose(c);
          }
          return i = o2 = n2 = r2 = false, c && t2.pop(), this;
        }, d.default.Renderer2D.prototype.strokeCap = function(e2) {
          return e2 !== p.ROUND && e2 !== p.SQUARE && e2 !== p.PROJECT || (this.drawingContext.lineCap = e2), this;
        }, d.default.Renderer2D.prototype.strokeJoin = function(e2) {
          return e2 !== p.ROUND && e2 !== p.BEVEL && e2 !== p.MITER || (this.drawingContext.lineJoin = e2), this;
        }, d.default.Renderer2D.prototype.strokeWeight = function(e2) {
          return this.drawingContext.lineWidth = e2 === void 0 || e2 === 0 ? 1e-4 : e2, this;
        }, d.default.Renderer2D.prototype._getFill = function() {
          return this._cachedFillStyle || (this._cachedFillStyle = this.drawingContext.fillStyle), this._cachedFillStyle;
        }, d.default.Renderer2D.prototype._setFill = function(e2) {
          e2 !== this._cachedFillStyle && (this.drawingContext.fillStyle = e2, this._cachedFillStyle = e2);
        }, d.default.Renderer2D.prototype._getStroke = function() {
          return this._cachedStrokeStyle || (this._cachedStrokeStyle = this.drawingContext.strokeStyle), this._cachedStrokeStyle;
        }, d.default.Renderer2D.prototype._setStroke = function(e2) {
          e2 !== this._cachedStrokeStyle && (this.drawingContext.strokeStyle = e2, this._cachedStrokeStyle = e2);
        }, d.default.Renderer2D.prototype.bezier = function(e2, t2, r2, n2, o2, i, a2, s2) {
          return this._pInst.beginShape(), this._pInst.vertex(e2, t2), this._pInst.bezierVertex(r2, n2, o2, i, a2, s2), this._pInst.endShape(), this;
        }, d.default.Renderer2D.prototype.curve = function(e2, t2, r2, n2, o2, i, a2, s2) {
          return this._pInst.beginShape(), this._pInst.curveVertex(e2, t2), this._pInst.curveVertex(r2, n2), this._pInst.curveVertex(o2, i), this._pInst.curveVertex(a2, s2), this._pInst.endShape(), this;
        }, d.default.Renderer2D.prototype._doFillStrokeClose = function(e2) {
          e2 && this.drawingContext.closePath(), this._doFill && this.drawingContext.fill(), this._doStroke && this.drawingContext.stroke();
        }, d.default.Renderer2D.prototype.applyMatrix = function(e2, t2, r2, n2, o2, i) {
          this.drawingContext.transform(e2, t2, r2, n2, o2, i);
        }, d.default.Renderer2D.prototype.resetMatrix = function() {
          return this.drawingContext.setTransform(1, 0, 0, 1, 0, 0), this.drawingContext.scale(this._pInst._pixelDensity, this._pInst._pixelDensity), this;
        }, d.default.Renderer2D.prototype.rotate = function(e2) {
          this.drawingContext.rotate(e2);
        }, d.default.Renderer2D.prototype.scale = function(e2, t2) {
          return this.drawingContext.scale(e2, t2), this;
        }, d.default.Renderer2D.prototype.translate = function(e2, t2) {
          return e2 instanceof d.default.Vector && (t2 = e2.y, e2 = e2.x), this.drawingContext.translate(e2, t2), this;
        }, d.default.Renderer2D.prototype.text = function(e2, t2, r2, n2, o2) {
          var i;
          n2 !== void 0 && this.drawingContext.textBaseline === p.BASELINE && (i = true, this.drawingContext.textBaseline = p.TOP);
          var a2 = d.default.Renderer.prototype.text.apply(this, arguments);
          return i && (this.drawingContext.textBaseline = p.BASELINE), a2;
        }, d.default.Renderer2D.prototype._renderText = function(e2, t2, r2, n2, o2) {
          if (!(o2 <= n2))
            return e2.push(), this._isOpenType() ? this._textFont._renderPath(t2, r2, n2, { renderer: this }) : (this._doStroke && this._strokeSet && this.drawingContext.strokeText(t2, r2, n2), this._doFill && (this._fillSet || this._setFill(p._DEFAULT_TEXT_FILL), this.drawingContext.fillText(t2, r2, n2))), e2.pop(), e2;
        }, d.default.Renderer2D.prototype.textWidth = function(e2) {
          return this._isOpenType() ? this._textFont._textWidth(e2, this._textSize) : this.drawingContext.measureText(e2).width;
        }, d.default.Renderer2D.prototype._applyTextProperties = function() {
          var e2, t2 = this._pInst;
          return this._setProperty("_textAscent", null), this._setProperty("_textDescent", null), e2 = this._textFont, this._isOpenType() && (e2 = this._textFont.font.familyName, this._setProperty("_textStyle", this._textFont.font.styleName)), this.drawingContext.font = "".concat(this._textStyle || "normal", " ").concat(this._textSize || 12, "px ").concat(e2 || "sans-serif"), this.drawingContext.textAlign = this._textAlign, this._textBaseline === p.CENTER ? this.drawingContext.textBaseline = p._CTX_MIDDLE : this.drawingContext.textBaseline = this._textBaseline, t2;
        }, d.default.Renderer2D.prototype.push = function() {
          return this.drawingContext.save(), d.default.Renderer.prototype.push.apply(this);
        }, d.default.Renderer2D.prototype.pop = function(e2) {
          this.drawingContext.restore(), this._cachedFillStyle = this.drawingContext.fillStyle, this._cachedStrokeStyle = this.drawingContext.strokeStyle, d.default.Renderer.prototype.pop.call(this, e2);
        };
        var o = d.default.Renderer2D;
        r.default = o;
      }, { "../image/filters": 281, "./constants": 250, "./main": 260, "./p5.Renderer": 263, "core-js/modules/es.array.concat": 148, "core-js/modules/es.array.fill": 150, "core-js/modules/es.array.for-each": 152, "core-js/modules/es.array.slice": 160, "core-js/modules/es.function.name": 163, "core-js/modules/es.number.to-fixed": 169, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.regexp.to-string": 179 }], 265: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.symbol"), e("core-js/modules/es.symbol.description"), e("core-js/modules/es.symbol.iterator"), e("core-js/modules/es.array.iterator"), e("core-js/modules/es.object.assign"), e("core-js/modules/es.object.to-string"), e("core-js/modules/es.promise"), e("core-js/modules/es.string.iterator"), e("core-js/modules/web.dom-collections.iterator");
        var n, f = (n = e("./main")) && n.__esModule ? n : { default: n };
        f.default.prototype._promisePreloads = [];
        var h = !(f.default.prototype.registerPromisePreload = function(e2) {
          f.default.prototype._promisePreloads.push(e2);
        });
        f.default.prototype._setupPromisePreloads = function() {
          var e2 = true, t2 = false, r2 = void 0;
          try {
            for (var n2, o = this._promisePreloads[Symbol.iterator](); !(e2 = (n2 = o.next()).done); e2 = true) {
              var i2 = n2.value, a = this, s = i2.method, l = i2.addCallbacks, u = i2.legacyPreloadSetup, c = i2.target || this, d = c[s].bind(c);
              if (c === f.default.prototype) {
                if (h)
                  continue;
                a = null, d = c[s];
              }
              if (c[s] = this._wrapPromisePreload(a, d, l), u)
                c[u.method] = this._legacyPreloadGenerator(a, u, c[s]);
            }
          } catch (e3) {
            t2 = true, r2 = e3;
          } finally {
            try {
              e2 || o.return == null || o.return();
            } finally {
              if (t2)
                throw r2;
            }
          }
          h = true;
        }, f.default.prototype._wrapPromisePreload = function(e2, l, u) {
          var t2 = function() {
            var e3 = this;
            this._incrementPreload();
            for (var t3 = null, r2 = null, n2 = arguments.length, o = new Array(n2), i2 = 0; i2 < n2; i2++)
              o[i2] = arguments[i2];
            if (u)
              for (var a = o.length - 1; 0 <= a && !r2 && typeof o[a] == "function"; a--)
                r2 = t3, t3 = o.pop();
            var s = Promise.resolve(l.apply(this, o));
            return t3 && s.then(t3), r2 && s.catch(r2), s.then(function() {
              return e3._decrementPreload();
            }), s;
          };
          return e2 && (t2 = t2.bind(e2)), t2;
        };
        function i() {
          return {};
        }
        f.default.prototype._legacyPreloadGenerator = function(e2, t2, n2) {
          var o = t2.createBaseObject || i, r2 = function() {
            var t3 = this;
            this._incrementPreload();
            var r3 = o.apply(this, arguments);
            return n2.apply(this, arguments).then(function(e3) {
              Object.assign(r3, e3), t3._decrementPreload();
            }), r3;
          };
          return e2 && (r2 = r2.bind(e2)), r2;
        };
      }, { "./main": 260, "core-js/modules/es.array.iterator": 156, "core-js/modules/es.object.assign": 170, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.promise": 175, "core-js/modules/es.string.iterator": 183, "core-js/modules/es.symbol": 193, "core-js/modules/es.symbol.description": 191, "core-js/modules/es.symbol.iterator": 192, "core-js/modules/web.dom-collections.iterator": 226 }], 266: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.symbol"), e("core-js/modules/es.symbol.description"), e("core-js/modules/es.symbol.iterator"), e("core-js/modules/es.array.filter"), e("core-js/modules/es.array.iterator"), e("core-js/modules/es.object.to-string"), e("core-js/modules/es.string.iterator"), e("core-js/modules/web.dom-collections.iterator"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, l = (n = e("./main")) && n.__esModule ? n : { default: n }, u = function(e2) {
          if (e2 && e2.__esModule)
            return e2;
          if (e2 === null || s(e2) !== "object" && typeof e2 != "function")
            return { default: e2 };
          var t2 = a();
          if (t2 && t2.has(e2))
            return t2.get(e2);
          var r2 = {}, n2 = Object.defineProperty && Object.getOwnPropertyDescriptor;
          for (var o2 in e2)
            if (Object.prototype.hasOwnProperty.call(e2, o2)) {
              var i = n2 ? Object.getOwnPropertyDescriptor(e2, o2) : null;
              i && (i.get || i.set) ? Object.defineProperty(r2, o2, i) : r2[o2] = e2[o2];
            }
          r2.default = e2, t2 && t2.set(e2, r2);
          return r2;
        }(e("./constants"));
        function a() {
          if (typeof WeakMap != "function")
            return null;
          var e2 = new WeakMap();
          return a = function() {
            return e2;
          }, e2;
        }
        function s(e2) {
          return (s = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e3) {
            return typeof e3;
          } : function(e3) {
            return e3 && typeof Symbol == "function" && e3.constructor === Symbol && e3 !== Symbol.prototype ? "symbol" : typeof e3;
          })(e2);
        }
        e("./p5.Graphics"), e("./p5.Renderer2D"), e("../webgl/p5.RendererGL");
        var c = "defaultCanvas0";
        l.default.prototype.createCanvas = function(e2, t2, r2) {
          l.default._validateParameters("createCanvas", arguments);
          var n2, o2 = r2 || u.P2D;
          if (o2 === u.WEBGL) {
            if (n2 = document.getElementById(c)) {
              n2.parentNode.removeChild(n2);
              var i = this._renderer;
              this._elements = this._elements.filter(function(e3) {
                return e3 !== i;
              });
            }
            (n2 = document.createElement("canvas")).id = c, n2.classList.add("p5Canvas");
          } else if (this._defaultGraphicsCreated)
            n2 = this.canvas;
          else {
            n2 = document.createElement("canvas");
            for (var a2 = 0; document.getElementById("defaultCanvas".concat(a2)); )
              a2++;
            c = "defaultCanvas".concat(a2), n2.id = c, n2.classList.add("p5Canvas");
          }
          if (this._setupDone || (n2.dataset.hidden = true, n2.style.visibility = "hidden"), this._userNode)
            this._userNode.appendChild(n2);
          else {
            if (document.getElementsByTagName("main").length === 0) {
              var s2 = document.createElement("main");
              document.body.appendChild(s2);
            }
            document.getElementsByTagName("main")[0].appendChild(n2);
          }
          return o2 === u.WEBGL ? (this._setProperty("_renderer", new l.default.RendererGL(n2, this, true)), this._elements.push(this._renderer)) : this._defaultGraphicsCreated || (this._setProperty("_renderer", new l.default.Renderer2D(n2, this, true)), this._defaultGraphicsCreated = true, this._elements.push(this._renderer)), this._renderer.resize(e2, t2), this._renderer._applyDefaults(), this._renderer;
        }, l.default.prototype.resizeCanvas = function(e2, t2, r2) {
          if (l.default._validateParameters("resizeCanvas", arguments), this._renderer) {
            var n2 = {};
            for (var o2 in this.drawingContext) {
              var i = this.drawingContext[o2];
              s(i) !== "object" && typeof i != "function" && (n2[o2] = i);
            }
            for (var a2 in this._renderer.resize(e2, t2), this.width = e2, this.height = t2, n2)
              try {
                this.drawingContext[a2] = n2[a2];
              } catch (e3) {
              }
            r2 || this.redraw();
          }
          this._addAccsOutput() && this._updateAccsOutput();
        }, l.default.prototype.noCanvas = function() {
          this.canvas && this.canvas.parentNode.removeChild(this.canvas);
        }, l.default.prototype.createGraphics = function(e2, t2, r2) {
          return l.default._validateParameters("createGraphics", arguments), new l.default.Graphics(e2, t2, r2, this);
        }, l.default.prototype.blendMode = function(e2) {
          l.default._validateParameters("blendMode", arguments), e2 === u.NORMAL && (console.warn("NORMAL has been deprecated for use in blendMode. defaulting to BLEND instead."), e2 = u.BLEND), this._renderer.blendMode(e2);
        };
        var o = l.default;
        r.default = o;
      }, { "../webgl/p5.RendererGL": 314, "./constants": 250, "./main": 260, "./p5.Graphics": 262, "./p5.Renderer2D": 264, "core-js/modules/es.array.filter": 151, "core-js/modules/es.array.iterator": 156, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.string.iterator": 183, "core-js/modules/es.symbol": 193, "core-js/modules/es.symbol.description": 191, "core-js/modules/es.symbol.iterator": 192, "core-js/modules/web.dom-collections.iterator": 226 }], 267: [function(e, t, r) {
        "use strict";
        function a(e2) {
          return (a = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e3) {
            return typeof e3;
          } : function(e3) {
            return e3 && typeof Symbol == "function" && e3.constructor === Symbol && e3 !== Symbol.prototype ? "symbol" : typeof e3;
          })(e2);
        }
        e("core-js/modules/es.array.slice"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var c = n(e("../main")), s = function(e2) {
          if (e2 && e2.__esModule)
            return e2;
          if (e2 === null || a(e2) !== "object" && typeof e2 != "function")
            return { default: e2 };
          var t2 = l();
          if (t2 && t2.has(e2))
            return t2.get(e2);
          var r2 = {}, n2 = Object.defineProperty && Object.getOwnPropertyDescriptor;
          for (var o2 in e2)
            if (Object.prototype.hasOwnProperty.call(e2, o2)) {
              var i = n2 ? Object.getOwnPropertyDescriptor(e2, o2) : null;
              i && (i.get || i.set) ? Object.defineProperty(r2, o2, i) : r2[o2] = e2[o2];
            }
          r2.default = e2, t2 && t2.set(e2, r2);
          return r2;
        }(e("../constants")), d = n(e("../helpers"));
        function l() {
          if (typeof WeakMap != "function")
            return null;
          var e2 = new WeakMap();
          return l = function() {
            return e2;
          }, e2;
        }
        function n(e2) {
          return e2 && e2.__esModule ? e2 : { default: e2 };
        }
        e("../friendly_errors/fes_core"), e("../friendly_errors/file_errors"), e("../friendly_errors/validate_params"), c.default.prototype._normalizeArcAngles = function(e2, t2, r2, n2, o2) {
          var i;
          return e2 -= s.TWO_PI * Math.floor(e2 / s.TWO_PI), t2 -= s.TWO_PI * Math.floor(t2 / s.TWO_PI), i = Math.min(Math.abs(e2 - t2), s.TWO_PI - Math.abs(e2 - t2)), o2 && (e2 = e2 <= s.HALF_PI ? Math.atan(r2 / n2 * Math.tan(e2)) : e2 > s.HALF_PI && e2 <= 3 * s.HALF_PI ? Math.atan(r2 / n2 * Math.tan(e2)) + s.PI : Math.atan(r2 / n2 * Math.tan(e2)) + s.TWO_PI, t2 = t2 <= s.HALF_PI ? Math.atan(r2 / n2 * Math.tan(t2)) : t2 > s.HALF_PI && t2 <= 3 * s.HALF_PI ? Math.atan(r2 / n2 * Math.tan(t2)) + s.PI : Math.atan(r2 / n2 * Math.tan(t2)) + s.TWO_PI), t2 < e2 && (t2 += s.TWO_PI), { start: e2, stop: t2, correspondToSamePoint: i < 1e-5 };
        }, c.default.prototype.arc = function(e2, t2, r2, n2, o2, i, a2, s2) {
          if (c.default._validateParameters("arc", arguments), !this._renderer._doStroke && !this._renderer._doFill)
            return this;
          if (o2 === i)
            return this;
          o2 = this._toRadians(o2), i = this._toRadians(i), r2 = Math.abs(r2), n2 = Math.abs(n2);
          var l2 = d.default.modeAdjust(e2, t2, r2, n2, this._renderer._ellipseMode), u = this._normalizeArcAngles(o2, i, l2.w, l2.h, true);
          return u.correspondToSamePoint ? this._renderer.ellipse([l2.x, l2.y, l2.w, l2.h, s2]) : (this._renderer.arc(l2.x, l2.y, l2.w, l2.h, u.start, u.stop, a2, s2), (this._accessibleOutputs.grid || this._accessibleOutputs.text) && this._accsOutput("arc", [l2.x, l2.y, l2.w, l2.h, u.start, u.stop, a2])), this;
        }, c.default.prototype.ellipse = function(e2, t2, r2, n2, o2) {
          return c.default._validateParameters("ellipse", arguments), this._renderEllipse.apply(this, arguments);
        }, c.default.prototype.circle = function() {
          c.default._validateParameters("circle", arguments);
          var e2 = Array.prototype.slice.call(arguments, 0, 2);
          return e2.push(arguments[2]), e2.push(arguments[2]), this._renderEllipse.apply(this, e2);
        }, c.default.prototype._renderEllipse = function(e2, t2, r2, n2, o2) {
          if (!this._renderer._doStroke && !this._renderer._doFill)
            return this;
          r2 < 0 && (r2 = Math.abs(r2)), n2 === void 0 ? n2 = r2 : n2 < 0 && (n2 = Math.abs(n2));
          var i = d.default.modeAdjust(e2, t2, r2, n2, this._renderer._ellipseMode);
          return this._renderer.ellipse([i.x, i.y, i.w, i.h, o2]), (this._accessibleOutputs.grid || this._accessibleOutputs.text) && this._accsOutput("ellipse", [i.x, i.y, i.w, i.h]), this;
        }, c.default.prototype.line = function() {
          for (var e2 = arguments.length, t2 = new Array(e2), r2 = 0; r2 < e2; r2++)
            t2[r2] = arguments[r2];
          var n2;
          c.default._validateParameters("line", t2), this._renderer._doStroke && (n2 = this._renderer).line.apply(n2, t2);
          return (this._accessibleOutputs.grid || this._accessibleOutputs.text) && this._accsOutput("line", t2), this;
        }, c.default.prototype.point = function() {
          for (var e2 = arguments.length, t2 = new Array(e2), r2 = 0; r2 < e2; r2++)
            t2[r2] = arguments[r2];
          var n2;
          c.default._validateParameters("point", t2), this._renderer._doStroke && (t2.length === 1 && t2[0] instanceof c.default.Vector ? this._renderer.point.call(this._renderer, t2[0].x, t2[0].y, t2[0].z) : ((n2 = this._renderer).point.apply(n2, t2), (this._accessibleOutputs.grid || this._accessibleOutputs.text) && this._accsOutput("point", t2)));
          return this;
        }, c.default.prototype.quad = function() {
          for (var e2 = arguments.length, t2 = new Array(e2), r2 = 0; r2 < e2; r2++)
            t2[r2] = arguments[r2];
          var n2;
          c.default._validateParameters("quad", t2), (this._renderer._doStroke || this._renderer._doFill) && (this._renderer.isP3D && t2.length <= 12 ? this._renderer.quad.call(this._renderer, t2[0], t2[1], 0, t2[2], t2[3], 0, t2[4], t2[5], 0, t2[6], t2[7], 0, t2[8], t2[9]) : ((n2 = this._renderer).quad.apply(n2, t2), (this._accessibleOutputs.grid || this._accessibleOutputs.text) && this._accsOutput("quadrilateral", t2)));
          return this;
        }, c.default.prototype.rect = function() {
          return c.default._validateParameters("rect", arguments), this._renderRect.apply(this, arguments);
        }, c.default.prototype.square = function(e2, t2, r2, n2, o2, i, a2) {
          return c.default._validateParameters("square", arguments), this._renderRect.call(this, e2, t2, r2, r2, n2, o2, i, a2);
        }, c.default.prototype._renderRect = function() {
          if (this._renderer._doStroke || this._renderer._doFill) {
            arguments.length === 3 && (arguments[3] = arguments[2]);
            for (var e2 = d.default.modeAdjust(arguments[0], arguments[1], arguments[2], arguments[3], this._renderer._rectMode), t2 = [e2.x, e2.y, e2.w, e2.h], r2 = 4; r2 < arguments.length; r2++)
              t2[r2] = arguments[r2];
            this._renderer.rect(t2), (this._accessibleOutputs.grid || this._accessibleOutputs.text) && this._accsOutput("rectangle", [e2.x, e2.y, e2.w, e2.h]);
          }
          return this;
        }, c.default.prototype.triangle = function() {
          for (var e2 = arguments.length, t2 = new Array(e2), r2 = 0; r2 < e2; r2++)
            t2[r2] = arguments[r2];
          return c.default._validateParameters("triangle", t2), (this._renderer._doStroke || this._renderer._doFill) && this._renderer.triangle(t2), (this._accessibleOutputs.grid || this._accessibleOutputs.text) && this._accsOutput("triangle", t2), this;
        };
        var o = c.default;
        r.default = o;
      }, { "../constants": 250, "../friendly_errors/fes_core": 252, "../friendly_errors/file_errors": 253, "../friendly_errors/validate_params": 255, "../helpers": 256, "../main": 260, "core-js/modules/es.array.slice": 160 }], 268: [function(e, t, r) {
        "use strict";
        function a(e2) {
          return (a = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e3) {
            return typeof e3;
          } : function(e3) {
            return e3 && typeof Symbol == "function" && e3.constructor === Symbol && e3 !== Symbol.prototype ? "symbol" : typeof e3;
          })(e2);
        }
        Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, o = (n = e("../main")) && n.__esModule ? n : { default: n }, i = function(e2) {
          if (e2 && e2.__esModule)
            return e2;
          if (e2 === null || a(e2) !== "object" && typeof e2 != "function")
            return { default: e2 };
          var t2 = s();
          if (t2 && t2.has(e2))
            return t2.get(e2);
          var r2 = {}, n2 = Object.defineProperty && Object.getOwnPropertyDescriptor;
          for (var o2 in e2)
            if (Object.prototype.hasOwnProperty.call(e2, o2)) {
              var i2 = n2 ? Object.getOwnPropertyDescriptor(e2, o2) : null;
              i2 && (i2.get || i2.set) ? Object.defineProperty(r2, o2, i2) : r2[o2] = e2[o2];
            }
          r2.default = e2, t2 && t2.set(e2, r2);
          return r2;
        }(e("../constants"));
        function s() {
          if (typeof WeakMap != "function")
            return null;
          var e2 = new WeakMap();
          return s = function() {
            return e2;
          }, e2;
        }
        o.default.prototype.ellipseMode = function(e2) {
          return o.default._validateParameters("ellipseMode", arguments), e2 !== i.CORNER && e2 !== i.CORNERS && e2 !== i.RADIUS && e2 !== i.CENTER || (this._renderer._ellipseMode = e2), this;
        }, o.default.prototype.noSmooth = function() {
          return this.setAttributes("antialias", false), this._renderer.isP3D || "imageSmoothingEnabled" in this.drawingContext && (this.drawingContext.imageSmoothingEnabled = false), this;
        }, o.default.prototype.rectMode = function(e2) {
          return o.default._validateParameters("rectMode", arguments), e2 !== i.CORNER && e2 !== i.CORNERS && e2 !== i.RADIUS && e2 !== i.CENTER || (this._renderer._rectMode = e2), this;
        }, o.default.prototype.smooth = function() {
          return this.setAttributes("antialias", true), this._renderer.isP3D || "imageSmoothingEnabled" in this.drawingContext && (this.drawingContext.imageSmoothingEnabled = true), this;
        }, o.default.prototype.strokeCap = function(e2) {
          return o.default._validateParameters("strokeCap", arguments), e2 !== i.ROUND && e2 !== i.SQUARE && e2 !== i.PROJECT || this._renderer.strokeCap(e2), this;
        }, o.default.prototype.strokeJoin = function(e2) {
          return o.default._validateParameters("strokeJoin", arguments), e2 !== i.ROUND && e2 !== i.BEVEL && e2 !== i.MITER || this._renderer.strokeJoin(e2), this;
        }, o.default.prototype.strokeWeight = function(e2) {
          return o.default._validateParameters("strokeWeight", arguments), this._renderer.strokeWeight(e2), this;
        };
        var l = o.default;
        r.default = l;
      }, { "../constants": 250, "../main": 260 }], 269: [function(e, t, r) {
        "use strict";
        Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, s = (n = e("../main")) && n.__esModule ? n : { default: n };
        e("../friendly_errors/fes_core"), e("../friendly_errors/file_errors"), e("../friendly_errors/validate_params"), s.default.prototype.bezier = function() {
          for (var e2, t2 = arguments.length, r2 = new Array(t2), n2 = 0; n2 < t2; n2++)
            r2[n2] = arguments[n2];
          return s.default._validateParameters("bezier", r2), (this._renderer._doStroke || this._renderer._doFill) && (e2 = this._renderer).bezier.apply(e2, r2), this;
        }, s.default.prototype.bezierDetail = function(e2) {
          return s.default._validateParameters("bezierDetail", arguments), this._bezierDetail = e2, this;
        }, s.default.prototype.bezierPoint = function(e2, t2, r2, n2, o2) {
          s.default._validateParameters("bezierPoint", arguments);
          var i = 1 - o2;
          return Math.pow(i, 3) * e2 + 3 * Math.pow(i, 2) * o2 * t2 + 3 * i * Math.pow(o2, 2) * r2 + Math.pow(o2, 3) * n2;
        }, s.default.prototype.bezierTangent = function(e2, t2, r2, n2, o2) {
          s.default._validateParameters("bezierTangent", arguments);
          var i = 1 - o2;
          return 3 * n2 * Math.pow(o2, 2) - 3 * r2 * Math.pow(o2, 2) + 6 * r2 * i * o2 - 6 * t2 * i * o2 + 3 * t2 * Math.pow(i, 2) - 3 * e2 * Math.pow(i, 2);
        }, s.default.prototype.curve = function() {
          for (var e2 = arguments.length, t2 = new Array(e2), r2 = 0; r2 < e2; r2++)
            t2[r2] = arguments[r2];
          var n2;
          s.default._validateParameters("curve", t2), this._renderer._doStroke && (n2 = this._renderer).curve.apply(n2, t2);
          return this;
        }, s.default.prototype.curveDetail = function(e2) {
          return s.default._validateParameters("curveDetail", arguments), this._curveDetail = e2 < 3 ? 3 : e2, this;
        }, s.default.prototype.curveTightness = function(e2) {
          return s.default._validateParameters("curveTightness", arguments), this._renderer._curveTightness = e2, this;
        }, s.default.prototype.curvePoint = function(e2, t2, r2, n2, o2) {
          s.default._validateParameters("curvePoint", arguments);
          var i = o2 * o2 * o2, a = o2 * o2;
          return e2 * (-0.5 * i + a - 0.5 * o2) + t2 * (1.5 * i - 2.5 * a + 1) + r2 * (-1.5 * i + 2 * a + 0.5 * o2) + n2 * (0.5 * i - 0.5 * a);
        }, s.default.prototype.curveTangent = function(e2, t2, r2, n2, o2) {
          s.default._validateParameters("curveTangent", arguments);
          var i = o2 * o2;
          return e2 * (-3 * i / 2 + 2 * o2 - 0.5) + t2 * (9 * i / 2 - 5 * o2) + r2 * (-9 * i / 2 + 4 * o2 + 0.5) + n2 * (3 * i / 2 - o2);
        };
        var o = s.default;
        r.default = o;
      }, { "../friendly_errors/fes_core": 252, "../friendly_errors/file_errors": 253, "../friendly_errors/validate_params": 255, "../main": 260 }], 270: [function(e, t, r) {
        "use strict";
        function a(e2) {
          return (a = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e3) {
            return typeof e3;
          } : function(e3) {
            return e3 && typeof Symbol == "function" && e3.constructor === Symbol && e3 !== Symbol.prototype ? "symbol" : typeof e3;
          })(e2);
        }
        e("core-js/modules/es.array.slice"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, s = (n = e("../main")) && n.__esModule ? n : { default: n }, l = function(e2) {
          if (e2 && e2.__esModule)
            return e2;
          if (e2 === null || a(e2) !== "object" && typeof e2 != "function")
            return { default: e2 };
          var t2 = u();
          if (t2 && t2.has(e2))
            return t2.get(e2);
          var r2 = {}, n2 = Object.defineProperty && Object.getOwnPropertyDescriptor;
          for (var o2 in e2)
            if (Object.prototype.hasOwnProperty.call(e2, o2)) {
              var i2 = n2 ? Object.getOwnPropertyDescriptor(e2, o2) : null;
              i2 && (i2.get || i2.set) ? Object.defineProperty(r2, o2, i2) : r2[o2] = e2[o2];
            }
          r2.default = e2, t2 && t2.set(e2, r2);
          return r2;
        }(e("../constants"));
        function u() {
          if (typeof WeakMap != "function")
            return null;
          var e2 = new WeakMap();
          return u = function() {
            return e2;
          }, e2;
        }
        var o = null, c = [], d = [], f = false, i = false, h = false, p = false, y = true;
        s.default.prototype.beginContour = function() {
          return d = [], p = true, this;
        }, s.default.prototype.beginShape = function(e2) {
          var t2;
          (s.default._validateParameters("beginShape", arguments), this._renderer.isP3D) ? (t2 = this._renderer).beginShape.apply(t2, arguments) : (o = e2 === l.POINTS || e2 === l.LINES || e2 === l.TRIANGLES || e2 === l.TRIANGLE_FAN || e2 === l.TRIANGLE_STRIP || e2 === l.QUADS || e2 === l.QUAD_STRIP ? e2 : null, c = [], d = []);
          return this;
        }, s.default.prototype.bezierVertex = function() {
          for (var e2 = arguments.length, t2 = new Array(e2), r2 = 0; r2 < e2; r2++)
            t2[r2] = arguments[r2];
          var n2;
          if (s.default._validateParameters("bezierVertex", t2), this._renderer.isP3D)
            (n2 = this._renderer).bezierVertex.apply(n2, t2);
          else if (c.length === 0)
            s.default._friendlyError("vertex() must be used once before calling bezierVertex()", "bezierVertex");
          else {
            f = true;
            for (var o2 = [], i2 = 0; i2 < t2.length; i2++)
              o2[i2] = t2[i2];
            o2.isVert = false, p ? d.push(o2) : c.push(o2);
          }
          return this;
        }, s.default.prototype.curveVertex = function() {
          for (var e2 = arguments.length, t2 = new Array(e2), r2 = 0; r2 < e2; r2++)
            t2[r2] = arguments[r2];
          var n2;
          (s.default._validateParameters("curveVertex", t2), this._renderer.isP3D) ? (n2 = this._renderer).curveVertex.apply(n2, t2) : (i = true, this.vertex(t2[0], t2[1]));
          return this;
        }, s.default.prototype.endContour = function() {
          var e2 = d[0].slice();
          e2.isVert = d[0].isVert, e2.moveTo = false, d.push(e2), y && (c.push(c[0]), y = false);
          for (var t2 = 0; t2 < d.length; t2++)
            c.push(d[t2]);
          return this;
        }, s.default.prototype.endShape = function(e2) {
          if (s.default._validateParameters("endShape", arguments), this._renderer.isP3D)
            this._renderer.endShape(e2, i, f, h, p, o);
          else {
            if (c.length === 0)
              return this;
            if (!this._renderer._doStroke && !this._renderer._doFill)
              return this;
            var t2 = e2 === l.CLOSE;
            t2 && !p && c.push(c[0]), this._renderer.endShape(e2, c, i, f, h, p, o), y = !(p = h = f = i = false), t2 && c.pop();
          }
          return this;
        }, s.default.prototype.quadraticVertex = function() {
          for (var e2 = arguments.length, t2 = new Array(e2), r2 = 0; r2 < e2; r2++)
            t2[r2] = arguments[r2];
          if (s.default._validateParameters("quadraticVertex", t2), this._renderer.isP3D) {
            var n2;
            (n2 = this._renderer).quadraticVertex.apply(n2, t2);
          } else {
            if (this._contourInited) {
              var o2 = {};
              return o2.x = t2[0], o2.y = t2[1], o2.x3 = t2[2], o2.y3 = t2[3], o2.type = l.QUADRATIC, this._contourVertices.push(o2), this;
            }
            if (0 < c.length) {
              h = true;
              for (var i2 = [], a2 = 0; a2 < t2.length; a2++)
                i2[a2] = t2[a2];
              i2.isVert = false, p ? d.push(i2) : c.push(i2);
            } else
              s.default._friendlyError("vertex() must be used once before calling quadraticVertex()", "quadraticVertex");
          }
          return this;
        }, s.default.prototype.vertex = function(e2, t2, r2, n2, o2) {
          if (this._renderer.isP3D) {
            var i2;
            (i2 = this._renderer).vertex.apply(i2, arguments);
          } else {
            var a2 = [];
            a2.isVert = true, a2[0] = e2, a2[1] = t2, a2[2] = 0, a2[3] = 0, a2[4] = 0, a2[5] = this._renderer._getFill(), a2[6] = this._renderer._getStroke(), r2 && (a2.moveTo = r2), p ? (d.length === 0 && (a2.moveTo = true), d.push(a2)) : c.push(a2);
          }
          return this;
        }, s.default.prototype.normal = function(e2, t2, r2) {
          var n2;
          return this._assert3d("normal"), s.default._validateParameters("normal", arguments), (n2 = this._renderer).normal.apply(n2, arguments), this;
        };
        var m = s.default;
        r.default = m;
      }, { "../constants": 250, "../main": 260, "core-js/modules/es.array.slice": 160 }], 271: [function(e, t, r) {
        "use strict";
        function n(e2) {
          return (n = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e3) {
            return typeof e3;
          } : function(e3) {
            return e3 && typeof Symbol == "function" && e3.constructor === Symbol && e3 !== Symbol.prototype ? "symbol" : typeof e3;
          })(e2);
        }
        e("core-js/modules/es.symbol"), e("core-js/modules/es.symbol.description"), e("core-js/modules/es.symbol.iterator"), e("core-js/modules/es.array.filter"), e("core-js/modules/es.array.iterator"), e("core-js/modules/es.array.slice"), e("core-js/modules/es.object.assign"), e("core-js/modules/es.object.keys"), e("core-js/modules/es.object.to-string"), e("core-js/modules/es.string.iterator"), e("core-js/modules/es.typed-array.uint8-clamped-array"), e("core-js/modules/es.typed-array.copy-within"), e("core-js/modules/es.typed-array.every"), e("core-js/modules/es.typed-array.fill"), e("core-js/modules/es.typed-array.filter"), e("core-js/modules/es.typed-array.find"), e("core-js/modules/es.typed-array.find-index"), e("core-js/modules/es.typed-array.for-each"), e("core-js/modules/es.typed-array.includes"), e("core-js/modules/es.typed-array.index-of"), e("core-js/modules/es.typed-array.iterator"), e("core-js/modules/es.typed-array.join"), e("core-js/modules/es.typed-array.last-index-of"), e("core-js/modules/es.typed-array.map"), e("core-js/modules/es.typed-array.reduce"), e("core-js/modules/es.typed-array.reduce-right"), e("core-js/modules/es.typed-array.reverse"), e("core-js/modules/es.typed-array.set"), e("core-js/modules/es.typed-array.slice"), e("core-js/modules/es.typed-array.some"), e("core-js/modules/es.typed-array.sort"), e("core-js/modules/es.typed-array.subarray"), e("core-js/modules/es.typed-array.to-locale-string"), e("core-js/modules/es.typed-array.to-string"), e("core-js/modules/web.dom-collections.iterator"), window.requestAnimationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(e2, t2) {
          window.setTimeout(e2, 1e3 / 60);
        }, typeof Uint8ClampedArray == "undefined" || Uint8ClampedArray.prototype.slice || Object.defineProperty(Uint8ClampedArray.prototype, "slice", { value: Array.prototype.slice, writable: true, configurable: true, enumerable: false }), function() {
          if (!Object.assign) {
            var s = Object.keys, e2 = Object.defineProperty, l = typeof Symbol == "function" && n(Symbol()) === "symbol", r2 = Object.prototype.propertyIsEnumerable, u = function(t2) {
              return function(e3) {
                return r2.call(t2, e3);
              };
            };
            e2(Object, "assign", { value: function(e3, t2) {
              if (e3 == null)
                throw new TypeError("target must be an object");
              var r3, n2, o, i, a = Object(e3);
              for (r3 = 1; r3 < arguments.length; ++r3)
                for (n2 = Object(arguments[r3]), i = s(n2), l && Object.getOwnPropertySymbols && i.push.apply(i, Object.getOwnPropertySymbols(n2).filter(u(n2))), o = 0; o < i.length; ++o)
                  a[i[o]] = n2[i[o]];
              return a;
            }, configurable: true, enumerable: false, writable: true });
          }
        }();
      }, { "core-js/modules/es.array.filter": 151, "core-js/modules/es.array.iterator": 156, "core-js/modules/es.array.slice": 160, "core-js/modules/es.object.assign": 170, "core-js/modules/es.object.keys": 173, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.string.iterator": 183, "core-js/modules/es.symbol": 193, "core-js/modules/es.symbol.description": 191, "core-js/modules/es.symbol.iterator": 192, "core-js/modules/es.typed-array.copy-within": 194, "core-js/modules/es.typed-array.every": 195, "core-js/modules/es.typed-array.fill": 196, "core-js/modules/es.typed-array.filter": 197, "core-js/modules/es.typed-array.find": 199, "core-js/modules/es.typed-array.find-index": 198, "core-js/modules/es.typed-array.for-each": 202, "core-js/modules/es.typed-array.includes": 203, "core-js/modules/es.typed-array.index-of": 204, "core-js/modules/es.typed-array.iterator": 207, "core-js/modules/es.typed-array.join": 208, "core-js/modules/es.typed-array.last-index-of": 209, "core-js/modules/es.typed-array.map": 210, "core-js/modules/es.typed-array.reduce": 212, "core-js/modules/es.typed-array.reduce-right": 211, "core-js/modules/es.typed-array.reverse": 213, "core-js/modules/es.typed-array.set": 214, "core-js/modules/es.typed-array.slice": 215, "core-js/modules/es.typed-array.some": 216, "core-js/modules/es.typed-array.sort": 217, "core-js/modules/es.typed-array.subarray": 218, "core-js/modules/es.typed-array.to-locale-string": 219, "core-js/modules/es.typed-array.to-string": 220, "core-js/modules/es.typed-array.uint8-clamped-array": 224, "core-js/modules/web.dom-collections.iterator": 226 }], 272: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.array.for-each"), e("core-js/modules/es.object.assign"), e("core-js/modules/web.dom-collections.for-each"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, o = (n = e("./main")) && n.__esModule ? n : { default: n };
        o.default.prototype.noLoop = function() {
          this._loop = false;
        }, o.default.prototype.loop = function() {
          this._loop || (this._loop = true, this._setupDone && this._draw());
        }, o.default.prototype.isLooping = function() {
          return this._loop;
        }, o.default.prototype.push = function() {
          this._styles.push({ props: { _colorMode: this._colorMode }, renderer: this._renderer.push() });
        }, o.default.prototype.pop = function() {
          var e2 = this._styles.pop();
          e2 ? (this._renderer.pop(e2.renderer), Object.assign(this, e2.props)) : console.warn("pop() was called without matching push()");
        }, o.default.prototype.redraw = function(e2) {
          if (!this._inUserDraw && this._setupDone) {
            var t2 = parseInt(e2);
            (isNaN(t2) || t2 < 1) && (t2 = 1);
            var r2 = this._isGlobal ? window : this;
            if (typeof r2.draw == "function") {
              r2.setup === void 0 && r2.scale(r2._pixelDensity, r2._pixelDensity);
              for (var n2 = function(e3) {
                e3.call(r2);
              }, o2 = 0; o2 < t2; o2++) {
                r2.resetMatrix(), (this._accessibleOutputs.grid || this._accessibleOutputs.text) && this._updateAccsOutput(), r2._renderer.isP3D && r2._renderer._update(), r2._setProperty("frameCount", r2.frameCount + 1), r2._registeredMethods.pre.forEach(n2), this._inUserDraw = true;
                try {
                  r2.draw();
                } finally {
                  this._inUserDraw = false;
                }
                r2._registeredMethods.post.forEach(n2);
              }
            }
          }
        };
        var i = o.default;
        r.default = i;
      }, { "./main": 260, "core-js/modules/es.array.for-each": 152, "core-js/modules/es.object.assign": 170, "core-js/modules/web.dom-collections.for-each": 225 }], 273: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.symbol"), e("core-js/modules/es.symbol.description"), e("core-js/modules/es.symbol.iterator"), e("core-js/modules/es.array.from"), e("core-js/modules/es.array.iterator"), e("core-js/modules/es.object.get-prototype-of"), e("core-js/modules/es.object.to-string"), e("core-js/modules/es.regexp.to-string"), e("core-js/modules/es.string.iterator"), e("core-js/modules/es.typed-array.uint8-array"), e("core-js/modules/es.typed-array.copy-within"), e("core-js/modules/es.typed-array.every"), e("core-js/modules/es.typed-array.fill"), e("core-js/modules/es.typed-array.filter"), e("core-js/modules/es.typed-array.find"), e("core-js/modules/es.typed-array.find-index"), e("core-js/modules/es.typed-array.for-each"), e("core-js/modules/es.typed-array.includes"), e("core-js/modules/es.typed-array.index-of"), e("core-js/modules/es.typed-array.iterator"), e("core-js/modules/es.typed-array.join"), e("core-js/modules/es.typed-array.last-index-of"), e("core-js/modules/es.typed-array.map"), e("core-js/modules/es.typed-array.reduce"), e("core-js/modules/es.typed-array.reduce-right"), e("core-js/modules/es.typed-array.reverse"), e("core-js/modules/es.typed-array.set"), e("core-js/modules/es.typed-array.slice"), e("core-js/modules/es.typed-array.some"), e("core-js/modules/es.typed-array.sort"), e("core-js/modules/es.typed-array.subarray"), e("core-js/modules/es.typed-array.to-locale-string"), e("core-js/modules/es.typed-array.to-string"), e("core-js/modules/web.dom-collections.iterator"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, i = (n = e("./main")) && n.__esModule ? n : { default: n };
        function o(e2) {
          return function(e3) {
            if (Array.isArray(e3)) {
              for (var t2 = 0, r2 = new Array(e3.length); t2 < e3.length; t2++)
                r2[t2] = e3[t2];
              return r2;
            }
          }(e2) || function(e3) {
            if (Symbol.iterator in Object(e3) || Object.prototype.toString.call(e3) === "[object Arguments]")
              return Array.from(e3);
          }(e2) || function() {
            throw new TypeError("Invalid attempt to spread non-iterable instance");
          }();
        }
        i.default.prototype.applyMatrix = function() {
          var e2, t2, r2 = arguments[0] instanceof Object.getPrototypeOf(Uint8Array);
          Array.isArray(arguments[0]) || r2 ? (e2 = this._renderer).applyMatrix.apply(e2, o(arguments[0])) : (t2 = this._renderer).applyMatrix.apply(t2, arguments);
          return this;
        }, i.default.prototype.resetMatrix = function() {
          return this._renderer.resetMatrix(), this;
        }, i.default.prototype.rotate = function(e2, t2) {
          return i.default._validateParameters("rotate", arguments), this._renderer.rotate(this._toRadians(e2), t2), this;
        }, i.default.prototype.rotateX = function(e2) {
          return this._assert3d("rotateX"), i.default._validateParameters("rotateX", arguments), this._renderer.rotateX(this._toRadians(e2)), this;
        }, i.default.prototype.rotateY = function(e2) {
          return this._assert3d("rotateY"), i.default._validateParameters("rotateY", arguments), this._renderer.rotateY(this._toRadians(e2)), this;
        }, i.default.prototype.rotateZ = function(e2) {
          return this._assert3d("rotateZ"), i.default._validateParameters("rotateZ", arguments), this._renderer.rotateZ(this._toRadians(e2)), this;
        }, i.default.prototype.scale = function(e2, t2, r2) {
          if (i.default._validateParameters("scale", arguments), e2 instanceof i.default.Vector) {
            var n2 = e2;
            e2 = n2.x, t2 = n2.y, r2 = n2.z;
          } else if (e2 instanceof Array) {
            var o2 = e2;
            e2 = o2[0], t2 = o2[1], r2 = o2[2] || 1;
          }
          return isNaN(t2) ? t2 = r2 = e2 : isNaN(r2) && (r2 = 1), this._renderer.scale.call(this._renderer, e2, t2, r2), this;
        }, i.default.prototype.shearX = function(e2) {
          i.default._validateParameters("shearX", arguments);
          var t2 = this._toRadians(e2);
          return this._renderer.applyMatrix(1, 0, Math.tan(t2), 1, 0, 0), this;
        }, i.default.prototype.shearY = function(e2) {
          i.default._validateParameters("shearY", arguments);
          var t2 = this._toRadians(e2);
          return this._renderer.applyMatrix(1, Math.tan(t2), 0, 1, 0, 0), this;
        }, i.default.prototype.translate = function(e2, t2, r2) {
          return i.default._validateParameters("translate", arguments), this._renderer.isP3D ? this._renderer.translate(e2, t2, r2) : this._renderer.translate(e2, t2), this;
        };
        var a = i.default;
        r.default = a;
      }, { "./main": 260, "core-js/modules/es.array.from": 153, "core-js/modules/es.array.iterator": 156, "core-js/modules/es.object.get-prototype-of": 172, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.regexp.to-string": 179, "core-js/modules/es.string.iterator": 183, "core-js/modules/es.symbol": 193, "core-js/modules/es.symbol.description": 191, "core-js/modules/es.symbol.iterator": 192, "core-js/modules/es.typed-array.copy-within": 194, "core-js/modules/es.typed-array.every": 195, "core-js/modules/es.typed-array.fill": 196, "core-js/modules/es.typed-array.filter": 197, "core-js/modules/es.typed-array.find": 199, "core-js/modules/es.typed-array.find-index": 198, "core-js/modules/es.typed-array.for-each": 202, "core-js/modules/es.typed-array.includes": 203, "core-js/modules/es.typed-array.index-of": 204, "core-js/modules/es.typed-array.iterator": 207, "core-js/modules/es.typed-array.join": 208, "core-js/modules/es.typed-array.last-index-of": 209, "core-js/modules/es.typed-array.map": 210, "core-js/modules/es.typed-array.reduce": 212, "core-js/modules/es.typed-array.reduce-right": 211, "core-js/modules/es.typed-array.reverse": 213, "core-js/modules/es.typed-array.set": 214, "core-js/modules/es.typed-array.slice": 215, "core-js/modules/es.typed-array.some": 216, "core-js/modules/es.typed-array.sort": 217, "core-js/modules/es.typed-array.subarray": 218, "core-js/modules/es.typed-array.to-locale-string": 219, "core-js/modules/es.typed-array.to-string": 220, "core-js/modules/es.typed-array.uint8-array": 223, "core-js/modules/web.dom-collections.iterator": 226 }], 274: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.symbol"), e("core-js/modules/es.symbol.description"), e("core-js/modules/es.symbol.iterator"), e("core-js/modules/es.array.from"), e("core-js/modules/es.array.iterator"), e("core-js/modules/es.object.to-string"), e("core-js/modules/es.regexp.to-string"), e("core-js/modules/es.string.ends-with"), e("core-js/modules/es.string.iterator"), e("core-js/modules/web.dom-collections.iterator");
        var n, o = (n = e("../core/main")) && n.__esModule ? n : { default: n };
        function i(e2) {
          return function(e3) {
            if (Array.isArray(e3)) {
              for (var t2 = 0, r2 = new Array(e3.length); t2 < e3.length; t2++)
                r2[t2] = e3[t2];
              return r2;
            }
          }(e2) || function(e3) {
            if (Symbol.iterator in Object(e3) || Object.prototype.toString.call(e3) === "[object Arguments]")
              return Array.from(e3);
          }(e2) || function() {
            throw new TypeError("Invalid attempt to spread non-iterable instance");
          }();
        }
        function a(e2) {
          return (a = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e3) {
            return typeof e3;
          } : function(e3) {
            return e3 && typeof Symbol == "function" && e3.constructor === Symbol && e3 !== Symbol.prototype ? "symbol" : typeof e3;
          })(e2);
        }
        o.default.prototype.storeItem = function(e2, t2) {
          typeof e2 != "string" && console.log("The argument that you passed to storeItem() - ".concat(e2, " is not a string.")), e2.endsWith("p5TypeID") && console.log("The argument that you passed to storeItem() - ".concat(e2, " must not end with 'p5TypeID'.")), t2 === void 0 && console.log("You cannot store undefined variables using storeItem().");
          var r2 = a(t2);
          switch (r2) {
            case "number":
            case "boolean":
              t2 = t2.toString();
              break;
            case "object":
              if (t2 instanceof o.default.Color)
                r2 = "p5.Color";
              else if (t2 instanceof o.default.Vector) {
                r2 = "p5.Vector", t2 = [t2.x, t2.y, t2.z];
              }
              t2 = JSON.stringify(t2);
          }
          localStorage.setItem(e2, t2);
          var n2 = "".concat(e2, "p5TypeID");
          localStorage.setItem(n2, r2);
        }, o.default.prototype.getItem = function(e2) {
          var t2 = localStorage.getItem(e2), r2 = localStorage.getItem("".concat(e2, "p5TypeID"));
          if (r2 === void 0)
            console.log("Unable to determine type of item stored under ".concat(e2, "in local storage. Did you save the item with something other than setItem()?"));
          else if (t2 !== null)
            switch (r2) {
              case "number":
                t2 = parseFloat(t2);
                break;
              case "boolean":
                t2 = t2 === "true";
                break;
              case "object":
                t2 = JSON.parse(t2);
                break;
              case "p5.Color":
                t2 = JSON.parse(t2), t2 = this.color.apply(this, i(t2.levels));
                break;
              case "p5.Vector":
                t2 = JSON.parse(t2), t2 = this.createVector.apply(this, i(t2));
            }
          return t2;
        }, o.default.prototype.clearStorage = function() {
          localStorage.clear();
        }, o.default.prototype.removeItem = function(e2) {
          typeof e2 != "string" && console.log("The argument that you passed to removeItem() - ".concat(e2, " is not a string.")), localStorage.removeItem(e2), localStorage.removeItem("".concat(e2, "p5TypeID"));
        };
      }, { "../core/main": 260, "core-js/modules/es.array.from": 153, "core-js/modules/es.array.iterator": 156, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.regexp.to-string": 179, "core-js/modules/es.string.ends-with": 181, "core-js/modules/es.string.iterator": 183, "core-js/modules/es.symbol": 193, "core-js/modules/es.symbol.description": 191, "core-js/modules/es.symbol.iterator": 192, "core-js/modules/web.dom-collections.iterator": 226 }], 275: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.array.concat"), e("core-js/modules/es.object.keys"), e("core-js/modules/es.string.sub"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, o = (n = e("../core/main")) && n.__esModule ? n : { default: n };
        o.default.prototype.createStringDict = function(e2, t2) {
          return o.default._validateParameters("createStringDict", arguments), new o.default.StringDict(e2, t2);
        }, o.default.prototype.createNumberDict = function(e2, t2) {
          return o.default._validateParameters("createNumberDict", arguments), new o.default.NumberDict(e2, t2);
        }, o.default.TypedDict = function(e2, t2) {
          return e2 instanceof Object ? this.data = e2 : (this.data = {}, this.data[e2] = t2), this;
        }, o.default.TypedDict.prototype.size = function() {
          return Object.keys(this.data).length;
        }, o.default.TypedDict.prototype.hasKey = function(e2) {
          return this.data.hasOwnProperty(e2);
        }, o.default.TypedDict.prototype.get = function(e2) {
          if (this.data.hasOwnProperty(e2))
            return this.data[e2];
          console.log("".concat(e2, " does not exist in this Dictionary"));
        }, o.default.TypedDict.prototype.set = function(e2, t2) {
          this._validate(t2) ? this.data[e2] = t2 : console.log("Those values dont work for this dictionary type.");
        }, o.default.TypedDict.prototype._addObj = function(e2) {
          for (var t2 in e2)
            this.set(t2, e2[t2]);
        }, o.default.TypedDict.prototype.create = function(e2, t2) {
          e2 instanceof Object && t2 === void 0 ? this._addObj(e2) : e2 !== void 0 ? this.set(e2, t2) : console.log("In order to create a new Dictionary entry you must pass an object or a key, value pair");
        }, o.default.TypedDict.prototype.clear = function() {
          this.data = {};
        }, o.default.TypedDict.prototype.remove = function(e2) {
          if (!this.data.hasOwnProperty(e2))
            throw new Error("".concat(e2, " does not exist in this Dictionary"));
          delete this.data[e2];
        }, o.default.TypedDict.prototype.print = function() {
          for (var e2 in this.data)
            console.log("key:".concat(e2, " value:").concat(this.data[e2]));
        }, o.default.TypedDict.prototype.saveTable = function(e2) {
          var t2 = "";
          for (var r2 in this.data)
            t2 += "".concat(r2, ",").concat(this.data[r2], "\n");
          var n2 = new Blob([t2], { type: "text/csv" });
          o.default.prototype.downloadFile(n2, e2 || "mycsv", "csv");
        }, o.default.TypedDict.prototype.saveJSON = function(e2, t2) {
          o.default.prototype.saveJSON(this.data, e2, t2);
        }, o.default.TypedDict.prototype._validate = function(e2) {
          return true;
        }, o.default.StringDict = function() {
          for (var e2 = arguments.length, t2 = new Array(e2), r2 = 0; r2 < e2; r2++)
            t2[r2] = arguments[r2];
          o.default.TypedDict.apply(this, t2);
        }, o.default.StringDict.prototype = Object.create(o.default.TypedDict.prototype), o.default.StringDict.prototype._validate = function(e2) {
          return typeof e2 == "string";
        }, o.default.NumberDict = function() {
          for (var e2 = arguments.length, t2 = new Array(e2), r2 = 0; r2 < e2; r2++)
            t2[r2] = arguments[r2];
          o.default.TypedDict.apply(this, t2);
        }, o.default.NumberDict.prototype = Object.create(o.default.TypedDict.prototype), o.default.NumberDict.prototype._validate = function(e2) {
          return typeof e2 == "number";
        }, o.default.NumberDict.prototype.add = function(e2, t2) {
          this.data.hasOwnProperty(e2) ? this.data[e2] += t2 : console.log("The key - ".concat(e2, " does not exist in this dictionary."));
        }, o.default.NumberDict.prototype.sub = function(e2, t2) {
          this.add(e2, -t2);
        }, o.default.NumberDict.prototype.mult = function(e2, t2) {
          this.data.hasOwnProperty(e2) ? this.data[e2] *= t2 : console.log("The key - ".concat(e2, " does not exist in this dictionary."));
        }, o.default.NumberDict.prototype.div = function(e2, t2) {
          this.data.hasOwnProperty(e2) ? this.data[e2] /= t2 : console.log("The key - ".concat(e2, " does not exist in this dictionary."));
        }, o.default.NumberDict.prototype._valueTest = function(e2) {
          if (Object.keys(this.data).length === 0)
            throw new Error("Unable to search for a minimum or maximum value on an empty NumberDict");
          if (Object.keys(this.data).length === 1)
            return this.data[Object.keys(this.data)[0]];
          var t2 = this.data[Object.keys(this.data)[0]];
          for (var r2 in this.data)
            this.data[r2] * e2 < t2 * e2 && (t2 = this.data[r2]);
          return t2;
        }, o.default.NumberDict.prototype.minValue = function() {
          return this._valueTest(1);
        }, o.default.NumberDict.prototype.maxValue = function() {
          return this._valueTest(-1);
        }, o.default.NumberDict.prototype._keyTest = function(e2) {
          if (Object.keys(this.data).length === 0)
            throw new Error("Unable to use minValue on an empty NumberDict");
          if (Object.keys(this.data).length === 1)
            return Object.keys(this.data)[0];
          for (var t2 = Object.keys(this.data)[0], r2 = 1; r2 < Object.keys(this.data).length; r2++)
            Object.keys(this.data)[r2] * e2 < t2 * e2 && (t2 = Object.keys(this.data)[r2]);
          return t2;
        }, o.default.NumberDict.prototype.minKey = function() {
          return this._keyTest(1);
        }, o.default.NumberDict.prototype.maxKey = function() {
          return this._keyTest(-1);
        };
        var i = o.default.TypedDict;
        r.default = i;
      }, { "../core/main": 260, "core-js/modules/es.array.concat": 148, "core-js/modules/es.object.keys": 173, "core-js/modules/es.string.sub": 189 }], 276: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.symbol"), e("core-js/modules/es.symbol.description"), e("core-js/modules/es.symbol.iterator"), e("core-js/modules/es.array.every"), e("core-js/modules/es.array.filter"), e("core-js/modules/es.array.for-each"), e("core-js/modules/es.array.from"), e("core-js/modules/es.array.index-of"), e("core-js/modules/es.array.iterator"), e("core-js/modules/es.array.map"), e("core-js/modules/es.array.slice"), e("core-js/modules/es.array.splice"), e("core-js/modules/es.function.name"), e("core-js/modules/es.object.to-string"), e("core-js/modules/es.promise"), e("core-js/modules/es.regexp.exec"), e("core-js/modules/es.regexp.to-string"), e("core-js/modules/es.string.iterator"), e("core-js/modules/es.string.replace"), e("core-js/modules/es.string.split"), e("core-js/modules/es.string.trim"), e("core-js/modules/web.dom-collections.for-each"), e("core-js/modules/web.dom-collections.iterator"), e("core-js/modules/web.url"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, f = (n = e("../core/main")) && n.__esModule ? n : { default: n };
        function h(e2) {
          return (h = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e3) {
            return typeof e3;
          } : function(e3) {
            return e3 && typeof Symbol == "function" && e3.constructor === Symbol && e3 !== Symbol.prototype ? "symbol" : typeof e3;
          })(e2);
        }
        function y(e2, t2, r2) {
          (t2._userNode ? t2._userNode : document.body).appendChild(e2);
          var n2 = r2 ? new f.default.MediaElement(e2, t2) : new f.default.Element(e2, t2);
          return t2._elements.push(n2), n2;
        }
        function o(e2, t2, r2, n2) {
          var o2 = document.createElement(t2);
          typeof (r2 = r2 || "") == "string" && (r2 = [r2]);
          var i2 = true, a2 = false, s = void 0;
          try {
            for (var l, u = r2[Symbol.iterator](); !(i2 = (l = u.next()).done); i2 = true) {
              var c = l.value, d = document.createElement("source");
              d.setAttribute("src", c), o2.appendChild(d);
            }
          } catch (e3) {
            a2 = true, s = e3;
          } finally {
            try {
              i2 || u.return == null || u.return();
            } finally {
              if (a2)
                throw s;
            }
          }
          if (typeof n2 == "function") {
            o2.addEventListener("canplaythrough", function e3() {
              n2(), o2.removeEventListener("canplaythrough", e3);
            });
          }
          var f2 = y(o2, e2, true);
          return f2.loadedmetadata = false, o2.addEventListener("loadedmetadata", function() {
            f2.width = o2.videoWidth, f2.height = o2.videoHeight, f2.elt.width === 0 && (f2.elt.width = o2.videoWidth), f2.elt.height === 0 && (f2.elt.height = o2.videoHeight), f2.presetPlaybackRate && (f2.elt.playbackRate = f2.presetPlaybackRate, delete f2.presetPlaybackRate), f2.loadedmetadata = true;
          }), f2;
        }
        f.default.prototype.select = function(e2, t2) {
          f.default._validateParameters("select", arguments);
          var r2 = this._getContainer(t2).querySelector(e2);
          return r2 ? this._wrapElement(r2) : null;
        }, f.default.prototype.selectAll = function(e2, t2) {
          f.default._validateParameters("selectAll", arguments);
          var r2 = [], n2 = this._getContainer(t2).querySelectorAll(e2);
          if (n2)
            for (var o2 = 0; o2 < n2.length; o2++) {
              var i2 = this._wrapElement(n2[o2]);
              r2.push(i2);
            }
          return r2;
        }, f.default.prototype._getContainer = function(e2) {
          var t2 = document;
          return typeof e2 == "string" ? t2 = document.querySelector(e2) || document : e2 instanceof f.default.Element ? t2 = e2.elt : e2 instanceof HTMLElement && (t2 = e2), t2;
        }, f.default.prototype._wrapElement = function(e2) {
          var t2 = Array.prototype.slice.call(e2.children);
          if (e2.tagName !== "INPUT" || e2.type !== "checkbox")
            return e2.tagName === "VIDEO" || e2.tagName === "AUDIO" ? new f.default.MediaElement(e2, this) : e2.tagName === "SELECT" ? this.createSelect(new f.default.Element(e2, this)) : 0 < t2.length && t2.every(function(e3) {
              return e3.tagName === "INPUT" || e3.tagName === "LABEL";
            }) ? this.createRadio(new f.default.Element(e2, this)) : new f.default.Element(e2, this);
          var r2 = new f.default.Element(e2, this);
          return r2.checked = function() {
            return arguments.length === 0 ? this.elt.checked : (this.elt.checked = !!arguments[0], this);
          }, r2;
        }, f.default.prototype.removeElements = function(e2) {
          f.default._validateParameters("removeElements", arguments);
          this._elements.filter(function(e3) {
            return !(e3.elt instanceof HTMLCanvasElement);
          }).map(function(e3) {
            return e3.remove();
          });
        }, f.default.Element.prototype.changed = function(e2) {
          return f.default.Element._adjustListener("change", e2, this), this;
        }, f.default.Element.prototype.input = function(e2) {
          return f.default.Element._adjustListener("input", e2, this), this;
        }, f.default.prototype.createDiv = function() {
          var e2 = 0 < arguments.length && arguments[0] !== void 0 ? arguments[0] : "", t2 = document.createElement("div");
          return t2.innerHTML = e2, y(t2, this);
        }, f.default.prototype.createP = function() {
          var e2 = 0 < arguments.length && arguments[0] !== void 0 ? arguments[0] : "", t2 = document.createElement("p");
          return t2.innerHTML = e2, y(t2, this);
        }, f.default.prototype.createSpan = function() {
          var e2 = 0 < arguments.length && arguments[0] !== void 0 ? arguments[0] : "", t2 = document.createElement("span");
          return t2.innerHTML = e2, y(t2, this);
        }, f.default.prototype.createImg = function() {
          f.default._validateParameters("createImg", arguments);
          var t2, r2 = document.createElement("img"), n2 = arguments;
          return 1 < n2.length && typeof n2[1] == "string" && (r2.alt = n2[1]), 2 < n2.length && typeof n2[2] == "string" && (r2.crossOrigin = n2[2]), r2.src = n2[0], t2 = y(r2, this), r2.addEventListener("load", function() {
            t2.width = r2.offsetWidth || r2.width, t2.height = r2.offsetHeight || r2.height;
            var e2 = n2[n2.length - 1];
            typeof e2 == "function" && e2(t2);
          }), t2;
        }, f.default.prototype.createA = function(e2, t2, r2) {
          f.default._validateParameters("createA", arguments);
          var n2 = document.createElement("a");
          return n2.href = e2, n2.innerHTML = t2, r2 && (n2.target = r2), y(n2, this);
        }, f.default.prototype.createSlider = function(e2, t2, r2, n2) {
          f.default._validateParameters("createSlider", arguments);
          var o2 = document.createElement("input");
          return o2.type = "range", o2.min = e2, o2.max = t2, n2 === 0 ? o2.step = 1e-18 : n2 && (o2.step = n2), typeof r2 == "number" && (o2.value = r2), y(o2, this);
        }, f.default.prototype.createButton = function(e2, t2) {
          f.default._validateParameters("createButton", arguments);
          var r2 = document.createElement("button");
          return r2.innerHTML = e2, t2 && (r2.value = t2), y(r2, this);
        }, f.default.prototype.createCheckbox = function() {
          f.default._validateParameters("createCheckbox", arguments);
          var e2 = document.createElement("div"), t2 = document.createElement("input");
          t2.type = "checkbox", e2.appendChild(t2);
          var r2 = y(e2, this);
          if (r2.checked = function() {
            var e3 = r2.elt.getElementsByTagName("input")[0];
            if (e3) {
              if (arguments.length === 0)
                return e3.checked;
              e3.checked = !!arguments[0];
            }
            return r2;
          }, this.value = function(e3) {
            return r2.value = e3, this;
          }, arguments[0]) {
            var n2 = Math.random().toString(36).slice(2), o2 = document.createElement("label");
            t2.setAttribute("id", n2), o2.htmlFor = n2, r2.value(arguments[0]), o2.appendChild(document.createTextNode(arguments[0])), e2.appendChild(o2);
          }
          return arguments[1] && (t2.checked = true), r2;
        }, f.default.prototype.createSelect = function() {
          var e2;
          f.default._validateParameters("createSelect", arguments);
          var t2 = arguments[0];
          if (t2 instanceof f.default.Element && t2.elt instanceof HTMLSelectElement)
            e2 = t2, this.elt = t2.elt;
          else if (t2 instanceof HTMLSelectElement)
            e2 = y(t2, this), this.elt = t2;
          else {
            var r2 = document.createElement("select");
            t2 && typeof t2 == "boolean" && r2.setAttribute("multiple", "true"), e2 = y(r2, this), this.elt = r2;
          }
          return e2.option = function(e3, t3) {
            var r3;
            if (e3 !== void 0) {
              for (var n2 = 0; n2 < this.elt.length; n2 += 1)
                if (this.elt[n2].innerHTML === e3) {
                  r3 = n2;
                  break;
                }
              if (r3 !== void 0)
                t3 === false ? this.elt.remove(r3) : this.elt[r3].value = t3;
              else {
                var o2 = document.createElement("option");
                o2.innerHTML = e3, o2.value = t3 === void 0 ? e3 : t3, this.elt.appendChild(o2), this._pInst._elements.push(o2);
              }
            }
          }, e2.selected = function(e3) {
            if (e3 !== void 0) {
              for (var t3 = 0; t3 < this.elt.length; t3 += 1)
                this.elt[t3].value.toString() === e3.toString() && (this.elt.selectedIndex = t3);
              return this;
            }
            if (this.elt.getAttribute("multiple")) {
              var r3 = [], n2 = true, o2 = false, i2 = void 0;
              try {
                for (var a2, s = this.elt.selectedOptions[Symbol.iterator](); !(n2 = (a2 = s.next()).done); n2 = true) {
                  var l = a2.value;
                  r3.push(l.value);
                }
              } catch (e4) {
                o2 = true, i2 = e4;
              } finally {
                try {
                  n2 || s.return == null || s.return();
                } finally {
                  if (o2)
                    throw i2;
                }
              }
              return r3;
            }
            return this.elt.value;
          }, e2.disable = function(e3) {
            if (typeof e3 == "string")
              for (var t3 = 0; t3 < this.elt.length; t3++)
                this.elt[t3].value.toString() === e3 && (this.elt[t3].disabled = true, this.elt[t3].selected = false);
            else
              this.elt.disabled = true;
            return this;
          }, e2;
        }, f.default.prototype.createRadio = function() {
          var e2, t2, r2 = arguments[0];
          r2 instanceof HTMLDivElement || r2 instanceof HTMLSpanElement ? (e2 = r2, typeof arguments[1] == "string" && (t2 = arguments[1])) : (typeof r2 == "string" && (t2 = r2), e2 = document.createElement("div"));
          var p = y(this.elt = e2, this);
          p._name = t2 || "radioOption";
          function n2(e3) {
            return e3 instanceof HTMLInputElement && e3.type === "radio";
          }
          function c(e3) {
            return e3.nextElementSibling instanceof HTMLLabelElement;
          }
          return p._getOptionsArray = function() {
            return Array.from(this.elt.children).filter(n2);
          }, p.option = function(e3, t3) {
            var r3, n3, o2 = true, i2 = false, a2 = void 0;
            try {
              for (var s, l = p._getOptionsArray()[Symbol.iterator](); !(o2 = (s = l.next()).done); o2 = true) {
                var u = s.value;
                if (u.value === e3) {
                  r3 = u;
                  break;
                }
              }
            } catch (e4) {
              i2 = true, a2 = e4;
            } finally {
              try {
                o2 || l.return == null || l.return();
              } finally {
                if (i2)
                  throw a2;
              }
            }
            return r3 === void 0 && ((r3 = document.createElement("input")).setAttribute("type", "radio"), r3.setAttribute("value", e3), this.elt.appendChild(r3)), c(r3) ? n3 = r3.nextElementSibling : (n3 = document.createElement("label"), r3.insertAdjacentElement("afterend", n3)), n3.innerHTML = t3 === void 0 ? e3 : t3, r3.setAttribute("name", p._name), r3;
          }, p.remove = function(e3) {
            var t3 = true, r3 = false, n3 = void 0;
            try {
              for (var o2, i2 = p._getOptionsArray()[Symbol.iterator](); !(t3 = (o2 = i2.next()).done); t3 = true) {
                var a2 = o2.value;
                if (a2.value === e3)
                  return c(a2) && a2.nextElementSibling.remove(), void a2.remove();
              }
            } catch (e4) {
              r3 = true, n3 = e4;
            } finally {
              try {
                t3 || i2.return == null || i2.return();
              } finally {
                if (r3)
                  throw n3;
              }
            }
          }, p.value = function() {
            var e3 = "", t3 = true, r3 = false, n3 = void 0;
            try {
              for (var o2, i2 = p._getOptionsArray()[Symbol.iterator](); !(t3 = (o2 = i2.next()).done); t3 = true) {
                var a2 = o2.value;
                if (a2.checked) {
                  e3 = a2.value;
                  break;
                }
              }
            } catch (e4) {
              r3 = true, n3 = e4;
            } finally {
              try {
                t3 || i2.return == null || i2.return();
              } finally {
                if (r3)
                  throw n3;
              }
            }
            return e3;
          }, p.selected = function(e3) {
            var t3 = null;
            if (e3 === void 0) {
              var r3 = true, n3 = false, o2 = void 0;
              try {
                for (var i2, a2 = p._getOptionsArray()[Symbol.iterator](); !(r3 = (i2 = a2.next()).done); r3 = true) {
                  var s = i2.value;
                  if (s.checked) {
                    t3 = s;
                    break;
                  }
                }
              } catch (e4) {
                n3 = true, o2 = e4;
              } finally {
                try {
                  r3 || a2.return == null || a2.return();
                } finally {
                  if (n3)
                    throw o2;
                }
              }
            } else {
              var l = true, u = false, c2 = void 0;
              try {
                for (var d, f2 = p._getOptionsArray()[Symbol.iterator](); !(l = (d = f2.next()).done); l = true) {
                  var h2 = d.value;
                  h2.value === e3 && (h2.setAttribute("checked", true), t3 = h2);
                }
              } catch (e4) {
                u = true, c2 = e4;
              } finally {
                try {
                  l || f2.return == null || f2.return();
                } finally {
                  if (u)
                    throw c2;
                }
              }
            }
            return t3;
          }, p.disable = function() {
            var e3 = !(0 < arguments.length && arguments[0] !== void 0) || arguments[0], t3 = true, r3 = false, n3 = void 0;
            try {
              for (var o2, i2 = p._getOptionsArray()[Symbol.iterator](); !(t3 = (o2 = i2.next()).done); t3 = true) {
                o2.value.setAttribute("disabled", e3);
              }
            } catch (e4) {
              r3 = true, n3 = e4;
            } finally {
              try {
                t3 || i2.return == null || i2.return();
              } finally {
                if (r3)
                  throw n3;
              }
            }
          }, p;
        }, f.default.prototype.createColorPicker = function(e2) {
          f.default._validateParameters("createColorPicker", arguments);
          var t2, r2 = document.createElement("input");
          return r2.type = "color", e2 ? e2 instanceof f.default.Color ? r2.value = e2.toString("#rrggbb") : (f.default.prototype._colorMode = "rgb", f.default.prototype._colorMaxes = { rgb: [255, 255, 255, 255], hsb: [360, 100, 100, 1], hsl: [360, 100, 100, 1] }, r2.value = f.default.prototype.color(e2).toString("#rrggbb")) : r2.value = "#000000", (t2 = y(r2, this)).color = function() {
            return e2 && (e2.mode && (f.default.prototype._colorMode = e2.mode), e2.maxes && (f.default.prototype._colorMaxes = e2.maxes)), f.default.prototype.color(this.elt.value);
          }, t2;
        }, f.default.prototype.createInput = function() {
          var e2 = 0 < arguments.length && arguments[0] !== void 0 ? arguments[0] : "", t2 = 1 < arguments.length && arguments[1] !== void 0 ? arguments[1] : "text";
          f.default._validateParameters("createInput", arguments);
          var r2 = document.createElement("input");
          return r2.setAttribute("value", e2), r2.setAttribute("type", t2), y(r2, this);
        }, f.default.prototype.createFileInput = function(s) {
          var e2 = 1 < arguments.length && arguments[1] !== void 0 && arguments[1];
          f.default._validateParameters("createFileInput", arguments);
          if (window.File && window.FileReader && window.FileList && window.Blob) {
            var t2 = document.createElement("input");
            return t2.setAttribute("type", "file"), e2 && t2.setAttribute("multiple", true), t2.addEventListener("change", function(e3) {
              var t3 = true, r2 = false, n2 = void 0;
              try {
                for (var o2, i2 = e3.target.files[Symbol.iterator](); !(t3 = (o2 = i2.next()).done); t3 = true) {
                  var a2 = o2.value;
                  f.default.File._load(a2, s);
                }
              } catch (e4) {
                r2 = true, n2 = e4;
              } finally {
                try {
                  t3 || i2.return == null || i2.return();
                } finally {
                  if (r2)
                    throw n2;
                }
              }
            }, false), y(t2, this);
          }
          console.log("The File APIs are not fully supported in this browser. Cannot create element.");
        }, f.default.prototype.createVideo = function(e2, t2) {
          return f.default._validateParameters("createVideo", arguments), o(this, "video", e2, t2);
        }, f.default.prototype.createAudio = function(e2, t2) {
          return f.default._validateParameters("createAudio", arguments), o(this, "audio", e2, t2);
        }, f.default.prototype.VIDEO = "video", f.default.prototype.AUDIO = "audio", navigator.mediaDevices === void 0 && (navigator.mediaDevices = {}), navigator.mediaDevices.getUserMedia === void 0 && (navigator.mediaDevices.getUserMedia = function(r2) {
          var n2 = navigator.webkitGetUserMedia || navigator.mozGetUserMedia;
          return n2 ? new Promise(function(e2, t2) {
            n2.call(navigator, r2, e2, t2);
          }) : Promise.reject(new Error("getUserMedia is not implemented in this browser"));
        }), f.default.prototype.createCapture = function() {
          if (f.default._validateParameters("createCapture", arguments), !navigator.mediaDevices || !navigator.mediaDevices.getUserMedia)
            throw new DOMException("getUserMedia not supported in this browser");
          var e2, t2, r2 = true, n2 = true, o2 = true, i2 = false, a2 = void 0;
          try {
            for (var s, l = arguments[Symbol.iterator](); !(o2 = (s = l.next()).done); o2 = true) {
              var u = s.value;
              u === f.default.prototype.VIDEO ? n2 = false : u === f.default.prototype.AUDIO ? r2 = false : h(u) === "object" ? e2 = u : typeof u == "function" && (t2 = u);
            }
          } catch (e3) {
            i2 = true, a2 = e3;
          } finally {
            try {
              o2 || l.return == null || l.return();
            } finally {
              if (i2)
                throw a2;
            }
          }
          e2 = e2 || { video: r2, audio: n2 };
          var c = document.createElement("video");
          c.setAttribute("playsinline", ""), navigator.mediaDevices.getUserMedia(e2).then(function(t3) {
            try {
              "srcObject" in c ? c.srcObject = t3 : c.src = window.URL.createObjectURL(t3);
            } catch (e3) {
              c.src = t3;
            }
          }, console.log);
          var d = y(c, this, true);
          return d.loadedmetadata = false, c.addEventListener("loadedmetadata", function() {
            c.play(), c.width ? (d.width = c.width, d.height = c.height) : (d.width = d.elt.width = c.videoWidth, d.height = d.elt.height = c.videoHeight), d.loadedmetadata = true, t2 && t2(c.srcObject);
          }), d;
        }, f.default.prototype.createElement = function(e2, t2) {
          f.default._validateParameters("createElement", arguments);
          var r2 = document.createElement(e2);
          return t2 !== void 0 && (r2.innerHTML = t2), y(r2, this);
        }, f.default.Element.prototype.addClass = function(e2) {
          return this.elt.className ? this.hasClass(e2) || (this.elt.className = this.elt.className + " " + e2) : this.elt.className = e2, this;
        }, f.default.Element.prototype.removeClass = function(e2) {
          return this.elt.classList.remove(e2), this;
        }, f.default.Element.prototype.hasClass = function(e2) {
          return this.elt.classList.contains(e2);
        }, f.default.Element.prototype.toggleClass = function(e2) {
          return this.elt.classList.contains(e2) ? this.elt.classList.remove(e2) : this.elt.classList.add(e2), this;
        }, f.default.Element.prototype.child = function(e2) {
          return e2 === void 0 ? this.elt.childNodes : (typeof e2 == "string" ? (e2[0] === "#" && (e2 = e2.substring(1)), e2 = document.getElementById(e2)) : e2 instanceof f.default.Element && (e2 = e2.elt), e2 instanceof HTMLElement && this.elt.appendChild(e2), this);
        }, f.default.Element.prototype.center = function(e2) {
          var t2 = this.elt.style.display, r2 = this.elt.style.display === "none", n2 = this.parent().style.display === "none", o2 = { x: this.elt.offsetLeft, y: this.elt.offsetTop };
          r2 && this.show(), n2 && this.parent().show(), this.elt.style.display = "block", this.position(0, 0);
          var i2 = Math.abs(this.parent().offsetWidth - this.elt.offsetWidth), a2 = Math.abs(this.parent().offsetHeight - this.elt.offsetHeight);
          return e2 === "both" || e2 === void 0 ? this.position(i2 / 2 + this.parent().offsetLeft, a2 / 2 + this.parent().offsetTop) : e2 === "horizontal" ? this.position(i2 / 2 + this.parent().offsetLeft, o2.y) : e2 === "vertical" && this.position(o2.x, a2 / 2 + this.parent().offsetTop), this.style("display", t2), r2 && this.hide(), n2 && this.parent().hide(), this;
        }, f.default.Element.prototype.html = function() {
          return arguments.length === 0 ? this.elt.innerHTML : (arguments[1] ? this.elt.insertAdjacentHTML("beforeend", arguments[0]) : this.elt.innerHTML = arguments[0], this);
        }, f.default.Element.prototype.position = function() {
          if (arguments.length === 0)
            return { x: this.elt.offsetLeft, y: this.elt.offsetTop };
          var e2 = "absolute";
          return arguments[2] !== "static" && arguments[2] !== "fixed" && arguments[2] !== "relative" && arguments[2] !== "sticky" && arguments[2] !== "initial" && arguments[2] !== "inherit" || (e2 = arguments[2]), this.elt.style.position = e2, this.elt.style.left = arguments[0] + "px", this.elt.style.top = arguments[1] + "px", this.x = arguments[0], this.y = arguments[1], this;
        }, f.default.Element.prototype._translate = function() {
          this.elt.style.position = "absolute";
          var e2 = "";
          return this.elt.style.transform && (e2 = (e2 = this.elt.style.transform.replace(/translate3d\(.*\)/g, "")).replace(/translate[X-Z]?\(.*\)/g, "")), arguments.length === 2 ? this.elt.style.transform = "translate(" + arguments[0] + "px, " + arguments[1] + "px)" : 2 < arguments.length && (this.elt.style.transform = "translate3d(" + arguments[0] + "px," + arguments[1] + "px," + arguments[2] + "px)", this.elt.parentElement.style.perspective = arguments.length === 3 ? "1000px" : arguments[3] + "px"), this.elt.style.transform += e2, this;
        }, f.default.Element.prototype._rotate = function() {
          var e2 = "";
          return this.elt.style.transform && (e2 = (e2 = this.elt.style.transform.replace(/rotate3d\(.*\)/g, "")).replace(/rotate[X-Z]?\(.*\)/g, "")), arguments.length === 1 ? this.elt.style.transform = "rotate(" + arguments[0] + "deg)" : arguments.length === 2 ? this.elt.style.transform = "rotate(" + arguments[0] + "deg, " + arguments[1] + "deg)" : arguments.length === 3 && (this.elt.style.transform = "rotateX(" + arguments[0] + "deg)", this.elt.style.transform += "rotateY(" + arguments[1] + "deg)", this.elt.style.transform += "rotateZ(" + arguments[2] + "deg)"), this.elt.style.transform += e2, this;
        }, f.default.Element.prototype.style = function(e2, t2) {
          if (t2 instanceof f.default.Color && (t2 = "rgba(" + t2.levels[0] + "," + t2.levels[1] + "," + t2.levels[2] + "," + t2.levels[3] / 255 + ")"), t2 === void 0) {
            if (e2.indexOf(":") === -1)
              return window.getComputedStyle(this.elt).getPropertyValue(e2);
            for (var r2 = e2.split(";"), n2 = 0; n2 < r2.length; n2++) {
              var o2 = r2[n2].split(":");
              o2[0] && o2[1] && (this.elt.style[o2[0].trim()] = o2[1].trim());
            }
          } else if (this.elt.style[e2] = t2, e2 === "width" || e2 === "height" || e2 === "left" || e2 === "top") {
            var i2 = window.getComputedStyle(this.elt).getPropertyValue(e2).replace(/\D+/g, "");
            this[e2] = parseInt(i2, 10);
          }
          return this;
        }, f.default.Element.prototype.attribute = function(e2, t2) {
          if (this.elt.firstChild == null || this.elt.firstChild.type !== "checkbox" && this.elt.firstChild.type !== "radio")
            return t2 === void 0 ? this.elt.getAttribute(e2) : (this.elt.setAttribute(e2, t2), this);
          if (t2 === void 0)
            return this.elt.firstChild.getAttribute(e2);
          for (var r2 = 0; r2 < this.elt.childNodes.length; r2++)
            this.elt.childNodes[r2].setAttribute(e2, t2);
        }, f.default.Element.prototype.removeAttribute = function(e2) {
          if (this.elt.firstChild != null && (this.elt.firstChild.type === "checkbox" || this.elt.firstChild.type === "radio"))
            for (var t2 = 0; t2 < this.elt.childNodes.length; t2++)
              this.elt.childNodes[t2].removeAttribute(e2);
          return this.elt.removeAttribute(e2), this;
        }, f.default.Element.prototype.value = function() {
          return 0 < arguments.length ? (this.elt.value = arguments[0], this) : this.elt.type === "range" ? parseFloat(this.elt.value) : this.elt.value;
        }, f.default.Element.prototype.show = function() {
          return this.elt.style.display = "block", this;
        }, f.default.Element.prototype.hide = function() {
          return this.elt.style.display = "none", this;
        }, f.default.Element.prototype.size = function(e2, t2) {
          if (arguments.length === 0)
            return { width: this.elt.offsetWidth, height: this.elt.offsetHeight };
          var r2 = e2, n2 = t2, o2 = f.default.prototype.AUTO;
          if (r2 !== o2 || n2 !== o2) {
            if (r2 === o2 ? r2 = t2 * this.width / this.height : n2 === o2 && (n2 = e2 * this.height / this.width), this.elt instanceof HTMLCanvasElement) {
              var i2, a2 = {}, s = this.elt.getContext("2d");
              for (i2 in s)
                a2[i2] = s[i2];
              for (i2 in this.elt.setAttribute("width", r2 * this._pInst._pixelDensity), this.elt.setAttribute("height", n2 * this._pInst._pixelDensity), this.elt.style.width = r2 + "px", this.elt.style.height = n2 + "px", this._pInst.scale(this._pInst._pixelDensity, this._pInst._pixelDensity), a2)
                this.elt.getContext("2d")[i2] = a2[i2];
            } else
              this.elt.style.width = r2 + "px", this.elt.style.height = n2 + "px", this.elt.width = r2, this.elt.height = n2;
            this.width = this.elt.offsetWidth, this.height = this.elt.offsetHeight, this._pInst && this._pInst._curElement && this._pInst._curElement.elt === this.elt && (this._pInst._setProperty("width", this.elt.offsetWidth), this._pInst._setProperty("height", this.elt.offsetHeight));
          }
          return this;
        }, f.default.Element.prototype.remove = function() {
          if (this instanceof f.default.MediaElement) {
            this.stop();
            var e2 = this.elt.srcObject;
            if (e2 !== null)
              e2.getTracks().forEach(function(e3) {
                e3.stop();
              });
          }
          var t2 = this._pInst._elements.indexOf(this);
          for (var r2 in t2 !== -1 && this._pInst._elements.splice(t2, 1), this._events)
            this.elt.removeEventListener(r2, this._events[r2]);
          this.elt && this.elt.parentNode && this.elt.parentNode.removeChild(this.elt);
        }, f.default.Element.prototype.drop = function(o2, i2) {
          if (window.File && window.FileReader && window.FileList && window.Blob) {
            if (!this._dragDisabled) {
              this._dragDisabled = true;
              var e2 = function(e3) {
                e3.preventDefault();
              };
              this.elt.addEventListener("dragover", e2), this.elt.addEventListener("dragleave", e2);
            }
            f.default.Element._attachListener("drop", function(e3) {
              e3.preventDefault(), typeof i2 == "function" && i2.call(this, e3);
              for (var t2 = e3.dataTransfer.files, r2 = 0; r2 < t2.length; r2++) {
                var n2 = t2[r2];
                f.default.File._load(n2, o2);
              }
            }, this);
          } else
            console.log("The File APIs are not fully supported in this browser.");
          return this;
        }, f.default.MediaElement = function(n2, e2) {
          f.default.Element.call(this, n2, e2);
          var o2 = this;
          this.elt.crossOrigin = "anonymous", this._prevTime = 0, this._cueIDCounter = 0, this._cues = [], (this._pixelsState = this)._pixelDensity = 1, this._modified = false, Object.defineProperty(o2, "src", { get: function() {
            var e3 = o2.elt.children[0].src, t2 = o2.elt.src === window.location.href ? "" : o2.elt.src;
            return e3 === window.location.href ? t2 : e3;
          }, set: function(e3) {
            for (var t2 = 0; t2 < o2.elt.children.length; t2++)
              o2.elt.removeChild(o2.elt.children[t2]);
            var r2 = document.createElement("source");
            r2.src = e3, n2.appendChild(r2), o2.elt.src = e3, o2.modified = true;
          } }), o2._onended = function() {
          }, o2.elt.onended = function() {
            o2._onended(o2);
          };
        }, f.default.MediaElement.prototype = Object.create(f.default.Element.prototype), f.default.MediaElement.prototype.play = function() {
          var e2, t2 = this;
          return this.elt.currentTime === this.elt.duration && (this.elt.currentTime = 0), (e2 = (1 < this.elt.readyState || this.elt.load(), this.elt.play())) && e2.catch && e2.catch(function(e3) {
            e3.name === "NotAllowedError" ? f.default._friendlyAutoplayError(t2.src) : console.error("Media play method encountered an unexpected error", e3);
          }), this;
        }, f.default.MediaElement.prototype.stop = function() {
          return this.elt.pause(), this.elt.currentTime = 0, this;
        }, f.default.MediaElement.prototype.pause = function() {
          return this.elt.pause(), this;
        }, f.default.MediaElement.prototype.loop = function() {
          return this.elt.setAttribute("loop", true), this.play(), this;
        }, f.default.MediaElement.prototype.noLoop = function() {
          return this.elt.removeAttribute("loop"), this;
        }, f.default.MediaElement.prototype._setupAutoplayFailDetection = function() {
          var e2 = this, t2 = setTimeout(function() {
            return f.default._friendlyAutoplayError(e2.src);
          }, 500);
          this.elt.addEventListener("play", function() {
            return clearTimeout(t2);
          }, { passive: true, once: true });
        }, f.default.MediaElement.prototype.autoplay = function(e2) {
          var t2 = this, r2 = this.elt.getAttribute("autoplay");
          if (this.elt.setAttribute("autoplay", e2), e2 && !r2) {
            var n2 = function() {
              return t2._setupAutoplayFailDetection();
            };
            this.elt.readyState === 4 ? n2() : this.elt.addEventListener("canplay", n2, { passive: true, once: true });
          }
          return this;
        }, f.default.MediaElement.prototype.volume = function(e2) {
          if (e2 === void 0)
            return this.elt.volume;
          this.elt.volume = e2;
        }, f.default.MediaElement.prototype.speed = function(e2) {
          if (e2 === void 0)
            return this.presetPlaybackRate || this.elt.playbackRate;
          this.loadedmetadata ? this.elt.playbackRate = e2 : this.presetPlaybackRate = e2;
        }, f.default.MediaElement.prototype.time = function(e2) {
          return e2 === void 0 ? this.elt.currentTime : (this.elt.currentTime = e2, this);
        }, f.default.MediaElement.prototype.duration = function() {
          return this.elt.duration;
        }, f.default.MediaElement.prototype.pixels = [], f.default.MediaElement.prototype._ensureCanvas = function() {
          this.canvas || (this.canvas = document.createElement("canvas"), this.drawingContext = this.canvas.getContext("2d"), this.setModified(true)), this.loadedmetadata && (this.canvas.width !== this.elt.width && (this.canvas.width = this.elt.width, this.canvas.height = this.elt.height, this.width = this.canvas.width, this.height = this.canvas.height), this.drawingContext.drawImage(this.elt, 0, 0, this.canvas.width, this.canvas.height), this.setModified(true));
        }, f.default.MediaElement.prototype.loadPixels = function() {
          return this._ensureCanvas(), f.default.Renderer2D.prototype.loadPixels.apply(this, arguments);
        }, f.default.MediaElement.prototype.updatePixels = function(e2, t2, r2, n2) {
          return this.loadedmetadata && (this._ensureCanvas(), f.default.Renderer2D.prototype.updatePixels.call(this, e2, t2, r2, n2)), this.setModified(true), this;
        }, f.default.MediaElement.prototype.get = function() {
          return this._ensureCanvas(), f.default.Renderer2D.prototype.get.apply(this, arguments);
        }, f.default.MediaElement.prototype._getPixel = function() {
          return this.loadPixels(), f.default.Renderer2D.prototype._getPixel.apply(this, arguments);
        }, f.default.MediaElement.prototype.set = function(e2, t2, r2) {
          this.loadedmetadata && (this._ensureCanvas(), f.default.Renderer2D.prototype.set.call(this, e2, t2, r2), this.setModified(true));
        }, f.default.MediaElement.prototype.copy = function() {
          this._ensureCanvas(), f.default.prototype.copy.apply(this, arguments);
        }, f.default.MediaElement.prototype.mask = function() {
          this.loadPixels(), this.setModified(true), f.default.Image.prototype.mask.apply(this, arguments);
        }, f.default.MediaElement.prototype.isModified = function() {
          return this._modified;
        }, f.default.MediaElement.prototype.setModified = function(e2) {
          this._modified = e2;
        }, f.default.MediaElement.prototype.onended = function(e2) {
          return this._onended = e2, this;
        }, f.default.MediaElement.prototype.connect = function(e2) {
          var t2, r2;
          if (typeof f.default.prototype.getAudioContext == "function")
            t2 = f.default.prototype.getAudioContext(), r2 = f.default.soundOut.input;
          else
            try {
              r2 = (t2 = e2.context).destination;
            } catch (e3) {
              throw "connect() is meant to be used with Web Audio API or p5.sound.js";
            }
          this.audioSourceNode || (this.audioSourceNode = t2.createMediaElementSource(this.elt), this.audioSourceNode.connect(r2)), e2 ? e2.input ? this.audioSourceNode.connect(e2.input) : this.audioSourceNode.connect(e2) : this.audioSourceNode.connect(r2);
        }, f.default.MediaElement.prototype.disconnect = function() {
          if (!this.audioSourceNode)
            throw "nothing to disconnect";
          this.audioSourceNode.disconnect();
        }, f.default.MediaElement.prototype.showControls = function() {
          this.elt.style["text-align"] = "inherit", this.elt.controls = true;
        }, f.default.MediaElement.prototype.hideControls = function() {
          this.elt.controls = false;
        };
        function i(e2, t2, r2, n2) {
          this.callback = e2, this.time = t2, this.id = r2, this.val = n2;
        }
        f.default.MediaElement.prototype.addCue = function(e2, t2, r2) {
          var n2 = this._cueIDCounter++, o2 = new i(t2, e2, n2, r2);
          return this._cues.push(o2), this.elt.ontimeupdate || (this.elt.ontimeupdate = this._onTimeUpdate.bind(this)), n2;
        }, f.default.MediaElement.prototype.removeCue = function(e2) {
          for (var t2 = 0; t2 < this._cues.length; t2++)
            this._cues[t2].id === e2 && (console.log(e2), this._cues.splice(t2, 1));
          this._cues.length === 0 && (this.elt.ontimeupdate = null);
        }, f.default.MediaElement.prototype.clearCues = function() {
          this._cues = [], this.elt.ontimeupdate = null;
        }, f.default.MediaElement.prototype._onTimeUpdate = function() {
          for (var e2 = this.time(), t2 = 0; t2 < this._cues.length; t2++) {
            var r2 = this._cues[t2].time, n2 = this._cues[t2].val;
            this._prevTime < r2 && r2 <= e2 && this._cues[t2].callback(n2);
          }
          this._prevTime = e2;
        }, f.default.File = function(e2, t2) {
          this.file = e2, this._pInst = t2;
          var r2 = e2.type.split("/");
          this.type = r2[0], this.subtype = r2[1], this.name = e2.name, this.size = e2.size, this.data = void 0;
        }, f.default.File._createLoader = function(n2, o2) {
          var e2 = new FileReader();
          return e2.onload = function(e3) {
            var t2 = new f.default.File(n2);
            if (t2.file.type === "application/json")
              t2.data = JSON.parse(e3.target.result);
            else if (t2.file.type === "text/xml") {
              var r2 = new DOMParser().parseFromString(e3.target.result, "text/xml");
              t2.data = new f.default.XML(r2.documentElement);
            } else
              t2.data = e3.target.result;
            o2(t2);
          }, e2;
        }, f.default.File._load = function(e2, t2) {
          if (/^text\//.test(e2.type) || e2.type === "application/json")
            f.default.File._createLoader(e2, t2).readAsText(e2);
          else if (/^(video|audio)\//.test(e2.type)) {
            var r2 = new f.default.File(e2);
            r2.data = URL.createObjectURL(e2), t2(r2);
          } else
            f.default.File._createLoader(e2, t2).readAsDataURL(e2);
        };
        var a = f.default;
        r.default = a;
      }, { "../core/main": 260, "core-js/modules/es.array.every": 149, "core-js/modules/es.array.filter": 151, "core-js/modules/es.array.for-each": 152, "core-js/modules/es.array.from": 153, "core-js/modules/es.array.index-of": 155, "core-js/modules/es.array.iterator": 156, "core-js/modules/es.array.map": 159, "core-js/modules/es.array.slice": 160, "core-js/modules/es.array.splice": 162, "core-js/modules/es.function.name": 163, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.promise": 175, "core-js/modules/es.regexp.exec": 178, "core-js/modules/es.regexp.to-string": 179, "core-js/modules/es.string.iterator": 183, "core-js/modules/es.string.replace": 186, "core-js/modules/es.string.split": 188, "core-js/modules/es.string.trim": 190, "core-js/modules/es.symbol": 193, "core-js/modules/es.symbol.description": 191, "core-js/modules/es.symbol.iterator": 192, "core-js/modules/web.dom-collections.for-each": 225, "core-js/modules/web.dom-collections.iterator": 226, "core-js/modules/web.url": 228 }], 277: [function(e, t, r) {
        "use strict";
        function a(e2) {
          return (a = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e3) {
            return typeof e3;
          } : function(e3) {
            return e3 && typeof Symbol == "function" && e3.constructor === Symbol && e3 !== Symbol.prototype ? "symbol" : typeof e3;
          })(e2);
        }
        Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, o = (n = e("../core/main")) && n.__esModule ? n : { default: n }, i = function(e2) {
          if (e2 && e2.__esModule)
            return e2;
          if (e2 === null || a(e2) !== "object" && typeof e2 != "function")
            return { default: e2 };
          var t2 = s();
          if (t2 && t2.has(e2))
            return t2.get(e2);
          var r2 = {}, n2 = Object.defineProperty && Object.getOwnPropertyDescriptor;
          for (var o2 in e2)
            if (Object.prototype.hasOwnProperty.call(e2, o2)) {
              var i2 = n2 ? Object.getOwnPropertyDescriptor(e2, o2) : null;
              i2 && (i2.get || i2.set) ? Object.defineProperty(r2, o2, i2) : r2[o2] = e2[o2];
            }
          r2.default = e2, t2 && t2.set(e2, r2);
          return r2;
        }(e("../core/constants"));
        function s() {
          if (typeof WeakMap != "function")
            return null;
          var e2 = new WeakMap();
          return s = function() {
            return e2;
          }, e2;
        }
        o.default.prototype.deviceOrientation = 1 < window.innerWidth / window.innerHeight ? "landscape" : "portrait", o.default.prototype.accelerationX = 0, o.default.prototype.accelerationY = 0, o.default.prototype.accelerationZ = 0, o.default.prototype.pAccelerationX = 0, o.default.prototype.pAccelerationY = 0, o.default.prototype.pAccelerationZ = 0, o.default.prototype._updatePAccelerations = function() {
          this._setProperty("pAccelerationX", this.accelerationX), this._setProperty("pAccelerationY", this.accelerationY), this._setProperty("pAccelerationZ", this.accelerationZ);
        }, o.default.prototype.rotationX = 0, o.default.prototype.rotationY = 0, o.default.prototype.rotationZ = 0, o.default.prototype.pRotationX = 0, o.default.prototype.pRotationY = 0;
        var u = o.default.prototype.pRotationZ = 0, c = 0, d = 0, f = "clockwise", h = "clockwise", p = "clockwise";
        o.default.prototype.pRotateDirectionX = void 0, o.default.prototype.pRotateDirectionY = void 0, o.default.prototype.pRotateDirectionZ = void 0, o.default.prototype._updatePRotations = function() {
          this._setProperty("pRotationX", this.rotationX), this._setProperty("pRotationY", this.rotationY), this._setProperty("pRotationZ", this.rotationZ);
        }, o.default.prototype.turnAxis = void 0;
        var y = 0.5, m = 30;
        o.default.prototype.setMoveThreshold = function(e2) {
          o.default._validateParameters("setMoveThreshold", arguments), y = e2;
        }, o.default.prototype.setShakeThreshold = function(e2) {
          o.default._validateParameters("setShakeThreshold", arguments), m = e2;
        }, o.default.prototype._ondeviceorientation = function(e2) {
          this._updatePRotations(), this._angleMode === i.radians && (e2.beta = e2.beta * (_PI / 180), e2.gamma = e2.gamma * (_PI / 180), e2.alpha = e2.alpha * (_PI / 180)), this._setProperty("rotationX", e2.beta), this._setProperty("rotationY", e2.gamma), this._setProperty("rotationZ", e2.alpha), this._handleMotion();
        }, o.default.prototype._ondevicemotion = function(e2) {
          this._updatePAccelerations(), this._setProperty("accelerationX", 2 * e2.acceleration.x), this._setProperty("accelerationY", 2 * e2.acceleration.y), this._setProperty("accelerationZ", 2 * e2.acceleration.z), this._handleMotion();
        }, o.default.prototype._handleMotion = function() {
          window.orientation === 90 || window.orientation === -90 ? this._setProperty("deviceOrientation", "landscape") : window.orientation === 0 ? this._setProperty("deviceOrientation", "portrait") : window.orientation === void 0 && this._setProperty("deviceOrientation", "undefined");
          var e2, t2, r2 = this._isGlobal ? window : this;
          if (typeof r2.deviceMoved == "function" && (Math.abs(this.accelerationX - this.pAccelerationX) > y || Math.abs(this.accelerationY - this.pAccelerationY) > y || Math.abs(this.accelerationZ - this.pAccelerationZ) > y) && r2.deviceMoved(), typeof r2.deviceTurned == "function") {
            var n2 = this.rotationX + 180, o2 = this.pRotationX + 180, i2 = u + 180;
            0 < n2 - o2 && n2 - o2 < 270 || n2 - o2 < -270 ? f = "clockwise" : (n2 - o2 < 0 || 270 < n2 - o2) && (f = "counter-clockwise"), f !== this.pRotateDirectionX && (i2 = n2), 90 < Math.abs(n2 - i2) && Math.abs(n2 - i2) < 270 && (i2 = n2, this._setProperty("turnAxis", "X"), r2.deviceTurned()), this.pRotateDirectionX = f, u = i2 - 180;
            var a2 = this.rotationY + 180, s2 = this.pRotationY + 180, l2 = c + 180;
            0 < a2 - s2 && a2 - s2 < 270 || a2 - s2 < -270 ? h = "clockwise" : (a2 - s2 < 0 || 270 < a2 - this.pRotationY) && (h = "counter-clockwise"), h !== this.pRotateDirectionY && (l2 = a2), 90 < Math.abs(a2 - l2) && Math.abs(a2 - l2) < 270 && (l2 = a2, this._setProperty("turnAxis", "Y"), r2.deviceTurned()), this.pRotateDirectionY = h, c = l2 - 180, 0 < this.rotationZ - this.pRotationZ && this.rotationZ - this.pRotationZ < 270 || this.rotationZ - this.pRotationZ < -270 ? p = "clockwise" : (this.rotationZ - this.pRotationZ < 0 || 270 < this.rotationZ - this.pRotationZ) && (p = "counter-clockwise"), p !== this.pRotateDirectionZ && (d = this.rotationZ), 90 < Math.abs(this.rotationZ - d) && Math.abs(this.rotationZ - d) < 270 && (d = this.rotationZ, this._setProperty("turnAxis", "Z"), r2.deviceTurned()), this.pRotateDirectionZ = p, this._setProperty("turnAxis", void 0);
          }
          typeof r2.deviceShaken == "function" && (this.pAccelerationX !== null && (e2 = Math.abs(this.accelerationX - this.pAccelerationX), t2 = Math.abs(this.accelerationY - this.pAccelerationY)), m < e2 + t2 && r2.deviceShaken());
        };
        var l = o.default;
        r.default = l;
      }, { "../core/constants": 250, "../core/main": 260 }], 278: [function(e, t, r) {
        "use strict";
        Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, o = (n = e("../core/main")) && n.__esModule ? n : { default: n };
        o.default.prototype.isKeyPressed = false, o.default.prototype.keyIsPressed = false, o.default.prototype.key = "", o.default.prototype.keyCode = 0, o.default.prototype._onkeydown = function(e2) {
          if (!this._downKeys[e2.which]) {
            this._setProperty("isKeyPressed", true), this._setProperty("keyIsPressed", true), this._setProperty("keyCode", e2.which), this._downKeys[e2.which] = true, this._setProperty("key", e2.key || String.fromCharCode(e2.which) || e2.which);
            var t2 = this._isGlobal ? window : this;
            if (typeof t2.keyPressed == "function" && !e2.charCode)
              t2.keyPressed(e2) === false && e2.preventDefault();
          }
        }, o.default.prototype._onkeyup = function(e2) {
          this._downKeys[e2.which] = false, this._areDownKeys() || (this._setProperty("isKeyPressed", false), this._setProperty("keyIsPressed", false)), this._setProperty("_lastKeyCodeTyped", null), this._setProperty("key", e2.key || String.fromCharCode(e2.which) || e2.which), this._setProperty("keyCode", e2.which);
          var t2 = this._isGlobal ? window : this;
          typeof t2.keyReleased == "function" && t2.keyReleased(e2) === false && e2.preventDefault();
        }, o.default.prototype._onkeypress = function(e2) {
          if (e2.which !== this._lastKeyCodeTyped) {
            this._setProperty("_lastKeyCodeTyped", e2.which), this._setProperty("key", e2.key || String.fromCharCode(e2.which) || e2.which);
            var t2 = this._isGlobal ? window : this;
            if (typeof t2.keyTyped == "function")
              t2.keyTyped(e2) === false && e2.preventDefault();
          }
        }, o.default.prototype._onblur = function(e2) {
          this._downKeys = {};
        }, o.default.prototype.keyIsDown = function(e2) {
          return o.default._validateParameters("keyIsDown", arguments), this._downKeys[e2] || false;
        }, o.default.prototype._areDownKeys = function() {
          for (var e2 in this._downKeys)
            if (this._downKeys.hasOwnProperty(e2) && this._downKeys[e2] === true)
              return true;
          return false;
        };
        var i = o.default;
        r.default = i;
      }, { "../core/main": 260 }], 279: [function(e, t, r) {
        "use strict";
        function a(e2) {
          return (a = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e3) {
            return typeof e3;
          } : function(e3) {
            return e3 && typeof Symbol == "function" && e3.constructor === Symbol && e3 !== Symbol.prototype ? "symbol" : typeof e3;
          })(e2);
        }
        e("core-js/modules/es.array.includes"), e("core-js/modules/es.string.includes"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, o = (n = e("../core/main")) && n.__esModule ? n : { default: n }, i = function(e2) {
          if (e2 && e2.__esModule)
            return e2;
          if (e2 === null || a(e2) !== "object" && typeof e2 != "function")
            return { default: e2 };
          var t2 = s();
          if (t2 && t2.has(e2))
            return t2.get(e2);
          var r2 = {}, n2 = Object.defineProperty && Object.getOwnPropertyDescriptor;
          for (var o2 in e2)
            if (Object.prototype.hasOwnProperty.call(e2, o2)) {
              var i2 = n2 ? Object.getOwnPropertyDescriptor(e2, o2) : null;
              i2 && (i2.get || i2.set) ? Object.defineProperty(r2, o2, i2) : r2[o2] = e2[o2];
            }
          r2.default = e2, t2 && t2.set(e2, r2);
          return r2;
        }(e("../core/constants"));
        function s() {
          if (typeof WeakMap != "function")
            return null;
          var e2 = new WeakMap();
          return s = function() {
            return e2;
          }, e2;
        }
        o.default.prototype.movedX = 0, o.default.prototype.movedY = 0, o.default.prototype._hasMouseInteracted = false, o.default.prototype.mouseX = 0, o.default.prototype.mouseY = 0, o.default.prototype.pmouseX = 0, o.default.prototype.pmouseY = 0, o.default.prototype.winMouseX = 0, o.default.prototype.winMouseY = 0, o.default.prototype.pwinMouseX = 0, o.default.prototype.pwinMouseY = 0, o.default.prototype.mouseButton = 0, o.default.prototype.mouseIsPressed = false, o.default.prototype._updateNextMouseCoords = function(e2) {
          if (this._curElement !== null && (!e2.touches || 0 < e2.touches.length)) {
            var t2 = function(e3, t3, r2, n2) {
              n2 && !n2.clientX && (n2.touches ? n2 = n2.touches[0] : n2.changedTouches && (n2 = n2.changedTouches[0]));
              var o2 = e3.getBoundingClientRect(), i2 = e3.scrollWidth / t3 || 1, a2 = e3.scrollHeight / r2 || 1;
              return { x: (n2.clientX - o2.left) / i2, y: (n2.clientY - o2.top) / a2, winX: n2.clientX, winY: n2.clientY, id: n2.identifier };
            }(this._curElement.elt, this.width, this.height, e2);
            this._setProperty("movedX", e2.movementX), this._setProperty("movedY", e2.movementY), this._setProperty("mouseX", t2.x), this._setProperty("mouseY", t2.y), this._setProperty("winMouseX", t2.winX), this._setProperty("winMouseY", t2.winY);
          }
          this._hasMouseInteracted || (this._updateMouseCoords(), this._setProperty("_hasMouseInteracted", true));
        }, o.default.prototype._updateMouseCoords = function() {
          this._setProperty("pmouseX", this.mouseX), this._setProperty("pmouseY", this.mouseY), this._setProperty("pwinMouseX", this.winMouseX), this._setProperty("pwinMouseY", this.winMouseY), this._setProperty("_pmouseWheelDeltaY", this._mouseWheelDeltaY);
        }, o.default.prototype._setMouseButton = function(e2) {
          e2.button === 1 ? this._setProperty("mouseButton", i.CENTER) : e2.button === 2 ? this._setProperty("mouseButton", i.RIGHT) : this._setProperty("mouseButton", i.LEFT);
        }, o.default.prototype._onmousemove = function(e2) {
          var t2 = this._isGlobal ? window : this;
          this._updateNextMouseCoords(e2), this.mouseIsPressed ? typeof t2.mouseDragged == "function" ? t2.mouseDragged(e2) === false && e2.preventDefault() : typeof t2.touchMoved == "function" && t2.touchMoved(e2) === false && e2.preventDefault() : typeof t2.mouseMoved == "function" && t2.mouseMoved(e2) === false && e2.preventDefault();
        }, o.default.prototype._onmousedown = function(e2) {
          var t2 = this._isGlobal ? window : this;
          this._setProperty("mouseIsPressed", true), this._setMouseButton(e2), this._updateNextMouseCoords(e2), typeof t2.mousePressed == "function" ? t2.mousePressed(e2) === false && e2.preventDefault() : navigator.userAgent.toLowerCase().includes("safari") && typeof t2.touchStarted == "function" && t2.touchStarted(e2) === false && e2.preventDefault();
        }, o.default.prototype._onmouseup = function(e2) {
          var t2 = this._isGlobal ? window : this;
          this._setProperty("mouseIsPressed", false), typeof t2.mouseReleased == "function" ? t2.mouseReleased(e2) === false && e2.preventDefault() : typeof t2.touchEnded == "function" && t2.touchEnded(e2) === false && e2.preventDefault();
        }, o.default.prototype._ondragend = o.default.prototype._onmouseup, o.default.prototype._ondragover = o.default.prototype._onmousemove, o.default.prototype._onclick = function(e2) {
          var t2 = this._isGlobal ? window : this;
          typeof t2.mouseClicked == "function" && t2.mouseClicked(e2) === false && e2.preventDefault();
        }, o.default.prototype._ondblclick = function(e2) {
          var t2 = this._isGlobal ? window : this;
          typeof t2.doubleClicked == "function" && t2.doubleClicked(e2) === false && e2.preventDefault();
        }, o.default.prototype._mouseWheelDeltaY = 0, o.default.prototype._pmouseWheelDeltaY = 0, o.default.prototype._onwheel = function(e2) {
          var t2 = this._isGlobal ? window : this;
          this._setProperty("_mouseWheelDeltaY", e2.deltaY), typeof t2.mouseWheel == "function" && (e2.delta = e2.deltaY, t2.mouseWheel(e2) === false && e2.preventDefault());
        }, o.default.prototype.requestPointerLock = function() {
          var e2 = this._curElement.elt;
          return e2.requestPointerLock = e2.requestPointerLock || e2.mozRequestPointerLock, e2.requestPointerLock ? (e2.requestPointerLock(), true) : (console.log("requestPointerLock is not implemented in this browser"), false);
        }, o.default.prototype.exitPointerLock = function() {
          document.exitPointerLock();
        };
        var l = o.default;
        r.default = l;
      }, { "../core/constants": 250, "../core/main": 260, "core-js/modules/es.array.includes": 154, "core-js/modules/es.string.includes": 182 }], 280: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.array.includes"), e("core-js/modules/es.string.includes"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, o = (n = e("../core/main")) && n.__esModule ? n : { default: n };
        function i(e2, t2, r2, n2, o2) {
          var i2 = 4 < arguments.length && o2 !== void 0 ? o2 : 0, a2 = e2.getBoundingClientRect(), s = e2.scrollWidth / t2 || 1, l = e2.scrollHeight / r2 || 1, u = n2.touches[i2] || n2.changedTouches[i2];
          return { x: (u.clientX - a2.left) / s, y: (u.clientY - a2.top) / l, winX: u.clientX, winY: u.clientY, id: u.identifier };
        }
        o.default.prototype.touches = [], o.default.prototype._updateTouchCoords = function(e2) {
          if (this._curElement !== null) {
            for (var t2 = [], r2 = 0; r2 < e2.touches.length; r2++)
              t2[r2] = i(this._curElement.elt, this.width, this.height, e2, r2);
            this._setProperty("touches", t2);
          }
        }, o.default.prototype._ontouchstart = function(e2) {
          var t2 = this._isGlobal ? window : this;
          this._setProperty("mouseIsPressed", true), this._updateTouchCoords(e2), this._updateNextMouseCoords(e2), this._updateMouseCoords(), typeof t2.touchStarted == "function" ? t2.touchStarted(e2) === false && e2.preventDefault() : navigator.userAgent.toLowerCase().includes("safari") && typeof t2.mousePressed == "function" && t2.mousePressed(e2) === false && e2.preventDefault();
        }, o.default.prototype._ontouchmove = function(e2) {
          var t2 = this._isGlobal ? window : this;
          this._updateTouchCoords(e2), this._updateNextMouseCoords(e2), typeof t2.touchMoved == "function" ? t2.touchMoved(e2) === false && e2.preventDefault() : typeof t2.mouseDragged == "function" && t2.mouseDragged(e2) === false && e2.preventDefault();
        }, o.default.prototype._ontouchend = function(e2) {
          this._setProperty("mouseIsPressed", false), this._updateTouchCoords(e2), this._updateNextMouseCoords(e2);
          var t2 = this._isGlobal ? window : this;
          typeof t2.touchEnded == "function" ? t2.touchEnded(e2) === false && e2.preventDefault() : typeof t2.mouseReleased == "function" && t2.mouseReleased(e2) === false && e2.preventDefault();
        };
        var a = o.default;
        r.default = a;
      }, { "../core/main": 260, "core-js/modules/es.array.includes": 154, "core-js/modules/es.string.includes": 182 }], 281: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.array.iterator"), e("core-js/modules/es.object.to-string"), e("core-js/modules/es.typed-array.int32-array"), e("core-js/modules/es.typed-array.uint8-array"), e("core-js/modules/es.typed-array.copy-within"), e("core-js/modules/es.typed-array.every"), e("core-js/modules/es.typed-array.fill"), e("core-js/modules/es.typed-array.filter"), e("core-js/modules/es.typed-array.find"), e("core-js/modules/es.typed-array.find-index"), e("core-js/modules/es.typed-array.for-each"), e("core-js/modules/es.typed-array.includes"), e("core-js/modules/es.typed-array.index-of"), e("core-js/modules/es.typed-array.iterator"), e("core-js/modules/es.typed-array.join"), e("core-js/modules/es.typed-array.last-index-of"), e("core-js/modules/es.typed-array.map"), e("core-js/modules/es.typed-array.reduce"), e("core-js/modules/es.typed-array.reduce-right"), e("core-js/modules/es.typed-array.reverse"), e("core-js/modules/es.typed-array.set"), e("core-js/modules/es.typed-array.slice"), e("core-js/modules/es.typed-array.some"), e("core-js/modules/es.typed-array.sort"), e("core-js/modules/es.typed-array.subarray"), e("core-js/modules/es.typed-array.to-locale-string"), e("core-js/modules/es.typed-array.to-string"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var O, C, L, P, k = {};
        function n(e2, t2) {
          for (var r2, n2, o2, i, a, s, l, u, c, d, f = k._toPixels(e2), h = e2.width, p = e2.height, y = h * p, m = new Int32Array(y), g = 0; g < y; g++)
            m[g] = k._getARGB(f, g);
          var v, b, _, x, w = new Int32Array(y), S = new Int32Array(y), j = new Int32Array(y), M = new Int32Array(y), E = 0;
          for (!function(e3) {
            var t3 = 3.5 * e3 | 0;
            if (O !== (t3 = t3 < 1 ? 1 : t3 < 248 ? t3 : 248)) {
              C = 1 + (O = t3) << 1, L = new Int32Array(C), P = new Array(C);
              for (var r3 = 0; r3 < C; r3++)
                P[r3] = new Int32Array(256);
              for (var n3, o3, i2, a2, s2 = 1, l2 = t3 - 1; s2 < t3; s2++) {
                L[t3 + s2] = L[l2] = o3 = l2 * l2, i2 = P[t3 + s2], a2 = P[l2--];
                for (var u2 = 0; u2 < 256; u2++)
                  i2[u2] = a2[u2] = o3 * u2;
              }
              n3 = L[t3] = t3 * t3, i2 = P[t3];
              for (var c2 = 0; c2 < 256; c2++)
                i2[c2] = n3 * c2;
            }
          }(t2), b = 0; b < p; b++) {
            for (v = 0; v < h; v++) {
              if (i = o2 = n2 = a = r2 = 0, (s = v - O) < 0)
                d = -s, s = 0;
              else {
                if (h <= s)
                  break;
                d = 0;
              }
              for (_ = d; _ < C && !(h <= s); _++) {
                var T = m[s + E];
                a += (x = P[_])[(-16777216 & T) >>> 24], n2 += x[(16711680 & T) >> 16], o2 += x[(65280 & T) >> 8], i += x[255 & T], r2 += L[_], s++;
              }
              w[l = E + v] = a / r2, S[l] = n2 / r2, j[l] = o2 / r2, M[l] = i / r2;
            }
            E += h;
          }
          for (c = (u = -O) * h, b = E = 0; b < p; b++) {
            for (v = 0; v < h; v++) {
              if (i = o2 = n2 = a = r2 = 0, u < 0)
                d = l = -u, s = v;
              else {
                if (p <= u)
                  break;
                d = 0, l = u, s = v + c;
              }
              for (_ = d; _ < C && !(p <= l); _++)
                a += (x = P[_])[w[s]], n2 += x[S[s]], o2 += x[j[s]], i += x[M[s]], r2 += L[_], l++, s += h;
              m[v + E] = a / r2 << 24 | n2 / r2 << 16 | o2 / r2 << 8 | i / r2;
            }
            E += h, c += h, u++;
          }
          k._setPixels(f, m);
        }
        k._toPixels = function(e2) {
          if (e2 instanceof ImageData)
            return e2.data;
          if (e2.getContext("2d"))
            return e2.getContext("2d").getImageData(0, 0, e2.width, e2.height).data;
          if (e2.getContext("webgl")) {
            var t2 = e2.getContext("webgl"), r2 = t2.drawingBufferWidth * t2.drawingBufferHeight * 4, n2 = new Uint8Array(r2);
            return t2.readPixels(0, 0, e2.width, e2.height, t2.RGBA, t2.UNSIGNED_BYTE, n2), n2;
          }
        }, k._getARGB = function(e2, t2) {
          var r2 = 4 * t2;
          return e2[3 + r2] << 24 & 4278190080 | e2[r2] << 16 & 16711680 | e2[1 + r2] << 8 & 65280 | 255 & e2[2 + r2];
        }, k._setPixels = function(e2, t2) {
          for (var r2 = 0, n2 = 0, o2 = e2.length; n2 < o2; n2++)
            e2[(r2 = 4 * n2) + 0] = (16711680 & t2[n2]) >>> 16, e2[r2 + 1] = (65280 & t2[n2]) >>> 8, e2[r2 + 2] = 255 & t2[n2], e2[r2 + 3] = (4278190080 & t2[n2]) >>> 24;
        }, k._toImageData = function(e2) {
          return e2 instanceof ImageData ? e2 : e2.getContext("2d").getImageData(0, 0, e2.width, e2.height);
        }, k._createImageData = function(e2, t2) {
          return k._tmpCanvas = document.createElement("canvas"), k._tmpCtx = k._tmpCanvas.getContext("2d"), this._tmpCtx.createImageData(e2, t2);
        }, k.apply = function(e2, t2, r2) {
          var n2 = e2.getContext("2d"), o2 = n2.getImageData(0, 0, e2.width, e2.height), i = t2(o2, r2);
          i instanceof ImageData ? n2.putImageData(i, 0, 0, 0, 0, e2.width, e2.height) : n2.putImageData(o2, 0, 0, 0, 0, e2.width, e2.height);
        }, k.threshold = function(e2, t2) {
          var r2 = k._toPixels(e2);
          t2 === void 0 && (t2 = 0.5);
          for (var n2 = Math.floor(255 * t2), o2 = 0; o2 < r2.length; o2 += 4) {
            var i = void 0;
            i = n2 <= 0.2126 * r2[o2] + 0.7152 * r2[o2 + 1] + 0.0722 * r2[o2 + 2] ? 255 : 0, r2[o2] = r2[o2 + 1] = r2[o2 + 2] = i;
          }
        }, k.gray = function(e2) {
          for (var t2 = k._toPixels(e2), r2 = 0; r2 < t2.length; r2 += 4) {
            var n2 = 0.2126 * t2[r2] + 0.7152 * t2[r2 + 1] + 0.0722 * t2[r2 + 2];
            t2[r2] = t2[r2 + 1] = t2[r2 + 2] = n2;
          }
        }, k.opaque = function(e2) {
          for (var t2 = k._toPixels(e2), r2 = 0; r2 < t2.length; r2 += 4)
            t2[r2 + 3] = 255;
          return t2;
        }, k.invert = function(e2) {
          for (var t2 = k._toPixels(e2), r2 = 0; r2 < t2.length; r2 += 4)
            t2[r2] = 255 - t2[r2], t2[r2 + 1] = 255 - t2[r2 + 1], t2[r2 + 2] = 255 - t2[r2 + 2];
        }, k.posterize = function(e2, t2) {
          var r2 = k._toPixels(e2);
          if (t2 < 2 || 255 < t2)
            throw new Error("Level must be greater than 2 and less than 255 for posterize");
          for (var n2 = t2 - 1, o2 = 0; o2 < r2.length; o2 += 4) {
            var i = r2[o2], a = r2[o2 + 1], s = r2[o2 + 2];
            r2[o2] = 255 * (i * t2 >> 8) / n2, r2[o2 + 1] = 255 * (a * t2 >> 8) / n2, r2[o2 + 2] = 255 * (s * t2 >> 8) / n2;
          }
        }, k.dilate = function(e2) {
          for (var t2, r2, n2, o2, i, a, s, l, u, c, d, f, h, p, y, m, g, v = k._toPixels(e2), b = 0, _ = v.length ? v.length / 4 : 0, x = new Int32Array(_); b < _; )
            for (r2 = (t2 = b) + e2.width; b < r2; )
              n2 = o2 = k._getARGB(v, b), (s = b - 1) < t2 && (s = b), r2 <= (a = b + 1) && (a = b), (l = b - e2.width) < 0 && (l = 0), _ <= (u = b + e2.width) && (u = b), f = k._getARGB(v, l), d = k._getARGB(v, s), h = k._getARGB(v, u), (i = 77 * (n2 >> 16 & 255) + 151 * (n2 >> 8 & 255) + 28 * (255 & n2)) < (y = 77 * (d >> 16 & 255) + 151 * (d >> 8 & 255) + 28 * (255 & d)) && (o2 = d, i = y), i < (p = 77 * ((c = k._getARGB(v, a)) >> 16 & 255) + 151 * (c >> 8 & 255) + 28 * (255 & c)) && (o2 = c, i = p), i < (m = 77 * (f >> 16 & 255) + 151 * (f >> 8 & 255) + 28 * (255 & f)) && (o2 = f, i = m), i < (g = 77 * (h >> 16 & 255) + 151 * (h >> 8 & 255) + 28 * (255 & h)) && (o2 = h, i = g), x[b++] = o2;
          k._setPixels(v, x);
        }, k.erode = function(e2) {
          for (var t2, r2, n2, o2, i, a, s, l, u, c, d, f, h, p, y, m, g, v = k._toPixels(e2), b = 0, _ = v.length ? v.length / 4 : 0, x = new Int32Array(_); b < _; )
            for (r2 = (t2 = b) + e2.width; b < r2; )
              n2 = o2 = k._getARGB(v, b), (s = b - 1) < t2 && (s = b), r2 <= (a = b + 1) && (a = b), (l = b - e2.width) < 0 && (l = 0), _ <= (u = b + e2.width) && (u = b), f = k._getARGB(v, l), d = k._getARGB(v, s), h = k._getARGB(v, u), (y = 77 * (d >> 16 & 255) + 151 * (d >> 8 & 255) + 28 * (255 & d)) < (i = 77 * (n2 >> 16 & 255) + 151 * (n2 >> 8 & 255) + 28 * (255 & n2)) && (o2 = d, i = y), (p = 77 * ((c = k._getARGB(v, a)) >> 16 & 255) + 151 * (c >> 8 & 255) + 28 * (255 & c)) < i && (o2 = c, i = p), (m = 77 * (f >> 16 & 255) + 151 * (f >> 8 & 255) + 28 * (255 & f)) < i && (o2 = f, i = m), (g = 77 * (h >> 16 & 255) + 151 * (h >> 8 & 255) + 28 * (255 & h)) < i && (o2 = h, i = g), x[b++] = o2;
          k._setPixels(v, x);
        }, k.blur = function(e2, t2) {
          n(e2, t2);
        };
        var o = k;
        r.default = o;
      }, { "core-js/modules/es.array.iterator": 156, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.typed-array.copy-within": 194, "core-js/modules/es.typed-array.every": 195, "core-js/modules/es.typed-array.fill": 196, "core-js/modules/es.typed-array.filter": 197, "core-js/modules/es.typed-array.find": 199, "core-js/modules/es.typed-array.find-index": 198, "core-js/modules/es.typed-array.for-each": 202, "core-js/modules/es.typed-array.includes": 203, "core-js/modules/es.typed-array.index-of": 204, "core-js/modules/es.typed-array.int32-array": 206, "core-js/modules/es.typed-array.iterator": 207, "core-js/modules/es.typed-array.join": 208, "core-js/modules/es.typed-array.last-index-of": 209, "core-js/modules/es.typed-array.map": 210, "core-js/modules/es.typed-array.reduce": 212, "core-js/modules/es.typed-array.reduce-right": 211, "core-js/modules/es.typed-array.reverse": 213, "core-js/modules/es.typed-array.set": 214, "core-js/modules/es.typed-array.slice": 215, "core-js/modules/es.typed-array.some": 216, "core-js/modules/es.typed-array.sort": 217, "core-js/modules/es.typed-array.subarray": 218, "core-js/modules/es.typed-array.to-locale-string": 219, "core-js/modules/es.typed-array.to-string": 220, "core-js/modules/es.typed-array.uint8-array": 223 }], 282: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.symbol"), e("core-js/modules/es.symbol.description"), e("core-js/modules/es.symbol.iterator"), e("core-js/modules/es.array.concat"), e("core-js/modules/es.array.filter"), e("core-js/modules/es.array.from"), e("core-js/modules/es.array.iterator"), e("core-js/modules/es.array.map"), e("core-js/modules/es.array.slice"), e("core-js/modules/es.object.keys"), e("core-js/modules/es.object.to-string"), e("core-js/modules/es.regexp.exec"), e("core-js/modules/es.regexp.to-string"), e("core-js/modules/es.set"), e("core-js/modules/es.string.iterator"), e("core-js/modules/es.string.replace"), e("core-js/modules/es.string.split"), e("core-js/modules/es.typed-array.uint8-array"), e("core-js/modules/es.typed-array.uint32-array"), e("core-js/modules/es.typed-array.copy-within"), e("core-js/modules/es.typed-array.every"), e("core-js/modules/es.typed-array.fill"), e("core-js/modules/es.typed-array.filter"), e("core-js/modules/es.typed-array.find"), e("core-js/modules/es.typed-array.find-index"), e("core-js/modules/es.typed-array.for-each"), e("core-js/modules/es.typed-array.includes"), e("core-js/modules/es.typed-array.index-of"), e("core-js/modules/es.typed-array.iterator"), e("core-js/modules/es.typed-array.join"), e("core-js/modules/es.typed-array.last-index-of"), e("core-js/modules/es.typed-array.map"), e("core-js/modules/es.typed-array.reduce"), e("core-js/modules/es.typed-array.reduce-right"), e("core-js/modules/es.typed-array.reverse"), e("core-js/modules/es.typed-array.set"), e("core-js/modules/es.typed-array.slice"), e("core-js/modules/es.typed-array.some"), e("core-js/modules/es.typed-array.sort"), e("core-js/modules/es.typed-array.subarray"), e("core-js/modules/es.typed-array.to-locale-string"), e("core-js/modules/es.typed-array.to-string"), e("core-js/modules/web.dom-collections.iterator"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var k = n(e("../core/main")), A = n(e("omggif"));
        function n(e2) {
          return e2 && e2.__esModule ? e2 : { default: e2 };
        }
        function R(e2) {
          return function(e3) {
            if (Array.isArray(e3)) {
              for (var t2 = 0, r2 = new Array(e3.length); t2 < e3.length; t2++)
                r2[t2] = e3[t2];
              return r2;
            }
          }(e2) || function(e3) {
            if (Symbol.iterator in Object(e3) || Object.prototype.toString.call(e3) === "[object Arguments]")
              return Array.from(e3);
          }(e2) || function() {
            throw new TypeError("Invalid attempt to spread non-iterable instance");
          }();
        }
        k.default.prototype.createImage = function(e2, t2) {
          return k.default._validateParameters("createImage", arguments), new k.default.Image(e2, t2);
        }, k.default.prototype.saveCanvas = function() {
          k.default._validateParameters("saveCanvas", arguments);
          var e2, t2, r2, n2, o2 = [].slice.call(arguments);
          switch (arguments[0] instanceof HTMLCanvasElement ? (e2 = arguments[0], o2.shift()) : arguments[0] instanceof k.default.Element ? (e2 = arguments[0].elt, o2.shift()) : e2 = this._curElement && this._curElement.elt, 1 <= o2.length && (t2 = o2[0]), 2 <= o2.length && (r2 = o2[1]), r2 = r2 || k.default.prototype._checkFileExtension(t2, r2)[1] || "png") {
            default:
              n2 = "image/png";
              break;
            case "jpeg":
            case "jpg":
              n2 = "image/jpeg";
          }
          e2.toBlob(function(e3) {
            k.default.prototype.downloadFile(e3, t2, r2);
          }, n2);
        }, k.default.prototype.saveGif = function(p, e2) {
          var y = p.gifProperties, t2 = y.loopLimit;
          t2 === 1 ? t2 = null : t2 === null && (t2 = 0);
          for (var r2 = new Uint8Array(p.width * p.height * y.numFrames), m = [], n2 = {}, o2 = 0; o2 < y.numFrames; o2++) {
            for (var i = new Set(), a = y.frames[o2].image.data, s = a.length, l = new Uint32Array(p.width * p.height), u = 0, c = 0; u < s; u += 4, c++) {
              var d = a[u + 0] << 16 | a[u + 1] << 8 | a[u + 2] << 0;
              i.add(d), l[c] = d;
            }
            var f = R(i).sort().toString();
            n2[f] === void 0 ? n2[f] = { freq: 1, frames: [o2] } : (n2[f].freq += 1, n2[f].frames.push(o2)), m.push(l);
          }
          var g = [], h = Object.keys(n2).sort(function(e3, t3) {
            return n2[t3].freq - n2[e3].freq;
          }), v = h[0].split(",").map(function(e3) {
            return parseInt(e3);
          });
          g = g.concat(n2[v].frames);
          for (var b = new Set(v), _ = 1; _ < h.length; _++) {
            var x = h[_].split(",").map(function(e3) {
              return parseInt(e3);
            }).filter(function(e3) {
              return !b.has(e3);
            });
            if (v.length + x.length <= 256) {
              for (var w = 0; w < x.length; w++)
                v.push(x[w]), b.add(x[w]);
              g = g.concat(n2[h[_]].frames);
            }
          }
          g = new Set(g);
          for (var S = {}, j = 0; j < v.length; j++)
            S[v[j]] || (S[v[j]] = j);
          for (var M = 1; M < v.length; )
            M <<= 1;
          v.length = M;
          for (var E = { loop: t2, palette: new Uint32Array(v) }, T = new A.default.GifWriter(r2, p.width, p.height, E), O = {}, C = function(e3) {
            for (var t3 = !g.has(e3), r3 = t3 ? [] : v, n3 = new Uint8Array(p.width * p.height), o3 = {}, i2 = new Set(), a2 = 0; a2 < m[e3].length; a2++) {
              var s2 = m[e3][a2];
              t3 ? (o3[s2] === void 0 && (o3[s2] = r3.length, r3.push(s2)), n3[a2] = o3[s2]) : n3[a2] = S[s2], 0 < e3 && m[e3 - 1][a2] !== s2 && i2.add(s2);
            }
            var l2 = {}, u2 = r3.filter(function(e4) {
              return !i2.has(e4);
            });
            if (0 < u2.length) {
              var c2 = u2[0], d2 = t3 ? o3[c2] : S[c2];
              if (0 < e3) {
                for (var f2 = 0; f2 < m[e3].length; f2++)
                  m[e3 - 1][f2] === m[e3][f2] && (n3[f2] = d2);
                l2.transparent = d2, O.frameOpts.disposal = 1;
              }
            }
            if (l2.delay = y.frames[e3].delay / 10, t3) {
              for (var h2 = 1; h2 < r3.length; )
                h2 <<= 1;
              r3.length = h2, l2.palette = new Uint32Array(r3);
            }
            0 < e3 && T.addFrame(0, 0, p.width, p.height, O.pixelPaletteIndex, O.frameOpts), O = { pixelPaletteIndex: n3, frameOpts: l2 };
          }, L = 0; L < y.numFrames; L++)
            C(L);
          O.frameOpts.disposal = 1, T.addFrame(0, 0, p.width, p.height, O.pixelPaletteIndex, O.frameOpts);
          var P = new Blob([r2.slice(0, T.end())], { type: "image/gif" });
          k.default.prototype.downloadFile(P, e2, "gif");
        }, k.default.prototype.saveFrames = function(e2, t2, r2, n2, a) {
          k.default._validateParameters("saveFrames", arguments);
          var o2 = r2 || 3;
          o2 = k.default.prototype.constrain(o2, 0, 15), o2 *= 1e3;
          var i = n2 || 15;
          i = k.default.prototype.constrain(i, 0, 22);
          var s = 0, l = k.default.prototype._makeFrame, u = this._curElement.elt, c = [], d = setInterval(function() {
            c.push(l(e2 + s, t2, u)), s++;
          }, 1e3 / i);
          setTimeout(function() {
            if (clearInterval(d), a)
              a(c);
            else {
              var e3 = true, t3 = false, r3 = void 0;
              try {
                for (var n3, o3 = c[Symbol.iterator](); !(e3 = (n3 = o3.next()).done); e3 = true) {
                  var i2 = n3.value;
                  k.default.prototype.downloadFile(i2.imageData, i2.filename, i2.ext);
                }
              } catch (e4) {
                t3 = true, r3 = e4;
              } finally {
                try {
                  e3 || o3.return == null || o3.return();
                } finally {
                  if (t3)
                    throw r3;
                }
              }
            }
            c = [];
          }, o2 + 0.01);
        }, k.default.prototype._makeFrame = function(e2, t2, r2) {
          var n2, o2;
          if (n2 = this ? this._curElement.elt : r2, t2)
            switch (t2.toLowerCase()) {
              case "png":
                o2 = "image/png";
                break;
              case "jpeg":
              case "jpg":
                o2 = "image/jpeg";
                break;
              default:
                o2 = "image/png";
            }
          else
            t2 = "png", o2 = "image/png";
          var i = n2.toDataURL(o2);
          i = i.replace(o2, "image/octet-stream");
          var a = {};
          return a.imageData = i, a.filename = e2, a.ext = t2, a;
        };
        var o = k.default;
        r.default = o;
      }, { "../core/main": 260, "core-js/modules/es.array.concat": 148, "core-js/modules/es.array.filter": 151, "core-js/modules/es.array.from": 153, "core-js/modules/es.array.iterator": 156, "core-js/modules/es.array.map": 159, "core-js/modules/es.array.slice": 160, "core-js/modules/es.object.keys": 173, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.regexp.exec": 178, "core-js/modules/es.regexp.to-string": 179, "core-js/modules/es.set": 180, "core-js/modules/es.string.iterator": 183, "core-js/modules/es.string.replace": 186, "core-js/modules/es.string.split": 188, "core-js/modules/es.symbol": 193, "core-js/modules/es.symbol.description": 191, "core-js/modules/es.symbol.iterator": 192, "core-js/modules/es.typed-array.copy-within": 194, "core-js/modules/es.typed-array.every": 195, "core-js/modules/es.typed-array.fill": 196, "core-js/modules/es.typed-array.filter": 197, "core-js/modules/es.typed-array.find": 199, "core-js/modules/es.typed-array.find-index": 198, "core-js/modules/es.typed-array.for-each": 202, "core-js/modules/es.typed-array.includes": 203, "core-js/modules/es.typed-array.index-of": 204, "core-js/modules/es.typed-array.iterator": 207, "core-js/modules/es.typed-array.join": 208, "core-js/modules/es.typed-array.last-index-of": 209, "core-js/modules/es.typed-array.map": 210, "core-js/modules/es.typed-array.reduce": 212, "core-js/modules/es.typed-array.reduce-right": 211, "core-js/modules/es.typed-array.reverse": 213, "core-js/modules/es.typed-array.set": 214, "core-js/modules/es.typed-array.slice": 215, "core-js/modules/es.typed-array.some": 216, "core-js/modules/es.typed-array.sort": 217, "core-js/modules/es.typed-array.subarray": 218, "core-js/modules/es.typed-array.to-locale-string": 219, "core-js/modules/es.typed-array.to-string": 220, "core-js/modules/es.typed-array.uint32-array": 222, "core-js/modules/es.typed-array.uint8-array": 223, "core-js/modules/web.dom-collections.iterator": 226, omggif: 235 }], 283: [function(e, t, r) {
        "use strict";
        function a(e2) {
          return (a = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e3) {
            return typeof e3;
          } : function(e3) {
            return e3 && typeof Symbol == "function" && e3.constructor === Symbol && e3 !== Symbol.prototype ? "symbol" : typeof e3;
          })(e2);
        }
        e("core-js/modules/es.array.includes"), e("core-js/modules/es.array.index-of"), e("core-js/modules/es.array.iterator"), e("core-js/modules/es.array.slice"), e("core-js/modules/es.object.to-string"), e("core-js/modules/es.promise"), e("core-js/modules/es.string.includes"), e("core-js/modules/es.typed-array.uint8-array"), e("core-js/modules/es.typed-array.uint8-clamped-array"), e("core-js/modules/es.typed-array.copy-within"), e("core-js/modules/es.typed-array.every"), e("core-js/modules/es.typed-array.fill"), e("core-js/modules/es.typed-array.filter"), e("core-js/modules/es.typed-array.find"), e("core-js/modules/es.typed-array.find-index"), e("core-js/modules/es.typed-array.for-each"), e("core-js/modules/es.typed-array.includes"), e("core-js/modules/es.typed-array.index-of"), e("core-js/modules/es.typed-array.iterator"), e("core-js/modules/es.typed-array.join"), e("core-js/modules/es.typed-array.last-index-of"), e("core-js/modules/es.typed-array.map"), e("core-js/modules/es.typed-array.reduce"), e("core-js/modules/es.typed-array.reduce-right"), e("core-js/modules/es.typed-array.reverse"), e("core-js/modules/es.typed-array.set"), e("core-js/modules/es.typed-array.slice"), e("core-js/modules/es.typed-array.some"), e("core-js/modules/es.typed-array.sort"), e("core-js/modules/es.typed-array.subarray"), e("core-js/modules/es.typed-array.to-locale-string"), e("core-js/modules/es.typed-array.to-string"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var x = o(e("../core/main")), d = o(e("./filters")), w = o(e("../core/helpers")), n = function(e2) {
          if (e2 && e2.__esModule)
            return e2;
          if (e2 === null || a(e2) !== "object" && typeof e2 != "function")
            return { default: e2 };
          var t2 = s();
          if (t2 && t2.has(e2))
            return t2.get(e2);
          var r2 = {}, n2 = Object.defineProperty && Object.getOwnPropertyDescriptor;
          for (var o2 in e2)
            if (Object.prototype.hasOwnProperty.call(e2, o2)) {
              var i2 = n2 ? Object.getOwnPropertyDescriptor(e2, o2) : null;
              i2 && (i2.get || i2.set) ? Object.defineProperty(r2, o2, i2) : r2[o2] = e2[o2];
            }
          r2.default = e2, t2 && t2.set(e2, r2);
          return r2;
        }(e("../core/constants")), m = o(e("omggif"));
        function s() {
          if (typeof WeakMap != "function")
            return null;
          var e2 = new WeakMap();
          return s = function() {
            return e2;
          }, e2;
        }
        function o(e2) {
          return e2 && e2.__esModule ? e2 : { default: e2 };
        }
        function S(e2, t2) {
          return 0 < e2 && e2 < t2 ? e2 : t2;
        }
        e("../core/friendly_errors/validate_params"), e("../core/friendly_errors/file_errors"), e("../core/friendly_errors/fes_core"), x.default.prototype.loadImage = function(n2, o2, i2) {
          x.default._validateParameters("loadImage", arguments);
          var a2 = new x.default.Image(1, 1, this), s2 = this, e2 = new Request(n2, { method: "GET", mode: "cors" });
          return fetch(n2, e2).then(function(e3) {
            var t2 = e3.headers.get("content-type");
            if (t2 === null && console.warn("The image you loaded does not have a Content-Type header. If you are using the online editor consider reuploading the asset."), t2 && t2.includes("image/gif"))
              e3.arrayBuffer().then(function(e4) {
                e4 && function(e5, r3, t3, n3, o3) {
                  var i3 = new m.default.GifReader(e5);
                  r3.width = r3.canvas.width = i3.width, r3.height = r3.canvas.height = i3.height;
                  var a3 = [], s3 = i3.numFrames(), l = new Uint8ClampedArray(r3.width * r3.height * 4);
                  if (1 < s3) {
                    for (var u = function(e6, t4) {
                      try {
                        t4.decodeAndBlitFrameRGBA(e6, l);
                      } catch (e7) {
                        x.default._friendlyFileLoadError(8, r3.src), typeof n3 == "function" ? n3(e7) : console.error(e7);
                      }
                    }, c = 0; c < s3; c++) {
                      var d2 = i3.frameInfo(c), f = r3.drawingContext.getImageData(0, 0, r3.width, r3.height);
                      l = f.data.slice(), u(c, i3);
                      var h = new ImageData(l, r3.width, r3.height);
                      r3.drawingContext.putImageData(h, 0, 0);
                      var p = d2.delay;
                      p === 0 && (p = 10), a3.push({ image: r3.drawingContext.getImageData(0, 0, r3.width, r3.height), delay: 10 * p }), d2.disposal === 2 ? r3.drawingContext.clearRect(d2.x, d2.y, d2.width, d2.height) : d2.disposal === 3 && r3.drawingContext.putImageData(f, 0, 0, d2.x, d2.y, d2.width, d2.height);
                    }
                    var y = i3.loopCount();
                    y === null ? y = 1 : y === 0 && (y = null), r3.drawingContext.putImageData(a3[0].image, 0, 0), r3.gifProperties = { displayIndex: 0, loopLimit: y, loopCount: 0, frames: a3, numFrames: s3, playing: true, timeDisplayed: 0, lastChangeTime: 0 };
                  }
                  typeof t3 == "function" && t3(r3);
                  o3();
                }(new Uint8Array(e4), a2, o2, i2, function(e5) {
                  s2._decrementPreload();
                }.bind(s2));
              }, function(e4) {
                typeof i2 == "function" ? i2(e4) : console.error(e4);
              });
            else {
              var r2 = new Image();
              r2.onload = function() {
                a2.width = a2.canvas.width = r2.width, a2.height = a2.canvas.height = r2.height, a2.drawingContext.drawImage(r2, 0, 0), a2.modified = true, typeof o2 == "function" && o2(a2), s2._decrementPreload();
              }, r2.onerror = function(e4) {
                x.default._friendlyFileLoadError(0, r2.src), typeof i2 == "function" ? i2(e4) : console.error(e4);
              }, n2.indexOf("data:image/") !== 0 && (r2.crossOrigin = "Anonymous"), r2.src = n2;
            }
            a2.modified = true;
          }).catch(function(e3) {
            x.default._friendlyFileLoadError(0, n2), typeof i2 == "function" ? i2(e3) : console.error(e3);
          }), a2;
        }, x.default.prototype.image = function(e2, t2, r2, n2, o2, i2, a2, s2, l) {
          x.default._validateParameters("image", arguments);
          var u = e2.width, c = e2.height;
          e2.elt && e2.elt.videoWidth && !e2.canvas && (u = e2.elt.videoWidth, c = e2.elt.videoHeight);
          var d2 = t2, f = r2, h = n2 || u, p = o2 || c, y = i2 || 0, m2 = a2 || 0, g = s2 || u, v = l || c;
          g = S(g, u), v = S(v, c);
          var b = 1;
          e2.elt && !e2.canvas && e2.elt.style.width && (b = e2.elt.videoWidth && !n2 ? e2.elt.videoWidth : e2.elt.width, b /= parseInt(e2.elt.style.width, 10)), y *= b, m2 *= b, v *= b, g *= b;
          var _ = w.default.modeAdjust(d2, f, h, p, this._renderer._imageMode);
          this._renderer.image(e2, y, m2, g, v, _.x, _.y, _.w, _.h);
        }, x.default.prototype.tint = function() {
          for (var e2 = arguments.length, t2 = new Array(e2), r2 = 0; r2 < e2; r2++)
            t2[r2] = arguments[r2];
          x.default._validateParameters("tint", t2);
          var n2 = this.color.apply(this, t2);
          this._renderer._tint = n2.levels;
        }, x.default.prototype.noTint = function() {
          this._renderer._tint = null;
        }, x.default.prototype._getTintedImageCanvas = function(e2) {
          if (!e2.canvas)
            return e2;
          var t2 = d.default._toPixels(e2.canvas), r2 = document.createElement("canvas");
          r2.width = e2.canvas.width, r2.height = e2.canvas.height;
          for (var n2 = r2.getContext("2d"), o2 = n2.createImageData(e2.canvas.width, e2.canvas.height), i2 = o2.data, a2 = 0; a2 < t2.length; a2 += 4) {
            var s2 = t2[a2], l = t2[a2 + 1], u = t2[a2 + 2], c = t2[a2 + 3];
            i2[a2] = s2 * this._renderer._tint[0] / 255, i2[a2 + 1] = l * this._renderer._tint[1] / 255, i2[a2 + 2] = u * this._renderer._tint[2] / 255, i2[a2 + 3] = c * this._renderer._tint[3] / 255;
          }
          return n2.putImageData(o2, 0, 0), r2;
        }, x.default.prototype.imageMode = function(e2) {
          x.default._validateParameters("imageMode", arguments), e2 !== n.CORNER && e2 !== n.CORNERS && e2 !== n.CENTER || (this._renderer._imageMode = e2);
        };
        var i = x.default;
        r.default = i;
      }, { "../core/constants": 250, "../core/friendly_errors/fes_core": 252, "../core/friendly_errors/file_errors": 253, "../core/friendly_errors/validate_params": 255, "../core/helpers": 256, "../core/main": 260, "./filters": 281, "core-js/modules/es.array.includes": 154, "core-js/modules/es.array.index-of": 155, "core-js/modules/es.array.iterator": 156, "core-js/modules/es.array.slice": 160, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.promise": 175, "core-js/modules/es.string.includes": 182, "core-js/modules/es.typed-array.copy-within": 194, "core-js/modules/es.typed-array.every": 195, "core-js/modules/es.typed-array.fill": 196, "core-js/modules/es.typed-array.filter": 197, "core-js/modules/es.typed-array.find": 199, "core-js/modules/es.typed-array.find-index": 198, "core-js/modules/es.typed-array.for-each": 202, "core-js/modules/es.typed-array.includes": 203, "core-js/modules/es.typed-array.index-of": 204, "core-js/modules/es.typed-array.iterator": 207, "core-js/modules/es.typed-array.join": 208, "core-js/modules/es.typed-array.last-index-of": 209, "core-js/modules/es.typed-array.map": 210, "core-js/modules/es.typed-array.reduce": 212, "core-js/modules/es.typed-array.reduce-right": 211, "core-js/modules/es.typed-array.reverse": 213, "core-js/modules/es.typed-array.set": 214, "core-js/modules/es.typed-array.slice": 215, "core-js/modules/es.typed-array.some": 216, "core-js/modules/es.typed-array.sort": 217, "core-js/modules/es.typed-array.subarray": 218, "core-js/modules/es.typed-array.to-locale-string": 219, "core-js/modules/es.typed-array.to-string": 220, "core-js/modules/es.typed-array.uint8-array": 223, "core-js/modules/es.typed-array.uint8-clamped-array": 224, omggif: 235 }], 284: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.symbol"), e("core-js/modules/es.symbol.description"), e("core-js/modules/es.symbol.iterator"), e("core-js/modules/es.array.filter"), e("core-js/modules/es.array.iterator"), e("core-js/modules/es.object.to-string"), e("core-js/modules/es.string.iterator"), e("core-js/modules/web.dom-collections.iterator"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var o = i(e("../core/main")), n = i(e("./filters"));
        function i(e2) {
          return e2 && e2.__esModule ? e2 : { default: e2 };
        }
        o.default.Image = function(e2, t2) {
          this.width = e2, this.height = t2, this.canvas = document.createElement("canvas"), this.canvas.width = this.width, this.canvas.height = this.height, this.drawingContext = this.canvas.getContext("2d"), (this._pixelsState = this)._pixelDensity = 1, this.gifProperties = null, this._modified = false, this.pixels = [];
        }, o.default.Image.prototype._animateGif = function(e2) {
          var t2 = this.gifProperties, r2 = e2._lastFrameTime + e2.deltaTime;
          if (t2.lastChangeTime === 0 && (t2.lastChangeTime = r2), t2.playing) {
            t2.timeDisplayed = r2 - t2.lastChangeTime;
            var n2 = t2.frames[t2.displayIndex].delay;
            if (t2.timeDisplayed >= n2) {
              var o2 = Math.floor(t2.timeDisplayed / n2);
              if (t2.timeDisplayed = 0, t2.lastChangeTime = r2, t2.displayIndex += o2, t2.loopCount = Math.floor(t2.displayIndex / t2.numFrames), t2.loopLimit !== null && t2.loopCount >= t2.loopLimit)
                t2.playing = false;
              else {
                var i2 = t2.displayIndex % t2.numFrames;
                this.drawingContext.putImageData(t2.frames[i2].image, 0, 0), t2.displayIndex = i2, this.setModified(true);
              }
            }
          }
        }, o.default.Image.prototype._setProperty = function(e2, t2) {
          this[e2] = t2, this.setModified(true);
        }, o.default.Image.prototype.loadPixels = function() {
          o.default.Renderer2D.prototype.loadPixels.call(this), this.setModified(true);
        }, o.default.Image.prototype.updatePixels = function(e2, t2, r2, n2) {
          o.default.Renderer2D.prototype.updatePixels.call(this, e2, t2, r2, n2), this.setModified(true);
        }, o.default.Image.prototype.get = function(e2, t2, r2, n2) {
          return o.default._validateParameters("p5.Image.get", arguments), o.default.Renderer2D.prototype.get.apply(this, arguments);
        }, o.default.Image.prototype._getPixel = o.default.Renderer2D.prototype._getPixel, o.default.Image.prototype.set = function(e2, t2, r2) {
          o.default.Renderer2D.prototype.set.call(this, e2, t2, r2), this.setModified(true);
        }, o.default.Image.prototype.resize = function(e2, t2) {
          e2 === 0 && t2 === 0 ? (e2 = this.canvas.width, t2 = this.canvas.height) : e2 === 0 ? e2 = this.canvas.width * t2 / this.canvas.height : t2 === 0 && (t2 = this.canvas.height * e2 / this.canvas.width), e2 = Math.floor(e2), t2 = Math.floor(t2);
          var r2 = document.createElement("canvas");
          if (r2.width = e2, r2.height = t2, this.gifProperties)
            for (var n2 = this.gifProperties, o2 = function(e3, t3) {
              for (var r3 = 0, n3 = 0; n3 < t3.height; n3++)
                for (var o3 = 0; o3 < t3.width; o3++) {
                  var i3 = Math.floor(o3 * e3.width / t3.width), a3 = 4 * (Math.floor(n3 * e3.height / t3.height) * e3.width + i3);
                  t3.data[r3++] = e3.data[a3++], t3.data[r3++] = e3.data[a3++], t3.data[r3++] = e3.data[a3++], t3.data[r3++] = e3.data[a3++];
                }
            }, i2 = 0; i2 < n2.numFrames; i2++) {
              var a2 = this.drawingContext.createImageData(e2, t2);
              o2(n2.frames[i2].image, a2), n2.frames[i2].image = a2;
            }
          r2.getContext("2d").drawImage(this.canvas, 0, 0, this.canvas.width, this.canvas.height, 0, 0, r2.width, r2.height), this.canvas.width = this.width = e2, this.canvas.height = this.height = t2, this.drawingContext.drawImage(r2, 0, 0, e2, t2, 0, 0, e2, t2), 0 < this.pixels.length && this.loadPixels(), this.setModified(true);
        }, o.default.Image.prototype.copy = function() {
          for (var e2 = arguments.length, t2 = new Array(e2), r2 = 0; r2 < e2; r2++)
            t2[r2] = arguments[r2];
          o.default.prototype.copy.apply(this, t2);
        }, o.default.Image.prototype.mask = function(e2) {
          e2 === void 0 && (e2 = this);
          var t2 = this.drawingContext.globalCompositeOperation, r2 = 1;
          e2 instanceof o.default.Renderer && (r2 = e2._pInst._pixelDensity);
          var n2 = [e2, 0, 0, r2 * e2.width, r2 * e2.height, 0, 0, this.width, this.height];
          this.drawingContext.globalCompositeOperation = "destination-in", o.default.Image.prototype.copy.apply(this, n2), this.drawingContext.globalCompositeOperation = t2, this.setModified(true);
        }, o.default.Image.prototype.filter = function(e2, t2) {
          n.default.apply(this.canvas, n.default[e2], t2), this.setModified(true);
        }, o.default.Image.prototype.blend = function() {
          for (var e2 = arguments.length, t2 = new Array(e2), r2 = 0; r2 < e2; r2++)
            t2[r2] = arguments[r2];
          o.default._validateParameters("p5.Image.blend", arguments), o.default.prototype.blend.apply(this, t2), this.setModified(true);
        }, o.default.Image.prototype.setModified = function(e2) {
          this._modified = e2;
        }, o.default.Image.prototype.isModified = function() {
          return this._modified;
        }, o.default.Image.prototype.save = function(e2, t2) {
          this.gifProperties ? o.default.prototype.saveGif(this, e2) : o.default.prototype.saveCanvas(this.canvas, e2, t2);
        }, o.default.Image.prototype.reset = function() {
          if (this.gifProperties) {
            var e2 = this.gifProperties;
            e2.playing = true, e2.timeSinceStart = 0, e2.timeDisplayed = 0, e2.lastChangeTime = 0, e2.loopCount = 0, e2.displayIndex = 0, this.drawingContext.putImageData(e2.frames[0].image, 0, 0);
          }
        }, o.default.Image.prototype.getCurrentFrame = function() {
          if (this.gifProperties) {
            var e2 = this.gifProperties;
            return e2.displayIndex % e2.numFrames;
          }
        }, o.default.Image.prototype.setFrame = function(e2) {
          if (this.gifProperties) {
            var t2 = this.gifProperties;
            e2 < t2.numFrames && 0 <= e2 ? (t2.timeDisplayed = 0, t2.lastChangeTime = 0, t2.displayIndex = e2, this.drawingContext.putImageData(t2.frames[e2].image, 0, 0)) : console.log("Cannot set GIF to a frame number that is higher than total number of frames or below zero.");
          }
        }, o.default.Image.prototype.numFrames = function() {
          if (this.gifProperties)
            return this.gifProperties.numFrames;
        }, o.default.Image.prototype.play = function() {
          this.gifProperties && (this.gifProperties.playing = true);
        }, o.default.Image.prototype.pause = function() {
          this.gifProperties && (this.gifProperties.playing = false);
        }, o.default.Image.prototype.delay = function(e2, t2) {
          if (this.gifProperties) {
            var r2 = this.gifProperties;
            if (t2 < r2.numFrames && 0 <= t2)
              r2.frames[t2].delay = e2;
            else {
              var n2 = true, o2 = false, i2 = void 0;
              try {
                for (var a2, s = r2.frames[Symbol.iterator](); !(n2 = (a2 = s.next()).done); n2 = true) {
                  a2.value.delay = e2;
                }
              } catch (e3) {
                o2 = true, i2 = e3;
              } finally {
                try {
                  n2 || s.return == null || s.return();
                } finally {
                  if (o2)
                    throw i2;
                }
              }
            }
          }
        };
        var a = o.default.Image;
        r.default = a;
      }, { "../core/main": 260, "./filters": 281, "core-js/modules/es.array.filter": 151, "core-js/modules/es.array.iterator": 156, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.string.iterator": 183, "core-js/modules/es.symbol": 193, "core-js/modules/es.symbol.description": 191, "core-js/modules/es.symbol.iterator": 192, "core-js/modules/web.dom-collections.iterator": 226 }], 285: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.array.filter"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var h = o(e("../core/main")), n = o(e("./filters"));
        function o(e2) {
          return e2 && e2.__esModule ? e2 : { default: e2 };
        }
        e("../color/p5.Color"), h.default.prototype.pixels = [], h.default.prototype.blend = function() {
          for (var e2 = arguments.length, t2 = new Array(e2), r2 = 0; r2 < e2; r2++)
            t2[r2] = arguments[r2];
          var n2;
          (h.default._validateParameters("blend", t2), this._renderer) ? (n2 = this._renderer).blend.apply(n2, t2) : h.default.Renderer2D.prototype.blend.apply(this, t2);
        }, h.default.prototype.copy = function() {
          for (var e2 = arguments.length, t2 = new Array(e2), r2 = 0; r2 < e2; r2++)
            t2[r2] = arguments[r2];
          var n2, o2, i2, a, s, l, u, c, d;
          if (h.default._validateParameters("copy", t2), t2.length === 9)
            n2 = t2[0], o2 = t2[1], i2 = t2[2], a = t2[3], s = t2[4], l = t2[5], u = t2[6], c = t2[7], d = t2[8];
          else {
            if (t2.length !== 8)
              throw new Error("Signature not supported");
            n2 = this, o2 = t2[0], i2 = t2[1], a = t2[2], s = t2[3], l = t2[4], u = t2[5], c = t2[6], d = t2[7];
          }
          h.default.prototype._copyHelper(this, n2, o2, i2, a, s, l, u, c, d);
        }, h.default.prototype._copyHelper = function(e2, t2, r2, n2, o2, i2, a, s, l, u) {
          t2.loadPixels();
          var c = t2.canvas.width / t2.width, d = 0, f = 0;
          t2._renderer && t2._renderer.isP3D && (d = t2.width / 2, f = t2.height / 2), e2._renderer && e2._renderer.isP3D ? h.default.RendererGL.prototype.image.call(e2._renderer, t2, r2 + d, n2 + f, o2, i2, a, s, l, u) : e2.drawingContext.drawImage(t2.canvas, c * (r2 + d), c * (n2 + f), c * o2, c * i2, a, s, l, u);
        }, h.default.prototype.filter = function(e2, t2) {
          h.default._validateParameters("filter", arguments), this.canvas !== void 0 ? n.default.apply(this.canvas, n.default[e2], t2) : n.default.apply(this.elt, n.default[e2], t2);
        }, h.default.prototype.get = function(e2, t2, r2, n2) {
          var o2;
          return h.default._validateParameters("get", arguments), (o2 = this._renderer).get.apply(o2, arguments);
        }, h.default.prototype.loadPixels = function() {
          for (var e2 = arguments.length, t2 = new Array(e2), r2 = 0; r2 < e2; r2++)
            t2[r2] = arguments[r2];
          h.default._validateParameters("loadPixels", t2), this._renderer.loadPixels();
        }, h.default.prototype.set = function(e2, t2, r2) {
          this._renderer.set(e2, t2, r2);
        }, h.default.prototype.updatePixels = function(e2, t2, r2, n2) {
          h.default._validateParameters("updatePixels", arguments), this.pixels.length !== 0 && this._renderer.updatePixels(e2, t2, r2, n2);
        };
        var i = h.default;
        r.default = i;
      }, { "../color/p5.Color": 248, "../core/main": 260, "./filters": 281, "core-js/modules/es.array.filter": 151 }], 286: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.symbol"), e("core-js/modules/es.symbol.description"), e("core-js/modules/es.symbol.iterator"), e("core-js/modules/es.array.concat"), e("core-js/modules/es.array.includes"), e("core-js/modules/es.array.index-of"), e("core-js/modules/es.array.iterator"), e("core-js/modules/es.array.last-index-of"), e("core-js/modules/es.array.slice"), e("core-js/modules/es.array.splice"), e("core-js/modules/es.function.name"), e("core-js/modules/es.object.to-string"), e("core-js/modules/es.promise"), e("core-js/modules/es.regexp.exec"), e("core-js/modules/es.regexp.to-string"), e("core-js/modules/es.string.includes"), e("core-js/modules/es.string.iterator"), e("core-js/modules/es.string.replace"), e("core-js/modules/es.string.split"), e("core-js/modules/es.typed-array.uint8-array"), e("core-js/modules/es.typed-array.copy-within"), e("core-js/modules/es.typed-array.every"), e("core-js/modules/es.typed-array.fill"), e("core-js/modules/es.typed-array.filter"), e("core-js/modules/es.typed-array.find"), e("core-js/modules/es.typed-array.find-index"), e("core-js/modules/es.typed-array.for-each"), e("core-js/modules/es.typed-array.includes"), e("core-js/modules/es.typed-array.index-of"), e("core-js/modules/es.typed-array.iterator"), e("core-js/modules/es.typed-array.join"), e("core-js/modules/es.typed-array.last-index-of"), e("core-js/modules/es.typed-array.map"), e("core-js/modules/es.typed-array.reduce"), e("core-js/modules/es.typed-array.reduce-right"), e("core-js/modules/es.typed-array.reverse"), e("core-js/modules/es.typed-array.set"), e("core-js/modules/es.typed-array.slice"), e("core-js/modules/es.typed-array.some"), e("core-js/modules/es.typed-array.sort"), e("core-js/modules/es.typed-array.subarray"), e("core-js/modules/es.typed-array.to-locale-string"), e("core-js/modules/es.typed-array.to-string"), e("core-js/modules/web.dom-collections.iterator"), e("core-js/modules/web.url"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var g = n(e("../core/main"));
        e("whatwg-fetch"), e("es6-promise/auto");
        var m = n(e("fetch-jsonp")), s = n(e("file-saver"));
        function n(e2) {
          return e2 && e2.__esModule ? e2 : { default: e2 };
        }
        function v(e2) {
          return (v = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e3) {
            return typeof e3;
          } : function(e3) {
            return e3 && typeof Symbol == "function" && e3.constructor === Symbol && e3 !== Symbol.prototype ? "symbol" : typeof e3;
          })(e2);
        }
        function b(e2, t2) {
          var r2 = {};
          if ((t2 = t2 || []) === void 0)
            for (var n2 = 0; n2 < e2.length; n2++)
              t2[n2.toString()] = n2;
          for (var o2 = 0; o2 < t2.length; o2++) {
            var i = t2[o2], a = e2[o2];
            r2[i] = a;
          }
          return r2;
        }
        function y(e2) {
          return e2.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#039;");
        }
        function l(e2, t2) {
          t2 && t2 !== true && t2 !== "true" || (t2 = "");
          var r2 = "";
          return (e2 = e2 || "untitled") && e2.includes(".") && (r2 = e2.split(".").pop()), t2 && r2 !== t2 && (r2 = t2, e2 = "".concat(e2, ".").concat(r2)), [e2, r2];
        }
        e("../core/friendly_errors/validate_params"), e("../core/friendly_errors/file_errors"), e("../core/friendly_errors/fes_core"), g.default.prototype.loadJSON = function() {
          for (var e2 = arguments.length, t2 = new Array(e2), r2 = 0; r2 < e2; r2++)
            t2[r2] = arguments[r2];
          g.default._validateParameters("loadJSON", t2);
          for (var n2, o2, i, a = t2[0], s2 = {}, l2 = "json", u = 1; u < t2.length; u++) {
            var c = t2[u];
            typeof c == "string" ? c !== "jsonp" && c !== "json" || (l2 = c) : typeof c == "function" ? n2 ? o2 = c : n2 = c : v(c) === "object" && (c.hasOwnProperty("jsonpCallback") || c.hasOwnProperty("jsonpCallbackFunction")) && (l2 = "jsonp", i = c);
          }
          var d = this;
          return this.httpDo(a, "GET", i, l2, function(e3) {
            for (var t3 in e3)
              s2[t3] = e3[t3];
            n2 !== void 0 && n2(e3), d._decrementPreload();
          }, function(e3) {
            if (g.default._friendlyFileLoadError(5, a), !o2)
              throw e3;
            o2(e3);
          }), s2;
        }, g.default.prototype.loadStrings = function() {
          for (var e2 = arguments.length, t2 = new Array(e2), r2 = 0; r2 < e2; r2++)
            t2[r2] = arguments[r2];
          g.default._validateParameters("loadStrings", t2);
          for (var o2, n2, i = [], a = 1; a < t2.length; a++) {
            var s2 = t2[a];
            typeof s2 == "function" && (o2 === void 0 ? o2 = s2 : n2 === void 0 && (n2 = s2));
          }
          var l2 = this;
          return g.default.prototype.httpDo.call(this, t2[0], "GET", "text", function(e3) {
            for (var t3 = e3.replace(/\r\n/g, "\r").replace(/\n/g, "\r").split(/\r/), r3 = 0, n3 = t3.length; r3 < n3; r3 += 32768)
              Array.prototype.push.apply(i, t3.slice(r3, Math.min(r3 + 32768, n3)));
            o2 !== void 0 && o2(i), l2._decrementPreload();
          }, function(e3) {
            if (g.default._friendlyFileLoadError(3, e3), !n2)
              throw e3;
            n2(e3);
          }), i;
        }, g.default.prototype.loadTable = function(t2) {
          var f, r2, h, e2 = [], p = false, n2 = t2.substring(t2.lastIndexOf(".") + 1, t2.length);
          n2 === "csv" ? h = "," : n2 === "ssv" ? h = ";" : n2 === "tsv" && (h = "	");
          for (var o2 = 1; o2 < arguments.length; o2++)
            typeof arguments[o2] == "function" ? f === void 0 ? f = arguments[o2] : r2 === void 0 && (r2 = arguments[o2]) : typeof arguments[o2] == "string" && (e2.push(arguments[o2]), arguments[o2] === "header" && (p = true), arguments[o2] === "csv" ? h = "," : arguments[o2] === "ssv" ? h = ";" : arguments[o2] === "tsv" && (h = "	"));
          var y2 = new g.default.Table(), m2 = this;
          return this.httpDo(t2, "GET", "table", function(e3) {
            for (var t3, r3, n3 = {}, o3 = [], i = 0, a = null, s2 = function() {
              n3.currentState = 0, n3.token = "";
            }, l2 = function() {
              a.push(n3.token), s2();
            }, u = function() {
              n3.currentState = 4, o3.push(a), a = null;
            }; ; ) {
              if ((t3 = e3[i++]) == null) {
                if (n3.escaped)
                  throw new Error("Unclosed quote in file.");
                if (a) {
                  l2(), u();
                  break;
                }
              }
              if (a === null && (n3.escaped = false, a = [], s2()), n3.currentState === 0) {
                if (t3 === '"') {
                  n3.escaped = true, n3.currentState = 1;
                  continue;
                }
                n3.currentState = 1;
              }
              if (n3.currentState === 1 && n3.escaped)
                if (t3 === '"')
                  e3[i] === '"' ? (n3.token += '"', i++) : (n3.escaped = false, n3.currentState = 2);
                else {
                  if (t3 === "\r")
                    continue;
                  n3.token += t3;
                }
              else
                t3 === "\r" ? (e3[i] === "\n" && i++, l2(), u()) : t3 === "\n" ? (l2(), u()) : t3 === h ? l2() : n3.currentState === 1 && (n3.token += t3);
            }
            if (p)
              y2.columns = o3.shift();
            else
              for (var c = 0; c < o3[0].length; c++)
                y2.columns[c] = "null";
            for (var d = 0; d < o3.length; d++)
              (o3[d].length !== 1 || o3[d][0] !== "undefined" && o3[d][0] !== "") && ((r3 = new g.default.TableRow()).arr = o3[d], r3.obj = b(o3[d], y2.columns), y2.addRow(r3));
            typeof f == "function" && f(y2), m2._decrementPreload();
          }, function(e3) {
            g.default._friendlyFileLoadError(2, t2), r2 ? r2(e3) : console.error(e3);
          }), y2;
        }, g.default.prototype.loadXML = function() {
          for (var e2 = arguments.length, t2 = new Array(e2), r2 = 0; r2 < e2; r2++)
            t2[r2] = arguments[r2];
          for (var n2, o2, i = new g.default.XML(), a = 1; a < t2.length; a++) {
            var s2 = t2[a];
            typeof s2 == "function" && (n2 === void 0 ? n2 = s2 : o2 === void 0 && (o2 = s2));
          }
          var l2 = this;
          return this.httpDo(t2[0], "GET", "xml", function(e3) {
            for (var t3 in e3)
              i[t3] = e3[t3];
            n2 !== void 0 && n2(i), l2._decrementPreload();
          }, function(e3) {
            if (g.default._friendlyFileLoadError(1, e3), !o2)
              throw e3;
            o2(e3);
          }), i;
        }, g.default.prototype.loadBytes = function(t2, r2, n2) {
          var o2 = {}, i = this;
          return this.httpDo(t2, "GET", "arrayBuffer", function(e2) {
            o2.bytes = new Uint8Array(e2), typeof r2 == "function" && r2(o2), i._decrementPreload();
          }, function(e2) {
            if (g.default._friendlyFileLoadError(6, t2), !n2)
              throw e2;
            n2(e2);
          }), o2;
        }, g.default.prototype.httpGet = function() {
          g.default._validateParameters("httpGet", arguments);
          var e2 = Array.prototype.slice.call(arguments);
          return e2.splice(1, 0, "GET"), g.default.prototype.httpDo.apply(this, e2);
        }, g.default.prototype.httpPost = function() {
          g.default._validateParameters("httpPost", arguments);
          var e2 = Array.prototype.slice.call(arguments);
          return e2.splice(1, 0, "POST"), g.default.prototype.httpDo.apply(this, e2);
        }, g.default.prototype.httpDo = function() {
          for (var n2, e2, t2, r2, o2, i = {}, a = 0, s2 = "text/plain", l2 = arguments.length - 1; 0 < l2 && typeof (l2 < 0 || arguments.length <= l2 ? void 0 : arguments[l2]) == "function"; l2--)
            a++;
          var u = arguments.length <= 0 ? void 0 : arguments[0];
          if (arguments.length - a == 2 && typeof u == "string" && v(arguments.length <= 1 ? void 0 : arguments[1]) === "object")
            r2 = new Request(u, arguments.length <= 1 ? void 0 : arguments[1]), e2 = arguments.length <= 2 ? void 0 : arguments[2], t2 = arguments.length <= 3 ? void 0 : arguments[3];
          else {
            for (var c, d = "GET", f = 1; f < arguments.length; f++) {
              var h = f < 0 || arguments.length <= f ? void 0 : arguments[f];
              if (typeof h == "string")
                h === "GET" || h === "POST" || h === "PUT" || h === "DELETE" ? d = h : h === "json" || h === "jsonp" || h === "binary" || h === "arrayBuffer" || h === "xml" || h === "text" || h === "table" ? n2 = h : c = h;
              else if (typeof h == "number")
                c = h.toString();
              else if (v(h) === "object")
                if (h.hasOwnProperty("jsonpCallback") || h.hasOwnProperty("jsonpCallbackFunction"))
                  for (var p in h)
                    i[p] = h[p];
                else
                  s2 = h instanceof g.default.XML ? (c = h.serialize(), "application/xml") : (c = JSON.stringify(h), "application/json");
              else
                typeof h == "function" && (e2 ? t2 = h : e2 = h);
            }
            var y2 = d === "GET" ? new Headers() : new Headers({ "Content-Type": s2 });
            r2 = new Request(u, { method: d, mode: "cors", body: c, headers: y2 });
          }
          return (o2 = (o2 = (n2 = n2 || (u.includes("json") ? "json" : u.includes("xml") ? "xml" : "text")) === "jsonp" ? (0, m.default)(u, i) : fetch(r2)).then(function(e3) {
            if (!e3.ok) {
              var t3 = new Error(e3.body);
              throw t3.status = e3.status, t3.ok = false, t3;
            }
            var r3 = 0;
            switch (n2 !== "jsonp" && (r3 = e3.headers.get("content-length")), r3 && 64e6 < r3 && g.default._friendlyFileLoadError(7, u), n2) {
              case "json":
              case "jsonp":
                return e3.json();
              case "binary":
                return e3.blob();
              case "arrayBuffer":
                return e3.arrayBuffer();
              case "xml":
                return e3.text().then(function(e4) {
                  var t4 = new DOMParser().parseFromString(e4, "text/xml");
                  return new g.default.XML(t4.documentElement);
                });
              default:
                return e3.text();
            }
          })).then(e2 || function() {
          }), o2.catch(t2 || console.error), o2;
        }, window.URL = window.URL || window.webkitURL, g.default.prototype._pWriters = [], g.default.prototype.createWriter = function(e2, t2) {
          var r2;
          for (var n2 in g.default.prototype._pWriters)
            if (g.default.prototype._pWriters[n2].name === e2)
              return r2 = new g.default.PrintWriter(e2 + this.millis(), t2), g.default.prototype._pWriters.push(r2), r2;
          return r2 = new g.default.PrintWriter(e2, t2), g.default.prototype._pWriters.push(r2), r2;
        }, g.default.PrintWriter = function(r2, n2) {
          var o2 = this;
          this.name = r2, this.content = "", this.write = function(e2) {
            this.content += e2;
          }, this.print = function(e2) {
            this.content += "".concat(e2, "\n");
          }, this.clear = function() {
            this.content = "";
          }, this.close = function() {
            var e2 = [];
            for (var t2 in e2.push(this.content), g.default.prototype.writeFile(e2, r2, n2), g.default.prototype._pWriters)
              g.default.prototype._pWriters[t2].name === this.name && g.default.prototype._pWriters.splice(t2, 1);
            o2.clear(), o2 = {};
          };
        }, g.default.prototype.save = function(e2, t2, r2) {
          var n2 = arguments, o2 = this._curElement ? this._curElement.elt : this.elt;
          if (n2.length !== 0)
            if (n2[0] instanceof g.default.Renderer || n2[0] instanceof g.default.Graphics)
              g.default.prototype.saveCanvas(n2[0].elt, n2[1], n2[2]);
            else if (n2.length === 1 && typeof n2[0] == "string")
              g.default.prototype.saveCanvas(o2, n2[0]);
            else
              switch (l(n2[1], n2[2])[1]) {
                case "json":
                  return void g.default.prototype.saveJSON(n2[0], n2[1], n2[2]);
                case "txt":
                  return void g.default.prototype.saveStrings(n2[0], n2[1], n2[2]);
                default:
                  n2[0] instanceof Array ? g.default.prototype.saveStrings(n2[0], n2[1], n2[2]) : n2[0] instanceof g.default.Table ? g.default.prototype.saveTable(n2[0], n2[1], n2[2]) : n2[0] instanceof g.default.Image ? g.default.prototype.saveCanvas(n2[0].canvas, n2[1]) : n2[0] instanceof g.default.SoundFile && g.default.prototype.saveSound(n2[0], n2[1], n2[2], n2[3]);
              }
          else
            g.default.prototype.saveCanvas(o2);
        }, g.default.prototype.saveJSON = function(e2, t2, r2) {
          var n2;
          g.default._validateParameters("saveJSON", arguments), n2 = r2 ? JSON.stringify(e2) : JSON.stringify(e2, void 0, 2), this.saveStrings(n2.split("\n"), t2, "json");
        }, g.default.prototype.saveJSONObject = g.default.prototype.saveJSON, g.default.prototype.saveJSONArray = g.default.prototype.saveJSON, g.default.prototype.saveStrings = function(e2, t2, r2, n2) {
          g.default._validateParameters("saveStrings", arguments);
          for (var o2 = r2 || "txt", i = this.createWriter(t2, o2), a = 0; a < e2.length; a++)
            n2 ? i.write(e2[a] + "\r\n") : i.write(e2[a] + "\n");
          i.close(), i.clear();
        }, g.default.prototype.saveTable = function(e2, t2, r2) {
          var n2;
          g.default._validateParameters("saveTable", arguments), n2 = r2 === void 0 ? t2.substring(t2.lastIndexOf(".") + 1, t2.length) : r2;
          var o2 = this.createWriter(t2, n2), i = e2.columns, a = ",";
          if (n2 === "tsv" && (a = "	"), n2 !== "html") {
            if (i[0] !== "0") {
              for (var s2 = 0; s2 < i.length; s2++)
                s2 < i.length - 1 ? o2.write(i[s2] + a) : o2.write(i[s2]);
              o2.write("\n");
            }
            for (var l2 = 0; l2 < e2.rows.length; l2++) {
              var u = void 0;
              for (u = 0; u < e2.rows[l2].arr.length; u++)
                u < e2.rows[l2].arr.length - 1 ? n2 === "csv" && String(e2.rows[l2].arr[u]).includes(",") ? o2.write('"' + e2.rows[l2].arr[u] + '"' + a) : o2.write(e2.rows[l2].arr[u] + a) : n2 === "csv" && String(e2.rows[l2].arr[u]).includes(",") ? o2.write('"' + e2.rows[l2].arr[u] + '"') : o2.write(e2.rows[l2].arr[u]);
              o2.write("\n");
            }
          } else {
            o2.print("<html>"), o2.print("<head>");
            if (o2.print('  <meta http-equiv="content-type" content="text/html;charset=utf-8" />'), o2.print("</head>"), o2.print("<body>"), o2.print("  <table>"), i[0] !== "0") {
              o2.print("    <tr>");
              for (var c = 0; c < i.length; c++) {
                var d = y(i[c]);
                o2.print("      <td>".concat(d)), o2.print("      </td>");
              }
              o2.print("    </tr>");
            }
            for (var f = 0; f < e2.rows.length; f++) {
              o2.print("    <tr>");
              for (var h = 0; h < e2.columns.length; h++) {
                var p = y(e2.rows[f].getString(h));
                o2.print("      <td>".concat(p)), o2.print("      </td>");
              }
              o2.print("    </tr>");
            }
            o2.print("  </table>"), o2.print("</body>"), o2.print("</html>");
          }
          o2.close(), o2.clear();
        }, g.default.prototype.writeFile = function(e2, t2, r2) {
          var n2 = "application/octet-stream";
          g.default.prototype._isSafari() && (n2 = "text/plain");
          var o2 = new Blob(e2, { type: n2 });
          g.default.prototype.downloadFile(o2, t2, r2);
        }, g.default.prototype.downloadFile = function(e2, t2, r2) {
          var n2 = l(t2, r2), o2 = n2[0];
          if (e2 instanceof Blob)
            s.default.saveAs(e2, o2);
          else {
            var i = document.createElement("a");
            if (i.href = e2, i.download = o2, i.onclick = function(e3) {
              var t3;
              t3 = e3, document.body.removeChild(t3.target), e3.stopPropagation();
            }, i.style.display = "none", document.body.appendChild(i), g.default.prototype._isSafari()) {
              var a = "Hello, Safari user! To download this file...\n";
              a += "1. Go to File --> Save As.\n", a += '2. Choose "Page Source" as the Format.\n', a += '3. Name it with this extension: ."'.concat(n2[1], '"'), alert(a);
            }
            i.click();
          }
        }, g.default.prototype._checkFileExtension = l, g.default.prototype._isSafari = function() {
          return 0 < Object.prototype.toString.call(window.HTMLElement).indexOf("Constructor");
        };
        var o = g.default;
        r.default = o;
      }, { "../core/friendly_errors/fes_core": 252, "../core/friendly_errors/file_errors": 253, "../core/friendly_errors/validate_params": 255, "../core/main": 260, "core-js/modules/es.array.concat": 148, "core-js/modules/es.array.includes": 154, "core-js/modules/es.array.index-of": 155, "core-js/modules/es.array.iterator": 156, "core-js/modules/es.array.last-index-of": 158, "core-js/modules/es.array.slice": 160, "core-js/modules/es.array.splice": 162, "core-js/modules/es.function.name": 163, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.promise": 175, "core-js/modules/es.regexp.exec": 178, "core-js/modules/es.regexp.to-string": 179, "core-js/modules/es.string.includes": 182, "core-js/modules/es.string.iterator": 183, "core-js/modules/es.string.replace": 186, "core-js/modules/es.string.split": 188, "core-js/modules/es.symbol": 193, "core-js/modules/es.symbol.description": 191, "core-js/modules/es.symbol.iterator": 192, "core-js/modules/es.typed-array.copy-within": 194, "core-js/modules/es.typed-array.every": 195, "core-js/modules/es.typed-array.fill": 196, "core-js/modules/es.typed-array.filter": 197, "core-js/modules/es.typed-array.find": 199, "core-js/modules/es.typed-array.find-index": 198, "core-js/modules/es.typed-array.for-each": 202, "core-js/modules/es.typed-array.includes": 203, "core-js/modules/es.typed-array.index-of": 204, "core-js/modules/es.typed-array.iterator": 207, "core-js/modules/es.typed-array.join": 208, "core-js/modules/es.typed-array.last-index-of": 209, "core-js/modules/es.typed-array.map": 210, "core-js/modules/es.typed-array.reduce": 212, "core-js/modules/es.typed-array.reduce-right": 211, "core-js/modules/es.typed-array.reverse": 213, "core-js/modules/es.typed-array.set": 214, "core-js/modules/es.typed-array.slice": 215, "core-js/modules/es.typed-array.some": 216, "core-js/modules/es.typed-array.sort": 217, "core-js/modules/es.typed-array.subarray": 218, "core-js/modules/es.typed-array.to-locale-string": 219, "core-js/modules/es.typed-array.to-string": 220, "core-js/modules/es.typed-array.uint8-array": 223, "core-js/modules/web.dom-collections.iterator": 226, "core-js/modules/web.url": 228, "es6-promise/auto": 229, "fetch-jsonp": 231, "file-saver": 232, "whatwg-fetch": 239 }], 287: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.array.concat"), e("core-js/modules/es.array.index-of"), e("core-js/modules/es.array.join"), e("core-js/modules/es.array.splice"), e("core-js/modules/es.regexp.constructor"), e("core-js/modules/es.regexp.exec"), e("core-js/modules/es.regexp.to-string"), e("core-js/modules/es.string.match"), e("core-js/modules/es.string.replace"), e("core-js/modules/es.string.trim"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, o = (n = e("../core/main")) && n.__esModule ? n : { default: n };
        o.default.Table = function(e2) {
          this.columns = [], this.rows = [];
        }, o.default.Table.prototype.addRow = function(e2) {
          var t2 = e2 || new o.default.TableRow();
          if (t2.arr === void 0 || t2.obj === void 0)
            throw new Error("invalid TableRow: ".concat(t2));
          return (t2.table = this).rows.push(t2), t2;
        }, o.default.Table.prototype.removeRow = function(e2) {
          this.rows[e2].table = null;
          var t2 = this.rows.splice(e2 + 1, this.rows.length);
          this.rows.pop(), this.rows = this.rows.concat(t2);
        }, o.default.Table.prototype.getRow = function(e2) {
          return this.rows[e2];
        }, o.default.Table.prototype.getRows = function() {
          return this.rows;
        }, o.default.Table.prototype.findRow = function(e2, t2) {
          if (typeof t2 == "string") {
            for (var r2 = 0; r2 < this.rows.length; r2++)
              if (this.rows[r2].obj[t2] === e2)
                return this.rows[r2];
          } else
            for (var n2 = 0; n2 < this.rows.length; n2++)
              if (this.rows[n2].arr[t2] === e2)
                return this.rows[n2];
          return null;
        }, o.default.Table.prototype.findRows = function(e2, t2) {
          var r2 = [];
          if (typeof t2 == "string")
            for (var n2 = 0; n2 < this.rows.length; n2++)
              this.rows[n2].obj[t2] === e2 && r2.push(this.rows[n2]);
          else
            for (var o2 = 0; o2 < this.rows.length; o2++)
              this.rows[o2].arr[t2] === e2 && r2.push(this.rows[o2]);
          return r2;
        }, o.default.Table.prototype.matchRow = function(e2, t2) {
          if (typeof t2 == "number") {
            for (var r2 = 0; r2 < this.rows.length; r2++)
              if (this.rows[r2].arr[t2].match(e2))
                return this.rows[r2];
          } else
            for (var n2 = 0; n2 < this.rows.length; n2++)
              if (this.rows[n2].obj[t2].match(e2))
                return this.rows[n2];
          return null;
        }, o.default.Table.prototype.matchRows = function(e2, t2) {
          var r2 = [];
          if (typeof t2 == "number")
            for (var n2 = 0; n2 < this.rows.length; n2++)
              this.rows[n2].arr[t2].match(e2) && r2.push(this.rows[n2]);
          else
            for (var o2 = 0; o2 < this.rows.length; o2++)
              this.rows[o2].obj[t2].match(e2) && r2.push(this.rows[o2]);
          return r2;
        }, o.default.Table.prototype.getColumn = function(e2) {
          var t2 = [];
          if (typeof e2 == "string")
            for (var r2 = 0; r2 < this.rows.length; r2++)
              t2.push(this.rows[r2].obj[e2]);
          else
            for (var n2 = 0; n2 < this.rows.length; n2++)
              t2.push(this.rows[n2].arr[e2]);
          return t2;
        }, o.default.Table.prototype.clearRows = function() {
          delete this.rows, this.rows = [];
        }, o.default.Table.prototype.addColumn = function(e2) {
          var t2 = e2 || null;
          this.columns.push(t2);
        }, o.default.Table.prototype.getColumnCount = function() {
          return this.columns.length;
        }, o.default.Table.prototype.getRowCount = function() {
          return this.rows.length;
        }, o.default.Table.prototype.removeTokens = function(e2, t2) {
          for (var r2 = [], n2 = 0; n2 < e2.length; n2++)
            r2.push(e2.charAt(n2).replace(/[-/\\^$*+?.()|[\]{}]/g, "\\$&"));
          var o2 = new RegExp(r2.join("|"), "g");
          if (t2 === void 0)
            for (var i2 = 0; i2 < this.columns.length; i2++)
              for (var a = 0; a < this.rows.length; a++) {
                var s = this.rows[a].arr[i2];
                s = s.replace(o2, ""), this.rows[a].arr[i2] = s, this.rows[a].obj[this.columns[i2]] = s;
              }
          else if (typeof t2 == "string")
            for (var l = 0; l < this.rows.length; l++) {
              var u = this.rows[l].obj[t2];
              u = u.replace(o2, ""), this.rows[l].obj[t2] = u;
              var c = this.columns.indexOf(t2);
              this.rows[l].arr[c] = u;
            }
          else
            for (var d = 0; d < this.rows.length; d++) {
              var f = this.rows[d].arr[t2];
              f = f.replace(o2, ""), this.rows[d].arr[t2] = f, this.rows[d].obj[this.columns[t2]] = f;
            }
        }, o.default.Table.prototype.trim = function(e2) {
          var t2 = new RegExp(" ", "g");
          if (e2 === void 0)
            for (var r2 = 0; r2 < this.columns.length; r2++)
              for (var n2 = 0; n2 < this.rows.length; n2++) {
                var o2 = this.rows[n2].arr[r2];
                o2 = o2.replace(t2, ""), this.rows[n2].arr[r2] = o2, this.rows[n2].obj[this.columns[r2]] = o2;
              }
          else if (typeof e2 == "string")
            for (var i2 = 0; i2 < this.rows.length; i2++) {
              var a = this.rows[i2].obj[e2];
              a = a.replace(t2, ""), this.rows[i2].obj[e2] = a;
              var s = this.columns.indexOf(e2);
              this.rows[i2].arr[s] = a;
            }
          else
            for (var l = 0; l < this.rows.length; l++) {
              var u = this.rows[l].arr[e2];
              u = u.replace(t2, ""), this.rows[l].arr[e2] = u, this.rows[l].obj[this.columns[e2]] = u;
            }
        }, o.default.Table.prototype.removeColumn = function(e2) {
          var t2, r2;
          typeof e2 == "string" ? (t2 = e2, r2 = this.columns.indexOf(e2)) : (r2 = e2, t2 = this.columns[e2]);
          var n2 = this.columns.splice(r2 + 1, this.columns.length);
          this.columns.pop(), this.columns = this.columns.concat(n2);
          for (var o2 = 0; o2 < this.rows.length; o2++) {
            var i2 = this.rows[o2].arr, a = i2.splice(r2 + 1, i2.length);
            i2.pop(), this.rows[o2].arr = i2.concat(a), delete this.rows[o2].obj[t2];
          }
        }, o.default.Table.prototype.set = function(e2, t2, r2) {
          this.rows[e2].set(t2, r2);
        }, o.default.Table.prototype.setNum = function(e2, t2, r2) {
          this.rows[e2].setNum(t2, r2);
        }, o.default.Table.prototype.setString = function(e2, t2, r2) {
          this.rows[e2].setString(t2, r2);
        }, o.default.Table.prototype.get = function(e2, t2) {
          return this.rows[e2].get(t2);
        }, o.default.Table.prototype.getNum = function(e2, t2) {
          return this.rows[e2].getNum(t2);
        }, o.default.Table.prototype.getString = function(e2, t2) {
          return this.rows[e2].getString(t2);
        }, o.default.Table.prototype.getObject = function(e2) {
          for (var t2, r2 = {}, n2 = 0; n2 < this.rows.length; n2++)
            if (t2 = this.rows[n2].obj, typeof e2 == "string") {
              if (!(0 <= this.columns.indexOf(e2)))
                throw new Error('This table has no column named "'.concat(e2, '"'));
              r2[t2[e2]] = t2;
            } else
              r2[n2] = this.rows[n2].obj;
          return r2;
        }, o.default.Table.prototype.getArray = function() {
          for (var e2 = [], t2 = 0; t2 < this.rows.length; t2++)
            e2.push(this.rows[t2].arr);
          return e2;
        };
        var i = o.default;
        r.default = i;
      }, { "../core/main": 260, "core-js/modules/es.array.concat": 148, "core-js/modules/es.array.index-of": 155, "core-js/modules/es.array.join": 157, "core-js/modules/es.array.splice": 162, "core-js/modules/es.regexp.constructor": 177, "core-js/modules/es.regexp.exec": 178, "core-js/modules/es.regexp.to-string": 179, "core-js/modules/es.string.match": 184, "core-js/modules/es.string.replace": 186, "core-js/modules/es.string.trim": 190 }], 288: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.array.index-of"), e("core-js/modules/es.object.to-string"), e("core-js/modules/es.regexp.exec"), e("core-js/modules/es.regexp.to-string"), e("core-js/modules/es.string.split"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, o = (n = e("../core/main")) && n.__esModule ? n : { default: n };
        o.default.TableRow = function(e2, t2) {
          var r2 = [], n2 = {};
          e2 && (t2 = t2 || ",", r2 = e2.split(t2));
          for (var o2 = 0; o2 < r2.length; o2++) {
            var i2 = o2, a = r2[o2];
            n2[i2] = a;
          }
          this.arr = r2, this.obj = n2, this.table = null;
        }, o.default.TableRow.prototype.set = function(e2, t2) {
          if (typeof e2 == "string") {
            var r2 = this.table.columns.indexOf(e2);
            if (!(0 <= r2))
              throw new Error('This table has no column named "'.concat(e2, '"'));
            this.obj[e2] = t2, this.arr[r2] = t2;
          } else {
            if (!(e2 < this.table.columns.length))
              throw new Error("Column #".concat(e2, " is out of the range of this table"));
            this.arr[e2] = t2;
            var n2 = this.table.columns[e2];
            this.obj[n2] = t2;
          }
        }, o.default.TableRow.prototype.setNum = function(e2, t2) {
          var r2 = parseFloat(t2);
          this.set(e2, r2);
        }, o.default.TableRow.prototype.setString = function(e2, t2) {
          var r2 = t2.toString();
          this.set(e2, r2);
        }, o.default.TableRow.prototype.get = function(e2) {
          return typeof e2 == "string" ? this.obj[e2] : this.arr[e2];
        }, o.default.TableRow.prototype.getNum = function(e2) {
          var t2;
          if ((t2 = typeof e2 == "string" ? parseFloat(this.obj[e2]) : parseFloat(this.arr[e2])).toString() === "NaN")
            throw "Error: ".concat(this.obj[e2], " is NaN (Not a Number)");
          return t2;
        }, o.default.TableRow.prototype.getString = function(e2) {
          return typeof e2 == "string" ? this.obj[e2].toString() : this.arr[e2].toString();
        };
        var i = o.default;
        r.default = i;
      }, { "../core/main": 260, "core-js/modules/es.array.index-of": 155, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.regexp.exec": 178, "core-js/modules/es.regexp.to-string": 179, "core-js/modules/es.string.split": 188 }], 289: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.symbol"), e("core-js/modules/es.symbol.description"), e("core-js/modules/es.symbol.iterator"), e("core-js/modules/es.array.iterator"), e("core-js/modules/es.number.constructor"), e("core-js/modules/es.object.to-string"), e("core-js/modules/es.regexp.exec"), e("core-js/modules/es.string.iterator"), e("core-js/modules/es.string.replace"), e("core-js/modules/web.dom-collections.iterator"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, s = (n = e("../core/main")) && n.__esModule ? n : { default: n };
        function o(e2) {
          for (var t2 = [], r2 = 0; r2 < e2.length; r2++)
            t2.push(new s.default.XML(e2[r2]));
          return t2;
        }
        s.default.XML = function(e2) {
          if (e2)
            this.DOM = e2;
          else {
            var t2 = document.implementation.createDocument(null, "doc");
            this.DOM = t2.createElement("root");
          }
        }, s.default.XML.prototype.getParent = function() {
          return new s.default.XML(this.DOM.parentElement);
        }, s.default.XML.prototype.getName = function() {
          return this.DOM.tagName;
        }, s.default.XML.prototype.setName = function(e2) {
          var t2 = this.DOM.innerHTML, r2 = this.DOM.attributes, n2 = document.implementation.createDocument(null, "default").createElement(e2);
          n2.innerHTML = t2;
          for (var o2 = 0; o2 < r2.length; o2++)
            n2.setAttribute(r2[o2].nodeName, r2.nodeValue);
          this.DOM = n2;
        }, s.default.XML.prototype.hasChildren = function() {
          return 0 < this.DOM.children.length;
        }, s.default.XML.prototype.listChildren = function() {
          for (var e2 = [], t2 = 0; t2 < this.DOM.childNodes.length; t2++)
            e2.push(this.DOM.childNodes[t2].nodeName);
          return e2;
        }, s.default.XML.prototype.getChildren = function(e2) {
          return o(e2 ? this.DOM.getElementsByTagName(e2) : this.DOM.children);
        }, s.default.XML.prototype.getChild = function(e2) {
          if (typeof e2 != "string")
            return new s.default.XML(this.DOM.children[e2]);
          var t2 = true, r2 = false, n2 = void 0;
          try {
            for (var o2, i2 = this.DOM.children[Symbol.iterator](); !(t2 = (o2 = i2.next()).done); t2 = true) {
              var a = o2.value;
              if (a.tagName === e2)
                return new s.default.XML(a);
            }
          } catch (e3) {
            r2 = true, n2 = e3;
          } finally {
            try {
              t2 || i2.return == null || i2.return();
            } finally {
              if (r2)
                throw n2;
            }
          }
        }, s.default.XML.prototype.addChild = function(e2) {
          e2 instanceof s.default.XML && this.DOM.appendChild(e2.DOM);
        }, s.default.XML.prototype.removeChild = function(e2) {
          var t2 = -1;
          if (typeof e2 == "string") {
            for (var r2 = 0; r2 < this.DOM.children.length; r2++)
              if (this.DOM.children[r2].tagName === e2) {
                t2 = r2;
                break;
              }
          } else
            t2 = e2;
          t2 !== -1 && this.DOM.removeChild(this.DOM.children[t2]);
        }, s.default.XML.prototype.getAttributeCount = function() {
          return this.DOM.attributes.length;
        }, s.default.XML.prototype.listAttributes = function() {
          var e2 = [], t2 = true, r2 = false, n2 = void 0;
          try {
            for (var o2, i2 = this.DOM.attributes[Symbol.iterator](); !(t2 = (o2 = i2.next()).done); t2 = true) {
              var a = o2.value;
              e2.push(a.nodeName);
            }
          } catch (e3) {
            r2 = true, n2 = e3;
          } finally {
            try {
              t2 || i2.return == null || i2.return();
            } finally {
              if (r2)
                throw n2;
            }
          }
          return e2;
        }, s.default.XML.prototype.hasAttribute = function(e2) {
          var t2 = {}, r2 = true, n2 = false, o2 = void 0;
          try {
            for (var i2, a = this.DOM.attributes[Symbol.iterator](); !(r2 = (i2 = a.next()).done); r2 = true) {
              var s2 = i2.value;
              t2[s2.nodeName] = s2.nodeValue;
            }
          } catch (e3) {
            n2 = true, o2 = e3;
          } finally {
            try {
              r2 || a.return == null || a.return();
            } finally {
              if (n2)
                throw o2;
            }
          }
          return !!t2[e2];
        }, s.default.XML.prototype.getNum = function(e2, t2) {
          var r2 = {}, n2 = true, o2 = false, i2 = void 0;
          try {
            for (var a, s2 = this.DOM.attributes[Symbol.iterator](); !(n2 = (a = s2.next()).done); n2 = true) {
              var l = a.value;
              r2[l.nodeName] = l.nodeValue;
            }
          } catch (e3) {
            o2 = true, i2 = e3;
          } finally {
            try {
              n2 || s2.return == null || s2.return();
            } finally {
              if (o2)
                throw i2;
            }
          }
          return Number(r2[e2]) || t2 || 0;
        }, s.default.XML.prototype.getString = function(e2, t2) {
          var r2 = {}, n2 = true, o2 = false, i2 = void 0;
          try {
            for (var a, s2 = this.DOM.attributes[Symbol.iterator](); !(n2 = (a = s2.next()).done); n2 = true) {
              var l = a.value;
              r2[l.nodeName] = l.nodeValue;
            }
          } catch (e3) {
            o2 = true, i2 = e3;
          } finally {
            try {
              n2 || s2.return == null || s2.return();
            } finally {
              if (o2)
                throw i2;
            }
          }
          return r2[e2] ? String(r2[e2]) : t2 || null;
        }, s.default.XML.prototype.setAttribute = function(e2, t2) {
          this.DOM.setAttribute(e2, t2);
        }, s.default.XML.prototype.getContent = function(e2) {
          return this.DOM.textContent.replace(/\s\s+/g, ",") || e2 || null;
        }, s.default.XML.prototype.setContent = function(e2) {
          this.DOM.children.length || (this.DOM.textContent = e2);
        }, s.default.XML.prototype.serialize = function() {
          return new XMLSerializer().serializeToString(this.DOM);
        };
        var i = s.default;
        r.default = i;
      }, { "../core/main": 260, "core-js/modules/es.array.iterator": 156, "core-js/modules/es.number.constructor": 167, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.regexp.exec": 178, "core-js/modules/es.string.iterator": 183, "core-js/modules/es.string.replace": 186, "core-js/modules/es.symbol": 193, "core-js/modules/es.symbol.description": 191, "core-js/modules/es.symbol.iterator": 192, "core-js/modules/web.dom-collections.iterator": 226 }], 290: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.array.includes"), e("core-js/modules/es.array.index-of"), e("core-js/modules/es.array.map"), e("core-js/modules/es.array.slice"), e("core-js/modules/es.math.hypot"), e("core-js/modules/es.number.constructor"), e("core-js/modules/es.string.includes"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, s = (n = e("../core/main")) && n.__esModule ? n : { default: n };
        function o() {
          if (typeof Math.hypot == "function")
            return Math.hypot.apply(null, arguments);
          for (var e2 = arguments.length, t2 = [], r2 = 0, n2 = 0; n2 < e2; n2++) {
            var o2 = arguments[n2];
            if ((o2 = +o2) === 1 / 0 || o2 === -1 / 0)
              return 1 / 0;
            r2 < (o2 = Math.abs(o2)) && (r2 = o2), t2[n2] = o2;
          }
          r2 === 0 && (r2 = 1);
          for (var i2 = 0, a = 0, s2 = 0; s2 < e2; s2++) {
            var l = t2[s2] / r2, u = l * l - a, c = i2 + u;
            a = c - i2 - u, i2 = c;
          }
          return Math.sqrt(i2) * r2;
        }
        s.default.prototype.abs = Math.abs, s.default.prototype.ceil = Math.ceil, s.default.prototype.constrain = function(e2, t2, r2) {
          return s.default._validateParameters("constrain", arguments), Math.max(Math.min(e2, r2), t2);
        }, s.default.prototype.dist = function() {
          for (var e2 = arguments.length, t2 = new Array(e2), r2 = 0; r2 < e2; r2++)
            t2[r2] = arguments[r2];
          return s.default._validateParameters("dist", t2), t2.length === 4 ? o(t2[2] - t2[0], t2[3] - t2[1]) : t2.length === 6 ? o(t2[3] - t2[0], t2[4] - t2[1], t2[5] - t2[2]) : void 0;
        }, s.default.prototype.exp = Math.exp, s.default.prototype.floor = Math.floor, s.default.prototype.lerp = function(e2, t2, r2) {
          return s.default._validateParameters("lerp", arguments), r2 * (t2 - e2) + e2;
        }, s.default.prototype.log = Math.log, s.default.prototype.mag = function(e2, t2) {
          return s.default._validateParameters("mag", arguments), o(e2, t2);
        }, s.default.prototype.map = function(e2, t2, r2, n2, o2, i2) {
          s.default._validateParameters("map", arguments);
          var a = (e2 - t2) / (r2 - t2) * (o2 - n2) + n2;
          return i2 ? n2 < o2 ? this.constrain(a, n2, o2) : this.constrain(a, o2, n2) : a;
        }, s.default.prototype.max = function() {
          for (var e2 = arguments.length, t2 = new Array(e2), r2 = 0; r2 < e2; r2++)
            t2[r2] = arguments[r2];
          return t2[0] instanceof Array ? Math.max.apply(null, t2[0]) : Math.max.apply(null, t2);
        }, s.default.prototype.min = function() {
          for (var e2 = arguments.length, t2 = new Array(e2), r2 = 0; r2 < e2; r2++)
            t2[r2] = arguments[r2];
          return t2[0] instanceof Array ? Math.min.apply(null, t2[0]) : Math.min.apply(null, t2);
        }, s.default.prototype.norm = function(e2, t2, r2) {
          return s.default._validateParameters("norm", arguments), this.map(e2, t2, r2, 0, 1);
        }, s.default.prototype.pow = Math.pow, s.default.prototype.round = function(e2, t2) {
          return t2 ? Number(Math.round(e2 + "e" + t2) + "e-" + t2) : Math.round(e2);
        }, s.default.prototype.sq = function(e2) {
          return e2 * e2;
        }, s.default.prototype.sqrt = Math.sqrt, s.default.prototype.fract = function(e2) {
          s.default._validateParameters("fract", arguments);
          var t2 = 0, r2 = Number(e2);
          if (isNaN(r2) || Math.abs(r2) === 1 / 0)
            return r2;
          if (r2 < 0 && (r2 = -r2, t2 = 1), !String(r2).includes(".") || String(r2).includes("e"))
            return r2 < 1 ? Math.abs(t2 - r2) : 0;
          var n2 = String(r2);
          return n2 = Number("0" + n2.slice(n2.indexOf("."))), Math.abs(t2 - n2);
        };
        var i = s.default;
        r.default = i;
      }, { "../core/main": 260, "core-js/modules/es.array.includes": 154, "core-js/modules/es.array.index-of": 155, "core-js/modules/es.array.map": 159, "core-js/modules/es.array.slice": 160, "core-js/modules/es.math.hypot": 165, "core-js/modules/es.number.constructor": 167, "core-js/modules/es.string.includes": 182 }], 291: [function(e, t, r) {
        "use strict";
        Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, o = (n = e("../core/main")) && n.__esModule ? n : { default: n };
        o.default.prototype.createVector = function(e2, t2, r2) {
          return this instanceof o.default ? new o.default.Vector(this, arguments) : new o.default.Vector(e2, t2, r2);
        };
        var i = o.default;
        r.default = i;
      }, { "../core/main": 260 }], 292: [function(e, t, r) {
        "use strict";
        Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, o = (n = e("../core/main")) && n.__esModule ? n : { default: n };
        function b(e2) {
          return 0.5 * (1 - Math.cos(e2 * Math.PI));
        }
        var _, x = 4095, w = 4, S = 0.5;
        o.default.prototype.noise = function(e2) {
          var t2 = 1 < arguments.length && arguments[1] !== void 0 ? arguments[1] : 0, r2 = 2 < arguments.length && arguments[2] !== void 0 ? arguments[2] : 0;
          if (_ == null) {
            _ = new Array(4096);
            for (var n2 = 0; n2 < 4096; n2++)
              _[n2] = Math.random();
          }
          e2 < 0 && (e2 = -e2), t2 < 0 && (t2 = -t2), r2 < 0 && (r2 = -r2);
          for (var o2, i2, a, s, l, u = Math.floor(e2), c = Math.floor(t2), d = Math.floor(r2), f = e2 - u, h = t2 - c, p = r2 - d, y = 0, m = 0.5, g = 0; g < w; g++) {
            var v = u + (c << 4) + (d << 8);
            o2 = b(f), i2 = b(h), a = _[v & x], a += o2 * (_[v + 1 & x] - a), s = _[v + 16 & x], a += i2 * ((s += o2 * (_[v + 16 + 1 & x] - s)) - a), s = _[(v += 256) & x], s += o2 * (_[v + 1 & x] - s), l = _[v + 16 & x], s += i2 * ((l += o2 * (_[v + 16 + 1 & x] - l)) - s), y += (a += b(p) * (s - a)) * m, m *= S, u <<= 1, c <<= 1, d <<= 1, 1 <= (f *= 2) && (u++, f--), 1 <= (h *= 2) && (c++, h--), 1 <= (p *= 2) && (d++, p--);
          }
          return y;
        }, o.default.prototype.noiseDetail = function(e2, t2) {
          0 < e2 && (w = e2), 0 < t2 && (S = t2);
        }, o.default.prototype.noiseSeed = function(e2) {
          var t2, r2, n2, o2 = (n2 = 4294967296, { setSeed: function(e3) {
            r2 = t2 = (e3 == null ? Math.random() * n2 : e3) >>> 0;
          }, getSeed: function() {
            return t2;
          }, rand: function() {
            return (r2 = (1664525 * r2 + 1013904223) % n2) / n2;
          } });
          o2.setSeed(e2), _ = new Array(4096);
          for (var i2 = 0; i2 < 4096; i2++)
            _[i2] = o2.rand();
        };
        var i = o.default;
        r.default = i;
      }, { "../core/main": 260 }], 293: [function(e, t, r) {
        "use strict";
        function a(e2) {
          return (a = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e3) {
            return typeof e3;
          } : function(e3) {
            return e3 && typeof Symbol == "function" && e3.constructor === Symbol && e3 !== Symbol.prototype ? "symbol" : typeof e3;
          })(e2);
        }
        e("core-js/modules/es.array.concat"), e("core-js/modules/es.array.every"), e("core-js/modules/es.array.slice"), e("core-js/modules/es.array.some"), e("core-js/modules/es.math.sign"), e("core-js/modules/es.number.constructor"), e("core-js/modules/es.number.is-finite"), e("core-js/modules/es.object.to-string"), e("core-js/modules/es.regexp.to-string"), e("core-js/modules/es.string.sub"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, l = (n = e("../core/main")) && n.__esModule ? n : { default: n }, i = function(e2) {
          if (e2 && e2.__esModule)
            return e2;
          if (e2 === null || a(e2) !== "object" && typeof e2 != "function")
            return { default: e2 };
          var t2 = s();
          if (t2 && t2.has(e2))
            return t2.get(e2);
          var r2 = {}, n2 = Object.defineProperty && Object.getOwnPropertyDescriptor;
          for (var o2 in e2)
            if (Object.prototype.hasOwnProperty.call(e2, o2)) {
              var i2 = n2 ? Object.getOwnPropertyDescriptor(e2, o2) : null;
              i2 && (i2.get || i2.set) ? Object.defineProperty(r2, o2, i2) : r2[o2] = e2[o2];
            }
          r2.default = e2, t2 && t2.set(e2, r2);
          return r2;
        }(e("../core/constants"));
        function s() {
          if (typeof WeakMap != "function")
            return null;
          var e2 = new WeakMap();
          return s = function() {
            return e2;
          }, e2;
        }
        l.default.Vector = function(e2, t2, r2) {
          var n2, o2, i2;
          i2 = e2 instanceof l.default ? (this.p5 = e2, n2 = t2[0] || 0, o2 = t2[1] || 0, t2[2] || 0) : (n2 = e2 || 0, o2 = t2 || 0, r2 || 0), this.x = n2, this.y = o2, this.z = i2;
        }, l.default.Vector.prototype.toString = function() {
          return "p5.Vector Object : [".concat(this.x, ", ").concat(this.y, ", ").concat(this.z, "]");
        }, l.default.Vector.prototype.set = function(e2, t2, r2) {
          return e2 instanceof l.default.Vector ? (this.x = e2.x || 0, this.y = e2.y || 0, this.z = e2.z || 0) : e2 instanceof Array ? (this.x = e2[0] || 0, this.y = e2[1] || 0, this.z = e2[2] || 0) : (this.x = e2 || 0, this.y = t2 || 0, this.z = r2 || 0), this;
        }, l.default.Vector.prototype.copy = function() {
          return this.p5 ? new l.default.Vector(this.p5, [this.x, this.y, this.z]) : new l.default.Vector(this.x, this.y, this.z);
        }, l.default.Vector.prototype.add = function(e2, t2, r2) {
          return e2 instanceof l.default.Vector ? (this.x += e2.x || 0, this.y += e2.y || 0, this.z += e2.z || 0) : e2 instanceof Array ? (this.x += e2[0] || 0, this.y += e2[1] || 0, this.z += e2[2] || 0) : (this.x += e2 || 0, this.y += t2 || 0, this.z += r2 || 0), this;
        };
        function u(e2, t2) {
          return e2 !== 0 && (this.x = this.x % e2), t2 !== 0 && (this.y = this.y % t2), this;
        }
        function c(e2, t2, r2) {
          return e2 !== 0 && (this.x = this.x % e2), t2 !== 0 && (this.y = this.y % t2), r2 !== 0 && (this.z = this.z % r2), this;
        }
        l.default.Vector.prototype.rem = function(e2, t2, r2) {
          if (e2 instanceof l.default.Vector) {
            if (Number.isFinite(e2.x) && Number.isFinite(e2.y) && Number.isFinite(e2.z)) {
              var n2 = parseFloat(e2.x), o2 = parseFloat(e2.y), i2 = parseFloat(e2.z);
              c.call(this, n2, o2, i2);
            }
          } else if (e2 instanceof Array)
            e2.every(function(e3) {
              return Number.isFinite(e3);
            }) && (e2.length === 2 && u.call(this, e2[0], e2[1]), e2.length === 3 && c.call(this, e2[0], e2[1], e2[2]));
          else if (arguments.length === 1) {
            if (Number.isFinite(e2) && e2 !== 0)
              return this.x = this.x % e2, this.y = this.y % e2, this.z = this.z % e2, this;
          } else if (arguments.length === 2) {
            var a2 = Array.prototype.slice.call(arguments);
            a2.every(function(e3) {
              return Number.isFinite(e3);
            }) && a2.length === 2 && u.call(this, a2[0], a2[1]);
          } else if (arguments.length === 3) {
            var s2 = Array.prototype.slice.call(arguments);
            s2.every(function(e3) {
              return Number.isFinite(e3);
            }) && s2.length === 3 && c.call(this, s2[0], s2[1], s2[2]);
          }
        }, l.default.Vector.prototype.sub = function(e2, t2, r2) {
          return e2 instanceof l.default.Vector ? (this.x -= e2.x || 0, this.y -= e2.y || 0, this.z -= e2.z || 0) : e2 instanceof Array ? (this.x -= e2[0] || 0, this.y -= e2[1] || 0, this.z -= e2[2] || 0) : (this.x -= e2 || 0, this.y -= t2 || 0, this.z -= r2 || 0), this;
        }, l.default.Vector.prototype.mult = function(e2, t2, r2) {
          if (e2 instanceof l.default.Vector)
            return Number.isFinite(e2.x) && Number.isFinite(e2.y) && Number.isFinite(e2.z) && typeof e2.x == "number" && typeof e2.y == "number" && typeof e2.z == "number" ? (this.x *= e2.x, this.y *= e2.y, this.z *= e2.z) : console.warn("p5.Vector.prototype.mult:", "x contains components that are either undefined or not finite numbers"), this;
          if (e2 instanceof Array)
            return e2.every(function(e3) {
              return Number.isFinite(e3);
            }) && e2.every(function(e3) {
              return typeof e3 == "number";
            }) ? e2.length === 1 ? (this.x *= e2[0], this.y *= e2[0], this.z *= e2[0]) : e2.length === 2 ? (this.x *= e2[0], this.y *= e2[1]) : e2.length === 3 && (this.x *= e2[0], this.y *= e2[1], this.z *= e2[2]) : console.warn("p5.Vector.prototype.mult:", "x contains elements that are either undefined or not finite numbers"), this;
          var n2 = Array.prototype.slice.call(arguments);
          return n2.every(function(e3) {
            return Number.isFinite(e3);
          }) && n2.every(function(e3) {
            return typeof e3 == "number";
          }) ? (arguments.length === 1 && (this.x *= e2, this.y *= e2, this.z *= e2), arguments.length === 2 && (this.x *= e2, this.y *= t2), arguments.length === 3 && (this.x *= e2, this.y *= t2, this.z *= r2)) : console.warn("p5.Vector.prototype.mult:", "x, y, or z arguments are either undefined or not a finite number"), this;
        }, l.default.Vector.prototype.div = function(e2, t2, r2) {
          if (e2 instanceof l.default.Vector) {
            if (Number.isFinite(e2.x) && Number.isFinite(e2.y) && Number.isFinite(e2.z) && typeof e2.x == "number" && typeof e2.y == "number" && typeof e2.z == "number") {
              if (e2.x === 0 || e2.y === 0 || e2.z === 0)
                return console.warn("p5.Vector.prototype.div:", "divide by 0"), this;
              this.x /= e2.x, this.y /= e2.y, this.z /= e2.z;
            } else
              console.warn("p5.Vector.prototype.div:", "x contains components that are either undefined or not finite numbers");
            return this;
          }
          if (e2 instanceof Array) {
            if (e2.every(function(e3) {
              return Number.isFinite(e3);
            }) && e2.every(function(e3) {
              return typeof e3 == "number";
            })) {
              if (e2.some(function(e3) {
                return e3 === 0;
              }))
                return console.warn("p5.Vector.prototype.div:", "divide by 0"), this;
              e2.length === 1 ? (this.x /= e2[0], this.y /= e2[0], this.z /= e2[0]) : e2.length === 2 ? (this.x /= e2[0], this.y /= e2[1]) : e2.length === 3 && (this.x /= e2[0], this.y /= e2[1], this.z /= e2[2]);
            } else
              console.warn("p5.Vector.prototype.div:", "x contains components that are either undefined or not finite numbers");
            return this;
          }
          var n2 = Array.prototype.slice.call(arguments);
          if (n2.every(function(e3) {
            return Number.isFinite(e3);
          }) && n2.every(function(e3) {
            return typeof e3 == "number";
          })) {
            if (n2.some(function(e3) {
              return e3 === 0;
            }))
              return console.warn("p5.Vector.prototype.div:", "divide by 0"), this;
            arguments.length === 1 && (this.x /= e2, this.y /= e2, this.z /= e2), arguments.length === 2 && (this.x /= e2, this.y /= t2), arguments.length === 3 && (this.x /= e2, this.y /= t2, this.z /= r2);
          } else
            console.warn("p5.Vector.prototype.div:", "x, y, or z arguments are either undefined or not a finite number");
          return this;
        }, l.default.Vector.prototype.mag = function() {
          return Math.sqrt(this.magSq());
        }, l.default.Vector.prototype.magSq = function() {
          var e2 = this.x, t2 = this.y, r2 = this.z;
          return e2 * e2 + t2 * t2 + r2 * r2;
        }, l.default.Vector.prototype.dot = function(e2, t2, r2) {
          return e2 instanceof l.default.Vector ? this.dot(e2.x, e2.y, e2.z) : this.x * (e2 || 0) + this.y * (t2 || 0) + this.z * (r2 || 0);
        }, l.default.Vector.prototype.cross = function(e2) {
          var t2 = this.y * e2.z - this.z * e2.y, r2 = this.z * e2.x - this.x * e2.z, n2 = this.x * e2.y - this.y * e2.x;
          return this.p5 ? new l.default.Vector(this.p5, [t2, r2, n2]) : new l.default.Vector(t2, r2, n2);
        }, l.default.Vector.prototype.dist = function(e2) {
          return e2.copy().sub(this).mag();
        }, l.default.Vector.prototype.normalize = function() {
          var e2 = this.mag();
          return e2 !== 0 && this.mult(1 / e2), this;
        }, l.default.Vector.prototype.limit = function(e2) {
          var t2 = this.magSq();
          return e2 * e2 < t2 && this.div(Math.sqrt(t2)).mult(e2), this;
        }, l.default.Vector.prototype.setMag = function(e2) {
          return this.normalize().mult(e2);
        }, l.default.Vector.prototype.heading = function() {
          var e2 = Math.atan2(this.y, this.x);
          return this.p5 ? this.p5._fromRadians(e2) : e2;
        }, l.default.Vector.prototype.setHeading = function(e2) {
          var t2 = this.mag();
          return this.x = t2 * Math.cos(e2), this.y = t2 * Math.sin(e2), this;
        }, l.default.Vector.prototype.rotate = function(e2) {
          var t2 = this.heading() + e2;
          this.p5 && (t2 = this.p5._toRadians(t2));
          var r2 = this.mag();
          return this.x = Math.cos(t2) * r2, this.y = Math.sin(t2) * r2, this;
        }, l.default.Vector.prototype.angleBetween = function(e2) {
          var t2, r2 = this.dot(e2) / (this.mag() * e2.mag());
          return t2 = Math.acos(Math.min(1, Math.max(-1, r2))), t2 *= Math.sign(this.cross(e2).z || 1), this.p5 && (t2 = this.p5._fromRadians(t2)), t2;
        }, l.default.Vector.prototype.lerp = function(e2, t2, r2, n2) {
          return e2 instanceof l.default.Vector ? this.lerp(e2.x, e2.y, e2.z, t2) : (this.x += (e2 - this.x) * n2 || 0, this.y += (t2 - this.y) * n2 || 0, this.z += (r2 - this.z) * n2 || 0, this);
        }, l.default.Vector.prototype.reflect = function(e2) {
          return e2.normalize(), this.sub(e2.mult(2 * this.dot(e2)));
        }, l.default.Vector.prototype.array = function() {
          return [this.x || 0, this.y || 0, this.z || 0];
        }, l.default.Vector.prototype.equals = function(e2, t2, r2) {
          var n2, o2, i2;
          return i2 = e2 instanceof l.default.Vector ? (n2 = e2.x || 0, o2 = e2.y || 0, e2.z || 0) : e2 instanceof Array ? (n2 = e2[0] || 0, o2 = e2[1] || 0, e2[2] || 0) : (n2 = e2 || 0, o2 = t2 || 0, r2 || 0), this.x === n2 && this.y === o2 && this.z === i2;
        }, l.default.Vector.fromAngle = function(e2, t2) {
          return t2 === void 0 && (t2 = 1), new l.default.Vector(t2 * Math.cos(e2), t2 * Math.sin(e2), 0);
        }, l.default.Vector.fromAngles = function(e2, t2, r2) {
          r2 === void 0 && (r2 = 1);
          var n2 = Math.cos(t2), o2 = Math.sin(t2), i2 = Math.cos(e2), a2 = Math.sin(e2);
          return new l.default.Vector(r2 * a2 * o2, -r2 * i2, r2 * a2 * n2);
        }, l.default.Vector.random2D = function() {
          return this.fromAngle(Math.random() * i.TWO_PI);
        }, l.default.Vector.random3D = function() {
          var e2 = Math.random() * i.TWO_PI, t2 = 2 * Math.random() - 1, r2 = Math.sqrt(1 - t2 * t2), n2 = r2 * Math.cos(e2), o2 = r2 * Math.sin(e2);
          return new l.default.Vector(n2, o2, t2);
        }, l.default.Vector.add = function(e2, t2, r2) {
          return r2 ? r2.set(e2) : (r2 = e2.copy(), arguments.length === 3 && l.default._friendlyError("The target parameter is undefined, it should be of type p5.Vector", "p5.Vector.add")), r2.add(t2), r2;
        }, l.default.Vector.rem = function(e2, t2) {
          if (e2 instanceof l.default.Vector && t2 instanceof l.default.Vector) {
            var r2 = e2.copy();
            return r2.rem(t2), r2;
          }
        }, l.default.Vector.sub = function(e2, t2, r2) {
          return r2 ? r2.set(e2) : (r2 = e2.copy(), arguments.length === 3 && l.default._friendlyError("The target parameter is undefined, it should be of type p5.Vector", "p5.Vector.sub")), r2.sub(t2), r2;
        }, l.default.Vector.mult = function(e2, t2, r2) {
          return r2 ? r2.set(e2) : (r2 = e2.copy(), arguments.length === 3 && l.default._friendlyError("The target parameter is undefined, it should be of type p5.Vector", "p5.Vector.mult")), r2.mult(t2), r2;
        }, l.default.Vector.rotate = function(e2, t2, r2) {
          return arguments.length === 2 ? r2 = e2.copy() : (r2 instanceof l.default.Vector || l.default._friendlyError("The target parameter should be of type p5.Vector", "p5.Vector.rotate"), r2.set(e2)), r2.rotate(t2), r2;
        }, l.default.Vector.div = function(e2, t2, r2) {
          return r2 ? r2.set(e2) : (r2 = e2.copy(), arguments.length === 3 && l.default._friendlyError("The target parameter is undefined, it should be of type p5.Vector", "p5.Vector.div")), r2.div(t2), r2;
        }, l.default.Vector.dot = function(e2, t2) {
          return e2.dot(t2);
        }, l.default.Vector.cross = function(e2, t2) {
          return e2.cross(t2);
        }, l.default.Vector.dist = function(e2, t2) {
          return e2.dist(t2);
        }, l.default.Vector.lerp = function(e2, t2, r2, n2) {
          return n2 ? n2.set(e2) : (n2 = e2.copy(), arguments.length === 4 && l.default._friendlyError("The target parameter is undefined, it should be of type p5.Vector", "p5.Vector.lerp")), n2.lerp(t2, r2), n2;
        }, l.default.Vector.mag = function(e2) {
          var t2 = e2.x, r2 = e2.y, n2 = e2.z, o2 = t2 * t2 + r2 * r2 + n2 * n2;
          return Math.sqrt(o2);
        }, l.default.Vector.normalize = function(e2, t2) {
          return arguments.length < 2 ? t2 = e2.copy() : (t2 instanceof l.default.Vector || l.default._friendlyError("The target parameter should be of type p5.Vector", "p5.Vector.normalize"), t2.set(e2)), t2.normalize();
        };
        var o = l.default.Vector;
        r.default = o;
      }, { "../core/constants": 250, "../core/main": 260, "core-js/modules/es.array.concat": 148, "core-js/modules/es.array.every": 149, "core-js/modules/es.array.slice": 160, "core-js/modules/es.array.some": 161, "core-js/modules/es.math.sign": 166, "core-js/modules/es.number.constructor": 167, "core-js/modules/es.number.is-finite": 168, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.regexp.to-string": 179, "core-js/modules/es.string.sub": 189 }], 294: [function(e, t, r) {
        "use strict";
        Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, o = (n = e("../core/main")) && n.__esModule ? n : { default: n };
        var i = "_lcg_random_state", a = 4294967296, s = 0;
        o.default.prototype._lcg = function(e2) {
          return this[e2] = (1664525 * this[e2] + 1013904223) % a, this[e2] / a;
        }, o.default.prototype._lcgSetSeed = function(e2, t2) {
          this[e2] = (t2 == null ? Math.random() * a : t2) >>> 0;
        }, o.default.prototype.randomSeed = function(e2) {
          this._lcgSetSeed(i, e2), this._gaussian_previous = false;
        }, o.default.prototype.random = function(e2, t2) {
          var r2;
          if (o.default._validateParameters("random", arguments), r2 = this[i] != null ? this._lcg(i) : Math.random(), e2 === void 0)
            return r2;
          if (t2 === void 0)
            return e2 instanceof Array ? e2[Math.floor(r2 * e2.length)] : r2 * e2;
          if (t2 < e2) {
            var n2 = e2;
            e2 = t2, t2 = n2;
          }
          return r2 * (t2 - e2) + e2;
        }, o.default.prototype.randomGaussian = function(e2) {
          var t2, r2, n2, o2, i2 = 1 < arguments.length && arguments[1] !== void 0 ? arguments[1] : 1;
          if (this._gaussian_previous)
            t2 = s, this._gaussian_previous = false;
          else {
            for (; 1 <= (o2 = (r2 = this.random(2) - 1) * r2 + (n2 = this.random(2) - 1) * n2); )
              ;
            t2 = r2 * (o2 = Math.sqrt(-2 * Math.log(o2) / o2)), s = n2 * o2, this._gaussian_previous = true;
          }
          return t2 * i2 + (e2 || 0);
        };
        var l = o.default;
        r.default = l;
      }, { "../core/main": 260 }], 295: [function(e, t, r) {
        "use strict";
        function a(e2) {
          return (a = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e3) {
            return typeof e3;
          } : function(e3) {
            return e3 && typeof Symbol == "function" && e3.constructor === Symbol && e3 !== Symbol.prototype ? "symbol" : typeof e3;
          })(e2);
        }
        Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, o = (n = e("../core/main")) && n.__esModule ? n : { default: n }, i = function(e2) {
          if (e2 && e2.__esModule)
            return e2;
          if (e2 === null || a(e2) !== "object" && typeof e2 != "function")
            return { default: e2 };
          var t2 = s();
          if (t2 && t2.has(e2))
            return t2.get(e2);
          var r2 = {}, n2 = Object.defineProperty && Object.getOwnPropertyDescriptor;
          for (var o2 in e2)
            if (Object.prototype.hasOwnProperty.call(e2, o2)) {
              var i2 = n2 ? Object.getOwnPropertyDescriptor(e2, o2) : null;
              i2 && (i2.get || i2.set) ? Object.defineProperty(r2, o2, i2) : r2[o2] = e2[o2];
            }
          r2.default = e2, t2 && t2.set(e2, r2);
          return r2;
        }(e("../core/constants"));
        function s() {
          if (typeof WeakMap != "function")
            return null;
          var e2 = new WeakMap();
          return s = function() {
            return e2;
          }, e2;
        }
        o.default.prototype._angleMode = i.RADIANS, o.default.prototype.acos = function(e2) {
          return this._fromRadians(Math.acos(e2));
        }, o.default.prototype.asin = function(e2) {
          return this._fromRadians(Math.asin(e2));
        }, o.default.prototype.atan = function(e2) {
          return this._fromRadians(Math.atan(e2));
        }, o.default.prototype.atan2 = function(e2, t2) {
          return this._fromRadians(Math.atan2(e2, t2));
        }, o.default.prototype.cos = function(e2) {
          return Math.cos(this._toRadians(e2));
        }, o.default.prototype.sin = function(e2) {
          return Math.sin(this._toRadians(e2));
        }, o.default.prototype.tan = function(e2) {
          return Math.tan(this._toRadians(e2));
        }, o.default.prototype.degrees = function(e2) {
          return e2 * i.RAD_TO_DEG;
        }, o.default.prototype.radians = function(e2) {
          return e2 * i.DEG_TO_RAD;
        }, o.default.prototype.angleMode = function(e2) {
          e2 !== i.DEGREES && e2 !== i.RADIANS || (this._angleMode = e2);
        }, o.default.prototype._toRadians = function(e2) {
          return this._angleMode === i.DEGREES ? e2 * i.DEG_TO_RAD : e2;
        }, o.default.prototype._toDegrees = function(e2) {
          return this._angleMode === i.RADIANS ? e2 * i.RAD_TO_DEG : e2;
        }, o.default.prototype._fromRadians = function(e2) {
          return this._angleMode === i.DEGREES ? e2 * i.RAD_TO_DEG : e2;
        };
        var l = o.default;
        r.default = l;
      }, { "../core/constants": 250, "../core/main": 260 }], 296: [function(e, t, r) {
        "use strict";
        Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, o = (n = e("../core/main")) && n.__esModule ? n : { default: n };
        o.default.prototype.textAlign = function(e2, t2) {
          var r2;
          return o.default._validateParameters("textAlign", arguments), (r2 = this._renderer).textAlign.apply(r2, arguments);
        }, o.default.prototype.textLeading = function(e2) {
          var t2;
          return o.default._validateParameters("textLeading", arguments), (t2 = this._renderer).textLeading.apply(t2, arguments);
        }, o.default.prototype.textSize = function(e2) {
          var t2;
          return o.default._validateParameters("textSize", arguments), (t2 = this._renderer).textSize.apply(t2, arguments);
        }, o.default.prototype.textStyle = function(e2) {
          var t2;
          return o.default._validateParameters("textStyle", arguments), (t2 = this._renderer).textStyle.apply(t2, arguments);
        }, o.default.prototype.textWidth = function() {
          for (var e2, t2 = arguments.length, r2 = new Array(t2), n2 = 0; n2 < t2; n2++)
            r2[n2] = arguments[n2];
          return r2[0] += "", o.default._validateParameters("textWidth", r2), r2[0].length === 0 ? 0 : (e2 = this._renderer).textWidth.apply(e2, r2);
        }, o.default.prototype.textAscent = function() {
          for (var e2 = arguments.length, t2 = new Array(e2), r2 = 0; r2 < e2; r2++)
            t2[r2] = arguments[r2];
          return o.default._validateParameters("textAscent", t2), this._renderer.textAscent();
        }, o.default.prototype.textDescent = function() {
          for (var e2 = arguments.length, t2 = new Array(e2), r2 = 0; r2 < e2; r2++)
            t2[r2] = arguments[r2];
          return o.default._validateParameters("textDescent", t2), this._renderer.textDescent();
        }, o.default.prototype._updateTextMetrics = function() {
          return this._renderer._updateTextMetrics();
        }, o.default.prototype.textWrap = function(e2) {
          if (e2 !== "WORD" && e2 !== "CHAR")
            throw "Error: textWrap accepts only WORD or CHAR";
          return this._renderer.textWrap(e2);
        };
        var i = o.default;
        r.default = i;
      }, { "../core/main": 260 }], 297: [function(e, t, r) {
        "use strict";
        function a(e2) {
          return (a = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e3) {
            return typeof e3;
          } : function(e3) {
            return e3 && typeof Symbol == "function" && e3.constructor === Symbol && e3 !== Symbol.prototype ? "symbol" : typeof e3;
          })(e2);
        }
        e("core-js/modules/es.array.concat"), e("core-js/modules/es.array.includes"), e("core-js/modules/es.array.last-index-of"), e("core-js/modules/es.regexp.exec"), e("core-js/modules/es.string.split"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, f = (n = e("../core/main")) && n.__esModule ? n : { default: n }, o = l(e("../core/constants")), i = l(e("opentype.js"));
        function s() {
          if (typeof WeakMap != "function")
            return null;
          var e2 = new WeakMap();
          return s = function() {
            return e2;
          }, e2;
        }
        function l(e2) {
          if (e2 && e2.__esModule)
            return e2;
          if (e2 === null || a(e2) !== "object" && typeof e2 != "function")
            return { default: e2 };
          var t2 = s();
          if (t2 && t2.has(e2))
            return t2.get(e2);
          var r2 = {}, n2 = Object.defineProperty && Object.getOwnPropertyDescriptor;
          for (var o2 in e2)
            if (Object.prototype.hasOwnProperty.call(e2, o2)) {
              var i2 = n2 ? Object.getOwnPropertyDescriptor(e2, o2) : null;
              i2 && (i2.get || i2.set) ? Object.defineProperty(r2, o2, i2) : r2[o2] = e2[o2];
            }
          return r2.default = e2, t2 && t2.set(e2, r2), r2;
        }
        e("../core/friendly_errors/validate_params"), e("../core/friendly_errors/file_errors"), e("../core/friendly_errors/fes_core"), f.default.prototype.loadFont = function(s2, l2, u2) {
          f.default._validateParameters("loadFont", arguments);
          var c = new f.default.Font(this), d = this;
          return i.load(s2, function(e2, t2) {
            if (e2)
              return f.default._friendlyFileLoadError(4, s2), u2 !== void 0 ? u2(e2) : void console.error(e2, s2);
            c.font = t2, l2 !== void 0 && l2(c), d._decrementPreload();
            var r2, n2, o2 = s2.split("\\").pop().split("/").pop(), i2 = o2.lastIndexOf("."), a2 = i2 < 1 ? null : o2.substr(i2 + 1);
            ["ttf", "otf", "woff", "woff2"].includes(a2) && (r2 = o2.substr(0, i2), (n2 = document.createElement("style")).appendChild(document.createTextNode("\n@font-face {\nfont-family: ".concat(r2, ";\nsrc: url(").concat(s2, ");\n}\n"))), document.head.appendChild(n2));
          }), c;
        }, f.default.prototype.text = function(e2, t2, r2, n2, o2) {
          var i2;
          return f.default._validateParameters("text", arguments), this._renderer._doFill || this._renderer._doStroke ? (i2 = this._renderer).text.apply(i2, arguments) : this;
        }, f.default.prototype.textFont = function(e2, t2) {
          if (f.default._validateParameters("textFont", arguments), arguments.length) {
            if (!e2)
              throw new Error("null font passed to textFont");
            return this._renderer._setProperty("_textFont", e2), t2 && (this._renderer._setProperty("_textSize", t2), this._renderer._leadingSet || this._renderer._setProperty("_textLeading", t2 * o._DEFAULT_LEADMULT)), this._renderer._applyTextProperties();
          }
          return this._renderer._textFont;
        };
        var u = f.default;
        r.default = u;
      }, { "../core/constants": 250, "../core/friendly_errors/fes_core": 252, "../core/friendly_errors/file_errors": 253, "../core/friendly_errors/validate_params": 255, "../core/main": 260, "core-js/modules/es.array.concat": 148, "core-js/modules/es.array.includes": 154, "core-js/modules/es.array.last-index-of": 158, "core-js/modules/es.regexp.exec": 178, "core-js/modules/es.string.split": 188, "opentype.js": 236 }], 298: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.symbol"), e("core-js/modules/es.symbol.description"), e("core-js/modules/es.symbol.iterator"), e("core-js/modules/es.array.concat"), e("core-js/modules/es.array.fill"), e("core-js/modules/es.array.iterator"), e("core-js/modules/es.array.join"), e("core-js/modules/es.array.slice"), e("core-js/modules/es.array.splice"), e("core-js/modules/es.function.name"), e("core-js/modules/es.number.to-fixed"), e("core-js/modules/es.object.to-string"), e("core-js/modules/es.regexp.exec"), e("core-js/modules/es.string.iterator"), e("core-js/modules/es.string.split"), e("core-js/modules/web.dom-collections.iterator"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, o = (n = e("../core/main")) && n.__esModule ? n : { default: n }, x = function(e2) {
          if (e2 && e2.__esModule)
            return e2;
          if (e2 === null || h(e2) !== "object" && typeof e2 != "function")
            return { default: e2 };
          var t2 = a();
          if (t2 && t2.has(e2))
            return t2.get(e2);
          var r2 = {}, n2 = Object.defineProperty && Object.getOwnPropertyDescriptor;
          for (var o2 in e2)
            if (Object.prototype.hasOwnProperty.call(e2, o2)) {
              var i2 = n2 ? Object.getOwnPropertyDescriptor(e2, o2) : null;
              i2 && (i2.get || i2.set) ? Object.defineProperty(r2, o2, i2) : r2[o2] = e2[o2];
            }
          r2.default = e2, t2 && t2.set(e2, r2);
          return r2;
        }(e("../core/constants"));
        function a() {
          if (typeof WeakMap != "function")
            return null;
          var e2 = new WeakMap();
          return a = function() {
            return e2;
          }, e2;
        }
        function h(e2) {
          return (h = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e3) {
            return typeof e3;
          } : function(e3) {
            return e3 && typeof Symbol == "function" && e3.constructor === Symbol && e3 !== Symbol.prototype ? "symbol" : typeof e3;
          })(e2);
        }
        function p(e2, t2) {
          for (var r2 = function(e3, t3) {
            if (h(e3) !== "object")
              e3 = t3;
            else
              for (var r3 in t3)
                e3[r3] === void 0 && (e3[r3] = t3[r3]);
            return e3;
          }(t2, { sampleFactor: 0.1, simplifyThreshold: 0 }), n2 = l(e2, 0, 1), o2 = n2 / (n2 * r2.sampleFactor), i2 = [], a2 = 0; a2 < n2; a2 += o2)
            i2.push(l(e2, a2));
          return r2.simplifyThreshold && function(e3) {
            for (var t3 = 1 < arguments.length && arguments[1] !== void 0 ? arguments[1] : 0, r3 = 0, n3 = e3.length - 1; 3 < e3.length && 0 <= n3; --n3)
              f(s(e3, n3 - 1), s(e3, n3), s(e3, n3 + 1), t3) && (e3.splice(n3 % e3.length, 1), r3++);
          }(i2, r2.simplifyThreshold), i2;
        }
        function y(e2) {
          for (var t2, r2 = [], n2 = 0; n2 < e2.length; n2++)
            e2[n2].type === "M" && (t2 && r2.push(t2), t2 = []), t2.push(i(e2[n2]));
          return r2.push(t2), r2;
        }
        function i(e2) {
          var t2 = [e2.type];
          return e2.type === "M" || e2.type === "L" ? t2.push(e2.x, e2.y) : e2.type === "C" ? t2.push(e2.x1, e2.y1, e2.x2, e2.y2, e2.x, e2.y) : e2.type === "Q" && t2.push(e2.x1, e2.y1, e2.x, e2.y), t2;
        }
        function s(e2, t2) {
          var r2 = e2.length;
          return e2[t2 < 0 ? t2 % r2 + r2 : t2 % r2];
        }
        function f(e2, t2, r2, n2) {
          if (!n2)
            return (o2 = e2, a2 = r2, ((i2 = t2)[0] - o2[0]) * (a2[1] - o2[1]) - (a2[0] - o2[0]) * (i2[1] - o2[1])) == 0;
          var o2, i2, a2;
          f.tmpPoint1 === void 0 && (f.tmpPoint1 = [], f.tmpPoint2 = []);
          var s2 = f.tmpPoint1, l2 = f.tmpPoint2;
          s2.x = t2.x - e2.x, s2.y = t2.y - e2.y, l2.x = r2.x - t2.x, l2.y = r2.y - t2.y;
          var u2 = s2.x * l2.x + s2.y * l2.y, c = Math.sqrt(s2.x * s2.x + s2.y * s2.y), d2 = Math.sqrt(l2.x * l2.x + l2.y * l2.y);
          return Math.acos(u2 / (c * d2)) < n2;
        }
        function d(e2, t2, r2, n2, o2, i2, a2, s2, l2) {
          var u2 = 1 - l2, c = Math.pow(u2, 3), d2 = Math.pow(u2, 2), f2 = l2 * l2, h2 = f2 * l2, p2 = c * e2 + 3 * d2 * l2 * r2 + 3 * u2 * l2 * l2 * o2 + h2 * a2, y2 = c * t2 + 3 * d2 * l2 * n2 + 3 * u2 * l2 * l2 * i2 + h2 * s2, m2 = e2 + 2 * l2 * (r2 - e2) + f2 * (o2 - 2 * r2 + e2), g2 = t2 + 2 * l2 * (n2 - t2) + f2 * (i2 - 2 * n2 + t2), v2 = r2 + 2 * l2 * (o2 - r2) + f2 * (a2 - 2 * o2 + r2), b2 = n2 + 2 * l2 * (i2 - n2) + f2 * (s2 - 2 * i2 + n2), _2 = u2 * e2 + l2 * r2, x2 = u2 * t2 + l2 * n2, w2 = u2 * o2 + l2 * a2, S2 = u2 * i2 + l2 * s2, j = 90 - 180 * Math.atan2(m2 - v2, g2 - b2) / Math.PI;
          return (v2 < m2 || g2 < b2) && (j += 180), { x: p2, y: y2, m: { x: m2, y: g2 }, n: { x: v2, y: b2 }, start: { x: _2, y: x2 }, end: { x: w2, y: S2 }, alpha: j };
        }
        function m(e2, t2, r2, n2, o2, i2, a2, s2, l2) {
          return l2 == null ? g(e2, t2, r2, n2, o2, i2, a2, s2) : d(e2, t2, r2, n2, o2, i2, a2, s2, function(e3, t3, r3, n3, o3, i3, a3, s3, l3) {
            if (l3 < 0 || g(e3, t3, r3, n3, o3, i3, a3, s3) < l3)
              return;
            var u2, c = 0.5, d2 = 1 - c;
            u2 = g(e3, t3, r3, n3, o3, i3, a3, s3, d2);
            for (; 0.01 < Math.abs(u2 - l3); )
              u2 = g(e3, t3, r3, n3, o3, i3, a3, s3, d2 += (u2 < l3 ? 1 : -1) * (c /= 2));
            return d2;
          }(e2, t2, r2, n2, o2, i2, a2, s2, l2));
        }
        function l(e2, t2, r2) {
          for (var n2, o2, i2, a2, s2, l2 = 0, u2 = 0, c = (e2 = function(e3, t3) {
            function r3(e4, t4, r4) {
              var n4, o4;
              if (!e4)
                return ["C", t4.x, t4.y, t4.x, t4.y, t4.x, t4.y];
              switch (e4[0] in { T: 1, Q: 1 } || (t4.qx = t4.qy = null), e4[0]) {
                case "M":
                  t4.X = e4[1], t4.Y = e4[2];
                  break;
                case "A":
                  e4 = ["C"].concat(function e5(t5, r5, n5, o5, i4, a4, s4, l4, u4, c3) {
                    var d3 = Math.PI;
                    var f3 = 120 * d3 / 180;
                    var h3;
                    var p3;
                    var y3;
                    var m3;
                    var g3 = d3 / 180 * (+i4 || 0);
                    var v3 = [];
                    var b2;
                    var _2 = function(e6, t6, r6) {
                      var n6 = e6 * Math.cos(r6) - t6 * Math.sin(r6), o6 = e6 * Math.sin(r6) + t6 * Math.cos(r6);
                      return { x: n6, y: o6 };
                    };
                    if (c3)
                      h3 = c3[0], p3 = c3[1], y3 = c3[2], m3 = c3[3];
                    else {
                      b2 = _2(t5, r5, -g3), t5 = b2.x, r5 = b2.y, b2 = _2(l4, u4, -g3), l4 = b2.x, u4 = b2.y;
                      var x2 = (t5 - l4) / 2, w2 = (r5 - u4) / 2, S2 = x2 * x2 / (n5 * n5) + w2 * w2 / (o5 * o5);
                      1 < S2 && (S2 = Math.sqrt(S2), n5 *= S2, o5 *= S2);
                      var j = n5 * n5, M = o5 * o5, E = (a4 === s4 ? -1 : 1) * Math.sqrt(Math.abs((j * M - j * w2 * w2 - M * x2 * x2) / (j * w2 * w2 + M * x2 * x2)));
                      y3 = E * n5 * w2 / o5 + (t5 + l4) / 2, m3 = E * -o5 * x2 / n5 + (r5 + u4) / 2, h3 = Math.asin(((r5 - m3) / o5).toFixed(9)), p3 = Math.asin(((u4 - m3) / o5).toFixed(9)), (h3 = t5 < y3 ? d3 - h3 : h3) < 0 && (h3 = 2 * d3 + h3), (p3 = l4 < y3 ? d3 - p3 : p3) < 0 && (p3 = 2 * d3 + p3), s4 && p3 < h3 && (h3 -= 2 * d3), !s4 && h3 < p3 && (p3 -= 2 * d3);
                    }
                    var T = p3 - h3;
                    if (Math.abs(T) > f3) {
                      var O = p3, C = l4, L = u4;
                      p3 = h3 + f3 * (s4 && h3 < p3 ? 1 : -1), l4 = y3 + n5 * Math.cos(p3), u4 = m3 + o5 * Math.sin(p3), v3 = e5(l4, u4, n5, o5, i4, 0, s4, C, L, [p3, O, y3, m3]);
                    }
                    T = p3 - h3;
                    var P = Math.cos(h3), k = Math.sin(h3), A = Math.cos(p3), R = Math.sin(p3), D = Math.tan(T / 4), I = 4 / 3 * n5 * D, U = 4 / 3 * o5 * D, N = [t5, r5], F = [t5 + I * k, r5 - U * P], B = [l4 + I * R, u4 - U * A], G = [l4, u4];
                    F[0] = 2 * N[0] - F[0];
                    F[1] = 2 * N[1] - F[1];
                    {
                      if (c3)
                        return [F, B, G].concat(v3);
                      v3 = [F, B, G].concat(v3).join().split(",");
                      for (var V = [], z = 0, H = v3.length; z < H; z++)
                        V[z] = z % 2 ? _2(v3[z - 1], v3[z], g3).y : _2(v3[z], v3[z + 1], g3).x;
                      return V;
                    }
                  }.apply(0, [t4.x, t4.y].concat(e4.slice(1))));
                  break;
                case "S":
                  o4 = r4 === "C" || r4 === "S" ? (n4 = 2 * t4.x - t4.bx, 2 * t4.y - t4.by) : (n4 = t4.x, t4.y), e4 = ["C", n4, o4].concat(e4.slice(1));
                  break;
                case "T":
                  r4 === "Q" || r4 === "T" ? (t4.qx = 2 * t4.x - t4.qx, t4.qy = 2 * t4.y - t4.qy) : (t4.qx = t4.x, t4.qy = t4.y), e4 = ["C"].concat(S(t4.x, t4.y, t4.qx, t4.qy, e4[1], e4[2]));
                  break;
                case "Q":
                  t4.qx = e4[1], t4.qy = e4[2], e4 = ["C"].concat(S(t4.x, t4.y, e4[1], e4[2], e4[3], e4[4]));
                  break;
                case "L":
                  e4 = ["C"].concat(w(t4.x, t4.y, e4[1], e4[2]));
                  break;
                case "H":
                  e4 = ["C"].concat(w(t4.x, t4.y, e4[1], t4.y));
                  break;
                case "V":
                  e4 = ["C"].concat(w(t4.x, t4.y, t4.x, e4[1]));
                  break;
                case "Z":
                  e4 = ["C"].concat(w(t4.x, t4.y, t4.X, t4.Y));
              }
              return e4;
            }
            function n3(e4, t4) {
              if (7 < e4[t4].length) {
                e4[t4].shift();
                for (var r4 = e4[t4]; r4.length; )
                  c2[t4] = "A", s3 && (d2[t4] = "A"), e4.splice(t4++, 0, ["C"].concat(r4.splice(0, 6)));
                e4.splice(t4, 1), i3 = Math.max(a3.length, s3 && s3.length || 0);
              }
            }
            function o3(e4, t4, r4, n4, o4) {
              e4 && t4 && e4[o4][0] === "M" && t4[o4][0] !== "M" && (t4.splice(o4, 0, ["M", n4.x, n4.y]), r4.bx = 0, r4.by = 0, r4.x = e4[o4][1], r4.y = e4[o4][2], i3 = Math.max(a3.length, s3 && s3.length || 0));
            }
            var i3, a3 = b(e3), s3 = t3 && b(t3), l3 = { x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null }, u3 = { x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null }, c2 = [], d2 = [], f2 = "", h2 = "";
            i3 = Math.max(a3.length, s3 && s3.length || 0);
            for (var p2 = 0; p2 < i3; p2++) {
              a3[p2] && (f2 = a3[p2][0]), f2 !== "C" && (c2[p2] = f2, p2 && (h2 = c2[p2 - 1])), a3[p2] = r3(a3[p2], l3, h2), c2[p2] !== "A" && f2 === "C" && (c2[p2] = "C"), n3(a3, p2), s3 && (s3[p2] && (f2 = s3[p2][0]), f2 !== "C" && (d2[p2] = f2, p2 && (h2 = d2[p2 - 1])), s3[p2] = r3(s3[p2], u3, h2), d2[p2] !== "A" && f2 === "C" && (d2[p2] = "C"), n3(s3, p2)), o3(a3, s3, l3, u3, p2), o3(s3, a3, u3, l3, p2);
              var y2 = a3[p2], m2 = s3 && s3[p2], g2 = y2.length, v2 = s3 && m2.length;
              l3.x = y2[g2 - 2], l3.y = y2[g2 - 1], l3.bx = parseFloat(y2[g2 - 4]) || l3.x, l3.by = parseFloat(y2[g2 - 3]) || l3.y, u3.bx = s3 && (parseFloat(m2[v2 - 4]) || u3.x), u3.by = s3 && (parseFloat(m2[v2 - 3]) || u3.y), u3.x = s3 && m2[v2 - 2], u3.y = s3 && m2[v2 - 1];
            }
            return s3 ? [a3, s3] : a3;
          }(e2)).length; u2 < c; u2++) {
            if ((i2 = e2[u2])[0] === "M")
              n2 = +i2[1], o2 = +i2[2];
            else {
              if (t2 < l2 + (a2 = m(n2, o2, i2[1], i2[2], i2[3], i2[4], i2[5], i2[6])) && !r2)
                return { x: (s2 = m(n2, o2, i2[1], i2[2], i2[3], i2[4], i2[5], i2[6], t2 - l2)).x, y: s2.y, alpha: s2.alpha };
              l2 += a2, n2 = +i2[5], o2 = +i2[6];
            }
            i2.shift() + i2;
          }
          return (s2 = r2 ? l2 : d(n2, o2, i2[0], i2[1], i2[2], i2[3], i2[4], i2[5], 1)).alpha && (s2 = { x: s2.x, y: s2.y, alpha: s2.alpha }), s2;
        }
        function b(e2) {
          var t2, r2 = [], n2 = 0, o2 = 0, i2 = 0, a2 = 0, s2 = 0;
          if (!e2)
            return r2;
          e2[0][0] === "M" && (i2 = n2 = +e2[0][1], a2 = o2 = +e2[0][2], s2++, r2[0] = ["M", n2, o2]);
          for (var l2, u2, c = e2.length === 3 && e2[0][0] === "M" && e2[1][0].toUpperCase() === "R" && e2[2][0].toUpperCase() === "Z", d2 = s2, f2 = e2.length; d2 < f2; d2++) {
            if (r2.push(l2 = []), (u2 = e2[d2])[0] !== String.prototype.toUpperCase.call(u2[0]))
              switch (l2[0] = String.prototype.toUpperCase.call(u2[0]), l2[0]) {
                case "A":
                  l2[1] = u2[1], l2[2] = u2[2], l2[3] = u2[3], l2[4] = u2[4], l2[5] = u2[5], l2[6] = +(u2[6] + n2), l2[7] = +(u2[7] + o2);
                  break;
                case "V":
                  l2[1] = +u2[1] + o2;
                  break;
                case "H":
                  l2[1] = +u2[1] + n2;
                  break;
                case "R":
                  for (var h2 = 2, p2 = (t2 = [n2, o2].concat(u2.slice(1))).length; h2 < p2; h2++)
                    t2[h2] = +t2[h2] + n2, t2[++h2] = +t2[h2] + o2;
                  r2.pop(), r2 = r2.concat(_(t2, c));
                  break;
                case "M":
                  i2 = +u2[1] + n2, a2 = +u2[2] + o2;
                  break;
                default:
                  for (var y2 = 1, m2 = u2.length; y2 < m2; y2++)
                    l2[y2] = +u2[y2] + (y2 % 2 ? n2 : o2);
              }
            else if (u2[0] === "R")
              t2 = [n2, o2].concat(u2.slice(1)), r2.pop(), r2 = r2.concat(_(t2, c)), l2 = ["R"].concat(u2.slice(-2));
            else
              for (var g2 = 0, v2 = u2.length; g2 < v2; g2++)
                l2[g2] = u2[g2];
            switch (l2[0]) {
              case "Z":
                n2 = i2, o2 = a2;
                break;
              case "H":
                n2 = l2[1];
                break;
              case "V":
                o2 = l2[1];
                break;
              case "M":
                i2 = l2[l2.length - 2], a2 = l2[l2.length - 1];
                break;
              default:
                n2 = l2[l2.length - 2], o2 = l2[l2.length - 1];
            }
          }
          return r2;
        }
        function _(e2, t2) {
          for (var r2 = [], n2 = 0, o2 = e2.length; n2 < o2 - 2 * !t2; n2 += 2) {
            var i2 = [{ x: +e2[n2 - 2], y: +e2[n2 - 1] }, { x: +e2[n2], y: +e2[n2 + 1] }, { x: +e2[n2 + 2], y: +e2[n2 + 3] }, { x: +e2[n2 + 4], y: +e2[n2 + 5] }];
            t2 ? n2 ? o2 - 4 === n2 ? i2[3] = { x: +e2[0], y: +e2[1] } : o2 - 2 === n2 && (i2[2] = { x: +e2[0], y: +e2[1] }, i2[3] = { x: +e2[2], y: +e2[3] }) : i2[0] = { x: +e2[o2 - 2], y: +e2[o2 - 1] } : o2 - 4 === n2 ? i2[3] = i2[2] : n2 || (i2[0] = { x: +e2[n2], y: +e2[n2 + 1] }), r2.push(["C", (-i2[0].x + 6 * i2[1].x + i2[2].x) / 6, (-i2[0].y + 6 * i2[1].y + i2[2].y) / 6, (i2[1].x + 6 * i2[2].x - i2[3].x) / 6, (i2[1].y + 6 * i2[2].y - i2[3].y) / 6, i2[2].x, i2[2].y]);
          }
          return r2;
        }
        function w(e2, t2, r2, n2) {
          return [e2, t2, r2, n2, r2, n2];
        }
        function S(e2, t2, r2, n2, o2, i2) {
          return [1 / 3 * e2 + 2 / 3 * r2, 1 / 3 * t2 + 2 / 3 * n2, 1 / 3 * o2 + 2 / 3 * r2, 1 / 3 * i2 + 2 / 3 * n2, o2, i2];
        }
        function g(e2, t2, r2, n2, o2, i2, a2, s2, l2) {
          l2 == null && (l2 = 1);
          for (var u2 = (l2 = 1 < l2 ? 1 : l2 < 0 ? 0 : l2) / 2, c = [-0.1252, 0.1252, -0.3678, 0.3678, -0.5873, 0.5873, -0.7699, 0.7699, -0.9041, 0.9041, -0.9816, 0.9816], d2 = 0, f2 = [0.2491, 0.2491, 0.2335, 0.2335, 0.2032, 0.2032, 0.1601, 0.1601, 0.1069, 0.1069, 0.0472, 0.0472], h2 = 0; h2 < 12; h2++) {
            var p2 = u2 * c[h2] + u2, y2 = v(p2, e2, r2, o2, a2), m2 = v(p2, t2, n2, i2, s2), g2 = y2 * y2 + m2 * m2;
            d2 += f2[h2] * Math.sqrt(g2);
          }
          return u2 * d2;
        }
        function v(e2, t2, r2, n2, o2) {
          return e2 * (e2 * (-3 * t2 + 9 * r2 - 9 * n2 + 3 * o2) + 6 * t2 - 12 * r2 + 6 * n2) - 3 * t2 + 3 * r2;
        }
        o.default.Font = function(e2) {
          this.parent = e2, this.cache = {}, this.font = void 0;
        }, o.default.Font.prototype.textBounds = function(e2) {
          var t2, r2 = 1 < arguments.length && arguments[1] !== void 0 ? arguments[1] : 0, n2 = 2 < arguments.length && arguments[2] !== void 0 ? arguments[2] : 0, o2 = 3 < arguments.length ? arguments[3] : void 0, i2 = 4 < arguments.length ? arguments[4] : void 0, a2 = i2 && i2.renderer && i2.renderer._pInst || this.parent, s2 = a2._renderer.drawingContext;
          s2.textAlign || x.LEFT, s2.textBaseline || x.BASELINE;
          if (o2 = o2 || a2._renderer._textSize, !t2) {
            var l2, u2, c = [], d2 = [], f2 = [];
            f2[0] = [];
            var h2 = [], p2 = this._scale(o2), y2 = a2._renderer.textLeading(), m2 = 0;
            this.font.forEachGlyph(e2, r2, n2, o2, i2, function(e3, t3, r3, n3) {
              var o3 = e3.getMetrics();
              e3.index === 0 || e3.index === 10 ? f2[m2 += 1] = [] : (f2[m2].push(t3 + o3.xMin * p2), f2[m2].push(t3 + o3.xMax * p2), h2.push(r3 + m2 * y2 + -o3.yMin * p2), h2.push(r3 + m2 * y2 + -o3.yMax * p2));
            }), 0 < f2[m2].length && (c[m2] = Math.min.apply(null, f2[m2]), d2[m2] = Math.max.apply(null, f2[m2]));
            for (var g2 = 0, v2 = 0; v2 <= m2; v2++) {
              c[v2] = Math.min.apply(null, f2[v2]), d2[v2] = Math.max.apply(null, f2[v2]);
              var b2 = d2[v2] - c[v2];
              g2 < b2 && (g2 = b2);
            }
            var _2 = Math.min.apply(null, c);
            t2 = { x: _2, y: l2 = Math.min.apply(null, h2), h: Math.max.apply(null, h2) - l2, w: g2, advance: _2 - r2 }, u2 = this._handleAlignment(a2._renderer, e2, t2.x, t2.y, t2.w + t2.advance), t2.x = u2.x, t2.y = u2.y;
          }
          return t2;
        }, o.default.Font.prototype.textToPoints = function(e2, t2, r2, n2, o2) {
          var i2, a2 = 0, s2 = [], l2 = this._getGlyphs(e2);
          n2 = n2 || this.parent._renderer._textSize;
          for (var u2 = 0; u2 < l2.length; u2++) {
            if (!(l2[i2 = u2].name && l2[i2].name === "space" || e2.length === l2.length && e2[i2] === " " || l2[i2].index && l2[i2].index === 3))
              for (var c = y(l2[u2].getPath(t2, r2, n2).commands), d2 = 0; d2 < c.length; d2++)
                for (var f2 = p(c[d2], o2), h2 = 0; h2 < f2.length; h2++)
                  f2[h2].x += a2, s2.push(f2[h2]);
            a2 += l2[u2].advanceWidth * this._scale(n2);
          }
          return s2;
        }, o.default.Font.prototype._getGlyphs = function(e2) {
          return this.font.stringToGlyphs(e2);
        }, o.default.Font.prototype._getPath = function(e2, t2, r2, n2) {
          var o2 = (n2 && n2.renderer && n2.renderer._pInst || this.parent)._renderer, i2 = this._handleAlignment(o2, e2, t2, r2);
          return this.font.getPath(e2, i2.x, i2.y, o2._textSize, n2);
        }, o.default.Font.prototype._getPathData = function(e2, t2, r2, n2) {
          var o2 = 3;
          return typeof e2 == "string" && 2 < arguments.length ? e2 = this._getPath(e2, t2, r2, n2) : h(t2) === "object" && (n2 = t2), n2 && typeof n2.decimals == "number" && (o2 = n2.decimals), e2.toPathData(o2);
        }, o.default.Font.prototype._getSVG = function(e2, t2, r2, n2) {
          var o2 = 3;
          return typeof e2 == "string" && 2 < arguments.length ? e2 = this._getPath(e2, t2, r2, n2) : h(t2) === "object" && (n2 = t2), n2 && (typeof n2.decimals == "number" && (o2 = n2.decimals), typeof n2.strokeWidth == "number" && (e2.strokeWidth = n2.strokeWidth), n2.fill !== void 0 && (e2.fill = n2.fill), n2.stroke !== void 0 && (e2.stroke = n2.stroke)), e2.toSVG(o2);
        }, o.default.Font.prototype._renderPath = function(e2, t2, r2, n2) {
          var o2, i2 = n2 && n2.renderer || this.parent._renderer, a2 = i2.drawingContext;
          o2 = h(e2) === "object" && e2.commands ? e2.commands : this._getPath(e2, t2, r2, n2).commands, a2.beginPath();
          var s2 = true, l2 = false, u2 = void 0;
          try {
            for (var c, d2 = o2[Symbol.iterator](); !(s2 = (c = d2.next()).done); s2 = true) {
              var f2 = c.value;
              f2.type === "M" ? a2.moveTo(f2.x, f2.y) : f2.type === "L" ? a2.lineTo(f2.x, f2.y) : f2.type === "C" ? a2.bezierCurveTo(f2.x1, f2.y1, f2.x2, f2.y2, f2.x, f2.y) : f2.type === "Q" ? a2.quadraticCurveTo(f2.x1, f2.y1, f2.x, f2.y) : f2.type === "Z" && a2.closePath();
            }
          } catch (e3) {
            l2 = true, u2 = e3;
          } finally {
            try {
              s2 || d2.return == null || d2.return();
            } finally {
              if (l2)
                throw u2;
            }
          }
          return i2._doStroke && i2._strokeSet && a2.stroke(), i2._doFill && (i2._fillSet || i2._setFill(x._DEFAULT_TEXT_FILL), a2.fill()), this;
        }, o.default.Font.prototype._textWidth = function(e2, t2) {
          return this.font.getAdvanceWidth(e2, t2);
        }, o.default.Font.prototype._textAscent = function(e2) {
          return this.font.ascender * this._scale(e2);
        }, o.default.Font.prototype._textDescent = function(e2) {
          return -this.font.descender * this._scale(e2);
        }, o.default.Font.prototype._scale = function(e2) {
          return 1 / this.font.unitsPerEm * (e2 || this.parent._renderer._textSize);
        }, o.default.Font.prototype._handleAlignment = function(e2, t2, r2, n2, o2) {
          var i2 = e2._textSize;
          switch (o2 === void 0 && (o2 = this._textWidth(t2, i2)), e2._textAlign) {
            case x.CENTER:
              r2 -= o2 / 2;
              break;
            case x.RIGHT:
              r2 -= o2;
          }
          switch (e2._textBaseline) {
            case x.TOP:
              n2 += this._textAscent(i2);
              break;
            case x.CENTER:
              n2 += this._textAscent(i2) / 2;
              break;
            case x.BOTTOM:
              n2 -= this._textDescent(i2);
          }
          return { x: r2, y: n2 };
        };
        var u = o.default;
        r.default = u;
      }, { "../core/constants": 250, "../core/main": 260, "core-js/modules/es.array.concat": 148, "core-js/modules/es.array.fill": 150, "core-js/modules/es.array.iterator": 156, "core-js/modules/es.array.join": 157, "core-js/modules/es.array.slice": 160, "core-js/modules/es.array.splice": 162, "core-js/modules/es.function.name": 163, "core-js/modules/es.number.to-fixed": 169, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.regexp.exec": 178, "core-js/modules/es.string.iterator": 183, "core-js/modules/es.string.split": 188, "core-js/modules/es.symbol": 193, "core-js/modules/es.symbol.description": 191, "core-js/modules/es.symbol.iterator": 192, "core-js/modules/web.dom-collections.iterator": 226 }], 299: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.array.concat"), e("core-js/modules/es.array.slice"), e("core-js/modules/es.array.splice"), e("core-js/modules/es.array-buffer.constructor"), e("core-js/modules/es.object.to-string"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, o = (n = e("../core/main")) && n.__esModule ? n : { default: n };
        o.default.prototype.append = function(e2, t2) {
          return e2.push(t2), e2;
        }, o.default.prototype.arrayCopy = function(e2, t2, r2, n2, o2) {
          var i2, a;
          e2 = o2 !== void 0 ? (a = Math.min(o2, e2.length), i2 = n2, e2.slice(t2, a + t2)) : (a = r2 !== void 0 ? (a = r2, Math.min(a, e2.length)) : e2.length, i2 = 0, r2 = t2, e2.slice(0, a)), Array.prototype.splice.apply(r2, [i2, a].concat(e2));
        }, o.default.prototype.concat = function(e2, t2) {
          return e2.concat(t2);
        }, o.default.prototype.reverse = function(e2) {
          return e2.reverse();
        }, o.default.prototype.shorten = function(e2) {
          return e2.pop(), e2;
        }, o.default.prototype.shuffle = function(e2, t2) {
          for (var r2, n2, o2 = ArrayBuffer && ArrayBuffer.isView && ArrayBuffer.isView(e2), i2 = (e2 = t2 || o2 ? e2 : e2.slice()).length; 1 < i2; )
            r2 = this.random(0, 1) * i2 | 0, n2 = e2[--i2], e2[i2] = e2[r2], e2[r2] = n2;
          return e2;
        }, o.default.prototype.sort = function(e2, t2) {
          var r2 = t2 ? e2.slice(0, Math.min(t2, e2.length)) : e2, n2 = t2 ? e2.slice(Math.min(t2, e2.length)) : [];
          return (r2 = typeof r2[0] == "string" ? r2.sort() : r2.sort(function(e3, t3) {
            return e3 - t3;
          })).concat(n2);
        }, o.default.prototype.splice = function(e2, t2, r2) {
          return Array.prototype.splice.apply(e2, [r2, 0].concat(t2)), e2;
        }, o.default.prototype.subset = function(e2, t2, r2) {
          return r2 !== void 0 ? e2.slice(t2, t2 + r2) : e2.slice(t2, e2.length);
        };
        var i = o.default;
        r.default = i;
      }, { "../core/main": 260, "core-js/modules/es.array-buffer.constructor": 147, "core-js/modules/es.array.concat": 148, "core-js/modules/es.array.slice": 160, "core-js/modules/es.array.splice": 162, "core-js/modules/es.object.to-string": 174 }], 300: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.array.map"), e("core-js/modules/es.number.constructor"), e("core-js/modules/es.object.to-string"), e("core-js/modules/es.regexp.to-string"), e("core-js/modules/es.string.repeat"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, o = (n = e("../core/main")) && n.__esModule ? n : { default: n };
        o.default.prototype.float = function(e2) {
          return e2 instanceof Array ? e2.map(parseFloat) : parseFloat(e2);
        }, o.default.prototype.int = function(e2) {
          var t2 = 1 < arguments.length && arguments[1] !== void 0 ? arguments[1] : 10;
          return e2 === 1 / 0 || e2 === "Infinity" ? 1 / 0 : e2 === -1 / 0 || e2 === "-Infinity" ? -1 / 0 : typeof e2 == "string" ? parseInt(e2, t2) : typeof e2 == "number" ? 0 | e2 : typeof e2 == "boolean" ? e2 ? 1 : 0 : e2 instanceof Array ? e2.map(function(e3) {
            return o.default.prototype.int(e3, t2);
          }) : void 0;
        }, o.default.prototype.str = function(e2) {
          return e2 instanceof Array ? e2.map(o.default.prototype.str) : String(e2);
        }, o.default.prototype.boolean = function(e2) {
          return typeof e2 == "number" ? e2 !== 0 : typeof e2 == "string" ? e2.toLowerCase() === "true" : typeof e2 == "boolean" ? e2 : e2 instanceof Array ? e2.map(o.default.prototype.boolean) : void 0;
        }, o.default.prototype.byte = function(e2) {
          var t2 = o.default.prototype.int(e2, 10);
          return typeof t2 == "number" ? (t2 + 128) % 256 - 128 : t2 instanceof Array ? t2.map(o.default.prototype.byte) : void 0;
        }, o.default.prototype.char = function(e2) {
          return typeof e2 != "number" || isNaN(e2) ? e2 instanceof Array ? e2.map(o.default.prototype.char) : typeof e2 == "string" ? o.default.prototype.char(parseInt(e2, 10)) : void 0 : String.fromCharCode(e2);
        }, o.default.prototype.unchar = function(e2) {
          return typeof e2 == "string" && e2.length === 1 ? e2.charCodeAt(0) : e2 instanceof Array ? e2.map(o.default.prototype.unchar) : void 0;
        }, o.default.prototype.hex = function(e2, t2) {
          if (t2 = t2 == null ? t2 = 8 : t2, e2 instanceof Array)
            return e2.map(function(e3) {
              return o.default.prototype.hex(e3, t2);
            });
          if (e2 === 1 / 0 || e2 === -1 / 0)
            return (e2 === 1 / 0 ? "F" : "0").repeat(t2);
          if (typeof e2 == "number") {
            e2 < 0 && (e2 = 4294967295 + e2 + 1);
            for (var r2 = Number(e2).toString(16).toUpperCase(); r2.length < t2; )
              r2 = "0".concat(r2);
            return r2.length >= t2 && (r2 = r2.substring(r2.length - t2, r2.length)), r2;
          }
        }, o.default.prototype.unhex = function(e2) {
          return e2 instanceof Array ? e2.map(o.default.prototype.unhex) : parseInt("0x".concat(e2), 16);
        };
        var i = o.default;
        r.default = i;
      }, { "../core/main": 260, "core-js/modules/es.array.map": 159, "core-js/modules/es.number.constructor": 167, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.regexp.to-string": 179, "core-js/modules/es.string.repeat": 185 }], 301: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.array.filter"), e("core-js/modules/es.array.index-of"), e("core-js/modules/es.array.join"), e("core-js/modules/es.array.map"), e("core-js/modules/es.array.slice"), e("core-js/modules/es.object.to-string"), e("core-js/modules/es.regexp.constructor"), e("core-js/modules/es.regexp.exec"), e("core-js/modules/es.regexp.to-string"), e("core-js/modules/es.string.match"), e("core-js/modules/es.string.replace"), e("core-js/modules/es.string.split"), e("core-js/modules/es.string.trim"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, a = (n = e("../core/main")) && n.__esModule ? n : { default: n };
        function o(e2, t2, r2) {
          var n2 = e2 < 0, o2 = n2 ? e2.toString().substring(1) : e2.toString(), i2 = o2.indexOf("."), a2 = i2 !== -1 ? o2.substring(0, i2) : o2, s2 = i2 !== -1 ? o2.substring(i2 + 1) : "", l2 = n2 ? "-" : "";
          if (r2 !== void 0) {
            var u2 = "";
            (i2 !== -1 || 0 < r2 - s2.length) && (u2 = "."), s2.length > r2 && (s2 = s2.substring(0, r2));
            for (var c = 0; c < t2 - a2.length; c++)
              l2 += "0";
            l2 += a2, l2 += u2, l2 += s2;
            for (var d = 0; d < r2 - s2.length; d++)
              l2 += "0";
            return l2;
          }
          for (var f = 0; f < Math.max(t2 - a2.length, 0); f++)
            l2 += "0";
          return l2 += o2;
        }
        function i(e2, t2) {
          var r2 = (e2 = e2.toString()).indexOf("."), n2 = r2 !== -1 ? e2.substring(r2) : "", o2 = r2 !== -1 ? e2.substring(0, r2) : e2;
          if (o2 = o2.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","), t2 === 0)
            n2 = "";
          else if (t2 !== void 0)
            if (t2 > n2.length)
              for (var i2 = t2 - (n2 += r2 === -1 ? "." : "").length + 1, a2 = 0; a2 < i2; a2++)
                n2 += "0";
            else
              n2 = n2.substring(0, t2 + 1);
          return o2 + n2;
        }
        function s(e2) {
          return 0 < parseFloat(e2) ? "+".concat(e2.toString()) : e2.toString();
        }
        function l(e2) {
          return 0 <= parseFloat(e2) ? " ".concat(e2.toString()) : e2.toString();
        }
        e("../core/friendly_errors/validate_params"), e("../core/friendly_errors/file_errors"), e("../core/friendly_errors/fes_core"), a.default.prototype.join = function(e2, t2) {
          return a.default._validateParameters("join", arguments), e2.join(t2);
        }, a.default.prototype.match = function(e2, t2) {
          return a.default._validateParameters("match", arguments), e2.match(t2);
        }, a.default.prototype.matchAll = function(e2, t2) {
          a.default._validateParameters("matchAll", arguments);
          for (var r2 = new RegExp(t2, "g"), n2 = r2.exec(e2), o2 = []; n2 !== null; )
            o2.push(n2), n2 = r2.exec(e2);
          return o2;
        }, a.default.prototype.nf = function(e2, t2, r2) {
          return a.default._validateParameters("nf", arguments), e2 instanceof Array ? e2.map(function(e3) {
            return o(e3, t2, r2);
          }) : Object.prototype.toString.call(e2) === "[object Arguments]" ? e2.length === 3 ? this.nf(e2[0], e2[1], e2[2]) : e2.length === 2 ? this.nf(e2[0], e2[1]) : this.nf(e2[0]) : o(e2, t2, r2);
        }, a.default.prototype.nfc = function(e2, t2) {
          return a.default._validateParameters("nfc", arguments), e2 instanceof Array ? e2.map(function(e3) {
            return i(e3, t2);
          }) : i(e2, t2);
        }, a.default.prototype.nfp = function() {
          for (var e2 = arguments.length, t2 = new Array(e2), r2 = 0; r2 < e2; r2++)
            t2[r2] = arguments[r2];
          a.default._validateParameters("nfp", t2);
          var n2 = a.default.prototype.nf.apply(this, t2);
          return n2 instanceof Array ? n2.map(s) : s(n2);
        }, a.default.prototype.nfs = function() {
          for (var e2 = arguments.length, t2 = new Array(e2), r2 = 0; r2 < e2; r2++)
            t2[r2] = arguments[r2];
          a.default._validateParameters("nfs", t2);
          var n2 = a.default.prototype.nf.apply(this, t2);
          return n2 instanceof Array ? n2.map(l) : l(n2);
        }, a.default.prototype.split = function(e2, t2) {
          return a.default._validateParameters("split", arguments), e2.split(t2);
        }, a.default.prototype.splitTokens = function(e2, t2) {
          var r2;
          if (a.default._validateParameters("splitTokens", arguments), t2 !== void 0) {
            var n2 = t2, o2 = /\]/g.exec(n2), i2 = /\[/g.exec(n2);
            r2 = i2 && o2 ? (n2 = n2.slice(0, o2.index) + n2.slice(o2.index + 1), i2 = /\[/g.exec(n2), n2 = n2.slice(0, i2.index) + n2.slice(i2.index + 1), new RegExp("[\\[".concat(n2, "\\]]"), "g")) : o2 ? (n2 = n2.slice(0, o2.index) + n2.slice(o2.index + 1), new RegExp("[".concat(n2, "\\]]"), "g")) : i2 ? (n2 = n2.slice(0, i2.index) + n2.slice(i2.index + 1), new RegExp("[".concat(n2, "\\[]"), "g")) : new RegExp("[".concat(n2, "]"), "g");
          } else
            r2 = /\s/g;
          return e2.split(r2).filter(function(e3) {
            return e3;
          });
        }, a.default.prototype.trim = function(e2) {
          return a.default._validateParameters("trim", arguments), e2 instanceof Array ? e2.map(this.trim) : e2.trim();
        };
        var u = a.default;
        r.default = u;
      }, { "../core/friendly_errors/fes_core": 252, "../core/friendly_errors/file_errors": 253, "../core/friendly_errors/validate_params": 255, "../core/main": 260, "core-js/modules/es.array.filter": 151, "core-js/modules/es.array.index-of": 155, "core-js/modules/es.array.join": 157, "core-js/modules/es.array.map": 159, "core-js/modules/es.array.slice": 160, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.regexp.constructor": 177, "core-js/modules/es.regexp.exec": 178, "core-js/modules/es.regexp.to-string": 179, "core-js/modules/es.string.match": 184, "core-js/modules/es.string.replace": 186, "core-js/modules/es.string.split": 188, "core-js/modules/es.string.trim": 190 }], 302: [function(e, t, r) {
        "use strict";
        Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, o = (n = e("../core/main")) && n.__esModule ? n : { default: n };
        o.default.prototype.day = function() {
          return new Date().getDate();
        }, o.default.prototype.hour = function() {
          return new Date().getHours();
        }, o.default.prototype.minute = function() {
          return new Date().getMinutes();
        }, o.default.prototype.millis = function() {
          return this._millisStart === -1 ? 0 : window.performance.now() - this._millisStart;
        }, o.default.prototype.month = function() {
          return new Date().getMonth() + 1;
        }, o.default.prototype.second = function() {
          return new Date().getSeconds();
        }, o.default.prototype.year = function() {
          return new Date().getFullYear();
        };
        var i = o.default;
        r.default = i;
      }, { "../core/main": 260 }], 303: [function(e, t, r) {
        "use strict";
        function a(e2) {
          return (a = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e3) {
            return typeof e3;
          } : function(e3) {
            return e3 && typeof Symbol == "function" && e3.constructor === Symbol && e3 !== Symbol.prototype ? "symbol" : typeof e3;
          })(e2);
        }
        e("core-js/modules/es.array.concat"), e("core-js/modules/es.number.to-fixed"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, E = (n = e("../core/main")) && n.__esModule ? n : { default: n };
        e("./p5.Geometry");
        var h = function(e2) {
          if (e2 && e2.__esModule)
            return e2;
          if (e2 === null || a(e2) !== "object" && typeof e2 != "function")
            return { default: e2 };
          var t2 = s();
          if (t2 && t2.has(e2))
            return t2.get(e2);
          var r2 = {}, n2 = Object.defineProperty && Object.getOwnPropertyDescriptor;
          for (var o2 in e2)
            if (Object.prototype.hasOwnProperty.call(e2, o2)) {
              var i = n2 ? Object.getOwnPropertyDescriptor(e2, o2) : null;
              i && (i.get || i.set) ? Object.defineProperty(r2, o2, i) : r2[o2] = e2[o2];
            }
          r2.default = e2, t2 && t2.set(e2, r2);
          return r2;
        }(e("../core/constants"));
        function s() {
          if (typeof WeakMap != "function")
            return null;
          var e2 = new WeakMap();
          return s = function() {
            return e2;
          }, e2;
        }
        E.default.prototype.plane = function(e2, t2, r2, n2) {
          this._assert3d("plane"), E.default._validateParameters("plane", arguments), e2 === void 0 && (e2 = 50), t2 === void 0 && (t2 = e2), r2 === void 0 && (r2 = 1), n2 === void 0 && (n2 = 1);
          var o2 = "plane|".concat(r2, "|").concat(n2);
          if (!this._renderer.geometryInHash(o2)) {
            var i = new E.default.Geometry(r2, n2, function() {
              for (var e3, t3, r3, n3 = 0; n3 <= this.detailY; n3++) {
                t3 = n3 / this.detailY;
                for (var o3 = 0; o3 <= this.detailX; o3++)
                  e3 = o3 / this.detailX, r3 = new E.default.Vector(e3 - 0.5, t3 - 0.5, 0), this.vertices.push(r3), this.uvs.push(e3, t3);
              }
            });
            i.computeFaces().computeNormals(), r2 <= 1 && n2 <= 1 ? i._makeTriangleEdges()._edgesToVertices() : this._renderer._doStroke && console.log("Cannot draw stroke on plane objects with more than 1 detailX or 1 detailY"), this._renderer.createBuffers(o2, i);
          }
          return this._renderer.drawBuffersScaled(o2, e2, t2, 1), this;
        }, E.default.prototype.box = function(e2, t2, r2, n2, o2) {
          this._assert3d("box"), E.default._validateParameters("box", arguments), e2 === void 0 && (e2 = 50), t2 === void 0 && (t2 = e2), r2 === void 0 && (r2 = t2);
          var i = this._renderer.attributes && this._renderer.attributes.perPixelLighting;
          n2 === void 0 && (n2 = i ? 1 : 4), o2 === void 0 && (o2 = i ? 1 : 4);
          var a2 = "box|".concat(n2, "|").concat(o2);
          if (!this._renderer.geometryInHash(a2)) {
            var s2 = new E.default.Geometry(n2, o2, function() {
              var e3 = [[0, 4, 2, 6], [1, 3, 5, 7], [0, 1, 4, 5], [2, 6, 3, 7], [0, 2, 1, 3], [4, 5, 6, 7]];
              this.strokeIndices = [[0, 1], [1, 3], [3, 2], [6, 7], [8, 9], [9, 11], [14, 15], [16, 17], [17, 19], [18, 19], [20, 21], [22, 23]];
              for (var t3 = 0; t3 < e3.length; t3++) {
                for (var r3 = e3[t3], n3 = 4 * t3, o3 = 0; o3 < 4; o3++) {
                  var i2 = r3[o3], a3 = new E.default.Vector((2 * (1 & i2) - 1) / 2, ((2 & i2) - 1) / 2, ((4 & i2) / 2 - 1) / 2);
                  this.vertices.push(a3), this.uvs.push(1 & o3, (2 & o3) / 2);
                }
                this.faces.push([n3, 1 + n3, 2 + n3]), this.faces.push([2 + n3, 1 + n3, 3 + n3]);
              }
            });
            s2.computeNormals(), n2 <= 4 && o2 <= 4 ? s2._makeTriangleEdges()._edgesToVertices() : this._renderer._doStroke && console.log("Cannot draw stroke on box objects with more than 4 detailX or 4 detailY"), this._renderer.createBuffers(a2, s2);
          }
          return this._renderer.drawBuffersScaled(a2, e2, t2, r2), this;
        }, E.default.prototype.sphere = function(e2, t2, r2) {
          return this._assert3d("sphere"), E.default._validateParameters("sphere", arguments), e2 === void 0 && (e2 = 50), t2 === void 0 && (t2 = 24), r2 === void 0 && (r2 = 16), this.ellipsoid(e2, e2, e2, t2, r2), this;
        };
        function l(e2, t2, r2, n2, o2, i, a2) {
          e2 = e2 <= 0 ? 1 : e2, t2 = t2 < 0 ? 0 : t2, r2 = r2 <= 0 ? e2 : r2, n2 = n2 < 3 ? 3 : n2;
          var s2, l2, u, c = (i = i === void 0 || i) ? -2 : 0, d = (o2 = o2 < 1 ? 1 : o2) + ((a2 = a2 === void 0 ? t2 !== 0 : a2) ? 2 : 0), f = Math.atan2(e2 - t2, r2), h2 = Math.sin(f), p = Math.cos(f);
          for (s2 = c; s2 <= d; ++s2) {
            var y = s2 / o2, m = r2 * y, g = void 0;
            for (g = s2 < 0 ? (y = m = 0, e2) : o2 < s2 ? (m = r2, y = 1, t2) : e2 + (t2 - e2) * y, s2 !== -2 && s2 !== o2 + 2 || (g = 0), m -= r2 / 2, l2 = 0; l2 < n2; ++l2) {
              var v = l2 / (n2 - 1), b = 2 * Math.PI * v, _ = Math.sin(b), x = Math.cos(b);
              this.vertices.push(new E.default.Vector(_ * g, m, x * g));
              var w = void 0;
              w = s2 < 0 ? new E.default.Vector(0, -1, 0) : o2 < s2 && t2 ? new E.default.Vector(0, 1, 0) : new E.default.Vector(_ * p, h2, x * p), this.vertexNormals.push(w), this.uvs.push(v, y);
            }
          }
          var S = 0;
          if (i) {
            for (u = 0; u < n2; ++u) {
              var j = (u + 1) % n2;
              this.faces.push([S + u, S + n2 + j, S + n2 + u]);
            }
            S += 2 * n2;
          }
          for (s2 = 0; s2 < o2; ++s2) {
            for (l2 = 0; l2 < n2; ++l2) {
              var M = (l2 + 1) % n2;
              this.faces.push([S + l2, S + M, S + n2 + M]), this.faces.push([S + l2, S + n2 + M, S + n2 + l2]);
            }
            S += n2;
          }
          if (a2)
            for (S += n2, l2 = 0; l2 < n2; ++l2)
              this.faces.push([S + l2, S + (l2 + 1) % n2, S + n2]);
        }
        E.default.prototype.cylinder = function(e2, t2, r2, n2, o2, i) {
          this._assert3d("cylinder"), E.default._validateParameters("cylinder", arguments), e2 === void 0 && (e2 = 50), t2 === void 0 && (t2 = e2), r2 === void 0 && (r2 = 24), n2 === void 0 && (n2 = 1), i === void 0 && (i = true), o2 === void 0 && (o2 = true);
          var a2 = "cylinder|".concat(r2, "|").concat(n2, "|").concat(o2, "|").concat(i);
          if (!this._renderer.geometryInHash(a2)) {
            var s2 = new E.default.Geometry(r2, n2);
            l.call(s2, 1, 1, 1, r2, n2, o2, i), r2 <= 24 && n2 <= 16 ? s2._makeTriangleEdges()._edgesToVertices() : this._renderer._doStroke && console.log("Cannot draw stroke on cylinder objects with more than 24 detailX or 16 detailY"), this._renderer.createBuffers(a2, s2);
          }
          return this._renderer.drawBuffersScaled(a2, e2, t2, e2), this;
        }, E.default.prototype.cone = function(e2, t2, r2, n2, o2) {
          this._assert3d("cone"), E.default._validateParameters("cone", arguments), e2 === void 0 && (e2 = 50), t2 === void 0 && (t2 = e2), r2 === void 0 && (r2 = 24), n2 === void 0 && (n2 = 1), o2 === void 0 && (o2 = true);
          var i = "cone|".concat(r2, "|").concat(n2, "|").concat(o2);
          if (!this._renderer.geometryInHash(i)) {
            var a2 = new E.default.Geometry(r2, n2);
            l.call(a2, 1, 0, 1, r2, n2, o2, false), r2 <= 24 && n2 <= 16 ? a2._makeTriangleEdges()._edgesToVertices() : this._renderer._doStroke && console.log("Cannot draw stroke on cone objects with more than 24 detailX or 16 detailY"), this._renderer.createBuffers(i, a2);
          }
          return this._renderer.drawBuffersScaled(i, e2, t2, e2), this;
        }, E.default.prototype.ellipsoid = function(e2, t2, r2, n2, o2) {
          this._assert3d("ellipsoid"), E.default._validateParameters("ellipsoid", arguments), e2 === void 0 && (e2 = 50), t2 === void 0 && (t2 = e2), r2 === void 0 && (r2 = e2), n2 === void 0 && (n2 = 24), o2 === void 0 && (o2 = 16);
          var i = "ellipsoid|".concat(n2, "|").concat(o2);
          if (!this._renderer.geometryInHash(i)) {
            var a2 = new E.default.Geometry(n2, o2, function() {
              for (var e3 = 0; e3 <= this.detailY; e3++)
                for (var t3 = e3 / this.detailY, r3 = Math.PI * t3 - Math.PI / 2, n3 = Math.cos(r3), o3 = Math.sin(r3), i2 = 0; i2 <= this.detailX; i2++) {
                  var a3 = i2 / this.detailX, s2 = 2 * Math.PI * a3, l2 = Math.cos(s2), u = Math.sin(s2), c = new E.default.Vector(n3 * u, o3, n3 * l2);
                  this.vertices.push(c), this.vertexNormals.push(c), this.uvs.push(a3, t3);
                }
            });
            a2.computeFaces(), n2 <= 24 && o2 <= 24 ? a2._makeTriangleEdges()._edgesToVertices() : this._renderer._doStroke && console.log("Cannot draw stroke on ellipsoids with more than 24 detailX or 24 detailY"), this._renderer.createBuffers(i, a2);
          }
          return this._renderer.drawBuffersScaled(i, e2, t2, r2), this;
        }, E.default.prototype.torus = function(e2, t2, r2, n2) {
          if (this._assert3d("torus"), E.default._validateParameters("torus", arguments), e2 === void 0)
            e2 = 50;
          else if (!e2)
            return;
          if (t2 === void 0)
            t2 = 10;
          else if (!t2)
            return;
          r2 === void 0 && (r2 = 24), n2 === void 0 && (n2 = 16);
          var h2 = (t2 / e2).toPrecision(4), o2 = "torus|".concat(h2, "|").concat(r2, "|").concat(n2);
          if (!this._renderer.geometryInHash(o2)) {
            var i = new E.default.Geometry(r2, n2, function() {
              for (var e3 = 0; e3 <= this.detailY; e3++)
                for (var t3 = e3 / this.detailY, r3 = 2 * Math.PI * t3, n3 = Math.cos(r3), o3 = Math.sin(r3), i2 = 1 + h2 * n3, a2 = 0; a2 <= this.detailX; a2++) {
                  var s2 = a2 / this.detailX, l2 = 2 * Math.PI * s2, u = Math.cos(l2), c = Math.sin(l2), d = new E.default.Vector(i2 * u, i2 * c, h2 * o3), f = new E.default.Vector(n3 * u, n3 * c, o3);
                  this.vertices.push(d), this.vertexNormals.push(f), this.uvs.push(s2, t3);
                }
            });
            i.computeFaces(), r2 <= 24 && n2 <= 16 ? i._makeTriangleEdges()._edgesToVertices() : this._renderer._doStroke && console.log("Cannot draw strokes on torus object with more than 24 detailX or 16 detailY"), this._renderer.createBuffers(o2, i);
          }
          return this._renderer.drawBuffersScaled(o2, e2, e2, e2), this;
        }, E.default.RendererGL.prototype.point = function(e2, t2, r2) {
          r2 === void 0 && (r2 = 0);
          var n2 = [];
          return n2.push(new E.default.Vector(e2, t2, r2)), this._drawPoints(n2, this.immediateMode.buffers.point), this;
        }, E.default.RendererGL.prototype.triangle = function(e2) {
          var t2 = e2[0], r2 = e2[1], n2 = e2[2], o2 = e2[3], i = e2[4], a2 = e2[5];
          if (!this.geometryInHash("tri")) {
            var s2 = new E.default.Geometry(1, 1, function() {
              var e3 = [];
              e3.push(new E.default.Vector(0, 0, 0)), e3.push(new E.default.Vector(0, 1, 0)), e3.push(new E.default.Vector(1, 0, 0)), this.strokeIndices = [[0, 1], [1, 2], [2, 0]], this.vertices = e3, this.faces = [[0, 1, 2]], this.uvs = [0, 0, 0, 1, 1, 1];
            });
            s2._makeTriangleEdges()._edgesToVertices(), s2.computeNormals(), this.createBuffers("tri", s2);
          }
          var l2 = this.uMVMatrix.copy();
          try {
            var u = new E.default.Matrix([n2 - t2, o2 - r2, 0, 0, i - t2, a2 - r2, 0, 0, 0, 0, 1, 0, t2, r2, 0, 1]).mult(this.uMVMatrix);
            this.uMVMatrix = u, this.drawBuffers("tri");
          } finally {
            this.uMVMatrix = l2;
          }
          return this;
        }, E.default.RendererGL.prototype.ellipse = function(e2) {
          this.arc(e2[0], e2[1], e2[2], e2[3], 0, h.TWO_PI, h.OPEN, e2[4]);
        }, E.default.RendererGL.prototype.arc = function(e2) {
          var t2, r2, n2 = e2, o2 = arguments[1], i = arguments[2], a2 = arguments[3], s2 = arguments[4], l2 = arguments[5], u = arguments[6], c = arguments[7] || 25;
          if (r2 = Math.abs(l2 - s2) >= h.TWO_PI ? "".concat(t2 = "ellipse", "|").concat(c, "|") : "".concat(t2 = "arc", "|").concat(s2, "|").concat(l2, "|").concat(u, "|").concat(c, "|"), !this.geometryInHash(r2)) {
            var d = new E.default.Geometry(c, 1, function() {
              if (this.strokeIndices = [], s2.toFixed(10) !== l2.toFixed(10)) {
                u !== h.PIE && u !== void 0 || (this.vertices.push(new E.default.Vector(0.5, 0.5, 0)), this.uvs.push([0.5, 0.5]));
                for (var e3 = 0; e3 <= c; e3++) {
                  var t3 = (l2 - s2) * (e3 / c) + s2, r3 = 0.5 + Math.cos(t3) / 2, n3 = 0.5 + Math.sin(t3) / 2;
                  this.vertices.push(new E.default.Vector(r3, n3, 0)), this.uvs.push([r3, n3]), e3 < c - 1 && (this.faces.push([0, e3 + 1, e3 + 2]), this.strokeIndices.push([e3 + 1, e3 + 2]));
                }
                switch (u) {
                  case h.PIE:
                    this.faces.push([0, this.vertices.length - 2, this.vertices.length - 1]), this.strokeIndices.push([0, 1]), this.strokeIndices.push([this.vertices.length - 2, this.vertices.length - 1]), this.strokeIndices.push([0, this.vertices.length - 1]);
                    break;
                  case h.CHORD:
                    this.strokeIndices.push([0, 1]), this.strokeIndices.push([0, this.vertices.length - 1]);
                    break;
                  case h.OPEN:
                    this.strokeIndices.push([0, 1]);
                    break;
                  default:
                    this.faces.push([0, this.vertices.length - 2, this.vertices.length - 1]), this.strokeIndices.push([this.vertices.length - 2, this.vertices.length - 1]);
                }
              }
            });
            d.computeNormals(), c <= 50 ? d._makeTriangleEdges()._edgesToVertices(d) : this._doStroke && console.log("Cannot apply a stroke to an ".concat(t2, " with more than 50 detail")), this.createBuffers(r2, d);
          }
          var f = this.uMVMatrix.copy();
          try {
            this.uMVMatrix.translate([n2, o2, 0]), this.uMVMatrix.scale(i, a2, 1), this.drawBuffers(r2);
          } finally {
            this.uMVMatrix = f;
          }
          return this;
        }, E.default.RendererGL.prototype.rect = function(e2) {
          var t2 = this._pInst._glAttributes.perPixelLighting, r2 = e2[0], n2 = e2[1], o2 = e2[2], i = e2[3], a2 = e2[4] || (t2 ? 1 : 24), s2 = e2[5] || (t2 ? 1 : 16), l2 = "rect|".concat(a2, "|").concat(s2);
          if (!this.geometryInHash(l2)) {
            var u = new E.default.Geometry(a2, s2, function() {
              for (var e3 = 0; e3 <= this.detailY; e3++)
                for (var t3 = e3 / this.detailY, r3 = 0; r3 <= this.detailX; r3++) {
                  var n3 = r3 / this.detailX, o3 = new E.default.Vector(n3, t3, 0);
                  this.vertices.push(o3), this.uvs.push(n3, t3);
                }
              0 < a2 && 0 < s2 && (this.strokeIndices = [[0, a2], [a2, (a2 + 1) * (s2 + 1) - 1], [(a2 + 1) * (s2 + 1) - 1, (a2 + 1) * s2], [(a2 + 1) * s2, 0]]);
            });
            u.computeFaces().computeNormals()._makeTriangleEdges()._edgesToVertices(), this.createBuffers(l2, u);
          }
          var c = this.uMVMatrix.copy();
          try {
            this.uMVMatrix.translate([r2, n2, 0]), this.uMVMatrix.scale(o2, i, 1), this.drawBuffers(l2);
          } finally {
            this.uMVMatrix = c;
          }
          return this;
        }, E.default.RendererGL.prototype.quad = function(u, c, d, f, h2, p, y, m, g, v, b, _, e2, t2) {
          e2 === void 0 && (e2 = 2), t2 === void 0 && (t2 = 2);
          var r2 = "quad|".concat(u, "|").concat(c, "|").concat(d, "|").concat(f, "|").concat(h2, "|").concat(p, "|").concat(y, "|").concat(m, "|").concat(g, "|").concat(v, "|").concat(b, "|").concat(_, "|").concat(e2, "|").concat(t2);
          if (!this.geometryInHash(r2)) {
            var n2 = new E.default.Geometry(e2, t2, function() {
              for (var e3 = 1 / (this.detailX - 1), t3 = 1 / (this.detailY - 1), r3 = 0; r3 < this.detailY; r3++)
                for (var n3 = 0; n3 < this.detailX; n3++) {
                  var o3 = n3 * e3, i2 = r3 * t3, a3 = (1 - o3) * ((1 - i2) * u + i2 * v) + o3 * ((1 - i2) * f + i2 * y), s3 = (1 - o3) * ((1 - i2) * c + i2 * b) + o3 * ((1 - i2) * h2 + i2 * m), l3 = (1 - o3) * ((1 - i2) * d + i2 * _) + o3 * ((1 - i2) * p + i2 * g);
                  this.vertices.push(new E.default.Vector(a3, s3, l3)), this.uvs.push([o3, i2]);
                }
            });
            n2.faces = [];
            for (var o2 = 0; o2 < t2 - 1; o2++)
              for (var i = 0; i < e2 - 1; i++) {
                var a2 = i + o2 * e2, s2 = i + 1 + o2 * e2, l2 = i + 1 + (o2 + 1) * e2, x = i + (o2 + 1) * e2;
                n2.faces.push([a2, s2, l2]), n2.faces.push([a2, l2, x]);
              }
            n2.computeNormals()._makeTriangleEdges()._edgesToVertices(), this.createBuffers(r2, n2);
          }
          return this.drawBuffers(r2), this;
        }, E.default.RendererGL.prototype.bezier = function(e2, t2, r2, n2, o2, i, a2, s2, l2, u, c, d) {
          arguments.length === 8 && (c = s2, u = a2, s2 = i, a2 = o2, o2 = n2, n2 = r2, r2 = i = l2 = d = 0);
          var f = this._pInst._bezierDetail || 20;
          this.beginShape();
          for (var h2 = 0; h2 <= f; h2++) {
            var p = Math.pow(1 - h2 / f, 3), y = h2 / f * 3 * Math.pow(1 - h2 / f, 2), m = 3 * Math.pow(h2 / f, 2) * (1 - h2 / f), g = Math.pow(h2 / f, 3);
            this.vertex(e2 * p + n2 * y + a2 * m + u * g, t2 * p + o2 * y + s2 * m + c * g, r2 * p + i * y + l2 * m + d * g);
          }
          return this.endShape(), this;
        }, E.default.RendererGL.prototype.curve = function(e2, t2, r2, n2, o2, i, a2, s2, l2, u, c, d) {
          arguments.length === 8 && (u = a2, c = s2, a2 = o2, s2 = n2, o2 = n2 = r2, r2 = i = l2 = d = 0);
          var f = this._pInst._curveDetail;
          this.beginShape();
          for (var h2 = 0; h2 <= f; h2++) {
            var p = 0.5 * Math.pow(h2 / f, 3), y = 0.5 * Math.pow(h2 / f, 2), m = h2 / f * 0.5, g = p * (3 * n2 - e2 - 3 * a2 + u) + y * (2 * e2 - 5 * n2 + 4 * a2 - u) + m * (-e2 + a2) + 2 * n2 * 0.5, v = p * (3 * o2 - t2 - 3 * s2 + c) + y * (2 * t2 - 5 * o2 + 4 * s2 - c) + m * (-t2 + s2) + 2 * o2 * 0.5, b = p * (3 * i - r2 - 3 * l2 + d) + y * (2 * r2 - 5 * i + 4 * l2 - d) + m * (-r2 + l2) + 2 * i * 0.5;
            this.vertex(g, v, b);
          }
          return this.endShape(), this;
        }, E.default.RendererGL.prototype.line = function() {
          return arguments.length === 6 ? (this.beginShape(h.LINES), this.vertex(arguments.length <= 0 ? void 0 : arguments[0], arguments.length <= 1 ? void 0 : arguments[1], arguments.length <= 2 ? void 0 : arguments[2]), this.vertex(arguments.length <= 3 ? void 0 : arguments[3], arguments.length <= 4 ? void 0 : arguments[4], arguments.length <= 5 ? void 0 : arguments[5]), this.endShape()) : arguments.length === 4 && (this.beginShape(h.LINES), this.vertex(arguments.length <= 0 ? void 0 : arguments[0], arguments.length <= 1 ? void 0 : arguments[1], 0), this.vertex(arguments.length <= 2 ? void 0 : arguments[2], arguments.length <= 3 ? void 0 : arguments[3], 0), this.endShape()), this;
        }, E.default.RendererGL.prototype.bezierVertex = function() {
          if (this.immediateMode._bezierVertex.length === 0)
            throw Error("vertex() must be used once before calling bezierVertex()");
          var e2, t2, r2, n2, o2, i = [], a2 = [], s2 = [], l2 = arguments.length;
          if ((e2 = 0) === this._lookUpTableBezier.length || this._lutBezierDetail !== this._pInst._curveDetail) {
            this._lookUpTableBezier = [], this._lutBezierDetail = this._pInst._curveDetail;
            for (var u = 1 / this._lutBezierDetail, c = 0, d = 1, f = 0; c < 1; ) {
              if (e2 = parseFloat(c.toFixed(6)), this._lookUpTableBezier[f] = this._bezierCoefficients(e2), d.toFixed(6) === u.toFixed(6)) {
                e2 = parseFloat(d.toFixed(6)) + parseFloat(c.toFixed(6)), ++f, this._lookUpTableBezier[f] = this._bezierCoefficients(e2);
                break;
              }
              c += u, d -= u, ++f;
            }
          }
          var h2 = this._lookUpTableBezier.length;
          if (l2 === 6) {
            for (this.isBezier = true, i = [this.immediateMode._bezierVertex[0], arguments.length <= 0 ? void 0 : arguments[0], arguments.length <= 2 ? void 0 : arguments[2], arguments.length <= 4 ? void 0 : arguments[4]], a2 = [this.immediateMode._bezierVertex[1], arguments.length <= 1 ? void 0 : arguments[1], arguments.length <= 3 ? void 0 : arguments[3], arguments.length <= 5 ? void 0 : arguments[5]], o2 = 0; o2 < h2; o2++)
              t2 = i[0] * this._lookUpTableBezier[o2][0] + i[1] * this._lookUpTableBezier[o2][1] + i[2] * this._lookUpTableBezier[o2][2] + i[3] * this._lookUpTableBezier[o2][3], r2 = a2[0] * this._lookUpTableBezier[o2][0] + a2[1] * this._lookUpTableBezier[o2][1] + a2[2] * this._lookUpTableBezier[o2][2] + a2[3] * this._lookUpTableBezier[o2][3], this.vertex(t2, r2);
            this.immediateMode._bezierVertex[0] = arguments.length <= 4 ? void 0 : arguments[4], this.immediateMode._bezierVertex[1] = arguments.length <= 5 ? void 0 : arguments[5];
          } else if (l2 === 9) {
            for (this.isBezier = true, i = [this.immediateMode._bezierVertex[0], arguments.length <= 0 ? void 0 : arguments[0], arguments.length <= 3 ? void 0 : arguments[3], arguments.length <= 6 ? void 0 : arguments[6]], a2 = [this.immediateMode._bezierVertex[1], arguments.length <= 1 ? void 0 : arguments[1], arguments.length <= 4 ? void 0 : arguments[4], arguments.length <= 7 ? void 0 : arguments[7]], s2 = [this.immediateMode._bezierVertex[2], arguments.length <= 2 ? void 0 : arguments[2], arguments.length <= 5 ? void 0 : arguments[5], arguments.length <= 8 ? void 0 : arguments[8]], o2 = 0; o2 < h2; o2++)
              t2 = i[0] * this._lookUpTableBezier[o2][0] + i[1] * this._lookUpTableBezier[o2][1] + i[2] * this._lookUpTableBezier[o2][2] + i[3] * this._lookUpTableBezier[o2][3], r2 = a2[0] * this._lookUpTableBezier[o2][0] + a2[1] * this._lookUpTableBezier[o2][1] + a2[2] * this._lookUpTableBezier[o2][2] + a2[3] * this._lookUpTableBezier[o2][3], n2 = s2[0] * this._lookUpTableBezier[o2][0] + s2[1] * this._lookUpTableBezier[o2][1] + s2[2] * this._lookUpTableBezier[o2][2] + s2[3] * this._lookUpTableBezier[o2][3], this.vertex(t2, r2, n2);
            this.immediateMode._bezierVertex[0] = arguments.length <= 6 ? void 0 : arguments[6], this.immediateMode._bezierVertex[1] = arguments.length <= 7 ? void 0 : arguments[7], this.immediateMode._bezierVertex[2] = arguments.length <= 8 ? void 0 : arguments[8];
          }
        }, E.default.RendererGL.prototype.quadraticVertex = function() {
          if (this.immediateMode._quadraticVertex.length === 0)
            throw Error("vertex() must be used once before calling quadraticVertex()");
          var e2, t2, r2, n2, o2, i = [], a2 = [], s2 = [], l2 = arguments.length;
          if ((e2 = 0) === this._lookUpTableQuadratic.length || this._lutQuadraticDetail !== this._pInst._curveDetail) {
            this._lookUpTableQuadratic = [], this._lutQuadraticDetail = this._pInst._curveDetail;
            for (var u = 1 / this._lutQuadraticDetail, c = 0, d = 1, f = 0; c < 1; ) {
              if (e2 = parseFloat(c.toFixed(6)), this._lookUpTableQuadratic[f] = this._quadraticCoefficients(e2), d.toFixed(6) === u.toFixed(6)) {
                e2 = parseFloat(d.toFixed(6)) + parseFloat(c.toFixed(6)), ++f, this._lookUpTableQuadratic[f] = this._quadraticCoefficients(e2);
                break;
              }
              c += u, d -= u, ++f;
            }
          }
          var h2 = this._lookUpTableQuadratic.length;
          if (l2 === 4) {
            for (this.isQuadratic = true, i = [this.immediateMode._quadraticVertex[0], arguments.length <= 0 ? void 0 : arguments[0], arguments.length <= 2 ? void 0 : arguments[2]], a2 = [this.immediateMode._quadraticVertex[1], arguments.length <= 1 ? void 0 : arguments[1], arguments.length <= 3 ? void 0 : arguments[3]], o2 = 0; o2 < h2; o2++)
              t2 = i[0] * this._lookUpTableQuadratic[o2][0] + i[1] * this._lookUpTableQuadratic[o2][1] + i[2] * this._lookUpTableQuadratic[o2][2], r2 = a2[0] * this._lookUpTableQuadratic[o2][0] + a2[1] * this._lookUpTableQuadratic[o2][1] + a2[2] * this._lookUpTableQuadratic[o2][2], this.vertex(t2, r2);
            this.immediateMode._quadraticVertex[0] = arguments.length <= 2 ? void 0 : arguments[2], this.immediateMode._quadraticVertex[1] = arguments.length <= 3 ? void 0 : arguments[3];
          } else if (l2 === 6) {
            for (this.isQuadratic = true, i = [this.immediateMode._quadraticVertex[0], arguments.length <= 0 ? void 0 : arguments[0], arguments.length <= 3 ? void 0 : arguments[3]], a2 = [this.immediateMode._quadraticVertex[1], arguments.length <= 1 ? void 0 : arguments[1], arguments.length <= 4 ? void 0 : arguments[4]], s2 = [this.immediateMode._quadraticVertex[2], arguments.length <= 2 ? void 0 : arguments[2], arguments.length <= 5 ? void 0 : arguments[5]], o2 = 0; o2 < h2; o2++)
              t2 = i[0] * this._lookUpTableQuadratic[o2][0] + i[1] * this._lookUpTableQuadratic[o2][1] + i[2] * this._lookUpTableQuadratic[o2][2], r2 = a2[0] * this._lookUpTableQuadratic[o2][0] + a2[1] * this._lookUpTableQuadratic[o2][1] + a2[2] * this._lookUpTableQuadratic[o2][2], n2 = s2[0] * this._lookUpTableQuadratic[o2][0] + s2[1] * this._lookUpTableQuadratic[o2][1] + s2[2] * this._lookUpTableQuadratic[o2][2], this.vertex(t2, r2, n2);
            this.immediateMode._quadraticVertex[0] = arguments.length <= 3 ? void 0 : arguments[3], this.immediateMode._quadraticVertex[1] = arguments.length <= 4 ? void 0 : arguments[4], this.immediateMode._quadraticVertex[2] = arguments.length <= 5 ? void 0 : arguments[5];
          }
        }, E.default.RendererGL.prototype.curveVertex = function() {
          var e2, t2, r2, n2, o2, i = [], a2 = [], s2 = [], l2 = arguments.length;
          if ((e2 = 0) === this._lookUpTableBezier.length || this._lutBezierDetail !== this._pInst._curveDetail) {
            this._lookUpTableBezier = [], this._lutBezierDetail = this._pInst._curveDetail;
            for (var u = 1 / this._lutBezierDetail, c = 0, d = 1, f = 0; c < 1; ) {
              if (e2 = parseFloat(c.toFixed(6)), this._lookUpTableBezier[f] = this._bezierCoefficients(e2), d.toFixed(6) === u.toFixed(6)) {
                e2 = parseFloat(d.toFixed(6)) + parseFloat(c.toFixed(6)), ++f, this._lookUpTableBezier[f] = this._bezierCoefficients(e2);
                break;
              }
              c += u, d -= u, ++f;
            }
          }
          var h2 = this._lookUpTableBezier.length;
          if (l2 === 2) {
            if (this.immediateMode._curveVertex.push(arguments.length <= 0 ? void 0 : arguments[0]), this.immediateMode._curveVertex.push(arguments.length <= 1 ? void 0 : arguments[1]), this.immediateMode._curveVertex.length === 8) {
              for (this.isCurve = true, i = this._bezierToCatmull([this.immediateMode._curveVertex[0], this.immediateMode._curveVertex[2], this.immediateMode._curveVertex[4], this.immediateMode._curveVertex[6]]), a2 = this._bezierToCatmull([this.immediateMode._curveVertex[1], this.immediateMode._curveVertex[3], this.immediateMode._curveVertex[5], this.immediateMode._curveVertex[7]]), o2 = 0; o2 < h2; o2++)
                t2 = i[0] * this._lookUpTableBezier[o2][0] + i[1] * this._lookUpTableBezier[o2][1] + i[2] * this._lookUpTableBezier[o2][2] + i[3] * this._lookUpTableBezier[o2][3], r2 = a2[0] * this._lookUpTableBezier[o2][0] + a2[1] * this._lookUpTableBezier[o2][1] + a2[2] * this._lookUpTableBezier[o2][2] + a2[3] * this._lookUpTableBezier[o2][3], this.vertex(t2, r2);
              for (o2 = 0; o2 < l2; o2++)
                this.immediateMode._curveVertex.shift();
            }
          } else if (l2 === 3 && (this.immediateMode._curveVertex.push(arguments.length <= 0 ? void 0 : arguments[0]), this.immediateMode._curveVertex.push(arguments.length <= 1 ? void 0 : arguments[1]), this.immediateMode._curveVertex.push(arguments.length <= 2 ? void 0 : arguments[2]), this.immediateMode._curveVertex.length === 12)) {
            for (this.isCurve = true, i = this._bezierToCatmull([this.immediateMode._curveVertex[0], this.immediateMode._curveVertex[3], this.immediateMode._curveVertex[6], this.immediateMode._curveVertex[9]]), a2 = this._bezierToCatmull([this.immediateMode._curveVertex[1], this.immediateMode._curveVertex[4], this.immediateMode._curveVertex[7], this.immediateMode._curveVertex[10]]), s2 = this._bezierToCatmull([this.immediateMode._curveVertex[2], this.immediateMode._curveVertex[5], this.immediateMode._curveVertex[8], this.immediateMode._curveVertex[11]]), o2 = 0; o2 < h2; o2++)
              t2 = i[0] * this._lookUpTableBezier[o2][0] + i[1] * this._lookUpTableBezier[o2][1] + i[2] * this._lookUpTableBezier[o2][2] + i[3] * this._lookUpTableBezier[o2][3], r2 = a2[0] * this._lookUpTableBezier[o2][0] + a2[1] * this._lookUpTableBezier[o2][1] + a2[2] * this._lookUpTableBezier[o2][2] + a2[3] * this._lookUpTableBezier[o2][3], n2 = s2[0] * this._lookUpTableBezier[o2][0] + s2[1] * this._lookUpTableBezier[o2][1] + s2[2] * this._lookUpTableBezier[o2][2] + s2[3] * this._lookUpTableBezier[o2][3], this.vertex(t2, r2, n2);
            for (o2 = 0; o2 < l2; o2++)
              this.immediateMode._curveVertex.shift();
          }
        }, E.default.RendererGL.prototype.image = function(e2, t2, r2, n2, o2, i, a2, s2, l2) {
          this._isErasing && this.blendMode(this._cachedBlendMode), this._pInst.push(), this._pInst.noLights(), this._pInst.texture(e2), this._pInst.textureMode(h.NORMAL);
          var u = 0;
          t2 <= e2.width && (u = t2 / e2.width);
          var c = 1;
          t2 + n2 <= e2.width && (c = (t2 + n2) / e2.width);
          var d = 0;
          r2 <= e2.height && (d = r2 / e2.height);
          var f = 1;
          r2 + o2 <= e2.height && (f = (r2 + o2) / e2.height), this.beginShape(), this.vertex(i, a2, 0, u, d), this.vertex(i + s2, a2, 0, c, d), this.vertex(i + s2, a2 + l2, 0, c, f), this.vertex(i, a2 + l2, 0, u, f), this.endShape(h.CLOSE), this._pInst.pop(), this._isErasing && this.blendMode(h.REMOVE);
        };
        var o = E.default;
        r.default = o;
      }, { "../core/constants": 250, "../core/main": 260, "./p5.Geometry": 309, "core-js/modules/es.array.concat": 148, "core-js/modules/es.number.to-fixed": 169 }], 304: [function(e, t, r) {
        "use strict";
        function a(e2) {
          return (a = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e3) {
            return typeof e3;
          } : function(e3) {
            return e3 && typeof Symbol == "function" && e3.constructor === Symbol && e3 !== Symbol.prototype ? "symbol" : typeof e3;
          })(e2);
        }
        e("core-js/modules/es.array.splice"), e("core-js/modules/es.object.to-string"), e("core-js/modules/es.regexp.to-string"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, f = (n = e("../core/main")) && n.__esModule ? n : { default: n }, o = function(e2) {
          if (e2 && e2.__esModule)
            return e2;
          if (e2 === null || a(e2) !== "object" && typeof e2 != "function")
            return { default: e2 };
          var t2 = s();
          if (t2 && t2.has(e2))
            return t2.get(e2);
          var r2 = {}, n2 = Object.defineProperty && Object.getOwnPropertyDescriptor;
          for (var o2 in e2)
            if (Object.prototype.hasOwnProperty.call(e2, o2)) {
              var i2 = n2 ? Object.getOwnPropertyDescriptor(e2, o2) : null;
              i2 && (i2.get || i2.set) ? Object.defineProperty(r2, o2, i2) : r2[o2] = e2[o2];
            }
          r2.default = e2, t2 && t2.set(e2, r2);
          return r2;
        }(e("../core/constants"));
        function s() {
          if (typeof WeakMap != "function")
            return null;
          var e2 = new WeakMap();
          return s = function() {
            return e2;
          }, e2;
        }
        f.default.prototype.orbitControl = function(e2, t2, r2) {
          if (this._assert3d("orbitControl"), f.default._validateParameters("orbitControl", arguments), this.mouseX < this.width && 0 < this.mouseX && this.mouseY < this.height && 0 < this.mouseY) {
            var n2 = this._renderer._curCamera;
            e2 === void 0 && (e2 = 1), t2 === void 0 && (t2 = e2), r2 === void 0 && (r2 = 0.5), this.contextMenuDisabled !== true && (this.canvas.oncontextmenu = function() {
              return false;
            }, this._setProperty("contextMenuDisabled", true)), this.wheelDefaultDisabled !== true && (this.canvas.onwheel = function() {
              return false;
            }, this._setProperty("wheelDefaultDisabled", true));
            var o2 = this.height < this.width ? this.height : this.width;
            if (this._mouseWheelDeltaY !== this._pmouseWheelDeltaY && (0 < this._mouseWheelDeltaY ? this._renderer._curCamera._orbit(0, 0, r2 * o2) : this._renderer._curCamera._orbit(0, 0, -r2 * o2)), this.mouseIsPressed) {
              if (this.mouseButton === this.LEFT) {
                var i2 = -e2 * (this.mouseX - this.pmouseX) / o2, a2 = t2 * (this.mouseY - this.pmouseY) / o2;
                this._renderer._curCamera._orbit(i2, a2, 0);
              } else if (this.mouseButton === this.RIGHT) {
                var s2 = n2._getLocalAxes(), l = Math.sqrt(s2.x[0] * s2.x[0] + s2.x[2] * s2.x[2]);
                l !== 0 && (s2.x[0] /= l, s2.x[2] /= l);
                var u = Math.sqrt(s2.y[0] * s2.y[0] + s2.y[2] * s2.y[2]);
                u !== 0 && (s2.y[0] /= u, s2.y[2] /= u);
                var c = -1 * e2 * (this.mouseX - this.pmouseX), d = -1 * t2 * (this.mouseY - this.pmouseY);
                n2.setPosition(n2.eyeX + c * s2.x[0] + d * s2.z[0], n2.eyeY, n2.eyeZ + c * s2.x[2] + d * s2.z[2]);
              }
            }
            return this;
          }
        }, f.default.prototype.debugMode = function() {
          this._assert3d("debugMode");
          for (var e2 = arguments.length, t2 = new Array(e2), r2 = 0; r2 < e2; r2++)
            t2[r2] = arguments[r2];
          f.default._validateParameters("debugMode", t2);
          for (var n2 = this._registeredMethods.post.length - 1; 0 <= n2; n2--)
            this._registeredMethods.post[n2].toString() !== this._grid().toString() && this._registeredMethods.post[n2].toString() !== this._axesIcon().toString() || this._registeredMethods.post.splice(n2, 1);
          t2[0] === o.GRID ? this.registerMethod("post", this._grid.call(this, t2[1], t2[2], t2[3], t2[4], t2[5])) : t2[0] === o.AXES ? this.registerMethod("post", this._axesIcon.call(this, t2[1], t2[2], t2[3], t2[4])) : (this.registerMethod("post", this._grid.call(this, t2[0], t2[1], t2[2], t2[3], t2[4])), this.registerMethod("post", this._axesIcon.call(this, t2[5], t2[6], t2[7], t2[8])));
        }, f.default.prototype.noDebugMode = function() {
          this._assert3d("noDebugMode");
          for (var e2 = this._registeredMethods.post.length - 1; 0 <= e2; e2--)
            this._registeredMethods.post[e2].toString() !== this._grid().toString() && this._registeredMethods.post[e2].toString() !== this._axesIcon().toString() || this._registeredMethods.post.splice(e2, 1);
        }, f.default.prototype._grid = function(e2, r2, n2, o2, i2) {
          e2 === void 0 && (e2 = this.width / 2), r2 === void 0 && (r2 = Math.round(e2 / 30) < 4 ? 4 : Math.round(e2 / 30)), n2 === void 0 && (n2 = 0), o2 === void 0 && (o2 = 0), i2 === void 0 && (i2 = 0);
          var a2 = e2 / r2, s2 = e2 / 2;
          return function() {
            this.push(), this.stroke(255 * this._renderer.curStrokeColor[0], 255 * this._renderer.curStrokeColor[1], 255 * this._renderer.curStrokeColor[2]), this._renderer.uMVMatrix.set(this._renderer._curCamera.cameraMatrix.mat4[0], this._renderer._curCamera.cameraMatrix.mat4[1], this._renderer._curCamera.cameraMatrix.mat4[2], this._renderer._curCamera.cameraMatrix.mat4[3], this._renderer._curCamera.cameraMatrix.mat4[4], this._renderer._curCamera.cameraMatrix.mat4[5], this._renderer._curCamera.cameraMatrix.mat4[6], this._renderer._curCamera.cameraMatrix.mat4[7], this._renderer._curCamera.cameraMatrix.mat4[8], this._renderer._curCamera.cameraMatrix.mat4[9], this._renderer._curCamera.cameraMatrix.mat4[10], this._renderer._curCamera.cameraMatrix.mat4[11], this._renderer._curCamera.cameraMatrix.mat4[12], this._renderer._curCamera.cameraMatrix.mat4[13], this._renderer._curCamera.cameraMatrix.mat4[14], this._renderer._curCamera.cameraMatrix.mat4[15]);
            for (var e3 = 0; e3 <= r2; e3++)
              this.beginShape(this.LINES), this.vertex(-s2 + n2, o2, e3 * a2 - s2 + i2), this.vertex(+s2 + n2, o2, e3 * a2 - s2 + i2), this.endShape();
            for (var t2 = 0; t2 <= r2; t2++)
              this.beginShape(this.LINES), this.vertex(t2 * a2 - s2 + n2, o2, -s2 + i2), this.vertex(t2 * a2 - s2 + n2, o2, +s2 + i2), this.endShape();
            this.pop();
          };
        }, f.default.prototype._axesIcon = function(e2, t2, r2, n2) {
          return e2 === void 0 && (e2 = 40 < this.width / 20 ? this.width / 20 : 40), t2 === void 0 && (t2 = -this.width / 4), r2 === void 0 && (r2 = t2), n2 === void 0 && (n2 = t2), function() {
            this.push(), this._renderer.uMVMatrix.set(this._renderer._curCamera.cameraMatrix.mat4[0], this._renderer._curCamera.cameraMatrix.mat4[1], this._renderer._curCamera.cameraMatrix.mat4[2], this._renderer._curCamera.cameraMatrix.mat4[3], this._renderer._curCamera.cameraMatrix.mat4[4], this._renderer._curCamera.cameraMatrix.mat4[5], this._renderer._curCamera.cameraMatrix.mat4[6], this._renderer._curCamera.cameraMatrix.mat4[7], this._renderer._curCamera.cameraMatrix.mat4[8], this._renderer._curCamera.cameraMatrix.mat4[9], this._renderer._curCamera.cameraMatrix.mat4[10], this._renderer._curCamera.cameraMatrix.mat4[11], this._renderer._curCamera.cameraMatrix.mat4[12], this._renderer._curCamera.cameraMatrix.mat4[13], this._renderer._curCamera.cameraMatrix.mat4[14], this._renderer._curCamera.cameraMatrix.mat4[15]), this.strokeWeight(2), this.stroke(255, 0, 0), this.beginShape(this.LINES), this.vertex(t2, r2, n2), this.vertex(t2 + e2, r2, n2), this.endShape(), this.stroke(0, 255, 0), this.beginShape(this.LINES), this.vertex(t2, r2, n2), this.vertex(t2, r2 + e2, n2), this.endShape(), this.stroke(0, 0, 255), this.beginShape(this.LINES), this.vertex(t2, r2, n2), this.vertex(t2, r2, n2 + e2), this.endShape(), this.pop();
          };
        };
        var i = f.default;
        r.default = i;
      }, { "../core/constants": 250, "../core/main": 260, "core-js/modules/es.array.splice": 162, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.regexp.to-string": 179 }], 305: [function(e, t, r) {
        "use strict";
        function a(e2) {
          return (a = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e3) {
            return typeof e3;
          } : function(e3) {
            return e3 && typeof Symbol == "function" && e3.constructor === Symbol && e3 !== Symbol.prototype ? "symbol" : typeof e3;
          })(e2);
        }
        Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, y = (n = e("../core/main")) && n.__esModule ? n : { default: n }, o = function(e2) {
          if (e2 && e2.__esModule)
            return e2;
          if (e2 === null || a(e2) !== "object" && typeof e2 != "function")
            return { default: e2 };
          var t2 = s();
          if (t2 && t2.has(e2))
            return t2.get(e2);
          var r2 = {}, n2 = Object.defineProperty && Object.getOwnPropertyDescriptor;
          for (var o2 in e2)
            if (Object.prototype.hasOwnProperty.call(e2, o2)) {
              var i2 = n2 ? Object.getOwnPropertyDescriptor(e2, o2) : null;
              i2 && (i2.get || i2.set) ? Object.defineProperty(r2, o2, i2) : r2[o2] = e2[o2];
            }
          r2.default = e2, t2 && t2.set(e2, r2);
          return r2;
        }(e("../core/constants"));
        function s() {
          if (typeof WeakMap != "function")
            return null;
          var e2 = new WeakMap();
          return s = function() {
            return e2;
          }, e2;
        }
        y.default.prototype.ambientLight = function(e2, t2, r2, n2) {
          this._assert3d("ambientLight"), y.default._validateParameters("ambientLight", arguments);
          var o2 = this.color.apply(this, arguments);
          return this._renderer.ambientLightColors.push(o2._array[0], o2._array[1], o2._array[2]), this._renderer._enableLighting = true, this;
        }, y.default.prototype.specularColor = function(e2, t2, r2) {
          this._assert3d("specularColor"), y.default._validateParameters("specularColor", arguments);
          var n2 = this.color.apply(this, arguments);
          return this._renderer.specularColors = [n2._array[0], n2._array[1], n2._array[2]], this;
        }, y.default.prototype.directionalLight = function(e2, t2, r2, n2, o2, i2) {
          var a2, s2, l, u;
          this._assert3d("directionalLight"), y.default._validateParameters("directionalLight", arguments), a2 = e2 instanceof y.default.Color ? e2 : this.color(e2, t2, r2);
          var c = arguments[arguments.length - 1];
          u = typeof c == "number" ? (s2 = arguments[arguments.length - 3], l = arguments[arguments.length - 2], arguments[arguments.length - 1]) : (s2 = c.x, l = c.y, c.z);
          var d = Math.sqrt(s2 * s2 + l * l + u * u);
          return this._renderer.directionalLightDirections.push(s2 / d, l / d, u / d), this._renderer.directionalLightDiffuseColors.push(a2._array[0], a2._array[1], a2._array[2]), Array.prototype.push.apply(this._renderer.directionalLightSpecularColors, this._renderer.specularColors), this._renderer._enableLighting = true, this;
        }, y.default.prototype.pointLight = function(e2, t2, r2, n2, o2, i2) {
          var a2, s2, l, u;
          this._assert3d("pointLight"), y.default._validateParameters("pointLight", arguments), a2 = e2 instanceof y.default.Color ? e2 : this.color(e2, t2, r2);
          var c = arguments[arguments.length - 1];
          return u = typeof c == "number" ? (s2 = arguments[arguments.length - 3], l = arguments[arguments.length - 2], arguments[arguments.length - 1]) : (s2 = c.x, l = c.y, c.z), this._renderer.pointLightPositions.push(s2, l, u), this._renderer.pointLightDiffuseColors.push(a2._array[0], a2._array[1], a2._array[2]), Array.prototype.push.apply(this._renderer.pointLightSpecularColors, this._renderer.specularColors), this._renderer._enableLighting = true, this;
        }, y.default.prototype.lights = function() {
          if (this._assert3d("lights"), this._colorMode === o.RGB)
            this.ambientLight(128, 128, 128), this.directionalLight(128, 128, 128, 0, 0, -1);
          else {
            var e2 = this._colorMaxes[this._colorMode][2];
            this.ambientLight(0, 0, e2), this.directionalLight(0, 0, e2, 0, 0, -1);
          }
          return this;
        }, y.default.prototype.lightFalloff = function(e2, t2, r2) {
          return this._assert3d("lightFalloff"), y.default._validateParameters("lightFalloff", arguments), e2 < 0 && (e2 = 0, console.warn("Value of constant argument in lightFalloff() should be never be negative. Set to 0.")), t2 < 0 && (t2 = 0, console.warn("Value of linear argument in lightFalloff() should be never be negative. Set to 0.")), r2 < 0 && (r2 = 0, console.warn("Value of quadratic argument in lightFalloff() should be never be negative. Set to 0.")), e2 === 0 && t2 === 0 && r2 === 0 && (e2 = 1, console.warn("Either one of the three arguments in lightFalloff() should be greater than zero. Set constant argument to 1.")), this._renderer.constantAttenuation = e2, this._renderer.linearAttenuation = t2, this._renderer.quadraticAttenuation = r2, this;
        }, y.default.prototype.spotLight = function(e2, t2, r2, n2, o2, i2, a2, s2, l, u, c) {
          var d, f, h;
          this._assert3d("spotLight"), y.default._validateParameters("spotLight", arguments);
          var p = arguments.length;
          switch (p) {
            case 11:
            case 10:
              d = this.color(e2, t2, r2), f = new y.default.Vector(n2, o2, i2), h = new y.default.Vector(a2, s2, l);
              break;
            case 9:
              e2 instanceof y.default.Color ? (d = e2, f = new y.default.Vector(t2, r2, n2), h = new y.default.Vector(o2, i2, a2), u = s2, c = l) : n2 instanceof y.default.Vector ? (d = this.color(e2, t2, r2), f = n2, h = new y.default.Vector(o2, i2, a2), u = s2, c = l) : a2 instanceof y.default.Vector ? (d = this.color(e2, t2, r2), f = new y.default.Vector(n2, o2, i2), h = a2, u = s2, c = l) : (d = this.color(e2, t2, r2), f = new y.default.Vector(n2, o2, i2), h = new y.default.Vector(a2, s2, l));
              break;
            case 8:
              u = (h = e2 instanceof y.default.Color ? (d = e2, f = new y.default.Vector(t2, r2, n2), new y.default.Vector(o2, i2, a2)) : n2 instanceof y.default.Vector ? (d = this.color(e2, t2, r2), f = n2, new y.default.Vector(o2, i2, a2)) : (d = this.color(e2, t2, r2), f = new y.default.Vector(n2, o2, i2), a2), s2);
              break;
            case 7:
              e2 instanceof y.default.Color && t2 instanceof y.default.Vector ? (d = e2, f = t2, h = new y.default.Vector(r2, n2, o2), u = i2, c = a2) : e2 instanceof y.default.Color && o2 instanceof y.default.Vector ? (d = e2, f = new y.default.Vector(t2, r2, n2), h = o2, u = i2, c = a2) : n2 instanceof y.default.Vector && o2 instanceof y.default.Vector ? (d = this.color(e2, t2, r2), f = n2, h = o2, u = i2, c = a2) : h = e2 instanceof y.default.Color ? (d = e2, f = new y.default.Vector(t2, r2, n2), new y.default.Vector(o2, i2, a2)) : n2 instanceof y.default.Vector ? (d = this.color(e2, t2, r2), f = n2, new y.default.Vector(o2, i2, a2)) : (d = this.color(e2, t2, r2), f = new y.default.Vector(n2, o2, i2), a2);
              break;
            case 6:
              n2 instanceof y.default.Vector && o2 instanceof y.default.Vector ? (d = this.color(e2, t2, r2), f = n2, h = o2, u = i2) : e2 instanceof y.default.Color && o2 instanceof y.default.Vector ? (d = e2, f = new y.default.Vector(t2, r2, n2), h = o2, u = i2) : e2 instanceof y.default.Color && t2 instanceof y.default.Vector && (d = e2, f = t2, h = new y.default.Vector(r2, n2, o2), u = i2);
              break;
            case 5:
              e2 instanceof y.default.Color && t2 instanceof y.default.Vector && r2 instanceof y.default.Vector ? (d = e2, f = t2, h = r2, u = n2, c = o2) : n2 instanceof y.default.Vector && o2 instanceof y.default.Vector ? (d = this.color(e2, t2, r2), f = n2, h = o2) : e2 instanceof y.default.Color && o2 instanceof y.default.Vector ? (d = e2, f = new y.default.Vector(t2, r2, n2), h = o2) : e2 instanceof y.default.Color && t2 instanceof y.default.Vector && (d = e2, f = t2, h = new y.default.Vector(r2, n2, o2));
              break;
            case 4:
              d = e2, f = t2, h = r2, u = n2;
              break;
            case 3:
              d = e2, f = t2, h = r2;
              break;
            default:
              return console.warn("Sorry, input for spotlight() is not in prescribed format. Too ".concat(p < 3 ? "few" : "many", " arguments were provided")), this;
          }
          return this._renderer.spotLightDiffuseColors.push(d._array[0], d._array[1], d._array[2]), Array.prototype.push.apply(this._renderer.spotLightSpecularColors, this._renderer.specularColors), this._renderer.spotLightPositions.push(f.x, f.y, f.z), h.normalize(), this._renderer.spotLightDirections.push(h.x, h.y, h.z), u === void 0 && (u = Math.PI / 3), c !== void 0 && c < 1 ? (c = 1, console.warn("Value of concentration needs to be greater than 1. Setting it to 1")) : c === void 0 && (c = 100), u = this._renderer._pInst._toRadians(u), this._renderer.spotLightAngle.push(Math.cos(u)), this._renderer.spotLightConc.push(c), this._renderer._enableLighting = true, this;
        }, y.default.prototype.noLights = function() {
          return this._assert3d("noLights"), y.default._validateParameters("noLights", arguments), this._renderer._enableLighting = false, this._renderer.ambientLightColors.length = 0, this._renderer.specularColors = [1, 1, 1], this._renderer.directionalLightDirections.length = 0, this._renderer.directionalLightDiffuseColors.length = 0, this._renderer.directionalLightSpecularColors.length = 0, this._renderer.pointLightPositions.length = 0, this._renderer.pointLightDiffuseColors.length = 0, this._renderer.pointLightSpecularColors.length = 0, this._renderer.spotLightPositions.length = 0, this._renderer.spotLightDirections.length = 0, this._renderer.spotLightDiffuseColors.length = 0, this._renderer.spotLightSpecularColors.length = 0, this._renderer.spotLightAngle.length = 0, this._renderer.spotLightConc.length = 0, this._renderer.constantAttenuation = 1, this._renderer.linearAttenuation = 0, this._renderer.quadraticAttenuation = 0, this._renderer._useShininess = 1, this;
        };
        var i = y.default;
        r.default = i;
      }, { "../core/constants": 250, "../core/main": 260 }], 306: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.array.concat"), e("core-js/modules/es.array.index-of"), e("core-js/modules/es.array.slice"), e("core-js/modules/es.array.splice"), e("core-js/modules/es.object.to-string"), e("core-js/modules/es.regexp.exec"), e("core-js/modules/es.string.match"), e("core-js/modules/es.string.split"), e("core-js/modules/es.string.trim"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, S = (n = e("../core/main")) && n.__esModule ? n : { default: n };
        function s(e2, t2, r2) {
          for (var n2 = 0, o2 = e2.length; n2 < o2; n2++)
            if (e2[n2] !== t2.getUint8(r2 + n2, false))
              return false;
          return true;
        }
        e("./p5.Geometry"), S.default.prototype.loadModel = function(e2) {
          var t2, r2, n2;
          S.default._validateParameters("loadModel", arguments);
          var o2 = e2.slice(-4);
          typeof arguments[1] == "boolean" ? (t2 = arguments[1], r2 = arguments[2], n2 = arguments[3], arguments[4] !== void 0 && (o2 = arguments[4])) : (t2 = false, r2 = arguments[1], n2 = arguments[2], arguments[3] !== void 0 && (o2 = arguments[3]));
          var i = new S.default.Geometry();
          i.gid = "".concat(e2, "|").concat(t2);
          var a = this;
          return o2.match(/\.stl$/i) ? this.httpDo(e2, "GET", "arrayBuffer", function(e3) {
            !function(e4, t3) {
              if (function(e5) {
                for (var t4 = new DataView(e5), r4 = [115, 111, 108, 105, 100], n4 = 0; n4 < 5; n4++)
                  if (s(r4, t4, n4))
                    return false;
                return true;
              }(t3))
                !function(e5, t4) {
                  for (var r4, n4, o3, i2, a2, s2, l, u = new DataView(t4), c = u.getUint32(80, true), d = false, f = 0; f < 70; f++)
                    u.getUint32(f, false) === 1129270351 && u.getUint8(f + 4) === 82 && u.getUint8(f + 5) === 61 && (d = true, i2 = [], a2 = u.getUint8(f + 6) / 255, s2 = u.getUint8(f + 7) / 255, l = u.getUint8(f + 8) / 255);
                  for (var h = 0; h < c; h++) {
                    var p = 84 + 50 * h, y = u.getFloat32(p, true), m = u.getFloat32(4 + p, true), g = u.getFloat32(8 + p, true);
                    if (d) {
                      var v = u.getUint16(48 + p, true);
                      o3 = (32768 & v) == 0 ? (r4 = (31 & v) / 31, n4 = (v >> 5 & 31) / 31, (v >> 10 & 31) / 31) : (r4 = a2, n4 = s2, l);
                    }
                    for (var b = new S.default.Vector(y, m, g), _ = 1; _ <= 3; _++) {
                      var x = p + 12 * _, w = new S.default.Vector(u.getFloat32(x, true), u.getFloat32(4 + x, true), u.getFloat32(8 + x, true));
                      e5.vertices.push(w), e5.vertexNormals.push(b), d && i2.push(r4, n4, o3);
                    }
                    e5.faces.push([3 * h, 3 * h + 1, 3 * h + 2]), e5.uvs.push([0, 0], [0, 0], [0, 0]);
                  }
                }(e4, t3);
              else {
                var r3 = new DataView(t3);
                if (!("TextDecoder" in window))
                  return console.warn("Sorry, ASCII STL loading only works in browsers that support TextDecoder (https://caniuse.com/#feat=textencoder)");
                var n3 = new TextDecoder("utf-8").decode(r3).split("\n");
                !function(e5, t4) {
                  for (var r4, n4, o3 = "", i2 = [], a2 = 0; a2 < t4.length; ++a2) {
                    for (var s2 = t4[a2].trim(), l = s2.split(" "), u = 0; u < l.length; ++u)
                      l[u] === "" && l.splice(u, 1);
                    if (l.length !== 0)
                      switch (o3) {
                        case "":
                          if (l[0] !== "solid")
                            return console.error(s2), console.error('Invalid state "'.concat(l[0], '", should be "solid"'));
                          o3 = "solid";
                          break;
                        case "solid":
                          if (l[0] !== "facet" || l[1] !== "normal")
                            return console.error(s2), console.error('Invalid state "'.concat(l[0], '", should be "facet normal"'));
                          r4 = new S.default.Vector(parseFloat(l[2]), parseFloat(l[3]), parseFloat(l[4])), e5.vertexNormals.push(r4, r4, r4), o3 = "facet normal";
                          break;
                        case "facet normal":
                          if (l[0] !== "outer" || l[1] !== "loop")
                            return console.error(s2), console.error('Invalid state "'.concat(l[0], '", should be "outer loop"'));
                          o3 = "vertex";
                          break;
                        case "vertex":
                          if (l[0] === "vertex")
                            n4 = new S.default.Vector(parseFloat(l[1]), parseFloat(l[2]), parseFloat(l[3])), e5.vertices.push(n4), e5.uvs.push([0, 0]), i2.push(e5.vertices.indexOf(n4));
                          else {
                            if (l[0] !== "endloop")
                              return console.error(s2), console.error('Invalid state "'.concat(l[0], '", should be "vertex" or "endloop"'));
                            e5.faces.push(i2), i2 = [], o3 = "endloop";
                          }
                          break;
                        case "endloop":
                          if (l[0] !== "endfacet")
                            return console.error(s2), console.error('Invalid state "'.concat(l[0], '", should be "endfacet"'));
                          o3 = "endfacet";
                          break;
                        case "endfacet":
                          if (l[0] !== "endsolid") {
                            if (l[0] !== "facet" || l[1] !== "normal")
                              return console.error(s2), console.error('Invalid state "'.concat(l[0], '", should be "endsolid" or "facet normal"'));
                            r4 = new S.default.Vector(parseFloat(l[2]), parseFloat(l[3]), parseFloat(l[4])), e5.vertexNormals.push(r4, r4, r4), o3 = "facet normal";
                          }
                          break;
                        default:
                          console.error('Invalid state "'.concat(o3, '"'));
                      }
                  }
                }(e4, n3);
              }
            }(i, e3), t2 && i.normalize(), a._decrementPreload(), typeof r2 == "function" && r2(i);
          }, n2) : o2.match(/\.obj$/i) ? this.loadStrings(e2, function(e3) {
            !function(e4, t3) {
              for (var r3 = { v: [], vt: [], vn: [] }, n3 = {}, o3 = 0; o3 < t3.length; ++o3) {
                var i2 = t3[o3].trim().split(/\b\s+/);
                if (0 < i2.length) {
                  if (i2[0] === "v" || i2[0] === "vn") {
                    var a2 = new S.default.Vector(parseFloat(i2[1]), parseFloat(i2[2]), parseFloat(i2[3]));
                    r3[i2[0]].push(a2);
                  } else if (i2[0] === "vt") {
                    var s2 = [parseFloat(i2[1]), 1 - parseFloat(i2[2])];
                    r3[i2[0]].push(s2);
                  } else if (i2[0] === "f")
                    for (var l = 3; l < i2.length; ++l) {
                      for (var u = [], c = [1, l - 1, l], d = 0; d < c.length; ++d) {
                        var f = i2[c[d]], h = 0;
                        if (n3[f] !== void 0)
                          h = n3[f];
                        else {
                          for (var p = f.split("/"), y = 0; y < p.length; y++)
                            p[y] = parseInt(p[y]) - 1;
                          h = n3[f] = e4.vertices.length, e4.vertices.push(r3.v[p[0]].copy()), r3.vt[p[1]] ? e4.uvs.push(r3.vt[p[1]].slice()) : e4.uvs.push([0, 0]), r3.vn[p[2]] && e4.vertexNormals.push(r3.vn[p[2]].copy());
                        }
                        u.push(h);
                      }
                      u[0] !== u[1] && u[0] !== u[2] && u[1] !== u[2] && e4.faces.push(u);
                    }
                }
              }
              e4.vertexNormals.length === 0 && e4.computeNormals();
            }(i, e3), t2 && i.normalize(), a._decrementPreload(), typeof r2 == "function" && r2(i);
          }, n2) : (S.default._friendlyFileLoadError(3, e2), n2 ? n2() : console.error("Sorry, the file type is invalid. Only OBJ and STL files are supported.")), i;
        }, S.default.prototype.model = function(e2) {
          this._assert3d("model"), S.default._validateParameters("model", arguments), 0 < e2.vertices.length && (this._renderer.geometryInHash(e2.gid) || (e2._makeTriangleEdges()._edgesToVertices(), this._renderer.createBuffers(e2.gid, e2)), this._renderer.drawBuffers(e2.gid));
        };
        var o = S.default;
        r.default = o;
      }, { "../core/main": 260, "./p5.Geometry": 309, "core-js/modules/es.array.concat": 148, "core-js/modules/es.array.index-of": 155, "core-js/modules/es.array.slice": 160, "core-js/modules/es.array.splice": 162, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.regexp.exec": 178, "core-js/modules/es.string.match": 184, "core-js/modules/es.string.split": 188, "core-js/modules/es.string.trim": 190 }], 307: [function(e, t, r) {
        "use strict";
        function a(e2) {
          return (a = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e3) {
            return typeof e3;
          } : function(e3) {
            return e3 && typeof Symbol == "function" && e3.constructor === Symbol && e3 !== Symbol.prototype ? "symbol" : typeof e3;
          })(e2);
        }
        e("core-js/modules/es.array.join"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, u = (n = e("../core/main")) && n.__esModule ? n : { default: n }, o = function(e2) {
          if (e2 && e2.__esModule)
            return e2;
          if (e2 === null || a(e2) !== "object" && typeof e2 != "function")
            return { default: e2 };
          var t2 = s();
          if (t2 && t2.has(e2))
            return t2.get(e2);
          var r2 = {}, n2 = Object.defineProperty && Object.getOwnPropertyDescriptor;
          for (var o2 in e2)
            if (Object.prototype.hasOwnProperty.call(e2, o2)) {
              var i2 = n2 ? Object.getOwnPropertyDescriptor(e2, o2) : null;
              i2 && (i2.get || i2.set) ? Object.defineProperty(r2, o2, i2) : r2[o2] = e2[o2];
            }
          r2.default = e2, t2 && t2.set(e2, r2);
          return r2;
        }(e("../core/constants"));
        function s() {
          if (typeof WeakMap != "function")
            return null;
          var e2 = new WeakMap();
          return s = function() {
            return e2;
          }, e2;
        }
        e("./p5.Texture"), u.default.prototype.loadShader = function(e2, t2, r2, n2) {
          u.default._validateParameters("loadShader", arguments), n2 = n2 || console.error;
          function o2() {
            a2._decrementPreload(), r2 && r2(i2);
          }
          var i2 = new u.default.Shader(), a2 = this, s2 = false, l = false;
          return this.loadStrings(e2, function(e3) {
            i2._vertSrc = e3.join("\n"), l = true, s2 && o2();
          }, n2), this.loadStrings(t2, function(e3) {
            i2._fragSrc = e3.join("\n"), s2 = true, l && o2();
          }, n2), i2;
        }, u.default.prototype.createShader = function(e2, t2) {
          return this._assert3d("createShader"), u.default._validateParameters("createShader", arguments), new u.default.Shader(this._renderer, e2, t2);
        }, u.default.prototype.shader = function(e2) {
          return this._assert3d("shader"), u.default._validateParameters("shader", arguments), e2._renderer === void 0 && (e2._renderer = this._renderer), e2.init(), e2.isStrokeShader() ? this._renderer.userStrokeShader = e2 : (this._renderer.userFillShader = e2, this._renderer._useNormalMaterial = false), this;
        }, u.default.prototype.resetShader = function() {
          return this._renderer.userFillShader = this._renderer.userStrokeShader = null, this;
        }, u.default.prototype.texture = function(e2) {
          return this._assert3d("texture"), u.default._validateParameters("texture", arguments), e2.gifProperties && e2._animateGif(this), this._renderer.drawMode = o.TEXTURE, this._renderer._useSpecularMaterial = false, this._renderer._useEmissiveMaterial = false, this._renderer._useNormalMaterial = false, this._renderer._tex = e2, this._renderer._setProperty("_doFill", true), this;
        }, u.default.prototype.textureMode = function(e2) {
          e2 !== o.IMAGE && e2 !== o.NORMAL ? console.warn("You tried to set ".concat(e2, " textureMode only supports IMAGE & NORMAL ")) : this._renderer.textureMode = e2;
        }, u.default.prototype.textureWrap = function(e2) {
          var t2 = 1 < arguments.length && arguments[1] !== void 0 ? arguments[1] : e2;
          this._renderer.textureWrapX = e2, this._renderer.textureWrapY = t2;
          for (var r2 = this._renderer.textures, n2 = 0; n2 < r2.length; n2++)
            r2[n2].setWrapMode(e2, t2);
        }, u.default.prototype.normalMaterial = function() {
          this._assert3d("normalMaterial");
          for (var e2 = arguments.length, t2 = new Array(e2), r2 = 0; r2 < e2; r2++)
            t2[r2] = arguments[r2];
          return u.default._validateParameters("normalMaterial", t2), this._renderer.drawMode = o.FILL, this._renderer._useSpecularMaterial = false, this._renderer._useEmissiveMaterial = false, this._renderer._useNormalMaterial = true, this._renderer.curFillColor = [1, 1, 1, 1], this._renderer._setProperty("_doFill", true), this.noStroke(), this;
        }, u.default.prototype.ambientMaterial = function(e2, t2, r2) {
          this._assert3d("ambientMaterial"), u.default._validateParameters("ambientMaterial", arguments);
          var n2 = u.default.prototype.color.apply(this, arguments);
          return this._renderer.curFillColor = n2._array, this._renderer._useSpecularMaterial = false, this._renderer._useEmissiveMaterial = false, this._renderer._useNormalMaterial = false, this._renderer._enableLighting = true, this._renderer._tex = null, this;
        }, u.default.prototype.emissiveMaterial = function(e2, t2, r2, n2) {
          this._assert3d("emissiveMaterial"), u.default._validateParameters("emissiveMaterial", arguments);
          var o2 = u.default.prototype.color.apply(this, arguments);
          return this._renderer.curFillColor = o2._array, this._renderer._useSpecularMaterial = false, this._renderer._useEmissiveMaterial = true, this._renderer._useNormalMaterial = false, this._renderer._enableLighting = true, this._renderer._tex = null, this;
        }, u.default.prototype.specularMaterial = function(e2, t2, r2, n2) {
          this._assert3d("specularMaterial"), u.default._validateParameters("specularMaterial", arguments);
          var o2 = u.default.prototype.color.apply(this, arguments);
          return this._renderer.curFillColor = o2._array, this._renderer._useSpecularMaterial = true, this._renderer._useEmissiveMaterial = false, this._renderer._useNormalMaterial = false, this._renderer._enableLighting = true, this._renderer._tex = null, this;
        }, u.default.prototype.shininess = function(e2) {
          return this._assert3d("shininess"), u.default._validateParameters("shininess", arguments), e2 < 1 && (e2 = 1), this._renderer._useShininess = e2, this;
        }, u.default.RendererGL.prototype._applyColorBlend = function(e2) {
          var t2 = this.GL, r2 = this.drawMode === o.TEXTURE || e2[e2.length - 1] < 1 || this._isErasing;
          return r2 !== this._isBlending && (r2 || this.curBlendMode !== o.BLEND && this.curBlendMode !== o.ADD ? t2.enable(t2.BLEND) : t2.disable(t2.BLEND), t2.depthMask(true), this._isBlending = r2), this._applyBlendMode(), e2;
        }, u.default.RendererGL.prototype._applyBlendMode = function() {
          if (this._cachedBlendMode !== this.curBlendMode) {
            var e2 = this.GL;
            switch (this.curBlendMode) {
              case o.BLEND:
              case o.ADD:
                e2.blendEquation(e2.FUNC_ADD), e2.blendFunc(e2.SRC_ALPHA, e2.ONE_MINUS_SRC_ALPHA);
                break;
              case o.REMOVE:
                e2.blendEquation(e2.FUNC_REVERSE_SUBTRACT), e2.blendFunc(e2.SRC_ALPHA, e2.DST_ALPHA);
                break;
              case o.MULTIPLY:
                e2.blendEquationSeparate(e2.FUNC_ADD, e2.FUNC_ADD), e2.blendFuncSeparate(e2.ZERO, e2.SRC_COLOR, e2.ONE, e2.ONE);
                break;
              case o.SCREEN:
                e2.blendEquationSeparate(e2.FUNC_ADD, e2.FUNC_ADD), e2.blendFuncSeparate(e2.ONE_MINUS_DST_COLOR, e2.ONE, e2.ONE, e2.ONE);
                break;
              case o.EXCLUSION:
                e2.blendEquationSeparate(e2.FUNC_ADD, e2.FUNC_ADD), e2.blendFuncSeparate(e2.ONE_MINUS_DST_COLOR, e2.ONE_MINUS_SRC_COLOR, e2.ONE, e2.ONE);
                break;
              case o.REPLACE:
                e2.blendEquation(e2.FUNC_ADD), e2.blendFunc(e2.ONE, e2.ZERO);
                break;
              case o.SUBTRACT:
                e2.blendEquationSeparate(e2.FUNC_REVERSE_SUBTRACT, e2.FUNC_ADD), e2.blendFuncSeparate(e2.SRC_ALPHA, e2.ONE, e2.ONE, e2.ONE);
                break;
              case o.DARKEST:
                this.blendExt ? (e2.blendEquationSeparate(this.blendExt.MIN_EXT, e2.FUNC_ADD), e2.blendFuncSeparate(e2.ONE, e2.ONE, e2.ONE, e2.ONE)) : console.warn("blendMode(DARKEST) does not work in your browser in WEBGL mode.");
                break;
              case o.LIGHTEST:
                this.blendExt ? (e2.blendEquationSeparate(this.blendExt.MAX_EXT, e2.FUNC_ADD), e2.blendFuncSeparate(e2.ONE, e2.ONE, e2.ONE, e2.ONE)) : console.warn("blendMode(LIGHTEST) does not work in your browser in WEBGL mode.");
                break;
              default:
                console.error("Oops! Somehow RendererGL set curBlendMode to an unsupported mode.");
            }
            this._isErasing || (this._cachedBlendMode = this.curBlendMode);
          }
        };
        var i = u.default;
        r.default = i;
      }, { "../core/constants": 250, "../core/main": 260, "./p5.Texture": 316, "core-js/modules/es.array.join": 157 }], 308: [function(e, t, r) {
        "use strict";
        Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, y = (n = e("../core/main")) && n.__esModule ? n : { default: n };
        y.default.prototype.camera = function() {
          var e2;
          this._assert3d("camera");
          for (var t2 = arguments.length, r2 = new Array(t2), n2 = 0; n2 < t2; n2++)
            r2[n2] = arguments[n2];
          return y.default._validateParameters("camera", r2), (e2 = this._renderer._curCamera).camera.apply(e2, r2), this;
        }, y.default.prototype.perspective = function() {
          var e2;
          this._assert3d("perspective");
          for (var t2 = arguments.length, r2 = new Array(t2), n2 = 0; n2 < t2; n2++)
            r2[n2] = arguments[n2];
          return y.default._validateParameters("perspective", r2), (e2 = this._renderer._curCamera).perspective.apply(e2, r2), this;
        }, y.default.prototype.ortho = function() {
          var e2;
          this._assert3d("ortho");
          for (var t2 = arguments.length, r2 = new Array(t2), n2 = 0; n2 < t2; n2++)
            r2[n2] = arguments[n2];
          return y.default._validateParameters("ortho", r2), (e2 = this._renderer._curCamera).ortho.apply(e2, r2), this;
        }, y.default.prototype.frustum = function() {
          var e2;
          this._assert3d("frustum");
          for (var t2 = arguments.length, r2 = new Array(t2), n2 = 0; n2 < t2; n2++)
            r2[n2] = arguments[n2];
          return y.default._validateParameters("frustum", r2), (e2 = this._renderer._curCamera).frustum.apply(e2, r2), this;
        }, y.default.prototype.createCamera = function() {
          this._assert3d("createCamera");
          var e2 = new y.default.Camera(this._renderer);
          return e2._computeCameraDefaultSettings(), e2._setDefaultCamera(), this._renderer._curCamera = e2;
        }, y.default.Camera = function(e2) {
          this._renderer = e2, this.cameraType = "default", this.cameraMatrix = new y.default.Matrix(), this.projMatrix = new y.default.Matrix();
        }, y.default.Camera.prototype.perspective = function(e2, t2, r2, n2) {
          this.cameraType = 0 < arguments.length ? "custom" : "default", e2 === void 0 ? (e2 = this.defaultCameraFOV, this.cameraFOV = e2) : this.cameraFOV = this._renderer._pInst._toRadians(e2), t2 === void 0 && (t2 = this.defaultAspectRatio), r2 === void 0 && (r2 = this.defaultCameraNear), n2 === void 0 && (n2 = this.defaultCameraFar), r2 <= 1e-4 && (r2 = 0.01, console.log("Avoid perspective near plane values close to or below 0. Setting value to 0.01.")), n2 < r2 && console.log("Perspective far plane value is less than near plane value. Nothing will be shown."), this.aspectRatio = t2, this.cameraNear = r2, this.cameraFar = n2, this.projMatrix = y.default.Matrix.identity();
          var o2 = 1 / Math.tan(this.cameraFOV / 2), i = 1 / (this.cameraNear - this.cameraFar);
          this.projMatrix.set(o2 / t2, 0, 0, 0, 0, -o2, 0, 0, 0, 0, (n2 + r2) * i, -1, 0, 0, 2 * n2 * r2 * i, 0), this._isActive() && this._renderer.uPMatrix.set(this.projMatrix.mat4[0], this.projMatrix.mat4[1], this.projMatrix.mat4[2], this.projMatrix.mat4[3], this.projMatrix.mat4[4], this.projMatrix.mat4[5], this.projMatrix.mat4[6], this.projMatrix.mat4[7], this.projMatrix.mat4[8], this.projMatrix.mat4[9], this.projMatrix.mat4[10], this.projMatrix.mat4[11], this.projMatrix.mat4[12], this.projMatrix.mat4[13], this.projMatrix.mat4[14], this.projMatrix.mat4[15]);
        }, y.default.Camera.prototype.ortho = function(e2, t2, r2, n2, o2, i) {
          e2 === void 0 && (e2 = -this._renderer.width / 2), t2 === void 0 && (t2 = this._renderer.width / 2), r2 === void 0 && (r2 = -this._renderer.height / 2), n2 === void 0 && (n2 = this._renderer.height / 2), o2 === void 0 && (o2 = 0), i === void 0 && (i = Math.max(this._renderer.width, this._renderer.height));
          var a = t2 - e2, s = n2 - r2, l = i - o2, u = 2 / a, c = 2 / s, d = -2 / l, f = -(t2 + e2) / a, h = -(n2 + r2) / s, p = -(i + o2) / l;
          this.projMatrix = y.default.Matrix.identity(), this.projMatrix.set(u, 0, 0, 0, 0, -c, 0, 0, 0, 0, d, 0, f, h, p, 1), this._isActive() && this._renderer.uPMatrix.set(this.projMatrix.mat4[0], this.projMatrix.mat4[1], this.projMatrix.mat4[2], this.projMatrix.mat4[3], this.projMatrix.mat4[4], this.projMatrix.mat4[5], this.projMatrix.mat4[6], this.projMatrix.mat4[7], this.projMatrix.mat4[8], this.projMatrix.mat4[9], this.projMatrix.mat4[10], this.projMatrix.mat4[11], this.projMatrix.mat4[12], this.projMatrix.mat4[13], this.projMatrix.mat4[14], this.projMatrix.mat4[15]), this.cameraType = "custom";
        }, y.default.Camera.prototype.frustum = function(e2, t2, r2, n2, o2, i) {
          e2 === void 0 && (e2 = -this._renderer.width / 2), t2 === void 0 && (t2 = this._renderer.width / 2), r2 === void 0 && (r2 = -this._renderer.height / 2), n2 === void 0 && (n2 = this._renderer.height / 2), o2 === void 0 && (o2 = 0), i === void 0 && (i = Math.max(this._renderer.width, this._renderer.height));
          var a = t2 - e2, s = n2 - r2, l = i - o2, u = 2 * o2 / a, c = 2 * o2 / s, d = -2 * i * o2 / l, f = (t2 + e2) / a, h = (n2 + r2) / s, p = -(i + o2) / l;
          this.projMatrix = y.default.Matrix.identity(), this.projMatrix.set(u, 0, 0, 0, 0, c, 0, 0, f, h, p, -1, 0, 0, d, 0), this._isActive() && this._renderer.uPMatrix.set(this.projMatrix.mat4[0], this.projMatrix.mat4[1], this.projMatrix.mat4[2], this.projMatrix.mat4[3], this.projMatrix.mat4[4], this.projMatrix.mat4[5], this.projMatrix.mat4[6], this.projMatrix.mat4[7], this.projMatrix.mat4[8], this.projMatrix.mat4[9], this.projMatrix.mat4[10], this.projMatrix.mat4[11], this.projMatrix.mat4[12], this.projMatrix.mat4[13], this.projMatrix.mat4[14], this.projMatrix.mat4[15]), this.cameraType = "custom";
        }, y.default.Camera.prototype._rotateView = function(e2, t2, r2, n2) {
          var o2 = this.centerX, i = this.centerY, a = this.centerZ;
          o2 -= this.eyeX, i -= this.eyeY, a -= this.eyeZ;
          var s = y.default.Matrix.identity(this._renderer._pInst);
          s.rotate(this._renderer._pInst._toRadians(e2), t2, r2, n2);
          var l = [o2 * s.mat4[0] + i * s.mat4[4] + a * s.mat4[8], o2 * s.mat4[1] + i * s.mat4[5] + a * s.mat4[9], o2 * s.mat4[2] + i * s.mat4[6] + a * s.mat4[10]];
          l[0] += this.eyeX, l[1] += this.eyeY, l[2] += this.eyeZ, this.camera(this.eyeX, this.eyeY, this.eyeZ, l[0], l[1], l[2], this.upX, this.upY, this.upZ);
        }, y.default.Camera.prototype.pan = function(e2) {
          var t2 = this._getLocalAxes();
          this._rotateView(e2, t2.y[0], t2.y[1], t2.y[2]);
        }, y.default.Camera.prototype.tilt = function(e2) {
          var t2 = this._getLocalAxes();
          this._rotateView(e2, t2.x[0], t2.x[1], t2.x[2]);
        }, y.default.Camera.prototype.lookAt = function(e2, t2, r2) {
          this.camera(this.eyeX, this.eyeY, this.eyeZ, e2, t2, r2, this.upX, this.upY, this.upZ);
        }, y.default.Camera.prototype.camera = function(e2, t2, r2, n2, o2, i, a, s, l) {
          e2 === void 0 && (e2 = this.defaultEyeX, t2 = this.defaultEyeY, r2 = this.defaultEyeZ, n2 = e2, o2 = t2, s = 1, l = a = i = 0), this.eyeX = e2, this.eyeY = t2, this.eyeZ = r2, n2 !== void 0 && (this.centerX = n2, this.centerY = o2, this.centerZ = i), a !== void 0 && (this.upX = a, this.upY = s, this.upZ = l);
          var u = this._getLocalAxes();
          this.cameraMatrix.set(u.x[0], u.y[0], u.z[0], 0, u.x[1], u.y[1], u.z[1], 0, u.x[2], u.y[2], u.z[2], 0, 0, 0, 0, 1);
          var c = -e2, d = -t2, f = -r2;
          return this.cameraMatrix.translate([c, d, f]), this._isActive() && this._renderer.uMVMatrix.set(this.cameraMatrix.mat4[0], this.cameraMatrix.mat4[1], this.cameraMatrix.mat4[2], this.cameraMatrix.mat4[3], this.cameraMatrix.mat4[4], this.cameraMatrix.mat4[5], this.cameraMatrix.mat4[6], this.cameraMatrix.mat4[7], this.cameraMatrix.mat4[8], this.cameraMatrix.mat4[9], this.cameraMatrix.mat4[10], this.cameraMatrix.mat4[11], this.cameraMatrix.mat4[12], this.cameraMatrix.mat4[13], this.cameraMatrix.mat4[14], this.cameraMatrix.mat4[15]), this;
        }, y.default.Camera.prototype.move = function(e2, t2, r2) {
          var n2 = this._getLocalAxes(), o2 = [n2.x[0] * e2, n2.x[1] * e2, n2.x[2] * e2], i = [n2.y[0] * t2, n2.y[1] * t2, n2.y[2] * t2], a = [n2.z[0] * r2, n2.z[1] * r2, n2.z[2] * r2];
          this.camera(this.eyeX + o2[0] + i[0] + a[0], this.eyeY + o2[1] + i[1] + a[1], this.eyeZ + o2[2] + i[2] + a[2], this.centerX + o2[0] + i[0] + a[0], this.centerY + o2[1] + i[1] + a[1], this.centerZ + o2[2] + i[2] + a[2], 0, 1, 0);
        }, y.default.Camera.prototype.setPosition = function(e2, t2, r2) {
          var n2 = e2 - this.eyeX, o2 = t2 - this.eyeY, i = r2 - this.eyeZ;
          this.camera(e2, t2, r2, this.centerX + n2, this.centerY + o2, this.centerZ + i, 0, 1, 0);
        }, y.default.Camera.prototype._computeCameraDefaultSettings = function() {
          this.defaultCameraFOV = 60 / 180 * Math.PI, this.defaultAspectRatio = this._renderer.width / this._renderer.height, this.defaultEyeX = 0, this.defaultEyeY = 0, this.defaultEyeZ = this._renderer.height / 2 / Math.tan(this.defaultCameraFOV / 2), this.defaultCenterX = 0, this.defaultCenterY = 0, this.defaultCenterZ = 0, this.defaultCameraNear = 0.1 * this.defaultEyeZ, this.defaultCameraFar = 10 * this.defaultEyeZ;
        }, y.default.Camera.prototype._setDefaultCamera = function() {
          this.cameraFOV = this.defaultCameraFOV, this.aspectRatio = this.defaultAspectRatio, this.eyeX = this.defaultEyeX, this.eyeY = this.defaultEyeY, this.eyeZ = this.defaultEyeZ, this.centerX = this.defaultCenterX, this.centerY = this.defaultCenterY, this.centerZ = this.defaultCenterZ, this.upX = 0, this.upY = 1, this.upZ = 0, this.cameraNear = this.defaultCameraNear, this.cameraFar = this.defaultCameraFar, this.perspective(), this.camera(), this.cameraType = "default";
        }, y.default.Camera.prototype._resize = function() {
          this.cameraType === "default" ? (this._computeCameraDefaultSettings(), this._setDefaultCamera()) : this.perspective(this.cameraFOV, this._renderer.width / this._renderer.height);
        }, y.default.Camera.prototype.copy = function() {
          var e2 = new y.default.Camera(this._renderer);
          return e2.cameraFOV = this.cameraFOV, e2.aspectRatio = this.aspectRatio, e2.eyeX = this.eyeX, e2.eyeY = this.eyeY, e2.eyeZ = this.eyeZ, e2.centerX = this.centerX, e2.centerY = this.centerY, e2.centerZ = this.centerZ, e2.cameraNear = this.cameraNear, e2.cameraFar = this.cameraFar, e2.cameraType = this.cameraType, e2.cameraMatrix = this.cameraMatrix.copy(), e2.projMatrix = this.projMatrix.copy(), e2;
        }, y.default.Camera.prototype._getLocalAxes = function() {
          var e2 = this.eyeX - this.centerX, t2 = this.eyeY - this.centerY, r2 = this.eyeZ - this.centerZ, n2 = Math.sqrt(e2 * e2 + t2 * t2 + r2 * r2);
          n2 !== 0 && (e2 /= n2, t2 /= n2, r2 /= n2);
          var o2 = this.upX, i = this.upY, a = this.upZ, s = i * r2 - a * t2, l = -o2 * r2 + a * e2, u = o2 * t2 - i * e2;
          o2 = t2 * u - r2 * l, i = -e2 * u + r2 * s, a = e2 * l - t2 * s;
          var c = Math.sqrt(s * s + l * l + u * u);
          c !== 0 && (s /= c, l /= c, u /= c);
          var d = Math.sqrt(o2 * o2 + i * i + a * a);
          return d !== 0 && (o2 /= d, i /= d, a /= d), { x: [s, l, u], y: [o2, i, a], z: [e2, t2, r2] };
        }, y.default.Camera.prototype._orbit = function(e2, t2, r2) {
          var n2 = this.eyeX - this.centerX, o2 = this.eyeY - this.centerY, i = this.eyeZ - this.centerZ, a = Math.sqrt(n2 * n2 + o2 * o2 + i * i), s = Math.atan2(n2, i), l = Math.acos(Math.max(-1, Math.min(1, o2 / a)));
          s += e2, (a += r2) < 0 && (a = 0.1), (l += t2) > Math.PI ? l = Math.PI : l <= 0 && (l = 1e-3);
          var u = Math.sin(l) * a * Math.sin(s), c = Math.cos(l) * a, d = Math.sin(l) * a * Math.cos(s);
          this.camera(u + this.centerX, c + this.centerY, d + this.centerZ, this.centerX, this.centerY, this.centerZ, 0, 1, 0);
        }, y.default.Camera.prototype._isActive = function() {
          return this === this._renderer._curCamera;
        }, y.default.prototype.setCamera = function(e2) {
          this._renderer._curCamera = e2, this._renderer.uPMatrix.set(e2.projMatrix.mat4[0], e2.projMatrix.mat4[1], e2.projMatrix.mat4[2], e2.projMatrix.mat4[3], e2.projMatrix.mat4[4], e2.projMatrix.mat4[5], e2.projMatrix.mat4[6], e2.projMatrix.mat4[7], e2.projMatrix.mat4[8], e2.projMatrix.mat4[9], e2.projMatrix.mat4[10], e2.projMatrix.mat4[11], e2.projMatrix.mat4[12], e2.projMatrix.mat4[13], e2.projMatrix.mat4[14], e2.projMatrix.mat4[15]);
        };
        var o = y.default.Camera;
        r.default = o;
      }, { "../core/main": 260 }], 309: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.string.sub"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, c = (n = e("../core/main")) && n.__esModule ? n : { default: n };
        c.default.Geometry = function(e2, t2, r2) {
          return this.vertices = [], this.lineVertices = [], this.lineNormals = [], this.vertexNormals = [], this.faces = [], this.uvs = [], this.edges = [], this.vertexColors = [], this.detailX = e2 !== void 0 ? e2 : 1, this.detailY = t2 !== void 0 ? t2 : 1, this.dirtyFlags = {}, r2 instanceof Function && r2.call(this), this;
        }, c.default.Geometry.prototype.reset = function() {
          this.lineVertices.length = 0, this.lineNormals.length = 0, this.vertices.length = 0, this.edges.length = 0, this.vertexColors.length = 0, this.vertexNormals.length = 0, this.uvs.length = 0, this.dirtyFlags = {};
        }, c.default.Geometry.prototype.computeFaces = function() {
          this.faces.length = 0;
          for (var e2, t2, r2, n2, o2 = this.detailX + 1, i = 0; i < this.detailY; i++)
            for (var a = 0; a < this.detailX; a++)
              t2 = (e2 = i * o2 + a) + 1, r2 = (i + 1) * o2 + a + 1, n2 = (i + 1) * o2 + a, this.faces.push([e2, t2, n2]), this.faces.push([n2, t2, r2]);
          return this;
        }, c.default.Geometry.prototype._getFaceNormal = function(e2) {
          var t2 = this.faces[e2], r2 = this.vertices[t2[0]], n2 = this.vertices[t2[1]], o2 = this.vertices[t2[2]], i = c.default.Vector.sub(n2, r2), a = c.default.Vector.sub(o2, r2), s = c.default.Vector.cross(i, a), l = c.default.Vector.mag(s), u = l / (c.default.Vector.mag(i) * c.default.Vector.mag(a));
          return u === 0 || isNaN(u) ? (console.warn("p5.Geometry.prototype._getFaceNormal:", "face has colinear sides or a repeated vertex"), s) : (1 < u && (u = 1), s.mult(Math.asin(u) / l));
        }, c.default.Geometry.prototype.computeNormals = function() {
          var e2, t2 = this.vertexNormals, r2 = this.vertices, n2 = this.faces;
          for (e2 = t2.length = 0; e2 < r2.length; ++e2)
            t2.push(new c.default.Vector());
          for (var o2 = 0; o2 < n2.length; ++o2)
            for (var i = n2[o2], a = this._getFaceNormal(o2), s = 0; s < 3; ++s) {
              t2[i[s]].add(a);
            }
          for (e2 = 0; e2 < r2.length; ++e2)
            t2[e2].normalize();
          return this;
        }, c.default.Geometry.prototype.averageNormals = function() {
          for (var e2 = 0; e2 <= this.detailY; e2++) {
            var t2 = this.detailX + 1, r2 = c.default.Vector.add(this.vertexNormals[e2 * t2], this.vertexNormals[e2 * t2 + this.detailX]);
            r2 = c.default.Vector.div(r2, 2), this.vertexNormals[e2 * t2] = r2, this.vertexNormals[e2 * t2 + this.detailX] = r2;
          }
          return this;
        }, c.default.Geometry.prototype.averagePoleNormals = function() {
          for (var e2 = new c.default.Vector(0, 0, 0), t2 = 0; t2 < this.detailX; t2++)
            e2.add(this.vertexNormals[t2]);
          e2 = c.default.Vector.div(e2, this.detailX);
          for (var r2 = 0; r2 < this.detailX; r2++)
            this.vertexNormals[r2] = e2;
          e2 = new c.default.Vector(0, 0, 0);
          for (var n2 = this.vertices.length - 1; n2 > this.vertices.length - 1 - this.detailX; n2--)
            e2.add(this.vertexNormals[n2]);
          e2 = c.default.Vector.div(e2, this.detailX);
          for (var o2 = this.vertices.length - 1; o2 > this.vertices.length - 1 - this.detailX; o2--)
            this.vertexNormals[o2] = e2;
          return this;
        }, c.default.Geometry.prototype._makeTriangleEdges = function() {
          if (this.edges.length = 0, Array.isArray(this.strokeIndices))
            for (var e2 = 0, t2 = this.strokeIndices.length; e2 < t2; e2++)
              this.edges.push(this.strokeIndices[e2]);
          else
            for (var r2 = 0; r2 < this.faces.length; r2++)
              this.edges.push([this.faces[r2][0], this.faces[r2][1]]), this.edges.push([this.faces[r2][1], this.faces[r2][2]]), this.edges.push([this.faces[r2][2], this.faces[r2][0]]);
          return this;
        }, c.default.Geometry.prototype._edgesToVertices = function() {
          this.lineVertices.length = 0;
          for (var e2 = this.lineNormals.length = 0; e2 < this.edges.length; e2++) {
            var t2 = this.vertices[this.edges[e2][0]], r2 = this.vertices[this.edges[e2][1]], n2 = r2.copy().sub(t2).normalize(), o2 = t2.array(), i = t2.array(), a = r2.array(), s = r2.array(), l = n2.array(), u = n2.array();
            l.push(1), u.push(-1), this.lineNormals.push(l, u, l, l, u, u), this.lineVertices.push(o2, i, a, a, i, s);
          }
          return this;
        }, c.default.Geometry.prototype.normalize = function() {
          if (0 < this.vertices.length) {
            for (var e2 = this.vertices[0].copy(), t2 = this.vertices[0].copy(), r2 = 0; r2 < this.vertices.length; r2++)
              e2.x = Math.max(e2.x, this.vertices[r2].x), t2.x = Math.min(t2.x, this.vertices[r2].x), e2.y = Math.max(e2.y, this.vertices[r2].y), t2.y = Math.min(t2.y, this.vertices[r2].y), e2.z = Math.max(e2.z, this.vertices[r2].z), t2.z = Math.min(t2.z, this.vertices[r2].z);
            for (var n2 = c.default.Vector.lerp(e2, t2, 0.5), o2 = c.default.Vector.sub(e2, t2), i = 200 / Math.max(Math.max(o2.x, o2.y), o2.z), a = 0; a < this.vertices.length; a++)
              this.vertices[a].sub(n2), this.vertices[a].mult(i);
          }
          return this;
        };
        var o = c.default.Geometry;
        r.default = o;
      }, { "../core/main": 260, "core-js/modules/es.string.sub": 189 }], 310: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.array.iterator"), e("core-js/modules/es.object.to-string"), e("core-js/modules/es.typed-array.float32-array"), e("core-js/modules/es.typed-array.copy-within"), e("core-js/modules/es.typed-array.every"), e("core-js/modules/es.typed-array.fill"), e("core-js/modules/es.typed-array.filter"), e("core-js/modules/es.typed-array.find"), e("core-js/modules/es.typed-array.find-index"), e("core-js/modules/es.typed-array.for-each"), e("core-js/modules/es.typed-array.includes"), e("core-js/modules/es.typed-array.index-of"), e("core-js/modules/es.typed-array.iterator"), e("core-js/modules/es.typed-array.join"), e("core-js/modules/es.typed-array.last-index-of"), e("core-js/modules/es.typed-array.map"), e("core-js/modules/es.typed-array.reduce"), e("core-js/modules/es.typed-array.reduce-right"), e("core-js/modules/es.typed-array.reverse"), e("core-js/modules/es.typed-array.set"), e("core-js/modules/es.typed-array.slice"), e("core-js/modules/es.typed-array.some"), e("core-js/modules/es.typed-array.sort"), e("core-js/modules/es.typed-array.subarray"), e("core-js/modules/es.typed-array.to-locale-string"), e("core-js/modules/es.typed-array.to-string"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, L = (n = e("../core/main")) && n.__esModule ? n : { default: n };
        var o = Array, P = function(e2) {
          return e2 instanceof Array;
        };
        typeof Float32Array != "undefined" && (o = Float32Array, P = function(e2) {
          return e2 instanceof Array || e2 instanceof Float32Array;
        }), L.default.Matrix = function() {
          for (var e2 = new Array(arguments.length), t2 = 0; t2 < e2.length; ++t2)
            e2[t2] = arguments[t2];
          return e2.length && e2[e2.length - 1] instanceof L.default && (this.p5 = e2[e2.length - 1]), e2[0] === "mat3" ? this.mat3 = Array.isArray(e2[1]) ? e2[1] : new o([1, 0, 0, 0, 1, 0, 0, 0, 1]) : this.mat4 = Array.isArray(e2[0]) ? e2[0] : new o([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]), this;
        }, L.default.Matrix.prototype.set = function(e2) {
          return e2 instanceof L.default.Matrix ? this.mat4 = e2.mat4 : P(e2) ? this.mat4 = e2 : arguments.length === 16 && (this.mat4[0] = e2, this.mat4[1] = arguments[1], this.mat4[2] = arguments[2], this.mat4[3] = arguments[3], this.mat4[4] = arguments[4], this.mat4[5] = arguments[5], this.mat4[6] = arguments[6], this.mat4[7] = arguments[7], this.mat4[8] = arguments[8], this.mat4[9] = arguments[9], this.mat4[10] = arguments[10], this.mat4[11] = arguments[11], this.mat4[12] = arguments[12], this.mat4[13] = arguments[13], this.mat4[14] = arguments[14], this.mat4[15] = arguments[15]), this;
        }, L.default.Matrix.prototype.get = function() {
          return new L.default.Matrix(this.mat4, this.p5);
        }, L.default.Matrix.prototype.copy = function() {
          var e2 = new L.default.Matrix(this.p5);
          return e2.mat4[0] = this.mat4[0], e2.mat4[1] = this.mat4[1], e2.mat4[2] = this.mat4[2], e2.mat4[3] = this.mat4[3], e2.mat4[4] = this.mat4[4], e2.mat4[5] = this.mat4[5], e2.mat4[6] = this.mat4[6], e2.mat4[7] = this.mat4[7], e2.mat4[8] = this.mat4[8], e2.mat4[9] = this.mat4[9], e2.mat4[10] = this.mat4[10], e2.mat4[11] = this.mat4[11], e2.mat4[12] = this.mat4[12], e2.mat4[13] = this.mat4[13], e2.mat4[14] = this.mat4[14], e2.mat4[15] = this.mat4[15], e2;
        }, L.default.Matrix.identity = function(e2) {
          return new L.default.Matrix(e2);
        }, L.default.Matrix.prototype.transpose = function(e2) {
          var t2, r2, n2, o2, i2, a;
          return e2 instanceof L.default.Matrix ? (t2 = e2.mat4[1], r2 = e2.mat4[2], n2 = e2.mat4[3], o2 = e2.mat4[6], i2 = e2.mat4[7], a = e2.mat4[11], this.mat4[0] = e2.mat4[0], this.mat4[1] = e2.mat4[4], this.mat4[2] = e2.mat4[8], this.mat4[3] = e2.mat4[12], this.mat4[4] = t2, this.mat4[5] = e2.mat4[5], this.mat4[6] = e2.mat4[9], this.mat4[7] = e2.mat4[13], this.mat4[8] = r2, this.mat4[9] = o2, this.mat4[10] = e2.mat4[10], this.mat4[11] = e2.mat4[14], this.mat4[12] = n2, this.mat4[13] = i2, this.mat4[14] = a, this.mat4[15] = e2.mat4[15]) : P(e2) && (t2 = e2[1], r2 = e2[2], n2 = e2[3], o2 = e2[6], i2 = e2[7], a = e2[11], this.mat4[0] = e2[0], this.mat4[1] = e2[4], this.mat4[2] = e2[8], this.mat4[3] = e2[12], this.mat4[4] = t2, this.mat4[5] = e2[5], this.mat4[6] = e2[9], this.mat4[7] = e2[13], this.mat4[8] = r2, this.mat4[9] = o2, this.mat4[10] = e2[10], this.mat4[11] = e2[14], this.mat4[12] = n2, this.mat4[13] = i2, this.mat4[14] = a, this.mat4[15] = e2[15]), this;
        }, L.default.Matrix.prototype.invert = function(e2) {
          var t2, r2, n2, o2, i2, a, s, l, u, c, d, f, h, p, y, m;
          e2 instanceof L.default.Matrix ? (t2 = e2.mat4[0], r2 = e2.mat4[1], n2 = e2.mat4[2], o2 = e2.mat4[3], i2 = e2.mat4[4], a = e2.mat4[5], s = e2.mat4[6], l = e2.mat4[7], u = e2.mat4[8], c = e2.mat4[9], d = e2.mat4[10], f = e2.mat4[11], h = e2.mat4[12], p = e2.mat4[13], y = e2.mat4[14], m = e2.mat4[15]) : P(e2) && (t2 = e2[0], r2 = e2[1], n2 = e2[2], o2 = e2[3], i2 = e2[4], a = e2[5], s = e2[6], l = e2[7], u = e2[8], c = e2[9], d = e2[10], f = e2[11], h = e2[12], p = e2[13], y = e2[14], m = e2[15]);
          var g = t2 * a - r2 * i2, v = t2 * s - n2 * i2, b = t2 * l - o2 * i2, _ = r2 * s - n2 * a, x = r2 * l - o2 * a, w = n2 * l - o2 * s, S = u * p - c * h, j = u * y - d * h, M = u * m - f * h, E = c * y - d * p, T = c * m - f * p, O = d * m - f * y, C = g * O - v * T + b * E + _ * M - x * j + w * S;
          return C ? (C = 1 / C, this.mat4[0] = (a * O - s * T + l * E) * C, this.mat4[1] = (n2 * T - r2 * O - o2 * E) * C, this.mat4[2] = (p * w - y * x + m * _) * C, this.mat4[3] = (d * x - c * w - f * _) * C, this.mat4[4] = (s * M - i2 * O - l * j) * C, this.mat4[5] = (t2 * O - n2 * M + o2 * j) * C, this.mat4[6] = (y * b - h * w - m * v) * C, this.mat4[7] = (u * w - d * b + f * v) * C, this.mat4[8] = (i2 * T - a * M + l * S) * C, this.mat4[9] = (r2 * M - t2 * T - o2 * S) * C, this.mat4[10] = (h * x - p * b + m * g) * C, this.mat4[11] = (c * b - u * x - f * g) * C, this.mat4[12] = (a * j - i2 * E - s * S) * C, this.mat4[13] = (t2 * E - r2 * j + n2 * S) * C, this.mat4[14] = (p * v - h * _ - y * g) * C, this.mat4[15] = (u * _ - c * v + d * g) * C, this) : null;
        }, L.default.Matrix.prototype.invert3x3 = function() {
          var e2 = this.mat3[0], t2 = this.mat3[1], r2 = this.mat3[2], n2 = this.mat3[3], o2 = this.mat3[4], i2 = this.mat3[5], a = this.mat3[6], s = this.mat3[7], l = this.mat3[8], u = l * o2 - i2 * s, c = -l * n2 + i2 * a, d = s * n2 - o2 * a, f = e2 * u + t2 * c + r2 * d;
          return f ? (f = 1 / f, this.mat3[0] = u * f, this.mat3[1] = (-l * t2 + r2 * s) * f, this.mat3[2] = (i2 * t2 - r2 * o2) * f, this.mat3[3] = c * f, this.mat3[4] = (l * e2 - r2 * a) * f, this.mat3[5] = (-i2 * e2 + r2 * n2) * f, this.mat3[6] = d * f, this.mat3[7] = (-s * e2 + t2 * a) * f, this.mat3[8] = (o2 * e2 - t2 * n2) * f, this) : null;
        }, L.default.Matrix.prototype.transpose3x3 = function(e2) {
          var t2 = e2[1], r2 = e2[2], n2 = e2[5];
          return this.mat3[1] = e2[3], this.mat3[2] = e2[6], this.mat3[3] = t2, this.mat3[5] = e2[7], this.mat3[6] = r2, this.mat3[7] = n2, this;
        }, L.default.Matrix.prototype.inverseTranspose = function(e2) {
          this.mat3 === void 0 ? console.error("sorry, this function only works with mat3") : (this.mat3[0] = e2.mat4[0], this.mat3[1] = e2.mat4[1], this.mat3[2] = e2.mat4[2], this.mat3[3] = e2.mat4[4], this.mat3[4] = e2.mat4[5], this.mat3[5] = e2.mat4[6], this.mat3[6] = e2.mat4[8], this.mat3[7] = e2.mat4[9], this.mat3[8] = e2.mat4[10]);
          var t2 = this.invert3x3();
          if (t2)
            t2.transpose3x3(this.mat3);
          else
            for (var r2 = 0; r2 < 9; r2++)
              this.mat3[r2] = 0;
          return this;
        }, L.default.Matrix.prototype.determinant = function() {
          var e2 = this.mat4[0] * this.mat4[5] - this.mat4[1] * this.mat4[4], t2 = this.mat4[0] * this.mat4[6] - this.mat4[2] * this.mat4[4], r2 = this.mat4[0] * this.mat4[7] - this.mat4[3] * this.mat4[4], n2 = this.mat4[1] * this.mat4[6] - this.mat4[2] * this.mat4[5], o2 = this.mat4[1] * this.mat4[7] - this.mat4[3] * this.mat4[5], i2 = this.mat4[2] * this.mat4[7] - this.mat4[3] * this.mat4[6], a = this.mat4[8] * this.mat4[13] - this.mat4[9] * this.mat4[12], s = this.mat4[8] * this.mat4[14] - this.mat4[10] * this.mat4[12], l = this.mat4[8] * this.mat4[15] - this.mat4[11] * this.mat4[12], u = this.mat4[9] * this.mat4[14] - this.mat4[10] * this.mat4[13], c = this.mat4[9] * this.mat4[15] - this.mat4[11] * this.mat4[13];
          return e2 * (this.mat4[10] * this.mat4[15] - this.mat4[11] * this.mat4[14]) - t2 * c + r2 * u + n2 * l - o2 * s + i2 * a;
        }, L.default.Matrix.prototype.mult = function(e2) {
          var t2;
          if (e2 === this || e2 === this.mat4)
            t2 = this.copy().mat4;
          else if (e2 instanceof L.default.Matrix)
            t2 = e2.mat4;
          else if (P(e2))
            t2 = e2;
          else {
            if (arguments.length !== 16)
              return;
            t2 = arguments;
          }
          var r2 = this.mat4[0], n2 = this.mat4[1], o2 = this.mat4[2], i2 = this.mat4[3];
          return this.mat4[0] = r2 * t2[0] + n2 * t2[4] + o2 * t2[8] + i2 * t2[12], this.mat4[1] = r2 * t2[1] + n2 * t2[5] + o2 * t2[9] + i2 * t2[13], this.mat4[2] = r2 * t2[2] + n2 * t2[6] + o2 * t2[10] + i2 * t2[14], this.mat4[3] = r2 * t2[3] + n2 * t2[7] + o2 * t2[11] + i2 * t2[15], r2 = this.mat4[4], n2 = this.mat4[5], o2 = this.mat4[6], i2 = this.mat4[7], this.mat4[4] = r2 * t2[0] + n2 * t2[4] + o2 * t2[8] + i2 * t2[12], this.mat4[5] = r2 * t2[1] + n2 * t2[5] + o2 * t2[9] + i2 * t2[13], this.mat4[6] = r2 * t2[2] + n2 * t2[6] + o2 * t2[10] + i2 * t2[14], this.mat4[7] = r2 * t2[3] + n2 * t2[7] + o2 * t2[11] + i2 * t2[15], r2 = this.mat4[8], n2 = this.mat4[9], o2 = this.mat4[10], i2 = this.mat4[11], this.mat4[8] = r2 * t2[0] + n2 * t2[4] + o2 * t2[8] + i2 * t2[12], this.mat4[9] = r2 * t2[1] + n2 * t2[5] + o2 * t2[9] + i2 * t2[13], this.mat4[10] = r2 * t2[2] + n2 * t2[6] + o2 * t2[10] + i2 * t2[14], this.mat4[11] = r2 * t2[3] + n2 * t2[7] + o2 * t2[11] + i2 * t2[15], r2 = this.mat4[12], n2 = this.mat4[13], o2 = this.mat4[14], i2 = this.mat4[15], this.mat4[12] = r2 * t2[0] + n2 * t2[4] + o2 * t2[8] + i2 * t2[12], this.mat4[13] = r2 * t2[1] + n2 * t2[5] + o2 * t2[9] + i2 * t2[13], this.mat4[14] = r2 * t2[2] + n2 * t2[6] + o2 * t2[10] + i2 * t2[14], this.mat4[15] = r2 * t2[3] + n2 * t2[7] + o2 * t2[11] + i2 * t2[15], this;
        }, L.default.Matrix.prototype.apply = function(e2) {
          var t2;
          if (e2 === this || e2 === this.mat4)
            t2 = this.copy().mat4;
          else if (e2 instanceof L.default.Matrix)
            t2 = e2.mat4;
          else if (P(e2))
            t2 = e2;
          else {
            if (arguments.length !== 16)
              return;
            t2 = arguments;
          }
          var r2 = this.mat4, n2 = r2[0], o2 = r2[4], i2 = r2[8], a = r2[12];
          r2[0] = t2[0] * n2 + t2[1] * o2 + t2[2] * i2 + t2[3] * a, r2[4] = t2[4] * n2 + t2[5] * o2 + t2[6] * i2 + t2[7] * a, r2[8] = t2[8] * n2 + t2[9] * o2 + t2[10] * i2 + t2[11] * a, r2[12] = t2[12] * n2 + t2[13] * o2 + t2[14] * i2 + t2[15] * a;
          var s = r2[1], l = r2[5], u = r2[9], c = r2[13];
          r2[1] = t2[0] * s + t2[1] * l + t2[2] * u + t2[3] * c, r2[5] = t2[4] * s + t2[5] * l + t2[6] * u + t2[7] * c, r2[9] = t2[8] * s + t2[9] * l + t2[10] * u + t2[11] * c, r2[13] = t2[12] * s + t2[13] * l + t2[14] * u + t2[15] * c;
          var d = r2[2], f = r2[6], h = r2[10], p = r2[14];
          r2[2] = t2[0] * d + t2[1] * f + t2[2] * h + t2[3] * p, r2[6] = t2[4] * d + t2[5] * f + t2[6] * h + t2[7] * p, r2[10] = t2[8] * d + t2[9] * f + t2[10] * h + t2[11] * p, r2[14] = t2[12] * d + t2[13] * f + t2[14] * h + t2[15] * p;
          var y = r2[3], m = r2[7], g = r2[11], v = r2[15];
          return r2[3] = t2[0] * y + t2[1] * m + t2[2] * g + t2[3] * v, r2[7] = t2[4] * y + t2[5] * m + t2[6] * g + t2[7] * v, r2[11] = t2[8] * y + t2[9] * m + t2[10] * g + t2[11] * v, r2[15] = t2[12] * y + t2[13] * m + t2[14] * g + t2[15] * v, this;
        }, L.default.Matrix.prototype.scale = function(e2, t2, r2) {
          return e2 instanceof L.default.Vector ? (t2 = e2.y, r2 = e2.z, e2 = e2.x) : e2 instanceof Array && (t2 = e2[1], r2 = e2[2], e2 = e2[0]), this.mat4[0] *= e2, this.mat4[1] *= e2, this.mat4[2] *= e2, this.mat4[3] *= e2, this.mat4[4] *= t2, this.mat4[5] *= t2, this.mat4[6] *= t2, this.mat4[7] *= t2, this.mat4[8] *= r2, this.mat4[9] *= r2, this.mat4[10] *= r2, this.mat4[11] *= r2, this;
        }, L.default.Matrix.prototype.rotate = function(e2, t2, r2, n2) {
          t2 instanceof L.default.Vector ? (r2 = t2.y, n2 = t2.z, t2 = t2.x) : t2 instanceof Array && (r2 = t2[1], n2 = t2[2], t2 = t2[0]);
          var o2 = Math.sqrt(t2 * t2 + r2 * r2 + n2 * n2);
          t2 *= 1 / o2, r2 *= 1 / o2, n2 *= 1 / o2;
          var i2 = this.mat4[0], a = this.mat4[1], s = this.mat4[2], l = this.mat4[3], u = this.mat4[4], c = this.mat4[5], d = this.mat4[6], f = this.mat4[7], h = this.mat4[8], p = this.mat4[9], y = this.mat4[10], m = this.mat4[11], g = Math.sin(e2), v = Math.cos(e2), b = 1 - v, _ = t2 * t2 * b + v, x = r2 * t2 * b + n2 * g, w = n2 * t2 * b - r2 * g, S = t2 * r2 * b - n2 * g, j = r2 * r2 * b + v, M = n2 * r2 * b + t2 * g, E = t2 * n2 * b + r2 * g, T = r2 * n2 * b - t2 * g, O = n2 * n2 * b + v;
          return this.mat4[0] = i2 * _ + u * x + h * w, this.mat4[1] = a * _ + c * x + p * w, this.mat4[2] = s * _ + d * x + y * w, this.mat4[3] = l * _ + f * x + m * w, this.mat4[4] = i2 * S + u * j + h * M, this.mat4[5] = a * S + c * j + p * M, this.mat4[6] = s * S + d * j + y * M, this.mat4[7] = l * S + f * j + m * M, this.mat4[8] = i2 * E + u * T + h * O, this.mat4[9] = a * E + c * T + p * O, this.mat4[10] = s * E + d * T + y * O, this.mat4[11] = l * E + f * T + m * O, this;
        }, L.default.Matrix.prototype.translate = function(e2) {
          var t2 = e2[0], r2 = e2[1], n2 = e2[2] || 0;
          this.mat4[12] += this.mat4[0] * t2 + this.mat4[4] * r2 + this.mat4[8] * n2, this.mat4[13] += this.mat4[1] * t2 + this.mat4[5] * r2 + this.mat4[9] * n2, this.mat4[14] += this.mat4[2] * t2 + this.mat4[6] * r2 + this.mat4[10] * n2, this.mat4[15] += this.mat4[3] * t2 + this.mat4[7] * r2 + this.mat4[11] * n2;
        }, L.default.Matrix.prototype.rotateX = function(e2) {
          this.rotate(e2, 1, 0, 0);
        }, L.default.Matrix.prototype.rotateY = function(e2) {
          this.rotate(e2, 0, 1, 0);
        }, L.default.Matrix.prototype.rotateZ = function(e2) {
          this.rotate(e2, 0, 0, 1);
        }, L.default.Matrix.prototype.perspective = function(e2, t2, r2, n2) {
          var o2 = 1 / Math.tan(e2 / 2), i2 = 1 / (r2 - n2);
          return this.mat4[0] = o2 / t2, this.mat4[1] = 0, this.mat4[2] = 0, this.mat4[3] = 0, this.mat4[4] = 0, this.mat4[5] = o2, this.mat4[6] = 0, this.mat4[7] = 0, this.mat4[8] = 0, this.mat4[9] = 0, this.mat4[10] = (n2 + r2) * i2, this.mat4[11] = -1, this.mat4[12] = 0, this.mat4[13] = 0, this.mat4[14] = 2 * n2 * r2 * i2, this.mat4[15] = 0, this;
        }, L.default.Matrix.prototype.ortho = function(e2, t2, r2, n2, o2, i2) {
          var a = 1 / (e2 - t2), s = 1 / (r2 - n2), l = 1 / (o2 - i2);
          return this.mat4[0] = -2 * a, this.mat4[1] = 0, this.mat4[2] = 0, this.mat4[3] = 0, this.mat4[4] = 0, this.mat4[5] = -2 * s, this.mat4[6] = 0, this.mat4[7] = 0, this.mat4[8] = 0, this.mat4[9] = 0, this.mat4[10] = 2 * l, this.mat4[11] = 0, this.mat4[12] = (e2 + t2) * a, this.mat4[13] = (n2 + r2) * s, this.mat4[14] = (i2 + o2) * l, this.mat4[15] = 1, this;
        };
        var i = L.default.Matrix;
        r.default = i;
      }, { "../core/main": 260, "core-js/modules/es.array.iterator": 156, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.typed-array.copy-within": 194, "core-js/modules/es.typed-array.every": 195, "core-js/modules/es.typed-array.fill": 196, "core-js/modules/es.typed-array.filter": 197, "core-js/modules/es.typed-array.find": 199, "core-js/modules/es.typed-array.find-index": 198, "core-js/modules/es.typed-array.float32-array": 200, "core-js/modules/es.typed-array.for-each": 202, "core-js/modules/es.typed-array.includes": 203, "core-js/modules/es.typed-array.index-of": 204, "core-js/modules/es.typed-array.iterator": 207, "core-js/modules/es.typed-array.join": 208, "core-js/modules/es.typed-array.last-index-of": 209, "core-js/modules/es.typed-array.map": 210, "core-js/modules/es.typed-array.reduce": 212, "core-js/modules/es.typed-array.reduce-right": 211, "core-js/modules/es.typed-array.reverse": 213, "core-js/modules/es.typed-array.set": 214, "core-js/modules/es.typed-array.slice": 215, "core-js/modules/es.typed-array.some": 216, "core-js/modules/es.typed-array.sort": 217, "core-js/modules/es.typed-array.subarray": 218, "core-js/modules/es.typed-array.to-locale-string": 219, "core-js/modules/es.typed-array.to-string": 220 }], 311: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.array.map"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, o = (n = e("../core/main")) && n.__esModule ? n : { default: n };
        o.default.RenderBuffer = function(e2, t2, r2, n2, o2, i2) {
          this.size = e2, this.src = t2, this.dst = r2, this.attr = n2, this._renderer = o2, this.map = i2;
        }, o.default.RenderBuffer.prototype._prepareBuffer = function(e2, t2) {
          var r2, n2 = t2.attributes, o2 = this._renderer.GL;
          r2 = e2.model ? e2.model : e2;
          var i2 = n2[this.attr];
          if (i2) {
            var a = e2[this.dst], s = r2[this.src];
            if (0 < s.length) {
              var l = !a;
              if (l && (e2[this.dst] = a = o2.createBuffer()), o2.bindBuffer(o2.ARRAY_BUFFER, a), l || r2.dirtyFlags[this.src] !== false) {
                var u = this.map, c = u ? u(s) : s;
                this._renderer._bindBuffer(a, o2.ARRAY_BUFFER, c), r2.dirtyFlags[this.src] = false;
              }
              t2.enableAttrib(i2, this.size);
            }
          }
        };
        var i = o.default.RenderBuffer;
        r.default = i;
      }, { "../core/main": 260, "core-js/modules/es.array.map": 159 }], 312: [function(e, t, r) {
        "use strict";
        function a(e2) {
          return (a = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e3) {
            return typeof e3;
          } : function(e3) {
            return e3 && typeof Symbol == "function" && e3.constructor === Symbol && e3 !== Symbol.prototype ? "symbol" : typeof e3;
          })(e2);
        }
        e("core-js/modules/es.symbol"), e("core-js/modules/es.symbol.description"), e("core-js/modules/es.symbol.iterator"), e("core-js/modules/es.array.fill"), e("core-js/modules/es.array.iterator"), e("core-js/modules/es.object.to-string"), e("core-js/modules/es.string.iterator"), e("core-js/modules/es.typed-array.float32-array"), e("core-js/modules/es.typed-array.copy-within"), e("core-js/modules/es.typed-array.every"), e("core-js/modules/es.typed-array.fill"), e("core-js/modules/es.typed-array.filter"), e("core-js/modules/es.typed-array.find"), e("core-js/modules/es.typed-array.find-index"), e("core-js/modules/es.typed-array.for-each"), e("core-js/modules/es.typed-array.includes"), e("core-js/modules/es.typed-array.index-of"), e("core-js/modules/es.typed-array.iterator"), e("core-js/modules/es.typed-array.join"), e("core-js/modules/es.typed-array.last-index-of"), e("core-js/modules/es.typed-array.map"), e("core-js/modules/es.typed-array.reduce"), e("core-js/modules/es.typed-array.reduce-right"), e("core-js/modules/es.typed-array.reverse"), e("core-js/modules/es.typed-array.set"), e("core-js/modules/es.typed-array.slice"), e("core-js/modules/es.typed-array.some"), e("core-js/modules/es.typed-array.sort"), e("core-js/modules/es.typed-array.subarray"), e("core-js/modules/es.typed-array.to-locale-string"), e("core-js/modules/es.typed-array.to-string"), e("core-js/modules/web.dom-collections.iterator"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, s = (n = e("../core/main")) && n.__esModule ? n : { default: n }, l = function(e2) {
          if (e2 && e2.__esModule)
            return e2;
          if (e2 === null || a(e2) !== "object" && typeof e2 != "function")
            return { default: e2 };
          var t2 = u();
          if (t2 && t2.has(e2))
            return t2.get(e2);
          var r2 = {}, n2 = Object.defineProperty && Object.getOwnPropertyDescriptor;
          for (var o2 in e2)
            if (Object.prototype.hasOwnProperty.call(e2, o2)) {
              var i = n2 ? Object.getOwnPropertyDescriptor(e2, o2) : null;
              i && (i.get || i.set) ? Object.defineProperty(r2, o2, i) : r2[o2] = e2[o2];
            }
          r2.default = e2, t2 && t2.set(e2, r2);
          return r2;
        }(e("../core/constants"));
        function u() {
          if (typeof WeakMap != "function")
            return null;
          var e2 = new WeakMap();
          return u = function() {
            return e2;
          }, e2;
        }
        e("./p5.RenderBuffer"), s.default.RendererGL.prototype.beginShape = function(e2) {
          return this.immediateMode.shapeMode = e2 !== void 0 ? e2 : l.TRIANGLE_FAN, this.immediateMode.geometry.reset(), this;
        }, s.default.RendererGL.prototype.vertex = function(e2, t2) {
          var r2, n2, o2;
          r2 = n2 = o2 = 0, arguments.length === 3 ? r2 = arguments[2] : arguments.length === 4 ? (n2 = arguments[2], o2 = arguments[3]) : arguments.length === 5 && (r2 = arguments[2], n2 = arguments[3], o2 = arguments[4]);
          var i = new s.default.Vector(e2, t2, r2);
          this.immediateMode.geometry.vertices.push(i), this.immediateMode.geometry.vertexNormals.push(this._currentNormal);
          var a2 = this.curFillColor || [0.5, 0.5, 0.5, 1];
          return this.immediateMode.geometry.vertexColors.push(a2[0], a2[1], a2[2], a2[3]), this.textureMode === l.IMAGE && (this._tex !== null ? 0 < this._tex.width && 0 < this._tex.height && (n2 /= this._tex.width, o2 /= this._tex.height) : this._tex === null && 4 <= arguments.length && console.warn("You must first call texture() before using vertex() with image based u and v coordinates")), this.immediateMode.geometry.uvs.push(n2, o2), this.immediateMode._bezierVertex[0] = e2, this.immediateMode._bezierVertex[1] = t2, this.immediateMode._bezierVertex[2] = r2, this.immediateMode._quadraticVertex[0] = e2, this.immediateMode._quadraticVertex[1] = t2, this.immediateMode._quadraticVertex[2] = r2, this;
        }, s.default.RendererGL.prototype.normal = function(e2, t2, r2) {
          return e2 instanceof s.default.Vector ? this._currentNormal = e2 : this._currentNormal = new s.default.Vector(e2, t2, r2), this;
        }, s.default.RendererGL.prototype.endShape = function(e2, t2, r2, n2, o2, i) {
          return this.immediateMode.shapeMode === l.POINTS ? this._drawPoints(this.immediateMode.geometry.vertices, this.immediateMode.buffers.point) : (this._processVertices.apply(this, arguments), this._doFill && 1 < this.immediateMode.geometry.vertices.length && this._drawImmediateFill(), this._doStroke && 1 < this.immediateMode.geometry.lineVertices.length && this._drawImmediateStroke(), this.isBezier = false, this.isQuadratic = false, this.isCurve = false, this.immediateMode._bezierVertex.length = 0, this.immediateMode._quadraticVertex.length = 0, this.immediateMode._curveVertex.length = 0), this;
        }, s.default.RendererGL.prototype._processVertices = function(e2) {
          if (this.immediateMode.geometry.vertices.length !== 0) {
            var t2 = this._doStroke && this.drawMode !== l.TEXTURE, r2 = e2 === l.CLOSE;
            t2 && (this.immediateMode.geometry.edges = this._calculateEdges(this.immediateMode.shapeMode, this.immediateMode.geometry.vertices, r2), this.immediateMode.geometry._edgesToVertices());
            var n2 = this.immediateMode.shapeMode === l.TESS;
            (this.isBezier || this.isQuadratic || this.isCurve || n2) && this.immediateMode.shapeMode !== l.LINES && this._tesselateShape();
          }
        }, s.default.RendererGL.prototype._calculateEdges = function(e2, t2, r2) {
          var n2 = [], o2 = 0;
          switch (e2) {
            case l.TRIANGLE_STRIP:
              for (o2 = 0; o2 < t2.length - 2; o2++)
                n2.push([o2, o2 + 1]), n2.push([o2, o2 + 2]);
              n2.push([o2, o2 + 1]);
              break;
            case l.TRIANGLES:
              for (o2 = 0; o2 < t2.length - 2; o2 += 3)
                n2.push([o2, o2 + 1]), n2.push([o2 + 1, o2 + 2]), n2.push([o2 + 2, o2]);
              break;
            case l.LINES:
              for (o2 = 0; o2 < t2.length - 1; o2 += 2)
                n2.push([o2, o2 + 1]);
              break;
            default:
              for (o2 = 0; o2 < t2.length - 1; o2++)
                n2.push([o2, o2 + 1]);
          }
          return r2 && n2.push([t2.length - 1, 0]), n2;
        }, s.default.RendererGL.prototype._tesselateShape = function() {
          this.immediateMode.shapeMode = l.TRIANGLES;
          var e2 = [new Float32Array(this._vToNArray(this.immediateMode.geometry.vertices))], t2 = this._triangulate(e2);
          this.immediateMode.geometry.vertices = [];
          for (var r2 = 0, n2 = t2.length; r2 < n2; r2 += 3)
            this.vertex(t2[r2], t2[r2 + 1], t2[r2 + 2]);
        }, s.default.RendererGL.prototype._drawImmediateFill = function() {
          var e2 = this.GL, t2 = this._getImmediateFillShader();
          this._setFillUniforms(t2);
          var r2 = true, n2 = false, o2 = void 0;
          try {
            for (var i, a2 = this.immediateMode.buffers.fill[Symbol.iterator](); !(r2 = (i = a2.next()).done); r2 = true) {
              i.value._prepareBuffer(this.immediateMode.geometry, t2);
            }
          } catch (e3) {
            n2 = true, o2 = e3;
          } finally {
            try {
              r2 || a2.return == null || a2.return();
            } finally {
              if (n2)
                throw o2;
            }
          }
          this.immediateMode.shapeMode !== l.LINE_STRIP && this.immediateMode.shapeMode !== l.LINES || (this.immediateMode.shapeMode = l.TRIANGLE_FAN), this._applyColorBlend(this.curFillColor), e2.drawArrays(this.immediateMode.shapeMode, 0, this.immediateMode.geometry.vertices.length), t2.unbindShader();
        }, s.default.RendererGL.prototype._drawImmediateStroke = function() {
          var e2 = this.GL, t2 = this._getImmediateStrokeShader();
          this._setStrokeUniforms(t2);
          var r2 = true, n2 = false, o2 = void 0;
          try {
            for (var i, a2 = this.immediateMode.buffers.stroke[Symbol.iterator](); !(r2 = (i = a2.next()).done); r2 = true) {
              i.value._prepareBuffer(this.immediateMode.geometry, t2);
            }
          } catch (e3) {
            n2 = true, o2 = e3;
          } finally {
            try {
              r2 || a2.return == null || a2.return();
            } finally {
              if (n2)
                throw o2;
            }
          }
          this._applyColorBlend(this.curStrokeColor), e2.drawArrays(e2.TRIANGLES, 0, this.immediateMode.geometry.lineVertices.length), t2.unbindShader();
        };
        var o = s.default.RendererGL;
        r.default = o;
      }, { "../core/constants": 250, "../core/main": 260, "./p5.RenderBuffer": 311, "core-js/modules/es.array.fill": 150, "core-js/modules/es.array.iterator": 156, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.string.iterator": 183, "core-js/modules/es.symbol": 193, "core-js/modules/es.symbol.description": 191, "core-js/modules/es.symbol.iterator": 192, "core-js/modules/es.typed-array.copy-within": 194, "core-js/modules/es.typed-array.every": 195, "core-js/modules/es.typed-array.fill": 196, "core-js/modules/es.typed-array.filter": 197, "core-js/modules/es.typed-array.find": 199, "core-js/modules/es.typed-array.find-index": 198, "core-js/modules/es.typed-array.float32-array": 200, "core-js/modules/es.typed-array.for-each": 202, "core-js/modules/es.typed-array.includes": 203, "core-js/modules/es.typed-array.index-of": 204, "core-js/modules/es.typed-array.iterator": 207, "core-js/modules/es.typed-array.join": 208, "core-js/modules/es.typed-array.last-index-of": 209, "core-js/modules/es.typed-array.map": 210, "core-js/modules/es.typed-array.reduce": 212, "core-js/modules/es.typed-array.reduce-right": 211, "core-js/modules/es.typed-array.reverse": 213, "core-js/modules/es.typed-array.set": 214, "core-js/modules/es.typed-array.slice": 215, "core-js/modules/es.typed-array.some": 216, "core-js/modules/es.typed-array.sort": 217, "core-js/modules/es.typed-array.subarray": 218, "core-js/modules/es.typed-array.to-locale-string": 219, "core-js/modules/es.typed-array.to-string": 220, "core-js/modules/web.dom-collections.iterator": 226 }], 313: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.symbol"), e("core-js/modules/es.symbol.description"), e("core-js/modules/es.symbol.iterator"), e("core-js/modules/es.array.fill"), e("core-js/modules/es.array.iterator"), e("core-js/modules/es.array.some"), e("core-js/modules/es.object.keys"), e("core-js/modules/es.object.to-string"), e("core-js/modules/es.string.iterator"), e("core-js/modules/es.typed-array.float32-array"), e("core-js/modules/es.typed-array.uint16-array"), e("core-js/modules/es.typed-array.uint32-array"), e("core-js/modules/es.typed-array.copy-within"), e("core-js/modules/es.typed-array.every"), e("core-js/modules/es.typed-array.fill"), e("core-js/modules/es.typed-array.filter"), e("core-js/modules/es.typed-array.find"), e("core-js/modules/es.typed-array.find-index"), e("core-js/modules/es.typed-array.for-each"), e("core-js/modules/es.typed-array.includes"), e("core-js/modules/es.typed-array.index-of"), e("core-js/modules/es.typed-array.iterator"), e("core-js/modules/es.typed-array.join"), e("core-js/modules/es.typed-array.last-index-of"), e("core-js/modules/es.typed-array.map"), e("core-js/modules/es.typed-array.reduce"), e("core-js/modules/es.typed-array.reduce-right"), e("core-js/modules/es.typed-array.reverse"), e("core-js/modules/es.typed-array.set"), e("core-js/modules/es.typed-array.slice"), e("core-js/modules/es.typed-array.some"), e("core-js/modules/es.typed-array.sort"), e("core-js/modules/es.typed-array.subarray"), e("core-js/modules/es.typed-array.to-locale-string"), e("core-js/modules/es.typed-array.to-string"), e("core-js/modules/web.dom-collections.iterator"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, l = (n = e("../core/main")) && n.__esModule ? n : { default: n };
        e("./p5.RendererGL"), e("./p5.RenderBuffer");
        var o = 0;
        l.default.RendererGL.prototype._initBufferDefaults = function(e2) {
          if (this._freeBuffers(e2), 1e3 < ++o) {
            var t2 = Object.keys(this.retainedMode.geometry)[0];
            delete this.retainedMode.geometry[t2], o--;
          }
          return this.retainedMode.geometry[e2] = {};
        }, l.default.RendererGL.prototype._freeBuffers = function(e2) {
          var s = this.retainedMode.geometry[e2];
          if (s) {
            delete this.retainedMode.geometry[e2], o--;
            var l2 = this.GL;
            s.indexBuffer && l2.deleteBuffer(s.indexBuffer), t2(this.retainedMode.buffers.stroke), t2(this.retainedMode.buffers.fill);
          }
          function t2(e3) {
            var t3 = true, r2 = false, n2 = void 0;
            try {
              for (var o2, i2 = e3[Symbol.iterator](); !(t3 = (o2 = i2.next()).done); t3 = true) {
                var a = o2.value;
                s[a.dst] && (l2.deleteBuffer(s[a.dst]), s[a.dst] = null);
              }
            } catch (e4) {
              r2 = true, n2 = e4;
            } finally {
              try {
                t3 || i2.return == null || i2.return();
              } finally {
                if (r2)
                  throw n2;
              }
            }
          }
        }, l.default.RendererGL.prototype.createBuffers = function(e2, t2) {
          var r2 = this.GL, n2 = this._initBufferDefaults(e2);
          n2.model = t2;
          var o2 = n2.indexBuffer;
          if (t2.faces.length) {
            o2 = o2 || (n2.indexBuffer = r2.createBuffer());
            var i2 = l.default.RendererGL.prototype._flatten(t2.faces), a = i2.some(function(e3) {
              return 65535 < e3;
            }), s = a ? Uint32Array : Uint16Array;
            this._bindBuffer(o2, r2.ELEMENT_ARRAY_BUFFER, i2, s), n2.indexBufferType = a ? r2.UNSIGNED_INT : r2.UNSIGNED_SHORT, n2.vertexCount = 3 * t2.faces.length;
          } else
            o2 && (r2.deleteBuffer(o2), n2.indexBuffer = null), n2.vertexCount = t2.vertices ? t2.vertices.length : 0;
          return n2.lineVertexCount = t2.lineVertices ? t2.lineVertices.length : 0, n2;
        }, l.default.RendererGL.prototype.drawBuffers = function(e2) {
          var t2 = this.GL, r2 = this.retainedMode.geometry[e2];
          if (this._doStroke && 0 < r2.lineVertexCount) {
            var n2 = this._getRetainedStrokeShader();
            this._setStrokeUniforms(n2);
            var o2 = true, i2 = false, a = void 0;
            try {
              for (var s, l2 = this.retainedMode.buffers.stroke[Symbol.iterator](); !(o2 = (s = l2.next()).done); o2 = true) {
                s.value._prepareBuffer(r2, n2);
              }
            } catch (e3) {
              i2 = true, a = e3;
            } finally {
              try {
                o2 || l2.return == null || l2.return();
              } finally {
                if (i2)
                  throw a;
              }
            }
            this._applyColorBlend(this.curStrokeColor), this._drawArrays(t2.TRIANGLES, e2), n2.unbindShader();
          }
          if (this._doFill) {
            var u = this._getRetainedFillShader();
            this._setFillUniforms(u);
            var c = true, d = false, f = void 0;
            try {
              for (var h, p = this.retainedMode.buffers.fill[Symbol.iterator](); !(c = (h = p.next()).done); c = true) {
                h.value._prepareBuffer(r2, u);
              }
            } catch (e3) {
              d = true, f = e3;
            } finally {
              try {
                c || p.return == null || p.return();
              } finally {
                if (d)
                  throw f;
              }
            }
            r2.indexBuffer && this._bindBuffer(r2.indexBuffer, t2.ELEMENT_ARRAY_BUFFER), this._applyColorBlend(this.curFillColor), this._drawElements(t2.TRIANGLES, e2), u.unbindShader();
          }
          return this;
        }, l.default.RendererGL.prototype.drawBuffersScaled = function(e2, t2, r2, n2) {
          var o2 = this.uMVMatrix.copy();
          try {
            this.uMVMatrix.scale(t2, r2, n2), this.drawBuffers(e2);
          } finally {
            this.uMVMatrix = o2;
          }
        }, l.default.RendererGL.prototype._drawArrays = function(e2, t2) {
          return this.GL.drawArrays(e2, 0, this.retainedMode.geometry[t2].lineVertexCount), this;
        }, l.default.RendererGL.prototype._drawElements = function(e2, t2) {
          var r2 = this.retainedMode.geometry[t2], n2 = this.GL;
          if (r2.indexBuffer) {
            if (r2.indexBufferType === n2.UNSIGNED_INT && !n2.getExtension("OES_element_index_uint"))
              throw new Error("Unable to render a 3d model with > 65535 triangles. Your web browser does not support the WebGL Extension OES_element_index_uint.");
            n2.drawElements(n2.TRIANGLES, r2.vertexCount, r2.indexBufferType, 0);
          } else
            n2.drawArrays(e2 || n2.TRIANGLES, 0, r2.vertexCount);
        }, l.default.RendererGL.prototype._drawPoints = function(e2, t2) {
          var r2 = this.GL, n2 = this._getImmediatePointShader();
          this._setPointUniforms(n2), this._bindBuffer(t2, r2.ARRAY_BUFFER, this._vToNArray(e2), Float32Array, r2.STATIC_DRAW), n2.enableAttrib(n2.attributes.aPosition, 3), r2.drawArrays(r2.Points, 0, e2.length), n2.unbindShader();
        };
        var i = l.default.RendererGL;
        r.default = i;
      }, { "../core/main": 260, "./p5.RenderBuffer": 311, "./p5.RendererGL": 314, "core-js/modules/es.array.fill": 150, "core-js/modules/es.array.iterator": 156, "core-js/modules/es.array.some": 161, "core-js/modules/es.object.keys": 173, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.string.iterator": 183, "core-js/modules/es.symbol": 193, "core-js/modules/es.symbol.description": 191, "core-js/modules/es.symbol.iterator": 192, "core-js/modules/es.typed-array.copy-within": 194, "core-js/modules/es.typed-array.every": 195, "core-js/modules/es.typed-array.fill": 196, "core-js/modules/es.typed-array.filter": 197, "core-js/modules/es.typed-array.find": 199, "core-js/modules/es.typed-array.find-index": 198, "core-js/modules/es.typed-array.float32-array": 200, "core-js/modules/es.typed-array.for-each": 202, "core-js/modules/es.typed-array.includes": 203, "core-js/modules/es.typed-array.index-of": 204, "core-js/modules/es.typed-array.iterator": 207, "core-js/modules/es.typed-array.join": 208, "core-js/modules/es.typed-array.last-index-of": 209, "core-js/modules/es.typed-array.map": 210, "core-js/modules/es.typed-array.reduce": 212, "core-js/modules/es.typed-array.reduce-right": 211, "core-js/modules/es.typed-array.reverse": 213, "core-js/modules/es.typed-array.set": 214, "core-js/modules/es.typed-array.slice": 215, "core-js/modules/es.typed-array.some": 216, "core-js/modules/es.typed-array.sort": 217, "core-js/modules/es.typed-array.subarray": 218, "core-js/modules/es.typed-array.to-locale-string": 219, "core-js/modules/es.typed-array.to-string": 220, "core-js/modules/es.typed-array.uint16-array": 221, "core-js/modules/es.typed-array.uint32-array": 222, "core-js/modules/web.dom-collections.iterator": 226 }], 314: [function(e, t, r) {
        "use strict";
        function a(e2) {
          return (a = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e3) {
            return typeof e3;
          } : function(e3) {
            return e3 && typeof Symbol == "function" && e3.constructor === Symbol && e3 !== Symbol.prototype ? "symbol" : typeof e3;
          })(e2);
        }
        e("core-js/modules/es.symbol"), e("core-js/modules/es.symbol.description"), e("core-js/modules/es.symbol.iterator"), e("core-js/modules/es.array.concat"), e("core-js/modules/es.array.fill"), e("core-js/modules/es.array.filter"), e("core-js/modules/es.array.from"), e("core-js/modules/es.array.includes"), e("core-js/modules/es.array.iterator"), e("core-js/modules/es.array.slice"), e("core-js/modules/es.object.assign"), e("core-js/modules/es.object.to-string"), e("core-js/modules/es.regexp.to-string"), e("core-js/modules/es.string.includes"), e("core-js/modules/es.string.iterator"), e("core-js/modules/es.typed-array.float32-array"), e("core-js/modules/es.typed-array.float64-array"), e("core-js/modules/es.typed-array.int16-array"), e("core-js/modules/es.typed-array.uint8-array"), e("core-js/modules/es.typed-array.uint16-array"), e("core-js/modules/es.typed-array.uint32-array"), e("core-js/modules/es.typed-array.copy-within"), e("core-js/modules/es.typed-array.every"), e("core-js/modules/es.typed-array.fill"), e("core-js/modules/es.typed-array.filter"), e("core-js/modules/es.typed-array.find"), e("core-js/modules/es.typed-array.find-index"), e("core-js/modules/es.typed-array.for-each"), e("core-js/modules/es.typed-array.includes"), e("core-js/modules/es.typed-array.index-of"), e("core-js/modules/es.typed-array.iterator"), e("core-js/modules/es.typed-array.join"), e("core-js/modules/es.typed-array.last-index-of"), e("core-js/modules/es.typed-array.map"), e("core-js/modules/es.typed-array.reduce"), e("core-js/modules/es.typed-array.reduce-right"), e("core-js/modules/es.typed-array.reverse"), e("core-js/modules/es.typed-array.set"), e("core-js/modules/es.typed-array.slice"), e("core-js/modules/es.typed-array.some"), e("core-js/modules/es.typed-array.sort"), e("core-js/modules/es.typed-array.subarray"), e("core-js/modules/es.typed-array.to-locale-string"), e("core-js/modules/es.typed-array.to-string"), e("core-js/modules/web.dom-collections.iterator"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var u = o(e("../core/main")), i = function(e2) {
          if (e2 && e2.__esModule)
            return e2;
          if (e2 === null || a(e2) !== "object" && typeof e2 != "function")
            return { default: e2 };
          var t2 = s();
          if (t2 && t2.has(e2))
            return t2.get(e2);
          var r2 = {}, n2 = Object.defineProperty && Object.getOwnPropertyDescriptor;
          for (var o2 in e2)
            if (Object.prototype.hasOwnProperty.call(e2, o2)) {
              var i2 = n2 ? Object.getOwnPropertyDescriptor(e2, o2) : null;
              i2 && (i2.get || i2.set) ? Object.defineProperty(r2, o2, i2) : r2[o2] = e2[o2];
            }
          r2.default = e2, t2 && t2.set(e2, r2);
          return r2;
        }(e("../core/constants")), n = o(e("libtess"));
        e("./p5.Shader"), e("./p5.Camera"), e("../core/p5.Renderer"), e("./p5.Matrix");
        e("path");
        function s() {
          if (typeof WeakMap != "function")
            return null;
          var e2 = new WeakMap();
          return s = function() {
            return e2;
          }, e2;
        }
        function o(e2) {
          return e2 && e2.__esModule ? e2 : { default: e2 };
        }
        function l(e2) {
          return function(e3) {
            if (Array.isArray(e3)) {
              for (var t2 = 0, r2 = new Array(e3.length); t2 < e3.length; t2++)
                r2[t2] = e3[t2];
              return r2;
            }
          }(e2) || function(e3) {
            if (Symbol.iterator in Object(e3) || Object.prototype.toString.call(e3) === "[object Arguments]")
              return Array.from(e3);
          }(e2) || function() {
            throw new TypeError("Invalid attempt to spread non-iterable instance");
          }();
        }
        var c = "precision highp float;\nprecision highp int;\n\nuniform mat4 uViewMatrix;\n\nuniform bool uUseLighting;\n\nuniform int uAmbientLightCount;\nuniform vec3 uAmbientColor[5];\n\nuniform int uDirectionalLightCount;\nuniform vec3 uLightingDirection[5];\nuniform vec3 uDirectionalDiffuseColors[5];\nuniform vec3 uDirectionalSpecularColors[5];\n\nuniform int uPointLightCount;\nuniform vec3 uPointLightLocation[5];\nuniform vec3 uPointLightDiffuseColors[5];	\nuniform vec3 uPointLightSpecularColors[5];\n\nuniform int uSpotLightCount;\nuniform float uSpotLightAngle[5];\nuniform float uSpotLightConc[5];\nuniform vec3 uSpotLightDiffuseColors[5];\nuniform vec3 uSpotLightSpecularColors[5];\nuniform vec3 uSpotLightLocation[5];\nuniform vec3 uSpotLightDirection[5];\n\nuniform bool uSpecular;\nuniform float uShininess;\n\nuniform float uConstantAttenuation;\nuniform float uLinearAttenuation;\nuniform float uQuadraticAttenuation;\n\nconst float specularFactor = 2.0;\nconst float diffuseFactor = 0.73;\n\nstruct LightResult {\n  float specular;\n  float diffuse;\n};\n\nfloat _phongSpecular(\n  vec3 lightDirection,\n  vec3 viewDirection,\n  vec3 surfaceNormal,\n  float shininess) {\n\n  vec3 R = reflect(lightDirection, surfaceNormal);\n  return pow(max(0.0, dot(R, viewDirection)), shininess);\n}\n\nfloat _lambertDiffuse(vec3 lightDirection, vec3 surfaceNormal) {\n  return max(0.0, dot(-lightDirection, surfaceNormal));\n}\n\nLightResult _light(vec3 viewDirection, vec3 normal, vec3 lightVector) {\n\n  vec3 lightDir = normalize(lightVector);\n\n  //compute our diffuse & specular terms\n  LightResult lr;\n  if (uSpecular)\n    lr.specular = _phongSpecular(lightDir, viewDirection, normal, uShininess);\n  lr.diffuse = _lambertDiffuse(lightDir, normal);\n  return lr;\n}\n\nvoid totalLight(\n  vec3 modelPosition,\n  vec3 normal,\n  out vec3 totalDiffuse,\n  out vec3 totalSpecular\n) {\n\n  totalSpecular = vec3(0.0);\n\n  if (!uUseLighting) {\n    totalDiffuse = vec3(1.0);\n    return;\n  }\n\n  totalDiffuse = vec3(0.0);\n\n  vec3 viewDirection = normalize(-modelPosition);\n\n  for (int j = 0; j < 5; j++) {\n    if (j < uDirectionalLightCount) {\n      vec3 lightVector = (uViewMatrix * vec4(uLightingDirection[j], 0.0)).xyz;\n      vec3 lightColor = uDirectionalDiffuseColors[j];\n      vec3 specularColor = uDirectionalSpecularColors[j];\n      LightResult result = _light(viewDirection, normal, lightVector);\n      totalDiffuse += result.diffuse * lightColor;\n      totalSpecular += result.specular * lightColor * specularColor;\n    }\n\n    if (j < uPointLightCount) {\n      vec3 lightPosition = (uViewMatrix * vec4(uPointLightLocation[j], 1.0)).xyz;\n      vec3 lightVector = modelPosition - lightPosition;\n    \n      //calculate attenuation\n      float lightDistance = length(lightVector);\n      float lightFalloff = 1.0 / (uConstantAttenuation + lightDistance * uLinearAttenuation + (lightDistance * lightDistance) * uQuadraticAttenuation);\n      vec3 lightColor = lightFalloff * uPointLightDiffuseColors[j];\n      vec3 specularColor = lightFalloff * uPointLightSpecularColors[j];\n\n      LightResult result = _light(viewDirection, normal, lightVector);\n      totalDiffuse += result.diffuse * lightColor;\n      totalSpecular += result.specular * lightColor * specularColor;\n    }\n\n    if(j < uSpotLightCount) {\n      vec3 lightPosition = (uViewMatrix * vec4(uSpotLightLocation[j], 1.0)).xyz;\n      vec3 lightVector = modelPosition - lightPosition;\n    \n      float lightDistance = length(lightVector);\n      float lightFalloff = 1.0 / (uConstantAttenuation + lightDistance * uLinearAttenuation + (lightDistance * lightDistance) * uQuadraticAttenuation);\n\n      vec3 lightDirection = (uViewMatrix * vec4(uSpotLightDirection[j], 0.0)).xyz;\n      float spotDot = dot(normalize(lightVector), normalize(lightDirection));\n      float spotFalloff;\n      if(spotDot < uSpotLightAngle[j]) {\n        spotFalloff = 0.0;\n      }\n      else {\n        spotFalloff = pow(spotDot, uSpotLightConc[j]);\n      }\n      lightFalloff *= spotFalloff;\n\n      vec3 lightColor = uSpotLightDiffuseColors[j];\n      vec3 specularColor = uSpotLightSpecularColors[j];\n     \n      LightResult result = _light(viewDirection, normal, lightVector);\n      \n      totalDiffuse += result.diffuse * lightColor * lightFalloff;\n      totalSpecular += result.specular * lightColor * specularColor * lightFalloff;\n    }\n  }\n\n  totalDiffuse *= diffuseFactor;\n  totalSpecular *= specularFactor;\n}\n", d = { immediateVert: "attribute vec3 aPosition;\nattribute vec4 aVertexColor;\n\nuniform mat4 uModelViewMatrix;\nuniform mat4 uProjectionMatrix;\nuniform float uResolution;\nuniform float uPointSize;\n\nvarying vec4 vColor;\nvoid main(void) {\n  vec4 positionVec4 = vec4(aPosition, 1.0);\n  gl_Position = uProjectionMatrix * uModelViewMatrix * positionVec4;\n  vColor = aVertexColor;\n  gl_PointSize = uPointSize;\n}\n", vertexColorVert: "attribute vec3 aPosition;\nattribute vec4 aVertexColor;\n\nuniform mat4 uModelViewMatrix;\nuniform mat4 uProjectionMatrix;\n\nvarying vec4 vColor;\n\nvoid main(void) {\n  vec4 positionVec4 = vec4(aPosition, 1.0);\n  gl_Position = uProjectionMatrix * uModelViewMatrix * positionVec4;\n  vColor = aVertexColor;\n}\n", vertexColorFrag: "precision mediump float;\nvarying vec4 vColor;\nvoid main(void) {\n  gl_FragColor = vColor;\n}", normalVert: "attribute vec3 aPosition;\nattribute vec3 aNormal;\nattribute vec2 aTexCoord;\n\nuniform mat4 uModelViewMatrix;\nuniform mat4 uProjectionMatrix;\nuniform mat3 uNormalMatrix;\n\nvarying vec3 vVertexNormal;\nvarying highp vec2 vVertTexCoord;\n\nvoid main(void) {\n  vec4 positionVec4 = vec4(aPosition, 1.0);\n  gl_Position = uProjectionMatrix * uModelViewMatrix * positionVec4;\n  vVertexNormal = normalize(vec3( uNormalMatrix * aNormal ));\n  vVertTexCoord = aTexCoord;\n}\n", normalFrag: "precision mediump float;\nvarying vec3 vVertexNormal;\nvoid main(void) {\n  gl_FragColor = vec4(vVertexNormal, 1.0);\n}", basicFrag: "precision mediump float;\nuniform vec4 uMaterialColor;\nvoid main(void) {\n  gl_FragColor = uMaterialColor;\n}", lightVert: c + "// include lighting.glgl\n\nattribute vec3 aPosition;\nattribute vec3 aNormal;\nattribute vec2 aTexCoord;\n\nuniform mat4 uModelViewMatrix;\nuniform mat4 uProjectionMatrix;\nuniform mat3 uNormalMatrix;\n\nvarying highp vec2 vVertTexCoord;\nvarying vec3 vDiffuseColor;\nvarying vec3 vSpecularColor;\n\nvoid main(void) {\n\n  vec4 viewModelPosition = uModelViewMatrix * vec4(aPosition, 1.0);\n  gl_Position = uProjectionMatrix * viewModelPosition;\n\n  vec3 vertexNormal = normalize(uNormalMatrix * aNormal);\n  vVertTexCoord = aTexCoord;\n\n  totalLight(viewModelPosition.xyz, vertexNormal, vDiffuseColor, vSpecularColor);\n\n  for (int i = 0; i < 8; i++) {\n    if (i < uAmbientLightCount) {\n      vDiffuseColor += uAmbientColor[i];\n    }\n  }\n}\n", lightTextureFrag: "precision highp float;\n\nuniform vec4 uMaterialColor;\nuniform vec4 uTint;\nuniform sampler2D uSampler;\nuniform bool isTexture;\nuniform bool uEmissive;\n\nvarying highp vec2 vVertTexCoord;\nvarying vec3 vDiffuseColor;\nvarying vec3 vSpecularColor;\n\nvoid main(void) {\n  if(uEmissive && !isTexture) {\n    gl_FragColor = uMaterialColor;\n  }\n  else {\n    gl_FragColor = isTexture ? texture2D(uSampler, vVertTexCoord) * (uTint / vec4(255, 255, 255, 255)) : uMaterialColor;\n    gl_FragColor.rgb = gl_FragColor.rgb * vDiffuseColor + vSpecularColor;\n  }\n}", phongVert: "precision highp float;\nprecision highp int;\n\nattribute vec3 aPosition;\nattribute vec3 aNormal;\nattribute vec2 aTexCoord;\n\nuniform vec3 uAmbientColor[5];\n\nuniform mat4 uModelViewMatrix;\nuniform mat4 uProjectionMatrix;\nuniform mat3 uNormalMatrix;\nuniform int uAmbientLightCount;\n\nvarying vec3 vNormal;\nvarying vec2 vTexCoord;\nvarying vec3 vViewPosition;\nvarying vec3 vAmbientColor;\n\nvoid main(void) {\n\n  vec4 viewModelPosition = uModelViewMatrix * vec4(aPosition, 1.0);\n\n  // Pass varyings to fragment shader\n  vViewPosition = viewModelPosition.xyz;\n  gl_Position = uProjectionMatrix * viewModelPosition;  \n\n  vNormal = uNormalMatrix * aNormal;\n  vTexCoord = aTexCoord;\n\n  // TODO: this should be a uniform\n  vAmbientColor = vec3(0.0);\n  for (int i = 0; i < 5; i++) {\n    if (i < uAmbientLightCount) {\n      vAmbientColor += uAmbientColor[i];\n    }\n  }\n}\n", phongFrag: c + "// include lighting.glsl\nprecision highp float;\nprecision highp int;\n\nuniform vec4 uMaterialColor;\nuniform vec4 uTint;\nuniform sampler2D uSampler;\nuniform bool isTexture;\nuniform bool uEmissive;\n\nvarying vec3 vNormal;\nvarying vec2 vTexCoord;\nvarying vec3 vViewPosition;\nvarying vec3 vAmbientColor;\n\nvoid main(void) {\n\n  vec3 diffuse;\n  vec3 specular;\n  totalLight(vViewPosition, normalize(vNormal), diffuse, specular);\n\n  if(uEmissive && !isTexture) {\n    gl_FragColor = uMaterialColor;\n  }\n  else {\n    gl_FragColor = isTexture ? texture2D(uSampler, vTexCoord) * (uTint / vec4(255, 255, 255, 255)) : uMaterialColor;\n    gl_FragColor.rgb = gl_FragColor.rgb * (diffuse + vAmbientColor) + specular;\n  }\n}", fontVert: "precision mediump float;\n\nattribute vec3 aPosition;\nattribute vec2 aTexCoord;\nuniform mat4 uModelViewMatrix;\nuniform mat4 uProjectionMatrix;\n\nuniform vec4 uGlyphRect;\nuniform float uGlyphOffset;\n\nvarying vec2 vTexCoord;\nvarying float w;\n\nvoid main() {\n  vec4 positionVec4 = vec4(aPosition, 1.0);\n\n  // scale by the size of the glyph's rectangle\n  positionVec4.xy *= uGlyphRect.zw - uGlyphRect.xy;\n\n  // move to the corner of the glyph\n  positionVec4.xy += uGlyphRect.xy;\n\n  // move to the letter's line offset\n  positionVec4.x += uGlyphOffset;\n  \n  gl_Position = uProjectionMatrix * uModelViewMatrix * positionVec4;\n  vTexCoord = aTexCoord;\n  w = gl_Position.w;\n}\n", fontFrag: "#extension GL_OES_standard_derivatives : enable\nprecision mediump float;\n\n#if 0\n  // simulate integer math using floats\n	#define int float\n	#define ivec2 vec2\n	#define INT(x) float(x)\n\n	int ifloor(float v) { return floor(v); }\n	ivec2 ifloor(vec2 v) { return floor(v); }\n\n#else\n  // use native integer math\n	precision highp int;\n	#define INT(x) x\n\n	int ifloor(float v) { return int(v); }\n	int ifloor(int v) { return v; }\n	ivec2 ifloor(vec2 v) { return ivec2(v); }\n\n#endif\n\nuniform sampler2D uSamplerStrokes;\nuniform sampler2D uSamplerRowStrokes;\nuniform sampler2D uSamplerRows;\nuniform sampler2D uSamplerColStrokes;\nuniform sampler2D uSamplerCols;\n\nuniform ivec2 uStrokeImageSize;\nuniform ivec2 uCellsImageSize;\nuniform ivec2 uGridImageSize;\n\nuniform ivec2 uGridOffset;\nuniform ivec2 uGridSize;\nuniform vec4 uMaterialColor;\n\nvarying vec2 vTexCoord;\n\n// some helper functions\nint round(float v) { return ifloor(v + 0.5); }\nivec2 round(vec2 v) { return ifloor(v + 0.5); }\nfloat saturate(float v) { return clamp(v, 0.0, 1.0); }\nvec2 saturate(vec2 v) { return clamp(v, 0.0, 1.0); }\n\nint mul(float v1, int v2) {\n  return ifloor(v1 * float(v2));\n}\n\nivec2 mul(vec2 v1, ivec2 v2) {\n  return ifloor(v1 * vec2(v2) + 0.5);\n}\n\n// unpack a 16-bit integer from a float vec2\nint getInt16(vec2 v) {\n  ivec2 iv = round(v * 255.0);\n  return iv.x * INT(128) + iv.y;\n}\n\nvec2 pixelScale;\nvec2 coverage = vec2(0.0);\nvec2 weight = vec2(0.5);\nconst float minDistance = 1.0/8192.0;\nconst float hardness = 1.05; // amount of antialias\n\n// the maximum number of curves in a glyph\nconst int N = INT(250);\n\n// retrieves an indexed pixel from a sampler\nvec4 getTexel(sampler2D sampler, int pos, ivec2 size) {\n  int width = size.x;\n  int y = ifloor(pos / width);\n  int x = pos - y * width;  // pos % width\n\n  return texture2D(sampler, (vec2(x, y) + 0.5) / vec2(size));\n}\n\nvoid calulateCrossings(vec2 p0, vec2 p1, vec2 p2, out vec2 C1, out vec2 C2) {\n\n  // get the coefficients of the quadratic in t\n  vec2 a = p0 - p1 * 2.0 + p2;\n  vec2 b = p0 - p1;\n  vec2 c = p0 - vTexCoord;\n\n  // found out which values of 't' it crosses the axes\n  vec2 surd = sqrt(max(vec2(0.0), b * b - a * c));\n  vec2 t1 = ((b - surd) / a).yx;\n  vec2 t2 = ((b + surd) / a).yx;\n\n  // approximate straight lines to avoid rounding errors\n  if (abs(a.y) < 0.001)\n    t1.x = t2.x = c.y / (2.0 * b.y);\n\n  if (abs(a.x) < 0.001)\n    t1.y = t2.y = c.x / (2.0 * b.x);\n\n  // plug into quadratic formula to find the corrdinates of the crossings\n  C1 = ((a * t1 - b * 2.0) * t1 + c) * pixelScale;\n  C2 = ((a * t2 - b * 2.0) * t2 + c) * pixelScale;\n}\n\nvoid coverageX(vec2 p0, vec2 p1, vec2 p2) {\n\n  vec2 C1, C2;\n  calulateCrossings(p0, p1, p2, C1, C2);\n\n  // determine on which side of the x-axis the points lie\n  bool y0 = p0.y > vTexCoord.y;\n  bool y1 = p1.y > vTexCoord.y;\n  bool y2 = p2.y > vTexCoord.y;\n\n  // could web be under the curve (after t1)?\n  if (y1 ? !y2 : y0) {\n    // add the coverage for t1\n    coverage.x += saturate(C1.x + 0.5);\n    // calculate the anti-aliasing for t1\n    weight.x = min(weight.x, abs(C1.x));\n  }\n\n  // are we outside the curve (after t2)?\n  if (y1 ? !y0 : y2) {\n    // subtract the coverage for t2\n    coverage.x -= saturate(C2.x + 0.5);\n    // calculate the anti-aliasing for t2\n    weight.x = min(weight.x, abs(C2.x));\n  }\n}\n\n// this is essentially the same as coverageX, but with the axes swapped\nvoid coverageY(vec2 p0, vec2 p1, vec2 p2) {\n\n  vec2 C1, C2;\n  calulateCrossings(p0, p1, p2, C1, C2);\n\n  bool x0 = p0.x > vTexCoord.x;\n  bool x1 = p1.x > vTexCoord.x;\n  bool x2 = p2.x > vTexCoord.x;\n\n  if (x1 ? !x2 : x0) {\n    coverage.y -= saturate(C1.y + 0.5);\n    weight.y = min(weight.y, abs(C1.y));\n  }\n\n  if (x1 ? !x0 : x2) {\n    coverage.y += saturate(C2.y + 0.5);\n    weight.y = min(weight.y, abs(C2.y));\n  }\n}\n\nvoid main() {\n\n  // calculate the pixel scale based on screen-coordinates\n  pixelScale = hardness / fwidth(vTexCoord);\n\n  // which grid cell is this pixel in?\n  ivec2 gridCoord = ifloor(vTexCoord * vec2(uGridSize));\n\n  // intersect curves in this row\n  {\n    // the index into the row info bitmap\n    int rowIndex = gridCoord.y + uGridOffset.y;\n    // fetch the info texel\n    vec4 rowInfo = getTexel(uSamplerRows, rowIndex, uGridImageSize);\n    // unpack the rowInfo\n    int rowStrokeIndex = getInt16(rowInfo.xy);\n    int rowStrokeCount = getInt16(rowInfo.zw);\n\n    for (int iRowStroke = INT(0); iRowStroke < N; iRowStroke++) {\n      if (iRowStroke >= rowStrokeCount)\n        break;\n\n      // each stroke is made up of 3 points: the start and control point\n      // and the start of the next curve.\n      // fetch the indices of this pair of strokes:\n      vec4 strokeIndices = getTexel(uSamplerRowStrokes, rowStrokeIndex++, uCellsImageSize);\n\n      // unpack the stroke index\n      int strokePos = getInt16(strokeIndices.xy);\n\n      // fetch the two strokes\n      vec4 stroke0 = getTexel(uSamplerStrokes, strokePos + INT(0), uStrokeImageSize);\n      vec4 stroke1 = getTexel(uSamplerStrokes, strokePos + INT(1), uStrokeImageSize);\n\n      // calculate the coverage\n      coverageX(stroke0.xy, stroke0.zw, stroke1.xy);\n    }\n  }\n\n  // intersect curves in this column\n  {\n    int colIndex = gridCoord.x + uGridOffset.x;\n    vec4 colInfo = getTexel(uSamplerCols, colIndex, uGridImageSize);\n    int colStrokeIndex = getInt16(colInfo.xy);\n    int colStrokeCount = getInt16(colInfo.zw);\n    \n    for (int iColStroke = INT(0); iColStroke < N; iColStroke++) {\n      if (iColStroke >= colStrokeCount)\n        break;\n\n      vec4 strokeIndices = getTexel(uSamplerColStrokes, colStrokeIndex++, uCellsImageSize);\n\n      int strokePos = getInt16(strokeIndices.xy);\n      vec4 stroke0 = getTexel(uSamplerStrokes, strokePos + INT(0), uStrokeImageSize);\n      vec4 stroke1 = getTexel(uSamplerStrokes, strokePos + INT(1), uStrokeImageSize);\n      coverageY(stroke0.xy, stroke0.zw, stroke1.xy);\n    }\n  }\n\n  weight = saturate(1.0 - weight * 2.0);\n  float distance = max(weight.x + weight.y, minDistance); // manhattan approx.\n  float antialias = abs(dot(coverage, weight) / distance);\n  float cover = min(abs(coverage.x), abs(coverage.y));\n  gl_FragColor = uMaterialColor;\n  gl_FragColor.a *= saturate(max(antialias, cover));\n}", lineVert: "/*\n  Part of the Processing project - http://processing.org\n  Copyright (c) 2012-15 The Processing Foundation\n  Copyright (c) 2004-12 Ben Fry and Casey Reas\n  Copyright (c) 2001-04 Massachusetts Institute of Technology\n  This library is free software; you can redistribute it and/or\n  modify it under the terms of the GNU Lesser General Public\n  License as published by the Free Software Foundation, version 2.1.\n  This library is distributed in the hope that it will be useful,\n  but WITHOUT ANY WARRANTY; without even the implied warranty of\n  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n  Lesser General Public License for more details.\n  You should have received a copy of the GNU Lesser General\n  Public License along with this library; if not, write to the\n  Free Software Foundation, Inc., 59 Temple Place, Suite 330,\n  Boston, MA  02111-1307  USA\n*/\n\n#define PROCESSING_LINE_SHADER\n\nuniform mat4 uModelViewMatrix;\nuniform mat4 uProjectionMatrix;\nuniform float uStrokeWeight;\n\nuniform vec4 uViewport;\nuniform int uPerspective;\n\nattribute vec4 aPosition;\nattribute vec4 aDirection;\n  \nvoid main() {\n  // using a scale <1 moves the lines towards the camera\n  // in order to prevent popping effects due to half of\n  // the line disappearing behind the geometry faces.\n  vec3 scale = vec3(0.9995);\n\n  vec4 posp = uModelViewMatrix * aPosition;\n  vec4 posq = uModelViewMatrix * (aPosition + vec4(aDirection.xyz, 0));\n\n  // Moving vertices slightly toward the camera\n  // to avoid depth-fighting with the fill triangles.\n  // Discussed here:\n  // http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&Number=252848  \n  posp.xyz = posp.xyz * scale;\n  posq.xyz = posq.xyz * scale;\n\n  vec4 p = uProjectionMatrix * posp;\n  vec4 q = uProjectionMatrix * posq;\n\n  // formula to convert from clip space (range -1..1) to screen space (range 0..[width or height])\n  // screen_p = (p.xy/p.w + <1,1>) * 0.5 * uViewport.zw\n\n  // prevent division by W by transforming the tangent formula (div by 0 causes\n  // the line to disappear, see https://github.com/processing/processing/issues/5183)\n  // t = screen_q - screen_p\n  //\n  // tangent is normalized and we don't care which aDirection it points to (+-)\n  // t = +- normalize( screen_q - screen_p )\n  // t = +- normalize( (q.xy/q.w+<1,1>)*0.5*uViewport.zw - (p.xy/p.w+<1,1>)*0.5*uViewport.zw )\n  //\n  // extract common factor, <1,1> - <1,1> cancels out\n  // t = +- normalize( (q.xy/q.w - p.xy/p.w) * 0.5 * uViewport.zw )\n  //\n  // convert to common divisor\n  // t = +- normalize( ((q.xy*p.w - p.xy*q.w) / (p.w*q.w)) * 0.5 * uViewport.zw )\n  //\n  // remove the common scalar divisor/factor, not needed due to normalize and +-\n  // (keep uViewport - can't remove because it has different components for x and y\n  //  and corrects for aspect ratio, see https://github.com/processing/processing/issues/5181)\n  // t = +- normalize( (q.xy*p.w - p.xy*q.w) * uViewport.zw )\n\n  vec2 tangent = normalize((q.xy*p.w - p.xy*q.w) * uViewport.zw);\n\n  // flip tangent to normal (it's already normalized)\n  vec2 normal = vec2(-tangent.y, tangent.x);\n\n  float thickness = aDirection.w * uStrokeWeight;\n  vec2 offset = normal * thickness / 2.0;\n\n  vec2 curPerspScale;\n\n  if(uPerspective == 1) {\n    // Perspective ---\n    // convert from world to clip by multiplying with projection scaling factor\n    // to get the right thickness (see https://github.com/processing/processing/issues/5182)\n    // invert Y, projections in Processing invert Y\n    curPerspScale = (uProjectionMatrix * vec4(1, -1, 0, 0)).xy;\n  } else {\n    // No Perspective ---\n    // multiply by W (to cancel out division by W later in the pipeline) and\n    // convert from screen to clip (derived from clip to screen above)\n    curPerspScale = p.w / (0.5 * uViewport.zw);\n  }\n\n  gl_Position.xy = p.xy + offset.xy * curPerspScale;\n  gl_Position.zw = p.zw;\n}\n", lineFrag: "precision mediump float;\nprecision mediump int;\n\nuniform vec4 uMaterialColor;\n\nvoid main() {\n  gl_FragColor = uMaterialColor;\n}", pointVert: "attribute vec3 aPosition;\nuniform float uPointSize;\nvarying float vStrokeWeight;\nuniform mat4 uModelViewMatrix;\nuniform mat4 uProjectionMatrix;\nvoid main() {\n	vec4 positionVec4 =  vec4(aPosition, 1.0);\n	gl_Position = uProjectionMatrix * uModelViewMatrix * positionVec4;\n	gl_PointSize = uPointSize;\n	vStrokeWeight = uPointSize;\n}", pointFrag: "precision mediump float;\nprecision mediump int;\nuniform vec4 uMaterialColor;\nvarying float vStrokeWeight;\n\nvoid main(){\n	float mask = 0.0;\n\n	// make a circular mask using the gl_PointCoord (goes from 0 - 1 on a point)\n    // might be able to get a nicer edge on big strokeweights with smoothstep but slightly less performant\n\n	mask = step(0.98, length(gl_PointCoord * 2.0 - 1.0));\n\n	// if strokeWeight is 1 or less lets just draw a square\n	// this prevents weird artifacting from carving circles when our points are really small\n	// if strokeWeight is larger than 1, we just use it as is\n\n	mask = mix(0.0, mask, clamp(floor(vStrokeWeight - 0.5),0.0,1.0));\n\n	// throw away the borders of the mask\n    // otherwise we get weird alpha blending issues\n\n	if(mask > 0.98){\n      discard;\n  	}\n\n  	gl_FragColor = vec4(uMaterialColor.rgb * (1.0 - mask), uMaterialColor.a) ;\n}" };
        u.default.RendererGL = function(e2, t2, r2, n2) {
          return u.default.Renderer.call(this, e2, t2, r2), this._setAttributeDefaults(t2), this._initContext(), this.isP3D = true, this.GL = this.drawingContext, this._pInst._setProperty("drawingContext", this.drawingContext), this._isErasing = false, this._enableLighting = false, this.ambientLightColors = [], this.specularColors = [1, 1, 1], this.directionalLightDirections = [], this.directionalLightDiffuseColors = [], this.directionalLightSpecularColors = [], this.pointLightPositions = [], this.pointLightDiffuseColors = [], this.pointLightSpecularColors = [], this.spotLightPositions = [], this.spotLightDirections = [], this.spotLightDiffuseColors = [], this.spotLightSpecularColors = [], this.spotLightAngle = [], this.spotLightConc = [], this.drawMode = i.FILL, this.curFillColor = this._cachedFillStyle = [1, 1, 1, 1], this.curStrokeColor = this._cachedStrokeStyle = [0, 0, 0, 1], this.curBlendMode = i.BLEND, this._cachedBlendMode = void 0, this.blendExt = this.GL.getExtension("EXT_blend_minmax"), this._isBlending = false, this._useSpecularMaterial = false, this._useEmissiveMaterial = false, this._useNormalMaterial = false, this._useShininess = 1, this._tint = [255, 255, 255, 255], this.constantAttenuation = 1, this.linearAttenuation = 0, this.quadraticAttenuation = 0, this.uMVMatrix = new u.default.Matrix(), this.uPMatrix = new u.default.Matrix(), this.uNMatrix = new u.default.Matrix("mat3"), this._currentNormal = new u.default.Vector(0, 0, 1), this._curCamera = new u.default.Camera(this), this._curCamera._computeCameraDefaultSettings(), this._curCamera._setDefaultCamera(), this._defaultLightShader = void 0, this._defaultImmediateModeShader = void 0, this._defaultNormalShader = void 0, this._defaultColorShader = void 0, this._defaultPointShader = void 0, this.userFillShader = void 0, this.userStrokeShader = void 0, this.userPointShader = void 0, this.retainedMode = { geometry: {}, buffers: { stroke: [new u.default.RenderBuffer(3, "lineVertices", "lineVertexBuffer", "aPosition", this, this._flatten), new u.default.RenderBuffer(4, "lineNormals", "lineNormalBuffer", "aDirection", this, this._flatten)], fill: [new u.default.RenderBuffer(3, "vertices", "vertexBuffer", "aPosition", this, this._vToNArray), new u.default.RenderBuffer(3, "vertexNormals", "normalBuffer", "aNormal", this, this._vToNArray), new u.default.RenderBuffer(4, "vertexColors", "colorBuffer", "aMaterialColor", this), new u.default.RenderBuffer(3, "vertexAmbients", "ambientBuffer", "aAmbientColor", this), new u.default.RenderBuffer(2, "uvs", "uvBuffer", "aTexCoord", this, this._flatten)], text: [new u.default.RenderBuffer(3, "vertices", "vertexBuffer", "aPosition", this, this._vToNArray), new u.default.RenderBuffer(2, "uvs", "uvBuffer", "aTexCoord", this, this._flatten)] } }, this.immediateMode = { geometry: new u.default.Geometry(), shapeMode: i.TRIANGLE_FAN, _bezierVertex: [], _quadraticVertex: [], _curveVertex: [], buffers: { fill: [new u.default.RenderBuffer(3, "vertices", "vertexBuffer", "aPosition", this, this._vToNArray), new u.default.RenderBuffer(3, "vertexNormals", "normalBuffer", "aNormal", this, this._vToNArray), new u.default.RenderBuffer(4, "vertexColors", "colorBuffer", "aVertexColor", this), new u.default.RenderBuffer(3, "vertexAmbients", "ambientBuffer", "aAmbientColor", this), new u.default.RenderBuffer(2, "uvs", "uvBuffer", "aTexCoord", this, this._flatten)], stroke: [new u.default.RenderBuffer(3, "lineVertices", "lineVertexBuffer", "aPosition", this, this._flatten), new u.default.RenderBuffer(4, "lineNormals", "lineNormalBuffer", "aDirection", this, this._flatten)], point: this.GL.createBuffer() } }, this.pointSize = 5, this.curStrokeWeight = 1, this.textures = [], this.textureMode = i.IMAGE, this.textureWrapX = i.CLAMP, this.textureWrapY = i.CLAMP, this._tex = null, this._curveTightness = 6, this._lookUpTableBezier = [], this._lookUpTableQuadratic = [], this._lutBezierDetail = 0, this._lutQuadraticDetail = 0, this._tessy = this._initTessy(), this.fontInfos = {}, this._curShader = void 0, this;
        }, u.default.RendererGL.prototype = Object.create(u.default.Renderer.prototype), u.default.RendererGL.prototype._setAttributeDefaults = function(e2) {
          var t2 = { alpha: true, depth: true, stencil: true, antialias: navigator.userAgent.toLowerCase().includes("safari"), premultipliedAlpha: false, preserveDrawingBuffer: true, perPixelLighting: true };
          e2._glAttributes === null ? e2._glAttributes = t2 : e2._glAttributes = Object.assign(t2, e2._glAttributes);
        }, u.default.RendererGL.prototype._initContext = function() {
          try {
            if (this.drawingContext = this.canvas.getContext("webgl", this._pInst._glAttributes) || this.canvas.getContext("experimental-webgl", this._pInst._glAttributes), this.drawingContext === null)
              throw new Error("Error creating webgl context");
            var e2 = this.drawingContext;
            e2.enable(e2.DEPTH_TEST), e2.depthFunc(e2.LEQUAL), e2.viewport(0, 0, e2.drawingBufferWidth, e2.drawingBufferHeight), this._viewport = this.drawingContext.getParameter(this.drawingContext.VIEWPORT);
          } catch (e3) {
            throw e3;
          }
        }, u.default.RendererGL.prototype._resetContext = function(e2, t2) {
          var r2 = this.width, n2 = this.height, o2 = this.canvas.id, i2 = this._pInst instanceof u.default.Graphics;
          if (i2) {
            var a2 = this._pInst;
            a2.canvas.parentNode.removeChild(a2.canvas), a2.canvas = document.createElement("canvas"), (a2._pInst._userNode || document.body).appendChild(a2.canvas), u.default.Element.call(a2, a2.canvas, a2._pInst), a2.width = r2, a2.height = n2;
          } else {
            var s2 = this.canvas;
            s2 && s2.parentNode.removeChild(s2), (s2 = document.createElement("canvas")).id = o2, this._pInst._userNode ? this._pInst._userNode.appendChild(s2) : document.body.appendChild(s2), this._pInst.canvas = s2;
          }
          var l2 = new u.default.RendererGL(this._pInst.canvas, this._pInst, !i2);
          this._pInst._setProperty("_renderer", l2), l2.resize(r2, n2), l2._applyDefaults(), i2 || this._pInst._elements.push(l2), typeof t2 == "function" && setTimeout(function() {
            t2.apply(window._renderer, e2);
          }, 0);
        }, u.default.prototype.setAttributes = function(e2, t2) {
          if (this._glAttributes !== void 0) {
            var r2 = true;
            if (t2 !== void 0 ? (this._glAttributes === null && (this._glAttributes = {}), this._glAttributes[e2] !== t2 && (this._glAttributes[e2] = t2, r2 = false)) : e2 instanceof Object && this._glAttributes !== e2 && (this._glAttributes = e2, r2 = false), this._renderer.isP3D && !r2) {
              if (!this._setupDone) {
                for (var n2 in this._renderer.retainedMode.geometry)
                  if (this._renderer.retainedMode.geometry.hasOwnProperty(n2))
                    return void console.error("Sorry, Could not set the attributes, you need to call setAttributes() before calling the other drawing methods in setup()");
              }
              this.push(), this._renderer._resetContext(), this.pop(), this._renderer._curCamera && (this._renderer._curCamera._renderer = this._renderer);
            }
          } else
            console.log("You are trying to use setAttributes on a p5.Graphics object that does not use a WEBGL renderer.");
        }, u.default.RendererGL.prototype._update = function() {
          this.uMVMatrix.set(this._curCamera.cameraMatrix.mat4[0], this._curCamera.cameraMatrix.mat4[1], this._curCamera.cameraMatrix.mat4[2], this._curCamera.cameraMatrix.mat4[3], this._curCamera.cameraMatrix.mat4[4], this._curCamera.cameraMatrix.mat4[5], this._curCamera.cameraMatrix.mat4[6], this._curCamera.cameraMatrix.mat4[7], this._curCamera.cameraMatrix.mat4[8], this._curCamera.cameraMatrix.mat4[9], this._curCamera.cameraMatrix.mat4[10], this._curCamera.cameraMatrix.mat4[11], this._curCamera.cameraMatrix.mat4[12], this._curCamera.cameraMatrix.mat4[13], this._curCamera.cameraMatrix.mat4[14], this._curCamera.cameraMatrix.mat4[15]), this.ambientLightColors.length = 0, this.specularColors = [1, 1, 1], this.directionalLightDirections.length = 0, this.directionalLightDiffuseColors.length = 0, this.directionalLightSpecularColors.length = 0, this.pointLightPositions.length = 0, this.pointLightDiffuseColors.length = 0, this.pointLightSpecularColors.length = 0, this.spotLightPositions.length = 0, this.spotLightDirections.length = 0, this.spotLightDiffuseColors.length = 0, this.spotLightSpecularColors.length = 0, this.spotLightAngle.length = 0, this.spotLightConc.length = 0, this._enableLighting = false, this._tint = [255, 255, 255, 255], this.GL.clear(this.GL.DEPTH_BUFFER_BIT);
        }, u.default.RendererGL.prototype.background = function() {
          var e2, t2 = (e2 = this._pInst).color.apply(e2, arguments), r2 = t2.levels[0] / 255, n2 = t2.levels[1] / 255, o2 = t2.levels[2] / 255, i2 = t2.levels[3] / 255;
          this.GL.clearColor(r2, n2, o2, i2), this.GL.clear(this.GL.COLOR_BUFFER_BIT);
        }, u.default.RendererGL.prototype.fill = function(e2, t2, r2, n2) {
          var o2 = u.default.prototype.color.apply(this._pInst, arguments);
          this.curFillColor = o2._array, this.drawMode = i.FILL, this._useNormalMaterial = false, this._tex = null;
        }, u.default.RendererGL.prototype.stroke = function(e2, t2, r2, n2) {
          arguments[3] = 255;
          var o2 = u.default.prototype.color.apply(this._pInst, arguments);
          this.curStrokeColor = o2._array;
        }, u.default.RendererGL.prototype.strokeCap = function(e2) {
          console.error("Sorry, strokeCap() is not yet implemented in WEBGL mode");
        }, u.default.RendererGL.prototype.strokeJoin = function(e2) {
          console.error("Sorry, strokeJoin() is not yet implemented in WEBGL mode");
        }, u.default.RendererGL.prototype.filter = function(e2) {
          console.error("filter() does not work in WEBGL mode");
        }, u.default.RendererGL.prototype.blendMode = function(e2) {
          e2 === i.DARKEST || e2 === i.LIGHTEST || e2 === i.ADD || e2 === i.BLEND || e2 === i.SUBTRACT || e2 === i.SCREEN || e2 === i.EXCLUSION || e2 === i.REPLACE || e2 === i.MULTIPLY || e2 === i.REMOVE ? this.curBlendMode = e2 : e2 !== i.BURN && e2 !== i.OVERLAY && e2 !== i.HARD_LIGHT && e2 !== i.SOFT_LIGHT && e2 !== i.DODGE || console.warn("BURN, OVERLAY, HARD_LIGHT, SOFT_LIGHT, and DODGE only work for blendMode in 2D mode.");
        }, u.default.RendererGL.prototype.erase = function(e2, t2) {
          this._isErasing || (this._applyBlendMode(i.REMOVE), this._isErasing = true, this._cachedFillStyle = this.curFillColor.slice(), this.curFillColor = [1, 1, 1, e2 / 255], this._cachedStrokeStyle = this.curStrokeColor.slice(), this.curStrokeColor = [1, 1, 1, t2 / 255]);
        }, u.default.RendererGL.prototype.noErase = function() {
          this._isErasing && (this._isErasing = false, this.curFillColor = this._cachedFillStyle.slice(), this.curStrokeColor = this._cachedStrokeStyle.slice(), this.blendMode(this._cachedBlendMode));
        }, u.default.RendererGL.prototype.strokeWeight = function(e2) {
          this.curStrokeWeight !== e2 && (this.pointSize = e2, this.curStrokeWeight = e2);
        }, u.default.RendererGL.prototype._getPixel = function(e2, t2) {
          var r2;
          return r2 = new Uint8Array(4), this.drawingContext.readPixels(e2, t2, 1, 1, this.drawingContext.RGBA, this.drawingContext.UNSIGNED_BYTE, r2), [r2[0], r2[1], r2[2], r2[3]];
        }, u.default.RendererGL.prototype.loadPixels = function() {
          var e2 = this._pixelsState;
          if (this._pInst._glAttributes.preserveDrawingBuffer === true) {
            var t2 = e2.pixels, r2 = this.GL.drawingBufferWidth * this.GL.drawingBufferHeight * 4;
            t2 instanceof Uint8Array && t2.length === r2 || (t2 = new Uint8Array(r2), this._pixelsState._setProperty("pixels", t2));
            var n2 = this._pInst._pixelDensity;
            this.GL.readPixels(0, 0, this.width * n2, this.height * n2, this.GL.RGBA, this.GL.UNSIGNED_BYTE, t2);
          } else
            console.log("loadPixels only works in WebGL when preserveDrawingBuffer is true.");
        }, u.default.RendererGL.prototype.geometryInHash = function(e2) {
          return this.retainedMode.geometry[e2] !== void 0;
        }, u.default.RendererGL.prototype.resize = function(e2, t2) {
          u.default.Renderer.prototype.resize.call(this, e2, t2), this.GL.viewport(0, 0, this.GL.drawingBufferWidth, this.GL.drawingBufferHeight), this._viewport = this.GL.getParameter(this.GL.VIEWPORT), this._curCamera._resize();
          var r2 = this._pixelsState;
          r2.pixels !== void 0 && r2._setProperty("pixels", new Uint8Array(this.GL.drawingBufferWidth * this.GL.drawingBufferHeight * 4));
        }, u.default.RendererGL.prototype.clear = function() {
          var e2 = (arguments.length <= 0 ? void 0 : arguments[0]) || 0, t2 = (arguments.length <= 1 ? void 0 : arguments[1]) || 0, r2 = (arguments.length <= 2 ? void 0 : arguments[2]) || 0, n2 = (arguments.length <= 3 ? void 0 : arguments[3]) || 0;
          this.GL.clearColor(e2, t2, r2, n2), this.GL.clear(this.GL.COLOR_BUFFER_BIT | this.GL.DEPTH_BUFFER_BIT);
        }, u.default.RendererGL.prototype.applyMatrix = function(e2, t2, r2, n2, o2, i2) {
          arguments.length === 16 ? u.default.Matrix.prototype.apply.apply(this.uMVMatrix, arguments) : this.uMVMatrix.apply([e2, t2, 0, 0, r2, n2, 0, 0, 0, 0, 1, 0, o2, i2, 0, 1]);
        }, u.default.RendererGL.prototype.translate = function(e2, t2, r2) {
          return e2 instanceof u.default.Vector && (r2 = e2.z, t2 = e2.y, e2 = e2.x), this.uMVMatrix.translate([e2, t2, r2]), this;
        }, u.default.RendererGL.prototype.scale = function(e2, t2, r2) {
          return this.uMVMatrix.scale(e2, t2, r2), this;
        }, u.default.RendererGL.prototype.rotate = function(e2, t2) {
          return t2 === void 0 ? this.rotateZ(e2) : (u.default.Matrix.prototype.rotate.apply(this.uMVMatrix, arguments), this);
        }, u.default.RendererGL.prototype.rotateX = function(e2) {
          return this.rotate(e2, 1, 0, 0), this;
        }, u.default.RendererGL.prototype.rotateY = function(e2) {
          return this.rotate(e2, 0, 1, 0), this;
        }, u.default.RendererGL.prototype.rotateZ = function(e2) {
          return this.rotate(e2, 0, 0, 1), this;
        }, u.default.RendererGL.prototype.push = function() {
          var e2 = u.default.Renderer.prototype.push.apply(this), t2 = e2.properties;
          return t2.uMVMatrix = this.uMVMatrix.copy(), t2.uPMatrix = this.uPMatrix.copy(), t2._curCamera = this._curCamera, this._curCamera = this._curCamera.copy(), t2.ambientLightColors = this.ambientLightColors.slice(), t2.specularColors = this.specularColors.slice(), t2.directionalLightDirections = this.directionalLightDirections.slice(), t2.directionalLightDiffuseColors = this.directionalLightDiffuseColors.slice(), t2.directionalLightSpecularColors = this.directionalLightSpecularColors.slice(), t2.pointLightPositions = this.pointLightPositions.slice(), t2.pointLightDiffuseColors = this.pointLightDiffuseColors.slice(), t2.pointLightSpecularColors = this.pointLightSpecularColors.slice(), t2.spotLightPositions = this.spotLightPositions.slice(), t2.spotLightDirections = this.spotLightDirections.slice(), t2.spotLightDiffuseColors = this.spotLightDiffuseColors.slice(), t2.spotLightSpecularColors = this.spotLightSpecularColors.slice(), t2.spotLightAngle = this.spotLightAngle.slice(), t2.spotLightConc = this.spotLightConc.slice(), t2.userFillShader = this.userFillShader, t2.userStrokeShader = this.userStrokeShader, t2.userPointShader = this.userPointShader, t2.pointSize = this.pointSize, t2.curStrokeWeight = this.curStrokeWeight, t2.curStrokeColor = this.curStrokeColor, t2.curFillColor = this.curFillColor, t2._useSpecularMaterial = this._useSpecularMaterial, t2._useEmissiveMaterial = this._useEmissiveMaterial, t2._useShininess = this._useShininess, t2.constantAttenuation = this.constantAttenuation, t2.linearAttenuation = this.linearAttenuation, t2.quadraticAttenuation = this.quadraticAttenuation, t2._enableLighting = this._enableLighting, t2._useNormalMaterial = this._useNormalMaterial, t2._tex = this._tex, t2.drawMode = this.drawMode, t2._currentNormal = this._currentNormal, e2;
        }, u.default.RendererGL.prototype.resetMatrix = function() {
          return this.uMVMatrix = u.default.Matrix.identity(this._pInst), this;
        }, u.default.RendererGL.prototype._getImmediateStrokeShader = function() {
          var e2 = this.userStrokeShader;
          return e2 && e2.isStrokeShader() ? e2 : this._getLineShader();
        }, u.default.RendererGL.prototype._getRetainedStrokeShader = u.default.RendererGL.prototype._getImmediateStrokeShader, u.default.RendererGL.prototype._getImmediateFillShader = function() {
          var e2 = this.userFillShader;
          if (this._useNormalMaterial && (!e2 || !e2.isNormalShader()))
            return this._getNormalShader();
          if (this._enableLighting) {
            if (!e2 || !e2.isLightShader())
              return this._getLightShader();
          } else if (this._tex) {
            if (!e2 || !e2.isTextureShader())
              return this._getLightShader();
          } else if (!e2)
            return this._getImmediateModeShader();
          return e2;
        }, u.default.RendererGL.prototype._getRetainedFillShader = function() {
          if (this._useNormalMaterial)
            return this._getNormalShader();
          var e2 = this.userFillShader;
          if (this._enableLighting) {
            if (!e2 || !e2.isLightShader())
              return this._getLightShader();
          } else if (this._tex) {
            if (!e2 || !e2.isTextureShader())
              return this._getLightShader();
          } else if (!e2)
            return this._getColorShader();
          return e2;
        }, u.default.RendererGL.prototype._getImmediatePointShader = function() {
          var e2 = this.userPointShader;
          return e2 && e2.isPointShader() ? e2 : this._getPointShader();
        }, u.default.RendererGL.prototype._getRetainedLineShader = u.default.RendererGL.prototype._getImmediateLineShader, u.default.RendererGL.prototype._getLightShader = function() {
          return this._defaultLightShader || (this._pInst._glAttributes.perPixelLighting ? this._defaultLightShader = new u.default.Shader(this, d.phongVert, d.phongFrag) : this._defaultLightShader = new u.default.Shader(this, d.lightVert, d.lightTextureFrag)), this._defaultLightShader;
        }, u.default.RendererGL.prototype._getImmediateModeShader = function() {
          return this._defaultImmediateModeShader || (this._defaultImmediateModeShader = new u.default.Shader(this, d.immediateVert, d.vertexColorFrag)), this._defaultImmediateModeShader;
        }, u.default.RendererGL.prototype._getNormalShader = function() {
          return this._defaultNormalShader || (this._defaultNormalShader = new u.default.Shader(this, d.normalVert, d.normalFrag)), this._defaultNormalShader;
        }, u.default.RendererGL.prototype._getColorShader = function() {
          return this._defaultColorShader || (this._defaultColorShader = new u.default.Shader(this, d.normalVert, d.basicFrag)), this._defaultColorShader;
        }, u.default.RendererGL.prototype._getPointShader = function() {
          return this._defaultPointShader || (this._defaultPointShader = new u.default.Shader(this, d.pointVert, d.pointFrag)), this._defaultPointShader;
        }, u.default.RendererGL.prototype._getLineShader = function() {
          return this._defaultLineShader || (this._defaultLineShader = new u.default.Shader(this, d.lineVert, d.lineFrag)), this._defaultLineShader;
        }, u.default.RendererGL.prototype._getFontShader = function() {
          return this._defaultFontShader || (this.GL.getExtension("OES_standard_derivatives"), this._defaultFontShader = new u.default.Shader(this, d.fontVert, d.fontFrag)), this._defaultFontShader;
        }, u.default.RendererGL.prototype._getEmptyTexture = function() {
          if (!this._emptyTexture) {
            var e2 = new u.default.Image(1, 1);
            e2.set(0, 0, 255), this._emptyTexture = new u.default.Texture(this, e2);
          }
          return this._emptyTexture;
        }, u.default.RendererGL.prototype.getTexture = function(e2) {
          var t2 = this.textures, r2 = true, n2 = false, o2 = void 0;
          try {
            for (var i2, a2 = t2[Symbol.iterator](); !(r2 = (i2 = a2.next()).done); r2 = true) {
              var s2 = i2.value;
              if (s2.src === e2)
                return s2;
            }
          } catch (e3) {
            n2 = true, o2 = e3;
          } finally {
            try {
              r2 || a2.return == null || a2.return();
            } finally {
              if (n2)
                throw o2;
            }
          }
          var l2 = new u.default.Texture(this, e2);
          return t2.push(l2), l2;
        }, u.default.RendererGL.prototype._setStrokeUniforms = function(e2) {
          e2.bindShader(), e2.setUniform("uMaterialColor", this.curStrokeColor), e2.setUniform("uStrokeWeight", this.curStrokeWeight);
        }, u.default.RendererGL.prototype._setFillUniforms = function(e2) {
          e2.bindShader(), e2.setUniform("uMaterialColor", this.curFillColor), e2.setUniform("isTexture", !!this._tex), this._tex && e2.setUniform("uSampler", this._tex), e2.setUniform("uTint", this._tint), e2.setUniform("uSpecular", this._useSpecularMaterial), e2.setUniform("uEmissive", this._useEmissiveMaterial), e2.setUniform("uShininess", this._useShininess), e2.setUniform("uUseLighting", this._enableLighting);
          var t2 = this.pointLightDiffuseColors.length / 3;
          e2.setUniform("uPointLightCount", t2), e2.setUniform("uPointLightLocation", this.pointLightPositions), e2.setUniform("uPointLightDiffuseColors", this.pointLightDiffuseColors), e2.setUniform("uPointLightSpecularColors", this.pointLightSpecularColors);
          var r2 = this.directionalLightDiffuseColors.length / 3;
          e2.setUniform("uDirectionalLightCount", r2), e2.setUniform("uLightingDirection", this.directionalLightDirections), e2.setUniform("uDirectionalDiffuseColors", this.directionalLightDiffuseColors), e2.setUniform("uDirectionalSpecularColors", this.directionalLightSpecularColors);
          var n2 = this.ambientLightColors.length / 3;
          e2.setUniform("uAmbientLightCount", n2), e2.setUniform("uAmbientColor", this.ambientLightColors);
          var o2 = this.spotLightDiffuseColors.length / 3;
          e2.setUniform("uSpotLightCount", o2), e2.setUniform("uSpotLightAngle", this.spotLightAngle), e2.setUniform("uSpotLightConc", this.spotLightConc), e2.setUniform("uSpotLightDiffuseColors", this.spotLightDiffuseColors), e2.setUniform("uSpotLightSpecularColors", this.spotLightSpecularColors), e2.setUniform("uSpotLightLocation", this.spotLightPositions), e2.setUniform("uSpotLightDirection", this.spotLightDirections), e2.setUniform("uConstantAttenuation", this.constantAttenuation), e2.setUniform("uLinearAttenuation", this.linearAttenuation), e2.setUniform("uQuadraticAttenuation", this.quadraticAttenuation), e2.bindTextures();
        }, u.default.RendererGL.prototype._setPointUniforms = function(e2) {
          e2.bindShader(), e2.setUniform("uMaterialColor", this.curStrokeColor), e2.setUniform("uPointSize", this.pointSize * this._pInst._pixelDensity);
        }, u.default.RendererGL.prototype._bindBuffer = function(e2, t2, r2, n2, o2) {
          if (t2 = t2 || this.GL.ARRAY_BUFFER, this.GL.bindBuffer(t2, e2), r2 !== void 0) {
            var i2 = new (n2 || Float32Array)(r2);
            this.GL.bufferData(t2, i2, o2 || this.GL.STATIC_DRAW);
          }
        }, u.default.RendererGL.prototype._arraysEqual = function(e2, t2) {
          var r2 = e2.length;
          if (r2 !== t2.length)
            return false;
          for (var n2 = 0; n2 < r2; n2++)
            if (e2[n2] !== t2[n2])
              return false;
          return true;
        }, u.default.RendererGL.prototype._isTypedArray = function(e2) {
          return Float32Array, Float64Array, Int16Array, Uint16Array, e2 instanceof Uint32Array;
        }, u.default.RendererGL.prototype._flatten = function(e2) {
          if (e2.length === 0)
            return [];
          if (2e4 < e2.length) {
            var t2, r2 = Object.prototype.toString, n2 = [], o2 = e2.slice();
            for (t2 = o2.pop(); r2.call(t2) === "[object Array]" ? o2.push.apply(o2, l(t2)) : n2.push(t2), o2.length && (t2 = o2.pop()) !== void 0; )
              ;
            return n2.reverse(), n2;
          }
          var i2;
          return (i2 = []).concat.apply(i2, l(e2));
        }, u.default.RendererGL.prototype._vToNArray = function(e2) {
          var t2 = [], r2 = true, n2 = false, o2 = void 0;
          try {
            for (var i2, a2 = e2[Symbol.iterator](); !(r2 = (i2 = a2.next()).done); r2 = true) {
              var s2 = i2.value;
              t2.push(s2.x, s2.y, s2.z);
            }
          } catch (e3) {
            n2 = true, o2 = e3;
          } finally {
            try {
              r2 || a2.return == null || a2.return();
            } finally {
              if (n2)
                throw o2;
            }
          }
          return t2;
        }, u.default.prototype._assert3d = function(e2) {
          if (!this._renderer.isP3D)
            throw new Error("".concat(e2, "() is only supported in WEBGL mode. If you'd like to use 3D graphics and WebGL, see  https://p5js.org/examples/form-3d-primitives.html for more information."));
        }, u.default.RendererGL.prototype._initTessy = function() {
          var e2 = new n.default.GluTesselator();
          return e2.gluTessCallback(n.default.gluEnum.GLU_TESS_VERTEX_DATA, function(e3, t2) {
            t2[t2.length] = e3[0], t2[t2.length] = e3[1], t2[t2.length] = e3[2];
          }), e2.gluTessCallback(n.default.gluEnum.GLU_TESS_BEGIN, function(e3) {
            e3 !== n.default.primitiveType.GL_TRIANGLES && console.log("expected TRIANGLES but got type: ".concat(e3));
          }), e2.gluTessCallback(n.default.gluEnum.GLU_TESS_ERROR, function(e3) {
            console.log("error callback"), console.log("error number: ".concat(e3));
          }), e2.gluTessCallback(n.default.gluEnum.GLU_TESS_COMBINE, function(e3, t2, r2) {
            return [e3[0], e3[1], e3[2]];
          }), e2.gluTessCallback(n.default.gluEnum.GLU_TESS_EDGE_FLAG, function(e3) {
          }), e2;
        }, u.default.RendererGL.prototype._triangulate = function(e2) {
          this._tessy.gluTessNormal(0, 0, 1);
          var t2 = [];
          this._tessy.gluTessBeginPolygon(t2);
          for (var r2 = 0; r2 < e2.length; r2++) {
            this._tessy.gluTessBeginContour();
            for (var n2 = e2[r2], o2 = 0; o2 < n2.length; o2 += 3) {
              var i2 = [n2[o2], n2[o2 + 1], n2[o2 + 2]];
              this._tessy.gluTessVertex(i2, i2);
            }
            this._tessy.gluTessEndContour();
          }
          return this._tessy.gluTessEndPolygon(), t2;
        }, u.default.RendererGL.prototype._bezierCoefficients = function(e2) {
          var t2 = e2 * e2, r2 = 1 - e2, n2 = r2 * r2;
          return [n2 * r2, 3 * n2 * e2, 3 * r2 * t2, t2 * e2];
        }, u.default.RendererGL.prototype._quadraticCoefficients = function(e2) {
          var t2 = 1 - e2;
          return [t2 * t2, 2 * t2 * e2, e2 * e2];
        }, u.default.RendererGL.prototype._bezierToCatmull = function(e2) {
          return [e2[1], e2[1] + (e2[2] - e2[0]) / this._curveTightness, e2[2] - (e2[3] - e2[1]) / this._curveTightness, e2[2]];
        };
        var f = u.default.RendererGL;
        r.default = f;
      }, { "../core/constants": 250, "../core/main": 260, "../core/p5.Renderer": 263, "./p5.Camera": 308, "./p5.Matrix": 310, "./p5.Shader": 315, "core-js/modules/es.array.concat": 148, "core-js/modules/es.array.fill": 150, "core-js/modules/es.array.filter": 151, "core-js/modules/es.array.from": 153, "core-js/modules/es.array.includes": 154, "core-js/modules/es.array.iterator": 156, "core-js/modules/es.array.slice": 160, "core-js/modules/es.object.assign": 170, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.regexp.to-string": 179, "core-js/modules/es.string.includes": 182, "core-js/modules/es.string.iterator": 183, "core-js/modules/es.symbol": 193, "core-js/modules/es.symbol.description": 191, "core-js/modules/es.symbol.iterator": 192, "core-js/modules/es.typed-array.copy-within": 194, "core-js/modules/es.typed-array.every": 195, "core-js/modules/es.typed-array.fill": 196, "core-js/modules/es.typed-array.filter": 197, "core-js/modules/es.typed-array.find": 199, "core-js/modules/es.typed-array.find-index": 198, "core-js/modules/es.typed-array.float32-array": 200, "core-js/modules/es.typed-array.float64-array": 201, "core-js/modules/es.typed-array.for-each": 202, "core-js/modules/es.typed-array.includes": 203, "core-js/modules/es.typed-array.index-of": 204, "core-js/modules/es.typed-array.int16-array": 205, "core-js/modules/es.typed-array.iterator": 207, "core-js/modules/es.typed-array.join": 208, "core-js/modules/es.typed-array.last-index-of": 209, "core-js/modules/es.typed-array.map": 210, "core-js/modules/es.typed-array.reduce": 212, "core-js/modules/es.typed-array.reduce-right": 211, "core-js/modules/es.typed-array.reverse": 213, "core-js/modules/es.typed-array.set": 214, "core-js/modules/es.typed-array.slice": 215, "core-js/modules/es.typed-array.some": 216, "core-js/modules/es.typed-array.sort": 217, "core-js/modules/es.typed-array.subarray": 218, "core-js/modules/es.typed-array.to-locale-string": 219, "core-js/modules/es.typed-array.to-string": 220, "core-js/modules/es.typed-array.uint16-array": 221, "core-js/modules/es.typed-array.uint32-array": 222, "core-js/modules/es.typed-array.uint8-array": 223, "core-js/modules/web.dom-collections.iterator": 226, libtess: 234, path: 237 }], 315: [function(e, t, r) {
        "use strict";
        e("core-js/modules/es.symbol"), e("core-js/modules/es.symbol.description"), e("core-js/modules/es.symbol.iterator"), e("core-js/modules/es.array.index-of"), e("core-js/modules/es.array.iterator"), e("core-js/modules/es.array.slice"), e("core-js/modules/es.function.name"), e("core-js/modules/es.object.to-string"), e("core-js/modules/es.string.iterator"), e("core-js/modules/web.dom-collections.iterator"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, o = (n = e("../core/main")) && n.__esModule ? n : { default: n };
        o.default.Shader = function(e2, t2, r2) {
          this._renderer = e2, this._vertSrc = t2, this._fragSrc = r2, this._vertShader = -1, this._fragShader = -1, this._glProgram = 0, this._loadedAttributes = false, this.attributes = {}, this._loadedUniforms = false, this.uniforms = {}, this._bound = false, this.samplers = [];
        }, o.default.Shader.prototype.init = function() {
          if (this._glProgram === 0) {
            var e2 = this._renderer.GL;
            if (this._vertShader = e2.createShader(e2.VERTEX_SHADER), e2.shaderSource(this._vertShader, this._vertSrc), e2.compileShader(this._vertShader), !e2.getShaderParameter(this._vertShader, e2.COMPILE_STATUS))
              return console.error("Yikes! An error occurred compiling the vertex shader:".concat(e2.getShaderInfoLog(this._vertShader))), null;
            if (this._fragShader = e2.createShader(e2.FRAGMENT_SHADER), e2.shaderSource(this._fragShader, this._fragSrc), e2.compileShader(this._fragShader), !e2.getShaderParameter(this._fragShader, e2.COMPILE_STATUS))
              return console.error("Darn! An error occurred compiling the fragment shader:".concat(e2.getShaderInfoLog(this._fragShader))), null;
            this._glProgram = e2.createProgram(), e2.attachShader(this._glProgram, this._vertShader), e2.attachShader(this._glProgram, this._fragShader), e2.linkProgram(this._glProgram), e2.getProgramParameter(this._glProgram, e2.LINK_STATUS) || console.error("Snap! Error linking shader program: ".concat(e2.getProgramInfoLog(this._glProgram))), this._loadAttributes(), this._loadUniforms();
          }
          return this;
        }, o.default.Shader.prototype._loadAttributes = function() {
          if (!this._loadedAttributes) {
            this.attributes = {};
            for (var e2 = this._renderer.GL, t2 = e2.getProgramParameter(this._glProgram, e2.ACTIVE_ATTRIBUTES), r2 = 0; r2 < t2; ++r2) {
              var n2 = e2.getActiveAttrib(this._glProgram, r2), o2 = n2.name, i2 = e2.getAttribLocation(this._glProgram, o2), a = {};
              a.name = o2, a.location = i2, a.index = r2, a.type = n2.type, a.size = n2.size, this.attributes[o2] = a;
            }
            this._loadedAttributes = true;
          }
        }, o.default.Shader.prototype._loadUniforms = function() {
          if (!this._loadedUniforms) {
            for (var e2 = this._renderer.GL, t2 = e2.getProgramParameter(this._glProgram, e2.ACTIVE_UNIFORMS), r2 = 0, n2 = 0; n2 < t2; ++n2) {
              var o2 = e2.getActiveUniform(this._glProgram, n2), i2 = {};
              i2.location = e2.getUniformLocation(this._glProgram, o2.name), i2.size = o2.size;
              var a = o2.name;
              1 < o2.size && (a = a.substring(0, a.indexOf("[0]"))), i2.name = a, i2.type = o2.type, i2._cachedData = void 0, i2.type === e2.SAMPLER_2D && (i2.samplerIndex = r2, r2++, this.samplers.push(i2)), i2.isArray = i2.type === e2.FLOAT_MAT3 || i2.type === e2.FLOAT_MAT4 || i2.type === e2.FLOAT_VEC2 || i2.type === e2.FLOAT_VEC3 || i2.type === e2.FLOAT_VEC4 || i2.type === e2.INT_VEC2 || i2.type === e2.INT_VEC3 || i2.type === e2.INT_VEC4, this.uniforms[a] = i2;
            }
            this._loadedUniforms = true;
          }
        }, o.default.Shader.prototype.compile = function() {
        }, o.default.Shader.prototype.bindShader = function() {
          this.init(), this._bound || (this.useProgram(), this._bound = true, this._setMatrixUniforms(), this.setUniform("uViewport", this._renderer._viewport));
        }, o.default.Shader.prototype.unbindShader = function() {
          return this._bound && (this.unbindTextures(), this._bound = false), this;
        }, o.default.Shader.prototype.bindTextures = function() {
          var e2 = this._renderer.GL, t2 = true, r2 = false, n2 = void 0;
          try {
            for (var o2, i2 = this.samplers[Symbol.iterator](); !(t2 = (o2 = i2.next()).done); t2 = true) {
              var a = o2.value, s = a.texture;
              s === void 0 && (s = this._renderer._getEmptyTexture()), e2.activeTexture(e2.TEXTURE0 + a.samplerIndex), s.bindTexture(), s.update(), e2.uniform1i(a.location, a.samplerIndex);
            }
          } catch (e3) {
            r2 = true, n2 = e3;
          } finally {
            try {
              t2 || i2.return == null || i2.return();
            } finally {
              if (r2)
                throw n2;
            }
          }
        }, o.default.Shader.prototype.updateTextures = function() {
          var e2 = true, t2 = false, r2 = void 0;
          try {
            for (var n2, o2 = this.samplers[Symbol.iterator](); !(e2 = (n2 = o2.next()).done); e2 = true) {
              var i2 = n2.value.texture;
              i2 && i2.update();
            }
          } catch (e3) {
            t2 = true, r2 = e3;
          } finally {
            try {
              e2 || o2.return == null || o2.return();
            } finally {
              if (t2)
                throw r2;
            }
          }
        }, o.default.Shader.prototype.unbindTextures = function() {
        }, o.default.Shader.prototype._setMatrixUniforms = function() {
          this.setUniform("uProjectionMatrix", this._renderer.uPMatrix.mat4), this.isStrokeShader() && (this._renderer._curCamera.cameraType === "default" ? this.setUniform("uPerspective", 1) : this.setUniform("uPerspective", 0)), this.setUniform("uModelViewMatrix", this._renderer.uMVMatrix.mat4), this.setUniform("uViewMatrix", this._renderer._curCamera.cameraMatrix.mat4), this.uniforms.uNormalMatrix && (this._renderer.uNMatrix.inverseTranspose(this._renderer.uMVMatrix), this.setUniform("uNormalMatrix", this._renderer.uNMatrix.mat3));
        }, o.default.Shader.prototype.useProgram = function() {
          var e2 = this._renderer.GL;
          return this._renderer._curShader !== this && (e2.useProgram(this._glProgram), this._renderer._curShader = this), this;
        }, o.default.Shader.prototype.setUniform = function(e2, t2) {
          var r2 = this.uniforms[e2];
          if (r2) {
            var n2 = this._renderer.GL;
            if (r2.isArray) {
              if (r2._cachedData && this._renderer._arraysEqual(r2._cachedData, t2))
                return;
              r2._cachedData = t2.slice(0);
            } else {
              if (r2._cachedData && r2._cachedData === t2)
                return;
              r2._cachedData = t2;
            }
            var o2 = r2.location;
            switch (this.useProgram(), r2.type) {
              case n2.BOOL:
                t2 === true ? n2.uniform1i(o2, 1) : n2.uniform1i(o2, 0);
                break;
              case n2.INT:
                1 < r2.size ? t2.length && n2.uniform1iv(o2, t2) : n2.uniform1i(o2, t2);
                break;
              case n2.FLOAT:
                1 < r2.size ? t2.length && n2.uniform1fv(o2, t2) : n2.uniform1f(o2, t2);
                break;
              case n2.FLOAT_MAT3:
                n2.uniformMatrix3fv(o2, false, t2);
                break;
              case n2.FLOAT_MAT4:
                n2.uniformMatrix4fv(o2, false, t2);
                break;
              case n2.FLOAT_VEC2:
                1 < r2.size ? t2.length && n2.uniform2fv(o2, t2) : n2.uniform2f(o2, t2[0], t2[1]);
                break;
              case n2.FLOAT_VEC3:
                1 < r2.size ? t2.length && n2.uniform3fv(o2, t2) : n2.uniform3f(o2, t2[0], t2[1], t2[2]);
                break;
              case n2.FLOAT_VEC4:
                1 < r2.size ? t2.length && n2.uniform4fv(o2, t2) : n2.uniform4f(o2, t2[0], t2[1], t2[2], t2[3]);
                break;
              case n2.INT_VEC2:
                1 < r2.size ? t2.length && n2.uniform2iv(o2, t2) : n2.uniform2i(o2, t2[0], t2[1]);
                break;
              case n2.INT_VEC3:
                1 < r2.size ? t2.length && n2.uniform3iv(o2, t2) : n2.uniform3i(o2, t2[0], t2[1], t2[2]);
                break;
              case n2.INT_VEC4:
                1 < r2.size ? t2.length && n2.uniform4iv(o2, t2) : n2.uniform4i(o2, t2[0], t2[1], t2[2], t2[3]);
                break;
              case n2.SAMPLER_2D:
                n2.activeTexture(n2.TEXTURE0 + r2.samplerIndex), r2.texture = this._renderer.getTexture(t2), n2.uniform1i(r2.location, r2.samplerIndex);
            }
            return this;
          }
        }, o.default.Shader.prototype.isLightShader = function() {
          return this.attributes.aNormal !== void 0 || this.uniforms.uUseLighting !== void 0 || this.uniforms.uAmbientLightCount !== void 0 || this.uniforms.uDirectionalLightCount !== void 0 || this.uniforms.uPointLightCount !== void 0 || this.uniforms.uAmbientColor !== void 0 || this.uniforms.uDirectionalDiffuseColors !== void 0 || this.uniforms.uDirectionalSpecularColors !== void 0 || this.uniforms.uPointLightLocation !== void 0 || this.uniforms.uPointLightDiffuseColors !== void 0 || this.uniforms.uPointLightSpecularColors !== void 0 || this.uniforms.uLightingDirection !== void 0 || this.uniforms.uSpecular !== void 0;
        }, o.default.Shader.prototype.isNormalShader = function() {
          return this.attributes.aNormal !== void 0;
        }, o.default.Shader.prototype.isTextureShader = function() {
          return 0 < this.samplerIndex;
        }, o.default.Shader.prototype.isColorShader = function() {
          return this.attributes.aVertexColor !== void 0 || this.uniforms.uMaterialColor !== void 0;
        }, o.default.Shader.prototype.isTexLightShader = function() {
          return this.isLightShader() && this.isTextureShader();
        }, o.default.Shader.prototype.isStrokeShader = function() {
          return this.uniforms.uStrokeWeight !== void 0;
        }, o.default.Shader.prototype.enableAttrib = function(e2, t2, r2, n2, o2, i2) {
          if (e2) {
            0;
            var a = e2.location;
            if (a !== -1) {
              var s = this._renderer.GL;
              e2.enabled || (s.enableVertexAttribArray(a), e2.enabled = true), this._renderer.GL.vertexAttribPointer(a, t2, r2 || s.FLOAT, n2 || false, o2 || 0, i2 || 0);
            }
          }
          return this;
        };
        var i = o.default.Shader;
        r.default = i;
      }, { "../core/main": 260, "core-js/modules/es.array.index-of": 155, "core-js/modules/es.array.iterator": 156, "core-js/modules/es.array.slice": 160, "core-js/modules/es.function.name": 163, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.string.iterator": 183, "core-js/modules/es.symbol": 193, "core-js/modules/es.symbol.description": 191, "core-js/modules/es.symbol.iterator": 192, "core-js/modules/web.dom-collections.iterator": 226 }], 316: [function(e, t, r) {
        "use strict";
        function a(e2) {
          return (a = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e3) {
            return typeof e3;
          } : function(e3) {
            return e3 && typeof Symbol == "function" && e3.constructor === Symbol && e3 !== Symbol.prototype ? "symbol" : typeof e3;
          })(e2);
        }
        e("core-js/modules/es.array.iterator"), e("core-js/modules/es.object.to-string"), e("core-js/modules/es.typed-array.uint8-array"), e("core-js/modules/es.typed-array.copy-within"), e("core-js/modules/es.typed-array.every"), e("core-js/modules/es.typed-array.fill"), e("core-js/modules/es.typed-array.filter"), e("core-js/modules/es.typed-array.find"), e("core-js/modules/es.typed-array.find-index"), e("core-js/modules/es.typed-array.for-each"), e("core-js/modules/es.typed-array.includes"), e("core-js/modules/es.typed-array.index-of"), e("core-js/modules/es.typed-array.iterator"), e("core-js/modules/es.typed-array.join"), e("core-js/modules/es.typed-array.last-index-of"), e("core-js/modules/es.typed-array.map"), e("core-js/modules/es.typed-array.reduce"), e("core-js/modules/es.typed-array.reduce-right"), e("core-js/modules/es.typed-array.reverse"), e("core-js/modules/es.typed-array.set"), e("core-js/modules/es.typed-array.slice"), e("core-js/modules/es.typed-array.some"), e("core-js/modules/es.typed-array.sort"), e("core-js/modules/es.typed-array.subarray"), e("core-js/modules/es.typed-array.to-locale-string"), e("core-js/modules/es.typed-array.to-string"), Object.defineProperty(r, "__esModule", { value: true }), r.default = void 0;
        var n, o = (n = e("../core/main")) && n.__esModule ? n : { default: n }, s = function(e2) {
          if (e2 && e2.__esModule)
            return e2;
          if (e2 === null || a(e2) !== "object" && typeof e2 != "function")
            return { default: e2 };
          var t2 = l();
          if (t2 && t2.has(e2))
            return t2.get(e2);
          var r2 = {}, n2 = Object.defineProperty && Object.getOwnPropertyDescriptor;
          for (var o2 in e2)
            if (Object.prototype.hasOwnProperty.call(e2, o2)) {
              var i2 = n2 ? Object.getOwnPropertyDescriptor(e2, o2) : null;
              i2 && (i2.get || i2.set) ? Object.defineProperty(r2, o2, i2) : r2[o2] = e2[o2];
            }
          r2.default = e2, t2 && t2.set(e2, r2);
          return r2;
        }(e("../core/constants"));
        function l() {
          if (typeof WeakMap != "function")
            return null;
          var e2 = new WeakMap();
          return l = function() {
            return e2;
          }, e2;
        }
        o.default.Texture = function(e2, t2) {
          this._renderer = e2;
          var r2 = this._renderer.GL;
          this.src = t2, this.glTex = void 0, this.glTarget = r2.TEXTURE_2D, this.glFormat = r2.RGBA, this.mipmaps = false, this.glMinFilter = r2.LINEAR, this.glMagFilter = r2.LINEAR, this.glWrapS = r2.CLAMP_TO_EDGE, this.glWrapT = r2.CLAMP_TO_EDGE, this.isSrcMediaElement = o.default.MediaElement !== void 0 && t2 instanceof o.default.MediaElement, this._videoPrevUpdateTime = 0, this.isSrcHTMLElement = o.default.Element !== void 0 && t2 instanceof o.default.Element && !(t2 instanceof o.default.Graphics), this.isSrcP5Image = t2 instanceof o.default.Image, this.isSrcP5Graphics = t2 instanceof o.default.Graphics, this.isImageData = typeof ImageData != "undefined" && t2 instanceof ImageData;
          var n2 = this._getTextureDataFromSource();
          return this.width = n2.width, this.height = n2.height, this.init(n2), this;
        }, o.default.Texture.prototype._getTextureDataFromSource = function() {
          var e2;
          return this.isSrcP5Image ? e2 = this.src.canvas : this.isSrcMediaElement || this.isSrcP5Graphics || this.isSrcHTMLElement ? e2 = this.src.elt : this.isImageData && (e2 = this.src), e2;
        }, o.default.Texture.prototype.init = function(e2) {
          var t2 = this._renderer.GL;
          if (this.glTex = t2.createTexture(), this.glWrapS = this._renderer.textureWrapX, this.glWrapT = this._renderer.textureWrapY, this.setWrapMode(this.glWrapS, this.glWrapT), this.bindTexture(), t2.texParameteri(t2.TEXTURE_2D, t2.TEXTURE_MAG_FILTER, this.glMagFilter), t2.texParameteri(t2.TEXTURE_2D, t2.TEXTURE_MIN_FILTER, this.glMinFilter), this.width === 0 || this.height === 0 || this.isSrcMediaElement && !this.src.loadedmetadata) {
            var r2 = new Uint8Array([1, 1, 1, 1]);
            t2.texImage2D(this.glTarget, 0, t2.RGBA, 1, 1, 0, this.glFormat, t2.UNSIGNED_BYTE, r2);
          } else
            t2.texImage2D(this.glTarget, 0, this.glFormat, this.glFormat, t2.UNSIGNED_BYTE, e2);
        }, o.default.Texture.prototype.update = function() {
          var e2 = this.src;
          if (e2.width === 0 || e2.height === 0)
            return false;
          var t2 = this._getTextureDataFromSource(), r2 = false, n2 = this._renderer.GL;
          return t2.width !== this.width || t2.height !== this.height ? (r2 = true, this.width = t2.width, this.height = t2.height, this.isSrcP5Image ? e2.setModified(false) : (this.isSrcMediaElement || this.isSrcHTMLElement) && e2.setModified(true)) : this.isSrcP5Image ? e2.isModified() && (r2 = true, e2.setModified(false)) : this.isSrcMediaElement ? e2.isModified() ? (r2 = true, e2.setModified(false)) : e2.loadedmetadata && this._videoPrevUpdateTime !== e2.time() && (this._videoPrevUpdateTime = e2.time(), r2 = true) : this.isImageData ? e2._dirty && (r2 = !(e2._dirty = false)) : r2 = true, r2 && (this.bindTexture(), n2.texImage2D(this.glTarget, 0, this.glFormat, this.glFormat, n2.UNSIGNED_BYTE, t2)), r2;
        }, o.default.Texture.prototype.bindTexture = function() {
          return this._renderer.GL.bindTexture(this.glTarget, this.glTex), this;
        }, o.default.Texture.prototype.unbindTexture = function() {
          this._renderer.GL.bindTexture(this.glTarget, null);
        }, o.default.Texture.prototype.setInterpolation = function(e2, t2) {
          var r2 = this._renderer.GL;
          e2 === s.NEAREST ? this.glMinFilter = r2.NEAREST : this.glMinFilter = r2.LINEAR, t2 === s.NEAREST ? this.glMagFilter = r2.NEAREST : this.glMagFilter = r2.LINEAR, this.bindTexture(), r2.texParameteri(r2.TEXTURE_2D, r2.TEXTURE_MIN_FILTER, this.glMinFilter), r2.texParameteri(r2.TEXTURE_2D, r2.TEXTURE_MAG_FILTER, this.glMagFilter), this.unbindTexture();
        }, o.default.Texture.prototype.setWrapMode = function(e2, t2) {
          function r2(e3) {
            return (e3 & e3 - 1) == 0;
          }
          var n2 = this._renderer.GL, o2 = r2(this.width), i2 = r2(this.height);
          e2 === s.REPEAT ? o2 && i2 ? this.glWrapS = n2.REPEAT : (console.warn("You tried to set the wrap mode to REPEAT but the texture size is not a power of two. Setting to CLAMP instead"), this.glWrapS = n2.CLAMP_TO_EDGE) : e2 === s.MIRROR ? o2 && i2 ? this.glWrapS = n2.MIRRORED_REPEAT : (console.warn("You tried to set the wrap mode to MIRROR but the texture size is not a power of two. Setting to CLAMP instead"), this.glWrapS = n2.CLAMP_TO_EDGE) : this.glWrapS = n2.CLAMP_TO_EDGE, t2 === s.REPEAT ? o2 && i2 ? this.glWrapT = n2.REPEAT : (console.warn("You tried to set the wrap mode to REPEAT but the texture size is not a power of two. Setting to CLAMP instead"), this.glWrapT = n2.CLAMP_TO_EDGE) : t2 === s.MIRROR ? o2 && i2 ? this.glWrapT = n2.MIRRORED_REPEAT : (console.warn("You tried to set the wrap mode to MIRROR but the texture size is not a power of two. Setting to CLAMP instead"), this.glWrapT = n2.CLAMP_TO_EDGE) : this.glWrapT = n2.CLAMP_TO_EDGE, this.bindTexture(), n2.texParameteri(n2.TEXTURE_2D, n2.TEXTURE_WRAP_S, this.glWrapS), n2.texParameteri(n2.TEXTURE_2D, n2.TEXTURE_WRAP_T, this.glWrapT), this.unbindTexture();
        };
        var i = o.default.Texture;
        r.default = i;
      }, { "../core/constants": 250, "../core/main": 260, "core-js/modules/es.array.iterator": 156, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.typed-array.copy-within": 194, "core-js/modules/es.typed-array.every": 195, "core-js/modules/es.typed-array.fill": 196, "core-js/modules/es.typed-array.filter": 197, "core-js/modules/es.typed-array.find": 199, "core-js/modules/es.typed-array.find-index": 198, "core-js/modules/es.typed-array.for-each": 202, "core-js/modules/es.typed-array.includes": 203, "core-js/modules/es.typed-array.index-of": 204, "core-js/modules/es.typed-array.iterator": 207, "core-js/modules/es.typed-array.join": 208, "core-js/modules/es.typed-array.last-index-of": 209, "core-js/modules/es.typed-array.map": 210, "core-js/modules/es.typed-array.reduce": 212, "core-js/modules/es.typed-array.reduce-right": 211, "core-js/modules/es.typed-array.reverse": 213, "core-js/modules/es.typed-array.set": 214, "core-js/modules/es.typed-array.slice": 215, "core-js/modules/es.typed-array.some": 216, "core-js/modules/es.typed-array.sort": 217, "core-js/modules/es.typed-array.subarray": 218, "core-js/modules/es.typed-array.to-locale-string": 219, "core-js/modules/es.typed-array.to-string": 220, "core-js/modules/es.typed-array.uint8-array": 223 }], 317: [function(e, t, r) {
        "use strict";
        function a(e2) {
          return (a = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e3) {
            return typeof e3;
          } : function(e3) {
            return e3 && typeof Symbol == "function" && e3.constructor === Symbol && e3 !== Symbol.prototype ? "symbol" : typeof e3;
          })(e2);
        }
        e("core-js/modules/es.symbol"), e("core-js/modules/es.symbol.description"), e("core-js/modules/es.symbol.iterator"), e("core-js/modules/es.array.iterator"), e("core-js/modules/es.object.to-string"), e("core-js/modules/es.regexp.exec"), e("core-js/modules/es.string.iterator"), e("core-js/modules/es.string.split"), e("core-js/modules/es.string.sub"), e("core-js/modules/web.dom-collections.iterator");
        var n, G = (n = e("../core/main")) && n.__esModule ? n : { default: n }, A = function(e2) {
          if (e2 && e2.__esModule)
            return e2;
          if (e2 === null || a(e2) !== "object" && typeof e2 != "function")
            return { default: e2 };
          var t2 = s();
          if (t2 && t2.has(e2))
            return t2.get(e2);
          var r2 = {}, n2 = Object.defineProperty && Object.getOwnPropertyDescriptor;
          for (var o2 in e2)
            if (Object.prototype.hasOwnProperty.call(e2, o2)) {
              var i = n2 ? Object.getOwnPropertyDescriptor(e2, o2) : null;
              i && (i.get || i.set) ? Object.defineProperty(r2, o2, i) : r2[o2] = e2[o2];
            }
          r2.default = e2, t2 && t2.set(e2, r2);
          return r2;
        }(e("../core/constants"));
        function s() {
          if (typeof WeakMap != "function")
            return null;
          var e2 = new WeakMap();
          return s = function() {
            return e2;
          }, e2;
        }
        e("./p5.Shader"), e("./p5.RendererGL.Retained"), G.default.RendererGL.prototype._applyTextProperties = function() {
        }, G.default.RendererGL.prototype.textWidth = function(e2) {
          return this._isOpenType() ? this._textFont._textWidth(e2, this._textSize) : 0;
        };
        function o(e2, t2) {
          this.width = e2, this.height = t2, this.infos = [], this.findImage = function(e3) {
            var t3, r2, n2 = this.width * this.height;
            if (n2 < e3)
              throw new Error("font is too complex to render in 3D");
            for (var o2 = this.infos.length - 1; 0 <= o2; --o2) {
              var i = this.infos[o2];
              if (i.index + e3 < n2) {
                r2 = (t3 = i).imageData;
                break;
              }
            }
            if (!t3) {
              try {
                r2 = new ImageData(this.width, this.height);
              } catch (e4) {
                var a2 = document.getElementsByTagName("canvas")[0], s2 = !a2;
                a2 || ((a2 = document.createElement("canvas")).style.display = "none", document.body.appendChild(a2));
                var l = a2.getContext("2d");
                l && (r2 = l.createImageData(this.width, this.height)), s2 && document.body.removeChild(a2);
              }
              t3 = { index: 0, imageData: r2 }, this.infos.push(t3);
            }
            var u = t3.index;
            return t3.index += e3, r2._dirty = true, { imageData: r2, index: u };
          };
        }
        function V(e2, t2, r2, n2, o2) {
          var i = e2.imageData.data, a2 = 4 * e2.index++;
          i[a2++] = t2, i[a2++] = r2, i[a2++] = n2, i[a2++] = o2;
        }
        function R(e2) {
          this.font = e2, this.strokeImageInfos = new o(64, 64), this.colDimImageInfos = new o(64, 64), this.rowDimImageInfos = new o(64, 64), this.colCellImageInfos = new o(64, 64), this.rowCellImageInfos = new o(64, 64), this.glyphInfos = {}, this.getGlyphInfo = function(e3) {
            var t2 = this.glyphInfos[e3.index];
            if (t2)
              return t2;
            var r2, n2 = e3.getBoundingBox(), o2 = n2.x1, i = n2.y1, a2 = n2.x2 - o2, s2 = n2.y2 - i, l = e3.path.commands;
            if (a2 == 0 || s2 == 0 || !l.length)
              return this.glyphInfos[e3.index] = {};
            var u, c, d, f, h = [], p = [], y = [];
            for (r2 = 8; 0 <= r2; --r2)
              y.push([]);
            for (r2 = 8; 0 <= r2; --r2)
              p.push([]);
            function m(e4, t3, r3) {
              var n3 = h.length;
              function o3(e5, t4, r4) {
                for (var n4 = e5.length; 0 < n4--; ) {
                  var o4 = e5[n4];
                  o4 < t4 && (t4 = o4), r4 < o4 && (r4 = o4);
                }
                return { min: t4, max: r4 };
              }
              h.push(r3);
              for (var i2 = o3(e4, 1, 0), a3 = Math.max(Math.floor(9 * i2.min), 0), s3 = Math.min(Math.ceil(9 * i2.max), 9), l2 = a3; l2 < s3; ++l2)
                y[l2].push(n3);
              for (var u2 = o3(t3, 1, 0), c2 = Math.max(Math.floor(9 * u2.min), 0), d2 = Math.min(Math.ceil(9 * u2.max), 9), f2 = c2; f2 < d2; ++f2)
                p[f2].push(n3);
            }
            function g(e4) {
              return (t3 = (n3 = 255) * e4) < (r3 = 0) ? r3 : n3 < t3 ? n3 : t3;
              var t3, r3, n3;
            }
            function w(e4, t3, r3, n3) {
              this.p0 = e4, this.c0 = t3, this.c1 = r3, this.p1 = n3, this.toQuadratic = function() {
                return { x: this.p0.x, y: this.p0.y, x1: this.p1.x, y1: this.p1.y, cx: (3 * (this.c0.x + this.c1.x) - (this.p0.x + this.p1.x)) / 4, cy: (3 * (this.c0.y + this.c1.y) - (this.p0.y + this.p1.y)) / 4 };
              }, this.quadError = function() {
                return G.default.Vector.sub(G.default.Vector.sub(this.p1, this.p0), G.default.Vector.mult(G.default.Vector.sub(this.c1, this.c0), 3)).mag() / 2;
              }, this.split = function(e5) {
                var t4 = G.default.Vector.lerp(this.p0, this.c0, e5), r4 = G.default.Vector.lerp(this.c0, this.c1, e5), n4 = G.default.Vector.lerp(t4, r4, e5);
                this.c1 = G.default.Vector.lerp(this.c1, this.p1, e5), this.c0 = G.default.Vector.lerp(r4, this.c1, e5);
                var o3 = G.default.Vector.lerp(n4, this.c0, e5), i2 = new w(this.p0, t4, n4, o3);
                return this.p0 = o3, i2;
              }, this.splitInflections = function() {
                var e5 = G.default.Vector.sub(this.c0, this.p0), t4 = G.default.Vector.sub(G.default.Vector.sub(this.c1, this.c0), e5), r4 = G.default.Vector.sub(G.default.Vector.sub(G.default.Vector.sub(this.p1, this.c1), e5), G.default.Vector.mult(t4, 2)), n4 = [], o3 = t4.x * r4.y - t4.y * r4.x;
                if (o3 !== 0) {
                  var i2 = e5.x * r4.y - e5.y * r4.x, a3 = e5.x * t4.y - e5.y * t4.x, s3 = i2 * i2 - 4 * o3 * a3;
                  if (0 <= s3) {
                    o3 < 0 && (o3 = -o3, i2 = -i2, a3 = -a3);
                    var l2 = Math.sqrt(s3), u2 = (-i2 - l2) / (2 * o3), c2 = (-i2 + l2) / (2 * o3);
                    0 < u2 && u2 < 1 && (n4.push(this.split(u2)), c2 = 1 - (1 - c2) / (1 - u2)), 0 < c2 && c2 < 1 && n4.push(this.split(c2));
                  }
                }
                return n4.push(this), n4;
              };
            }
            function v(e4, t3, r3, n3, o3, i2, a3, s3) {
              var l2 = new w(new G.default.Vector(e4, t3), new G.default.Vector(r3, n3), new G.default.Vector(o3, i2), new G.default.Vector(a3, s3)).splitInflections(), u2 = [], c2 = 30 / z, d2 = true, f2 = false, h2 = void 0;
              try {
                for (var p2, y2 = l2[Symbol.iterator](); !(d2 = (p2 = y2.next()).done); d2 = true) {
                  for (var m2 = p2.value, g2 = [], v2 = void 0; !(0.125 <= (v2 = c2 / m2.quadError())); ) {
                    var b2 = Math.pow(v2, 1 / 3), _2 = m2.split(b2), x2 = m2.split(1 - b2 / (1 - b2));
                    u2.push(_2), g2.push(m2), m2 = x2;
                  }
                  v2 < 1 && u2.push(m2.split(0.5)), u2.push(m2), Array.prototype.push.apply(u2, g2.reverse());
                }
              } catch (e5) {
                f2 = true, h2 = e5;
              } finally {
                try {
                  d2 || y2.return == null || y2.return();
                } finally {
                  if (f2)
                    throw h2;
                }
              }
              return u2;
            }
            function b(e4, t3, r3, n3) {
              m([e4, r3], [t3, n3], { x: e4, y: t3, cx: (e4 + r3) / 2, cy: (t3 + n3) / 2 });
            }
            function _(e4, t3, r3, n3) {
              return Math.abs(r3 - e4) < 1e-5 && Math.abs(n3 - t3) < 1e-5;
            }
            var x = true, S = false, j = void 0;
            try {
              for (var M, E = l[Symbol.iterator](); !(x = (M = E.next()).done); x = true) {
                var T = M.value, O = (T.x - o2) / a2, C = (T.y - i) / s2;
                if (!_(u, c, O, C)) {
                  switch (T.type) {
                    case "M":
                      d = O, f = C;
                      break;
                    case "L":
                      b(u, c, O, C);
                      break;
                    case "Q":
                      var L = (T.x1 - o2) / a2, P = (T.y1 - i) / s2;
                      m([u, O, L], [c, C, P], { x: u, y: c, cx: L, cy: P });
                      break;
                    case "Z":
                      _(u, c, d, f) ? h.push({ x: u, y: c }) : (b(u, c, d, f), h.push({ x: d, y: f }));
                      break;
                    case "C":
                      for (var k = v(u, c, (T.x1 - o2) / a2, (T.y1 - i) / s2, (T.x2 - o2) / a2, (T.y2 - i) / s2, O, C), A2 = 0; A2 < k.length; A2++) {
                        var R2 = k[A2].toQuadratic();
                        m([R2.x, R2.x1, R2.cx], [R2.y, R2.y1, R2.cy], R2);
                      }
                      break;
                    default:
                      throw new Error("unknown command type: ".concat(T.type));
                  }
                  u = O, c = C;
                }
              }
            } catch (e4) {
              S = true, j = e4;
            } finally {
              try {
                x || E.return == null || E.return();
              } finally {
                if (S)
                  throw j;
              }
            }
            for (var D = h.length, I = this.strokeImageInfos.findImage(D), U = I.index, N = 0; N < D; ++N) {
              var F = h[N];
              V(I, g(F.x), g(F.y), g(F.cx), g(F.cy));
            }
            function B(e4, t3, r3) {
              for (var n3 = e4.length, o3 = t3.findImage(n3), i2 = o3.index, a3 = 0, s3 = 0; s3 < n3; ++s3)
                a3 += e4[s3].length;
              for (var l2 = r3.findImage(a3), u2 = 0; u2 < n3; ++u2) {
                var c2 = e4[u2], d2 = c2.length, f2 = l2.index;
                V(o3, f2 >> 7, 127 & f2, d2 >> 7, 127 & d2);
                for (var h2 = 0; h2 < d2; ++h2) {
                  var p2 = c2[h2] + U;
                  V(l2, p2 >> 7, 127 & p2, 0, 0);
                }
              }
              return { cellImageInfo: l2, dimOffset: i2, dimImageInfo: o3 };
            }
            return (t2 = this.glyphInfos[e3.index] = { glyph: e3, uGlyphRect: [n2.x1, -n2.y1, n2.x2, -n2.y2], strokeImageInfo: I, strokes: h, colInfo: B(y, this.colDimImageInfos, this.colCellImageInfos), rowInfo: B(p, this.rowDimImageInfos, this.rowCellImageInfos) }).uGridOffset = [t2.colInfo.dimOffset, t2.rowInfo.dimOffset], t2;
          };
        }
        var z = Math.sqrt(3);
        G.default.RendererGL.prototype._renderText = function(e2, t2, r2, n2, o2) {
          if (this._textFont && typeof this._textFont != "string") {
            if (!(o2 <= n2) && this._doFill) {
              if (!this._isOpenType())
                return console.log("WEBGL: only Opentype (.otf) and Truetype (.ttf) fonts are supported"), e2;
              e2.push();
              var i = this._doStroke, a2 = this.drawMode;
              this._doStroke = false, this.drawMode = A.TEXTURE;
              var s2 = this._textFont.font, l = this._textFont._fontInfo;
              l = l || (this._textFont._fontInfo = new R(s2));
              var u = this._textFont._handleAlignment(this, t2, r2, n2), c = this._textSize / s2.unitsPerEm;
              this.translate(u.x, u.y, 0), this.scale(c, c, 1);
              var d = this.GL, f = !this._defaultFontShader, h = this._getFontShader();
              h.init(), h.bindShader(), f && (h.setUniform("uGridImageSize", [64, 64]), h.setUniform("uCellsImageSize", [64, 64]), h.setUniform("uStrokeImageSize", [64, 64]), h.setUniform("uGridSize", [9, 9])), this._applyColorBlend(this.curFillColor);
              var p = this.retainedMode.geometry.glyph;
              if (!p) {
                var y = this._textGeom = new G.default.Geometry(1, 1, function() {
                  for (var e3 = 0; e3 <= 1; e3++)
                    for (var t3 = 0; t3 <= 1; t3++)
                      this.vertices.push(new G.default.Vector(t3, e3, 0)), this.uvs.push(t3, e3);
                });
                y.computeFaces().computeNormals(), p = this.createBuffers("glyph", y);
              }
              var m = true, g = false, v = void 0;
              try {
                for (var b, _ = this.retainedMode.buffers.text[Symbol.iterator](); !(m = (b = _.next()).done); m = true) {
                  b.value._prepareBuffer(p, h);
                }
              } catch (e3) {
                g = true, v = e3;
              } finally {
                try {
                  m || _.return == null || _.return();
                } finally {
                  if (g)
                    throw v;
                }
              }
              this._bindBuffer(p.indexBuffer, d.ELEMENT_ARRAY_BUFFER), h.setUniform("uMaterialColor", this.curFillColor);
              try {
                var x = 0, w = null, S = s2.stringToGlyphs(t2), j = true, M = false, E = void 0;
                try {
                  for (var T, O = S[Symbol.iterator](); !(j = (T = O.next()).done); j = true) {
                    var C = T.value;
                    w && (x += s2.getKerningValue(w, C));
                    var L = l.getGlyphInfo(C);
                    if (L.uGlyphRect) {
                      var P = L.rowInfo, k = L.colInfo;
                      h.setUniform("uSamplerStrokes", L.strokeImageInfo.imageData), h.setUniform("uSamplerRowStrokes", P.cellImageInfo.imageData), h.setUniform("uSamplerRows", P.dimImageInfo.imageData), h.setUniform("uSamplerColStrokes", k.cellImageInfo.imageData), h.setUniform("uSamplerCols", k.dimImageInfo.imageData), h.setUniform("uGridOffset", L.uGridOffset), h.setUniform("uGlyphRect", L.uGlyphRect), h.setUniform("uGlyphOffset", x), h.bindTextures(), d.drawElements(d.TRIANGLES, 6, this.GL.UNSIGNED_SHORT, 0);
                    }
                    x += C.advanceWidth, w = C;
                  }
                } catch (e3) {
                  M = true, E = e3;
                } finally {
                  try {
                    j || O.return == null || O.return();
                  } finally {
                    if (M)
                      throw E;
                  }
                }
              } finally {
                h.unbindShader(), this._doStroke = i, this.drawMode = a2, e2.pop();
              }
              return e2;
            }
          } else
            console.log("WEBGL: you must load and set a font before drawing text. See `loadFont` and `textFont` for more details.");
        };
      }, { "../core/constants": 250, "../core/main": 260, "./p5.RendererGL.Retained": 313, "./p5.Shader": 315, "core-js/modules/es.array.iterator": 156, "core-js/modules/es.object.to-string": 174, "core-js/modules/es.regexp.exec": 178, "core-js/modules/es.string.iterator": 183, "core-js/modules/es.string.split": 188, "core-js/modules/es.string.sub": 189, "core-js/modules/es.symbol": 193, "core-js/modules/es.symbol.description": 191, "core-js/modules/es.symbol.iterator": 192, "core-js/modules/web.dom-collections.iterator": 226 }] }, {}, [245])(245);
    });
  }
});

// dep:p5
var p5_default = require_p5_min();
export {
  p5_default as default
};
/*! p5.js v1.4.0 June 29, 2021 */
//# sourceMappingURL=p5.js.map
