(() => {
  var __defProp = Object.defineProperty;
  var __getOwnPropNames = Object.getOwnPropertyNames;
  var __esm = (fn2, res, err) => function __init() {
    if (err) throw err[0];
    try {
      return fn2 && (res = (0, fn2[__getOwnPropNames(fn2)[0]])(fn2 = 0)), res;
    } catch (e) {
      throw err = [e], e;
    }
  };
  var __commonJS = (cb2, mod) => function __require() {
    try {
      return mod || (0, cb2[__getOwnPropNames(cb2)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
    } catch (e) {
      throw mod = 0, e;
    }
  };
  var __export = (target, all) => {
    for (var name in all)
      __defProp(target, name, { get: all[name], enumerable: true });
  };

  // node_modules/unpdf/dist/pdfjs.mjs
  var pdfjs_exports = {};
  __export(pdfjs_exports, {
    AbortException: () => qi,
    AnnotationEditorLayer: () => li,
    AnnotationEditorParamsType: () => gt,
    AnnotationEditorType: () => et,
    AnnotationEditorUIManager: () => Si,
    AnnotationLayer: () => Z0,
    AnnotationMode: () => vi,
    AnnotationType: () => Yt,
    CSSConstants: () => mp,
    ColorPicker: () => bs,
    DOMSVGFactory: () => Lo,
    DrawLayer: () => xn,
    FeatureTest: () => rn,
    GlobalWorkerOptions: () => mr,
    ImageKind: () => To,
    InvalidPDFException: () => p0,
    MathClamp: () => hn,
    OPS: () => cr,
    OutputScale: () => Ws,
    PDFDataRangeTransport: () => dh,
    PDFDateString: () => j0,
    PDFWorker: () => yn,
    PasswordResponses: () => op,
    PermissionFlag: () => rp,
    PixelsPerInch: () => Ea,
    RenderingCancelledException: () => k0,
    ResponseException: () => Bo,
    SignatureExtractor: () => Ra,
    SupportedImageMimeTypes: () => v0,
    TextLayer: () => ss,
    TextLayerImages: () => il,
    TouchManager: () => Zo,
    Util: () => Ie,
    VerbosityLevel: () => Eo,
    XfaLayer: () => nh,
    applyOpacity: () => gp,
    build: () => rm,
    createValidAbsoluteUrl: () => Xc,
    fetchData: () => x0,
    findContrastColor: () => yp,
    getDocument: () => im,
    getFilenameFromUrl: () => hp,
    getPdfFilenameFromUrl: () => up,
    getRGB: () => ur,
    getUuid: () => th,
    getXfaPageViewport: () => pp,
    isDataScheme: () => Ro,
    isPdfFile: () => y0,
    isValidExplicitDest: () => Fp,
    makeArr: () => g0,
    makeMap: () => b0,
    makeObj: () => w0,
    noContextMenu: () => ms,
    normalizeUnicode: () => cp,
    renderRichText: () => ih,
    setLayerDimensions: () => Ki,
    shadow: () => st,
    stopEvent: () => Nt,
    updateUrlHash: () => Yc,
    version: () => am
  });
  function vm() {
    typeof globalThis.DOMMatrix < "u" || (globalThis.DOMMatrix = class {
      static {
        p(this, "DOMMatrix");
      }
      constructor(e) {
        Ma(this, "a"), Ma(this, "b"), Ma(this, "c"), Ma(this, "d"), Ma(this, "e"), Ma(this, "f"), Array.isArray(e) && e.length === 6 ? (this.a = e[0], this.b = e[1], this.c = e[2], this.d = e[3], this.e = e[4], this.f = e[5]) : (this.a = 1, this.b = 0, this.c = 0, this.d = 1, this.e = 0, this.f = 0);
      }
      translateSelf(e, n = 0) {
        return this.e = this.a * e + this.c * n + this.e, this.f = this.b * e + this.d * n + this.f, this;
      }
      scaleSelf(e, n = e) {
        return this.a *= e, this.b *= e, this.c *= n, this.d *= n, this;
      }
    });
  }
  function Cm(t) {
    Number.isInteger(t) && (fl = t);
  }
  function Im() {
    return fl;
  }
  function Ke(t) {
    fl >= Fr.INFOS && console.info(`Info: ${t}`);
  }
  function F(t) {
    fl >= Fr.WARNINGS && console.warn(`Warning: ${t}`);
  }
  function Ye(t) {
    throw new Error(t);
  }
  function Bt(t, e) {
    t || Ye(e);
  }
  function Tm(t) {
    switch (t?.protocol) {
      case "http:":
      case "https:":
      case "ftp:":
      case "mailto:":
      case "tel:":
        return true;
      default:
        return false;
    }
  }
  function cl(t, e = null, n = null) {
    if (!t) return null;
    if (n && typeof t == "string" && (n.addDefaultProtocol && t.startsWith("www.") && t.match(/\./g)?.length >= 2 && (t = `http://${t}`), n.tryConvertEncoding)) try {
      t = Na(t);
    } catch {
    }
    const s = e ? URL.parse(t, e) : URL.parse(t);
    return Tm(s) ? s : null;
  }
  function Em(t) {
    return t.substring(t.lastIndexOf("/") + 1);
  }
  function fe(t, e, n, s = false) {
    return Object.defineProperty(t, e, { value: n, enumerable: !s, configurable: true, writable: false }), n;
  }
  function Vn(t) {
    (typeof t != "object" || t?.length === void 0) && Ye("Invalid argument for bytesToString");
    const e = t.length, n = 8192;
    if (e < n) return String.fromCharCode.apply(null, t);
    const s = [];
    for (let i = 0; i < e; i += n) {
      const a = Math.min(i + n, e), r = t.subarray(i, a);
      s.push(String.fromCharCode.apply(null, r));
    }
    return s.join("");
  }
  function Bn(t) {
    typeof t != "string" && Ye("Invalid argument for stringToBytes");
    const e = t.length, n = new Uint8Array(e);
    for (let s = 0; s < e; ++s) n[s] = t.charCodeAt(s) & 255;
    return n;
  }
  function vn(t) {
    return String.fromCharCode(t >> 24 & 255, t >> 16 & 255, t >> 8 & 255, t & 255);
  }
  function sf(t) {
    return Object.keys(t).length;
  }
  function Fm() {
    const t = new Uint8Array(4);
    return t[0] = 1, new Uint32Array(t.buffer, 0, 1)[0] === 1;
  }
  function Bm() {
    try {
      return new Function(""), true;
    } catch {
      return false;
    }
  }
  function Je(t, e = false) {
    if (t[0] >= "\xEF") {
      let s;
      if (t[0] === "\xFE" && t[1] === "\xFF" ? (s = "utf-16be", t.length % 2 === 1 && (t = t.slice(0, -1))) : t[0] === "\xFF" && t[1] === "\xFE" ? (s = "utf-16le", t.length % 2 === 1 && (t = t.slice(0, -1))) : t[0] === "\xEF" && t[1] === "\xBB" && t[2] === "\xBF" && (s = "utf-8"), s) try {
        const i = new TextDecoder(s, { fatal: true }), a = Bn(t), r = i.decode(a);
        return e || !r.includes("\x1B") ? r : r.replaceAll(/\x1b[^\x1b]*(?:\x1b|$)/g, "");
      } catch (i) {
        F(`stringToPDFString: "${i}".`);
      }
    }
    const n = [];
    for (let s = 0, i = t.length; s < i; s++) {
      const a = t.charCodeAt(s);
      if (!e && a === 27) {
        for (; ++s < i && t.charCodeAt(s) !== 27; ) ;
        continue;
      }
      const r = Rm[a];
      n.push(r ? String.fromCharCode(r) : t.charAt(s));
    }
    return n.join("");
  }
  function Na(t) {
    return decodeURIComponent(escape(t));
  }
  function af(t) {
    return unescape(encodeURIComponent(t));
  }
  function _r(t, e) {
    if (t.length !== e.length) return false;
    for (let n = 0, s = t.length; n < s; n++) if (t[n] !== e[n]) return false;
    return true;
  }
  function Ei(t = /* @__PURE__ */ new Date()) {
    return t instanceof Date || (t = new Date(t)), [t.getUTCFullYear().toString(), (t.getUTCMonth() + 1).toString().padStart(2, "0"), t.getUTCDate().toString().padStart(2, "0"), t.getUTCHours().toString().padStart(2, "0"), t.getUTCMinutes().toString().padStart(2, "0"), t.getUTCSeconds().toString().padStart(2, "0")].join("");
  }
  function _m(t) {
    return rf || (rf = /([\u00a0\u00b5\u037e\u0eb3\u2000-\u200a\u202f\u2126\ufb00-\ufb04\ufb06\ufb20-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufba1\ufba4-\ufba9\ufbae-\ufbb1\ufbd3-\ufbdc\ufbde-\ufbe7\ufbea-\ufbf8\ufbfc-\ufbfd\ufc00-\ufc5d\ufc64-\ufcf1\ufcf5-\ufd3d\ufd88\ufdf4\ufdfa-\ufdfb\ufe71\ufe77\ufe79\ufe7b\ufe7d]+)|(\ufb05+)/gu, Gh = /* @__PURE__ */ new Map([["\uFB05", "\u017Ft"]])), t.replaceAll(rf, (e, n, s) => n ? n.normalize("NFKC") : Gh.get(s));
  }
  function Dm(t, e, n) {
    if (!Array.isArray(n) || n.length < 2) return false;
    const [s, i, ...a] = n;
    if (!t(s) && !Number.isInteger(s) || !e(i)) return false;
    const r = a.length;
    let o = true;
    switch (i.name) {
      case "XYZ":
        if (r < 2 || r > 3) return false;
        break;
      case "Fit":
      case "FitB":
        return r === 0;
      case "FitH":
      case "FitBH":
      case "FitV":
      case "FitBV":
        if (r > 1) return false;
        break;
      case "FitR":
        if (r !== 4) return false;
        o = false;
        break;
      default:
        return false;
    }
    for (const l of a) if (!(typeof l == "number" || o && l === null)) return false;
    return true;
  }
  function en(t, e, n) {
    return Math.min(Math.max(t, e), n);
  }
  function Lm() {
    Wh = /* @__PURE__ */ Object.create(null), $h = /* @__PURE__ */ Object.create(null), ul = /* @__PURE__ */ Object.create(null);
  }
  function ot(t, e) {
    return t instanceof te && (e === void 0 || t.name === e);
  }
  function fn(t, e) {
    return t instanceof Qt && (e === void 0 || t.cmd === e);
  }
  function Kh(t, e) {
    return t instanceof _ && (e === void 0 || ot(t.get("Type"), e));
  }
  function dl(t, e) {
    return t.num === e.num && t.gen === e.gen;
  }
  function Dt(t) {
    let e;
    return function() {
      return t && (e = /* @__PURE__ */ Object.create(null), t(e), t = null), e;
    };
  }
  function Yh(t) {
    const e = t.length;
    if (e === 0) return new Uint8Array(0);
    if (e === 1) return new Uint8Array(t[0]);
    let n = 0;
    for (let a = 0; a < e; a++) n += t[a].byteLength;
    const s = new Uint8Array(n);
    let i = 0;
    for (let a = 0; a < e; a++) {
      const r = new Uint8Array(t[a]);
      s.set(r, i), i += r.byteLength;
    }
    return s;
  }
  async function Qh(t) {
    const e = await fetch(t);
    if (!e.ok) throw new Error(`Failed to fetch file "${t}" with "${e.statusText}".`);
    return e.bytes();
  }
  function os({ dict: t, key: e, getArray: n = false, stopWhenFound: s = true }) {
    let i;
    const a = new Rt();
    for (; t instanceof _ && !(t.objId && a.has(t.objId)); ) {
      t.objId && a.put(t.objId);
      const r = n ? t.getArray(e) : t.get(e);
      if (r !== void 0) {
        if (s) return r;
        (i ||= []).push(r);
      }
      t = t.get("Parent");
    }
    return i;
  }
  function zm(t, e, n) {
    const s = new Rt(), i = t, a = { dict: null, ref: null };
    for (; t instanceof _ && !s.has(e) && (s.put(e), !t.has("T")); ) {
      if (e = t.getRaw("Parent"), !(e instanceof ae)) return a;
      t = n.fetch(e);
    }
    return t instanceof _ && t !== i && (a.dict = t, a.ref = e), a;
  }
  function hf(t, e) {
    if (t === e) return true;
    if (t instanceof _ && e instanceof _) {
      if (t.size !== e.size) return false;
      for (const [n, s] of t.getRawEntries()) {
        const i = e.getRaw(n);
        if (i === void 0 || !hf(s, i)) return false;
      }
      return true;
    }
    if (Array.isArray(t) && Array.isArray(e)) {
      if (t.length !== e.length) return false;
      for (let n = 0, s = t.length; n < s; n++) if (!hf(t[n], e[n])) return false;
      return true;
    }
    return false;
  }
  function Um(t, e = false) {
    Bt(Number.isInteger(t) && t > 0, "The number should be a positive integer.");
    const n = "M".repeat(t / 1e3 | 0) + uf[t % 1e3 / 100 | 0] + uf[10 + (t % 100 / 10 | 0)] + uf[20 + t % 10];
    return e ? n.toLowerCase() : n;
  }
  function df(t) {
    return t > 0 ? Math.ceil(Math.log2(t)) : 0;
  }
  function Vs(t, e) {
    return t[e] << 24 >> 24;
  }
  function ui(t, e) {
    return (t[e] << 24 | t[e + 1] << 16) >> 16;
  }
  function nt(t, e) {
    return t[e] << 8 | t[e + 1];
  }
  function yt(t, e) {
    return (t[e] << 24 | t[e + 1] << 16 | t[e + 2] << 8 | t[e + 3]) >>> 0;
  }
  function ls(t) {
    return t === 32 || t === 9 || t === 13 || t === 10;
  }
  function Gm(t, e) {
    return Array.isArray(t) && t.length === e && t.every((n) => typeof n == "boolean");
  }
  function Nn(t, e) {
    return Array.isArray(t) ? (e === null || t.length === e) && t.every((n) => typeof n == "number") : ArrayBuffer.isView(t) && !(t instanceof BigInt64Array || t instanceof BigUint64Array) && (e === null || t.length === e);
  }
  function Bi(t, e) {
    return Nn(t, 6) ? t : e;
  }
  function pl(t, e) {
    return Nn(t, 4) ? t : e;
  }
  function di(t, e) {
    return Nn(t, 4) ? pt.normalizeRect(t) : e;
  }
  function Jh(t) {
    const e = /(.+)\[(\d+)\]$/;
    return t.split(".").map((n) => {
      const s = n.match(e);
      return s ? { name: s[1], pos: parseInt(s[2], 10) } : { name: n, pos: 0 };
    });
  }
  function pf(t) {
    const e = [];
    let n = 0;
    for (let s = 0, i = t.length; s < i; s++) {
      const a = t.charCodeAt(s);
      (a < 33 || a > 126 || a === 35 || a === 40 || a === 41 || a === 60 || a === 62 || a === 91 || a === 93 || a === 123 || a === 125 || a === 47 || a === 37) && (n < s && e.push(t.substring(n, s)), e.push(`#${a.toString(16)}`), n = s + 1);
    }
    return e.length === 0 ? t : (n < t.length && e.push(t.substring(n, t.length)), e.join(""));
  }
  function za(t) {
    return t.replaceAll(/([()\\\n\r])/g, (e) => e === `
` ? "\\n" : e === "\r" ? "\\r" : `\\${e}`);
  }
  function ml(t, e, n, s) {
    if (!t) return;
    let i = null;
    if (t instanceof ae) {
      if (s.has(t)) return;
      i = t, s.put(i), t = e.fetch(t);
    }
    if (Array.isArray(t)) for (const a of t) ml(a, e, n, s);
    else if (t instanceof _) {
      if (ot(t.get("S"), "JavaScript")) {
        const a = t.get("JS");
        let r;
        a instanceof ze ? r = a.getString() : typeof a == "string" && (r = a), r &&= Je(r, true).replaceAll("\0", ""), r && n.push(r.trim());
      }
      ml(t.getRaw("Next"), e, n, s);
    }
    i && s.remove(i);
  }
  function gl(t, e, n) {
    const s = /* @__PURE__ */ Object.create(null), i = os({ dict: e, key: "AA", stopWhenFound: false });
    if (i) for (let a = i.length - 1; a >= 0; a--) {
      const r = i[a];
      if (r instanceof _) for (const [o, l] of r.getRawEntries()) {
        const f = n[o];
        if (!f) continue;
        const c = new Rt(), h = [];
        ml(l, t, h, c), h.length > 0 && (s[f] = h);
      }
    }
    if (e.has("A")) {
      const a = e.get("A"), r = new Rt(), o = [];
      ml(a, t, o, r), o.length > 0 && (s.Action = o);
    }
    return sf(s) > 0 ? s : null;
  }
  function* $m(t) {
    for (let e = 0, n = t.length; e < n; e++) {
      const s = t.codePointAt(e);
      s > 55295 && (s < 57344 || s > 65533) && e++, yield s;
    }
  }
  function Ua(t) {
    const e = [];
    let n = 0;
    for (let s = 0, i = t.length; s < i; s++) {
      const a = t.codePointAt(s);
      if (32 <= a && a <= 126) {
        const r = Wm[a];
        r && (n < s && e.push(t.substring(n, s)), e.push(r), n = s + 1);
      } else n < s && e.push(t.substring(n, s)), e.push(`&#x${a.toString(16).toUpperCase()};`), a > 55295 && (a < 57344 || a > 65533) && s++, n = s + 1;
    }
    return e.length === 0 ? t : (n < t.length && e.push(t.substring(n, t.length)), e.join(""));
  }
  function mf(t, e = false) {
    const n = /^("|').*("|')$/.exec(t);
    if (n && n[1] === n[2]) {
      if (new RegExp(`[^\\\\]${n[1]}`).test(t.slice(1, -1))) return e && F(`FontFamily contains unescaped ${n[1]}: ${t}.`), false;
    } else for (const s of t.split(/[ \t]+/)) if (/^(\d|(-(\d|-)))/.test(s) || !/^[\w-\\]+$/.test(s)) return e && F(`FontFamily contains invalid <custom-ident>: ${t}.`), false;
    return true;
  }
  function Vm(t) {
    const s = /* @__PURE__ */ new Set(["100", "200", "300", "400", "500", "600", "700", "800", "900", "1000", "normal", "bold", "bolder", "lighter"]), { fontFamily: i, fontWeight: a, italicAngle: r } = t;
    if (!mf(i, true)) return false;
    const o = a ? a.toString() : "";
    t.fontWeight = s.has(o) ? o : "400";
    const l = parseFloat(r);
    return t.italicAngle = isNaN(l) || l < -90 || l > 90 ? "14" : r.toString(), true;
  }
  function Zh(t) {
    const e = ["app.launchURL", "window.open", "xfa.host.gotoURL"], s = new RegExp("^\\s*(" + e.join("|").replaceAll(".", "\\.") + `)\\((?:'|")([^'"]*)(?:'|")(?:,\\s*(\\w+)\\)|\\))`, "i").exec(t);
    return s?.[2] ? { url: s[2], newWindow: s[1] === "app.launchURL" && s[3] === "true" } : null;
  }
  function it(t) {
    if (Number.isInteger(t)) return t.toString();
    const e = Math.round(t * 100);
    return e % 100 === 0 ? (e / 100).toString() : e % 10 === 0 ? t.toFixed(1) : t.toFixed(2);
  }
  function gf(t) {
    if (!t) return null;
    const e = /* @__PURE__ */ new Map();
    for (const [n, s] of t) n.startsWith(Mh) && e.getOrInsertComputed(s.pageIndex, hl).push(s);
    return e.size > 0 ? e : null;
  }
  function An(t) {
    return t == null || Km(t) ? t : eu(t, true);
  }
  function Km(t) {
    return typeof t != "string" ? false : !t || /^[\x00-\x7F]*$/.test(t);
  }
  function Xm(t) {
    const e = [];
    for (let n = 0, s = t.length; n < s; n++) {
      const i = t.charCodeAt(n);
      e.push(Rr[i >> 8 & 255], Rr[i & 255]);
    }
    return e.join("");
  }
  function eu(t, e = false) {
    const n = [];
    e && n.push("\xFE\xFF");
    for (let s = 0, i = t.length; s < i; s++) {
      const a = t.charCodeAt(s);
      n.push(String.fromCharCode(a >> 8 & 255), String.fromCharCode(a & 255));
    }
    return n.join("");
  }
  function bl(t, e, n) {
    switch (t) {
      case 90:
        return [0, 1, -1, 0, e, 0];
      case 180:
        return [-1, 0, 0, -1, e, n];
      case 270:
        return [0, -1, 1, 0, 0, n];
      default:
        throw new Error("Invalid rotation");
    }
  }
  function tu(t) {
    return Math.ceil(Math.ceil(Math.log2(1 + t)) / 8);
  }
  function Ym(t, e) {
    const { _mustAddAlpha: n, _destBuffer: s, _destOffset: i, _destLength: a, _memoryArray: r } = mn;
    if (e === a) {
      s.set(r.subarray(t, t + e), i);
      return;
    }
    if (n) for (let o = t, l = t + e, f = i; o < l; o += 3, f += 4) s[f] = r[o], s[f + 1] = r[o + 1], s[f + 2] = r[o + 2], s[f + 3] = 255;
    else for (let o = t, l = t + e, f = i; o < l; o += 3, f += 4) s[f] = r[o], s[f + 1] = r[o + 1], s[f + 2] = r[o + 2];
  }
  function Qm(t) {
    const { _destBuffer: e, _destOffset: n, _memoryArray: s } = mn;
    e[n] = s[t], e[n + 1] = s[t + 1], e[n + 2] = s[t + 2];
  }
  function Jm(t) {
    const { _memoryArray: e } = mn;
    mn._cssColor = mn._makeHexColor(e[t], e[t + 1], e[t + 2]);
  }
  function su() {
    return (Pr === null || Pr.byteLength === 0) && (Pr = new Uint8Array(zn.memory.buffer)), Pr;
  }
  function Zm(t, e) {
    return t = t >>> 0, nu.decode(su().subarray(t, t + e));
  }
  function iu(t, e) {
    const n = e(t.length * 1, 1) >>> 0;
    return su().set(t, n / 1), bf = t.length, n;
  }
  function eg(t, e) {
    const n = iu(e, zn.__wbindgen_malloc), s = bf;
    zn.qcms_convert_array(t, n, s);
  }
  function tg(t, e, n) {
    zn.qcms_convert_one(t, e, n);
  }
  function ng(t, e, n, s, i) {
    zn.qcms_convert_three(t, e, n, s, i);
  }
  function sg(t, e, n, s, i, a) {
    zn.qcms_convert_four(t, e, n, s, i, a);
  }
  function ig(t, e, n) {
    const s = iu(t, zn.__wbindgen_malloc), i = bf;
    return zn.qcms_transformer_from_memory(s, i, e, n) >>> 0;
  }
  function ag(t) {
    zn.qcms_drop_transformer(t);
  }
  function og() {
    const t = {};
    return t.wbg = {}, t.wbg.__wbg_copyresult_b08ee7d273f295dd = function(e, n) {
      Ym(e >>> 0, n >>> 0);
    }, t.wbg.__wbg_copyrgb_d60ce17bb05d9b67 = function(e) {
      Qm(e >>> 0);
    }, t.wbg.__wbg_makecssRGB_893bf0cd9fdb302d = function(e) {
      Jm(e >>> 0);
    }, t.wbg.__wbindgen_init_externref_table = function() {
      const e = zn.__wbindgen_export_0, n = e.grow(4);
      e.set(0, void 0), e.set(n + 0, void 0), e.set(n + 1, null), e.set(n + 2, true), e.set(n + 3, false);
    }, t.wbg.__wbindgen_throw = function(e, n) {
      throw new Error(Zm(e, n));
    }, t;
  }
  function lg(t, e) {
    return zn = t.exports, Pr = null, zn.__wbindgen_start(), zn;
  }
  function fg(t) {
    if (zn !== void 0) return zn;
    typeof t < "u" && (Object.getPrototypeOf(t) === Object.prototype ? { module: t } = t : console.warn("using deprecated parameters for `initSync()`; pass a single object instead"));
    const e = og();
    t instanceof WebAssembly.Module || (t = new WebAssembly.Module(t));
    const n = new WebAssembly.Instance(t, e);
    return lg(n);
  }
  function cg(t, e, n, s, i, a, r) {
    r = r !== 1 ? 0 : r;
    const l = n / i, f = s / a;
    let c = 0, h;
    const u = new Uint16Array(i), d = n * 3;
    for (let m = 0; m < i; m++) u[m] = Math.floor(m * l) * 3;
    for (let m = 0; m < a; m++) {
      const g = Math.floor(m * f) * d;
      for (let b = 0; b < i; b++) h = g + u[b], e[c++] = t[h++], e[c++] = t[h++], e[c++] = t[h++], c += r;
    }
  }
  function hg(t, e, n, s, i, a, r) {
    const o = n / i, l = s / a;
    let f = 0;
    const c = new Uint16Array(i);
    if (r === 1) {
      for (let m = 0; m < i; m++) c[m] = Math.floor(m * o);
      const h = new Uint32Array(t.buffer), u = new Uint32Array(e.buffer), d = qn.isLittleEndian ? 16777215 : 4294967040;
      for (let m = 0; m < a; m++) {
        const g = h.subarray(Math.floor(m * l) * n);
        for (let b = 0; b < i; b++) u[f++] |= g[c[b]] & d;
      }
    } else {
      const u = n * 4;
      for (let d = 0; d < i; d++) c[d] = Math.floor(d * o) * 4;
      for (let d = 0; d < a; d++) {
        const m = t.subarray(Math.floor(d * l) * u);
        for (let g = 0; g < i; g++) {
          const b = c[g];
          e[f++] = m[b], e[f++] = m[b + 1], e[f++] = m[b + 2];
        }
      }
    }
  }
  function ug(t, e, n) {
    if (n === 1) {
      const s = new Uint32Array(t.buffer), i = new Uint32Array(e.buffer), a = qn.isLittleEndian ? 16777215 : 4294967040;
      for (let r = 0, o = s.length; r < o; r++) i[r] |= s[r] & a;
    } else {
      let s = 0;
      for (let i = 0, a = t.length; i < a; i += 4) e[s++] = t[i], e[s++] = t[i + 1], e[s++] = t[i + 2];
    }
  }
  function au(t, e) {
    if (!Array.isArray(t)) return true;
    const n = t.length;
    return n < e ? (F("Decode map length is too short."), true) : (n > e && (Ke("Truncating too long decode map."), t.length = e), false);
  }
  function lu(t) {
    const e = new XMLHttpRequest();
    return e.open("GET", t, false), e.responseType = "arraybuffer", e.send(null), e.response;
  }
  function fu(t) {
    switch (t.kind) {
      case dn.GRAYSCALE_1BPP:
        return kf(t);
      case dn.RGB_24BPP:
        return jg(t);
    }
    return null;
  }
  function kf({ src: t, srcPos: e = 0, dest: n, width: s, height: i, nonBlackColor: a = 4294967295, inverseDecode: r = false }) {
    const o = qn.isLittleEndian ? 4278190080 : 255, [l, f] = r ? [a, o] : [o, a], c = s >> 3, h = s & 7, u = l ^ f, d = t.length;
    n = new Uint32Array(n.buffer);
    let m = 0;
    for (let g = 0; g < i; ++g) {
      for (const w = e + c; e < w; ++e, m += 8) {
        const x = t[e];
        n[m] = l ^ -(x >> 7 & 1) & u, n[m + 1] = l ^ -(x >> 6 & 1) & u, n[m + 2] = l ^ -(x >> 5 & 1) & u, n[m + 3] = l ^ -(x >> 4 & 1) & u, n[m + 4] = l ^ -(x >> 3 & 1) & u, n[m + 5] = l ^ -(x >> 2 & 1) & u, n[m + 6] = l ^ -(x >> 1 & 1) & u, n[m + 7] = l ^ -(x & 1) & u;
      }
      if (h === 0) continue;
      const b = e < d ? t[e++] : 255;
      for (let w = 0; w < h; ++w, ++m) n[m] = l ^ -(b >> 7 - w & 1) & u;
    }
    return { srcPos: e, destPos: m };
  }
  function jg({ src: t, srcPos: e = 0, dest: n, destPos: s = 0, width: i, height: a }) {
    let r = 0;
    const o = i * a * 3, l = o >> 2, f = new Uint32Array(t.buffer, e, l), c = qn.isLittleEndian ? 4278190080 : 255;
    if (qn.isLittleEndian) {
      for (; r < l - 2; r += 3, s += 4) {
        const h = f[r], u = f[r + 1], d = f[r + 2];
        n[s] = h | c, n[s + 1] = h >>> 24 | u << 8 | c, n[s + 2] = u >>> 16 | d << 16 | c, n[s + 3] = d >>> 8 | c;
      }
      for (let h = r * 4, u = e + o; h < u; h += 3) n[s++] = t[h] | t[h + 1] << 8 | t[h + 2] << 16 | c;
    } else {
      for (; r < l - 2; r += 3, s += 4) {
        const h = f[r], u = f[r + 1], d = f[r + 2];
        n[s] = h | c, n[s + 1] = h << 24 | u >>> 8 | c, n[s + 2] = u << 16 | d >>> 16 | c, n[s + 3] = d << 8 | c;
      }
      for (let h = r * 4, u = e + o; h < u; h += 3) n[s++] = t[h] << 24 | t[h + 1] << 16 | t[h + 2] << 8 | c;
    }
    return { srcPos: e + o, destPos: s };
  }
  function vg(t, e) {
    if (qn.isLittleEndian) for (let n = 0, s = t.length; n < s; n++) e[n] = t[n] * 65793 | 4278190080;
    else for (let n = 0, s = t.length; n < s; n++) e[n] = t[n] * 16843008 | 255;
  }
  function _n(t, e, n) {
    const s = t.getContexts(e);
    let i = 1;
    function a(f) {
      let c = 0;
      for (let h = 0; h < f; h++) {
        const u = n.readBit(s, i);
        i = i < 256 ? i << 1 | u : (i << 1 | u) & 511 | 256, c = c << 1 | u;
      }
      return c >>> 0;
    }
    p(a, "readBits");
    const r = a(1), o = a(1) ? a(1) ? a(1) ? a(1) ? a(1) ? a(32) + 4436 : a(12) + 340 : a(8) + 84 : a(6) + 20 : a(4) + 4 : a(2);
    let l;
    return r === 0 ? l = o : o > 0 && (l = -o), l >= Nm && l <= of ? l : null;
  }
  function yu(t, e, n) {
    const s = t.getContexts("IAID");
    let i = 1;
    for (let a = 0; a < n; a++) {
      const r = e.readBit(s, i);
      i = i << 1 | r;
    }
    return n < 31 ? i & (1 << n) - 1 : i & 2147483647;
  }
  function Eg(t, e, n) {
    const s = n.decoder, i = n.contextCache.getContexts("GB"), a = [];
    let r, o, l, f, c, h, u;
    const d = 31735;
    for (o = 0; o < e; o++) for (c = a[o] = new Uint8Array(t), h = o < 1 ? c : a[o - 1], u = o < 2 ? c : a[o - 2], r = u[0] << 13 | u[1] << 12 | u[2] << 11 | h[0] << 7 | h[1] << 6 | h[2] << 5 | h[3] << 4, l = 0; l < t; l++) c[l] = f = s.readBit(i, r), r = (r & d) << 1 | (l + 3 < t ? u[l + 3] << 11 : 0) | (l + 4 < t ? h[l + 4] << 4 : 0) | f;
    return a;
  }
  function wl(t, e, n, s, i, a, r, o) {
    if (t) {
      const ye = new Mr(o.data, o.start, o.end);
      return qf(ye, e, n, false);
    }
    if (s === 0 && !i && r.length === 4 && r[0].x === 3 && r[0].y === -1 && r[1].x === -3 && r[1].y === -1 && r[2].x === 2 && r[2].y === -2 && r[3].x === -2 && r[3].y === -2) return Eg(e, n, o);
    const l = Ig[s].concat(r);
    l.sort((ye, qe) => ye.y - qe.y || ye.x - qe.x);
    const f = l.length, c = new Int8Array(f), h = new Int8Array(f), u = [];
    let d = 0, m = 0, g = 0, b = 0, w, x;
    for (x = 0; x < f; x++) c[x] = l[x].x, h[x] = l[x].y, m = Math.min(m, l[x].x), g = Math.max(g, l[x].x), b = Math.min(b, l[x].y), x < f - 1 && l[x].y === l[x + 1].y && l[x].x === l[x + 1].x - 1 ? d |= 1 << f - 1 - x : u.push(x);
    const y = u.length, j = new Int8Array(y), v = new Int8Array(y), q = new Uint16Array(y);
    for (w = 0; w < y; w++) x = u[w], j[w] = l[x].x, v[w] = l[x].y, q[w] = 1 << f - 1 - x;
    const A = -m, C = -b, S = e - g, I = Tg[s];
    let T = new Uint8Array(e);
    const P = [], H = o.decoder, G = o.contextCache.getContexts("GB");
    let Z = 0, z, O, N, oe = 0, je, Y;
    for (let ye = 0; ye < n; ye++) {
      if (i) {
        const qe = H.readBit(G, I);
        if (Z ^= qe, Z) {
          P.push(T);
          continue;
        }
      }
      for (T = new Uint8Array(T), P.push(T), z = 0; z < e; z++) {
        if (z >= A && z < S && ye >= C) for (oe = oe << 1 & d, x = 0; x < y; x++) O = ye + v[x], N = z + j[x], je = P[O][N], je && (je = q[x], oe |= je);
        else for (oe = 0, Y = f - 1, x = 0; x < f; x++, Y--) N = z + c[x], N >= 0 && N < e && (O = ye + h[x], O >= 0 && (je = P[O][N], je && (oe |= je << Y)));
        const qe = H.readBit(G, oe);
        T[z] = qe;
      }
    }
    return P;
  }
  function qu(t, e, n, s, i, a, r, o, l) {
    let f = vu[n].coding;
    n === 0 && (f = f.concat([o[0]]));
    const c = f.length, h = new Int32Array(c), u = new Int32Array(c);
    let d;
    for (d = 0; d < c; d++) h[d] = f[d].x, u[d] = f[d].y;
    let m = vu[n].reference;
    n === 0 && (m = m.concat([o[1]]));
    const g = m.length, b = new Int32Array(g), w = new Int32Array(g);
    for (d = 0; d < g; d++) b[d] = m[d].x, w[d] = m[d].y;
    const x = s[0].length, y = s.length, j = [], v = l.decoder, q = l.contextCache.getContexts("GR");
    for (let A = 0; A < e; A++) {
      const C = new Uint8Array(t);
      j.push(C);
      for (let S = 0; S < t; S++) {
        let I, T, P = 0;
        for (d = 0; d < c; d++) I = A + u[d], T = S + h[d], I < 0 || T < 0 || T >= t ? P <<= 1 : P = P << 1 | j[I][T];
        for (d = 0; d < g; d++) I = A + w[d] - a, T = S + b[d] - i, I < 0 || I >= y || T < 0 || T >= x ? P <<= 1 : P = P << 1 | s[I][T];
        const H = v.readBit(q, P);
        C[S] = H;
      }
    }
    return j;
  }
  function Fg(t, e, n, s, i, a, r, o, l, f, c, h) {
    if (t && e) throw new _t("symbol refinement with Huffman is not supported");
    const u = [];
    let d = 0, m = df(n.length + s);
    const g = c.decoder, b = c.contextCache;
    let w, x;
    for (t && (w = _i(1), x = [], m = Math.max(m, 1)); u.length < s; ) {
      const S = t ? a.tableDeltaHeight.decode(h) : _n(b, "IADH", g);
      d += S;
      let I = 0, T = 0;
      const P = t ? x.length : 0;
      for (; ; ) {
        const H = t ? a.tableDeltaWidth.decode(h) : _n(b, "IADW", g);
        if (H === null) break;
        I += H, T += I;
        let G;
        if (e) {
          const Z = _n(b, "IAAI", g);
          if (Z > 1) G = Au(t, e, I, d, 0, Z, 1, n.concat(u), m, 0, 0, 1, 0, a, l, f, c, 0, h);
          else {
            const z = yu(b, g, m), O = _n(b, "IARDX", g), N = _n(b, "IARDY", g), oe = z < n.length ? n[z] : u[z - n.length];
            G = qu(I, d, l, oe, O, N, false, f, c);
          }
          u.push(G);
        } else t ? x.push(I) : (G = wl(false, I, d, r, false, null, o, c), u.push(G));
      }
      if (t && !e) {
        const H = a.tableBitmapSize.decode(h);
        h.byteAlign();
        let G;
        if (H === 0) G = Ug(h, T, d);
        else {
          const z = h.end, O = h.position + H;
          h.end = O, G = qf(h, T, d, false), h.end = z, h.position = O;
        }
        const Z = x.length;
        if (P === Z - 1) u.push(G);
        else {
          let z, O, N = 0, oe, je, Y;
          for (z = P; z < Z; z++) {
            for (je = x[z], oe = N + je, Y = [], O = 0; O < d; O++) Y.push(G[O].subarray(N, oe));
            u.push(Y), N = oe;
          }
        }
      }
    }
    const y = [], j = [];
    let v = false, q, A;
    const C = n.length + s;
    for (; j.length < C; ) {
      let S = t ? w.decode(h) : _n(b, "IAEX", g);
      for (; S--; ) j.push(v);
      v = !v;
    }
    for (q = 0, A = n.length; q < A; q++) j[q] && y.push(n[q]);
    for (let S = 0; S < s; q++, S++) j[q] && y.push(u[S]);
    return y;
  }
  function Au(t, e, n, s, i, a, r, o, l, f, c, h, u, d, m, g, b, w, x) {
    if (t && e) throw new _t("refinement with Huffman is not supported");
    const y = [];
    let j, v;
    for (j = 0; j < s; j++) v = new Uint8Array(n), i && v.fill(i), y.push(v);
    const q = b.decoder, A = b.contextCache;
    let C = t ? -d.tableDeltaT.decode(x) : -_n(A, "IADT", q), S = 0;
    for (j = 0; j < a; ) {
      const I = t ? d.tableDeltaT.decode(x) : _n(A, "IADT", q);
      C += I;
      const T = t ? d.tableFirstS.decode(x) : _n(A, "IAFS", q);
      S += T;
      let P = S;
      do {
        let H = 0;
        r > 1 && (H = t ? x.readBits(w) : _n(A, "IAIT", q));
        const G = r * C + H, Z = t ? d.symbolIDTable.decode(x) : yu(A, q, l), z = e && (t ? x.readBit() : _n(A, "IARI", q));
        let O = o[Z], N = O[0].length, oe = O.length;
        if (z) {
          const L = _n(A, "IARDW", q), J = _n(A, "IARDH", q), ce = _n(A, "IARDX", q), le = _n(A, "IARDY", q);
          N += L, oe += J, O = qu(N, oe, m, O, (L >> 1) + ce, (J >> 1) + le, false, g, b);
        }
        let je = 0;
        f ? h & 1 ? je = oe - 1 : P += oe - 1 : h > 1 ? P += N - 1 : je = N - 1;
        const Y = G - (h & 1 ? 0 : oe - 1), ye = P - (h & 2 ? N - 1 : 0);
        let qe, W, K;
        if (f) for (qe = 0; qe < oe; qe++) {
          if (v = y[ye + qe], !v) continue;
          K = O[qe];
          const L = Math.min(n - Y, N);
          switch (u) {
            case 0:
              for (W = 0; W < L; W++) v[Y + W] |= K[W];
              break;
            case 2:
              for (W = 0; W < L; W++) v[Y + W] ^= K[W];
              break;
            default:
              throw new _t(`operator ${u} is not supported`);
          }
        }
        else for (W = 0; W < oe; W++) if (v = y[Y + W], !!v) switch (K = O[W], u) {
          case 0:
            for (qe = 0; qe < N; qe++) v[ye + qe] |= K[qe];
            break;
          case 2:
            for (qe = 0; qe < N; qe++) v[ye + qe] ^= K[qe];
            break;
          default:
            throw new _t(`operator ${u} is not supported`);
        }
        j++;
        const M = t ? d.tableDeltaS.decode(x) : _n(A, "IADS", q);
        if (M === null) break;
        P += je + M + c;
      } while (true);
    }
    return y;
  }
  function Bg(t, e, n, s, i, a) {
    const r = [];
    t || (r.push({ x: -e, y: 0 }), i === 0 && r.push({ x: -3, y: -1 }, { x: 2, y: -2 }, { x: -2, y: -2 }));
    const o = (s + 1) * e, l = wl(t, o, n, i, false, null, r, a), f = [];
    for (let c = 0; c <= s; c++) {
      const h = [], u = e * c, d = u + e;
      for (let m = 0; m < n; m++) h.push(l[m].subarray(u, d));
      f.push(h);
    }
    return f;
  }
  function Rg(t, e, n, s, i, a, r, o, l, f, c, h, u, d, m) {
    if (r) throw new _t("skip is not supported");
    if (o !== 0) throw new _t(`operator "${o}" is not supported in halftone region`);
    const b = [];
    let w, x, y;
    for (w = 0; w < i; w++) y = new Uint8Array(s), a && y.fill(a), b.push(y);
    const j = e.length, v = e[0], q = v[0].length, A = v.length, C = df(j), S = [];
    t || (S.push({ x: n <= 1 ? 3 : 2, y: -1 }), n === 0 && S.push({ x: -3, y: -1 }, { x: 2, y: -2 }, { x: -2, y: -2 }));
    const I = [];
    let T, P;
    for (t && (T = new Mr(m.data, m.start, m.end)), w = C - 1; w >= 0; w--) t ? P = qf(T, l, f, true) : P = wl(false, l, f, n, false, null, S, m), I[w] = P;
    let H, G, Z, z, O, N, oe, je, Y;
    for (H = 0; H < f; H++) for (G = 0; G < l; G++) {
      for (Z = 0, z = 0, x = C - 1; x >= 0; x--) Z ^= I[x][H][G], z |= Z << x;
      if (O = e[z], N = c + H * d + G * u >> 8, oe = h + H * u - G * d >> 8, N >= 0 && N + q <= s && oe >= 0 && oe + A <= i) for (w = 0; w < A; w++) for (Y = b[oe + w], je = O[w], x = 0; x < q; x++) Y[N + x] |= je[x];
      else {
        let ye, qe;
        for (w = 0; w < A; w++) if (qe = oe + w, !(qe < 0 || qe >= i)) for (Y = b[qe], je = O[w], x = 0; x < q; x++) ye = N + x, ye >= 0 && ye < s && (Y[ye] |= je[x]);
      }
    }
    return b;
  }
  function _g(t, e) {
    const n = {};
    n.number = yt(t, e);
    const s = t[e + 4], i = s & 63;
    if (!ju[i]) throw new _t("invalid segment type: " + i);
    n.type = i, n.typeName = ju[i], n.deferredNonRetain = !!(s & 128);
    const a = !!(s & 64), r = t[e + 5];
    let o = r >> 5 & 7;
    const l = [r & 31];
    let f = e + 6;
    if (o === 7) {
      o = yt(t, f - 1) & 536870911, f += 3;
      let m = o + 8 >> 3;
      for (l[0] = t[f++]; --m > 0; ) l.push(t[f++]);
    } else if (o === 5 || o === 6) throw new _t("invalid referred-to flags");
    n.retainBits = l;
    let c = 4;
    n.number <= 256 ? c = 1 : n.number <= 65536 && (c = 2);
    const h = [];
    let u, d;
    for (u = 0; u < o; u++) {
      let m;
      c === 1 ? m = t[f] : c === 2 ? m = nt(t, f) : m = yt(t, f), h.push(m), f += c;
    }
    if (n.referredTo = h, a ? (n.pageAssociation = yt(t, f), f += 4) : n.pageAssociation = t[f++], n.length = yt(t, f), f += 4, n.length === 4294967295) if (i === 38) {
      const m = xl(t, f), b = !!(t[f + kl] & 1), w = 6, x = new Uint8Array(w);
      for (b || (x[0] = 255, x[1] = 172), x[2] = m.height >>> 24 & 255, x[3] = m.height >> 16 & 255, x[4] = m.height >> 8 & 255, x[5] = m.height & 255, u = f, d = t.length; u < d; u++) {
        let y = 0;
        for (; y < w && x[y] === t[u + y]; ) y++;
        if (y === w) {
          n.length = u + w;
          break;
        }
      }
      if (n.length === 4294967295) throw new _t("segment end was not found");
    } else throw new _t("invalid unknown segment length");
    return n.headerEnd = f, n;
  }
  function Pg(t, e, n, s) {
    const i = [];
    let a = n;
    for (; a < s; ) {
      const r = _g(e, a);
      a = r.headerEnd;
      const o = { header: r, data: e };
      if (t.randomAccess || (o.start = a, a += r.length, o.end = a), i.push(o), r.type === 51) break;
    }
    if (t.randomAccess) for (let r = 0, o = i.length; r < o; r++) i[r].start = a, a += i[r].header.length, i[r].end = a;
    return i;
  }
  function xl(t, e) {
    return { width: yt(t, e), height: yt(t, e + 4), x: yt(t, e + 8), y: yt(t, e + 12), combinationOperator: t[e + 16] & 7 };
  }
  function Dg(t, e) {
    const n = t.header, s = t.data, i = t.end;
    let a = t.start, r, o, l, f;
    switch (n.type) {
      case 0:
        const h = {}, u = nt(s, a);
        if (h.huffman = !!(u & 1), h.refinement = !!(u & 2), h.huffmanDHSelector = u >> 2 & 3, h.huffmanDWSelector = u >> 4 & 3, h.bitmapSizeSelector = u >> 6 & 1, h.aggregationInstancesSelector = u >> 7 & 1, h.bitmapCodingContextUsed = !!(u & 256), h.bitmapCodingContextRetained = !!(u & 512), h.template = u >> 10 & 3, h.refinementTemplate = u >> 12 & 1, a += 2, !h.huffman) {
          for (f = h.template === 0 ? 4 : 1, o = [], l = 0; l < f; l++) o.push({ x: Vs(s, a), y: Vs(s, a + 1) }), a += 2;
          h.at = o;
        }
        if (h.refinement && !h.refinementTemplate) {
          for (o = [], l = 0; l < 2; l++) o.push({ x: Vs(s, a), y: Vs(s, a + 1) }), a += 2;
          h.refinementAt = o;
        }
        h.numberOfExportedSymbols = yt(s, a), a += 4, h.numberOfNewSymbols = yt(s, a), a += 4, r = [h, n.number, n.referredTo, s, a, i];
        break;
      case 6:
      case 7:
        const d = {};
        d.info = xl(s, a), a += kl;
        const m = nt(s, a);
        if (a += 2, d.huffman = !!(m & 1), d.refinement = !!(m & 2), d.logStripSize = m >> 2 & 3, d.stripSize = 1 << d.logStripSize, d.referenceCorner = m >> 4 & 3, d.transposed = !!(m & 64), d.combinationOperator = m >> 7 & 3, d.defaultPixelValue = m >> 9 & 1, d.dsOffset = m << 17 >> 27, d.refinementTemplate = m >> 15 & 1, d.huffman) {
          const A = nt(s, a);
          a += 2, d.huffmanFS = A & 3, d.huffmanDS = A >> 2 & 3, d.huffmanDT = A >> 4 & 3, d.huffmanRefinementDW = A >> 6 & 3, d.huffmanRefinementDH = A >> 8 & 3, d.huffmanRefinementDX = A >> 10 & 3, d.huffmanRefinementDY = A >> 12 & 3, d.huffmanRefinementSizeSelector = !!(A & 16384);
        }
        if (d.refinement && !d.refinementTemplate) {
          for (o = [], l = 0; l < 2; l++) o.push({ x: Vs(s, a), y: Vs(s, a + 1) }), a += 2;
          d.refinementAt = o;
        }
        d.numberOfSymbolInstances = yt(s, a), a += 4, r = [d, n.referredTo, s, a, i];
        break;
      case 16:
        const g = {}, b = s[a++];
        g.mmr = !!(b & 1), g.template = b >> 1 & 3, g.patternWidth = s[a++], g.patternHeight = s[a++], g.maxPatternIndex = yt(s, a), a += 4, r = [g, n.number, s, a, i];
        break;
      case 22:
      case 23:
        const w = {};
        w.info = xl(s, a), a += kl;
        const x = s[a++];
        w.mmr = !!(x & 1), w.template = x >> 1 & 3, w.enableSkip = !!(x & 8), w.combinationOperator = x >> 4 & 7, w.defaultPixelValue = x >> 7 & 1, w.gridWidth = yt(s, a), a += 4, w.gridHeight = yt(s, a), a += 4, w.gridOffsetX = yt(s, a) & 4294967295, a += 4, w.gridOffsetY = yt(s, a) & 4294967295, a += 4, w.gridVectorX = nt(s, a), a += 2, w.gridVectorY = nt(s, a), a += 2, r = [w, n.referredTo, s, a, i];
        break;
      case 38:
      case 39:
        const y = {};
        y.info = xl(s, a), a += kl;
        const j = s[a++];
        if (y.mmr = !!(j & 1), y.template = j >> 1 & 3, y.prediction = !!(j & 8), !y.mmr) {
          for (f = y.template === 0 ? 4 : 1, o = [], l = 0; l < f; l++) o.push({ x: Vs(s, a), y: Vs(s, a + 1) }), a += 2;
          y.at = o;
        }
        r = [y, s, a, i];
        break;
      case 48:
        const v = { width: yt(s, a), height: yt(s, a + 4), resolutionX: yt(s, a + 8), resolutionY: yt(s, a + 12) };
        v.height === 4294967295 && delete v.height;
        const q = s[a + 16];
        nt(s, a + 17), v.lossless = !!(q & 1), v.refinement = !!(q & 2), v.defaultPixelValue = q >> 2 & 1, v.combinationOperator = q >> 3 & 3, v.requiresBuffer = !!(q & 32), v.combinationOperatorOverride = !!(q & 64), r = [v];
        break;
      case 49:
        break;
      case 50:
        break;
      case 51:
        break;
      case 53:
        r = [n.number, s, a, i];
        break;
      case 62:
        break;
      default:
        throw new _t(`segment type ${n.typeName}(${n.type}) is not implemented`);
    }
    const c = "on" + n.typeName;
    c in e && e[c].apply(e, r);
  }
  function Mg(t, e) {
    for (let n = 0, s = t.length; n < s; n++) Dg(t[n], e);
  }
  function Hg(t) {
    const e = new Og();
    for (let n = 0, s = t.length; n < s; n++) {
      const i = t[n], a = Pg({}, i.data, i.start, i.end);
      Mg(a, e);
    }
    return e.buffer;
  }
  function Lg(t, e, n) {
    const s = t[e], i = yt(t, e + 1) & 4294967295, a = yt(t, e + 5) & 4294967295, r = new Mr(t, e + 9, n), o = (s >> 1 & 7) + 1, l = (s >> 4 & 7) + 1, f = [];
    let c, h, u = i;
    do
      c = r.readBits(o), h = r.readBits(l), f.push(new Ri([u, c, h, 0])), u += 1 << h;
    while (u < a);
    return c = r.readBits(o), f.push(new Ri([i - 1, c, 32, 0, "lower"])), c = r.readBits(o), f.push(new Ri([a, c, 32, 0])), s & 1 && (c = r.readBits(o), f.push(new Ri([c, 0]))), new yl(f, false);
  }
  function _i(t) {
    let e = Su[t];
    if (e) return e;
    let n;
    switch (t) {
      case 1:
        n = [[0, 1, 4, 0], [16, 2, 8, 2], [272, 3, 16, 6], [65808, 3, 32, 7]];
        break;
      case 2:
        n = [[0, 1, 0, 0], [1, 2, 0, 2], [2, 3, 0, 6], [3, 4, 3, 14], [11, 5, 6, 30], [75, 6, 32, 62], [6, 63]];
        break;
      case 3:
        n = [[-256, 8, 8, 254], [0, 1, 0, 0], [1, 2, 0, 2], [2, 3, 0, 6], [3, 4, 3, 14], [11, 5, 6, 30], [-257, 8, 32, 255, "lower"], [75, 7, 32, 126], [6, 62]];
        break;
      case 4:
        n = [[1, 1, 0, 0], [2, 2, 0, 2], [3, 3, 0, 6], [4, 4, 3, 14], [12, 5, 6, 30], [76, 5, 32, 31]];
        break;
      case 5:
        n = [[-255, 7, 8, 126], [1, 1, 0, 0], [2, 2, 0, 2], [3, 3, 0, 6], [4, 4, 3, 14], [12, 5, 6, 30], [-256, 7, 32, 127, "lower"], [76, 6, 32, 62]];
        break;
      case 6:
        n = [[-2048, 5, 10, 28], [-1024, 4, 9, 8], [-512, 4, 8, 9], [-256, 4, 7, 10], [-128, 5, 6, 29], [-64, 5, 5, 30], [-32, 4, 5, 11], [0, 2, 7, 0], [128, 3, 7, 2], [256, 3, 8, 3], [512, 4, 9, 12], [1024, 4, 10, 13], [-2049, 6, 32, 62, "lower"], [2048, 6, 32, 63]];
        break;
      case 7:
        n = [[-1024, 4, 9, 8], [-512, 3, 8, 0], [-256, 4, 7, 9], [-128, 5, 6, 26], [-64, 5, 5, 27], [-32, 4, 5, 10], [0, 4, 5, 11], [32, 5, 5, 28], [64, 5, 6, 29], [128, 4, 7, 12], [256, 3, 8, 1], [512, 3, 9, 2], [1024, 3, 10, 3], [-1025, 5, 32, 30, "lower"], [2048, 5, 32, 31]];
        break;
      case 8:
        n = [[-15, 8, 3, 252], [-7, 9, 1, 508], [-5, 8, 1, 253], [-3, 9, 0, 509], [-2, 7, 0, 124], [-1, 4, 0, 10], [0, 2, 1, 0], [2, 5, 0, 26], [3, 6, 0, 58], [4, 3, 4, 4], [20, 6, 1, 59], [22, 4, 4, 11], [38, 4, 5, 12], [70, 5, 6, 27], [134, 5, 7, 28], [262, 6, 7, 60], [390, 7, 8, 125], [646, 6, 10, 61], [-16, 9, 32, 510, "lower"], [1670, 9, 32, 511], [2, 1]];
        break;
      case 9:
        n = [[-31, 8, 4, 252], [-15, 9, 2, 508], [-11, 8, 2, 253], [-7, 9, 1, 509], [-5, 7, 1, 124], [-3, 4, 1, 10], [-1, 3, 1, 2], [1, 3, 1, 3], [3, 5, 1, 26], [5, 6, 1, 58], [7, 3, 5, 4], [39, 6, 2, 59], [43, 4, 5, 11], [75, 4, 6, 12], [139, 5, 7, 27], [267, 5, 8, 28], [523, 6, 8, 60], [779, 7, 9, 125], [1291, 6, 11, 61], [-32, 9, 32, 510, "lower"], [3339, 9, 32, 511], [2, 0]];
        break;
      case 10:
        n = [[-21, 7, 4, 122], [-5, 8, 0, 252], [-4, 7, 0, 123], [-3, 5, 0, 24], [-2, 2, 2, 0], [2, 5, 0, 25], [3, 6, 0, 54], [4, 7, 0, 124], [5, 8, 0, 253], [6, 2, 6, 1], [70, 5, 5, 26], [102, 6, 5, 55], [134, 6, 6, 56], [198, 6, 7, 57], [326, 6, 8, 58], [582, 6, 9, 59], [1094, 6, 10, 60], [2118, 7, 11, 125], [-22, 8, 32, 254, "lower"], [4166, 8, 32, 255], [2, 2]];
        break;
      case 11:
        n = [[1, 1, 0, 0], [2, 2, 1, 2], [4, 4, 0, 12], [5, 4, 1, 13], [7, 5, 1, 28], [9, 5, 2, 29], [13, 6, 2, 60], [17, 7, 2, 122], [21, 7, 3, 123], [29, 7, 4, 124], [45, 7, 5, 125], [77, 7, 6, 126], [141, 7, 32, 127]];
        break;
      case 12:
        n = [[1, 1, 0, 0], [2, 2, 0, 2], [3, 3, 1, 6], [5, 5, 0, 28], [6, 5, 1, 29], [8, 6, 1, 60], [10, 7, 0, 122], [11, 7, 1, 123], [13, 7, 2, 124], [17, 7, 3, 125], [25, 7, 4, 126], [41, 8, 5, 254], [73, 8, 32, 255]];
        break;
      case 13:
        n = [[1, 1, 0, 0], [2, 3, 0, 4], [3, 4, 0, 12], [4, 5, 0, 28], [5, 4, 1, 13], [7, 3, 3, 5], [15, 6, 1, 58], [17, 6, 2, 59], [21, 6, 3, 60], [29, 6, 4, 61], [45, 6, 5, 62], [77, 7, 6, 126], [141, 7, 32, 127]];
        break;
      case 14:
        n = [[-2, 3, 0, 4], [-1, 3, 0, 5], [0, 1, 0, 0], [1, 3, 0, 6], [2, 3, 0, 7]];
        break;
      case 15:
        n = [[-24, 7, 4, 124], [-8, 6, 2, 60], [-4, 5, 1, 28], [-2, 4, 0, 12], [-1, 3, 0, 4], [0, 1, 0, 0], [1, 3, 0, 5], [2, 4, 0, 13], [3, 5, 1, 29], [5, 6, 2, 61], [9, 7, 4, 125], [-25, 7, 32, 126, "lower"], [25, 7, 32, 127]];
        break;
      default:
        throw new _t(`standard table B.${t} does not exist`);
    }
    for (let s = 0, i = n.length; s < i; s++) n[s] = new Ri(n[s]);
    return e = new yl(n, true), Su[t] = e, e;
  }
  function ia(t, e, n) {
    let s = 0;
    for (let i = 0, a = e.length; i < a; i++) {
      const r = n[e[i]];
      if (r) {
        if (t === s) return r;
        s++;
      }
    }
    throw new _t("can't find custom Huffman table");
  }
  function Ng(t, e, n, s, i) {
    const a = [];
    for (let u = 0; u <= 34; u++) {
      const d = i.readBits(4);
      a.push(new Ri([u, d, 0, 0]));
    }
    const r = new yl(a, false);
    a.length = 0;
    for (let u = 0; u < s; ) {
      const d = r.decode(i);
      if (d >= 32) {
        let m, g, b;
        switch (d) {
          case 32:
            if (u === 0) throw new _t("no previous value in symbol ID table");
            g = i.readBits(2) + 3, m = a[u - 1].prefixLength;
            break;
          case 33:
            g = i.readBits(3) + 3, m = 0;
            break;
          case 34:
            g = i.readBits(7) + 11, m = 0;
            break;
          default:
            throw new _t("invalid code length in symbol ID table");
        }
        for (b = 0; b < g; b++) a.push(new Ri([u, m, 0, 0])), u++;
      } else a.push(new Ri([u, d, 0, 0])), u++;
    }
    i.byteAlign();
    const o = new yl(a, false);
    let l = 0, f, c, h;
    switch (t.huffmanFS) {
      case 0:
      case 1:
        f = _i(t.huffmanFS + 6);
        break;
      case 3:
        f = ia(l, e, n), l++;
        break;
      default:
        throw new _t("invalid Huffman FS selector");
    }
    switch (t.huffmanDS) {
      case 0:
      case 1:
      case 2:
        c = _i(t.huffmanDS + 8);
        break;
      case 3:
        c = ia(l, e, n), l++;
        break;
      default:
        throw new _t("invalid Huffman DS selector");
    }
    switch (t.huffmanDT) {
      case 0:
      case 1:
      case 2:
        h = _i(t.huffmanDT + 11);
        break;
      case 3:
        h = ia(l, e, n), l++;
        break;
      default:
        throw new _t("invalid Huffman DT selector");
    }
    if (t.refinement) throw new _t("refinement with Huffman is not supported");
    return { symbolIDTable: o, tableFirstS: f, tableDeltaS: c, tableDeltaT: h };
  }
  function zg(t, e, n) {
    let s = 0, i, a;
    switch (t.huffmanDHSelector) {
      case 0:
      case 1:
        i = _i(t.huffmanDHSelector + 4);
        break;
      case 3:
        i = ia(s, e, n), s++;
        break;
      default:
        throw new _t("invalid Huffman DH selector");
    }
    switch (t.huffmanDWSelector) {
      case 0:
      case 1:
        a = _i(t.huffmanDWSelector + 2);
        break;
      case 3:
        a = ia(s, e, n), s++;
        break;
      default:
        throw new _t("invalid Huffman DW selector");
    }
    let r, o;
    return t.bitmapSizeSelector ? (r = ia(s, e, n), s++) : r = _i(1), t.aggregationInstancesSelector ? o = ia(s, e, n) : o = _i(1), { tableDeltaHeight: i, tableDeltaWidth: a, tableBitmapSize: r, tableAggregateInstances: o };
  }
  function Ug(t, e, n) {
    const s = [];
    for (let i = 0; i < n; i++) {
      const a = new Uint8Array(e);
      s.push(a);
      for (let r = 0; r < e; r++) a[r] = t.readBit();
      t.byteAlign();
    }
    return s;
  }
  function qf(t, e, n, s) {
    const i = { K: -1, Columns: e, Rows: n, BlackIs1: true, EndOfBlock: s }, a = new ku(t, i), r = [];
    let o, l = false;
    for (let f = 0; f < n; f++) {
      const c = new Uint8Array(e);
      r.push(c);
      let h = -1;
      for (let u = 0; u < e; u++) h < 0 && (o = a.readNextChar(), o === -1 && (o = 0, l = true), h = 7), c[u] = o >> h & 1, h--;
    }
    if (s && !l) for (let c = 0; c < 5 && a.readNextChar() !== -1; c++) ;
    return r;
  }
  function Vg(t, e) {
    let n = 0, s, i, a = 16;
    for (; a > 0 && !t[a - 1]; ) a--;
    const r = [{ children: [], index: 0 }];
    let o = r[0], l;
    for (s = 0; s < a; s++) {
      for (i = 0; i < t[s]; i++) {
        for (o = r.pop(), o.children[o.index] = e[n]; o.index > 0; ) o = r.pop();
        for (o.index++, r.push(o); r.length <= s; ) r.push(l = { children: [], index: 0 }), o.children[o.index] = l.children, o = l;
        n++;
      }
      s + 1 < a && (r.push(l = { children: [], index: 0 }), o.children[o.index] = l.children, o = l);
    }
    return r[0].children;
  }
  function Sf(t, e, n) {
    return 64 * ((t.blocksPerLine + 1) * e + n);
  }
  function Kg(t, e, n, s, i, a, r, o, l, f = false) {
    const c = n.mcusPerLine, h = n.progressive, u = e;
    let d = 0, m = 0;
    function g() {
      if (m > 0) return m--, d >> m & 1;
      if (d = t[e++], d === 255) {
        const M = t[e++];
        if (M) {
          if (M === 220 && f) {
            e += 2;
            const L = nt(t, e);
            if (e += 2, L > 0 && L !== n.scanLines) throw new Af("Found DNL marker (0xFFDC) while parsing scan data", L);
          } else if (M === 217) {
            if (f) {
              const L = T * (n.precision === 8 ? 8 : 0);
              if (L > 0 && Math.round(n.scanLines / L) >= 5) throw new Af("Found EOI marker (0xFFD9) while parsing scan data, possibly caused by incorrect `scanLines` parameter", L);
            }
            throw new Cu("Found EOI marker (0xFFD9) while parsing scan data");
          }
          throw new ks(`unexpected marker ${(d << 8 | M).toString(16)}`);
        }
      }
      return m = 7, d >>> 7;
    }
    p(g, "readBit");
    function b(M) {
      let L = M;
      for (; ; ) {
        switch (L = L[g()], typeof L) {
          case "number":
            return L;
          case "object":
            continue;
        }
        throw new ks("invalid huffman sequence");
      }
    }
    p(b, "decodeHuffman");
    function w(M) {
      let L = 0;
      for (; M > 0; ) L = L << 1 | g(), M--;
      return L;
    }
    p(w, "receive");
    function x(M) {
      if (M === 1) return g() === 1 ? 1 : -1;
      const L = w(M);
      return L >= 1 << M - 1 ? L : L + (-1 << M) + 1;
    }
    p(x, "receiveAndExtend");
    function y(M, L) {
      const J = b(M.huffmanTableDC), ce = J === 0 ? 0 : x(J);
      M.blockData[L] = M.pred += ce;
      let le = 1;
      for (; le < 64; ) {
        const se = b(M.huffmanTableAC), Te = se & 15, _e = se >> 4;
        if (Te === 0) {
          if (_e < 15) break;
          le += 16;
          continue;
        }
        le += _e;
        const Fe = Hr[le];
        M.blockData[L + Fe] = x(Te), le++;
      }
    }
    p(y, "decodeBaseline");
    function j(M, L) {
      const J = b(M.huffmanTableDC), ce = J === 0 ? 0 : x(J) << l;
      M.blockData[L] = M.pred += ce;
    }
    p(j, "decodeDCFirst");
    function v(M, L) {
      M.blockData[L] |= g() << l;
    }
    p(v, "decodeDCSuccessive");
    let q = 0;
    function A(M, L) {
      if (q > 0) {
        q--;
        return;
      }
      let J = a;
      const ce = r;
      for (; J <= ce; ) {
        const le = b(M.huffmanTableAC), se = le & 15, Te = le >> 4;
        if (se === 0) {
          if (Te < 15) {
            q = w(Te) + (1 << Te) - 1;
            break;
          }
          J += 16;
          continue;
        }
        J += Te;
        const _e = Hr[J];
        M.blockData[L + _e] = x(se) * (1 << l), J++;
      }
    }
    p(A, "decodeACFirst");
    let C = 0, S;
    function I(M, L) {
      let J = a;
      const ce = r;
      let le = 0, se, Te;
      for (; J <= ce; ) {
        const _e = L + Hr[J], Fe = M.blockData[_e] < 0 ? -1 : 1;
        switch (C) {
          case 0:
            if (Te = b(M.huffmanTableAC), se = Te & 15, le = Te >> 4, se === 0) le < 15 ? (q = w(le) + (1 << le), C = 4) : (le = 16, C = 1);
            else {
              if (se !== 1) throw new ks("invalid ACn encoding");
              S = x(se), C = le ? 2 : 3;
            }
            continue;
          case 1:
          case 2:
            M.blockData[_e] ? M.blockData[_e] += Fe * (g() << l) : (le--, le === 0 && (C = C === 2 ? 3 : 0));
            break;
          case 3:
            M.blockData[_e] ? M.blockData[_e] += Fe * (g() << l) : (M.blockData[_e] = S << l, C = 0);
            break;
          case 4:
            M.blockData[_e] && (M.blockData[_e] += Fe * (g() << l));
            break;
        }
        J++;
      }
      C === 4 && (q--, q === 0 && (C = 0));
    }
    p(I, "decodeACSuccessive");
    let T = 0;
    function P(M, L, J, ce, le) {
      const se = J / c | 0, Te = J % c;
      T = se * M.v + ce;
      const _e = Te * M.h + le, Fe = Sf(M, T, _e);
      L(M, Fe);
    }
    p(P, "decodeMcu");
    function H(M, L, J) {
      T = J / M.blocksPerLine | 0;
      const ce = J % M.blocksPerLine, le = Sf(M, T, ce);
      L(M, le);
    }
    p(H, "decodeBlock");
    const G = s.length;
    let Z, z, O, N, oe, je;
    h ? a === 0 ? je = o === 0 ? j : v : je = o === 0 ? A : I : je = y;
    let Y = 0, ye;
    const qe = G === 1 ? s[0].blocksPerLine * s[0].blocksPerColumn : c * n.mcusPerColumn;
    let W, K;
    for (; Y <= qe; ) {
      const M = i ? Math.min(qe - Y, i) : qe;
      if (M > 0) {
        for (z = 0; z < G; z++) s[z].pred = 0;
        if (q = 0, G === 1) for (Z = s[0], oe = 0; oe < M; oe++) H(Z, je, Y), Y++;
        else for (oe = 0; oe < M; oe++) {
          for (z = 0; z < G; z++) for (Z = s[z], W = Z.h, K = Z.v, O = 0; O < K; O++) for (N = 0; N < W; N++) P(Z, je, Y, O, N);
          Y++;
        }
      }
      if (m = 0, ye = El(t, e), !ye) break;
      if (ye.invalid) {
        const L = M > 0 ? "unexpected" : "excessive";
        F(`decodeScan - ${L} MCU data, current marker is: ${ye.invalid}`), e = ye.offset;
      }
      if (ye.marker >= 65488 && ye.marker <= 65495) e += 2;
      else break;
    }
    return e - u;
  }
  function Xg(t, e, n) {
    const s = t.quantizationTable, i = t.blockData;
    let a, r, o, l, f, c, h, u, d, m, g, b, w, x, y, j, v;
    if (!s) throw new ks("missing required Quantization Table.");
    for (let q = 0; q < 64; q += 8) {
      if (d = i[e + q], m = i[e + q + 1], g = i[e + q + 2], b = i[e + q + 3], w = i[e + q + 4], x = i[e + q + 5], y = i[e + q + 6], j = i[e + q + 7], d *= s[q], (m | g | b | w | x | y | j) === 0) {
        v = Ga * d + 512 >> 10, n[q] = v, n[q + 1] = v, n[q + 2] = v, n[q + 3] = v, n[q + 4] = v, n[q + 5] = v, n[q + 6] = v, n[q + 7] = v;
        continue;
      }
      m *= s[q + 1], g *= s[q + 2], b *= s[q + 3], w *= s[q + 4], x *= s[q + 5], y *= s[q + 6], j *= s[q + 7], a = Ga * d + 128 >> 8, r = Ga * w + 128 >> 8, o = g, l = y, f = Tl * (m - j) + 128 >> 8, u = Tl * (m + j) + 128 >> 8, c = b << 4, h = x << 4, a = a + r + 1 >> 1, r = a - r, v = o * Il + l * Cl + 128 >> 8, o = o * Cl - l * Il + 128 >> 8, l = v, f = f + h + 1 >> 1, h = f - h, u = u + c + 1 >> 1, c = u - c, a = a + l + 1 >> 1, l = a - l, r = r + o + 1 >> 1, o = r - o, v = f * Sl + u * Al + 2048 >> 12, f = f * Al - u * Sl + 2048 >> 12, u = v, v = c * ql + h * vl + 2048 >> 12, c = c * vl - h * ql + 2048 >> 12, h = v, n[q] = a + u, n[q + 7] = a - u, n[q + 1] = r + h, n[q + 6] = r - h, n[q + 2] = o + c, n[q + 5] = o - c, n[q + 3] = l + f, n[q + 4] = l - f;
    }
    for (let q = 0; q < 8; ++q) {
      if (d = n[q], m = n[q + 8], g = n[q + 16], b = n[q + 24], w = n[q + 32], x = n[q + 40], y = n[q + 48], j = n[q + 56], (m | g | b | w | x | y | j) === 0) {
        v = Ga * d + 8192 >> 14, v < -2040 ? v = 0 : v >= 2024 ? v = 255 : v = v + 2056 >> 4, i[e + q] = v, i[e + q + 8] = v, i[e + q + 16] = v, i[e + q + 24] = v, i[e + q + 32] = v, i[e + q + 40] = v, i[e + q + 48] = v, i[e + q + 56] = v;
        continue;
      }
      a = Ga * d + 2048 >> 12, r = Ga * w + 2048 >> 12, o = g, l = y, f = Tl * (m - j) + 2048 >> 12, u = Tl * (m + j) + 2048 >> 12, c = b, h = x, a = (a + r + 1 >> 1) + 4112, r = a - r, v = o * Il + l * Cl + 2048 >> 12, o = o * Cl - l * Il + 2048 >> 12, l = v, f = f + h + 1 >> 1, h = f - h, u = u + c + 1 >> 1, c = u - c, a = a + l + 1 >> 1, l = a - l, r = r + o + 1 >> 1, o = r - o, v = f * Sl + u * Al + 2048 >> 12, f = f * Al - u * Sl + 2048 >> 12, u = v, v = c * ql + h * vl + 2048 >> 12, c = c * vl - h * ql + 2048 >> 12, h = v, d = a + u, j = a - u, m = r + h, y = r - h, g = o + c, x = o - c, b = l + f, w = l - f, d < 16 ? d = 0 : d >= 4080 ? d = 255 : d >>= 4, m < 16 ? m = 0 : m >= 4080 ? m = 255 : m >>= 4, g < 16 ? g = 0 : g >= 4080 ? g = 255 : g >>= 4, b < 16 ? b = 0 : b >= 4080 ? b = 255 : b >>= 4, w < 16 ? w = 0 : w >= 4080 ? w = 255 : w >>= 4, x < 16 ? x = 0 : x >= 4080 ? x = 255 : x >>= 4, y < 16 ? y = 0 : y >= 4080 ? y = 255 : y >>= 4, j < 16 ? j = 0 : j >= 4080 ? j = 255 : j >>= 4, i[e + q] = d, i[e + q + 8] = m, i[e + q + 16] = g, i[e + q + 24] = b, i[e + q + 32] = w, i[e + q + 40] = x, i[e + q + 48] = y, i[e + q + 56] = j;
    }
  }
  function Yg(t, e) {
    const n = e.blocksPerLine, s = e.blocksPerColumn, i = new Int16Array(64);
    for (let a = 0; a < s; a++) for (let r = 0; r < n; r++) {
      const o = Sf(e, a, r);
      Xg(e, o, i);
    }
    return e.blockData;
  }
  function El(t, e, n = e) {
    const s = t.length - 1;
    let i = n < e ? n : e;
    if (e >= s) return null;
    const a = nt(t, e);
    if (a >= 65472 && a <= 65534) return { invalid: null, marker: a, offset: e };
    let r = nt(t, i);
    for (; !(r >= 65472 && r <= 65534); ) {
      if (++i >= s) return null;
      r = nt(t, i);
    }
    return { invalid: a.toString(16), marker: r, offset: i };
  }
  function Qg(t) {
    const e = Math.ceil(t.samplesPerLine / 8 / t.maxH), n = Math.ceil(t.scanLines / 8 / t.maxV);
    for (const s of t.components) {
      const i = Math.ceil(Math.ceil(t.samplesPerLine / 8) * s.h / t.maxH), a = Math.ceil(Math.ceil(t.scanLines / 8) * s.v / t.maxV), r = e * s.h, l = 64 * (n * s.v) * (r + 1);
      s.blockData = new Int16Array(l), s.blocksPerLine = i, s.blocksPerColumn = a;
    }
    t.mcusPerLine = e, t.mcusPerColumn = n;
  }
  function Iu(t, e) {
    const n = nt(t, e);
    e += 2;
    let s = e + n - 2;
    const i = El(t, s, e);
    i?.invalid && (F("readDataBlock - incorrect length, current marker is: " + i.invalid), s = i.offset);
    const a = t.subarray(e, s);
    return { appData: a, oldOffset: e, newOffset: e + a.length };
  }
  function Jg(t, e) {
    const n = nt(t, e);
    e += 2;
    const s = e + n - 2, i = El(t, s, e);
    return i?.invalid ? i.offset : s;
  }
  function Or(t, e, n, s, i) {
    let a = t;
    for (let r = 0, o = e.length - 1; r < o; r++) {
      const l = e[r];
      a = a[l] ||= [];
    }
    a[e.at(-1)] = { checkFn: n, iterateFn: s, processFn: i };
  }
  function Dn(t, e) {
    let n = 0;
    for (let s = 0; s <= e; s++) n = n << 8 | t[s];
    return n >>> 0;
  }
  function Rl(t, e) {
    return e === 1 ? String.fromCharCode(t[0], t[1]) : e === 3 ? String.fromCharCode(t[0], t[1], t[2], t[3]) : String.fromCharCode(...t.subarray(0, e + 1));
  }
  function Un(t, e, n) {
    let s = 0;
    for (let i = n; i >= 0; i--) s += t[i] + e[i], t[i] = s & 255, s >>= 8;
  }
  function ra(t, e) {
    let n = 1;
    for (let s = e; s >= 0 && n > 0; s--) n += t[s], t[s] = n & 255, n >>= 8;
  }
  function bb(t) {
    const e = [], n = t.length;
    let s = 0;
    for (; s < n - 1; ) e.push(t[s++] << 8 | t[s++]);
    return s < n && e.push(t[s]), n + "_" + String.fromCharCode.apply(null, e);
  }
  function Cf(t) {
    return t >= 48 && t <= 57 ? t & 15 : t >= 65 && t <= 70 || t >= 97 && t <= 102 ? (t & 15) + 9 : -1;
  }
  function Di(t) {
    let e = 0;
    for (let n = 0; n < t.length; n++) e = e << 8 | t.charCodeAt(n);
    return e >>> 0;
  }
  function oa(t) {
    if (typeof t != "string") throw new Q("Malformed CMap: expected string.");
  }
  function Pu(t) {
    if (!Number.isInteger(t)) throw new Q("Malformed CMap: expected int.");
  }
  function kb(t, e) {
    for (; ; ) {
      let n = e.getObj();
      if (n === pn) break;
      if (fn(n, "endbfchar")) return;
      oa(n);
      const s = Di(n);
      n = e.getObj(), oa(n);
      const i = n;
      t.mapOne(s, i);
    }
  }
  function yb(t, e) {
    for (; ; ) {
      let n = e.getObj();
      if (n === pn) break;
      if (fn(n, "endbfrange")) return;
      oa(n);
      const s = Di(n);
      n = e.getObj(), oa(n);
      const i = Di(n);
      if (n = e.getObj(), Number.isInteger(n) || typeof n == "string") {
        const a = Number.isInteger(n) ? String.fromCharCode(n) : n;
        t.mapBfRange(s, i, a);
      } else if (fn(n, "[")) {
        n = e.getObj();
        const a = [];
        for (; !fn(n, "]") && n !== pn; ) a.push(n), n = e.getObj();
        t.mapBfRangeToArray(s, i, a);
      } else break;
    }
    throw new Q("Invalid bf range.");
  }
  function jb(t, e) {
    for (; ; ) {
      let n = e.getObj();
      if (n === pn) break;
      if (fn(n, "endcidchar")) return;
      oa(n);
      const s = Di(n);
      n = e.getObj(), Pu(n);
      const i = n;
      t.mapOne(s, i);
    }
  }
  function vb(t, e) {
    for (; ; ) {
      let n = e.getObj();
      if (n === pn) break;
      if (fn(n, "endcidrange")) return;
      oa(n);
      const s = Di(n);
      n = e.getObj(), oa(n);
      const i = Di(n);
      n = e.getObj(), Pu(n);
      const a = n;
      t.mapCidRange(s, i, a);
    }
  }
  function qb(t, e) {
    for (; ; ) {
      let n = e.getObj();
      if (n === pn) break;
      if (fn(n, "endcodespacerange")) return;
      if (typeof n != "string") break;
      const s = Di(n);
      if (n = e.getObj(), typeof n != "string") break;
      const i = Di(n);
      t.addCodespaceRange(n.length, s, i);
    }
    throw new Q("Invalid codespace range.");
  }
  function Ab(t, e) {
    const n = e.getObj();
    Number.isInteger(n) && (t.vertical = !!n);
  }
  function Sb(t, e) {
    const n = e.getObj();
    n instanceof te && (t.name = n.name);
  }
  async function Du(t, e, n, s) {
    let i, a;
    e: for (; ; ) try {
      const r = e.getObj();
      if (r === pn) break;
      if (r instanceof te) r.name === "WMode" ? Ab(t, e) : r.name === "CMapName" && Sb(t, e), i = r;
      else if (r instanceof Qt) switch (r.cmd) {
        case "endcmap":
          break e;
        case "usecmap":
          i instanceof te && (a = i.name);
          break;
        case "begincodespacerange":
          qb(t, e);
          break;
        case "beginbfchar":
          kb(t, e);
          break;
        case "begincidchar":
          jb(t, e);
          break;
        case "beginbfrange":
          yb(t, e);
          break;
        case "begincidrange":
          vb(t, e);
          break;
      }
    } catch (r) {
      if (r instanceof Ft) throw r;
      F("Invalid cMap data: " + r);
      continue;
    }
    return !s && a && (s = a), s ? Mu(t, n, s) : t;
  }
  async function Mu(t, e, n) {
    if (t.useCMap = await Ef(n, e), t.numCodespaceRanges === 0) {
      const s = t.useCMap.codespaceRanges;
      for (let i = 0; i < s.length; i++) t.codespaceRanges[i] = s[i].slice();
      t.numCodespaceRanges = t.useCMap.numCodespaceRanges;
    }
    return t.useCMap.forEach(function(s, i) {
      t.contains(s) || t.mapOne(s, i);
    }), t;
  }
  async function Ef(t, e) {
    if (t === "Identity-H") return new Lr(false, 2);
    if (t === "Identity-V") return new Lr(true, 2);
    if (!xb.includes(t)) throw new Error("Unknown CMap name: " + t);
    if (!e) throw new Error("Built-in CMap parameters are not provided.");
    const { cMapData: n, isCompressed: s } = await e(t), i = new Tf(true);
    if (s) return new nb().process(n, i, (r) => Mu(i, e, r));
    const a = new Ps(new jt(n));
    return Du(i, a, e, null);
  }
  function Cb(t) {
    const e = new TextEncoder(), n = {};
    let s = 0;
    for (const l of Hu.strings) {
      const f = e.encode(t[l]);
      n[l] = f, s += 4 + f.length;
    }
    const i = new ArrayBuffer(s), a = new Uint8Array(i), r = new DataView(i);
    let o = 0;
    for (const l of Hu.strings) {
      const f = n[l], c = f.length;
      r.setUint32(o, c), a.set(f, o + 4), o += 4 + c;
    }
    return Bt(o === i.byteLength, "compileCssFontInfo: Buffer overflow"), i;
  }
  function Ib(t) {
    const e = new TextEncoder(), n = {};
    let s = 0;
    for (const h of Ou.strings) {
      const u = e.encode(t[h]);
      n[h] = u, s += 4 + u.length;
    }
    s += 4;
    let i, a, r = 1 + s;
    t.style && (i = e.encode(t.style.style), a = e.encode(t.style.weight), r += 4 + i.length + 4 + a.length);
    const o = new ArrayBuffer(r), l = new Uint8Array(o), f = new DataView(o);
    let c = 0;
    f.setUint8(c++, t.guessFallback ? 1 : 0), f.setUint32(c, 0), c += 4, s = 0;
    for (const h of Ou.strings) {
      const u = n[h], d = u.length;
      s += 4 + d, f.setUint32(c, d), l.set(u, c + 4), c += 4 + d;
    }
    return f.setUint32(c - s - 4, s), t.style && (f.setUint32(c, i.length), l.set(i, c + 4), c += 4 + i.length, f.setUint32(c, a.length), l.set(a, c + 4), c += 4 + a.length), Bt(c <= o.byteLength, "compileSystemFontInfo: Buffer overflow"), o.transferToFixedLength(c);
  }
  function Tb(t) {
    const e = t.systemFontInfo ? Ib(t.systemFontInfo) : null, n = t.cssFontInfo ? Cb(t.cssFontInfo) : null, s = new TextEncoder(), i = {};
    let a = 0;
    for (const m of Kn.strings) i[m] = s.encode(t[m]), a += 4 + i[m].length;
    const r = Kn.OFFSET_STRINGS + 4 + a + 4 + (e?.byteLength ?? 0) + 4 + (n?.byteLength ?? 0) + 4 + (t.data?.length ?? 0), o = new ArrayBuffer(r), l = new Uint8Array(o), f = new DataView(o);
    let c = 0;
    const h = Kn.bools.length;
    let u = 0, d = 0;
    for (let m = 0; m < h; m++) {
      const g = t[Kn.bools[m]];
      u |= (g === void 0 ? 0 : g ? 2 : 1) << d, d += 2, (d === 8 || m === h - 1) && (f.setUint8(c++, u), u = 0, d = 0);
    }
    Bt(c === Kn.OFFSET_NUMBERS, "compileFontInfo: Boolean properties offset mismatch");
    for (const m of Kn.numbers) f.setFloat64(c, t[m]), c += 8;
    if (Bt(c === Kn.OFFSET_BBOX, "compileFontInfo: Number properties offset mismatch"), t.bbox) {
      f.setUint8(c++, 4);
      for (const m of t.bbox) f.setInt16(c, m, true), c += 2;
    } else f.setUint8(c++, 0), c += 8;
    if (Bt(c === Kn.OFFSET_FONT_MATRIX, "compileFontInfo: BBox properties offset mismatch"), t.fontMatrix) {
      f.setUint8(c++, 6);
      for (const m of t.fontMatrix) f.setFloat64(c, m, true), c += 8;
    } else f.setUint8(c++, 0), c += 48;
    if (Bt(c === Kn.OFFSET_DEFAULT_VMETRICS, "compileFontInfo: FontMatrix properties offset mismatch"), t.defaultVMetrics) {
      f.setUint8(c++, 3);
      for (const m of t.defaultVMetrics) f.setInt16(c, m, true), c += 2;
    } else f.setUint8(c++, 0), c += 6;
    Bt(c === Kn.OFFSET_STRINGS, "compileFontInfo: DefaultVMetrics properties offset mismatch"), f.setUint32(Kn.OFFSET_STRINGS, 0), c += 4;
    for (const m of Kn.strings) {
      const g = i[m], b = g.length;
      f.setUint32(c, b), l.set(g, c + 4), c += 4 + b;
    }
    if (f.setUint32(Kn.OFFSET_STRINGS, c - Kn.OFFSET_STRINGS - 4), !e) f.setUint32(c, 0), c += 4;
    else {
      const m = e.byteLength;
      f.setUint32(c, m), Bt(c + 4 + m <= o.byteLength, "compileFontInfo: Buffer overflow at systemFontInfo"), l.set(new Uint8Array(e), c + 4), c += 4 + m;
    }
    if (!n) f.setUint32(c, 0), c += 4;
    else {
      const m = n.byteLength;
      f.setUint32(c, m), Bt(c + 4 + m <= o.byteLength, "compileFontInfo: Buffer overflow at cssFontInfo"), l.set(new Uint8Array(n), c + 4), c += 4 + m;
    }
    return t.data === void 0 ? (f.setUint32(c, 0), c += 4) : (f.setUint32(c, t.data.length), l.set(t.data, c + 4), c += 4 + t.data.length), Bt(c <= o.byteLength, "compileFontInfo: Buffer overflow"), o.transferToFixedLength(c);
  }
  function Eb(t) {
    let e, n = null, s = [], i = [], a = [], r = [], o = null, l = null;
    switch (t[0]) {
      case "RadialAxial":
        e = t[1] === "axial" ? 1 : 2, n = t[2], a = t[3], e === 1 ? s.push(...t[4], ...t[5]) : s.push(t[4][0], t[4][1], t[6], t[5][0], t[5][1], t[7]);
        break;
      case "Mesh":
        e = 3, o = t[1], s = t[2], i = t[3], r = t[4] || [], n = t[6], l = t[7];
        break;
      default:
        throw new Error(`Unsupported pattern type: ${t[0]}`);
    }
    const f = Math.floor(s.length / 2), c = Math.floor(i.length / 3), h = a.length, u = r.length;
    let d = 0;
    for (const j of r) d += 1, d = Math.ceil(d / 4) * 4, d += 4 + j.coords.length * 4, d += 4 + j.colors.length * 4, j.verticesPerRow !== void 0 && (d += 4);
    const m = 20 + f * 8 + c * 3 + h * 8 + (n ? 16 : 0) + (l ? 3 : 0) + d, g = new ArrayBuffer(m), b = new DataView(g), w = new Uint8Array(g);
    b.setUint8(Mi.KIND, e), b.setUint8(Mi.HAS_BBOX, n ? 1 : 0), b.setUint8(Mi.HAS_BACKGROUND, l ? 1 : 0), b.setUint8(Mi.SHADING_TYPE, o), b.setUint32(Mi.N_COORD, f, true), b.setUint32(Mi.N_COLOR, c, true), b.setUint32(Mi.N_STOP, h, true), b.setUint32(Mi.N_FIGURES, u, true);
    let x = 20;
    new Float32Array(g, x, f * 2).set(s), x += f * 8, w.set(i, x), x += c * 3;
    for (const [j, v] of a) b.setFloat32(x, j, true), x += 4, b.setUint32(x, parseInt(v.slice(1), 16), true), x += 4;
    if (n) for (const j of n) b.setFloat32(x, j, true), x += 4;
    l && (w.set(l, x), x += 3);
    for (let j = 0; j < r.length; j++) {
      const v = r[j];
      b.setUint8(x, v.type), x += 1, x = Math.ceil(x / 4) * 4, b.setUint32(x, v.coords.length, true), x += 4, new Int32Array(g, x, v.coords.length).set(v.coords), x += v.coords.length * 4, b.setUint32(x, v.colors.length, true), x += 4, new Int32Array(g, x, v.colors.length).set(v.colors), x += v.colors.length * 4, v.verticesPerRow !== void 0 && (b.setUint32(x, v.verticesPerRow, true), x += 4);
    }
    return g;
  }
  function Fb(t) {
    return t.slice().buffer;
  }
  function Ur(t) {
    switch (t) {
      case "WinAnsiEncoding":
        return zr;
      case "StandardEncoding":
        return gi;
      case "MacRomanEncoding":
        return Ff;
      case "SymbolSetEncoding":
        return Bf;
      case "ZapfDingbatsEncoding":
        return Rf;
      case "ExpertEncoding":
        return Lu;
      case "MacExpertEncoding":
        return Bb;
      default:
        return null;
    }
  }
  function Pb(t) {
    return t >= 65520 && t <= 65535 ? 0 : t >= 62976 && t <= 63743 ? _b()[t] || t : t === 173 ? 45 : t;
  }
  function Va(t, e) {
    let n = e[t];
    if (n !== void 0) return n;
    if (!t) return -1;
    if (t[0] === "u") {
      const s = t.length;
      let i;
      if (s === 7 && t[1] === "n" && t[2] === "i") i = t.substring(3);
      else if (s >= 5 && s <= 7) i = t.substring(1);
      else return -1;
      if (i === i.toUpperCase() && (n = parseInt(i, 16), n >= 0)) return n;
    }
    return -1;
  }
  function Db(t, e = -1) {
    if (e !== -1) {
      const n = _f[e];
      for (let s = 0, i = n.length; s < i; s += 2) if (t >= n[s] && t <= n[s + 1]) return e;
    }
    for (let n = 0, s = _f.length; n < s; n++) {
      const i = _f[n];
      for (let a = 0, r = i.length; a < r; a += 2) if (t >= i[a] && t <= i[a + 1]) return n;
    }
    return -1;
  }
  function Hb(t) {
    const e = Pf.get(t);
    if (e) return e;
    const n = t.match(Mb), s = { isWhitespace: !!n?.[1], isZeroWidthDiacritic: !!n?.[2], isInvisibleFormatMark: !!n?.[3] };
    return Pf.set(t, s), s;
  }
  function Ob() {
    Pf.clear();
  }
  function zu(t, e) {
    if (e[t] !== void 0) return t;
    const n = Va(t, e);
    if (n !== -1) {
      for (const s in e) if (e[s] === n) return s;
    }
    return Ke("Unable to recover a standard glyph name for: " + t), t;
  }
  function Uu(t, e, n) {
    const s = /* @__PURE__ */ Object.create(null);
    let i, a, r;
    const o = !!(t.flags & Ds.Symbolic);
    if (t.isInternalFont) for (r = e, a = 0; a < r.length; a++) i = n.indexOf(r[a]), s[a] = i >= 0 ? i : 0;
    else if (t.baseEncodingName) for (r = Ur(t.baseEncodingName), a = 0; a < r.length; a++) i = n.indexOf(r[a]), s[a] = i >= 0 ? i : 0;
    else if (o) for (a in e) s[a] = e[a];
    else for (r = gi, a = 0; a < r.length; a++) i = n.indexOf(r[a]), s[a] = i >= 0 ? i : 0;
    const l = t.differences;
    let f;
    if (l) for (a in l) {
      const c = l[a];
      if (i = n.indexOf(c), i === -1) {
        f || (f = Ks());
        const h = zu(c, f);
        h !== c && (i = n.indexOf(h));
      }
      s[a] = i >= 0 ? i : 0;
    }
    return s;
  }
  function Hi(t) {
    return t.replaceAll(/[,_]/g, "-").replaceAll(/\s/g, "");
  }
  function Nb({ data: t, width: e, height: n }) {
    if (e > Gu || n > Gu) return null;
    const s = 1e3, i = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]), a = e + 1, r = new Uint8Array(a * (n + 1));
    let o, l, f;
    const c = e + 7 & -8, h = new Uint8Array(c * n);
    let u = 0;
    for (const q of t) {
      let A = 128;
      for (; A > 0; ) h[u++] = q & A ? 0 : 255, A >>= 1;
    }
    let d = 0;
    for (u = 0, h[u] !== 0 && (r[0] = 1, ++d), l = 1; l < e; l++) h[u] !== h[u + 1] && (r[l] = h[u] ? 2 : 1, ++d), u++;
    for (h[u] !== 0 && (r[l] = 2, ++d), o = 1; o < n; o++) {
      u = o * c, f = o * a, h[u - c] !== h[u] && (r[f] = h[u] ? 1 : 8, ++d);
      let q = (h[u] ? 4 : 0) + (h[u - c] ? 8 : 0);
      for (l = 1; l < e; l++) q = (q >> 2) + (h[u + 1] ? 4 : 0) + (h[u - c + 1] ? 8 : 0), i[q] && (r[f + l] = i[q], ++d), u++;
      if (h[u - c] !== h[u] && (r[f + l] = h[u] ? 2 : 4, ++d), d > s) return null;
    }
    for (u = c * (n - 1), f = o * a, h[u] !== 0 && (r[f] = 8, ++d), l = 1; l < e; l++) h[u] !== h[u + 1] && (r[f + l] = h[u] ? 4 : 8, ++d), u++;
    if (h[u] !== 0 && (r[f + l] = 4, ++d), d > s) return null;
    const m = new Int32Array([0, a, -1, 0, -a, 0, 0, 0, 1]), g = [], { a: b, b: w, c: x, d: y, e: j, f: v } = new DOMMatrix().scaleSelf(1 / e, -1 / n).translateSelf(0, -n);
    for (o = 0; d && o <= n; o++) {
      let q = o * a;
      const A = q + e;
      for (; q < A && !r[q]; ) q++;
      if (q === A) continue;
      let C = q % a, S = o;
      g.push(Et.moveTo, b * C + x * S + j, w * C + y * S + v);
      const I = q;
      let T = r[q];
      do {
        const P = m[T];
        do
          q += P;
        while (!r[q]);
        const H = r[q];
        H !== 5 && H !== 10 ? (T = H, r[q] = 0) : (T = H & 51 * T >> 4, r[q] &= T >> 2 | T << 2), C = q % a, S = q / a | 0, g.push(Et.lineTo, b * C + x * S + j, w * C + y * S + v), r[q] || --d;
      } while (I !== q);
      --o;
    }
    return [E.rawFillPath, [new Float32Array(g)], new Float32Array([0, 0, e, n])];
  }
  function Yu(t) {
    const e = Hi(t);
    return Wr()[e];
  }
  function Qu(t) {
    const e = Hi(t);
    return !!(Wr()[e] || Of()[e] || Lf()[e] || Nf()[e]);
  }
  function la(t, e) {
    return ui(t, e) / 16384;
  }
  function Uf(t) {
    const e = t.length;
    let n = 32768;
    return e < 1240 ? n = 107 : e < 33900 && (n = 1131), n;
  }
  function ew(t, e, n) {
    const s = nt(t, e + 2) === 1 ? yt(t, e + 8) : yt(t, e + 16), i = nt(t, e + s);
    let a, r, o;
    if (i === 4) {
      nt(t, e + s + 2);
      const l = nt(t, e + s + 6) >> 1;
      for (r = e + s + 14, a = [], o = 0; o < l; o++, r += 2) a[o] = { end: nt(t, r) };
      for (r += 2, o = 0; o < l; o++, r += 2) a[o].start = nt(t, r);
      for (o = 0; o < l; o++, r += 2) a[o].idDelta = nt(t, r);
      for (o = 0; o < l; o++, r += 2) {
        let f = nt(t, r);
        if (f !== 0) {
          a[o].ids = [];
          for (let c = 0, h = a[o].end - a[o].start + 1; c < h; c++) a[o].ids[c] = nt(t, r + f), f += 2;
        }
      }
      return a;
    } else if (i === 12) {
      const l = yt(t, e + s + 12);
      for (r = e + s + 16, a = [], o = 0; o < l; o++) e = yt(t, r), a.push({ start: e, end: yt(t, r + 4), idDelta: yt(t, r + 8) - e }), r += 12;
      return a;
    }
    throw new Q(`unsupported cmap: ${i}`);
  }
  function tw(t, e, n, s) {
    const i = {}, r = new Df(new jt(t, e, n - e), i, s).parse();
    return { glyphs: r.charStrings.objects, subrs: r.topDict.privateDict?.subrsIndex?.objects, gsubrs: r.globalSubrIndex?.objects, isCFFCIDFont: r.isCIDFont, fdSelect: r.fdSelect, fdArray: r.fdArray };
  }
  function nw(t, e, n) {
    let s, i;
    n ? (s = 4, i = yt) : (s = 2, i = p((o, l) => 2 * nt(o, l), "itemDecode"));
    const a = [];
    let r = i(e, 0);
    for (let o = s; o < e.length; o += s) {
      const l = i(e, o);
      a.push(t.subarray(r, l)), r = l;
    }
    return a;
  }
  function Dl(t, e) {
    const n = e.codePointAt(0);
    let s = 0, i = 0, a = t.length - 1;
    for (; i < a; ) {
      const r = i + a + 1 >> 1;
      n < t[r].start ? a = r - 1 : i = r;
    }
    return t[i].start <= n && n <= t[i].end && (s = t[i].idDelta + (t[i].ids ? t[i].ids[n - t[i].start] : n) & 65535), { charCode: n, glyphId: s };
  }
  function Ju(t, e, n) {
    function s(u, d) {
      f && e.add(Et.lineTo, f), f = [u, d], e.add(Et.moveTo, [u, d]);
    }
    p(s, "moveTo");
    function i(u, d) {
      e.add(Et.lineTo, [u, d]);
    }
    p(i, "lineTo");
    function a(u, d, m, g) {
      e.add(Et.quadraticCurveTo, [u, d, m, g]);
    }
    p(a, "quadraticCurveTo");
    let r = 0;
    const o = ui(t, r);
    let l, f = null, c = 0, h = 0;
    if (r += 10, o < 0) do {
      l = nt(t, r);
      const u = nt(t, r + 2);
      r += 4;
      let d, m;
      l & 1 ? (l & 2 ? (d = ui(t, r), m = ui(t, r + 2)) : (d = nt(t, r), m = nt(t, r + 2)), r += 4) : l & 2 ? (d = Vs(t, r++), m = Vs(t, r++)) : (d = t[r++], m = t[r++]), l & 2 ? (c = d, h = m) : (c = 0, h = 0);
      let g = 1, b = 1, w = 0, x = 0;
      l & 8 ? (g = b = la(t, r), r += 2) : l & 64 ? (g = la(t, r), b = la(t, r + 2), r += 4) : l & 128 && (g = la(t, r), w = la(t, r + 2), x = la(t, r + 4), b = la(t, r + 6), r += 8);
      const y = n.glyphs[u];
      y && (e.save(), e.transform([g, w, x, b, c, h]), Ju(y, e, n), e.restore());
    } while (l & 32);
    else {
      const u = [];
      let d, m;
      for (d = 0; d < o; d++) u.push(nt(t, r)), r += 2;
      const g = nt(t, r);
      r += 2 + g;
      const b = u.at(-1) + 1, w = [];
      for (; w.length < b; ) {
        l = t[r++];
        let y = 1;
        for (l & 8 && (y += t[r++]); y-- > 0; ) w.push({ flags: l });
      }
      for (d = 0; d < b; d++) {
        switch (w[d].flags & 18) {
          case 0:
            c += ui(t, r), r += 2;
            break;
          case 2:
            c -= t[r++];
            break;
          case 18:
            c += t[r++];
            break;
        }
        w[d].x = c;
      }
      for (d = 0; d < b; d++) {
        switch (w[d].flags & 36) {
          case 0:
            h += ui(t, r), r += 2;
            break;
          case 4:
            h -= t[r++];
            break;
          case 36:
            h += t[r++];
            break;
        }
        w[d].y = h;
      }
      let x = 0;
      for (r = 0; r < o; r++) {
        const y = u[r], j = w.slice(x, y + 1);
        if (j[0].flags & 1) j.push(j[0]);
        else if (j.at(-1).flags & 1) j.unshift(j.at(-1));
        else {
          const v = { flags: 1, x: (j[0].x + j.at(-1).x) / 2, y: (j[0].y + j.at(-1).y) / 2 };
          j.unshift(v), j.push(v);
        }
        for (s(j[0].x, j[0].y), d = 1, m = j.length; d < m; d++) j[d].flags & 1 ? i(j[d].x, j[d].y) : j[d + 1].flags & 1 ? (a(j[d].x, j[d].y, j[d + 1].x, j[d + 1].y), d++) : a(j[d].x, j[d].y, (j[d].x + j[d + 1].x) / 2, (j[d].y + j[d + 1].y) / 2);
        x = y + 1;
      }
    }
  }
  function Gf(t, e, n, s) {
    function i(d, m) {
      h && e.add(Et.lineTo, h), h = [d, m], e.add(Et.moveTo, [d, m]);
    }
    p(i, "moveTo");
    function a(d, m) {
      e.add(Et.lineTo, [d, m]);
    }
    p(a, "lineTo");
    function r(d, m, g, b, w, x) {
      e.add(Et.curveTo, [d, m, g, b, w, x]);
    }
    p(r, "bezierCurveTo");
    const o = [];
    let l = 0, f = 0, c = 0, h = null;
    function u(d) {
      let m = 0;
      for (; m < d.length; ) {
        let g = false, b = d[m++], w, x, y, j, v, q, A, C, S;
        switch (b) {
          case 1:
            c += o.length >> 1, g = true;
            break;
          case 3:
            c += o.length >> 1, g = true;
            break;
          case 4:
            f += o.pop(), i(l, f), g = true;
            break;
          case 5:
            for (; o.length > 0; ) l += o.shift(), f += o.shift(), a(l, f);
            break;
          case 6:
            for (; o.length > 0 && (l += o.shift(), a(l, f), o.length !== 0); ) f += o.shift(), a(l, f);
            break;
          case 7:
            for (; o.length > 0 && (f += o.shift(), a(l, f), o.length !== 0); ) l += o.shift(), a(l, f);
            break;
          case 8:
            for (; o.length > 0; ) w = l + o.shift(), y = f + o.shift(), x = w + o.shift(), j = y + o.shift(), l = x + o.shift(), f = j + o.shift(), r(w, y, x, j, l, f);
            break;
          case 10:
            if (C = o.pop(), S = null, n.isCFFCIDFont) {
              const I = n.fdSelect.getFDIndex(s);
              if (I >= 0 && I < n.fdArray.length) {
                const T = n.fdArray[I];
                let P;
                T.privateDict?.subrsIndex && (P = T.privateDict.subrsIndex.objects), P && (C += Uf(P), S = P[C]);
              } else F("Invalid fd index for glyph index.");
            } else S = n.subrs[C + n.subrsBias];
            S && u(S);
            break;
          case 11:
            return;
          case 12:
            switch (b = d[m++], b) {
              case 34:
                w = l + o.shift(), x = w + o.shift(), v = f + o.shift(), l = x + o.shift(), r(w, f, x, v, l, v), w = l + o.shift(), x = w + o.shift(), l = x + o.shift(), r(w, v, x, f, l, f);
                break;
              case 35:
                w = l + o.shift(), y = f + o.shift(), x = w + o.shift(), j = y + o.shift(), l = x + o.shift(), f = j + o.shift(), r(w, y, x, j, l, f), w = l + o.shift(), y = f + o.shift(), x = w + o.shift(), j = y + o.shift(), l = x + o.shift(), f = j + o.shift(), r(w, y, x, j, l, f), o.pop();
                break;
              case 36:
                w = l + o.shift(), v = f + o.shift(), x = w + o.shift(), q = v + o.shift(), l = x + o.shift(), r(w, v, x, q, l, q), w = l + o.shift(), x = w + o.shift(), A = q + o.shift(), l = x + o.shift(), r(w, q, x, A, l, f);
                break;
              case 37:
                const I = l, T = f;
                w = l + o.shift(), y = f + o.shift(), x = w + o.shift(), j = y + o.shift(), l = x + o.shift(), f = j + o.shift(), r(w, y, x, j, l, f), w = l + o.shift(), y = f + o.shift(), x = w + o.shift(), j = y + o.shift(), l = x, f = j, Math.abs(l - I) > Math.abs(f - T) ? l += o.shift() : f += o.shift(), r(w, y, x, j, l, f);
                break;
              default:
                throw new Q(`unknown operator: 12 ${b}`);
            }
            break;
          case 14:
            if (o.length >= 4) {
              const I = o.pop(), T = o.pop();
              f = o.pop(), l = o.pop(), e.save(), e.translate(l, f);
              let P = Dl(n.cmap, String.fromCharCode(n.glyphNameMap[gi[I]]));
              Gf(n.glyphs[P.glyphId], e, n, P.glyphId), e.restore(), P = Dl(n.cmap, String.fromCharCode(n.glyphNameMap[gi[T]])), Gf(n.glyphs[P.glyphId], e, n, P.glyphId);
            }
            return;
          case 18:
            c += o.length >> 1, g = true;
            break;
          case 19:
            c += o.length >> 1, m += c + 7 >> 3, g = true;
            break;
          case 20:
            c += o.length >> 1, m += c + 7 >> 3, g = true;
            break;
          case 21:
            f += o.pop(), l += o.pop(), i(l, f), g = true;
            break;
          case 22:
            l += o.pop(), i(l, f), g = true;
            break;
          case 23:
            c += o.length >> 1, g = true;
            break;
          case 24:
            for (; o.length > 2; ) w = l + o.shift(), y = f + o.shift(), x = w + o.shift(), j = y + o.shift(), l = x + o.shift(), f = j + o.shift(), r(w, y, x, j, l, f);
            l += o.shift(), f += o.shift(), a(l, f);
            break;
          case 25:
            for (; o.length > 6; ) l += o.shift(), f += o.shift(), a(l, f);
            w = l + o.shift(), y = f + o.shift(), x = w + o.shift(), j = y + o.shift(), l = x + o.shift(), f = j + o.shift(), r(w, y, x, j, l, f);
            break;
          case 26:
            for (o.length % 2 && (l += o.shift()); o.length > 0; ) w = l, y = f + o.shift(), x = w + o.shift(), j = y + o.shift(), l = x, f = j + o.shift(), r(w, y, x, j, l, f);
            break;
          case 27:
            for (o.length % 2 && (f += o.shift()); o.length > 0; ) w = l + o.shift(), y = f, x = w + o.shift(), j = y + o.shift(), l = x + o.shift(), f = j, r(w, y, x, j, l, f);
            break;
          case 28:
            o.push(ui(d, m)), m += 2;
            break;
          case 29:
            C = o.pop() + n.gsubrsBias, S = n.gsubrs[C], S && u(S);
            break;
          case 30:
            for (; o.length > 0 && (w = l, y = f + o.shift(), x = w + o.shift(), j = y + o.shift(), l = x + o.shift(), f = j + (o.length === 1 ? o.shift() : 0), r(w, y, x, j, l, f), o.length !== 0); ) w = l + o.shift(), y = f, x = w + o.shift(), j = y + o.shift(), f = j + o.shift(), l = x + (o.length === 1 ? o.shift() : 0), r(w, y, x, j, l, f);
            break;
          case 31:
            for (; o.length > 0 && (w = l + o.shift(), y = f, x = w + o.shift(), j = y + o.shift(), f = j + o.shift(), l = x + (o.length === 1 ? o.shift() : 0), r(w, y, x, j, l, f), o.length !== 0); ) w = l, y = f + o.shift(), x = w + o.shift(), j = y + o.shift(), l = x + o.shift(), f = j + (o.length === 1 ? o.shift() : 0), r(w, y, x, j, l, f);
            break;
          default:
            if (b < 32) throw new Q(`unknown operator: ${b}`);
            b < 247 ? o.push(b - 139) : b < 251 ? o.push((b - 247) * 256 + d[m++] + 108) : b < 255 ? o.push(-(b - 251) * 256 - d[m++] - 108) : (o.push((d[m] << 24 | d[m + 1] << 16 | d[m + 2] << 8 | d[m + 3]) / 65536), m += 4);
            break;
        }
        g && (o.length = 0);
      }
    }
    p(u, "parse"), u(t);
  }
  function Ll(t, e, n) {
    t[e] = n >> 8 & 255, t[e + 1] = n & 255;
  }
  function $f(t, e, n) {
    t[e] = n >> 24 & 255, t[e + 1] = n >> 16 & 255, t[e + 2] = n >> 8 & 255, t[e + 3] = n & 255;
  }
  function bw(t, e, n) {
    if (n instanceof Uint8Array) t.set(n, e);
    else if (typeof n == "string") for (let s = 0, i = n.length; s < i; s++) t[e++] = n.charCodeAt(s) & 255;
    else for (const s of n) t[e++] = s & 255;
  }
  function Xs(t) {
    return t >= 48 && t <= 57 || t >= 65 && t <= 70 || t >= 97 && t <= 102;
  }
  function sd(t, e, n) {
    if (n >= t.length) return new Uint8Array(0);
    const s = 52845, i = 22719;
    let a = e | 0, r, o;
    for (r = 0; r < n; r++) a = (t[r] + a) * s + i & 65535;
    const l = t.length - n, f = new Uint8Array(l);
    for (r = n, o = 0; o < l; r++, o++) {
      const c = t[r];
      f[o] = c ^ a >> 8, a = (c + a) * s + i & 65535;
    }
    return f;
  }
  function yw(t, e, n) {
    let a = e | 0;
    const r = t.length, o = r >>> 1, l = new Uint8Array(o);
    let f, c;
    for (f = 0, c = 0; f < r; f++) {
      const h = t[f];
      if (!Xs(h)) continue;
      f++;
      let u;
      for (; f < r && !Xs(u = t[f]); ) f++;
      if (f < r) {
        const d = parseInt(String.fromCharCode(h, u), 16);
        l[c++] = d ^ a >> 8, a = (d + a) * 52845 + 22719 & 65535;
      }
    }
    return l.slice(n, c);
  }
  function id(t) {
    return t === 47 || t === 91 || t === 93 || t === 123 || t === 125 || t === 40 || t === 41;
  }
  function rd(t, e, n) {
    const s = t.length, i = e.length, a = s - i;
    let r = n, o = false;
    for (; r < a; ) {
      let l = 0;
      for (; l < i && t[r + l] === e[l]; ) l++;
      if (l >= i) {
        for (r += l; r < s && ls(t[r]); ) r++;
        o = true;
        break;
      }
      r++;
    }
    return { found: o, length: r };
  }
  function jw(t, e) {
    const n = [101, 101, 120, 101, 99], s = t.pos;
    let i, a, r;
    try {
      i = t.getBytes(e), a = i.length;
    } catch {
    }
    if (a === e && (r = rd(i, n, e - 2 * n.length), r.found && r.length === e)) return { stream: new jt(i), length: e };
    F('Invalid "Length1" property in Type1 font -- trying to recover.'), t.pos = s;
    const o = 2048;
    let l;
    for (; ; ) {
      const f = t.peekBytes(o);
      if (r = rd(f, n, 0), r.length === 0) break;
      if (t.pos += r.length, r.found) {
        l = t.pos - s;
        break;
      }
    }
    return t.pos = s, l ? { stream: new jt(t.getBytes(l)), length: l } : (F('Unable to recover "Length1" property in Type1 font -- using as is.'), { stream: new jt(t.getBytes(e)), length: e });
  }
  function vw(t, e) {
    const n = t.getBytes();
    if (n.length === 0) throw new Q("getEexecBlock - no font program found.");
    return { stream: new jt(n), length: n.length };
  }
  function od(t) {
    if (!t.fontMatrix || t.fontMatrix[0] === na[0]) return;
    const e = 1e-3 / t.fontMatrix[0], n = t.widths;
    for (const s in n) n[s] *= e;
    t.defaultWidth *= e;
  }
  function Cw(t, e, n) {
    if (t.isInternalFont || t.hasIncludedToUnicodeMap || t.hasEncoding || t.toUnicode instanceof ys || !e || n.length === 0 || t.defaultEncoding === zr) return;
    for (const r of n) if (!cd(r)) return;
    const s = zr, i = [], a = Ks();
    for (const r in s) {
      const o = s[r];
      if (o === "") continue;
      const l = a[o];
      l !== void 0 && (i[r] = String.fromCharCode(l));
    }
    i.length > 0 && t.toUnicode.amend(i);
  }
  function Iw(t, e) {
    if (t.isInternalFont || t.hasIncludedToUnicodeMap || e === t.defaultEncoding || t.toUnicode instanceof ys) return;
    const n = [], s = Ks();
    for (const i in e) {
      if (t.hasEncoding && (t.baseEncodingName || t.differences[i] !== void 0)) continue;
      const a = e[i], r = Va(a, s);
      r !== -1 && (n[i] = String.fromCharCode(r));
    }
    n.length > 0 && t.toUnicode.amend(n);
  }
  function ld(t) {
    if (!t.fallbackToUnicode || t.toUnicode instanceof ys) return;
    const e = [];
    for (const n in t.fallbackToUnicode) t.toUnicode.has(n) || (e[n] = t.fallbackToUnicode[n]);
    e.length > 0 && t.toUnicode.amend(e);
  }
  function Ya(t, e) {
    return (t << 8) + e;
  }
  function Yr(t, e, n) {
    t[e + 1] = n, t[e] = n >>> 8;
  }
  function fs(t, e) {
    const n = (t << 8) + e;
    return n & 32768 ? n - 65536 : n;
  }
  function Ew(t, e, n) {
    t[e + 3] = n & 255, t[e + 2] = n >>> 8, t[e + 1] = n >>> 16, t[e] = n >>> 24;
  }
  function Fw(t, e, n, s) {
    return (t << 24) + (e << 16) + (n << 8) + s;
  }
  function wt(t) {
    return String.fromCharCode(t >> 8 & 255, t & 255);
  }
  function ca(t) {
    return t > 32767 ? t = 32767 : t < -32768 && (t = -32768), String.fromCharCode(t >> 8 & 255, t & 255);
  }
  function Bw(t) {
    const e = t.peekBytes(4);
    return yt(e, 0) === 65536 || Vn(e) === "true";
  }
  function fd(t) {
    const e = t.peekBytes(4);
    return Vn(e) === "ttcf";
  }
  function Rw(t) {
    const e = t.peekBytes(4);
    return Vn(e) === "OTTO";
  }
  function _w(t) {
    const e = t.peekBytes(2);
    return e[0] === 37 && e[1] === 33 || e[0] === 128 && e[1] === 1;
  }
  function Pw(t) {
    const e = t.peekBytes(4);
    return e[0] >= 1 && e[3] >= 1 && e[3] <= 4;
  }
  function Dw(t, { type: e, subtype: n, composite: s }) {
    let i, a;
    return Bw(t) || fd(t) ? i = s ? "CIDFontType2" : "TrueType" : Rw(t) ? i = s ? "CIDFontType2" : "OpenType" : _w(t) ? s ? i = "CIDFontType0" : i = e === "MMType1" ? "MMType1" : "Type1" : Pw(t) ? s ? (i = "CIDFontType0", a = "CIDFontType0C") : (i = e === "MMType1" ? "MMType1" : "Type1", a = "Type1C") : (F("getFontFileType: Unable to detect correct font file Type/Subtype."), i = e, a = n), [i, a];
  }
  function Nl(t, e) {
    for (const n in e) t[+n] = e[n];
  }
  function Vf(t, e, n) {
    const s = [];
    let i;
    for (let a = 0, r = t.length; a < r; a++) i = Va(t[a], e), i !== -1 && (s[a] = i);
    for (const a in n) i = Va(n[a], e), i !== -1 && (s[+a] = i);
    return s;
  }
  function Mw(t) {
    return t.platform === 1 && t.encoding === 0 && t.language === 0;
  }
  function cd(t) {
    return t.platform === 3 && t.encoding === 1 && t.language === 1033;
  }
  function Kf(t, e, n = false) {
    switch (e.length) {
      case 1:
        return e.charCodeAt(0);
      case 2:
        return e.charCodeAt(0) << 8 | e.charCodeAt(1);
    }
    const s = `Unsupported CID string (charCode ${t}): "${e}".`;
    if (n) throw new Q(s);
    return F(s), e;
  }
  function hd(t, e, n, s) {
    const i = /* @__PURE__ */ Object.create(null), a = /* @__PURE__ */ new Map(), r = [], o = /* @__PURE__ */ new Set();
    let l = 0, c = bi[l][0], h = bi[l][1];
    const u = p((m) => bi[0][0] <= m && m <= bi[0][1] || bi[1][0] <= m && m <= bi[1][1], "isInPrivateArea");
    let d = null;
    for (const m in t) {
      let g = t[m];
      if (!e(g)) continue;
      if (c > h) {
        if (l++, l >= bi.length) {
          F("Ran out of space in font private use area.");
          break;
        }
        c = bi[l][0], h = bi[l][1];
      }
      const b = c++;
      g === 0 && (g = n);
      let w = s.get(m);
      if (typeof w == "string") if (w.length === 1) w = w.codePointAt(0);
      else {
        if (!d) {
          d = /* @__PURE__ */ new Map();
          for (let x = 64256; x <= 64335; x++) {
            const y = String.fromCharCode(x).normalize("NFKD");
            y.length > 1 && d.set(y, x);
          }
        }
        w = d.get(w) || w.codePointAt(0);
      }
      w && !u(w) && !o.has(g) && (a.set(w, g), o.add(g)), i[b] = g, r[m] = b;
    }
    return { toFontChar: r, charCodeToGlyphId: i, toUnicodeExtraMap: a, nextAvailableFontCharCode: c };
  }
  function Hw(t, e, n) {
    const s = [];
    for (const r in t) t[r] >= n || s.push({ fontCharCode: r | 0, glyphId: t[r] });
    if (e) for (const [r, o] of e) o >= n || s.push({ fontCharCode: r, glyphId: o });
    s.length === 0 && s.push({ fontCharCode: 0, glyphId: 0 }), s.sort((r, o) => r.fontCharCode - o.fontCharCode);
    const i = [], a = s.length;
    for (let r = 0; r < a; ) {
      const o = s[r].fontCharCode, l = [s[r].glyphId];
      ++r;
      let f = o;
      for (; r < a && f + 1 === s[r].fontCharCode && (l.push(s[r].glyphId), ++f, ++r, f !== 65535); ) ;
      i.push([o, f, l]);
    }
    return i;
  }
  function ud(t, e, n) {
    const s = Hw(t, e, n), i = s.at(-1)[1] > 65535 ? 2 : 1;
    let a = "\0\0" + wt(i) + "\0\0" + vn(4 + i * 8), r, o, l, f;
    for (r = s.length - 1; r >= 0 && !(s[r][0] <= 65535); --r) ;
    const c = r + 1;
    s[r][0] < 65535 && s[r][1] === 65535 && (s[r][1] = 65534);
    const h = s[r][1] < 65535 ? 1 : 0, u = c + h, d = Vo.getSearchParams(u, 2);
    let m = "", g = "", b = "", w = "", x = "", y = 0, j, v, q, A;
    for (r = 0, o = c; r < o; r++) {
      j = s[r], v = j[0], q = j[1], m += wt(v), g += wt(q), A = j[2];
      let T = true;
      for (l = 1, f = A.length; l < f; ++l) if (A[l] !== A[l - 1] + 1) {
        T = false;
        break;
      }
      if (T) {
        const P = A[0];
        b += wt(P - v & 65535), w += wt(0);
      } else {
        const P = (u - r) * 2 + y * 2;
        for (y += q - v + 1, b += wt(0), w += wt(P), l = 0, f = A.length; l < f; ++l) x += wt(A[l]);
      }
    }
    h > 0 && (g += "\xFF\xFF", m += "\xFF\xFF", b += "\0", w += "\0\0");
    const C = "\0\0" + wt(2 * u) + wt(d.range) + wt(d.entry) + wt(d.rangeShift) + g + "\0\0" + m + b + w + x;
    let S = "", I = "";
    if (i > 1) {
      for (a += `\0\0
` + vn(4 + i * 8 + 4 + C.length), S = "", r = 0, o = s.length; r < o; r++) {
        j = s[r], v = j[0], A = j[2];
        let T = A[0];
        for (l = 1, f = A.length; l < f; ++l) A[l] !== A[l - 1] + 1 && (q = j[0] + l - 1, S += vn(v) + vn(q) + vn(T), v = q + 1, T = A[l]);
        S += vn(v) + vn(j[1]) + vn(T);
      }
      I = "\0\f\0\0" + vn(S.length + 16) + "\0\0\0\0" + vn(S.length / 12);
    }
    return a + "\0" + wt(C.length + 4) + C + I + S;
  }
  function Ow(t, e) {
    e.pos = (e.start || 0) + t.offset;
    const n = e.getUint16();
    e.skip(60);
    const s = e.getUint16();
    if (n < 4 && s & 768) return false;
    const i = e.getUint16(), a = e.getUint16();
    return i > a || (e.skip(6), e.getUint16() === 0) ? false : (t.data[8] = t.data[9] = 0, true);
  }
  function dd(t, e, n) {
    n ||= { unitsPerEm: 0, yMax: 0, yMin: 0, ascent: 0, descent: 0 };
    let s = 0, i = 0, a = 0, r = 0, o = null, l = 0, f = -1;
    if (e) {
      for (let w in e) if (w |= 0, (o > w || !o) && (o = w), l < w && (l = w), f = Db(w, f), f < 32) s |= 1 << f;
      else if (f < 64) i |= 1 << f - 32;
      else if (f < 96) a |= 1 << f - 64;
      else if (f < 123) r |= 1 << f - 96;
      else throw new Q("Unicode ranges Bits > 123 are reserved for internal usage");
      l > 65535 && (l = 65535);
    } else o = 0, l = 255;
    const c = t.bbox || [0, 0, 0, 0], h = n.unitsPerEm || (t.fontMatrix ? 1 / Math.max(...t.fontMatrix.slice(0, 4).map(Math.abs)) : 1e3), u = t.ascentScaled ? 1 : h / fa, d = n.ascent || Math.round(u * (t.ascent || c[3]));
    let m = n.descent || Math.round(u * (t.descent || c[1]));
    m > 0 && t.descent > 0 && c[1] < 0 && (m = -m);
    const g = n.yMax || d, b = -n.yMin || -m;
    return "\0$\xF4\0\0\0\x8A\xBB\0\0\0\x8C\x8A\xBB\0\0\xDF\x001\0\0\0\0" + String.fromCharCode(t.fixedPitch ? 9 : 0) + "\0\0\0\0\0\0" + vn(s) + vn(i) + vn(a) + vn(r) + "*21*" + wt(t.italicAngle ? 1 : 0) + wt(o || t.firstChar) + wt(l || t.lastChar) + wt(d) + wt(m) + "\0d" + wt(g) + wt(b) + "\0\0\0\0\0\0\0\0" + wt(t.xHeight) + wt(t.capHeight) + wt(0) + wt(o || t.firstChar) + "\0";
  }
  function pd(t) {
    const e = Math.floor(t.italicAngle * 65536);
    return "\0\0\0" + vn(e) + "\0\0\0\0" + vn(t.fixedPitch ? 1 : 0) + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
  }
  function Lw(t) {
    return t.replaceAll(/[^\x21-\x7E]|[[\](){}<>/%]/g, "").slice(0, 63);
  }
  function Xf(t, e) {
    e || (e = [[], []]);
    const n = [e[0][0] || "Original licence", e[0][1] || t, e[0][2] || "Unknown", e[0][3] || "uniqueID", e[0][4] || t, e[0][5] || "Version 0.11", e[0][6] || Lw(t), e[0][7] || "Unknown", e[0][8] || "Unknown", e[0][9] || "Unknown"], s = [];
    let i, a, r, o, l;
    for (i = 0, a = n.length; i < a; i++) {
      l = e[1][i] || n[i];
      const b = [];
      for (r = 0, o = l.length; r < o; r++) b.push(wt(l.charCodeAt(r)));
      s.push(b.join(""));
    }
    const f = [n, s], c = ["\0", "\0"], h = ["\0\0", "\0"], u = ["\0\0", "	"], d = n.length * c.length;
    let m = "\0\0" + wt(d) + wt(d * 12 + 6), g = 0;
    for (i = 0, a = c.length; i < a; i++) {
      const b = f[i];
      for (r = 0, o = b.length; r < o; r++) {
        l = b[r];
        const w = c[i] + h[i] + u[i] + wt(r) + wt(l.length) + wt(g);
        m += w, g += l.length;
      }
    }
    return m += n.join("") + s.join(""), m;
  }
  function Gw(t) {
    const e = [];
    for (let n = 0; n <= t; n++) {
      const s = n / t, i = 1 - s;
      e.push(new Float32Array([i ** 3, 3 * s * i ** 2, 3 * s ** 2 * i, s ** 3]));
    }
    return e;
  }
  function wd(t) {
    return bd[t] ||= Gw(t);
  }
  function Ww() {
    bd = /* @__PURE__ */ Object.create(null);
  }
  function xd(t, e, n) {
    const s = Bi(e.getArray("Matrix"), _s), i = di(e.getArray("BBox"), null);
    if (!i || i[2] - i[0] === 0 || i[3] - i[1] === 0) throw new Q("Invalid getTilingPatternIR /BBox array.");
    const a = e.get("XStep");
    if (typeof a != "number") throw new Q("Invalid getTilingPatternIR /XStep value.");
    const r = e.get("YStep");
    if (typeof r != "number") throw new Q("Invalid getTilingPatternIR /YStep value.");
    const o = e.get("PaintType");
    if (!Number.isInteger(o)) throw new Q("Invalid getTilingPatternIR /PaintType value.");
    const l = e.get("TilingType");
    if (!Number.isInteger(l)) throw new Q("Invalid getTilingPatternIR /TilingType value.");
    return ["TilingPattern", n, t, s, i, a, r, o, l];
  }
  function Yf(t) {
    const e = Hi(t);
    return Ax()[e];
  }
  function Sx(t) {
    const e = Yf(t);
    if (!e) return null;
    const { baseWidths: n, baseMapping: s, factors: i } = e, a = i ? n.map((f, c) => f * i[c]) : n;
    let r = -2, o;
    const l = [];
    for (const [f, c] of s.map((h, u) => [h, u]).sort(([h], [u]) => h - u)) f !== -1 && (f === r + 1 ? (o.push(a[c]), r += 1) : (r = f, o = [a[c]], l.push(f, o)));
    return l;
  }
  function kd(t) {
    const e = Sx(t), n = new _(null);
    n.set("BaseFont", te.get(t)), n.set("Type", te.get("Font")), n.set("Subtype", te.get("CIDFontType2")), n.set("Encoding", te.get("Identity-H")), n.set("CIDToGIDMap", te.get("Identity")), n.set("W", e), n.set("FirstChar", e[0]), n.set("LastChar", e.at(-2) + e.at(-1).length - 1);
    const s = new _(null);
    n.set("FontDescriptor", s);
    const i = new _(null);
    return i.set("Ordering", "Identity"), i.set("Registry", "Adobe"), i.set("Supplement", 0), n.set("CIDSystemInfo", i), n;
  }
  function js(t) {
    return Array.isArray(t) ? Nn(t, null) ? t : t.map((e) => +e) : null;
  }
  function Qf(t) {
    let e;
    if (t instanceof _) e = t;
    else if (t instanceof ze) e = t.dict;
    else return false;
    return e.has("FunctionType");
  }
  function Dx(t, e) {
    return e.type === "literal" && e.number === 0 ? t : t.type === "literal" && t.number === 0 ? e : e.type === "literal" && t.type === "literal" ? new ua(t.number + e.number) : new Jf("+", t, e, t.min + e.min, t.max + e.max);
  }
  function Mx(t, e) {
    if (e.type === "literal") {
      if (e.number === 0) return new ua(0);
      if (e.number === 1) return t;
      if (t.type === "literal") return new ua(t.number * e.number);
    }
    if (t.type === "literal") {
      if (t.number === 0) return new ua(0);
      if (t.number === 1) return e;
    }
    const n = Math.min(t.min * e.min, t.min * e.max, t.max * e.min, t.max * e.max), s = Math.max(t.min * e.min, t.min * e.max, t.max * e.min, t.max * e.max);
    return new Jf("*", t, e, n, s);
  }
  function Hx(t, e) {
    if (e.type === "literal") {
      if (e.number === 0) return t;
      if (t.type === "literal") return new ua(t.number - e.number);
    }
    return e.type === "binary" && e.op === "-" && t.type === "literal" && t.number === 1 && e.arg1.type === "literal" && e.arg1.number === 1 ? e.arg2 : new Jf("-", t, e, t.min - e.max, t.max - e.min);
  }
  function Ox(t, e) {
    return t.min >= e ? new ua(e) : t.max <= e ? t : new Px(t, e);
  }
  function Td(t) {
    return (t & 1) !== 0;
  }
  function Ux(t) {
    return (t & 1) === 0;
  }
  function Gx(t, e, n) {
    let s, i;
    for (s = e, i = t.length; s < i; ++s) if (t[s] !== n) return s;
    return s;
  }
  function Ed(t, e, n) {
    for (let s = e, i = n - 1; s < i; ++s, --i) {
      const a = t[s];
      t[s] = t[i], t[i] = a;
    }
  }
  function Zf(t, e, n = false) {
    let s = "ltr";
    return n ? s = "ttb" : e || (s = "rtl"), { str: t, dir: s };
  }
  function Fd(t, e = -1, n = false) {
    let s = true;
    const i = t.length;
    if (i === 0 || n) return Zf(t, s, n);
    Li.length = i, mt.length = i;
    let a = 0, r, o;
    for (r = 0; r < i; ++r) {
      Li[r] = t.charAt(r);
      const w = t.charCodeAt(r);
      let x = "L";
      w <= 255 ? x = Nx[w] : 1424 <= w && w <= 1524 ? x = "R" : 1536 <= w && w <= 1791 ? (x = zx[w & 255], x || F("Bidi: invalid Unicode character " + w.toString(16))) : (1792 <= w && w <= 2220 || 64336 <= w && w <= 65023 || 65136 <= w && w <= 65279) && (x = "AL"), (x === "R" || x === "AL" || x === "AN") && a++, mt[r] = x;
    }
    if (a === 0) return s = true, Zf(t, s);
    e === -1 && (a / i < 0.3 && i > 4 ? (s = true, e = 0) : (s = false, e = 1));
    const l = [];
    for (r = 0; r < i; ++r) l[r] = e;
    const f = Td(e) ? "R" : "L", c = f, h = c;
    let u = c;
    for (r = 0; r < i; ++r) mt[r] === "NSM" ? mt[r] = u : u = mt[r];
    u = c;
    let d;
    for (r = 0; r < i; ++r) d = mt[r], d === "EN" ? mt[r] = u === "AL" ? "AN" : "EN" : (d === "R" || d === "L" || d === "AL") && (u = d);
    for (r = 0; r < i; ++r) d = mt[r], d === "AL" && (mt[r] = "R");
    for (r = 1; r < i - 1; ++r) mt[r] === "ES" && mt[r - 1] === "EN" && mt[r + 1] === "EN" && (mt[r] = "EN"), mt[r] === "CS" && (mt[r - 1] === "EN" || mt[r - 1] === "AN") && mt[r + 1] === mt[r - 1] && (mt[r] = mt[r - 1]);
    for (r = 0; r < i; ++r) if (mt[r] === "EN") {
      for (let w = r - 1; w >= 0 && mt[w] === "ET"; --w) mt[w] = "EN";
      for (let w = r + 1; w < i && mt[w] === "ET"; ++w) mt[w] = "EN";
    }
    for (r = 0; r < i; ++r) d = mt[r], (d === "WS" || d === "ES" || d === "ET" || d === "CS") && (mt[r] = "ON");
    for (u = c, r = 0; r < i; ++r) d = mt[r], d === "EN" ? mt[r] = u === "L" ? "L" : "EN" : (d === "R" || d === "L") && (u = d);
    for (r = 0; r < i; ++r) if (mt[r] === "ON") {
      const w = Gx(mt, r + 1, "ON");
      let x = c;
      for (let j = r - 1; j >= 0; j--) {
        const v = mt[j];
        if (v === "L") {
          x = "L";
          break;
        }
        if (v === "R" || v === "EN" || v === "AN") {
          x = "R";
          break;
        }
      }
      let y = h;
      for (let j = w; j < i; j++) {
        const v = mt[j];
        if (v === "L") {
          y = "L";
          break;
        }
        if (v === "R" || v === "EN" || v === "AN") {
          y = "R";
          break;
        }
      }
      x === y && mt.fill(x, r, w), r = w - 1;
    }
    for (r = 0; r < i; ++r) mt[r] === "ON" && (mt[r] = f);
    for (r = 0; r < i; ++r) d = mt[r], Ux(l[r]) ? d === "R" ? l[r] += 1 : (d === "AN" || d === "EN") && (l[r] += 2) : (d === "L" || d === "AN" || d === "EN") && (l[r] += 1);
    let m = -1, g = 99, b;
    for (r = 0, o = l.length; r < o; ++r) b = l[r], m < b && (m = b), g > b && Td(b) && (g = b);
    for (b = m; b >= g; --b) {
      let w = -1;
      for (r = 0, o = l.length; r < o; ++r) l[r] < b ? w >= 0 && (Ed(Li, w, r), w = -1) : w < 0 && (w = r);
      w >= 0 && Ed(Li, w, l.length);
    }
    for (r = 0, o = Li.length; r < o; ++r) {
      const w = Li[r];
      (w === "<" || w === ">") && (Li[r] = "");
    }
    return Zf(Li.join(""), s);
  }
  function $x(t) {
    switch (t) {
      case da:
        return "Bold";
      case pa:
        return "Italic";
      case ma:
        return "Bold Italic";
      default:
        if (t?.weight === "bold") return "Bold";
        if (t?.style === "italic") return "Italic";
    }
    return "";
  }
  function Bd(t) {
    const e = /* @__PURE__ */ new Set(["thin", "extralight", "ultralight", "demilight", "semilight", "light", "book", "regular", "normal", "medium", "demibold", "semibold", "bold", "extrabold", "ultrabold", "black", "heavy", "extrablack", "ultrablack", "roman", "italic", "oblique", "ultracondensed", "extracondensed", "condensed", "semicondensed", "normal", "semiexpanded", "expanded", "extraexpanded", "ultraexpanded", "bolditalic"]);
    return t.split(/[- ,+]+/g).filter((n) => !e.has(n.toLowerCase())).join(" ");
  }
  function ec({ alias: t, local: e, path: n, fallback: s, style: i, ultimate: a }, r, o, l = true, f = true, c = "") {
    const h = { style: null, ultimate: null };
    if (e) {
      const u = c ? ` ${c}` : "";
      for (const d of e) r.push(`local(${d}${u})`);
    }
    if (t) {
      const u = ro.get(t), d = c || $x(i);
      Object.assign(h, ec(u, r, o, l && !s, f && !n, d));
    }
    if (i && (h.style = i), a && (h.ultimate = a), l && s) {
      const u = ro.get(s), { ultimate: d } = ec(u, r, o, l, f && !n, c);
      h.ultimate ||= d;
    }
    return f && n && o && r.push(`url(${o}${n})`), h;
  }
  function Rd(t, e, n, s, i, a) {
    if (s.startsWith("InvalidPDFjsFont_")) return null;
    (a === "TrueType" || a === "Type1") && /^[A-Z]{6}\+/.test(s) && (s = s.slice(7)), s = Hi(s);
    const r = s;
    let o = t.get(r);
    if (o) return o;
    let l = ro.get(s);
    if (!l) {
      for (const [b, w] of Wx) if (s.startsWith(b)) {
        s = `${w}${s.substring(b.length)}`, l = ro.get(s);
        break;
      }
    }
    let f = false;
    l || (l = ro.get(i), f = true);
    const c = `${e.getDocId()}_s${e.createFontId()}`;
    if (!l) {
      if (!mf(s)) return F(`Cannot substitute the font because of its name: ${s}`), t.set(r, null), null;
      const b = /bold/gi.test(s), w = /oblique|italic/gi.test(s), x = b && w && ma || b && da || w && pa || vs;
      return o = { css: `"${Bd(s)}",${c}`, guessFallback: true, loadedName: c, baseFontName: s, src: `local(${s})`, style: x }, t.set(r, o), o;
    }
    const h = [];
    f && mf(s) && h.push(`local(${s})`);
    const { style: u, ultimate: d } = ec(l, h, n), m = d === null, g = m ? "" : `,${d}`;
    return o = { css: `"${Bd(s)}",${c}${g}`, guessFallback: m, loadedName: c, baseFontName: s, src: h.join(","), style: u }, t.set(r, o), o;
  }
  function Md(t, e = false) {
    if (Array.isArray(t)) {
      for (const n of t) {
        const s = Md(n, true);
        if (s) return s;
      }
      return F(`Unsupported blend mode Array: ${t}`), "source-over";
    }
    if (!(t instanceof te)) return e ? null : "source-over";
    switch (t.name) {
      case "Normal":
      case "Compatible":
        return "source-over";
      case "Multiply":
        return "multiply";
      case "Screen":
        return "screen";
      case "Overlay":
        return "overlay";
      case "Darken":
        return "darken";
      case "Lighten":
        return "lighten";
      case "ColorDodge":
        return "color-dodge";
      case "ColorBurn":
        return "color-burn";
      case "HardLight":
        return "hard-light";
      case "SoftLight":
        return "soft-light";
      case "Difference":
        return "difference";
      case "Exclusion":
        return "exclusion";
      case "Hue":
        return "hue";
      case "Saturation":
        return "saturation";
      case "Color":
        return "color";
      case "Luminosity":
        return "luminosity";
    }
    return e ? null : (F(`Unsupported blend mode: ${t.name}`), "source-over");
  }
  function tc(t, { objId: e, fn: n, args: s, optionalContent: i, hasMask: a }) {
    e && t.addDependency(e), t.addImageOps(n, s, i, a), n === E.paintImageMaskXObject && s[0]?.count > 0 && s[0].count++;
  }
  function sc(t) {
    return new Qx(t).parse();
  }
  function Zx(t, e, n, s) {
    return new Jx(t, e, n, s).parse();
  }
  function Qs(t, e) {
    if (t[0] === t[1] && t[1] === t[2]) {
      const n = t[0] / 255;
      return `${it(n)} ${e ? "g" : "G"}`;
    }
    return Array.from(t, (n) => it(n / 255)).join(" ") + ` ${e ? "rg" : "RG"}`;
  }
  function e2({ fontSize: t, fontName: e, fontColor: n }) {
    return `/${pf(e)} ${t} Tf ${Qs(n, true)}`;
  }
  function ic() {
    Ww(), Lm(), Ob(), jl.cleanup(), Bl.cleanup();
  }
  function Ld(t) {
    if (t instanceof _) {
      for (const e of ["UF", "F", "Unix", "Mac", "DOS"]) if (t.has(e)) return t.get(e);
    }
    return null;
  }
  function Ja(t, e) {
    const n = t[e];
    return n === " " || n === `
` || n === "\r" || n === "	";
  }
  function s2(t) {
    for (let e = 0, n = t.length; e < n; e++) if (!Ja(t, e)) return false;
    return true;
  }
  function rc(t) {
    return t instanceof _ && (t = t.get("D")), Wl(t) ? t : null;
  }
  function Gd(t) {
    let e = t.get("D");
    if (e) {
      if (e instanceof te && (e = e.name), typeof e == "string") return Je(e, true);
      if (Wl(e)) return JSON.stringify(e);
    }
    return null;
  }
  function o2(t) {
    return t instanceof ae || t instanceof _ || t instanceof ze || Array.isArray(t);
  }
  function l2(t, e) {
    if (t instanceof _) t = t.getRawValues();
    else if (t instanceof ze) t = t.dict.getRawValues();
    else if (!Array.isArray(t)) return;
    for (const n of t) o2(n) && e.push(n);
  }
  function Yl(t) {
    return t.startsWith("'") || t.startsWith('"') ? t.slice(1, -1) : t;
  }
  function He({ data: t, defaultValue: e, validate: n }) {
    if (!t) return e;
    t = t.trim();
    const s = parseInt(t, 10);
    return !isNaN(s) && n(s) ? s : e;
  }
  function Ql({ data: t, defaultValue: e, validate: n }) {
    if (!t) return e;
    t = t.trim();
    const s = parseFloat(t);
    return !isNaN(s) && n(s) ? s : e;
  }
  function Jl({ data: t, defaultValue: e, validate: n }) {
    return t ? (t = t.trim(), n(t) ? t : e) : e;
  }
  function ne(t, e) {
    return Jl({ data: t, defaultValue: e[0], validate: p((n) => e.includes(n), "validate") });
  }
  function ve(t, e = "0") {
    if (e ||= "0", !t) return ve(e);
    const n = t.trim().match(h2);
    if (!n) return ve(e);
    const [, s, i] = n, a = parseFloat(s);
    if (isNaN(a)) return ve(e);
    if (a === 0) return 0;
    const r = c2[i];
    return r ? r(a) : a;
  }
  function Xd(t) {
    if (!t) return { num: 1, den: 1 };
    const e = t.split(":", 2).map((i) => parseFloat(i.trim())).filter((i) => !isNaN(i));
    if (e.length === 1 && e.push(1), e.length === 0) return { num: 1, den: 1 };
    const [n, s] = e;
    return { num: n, den: s };
  }
  function Ls(t) {
    return t ? t.trim().split(/\s+/).map((e) => ({ excluded: e[0] === "-", viewname: e.substring(1) })) : [];
  }
  function u2(t, e = [0, 0, 0]) {
    let [n, s, i] = e;
    if (!t) return { r: n, g: s, b: i };
    const a = t.split(",", 3).map((r) => en(parseInt(r.trim(), 10), 0, 255)).map((r) => isNaN(r) ? 0 : r);
    return a.length < 3 ? { r: n, g: s, b: i } : ([n, s, i] = a, { r: n, g: s, b: i });
  }
  function d2(t) {
    if (!t) return { x: -1, y: -1, width: -1, height: -1 };
    const n = t.split(",", 4).map((o) => ve(o.trim(), "-1"));
    if (n.length < 4 || n[2] < 0 || n[3] < 0) return { x: -1, y: -1, width: -1, height: -1 };
    const [s, i, a, r] = n;
    return { x: s, y: i, width: a, height: r };
  }
  function dc(t, e) {
    return t.posture === "italic" ? t.weight === "bold" ? e.bolditalic : e.italic : t.weight === "bold" ? e.bold : e.regular;
  }
  function m2(t, e = false) {
    let n = null;
    if (t) {
      const r = Yl(t.typeface), o = t[qt].fontFinder.find(r);
      n = dc(t, o);
    }
    if (!n) return { lineHeight: 12, lineGap: 2, lineNoGap: 10 };
    const s = t.size || 10, i = n.lineHeight ? Math.max(e ? 0 : 1.2, n.lineHeight) : 1.2, a = n.lineGap === void 0 ? 0.2 : n.lineGap;
    return { lineHeight: i * s, lineGap: a * s, lineNoGap: Math.max(1, i - a) * s };
  }
  function y2(t) {
    return t = t.trim(), t === "*" ? 1 / 0 : parseInt(t, 10) || 0;
  }
  function Zd(t, e, n = true) {
    let s = t.match(Qd);
    if (!s) return null;
    let [i] = s;
    const a = [{ name: i, cacheName: "." + i, index: 0, js: null, formCalc: null, operator: hs.dot }];
    let r = i.length;
    for (; r < t.length; ) {
      const o = r;
      if (t.charAt(r++) === "[") {
        if (s = t.slice(r).match(x2), !s) return F("XFA - Invalid index in SOM expression"), null;
        a.at(-1).index = y2(s[0]), r += s[0].length + 1;
        continue;
      }
      let f;
      switch (t.charAt(r)) {
        case ".":
          if (!e) return null;
          r++, f = hs.dotDot;
          break;
        case "#":
          r++, f = hs.dotHash;
          break;
        case "[":
          if (n) return F("XFA - SOM expression contains a FormCalc subexpression which is not supported for now."), null;
          f = hs.dotBracket;
          break;
        case "(":
          if (n) return F("XFA - SOM expression contains a JavaScript subexpression which is not supported for now."), null;
          f = hs.dotParen;
          break;
        default:
          f = hs.dot;
          break;
      }
      if (s = t.slice(r).match(Qd), !s) break;
      [i] = s, r += i.length, a.push({ name: i, cacheName: t.slice(o, r), operator: f, index: 0, js: null, formCalc: null });
    }
    return a;
  }
  function Gi(t, e, n, s = true, i = true) {
    const a = Zd(n, s);
    if (!a) return null;
    const r = Jd.get(a[0].name);
    let o = 0, l;
    r ? (l = true, t = [r(t, e)], o = 1) : (l = e === null, t = [e || t]);
    for (let f = a.length; o < f; o++) {
      const { name: c, cacheName: h, operator: u, index: d } = a[o], m = [];
      for (const g of t) {
        if (!g.isXFAObject) continue;
        let b, w;
        if (i && (w = k2.getOrInsertComputed(g, Mm), b = w.get(h)), !b) {
          switch (u) {
            case hs.dot:
              b = g[co](c, false);
              break;
            case hs.dotDot:
              b = g[co](c, true);
              break;
            case hs.dotHash:
              b = g[Kl](c), b = b.isXFAObjectArray ? b.children : [b];
              break;
          }
          i && w.set(h, b);
        }
        b.length > 0 && m.push(b);
      }
      if (m.length === 0 && !l && o === 0) {
        if (e = e[Ue](), !e) return null;
        o = -1, t = [e];
        continue;
      }
      t = isFinite(d) ? m.filter((g) => d < g.length).map((g) => g[d]) : m.flat();
    }
    return t.length === 0 ? null : t;
  }
  function j2(t, e, n) {
    const s = Zd(n);
    if (!s || s.some((r) => r.operator === hs.dotDot)) return null;
    const i = Jd.get(s[0].name);
    let a = 0;
    i ? (t = i(t, e), a = 1) : t = e || t;
    for (let r = s.length; a < r; a++) {
      const { name: o, operator: l, index: f } = s[a];
      if (!isFinite(f)) return s[a].index = 0, t.createNodes(s.slice(a));
      let c;
      switch (l) {
        case hs.dot:
          c = t[co](o, false);
          break;
        case hs.dotDot:
          c = t[co](o, true);
          break;
        case hs.dotHash:
          c = t[Kl](o), c = c.isXFAObjectArray ? c.children : [c];
          break;
      }
      if (c.length === 0) return t.createNodes(s.slice(a));
      if (f < c.length) {
        const h = c[f];
        if (!h.isXFAObject) return F("XFA - Cannot create a node."), null;
        t = h;
      } else return s[a].index = f - c.length, t.createNodes(s.slice(a));
    }
    return null;
  }
  function Oe(t) {
    return typeof t == "string" ? "0px" : Number.isInteger(t) ? `${t}px` : `${t.toFixed(2)}px`;
  }
  function a1(t, e) {
    t[Wt]().layout === "position" && (t.minW > 0 && (e.minWidth = Oe(t.minW)), t.maxW > 0 && (e.maxWidth = Oe(t.maxW)), t.minH > 0 && (e.minHeight = Oe(t.minH)), t.maxH > 0 && (e.maxHeight = Oe(t.maxH)));
  }
  function r1(t, e, n, s, i, a) {
    const r = new w2(e, n, s, i);
    return typeof t == "string" ? r.addString(t) : t[ei](r), r.compute(a);
  }
  function yc(t, e) {
    let n = null, s = null, i = false;
    if ((!t.w || !t.h) && t.value) {
      let a = 0, r = 0;
      t.margin && (a = t.margin.leftInset + t.margin.rightInset, r = t.margin.topInset + t.margin.bottomInset);
      let o = null, l = null;
      t.para && (l = /* @__PURE__ */ Object.create(null), o = t.para.lineHeight === "" ? null : t.para.lineHeight, l.top = t.para.spaceAbove === "" ? 0 : t.para.spaceAbove, l.bottom = t.para.spaceBelow === "" ? 0 : t.para.spaceBelow, l.left = t.para.marginLeft === "" ? 0 : t.para.marginLeft, l.right = t.para.marginRight === "" ? 0 : t.para.marginRight);
      let f = t.font;
      if (!f) {
        const u = t[$t]();
        let d = t[Ue]();
        for (; d && d !== u; ) {
          if (d.font) {
            f = d.font;
            break;
          }
          d = d[Ue]();
        }
      }
      const c = (t.w || e.width) - a, h = t[qt].fontFinder;
      if (t.value.exData && t.value.exData[ee] && t.value.exData.contentType === "text/html") {
        const u = r1(t.value.exData[ee], f, l, o, h, c);
        s = u.width, n = u.height, i = u.isBroken;
      } else {
        const u = t.value[nn]();
        if (u) {
          const d = r1(u, f, l, o, h, c);
          s = d.width, n = d.height, i = d.isBroken;
        }
      }
      s !== null && !t.w && (s += a), n !== null && !t.h && (n += r);
    }
    return { w: s, h: n, isBroken: i };
  }
  function o1(t, e, n) {
    let s;
    if (t.w !== "" && t.h !== "") s = [t.x, t.y, t.w, t.h];
    else {
      if (!n) return null;
      let i = t.w;
      if (i === "") {
        if (t.maxW === 0) {
          const r = t[Wt]();
          i = r.layout === "position" && r.w !== "" ? 0 : t.minW;
        } else i = Math.min(t.maxW, n.width);
        e.attributes.style.width = Oe(i);
      }
      let a = t.h;
      if (a === "") {
        if (t.maxH === 0) {
          const r = t[Wt]();
          a = r.layout === "position" && r.h !== "" ? 0 : t.minH;
        } else a = Math.min(t.maxH, n.height);
        e.attributes.style.height = Oe(a);
      }
      s = [t.x, t.y, i, a];
    }
    return s;
  }
  function t0(t) {
    const e = t[Wt]();
    if (e.layout?.includes("row")) {
      const n = e[V], s = t.colSpan;
      let i;
      s === -1 ? i = Math.sumPrecise(n.columnWidths.slice(n.currentColumn)) : i = Math.sumPrecise(n.columnWidths.slice(n.currentColumn, n.currentColumn + s)), isNaN(i) || (t.w = i);
    }
    e.layout && e.layout !== "position" && (t.x = t.y = 0), t.layout === "table" && t.w === "" && Array.isArray(t.columnWidths) && (t.w = Math.sumPrecise(t.columnWidths));
  }
  function l1(t) {
    switch (t.layout) {
      case "position":
        return "xfaPosition";
      case "lr-tb":
        return "xfaLrTb";
      case "rl-row":
        return "xfaRlRow";
      case "rl-tb":
        return "xfaRlTb";
      case "row":
        return "xfaRow";
      case "table":
        return "xfaTable";
      case "tb":
        return "xfaTb";
      default:
        return "xfaPosition";
    }
  }
  function Wn(t, ...e) {
    const n = /* @__PURE__ */ Object.create(null);
    for (const s of e) {
      const i = t[s];
      if (i !== null) {
        if (i1.hasOwnProperty(s)) {
          i1[s](t, n);
          continue;
        }
        if (i instanceof X) {
          const a = i[ft]();
          a ? Object.assign(n, a) : F(`(DEBUG) - XFA - style for ${s} not implemented yet`);
        }
      }
    }
    return n;
  }
  function ja(t, e) {
    const { attributes: n } = e, { style: s } = n, i = { name: "div", attributes: { class: ["xfaWrapper"], style: /* @__PURE__ */ Object.create(null) }, children: [] };
    if (n.class.push("xfaWrapped"), t.border) {
      const { widths: a, insets: r } = t.border[V];
      let o, l, f = r[0], c = r[3];
      const h = r[0] + r[2], u = r[1] + r[3];
      switch (t.border.hand) {
        case "even":
          f -= a[0] / 2, c -= a[3] / 2, o = `calc(100% + ${(a[1] + a[3]) / 2 - u}px)`, l = `calc(100% + ${(a[0] + a[2]) / 2 - h}px)`;
          break;
        case "left":
          f -= a[0], c -= a[3], o = `calc(100% + ${a[1] + a[3] - u}px)`, l = `calc(100% + ${a[0] + a[2] - h}px)`;
          break;
        case "right":
          o = u ? `calc(100% - ${u}px)` : "100%", l = h ? `calc(100% - ${h}px)` : "100%";
          break;
      }
      const d = ["xfaBorder"];
      rr(t.border) && d.push("xfaPrintOnly");
      const m = { name: "div", attributes: { class: d, style: { top: `${f}px`, left: `${c}px`, width: o, height: l } }, children: [] };
      for (const g of ["border", "borderWidth", "borderColor", "borderRadius", "borderStyle"]) s[g] !== void 0 && (m.attributes.style[g] = s[g], delete s[g]);
      i.children.push(m, e);
    } else i.children.push(e);
    for (const a of ["background", "backgroundClip", "top", "left", "width", "height", "minWidth", "minHeight", "maxWidth", "maxHeight", "transform", "transformOrigin", "visibility"]) s[a] !== void 0 && (i.attributes.style[a] = s[a], delete s[a]);
    return i.attributes.style.position = s.position === "absolute" ? "absolute" : "relative", delete s.position, s.alignSelf && (i.attributes.style.alignSelf = s.alignSelf, delete s.alignSelf), i;
  }
  function f1(t) {
    const e = ve(t.textIndent, "0px");
    if (e >= 0) return;
    const s = "padding" + ((t.textAlign === "right" ? "right" : "left") === "left" ? "Left" : "Right"), i = ve(t[s], "0px");
    t[s] = `${i - e}px`;
  }
  function jc(t, e) {
    switch (t.access) {
      case "nonInteractive":
        e.push("xfaNonInteractive");
        break;
      case "readOnly":
        e.push("xfaReadOnly");
        break;
      case "protected":
        e.push("xfaDisabled");
        break;
    }
  }
  function rr(t) {
    return t.relevant.length > 0 && !t.relevant[0].excluded && t.relevant[0].viewname === "print";
  }
  function c1(t) {
    const e = t[$t]()[V].paraStack;
    return e.length ? e.at(-1) : null;
  }
  function h1(t, e, n) {
    if (n.attributes.class?.includes("xfaRich")) {
      e && (t.h === "" && (e.height = "auto"), t.w === "" && (e.width = "auto"));
      const s = c1(t);
      if (s) {
        const i = n.attributes.style;
        switch (i.display = "flex", i.flexDirection = "column", s.vAlign) {
          case "top":
            i.justifyContent = "start";
            break;
          case "bottom":
            i.justifyContent = "end";
            break;
          case "middle":
            i.justifyContent = "center";
            break;
        }
        const a = s[ft]();
        for (const [r, o] of Object.entries(a)) r in i || (i[r] = o);
      }
    }
  }
  function u1(t, e, n, s) {
    if (!n) {
      delete s.fontFamily;
      return;
    }
    const i = Yl(t.typeface);
    s.fontFamily = `"${i}"`;
    const a = n.find(i);
    if (a) {
      const { fontFamily: r } = a.regular.cssFontInfo;
      r !== i && (s.fontFamily = `"${r}"`);
      const o = c1(e);
      if (o && o.lineHeight !== "" || s.lineHeight) return;
      const l = dc(t, a);
      l && (s.lineHeight = Math.max(1.2, l.lineHeight));
    }
  }
  function d1(t) {
    const e = cl(t, null, { addDefaultProtocol: true, tryConvertEncoding: true });
    return e ? e.href : null;
  }
  function p1(t, e) {
    return { name: "div", attributes: { class: [t.layout === "lr-tb" ? "xfaLr" : "xfaRl"] }, children: e };
  }
  function m1(t) {
    if (!t[V]) return null;
    const n = { name: "div", attributes: t[V].attributes, children: t[V].children };
    if (t[V].failingNode) {
      const s = t[V].failingNode[fo]();
      s && (t.layout.endsWith("-tb") ? n.children.push(p1(t, [s])) : n.children.push(s));
    }
    return n.children.length === 0 ? null : n;
  }
  function g1(t, e, n) {
    const s = t[V], i = s.availableSpace, [a, r, o, l] = n;
    switch (t.layout) {
      case "position": {
        s.width = Math.max(s.width, a + o), s.height = Math.max(s.height, r + l), s.children.push(e);
        break;
      }
      case "lr-tb":
      case "rl-tb":
        (!s.line || s.attempt === 1) && (s.line = p1(t, []), s.children.push(s.line), s.numberInLine = 0), s.numberInLine += 1, s.line.children.push(e), s.attempt === 0 ? (s.currentWidth += o, s.height = Math.max(s.height, s.prevHeight + l)) : (s.currentWidth = o, s.prevHeight = s.height, s.height += l, s.attempt = 0), s.width = Math.max(s.width, s.currentWidth);
        break;
      case "rl-row":
      case "row": {
        s.children.push(e), s.width += o, s.height = Math.max(s.height, l);
        const f = Oe(s.height);
        for (const c of s.children) c.attributes.style.height = f;
        break;
      }
      case "table": {
        s.width = en(o, s.width, i.width), s.height += l, s.children.push(e);
        break;
      }
      case "tb": {
        s.width = en(o, s.width, i.width), s.height += l, s.children.push(e);
        break;
      }
    }
  }
  function b1(t) {
    const e = t[V].availableSpace, n = t.margin ? t.margin.topInset + t.margin.bottomInset : 0, s = t.margin ? t.margin.leftInset + t.margin.rightInset : 0;
    switch (t.layout) {
      case "lr-tb":
      case "rl-tb":
        return t[V].attempt === 0 ? { width: e.width - s - t[V].currentWidth, height: e.height - n - t[V].prevHeight } : { width: e.width - s, height: e.height - n - t[V].height };
      case "rl-row":
      case "row":
        return { width: Math.sumPrecise(t[V].columnWidths.slice(t[V].currentColumn)), height: e.height - s };
      case "table":
      case "tb":
        return { width: e.width - s, height: e.height - n - t[V].height };
      default:
        return e;
    }
  }
  function v2(t) {
    let e = t.w === "" ? NaN : t.w, n = t.h === "" ? NaN : t.h, [s, i] = [0, 0];
    switch (t.anchorType || "") {
      case "bottomCenter":
        [s, i] = [e / 2, n];
        break;
      case "bottomLeft":
        [s, i] = [0, n];
        break;
      case "bottomRight":
        [s, i] = [e, n];
        break;
      case "middleCenter":
        [s, i] = [e / 2, n / 2];
        break;
      case "middleLeft":
        [s, i] = [0, n / 2];
        break;
      case "middleRight":
        [s, i] = [e, n / 2];
        break;
      case "topCenter":
        [s, i] = [e / 2, 0];
        break;
      case "topRight":
        [s, i] = [e, 0];
        break;
    }
    let a, r;
    switch (t.rotate || 0) {
      case 0:
        [a, r] = [-s, -i];
        break;
      case 90:
        [a, r] = [-i, s], [e, n] = [n, -e];
        break;
      case 180:
        [a, r] = [s, i], [e, n] = [-e, -n];
        break;
      case 270:
        [a, r] = [i, -s], [e, n] = [-n, e];
        break;
    }
    return [t.x + a + Math.min(0, e), t.y + r + Math.min(0, n), Math.abs(e), Math.abs(n)];
  }
  function n0(t, e) {
    if (t[$t]()[V].firstUnsplittable === null || t.w === 0 || t.h === 0) return true;
    const n = 2, s = t[Wt](), i = s[V]?.attempt || 0, [, a, r, o] = v2(t);
    switch (s.layout) {
      case "lr-tb":
      case "rl-tb":
        return i === 0 ? t[$t]()[V].noLayoutFailure ? t.w !== "" ? Math.round(r - e.width) <= n : e.width > n : t.h !== "" && Math.round(o - e.height) > n ? false : t.w !== "" ? Math.round(r - e.width) <= n ? true : s[V].numberInLine === 0 ? e.height > n : false : e.width > n : t[$t]()[V].noLayoutFailure ? true : t.h !== "" && Math.round(o - e.height) > n ? false : t.w === "" || Math.round(r - e.width) <= n ? e.height > n : s[ki]() ? false : e.height > n;
      case "table":
      case "tb":
        return t[$t]()[V].noLayoutFailure ? true : t.h !== "" && !t[xi]() ? Math.round(o - e.height) <= n : t.w === "" || Math.round(r - e.width) <= n ? e.height > n : s[ki]() ? false : e.height > n;
      case "position":
        if (t[$t]()[V].noLayoutFailure || t.h === "" || Math.round(o + a - e.height) <= n) return true;
        const l = t[$t]()[V].currentContentArea;
        return o + a > l.h;
      case "rl-row":
      case "row":
        return t[$t]()[V].noLayoutFailure ? true : t.h !== "" ? Math.round(o - e.height) <= n : true;
      default:
        return true;
    }
  }
  function w1(t) {
    if (!t || !t.border) return { w: 0, h: 0 };
    const e = t.border[Tn]();
    return e ? { w: e.widths[0] + e.widths[2] + e.insets[0] + e.insets[2], h: e.widths[1] + e.widths[3] + e.insets[1] + e.insets[3] } : { w: 0, h: 0 };
  }
  function vc(t) {
    return t.margin && (t.margin.topInset || t.margin.rightInset || t.margin.bottomInset || t.margin.leftInset);
  }
  function qc(t, e) {
    if (!t.value) {
      const n = new _c({});
      t[Mt](n), t.value = n;
    }
    t.value[Jn](e);
  }
  function* Ac(t) {
    for (const e of t[gn]()) {
      if (e instanceof Fc) {
        yield* e[tr]();
        continue;
      }
      yield e;
    }
  }
  function vo(t) {
    return t.validate?.nullTest === "error";
  }
  function i0(t) {
    for (; t; ) {
      if (!t.traversal) {
        t[Hs] = t[Ue]()[Hs];
        return;
      }
      if (t[Hs]) return;
      let e = null;
      for (const i of t.traversal[gn]()) if (i.operation === "next") {
        e = i;
        break;
      }
      if (!e || !e.ref) {
        t[Hs] = t[Ue]()[Hs];
        return;
      }
      const n = t[$t]();
      t[Hs] = ++n[Hs];
      const s = n[ji](e.ref, t);
      if (!s) return;
      t = s[0];
    }
  }
  function a0(t, e) {
    const n = t.assist;
    if (n) {
      const s = n[Pe]();
      s && (e.title = s);
      const a = n.role.match(S2);
      if (a) {
        const r = "heading", o = a[1];
        e.role = r, e["aria-level"] = o;
      }
    }
    if (t.layout === "table") e.role = "table";
    else if (t.layout === "row") e.role = "row";
    else {
      const s = t[Ue]();
      s.layout === "row" && (e.role = s.assist?.role === "TH" ? "columnheader" : "cell");
    }
  }
  function qa(t) {
    if (!t.assist) return null;
    const e = t.assist;
    return e.speak && e.speak[ee] !== "" ? e.speak[ee] : e.toolTip ? e.toolTip[ee] : null;
  }
  function $i(t) {
    return Ee.success({ name: "div", attributes: { class: ["xfaRich"], style: /* @__PURE__ */ Object.create(null) }, children: [{ name: "span", attributes: { style: /* @__PURE__ */ Object.create(null) }, value: t }] });
  }
  function r0(t) {
    const e = t[$t]();
    e[V].firstUnsplittable === null && (e[V].firstUnsplittable = t, e[V].noLayoutFailure = true);
  }
  function o0(t) {
    const e = t[$t]();
    e[V].firstUnsplittable === t && (e[V].noLayoutFailure = false);
  }
  function x1(t) {
    if (t[V] || (t[V] = /* @__PURE__ */ Object.create(null), t.targetType === "auto")) return false;
    const e = t[$t]();
    let n = null;
    if (t.target) {
      if (n = e[ji](t.target, t[Ue]()), !n) return false;
      n = n[0];
    }
    const { currentPageArea: s, currentContentArea: i } = e[V];
    if (t.targetType === "pageArea") return n instanceof or || (n = null), t.startNew ? (t[V].target = n || s, true) : n && n !== s ? (t[V].target = n, true) : false;
    n instanceof Cc || (n = null);
    const a = n && n[Ue]();
    let r, o = a;
    if (t.startNew) if (n) {
      const l = a.contentArea.children, f = l.indexOf(i), c = l.indexOf(n);
      f !== -1 && f < c && (o = null), r = c - 1;
    } else r = s.contentArea.children.indexOf(i);
    else if (n && n !== i) r = a.contentArea.children.indexOf(n) - 1, o = a === s ? null : a;
    else return false;
    return t[V].target = o, t[V].index = r, true;
  }
  function k1(t, e, n) {
    const s = t[$t](), i = s[V].noLayoutFailure, a = e[Wt];
    e[Wt] = () => t, s[V].noLayoutFailure = true;
    const r = e[Pe](n);
    t[ba](r.html, r.bbox), s[V].noLayoutFailure = i, e[Wt] = a;
  }
  function l0(t) {
    const e = new _1({});
    return e[ee] = t, e;
  }
  function D8(t, e, n) {
    const s = /* @__PURE__ */ Object.create(null);
    if (!t) return s;
    const i = /* @__PURE__ */ Object.create(null);
    for (const [a, r] of t.split(";").map((o) => o.split(":", 2))) {
      const o = B8.get(a);
      if (o === "") continue;
      let l = r;
      o && (l = typeof o == "string" ? o : o(r, i)), a.endsWith("scale") ? s.transform = s.transform ? `${s[a]} ${l}` : l : s[a.replaceAll(/-([a-zA-Z])/g, (f, c) => c.toUpperCase())] = l;
    }
    if (s.fontFamily && u1({ typeface: s.fontFamily, weight: s.fontWeight || "normal", posture: s.fontStyle || "normal", size: i.fontSize || 0 }, e, e[qt].fontFinder, s), n && s.verticalAlign && s.verticalAlign !== "0px" && s.fontSize) {
      const o = ve(s.fontSize);
      s.fontSize = Oe(o * 0.583), s.verticalAlign = Oe(Math.sign(ve(s.verticalAlign)) * o * 0.333);
    }
    return n && s.fontSize && (s.fontSize = `calc(${s.fontSize} * var(--total-scale-factor))`), f1(s), s;
  }
  function M8(t) {
    return t.style ? t.style.split(";").filter((e) => !!e.trim()).map((e) => e.split(":", 2).map((n) => n.trim())).filter(([e, n]) => (e === "font-family" && t[qt].usedTypefaces.add(n), F8.has(e))).map((e) => e.join(":")).join(";") : "";
  }
  function Aa(t, e = new Uint8ClampedArray(3)) {
    if (!Array.isArray(t)) return e;
    const n = e || new Uint8ClampedArray(3);
    switch (t.length) {
      case 0:
        return null;
      case 1:
        return ut.gray.getRgbItem(t, 0, n, 0), n;
      case 3:
        return ut.rgb.getRgbItem(t, 0, n, 0), n;
      case 4:
        return ut.cmyk.getRgbItem(t, 0, n, 0), n;
      default:
        return e;
    }
  }
  function En(t, e = null) {
    return t && Array.from(t, (n) => n / 255) || e;
  }
  function Ao(t, e) {
    const n = t.getArray("QuadPoints");
    if (!Nn(n, null) || n.length === 0 || n.length % 8 > 0) return null;
    const s = new Float32Array(n.length);
    for (let i = 0, a = n.length; i < a; i += 8) {
      const [r, o, l, f, c, h, u, d] = n.slice(i, i + 8), m = Math.min(r, l, c, u), g = Math.max(r, l, c, u), b = Math.min(o, f, h, d), w = Math.max(o, f, h, d);
      if (e !== null && (m < e[0] || g > e[2] || b < e[1] || w > e[3])) return null;
      s.set([m, w, g, w, m, b, g, b], i);
    }
    return s;
  }
  function Dc(t, e, n) {
    const s = new Float32Array([1 / 0, 1 / 0, -1 / 0, -1 / 0]);
    pt.axialAlignedBoundingBox(e, n, s);
    const [i, a, r, o] = s;
    if (i === r || a === o) return [1, 0, 0, 1, t[0], t[1]];
    const l = (t[2] - t[0]) / (r - i), f = (t[3] - t[1]) / (o - a);
    return [l, 0, 0, f, t[0] - i * l, t[1] - a * f];
  }
  function Vi(t, e, n) {
    let s = 1732584193, i = -271733879, a = -1732584194, r = 271733878;
    const o = n + 72 & -64, l = new Uint8Array(o);
    let f, c;
    for (f = 0; f < n; ++f) l[f] = t[e++];
    l[f++] = 128;
    const h = o - 8;
    f < h && (f = h), l[f++] = n << 3 & 255, l[f++] = n >> 5 & 255, l[f++] = n >> 13 & 255, l[f++] = n >> 21 & 255, l[f++] = n >>> 29 & 255, f += 3;
    const u = new Int32Array(16), { k: d, r: m } = m7;
    for (f = 0; f < o; ) {
      for (c = 0; c < 16; ++c, f += 4) u[c] = l[f] | l[f + 1] << 8 | l[f + 2] << 16 | l[f + 3] << 24;
      let g = s, b = i, w = a, x = r, y, j;
      for (c = 0; c < 64; ++c) {
        c < 16 ? (y = b & w | ~b & x, j = c) : c < 32 ? (y = x & b | ~x & w, j = 5 * c + 1 & 15) : c < 48 ? (y = b ^ w ^ x, j = 3 * c + 5 & 15) : (y = w ^ (b | ~x), j = 7 * c & 15);
        const v = x, q = g + y + d[c] + u[j] | 0, A = m[c];
        x = w, w = b, b = b + (q << A | q >>> 32 - A) | 0, g = v;
      }
      s = s + g | 0, i = i + b | 0, a = a + w | 0, r = r + x | 0;
    }
    return new Uint8Array([s & 255, s >> 8 & 255, s >> 16 & 255, s >>> 24 & 255, i & 255, i >> 8 & 255, i >> 16 & 255, i >>> 24 & 255, a & 255, a >> 8 & 255, a >> 16 & 255, a >>> 24 & 255, r & 255, r >> 8 & 255, r >> 16 & 255, r >>> 24 & 255]);
  }
  function z1(t) {
    try {
      return Na(t);
    } catch (e) {
      return F(`UTF-8 decoding failed: "${e}".`), t;
    }
  }
  function y7(t, e, n, s, i) {
    t.assign(e), t.and(n), i.assign(e), i.not(), i.and(s), t.xor(i);
  }
  function j7(t, e, n, s, i) {
    t.assign(e), t.and(n), i.assign(e), i.and(s), t.xor(i), i.assign(n), i.and(s), t.xor(i);
  }
  function v7(t, e, n) {
    t.assign(e), t.rotateRight(28), n.assign(e), n.rotateRight(34), t.xor(n), n.assign(e), n.rotateRight(39), t.xor(n);
  }
  function q7(t, e, n) {
    t.assign(e), t.rotateRight(14), n.assign(e), n.rotateRight(18), t.xor(n), n.assign(e), n.rotateRight(41), t.xor(n);
  }
  function A7(t, e, n) {
    t.assign(e), t.rotateRight(1), n.assign(e), n.rotateRight(8), t.xor(n), n.assign(e), n.shiftRight(7), t.xor(n);
  }
  function S7(t, e, n) {
    t.assign(e), t.rotateRight(19), n.assign(e), n.rotateRight(61), t.xor(n), n.assign(e), n.shiftRight(6), t.xor(n);
  }
  function U1(t, e, n, s = false) {
    let i, a, r, o, l, f, c, h;
    s ? (i = new de(3418070365, 3238371032), a = new de(1654270250, 914150663), r = new de(2438529370, 812702999), o = new de(355462360, 4144912697), l = new de(1731405415, 4290775857), f = new de(2394180231, 1750603025), c = new de(3675008525, 1694076839), h = new de(1203062813, 3204075428)) : (i = new de(1779033703, 4089235720), a = new de(3144134277, 2227873595), r = new de(1013904242, 4271175723), o = new de(2773480762, 1595750129), l = new de(1359893119, 2917565137), f = new de(2600822924, 725511199), c = new de(528734635, 4215389547), h = new de(1541459225, 327033209));
    const u = Math.ceil((n + 17) / 128) * 128, d = new Uint8Array(u);
    let m, g;
    for (m = 0; m < n; ++m) d[m] = t[e++];
    d[m++] = 128;
    const b = u - 16;
    m < b && (m = b), m += 11, d[m++] = n >>> 29 & 255, d[m++] = n >> 21 & 255, d[m++] = n >> 13 & 255, d[m++] = n >> 5 & 255, d[m++] = n << 3 & 255;
    const w = new Array(80);
    for (m = 0; m < 80; m++) w[m] = new de(0, 0);
    const { k: x } = k7;
    let y = new de(0, 0), j = new de(0, 0), v = new de(0, 0), q = new de(0, 0), A = new de(0, 0), C = new de(0, 0), S = new de(0, 0), I = new de(0, 0);
    const T = new de(0, 0), P = new de(0, 0), H = new de(0, 0), G = new de(0, 0);
    let Z;
    for (m = 0; m < u; ) {
      for (g = 0; g < 16; ++g) w[g].high = d[m] << 24 | d[m + 1] << 16 | d[m + 2] << 8 | d[m + 3], w[g].low = d[m + 4] << 24 | d[m + 5] << 16 | d[m + 6] << 8 | d[m + 7], m += 8;
      for (g = 16; g < 80; ++g) Z = w[g], S7(Z, w[g - 2], G), Z.add(w[g - 7]), A7(H, w[g - 15], G), Z.add(H), Z.add(w[g - 16]);
      for (y.assign(i), j.assign(a), v.assign(r), q.assign(o), A.assign(l), C.assign(f), S.assign(c), I.assign(h), g = 0; g < 80; ++g) T.assign(I), q7(H, A, G), T.add(H), y7(H, A, C, S, G), T.add(H), T.add(x[g]), T.add(w[g]), v7(P, y, G), j7(H, y, j, v, G), P.add(H), Z = I, I = S, S = C, C = A, q.add(T), A = q, q = v, v = j, j = y, Z.assign(T), Z.add(P), y = Z;
      i.add(y), a.add(j), r.add(v), o.add(q), l.add(A), f.add(C), c.add(S), h.add(I);
    }
    let z;
    return s ? (z = new Uint8Array(48), i.copyTo(z, 0), a.copyTo(z, 8), r.copyTo(z, 16), o.copyTo(z, 24), l.copyTo(z, 32), f.copyTo(z, 40)) : (z = new Uint8Array(64), i.copyTo(z, 0), a.copyTo(z, 8), r.copyTo(z, 16), o.copyTo(z, 24), l.copyTo(z, 32), f.copyTo(z, 40), c.copyTo(z, 48), h.copyTo(z, 56)), z;
  }
  function C7(t, e, n) {
    return U1(t, e, n, true);
  }
  function ti(t, e) {
    return t >>> e | t << 32 - e;
  }
  function T7(t, e, n) {
    return t & e ^ ~t & n;
  }
  function E7(t, e, n) {
    return t & e ^ t & n ^ e & n;
  }
  function F7(t) {
    return ti(t, 2) ^ ti(t, 13) ^ ti(t, 22);
  }
  function B7(t) {
    return ti(t, 6) ^ ti(t, 11) ^ ti(t, 25);
  }
  function R7(t) {
    return ti(t, 7) ^ ti(t, 18) ^ t >>> 3;
  }
  function _7(t) {
    return ti(t, 17) ^ ti(t, 19) ^ t >>> 10;
  }
  function Lc(t, e, n) {
    let s = 1779033703, i = 3144134277, a = 1013904242, r = 2773480762, o = 1359893119, l = 2600822924, f = 528734635, c = 1541459225;
    const h = Math.ceil((n + 9) / 64) * 64, u = new Uint8Array(h);
    let d, m;
    for (d = 0; d < n; ++d) u[d] = t[e++];
    u[d++] = 128;
    const g = h - 8;
    d < g && (d = g), d += 3, u[d++] = n >>> 29 & 255, u[d++] = n >> 21 & 255, u[d++] = n >> 13 & 255, u[d++] = n >> 5 & 255, u[d++] = n << 3 & 255;
    const b = new Uint32Array(64), { k: w } = I7;
    for (d = 0; d < h; ) {
      for (m = 0; m < 16; ++m) b[m] = u[d] << 24 | u[d + 1] << 16 | u[d + 2] << 8 | u[d + 3], d += 4;
      for (m = 16; m < 64; ++m) b[m] = _7(b[m - 2]) + b[m - 7] + R7(b[m - 15]) + b[m - 16] | 0;
      let x = s, y = i, j = a, v = r, q = o, A = l, C = f, S = c, I, T;
      for (m = 0; m < 64; ++m) I = S + B7(q) + T7(q, A, C) + w[m] + b[m], T = F7(x) + E7(x, y, j), S = C, C = A, A = q, q = v + I | 0, v = j, j = y, y = x, x = I + T | 0;
      s = s + x | 0, i = i + y | 0, a = a + j | 0, r = r + v | 0, o = o + q | 0, l = l + A | 0, f = f + C | 0, c = c + S | 0;
    }
    return new Uint8Array([s >> 24 & 255, s >> 16 & 255, s >> 8 & 255, s & 255, i >> 24 & 255, i >> 16 & 255, i >> 8 & 255, i & 255, a >> 24 & 255, a >> 16 & 255, a >> 8 & 255, a & 255, r >> 24 & 255, r >> 16 & 255, r >> 8 & 255, r & 255, o >> 24 & 255, o >> 16 & 255, o >> 8 & 255, o & 255, l >> 24 & 255, l >> 16 & 255, l >> 8 & 255, l & 255, f >> 24 & 255, f >> 16 & 255, f >> 8 & 255, f & 255, c >> 24 & 255, c >> 16 & 255, c >> 8 & 255, c & 255]);
  }
  function Uc(t, e, n = 1024, s = false) {
    const i = e.length, a = t.peekBytes(n), r = a.length - i;
    if (r <= 0) return false;
    if (s) {
      const o = i - 1;
      let l = a.length - 1;
      for (; l >= o; ) {
        let f = 0;
        for (; f < i && a[l - f] === e[o - f]; ) f++;
        if (f >= i) return t.pos += l - o, true;
        l--;
      }
    } else {
      let o = 0;
      for (; o <= r; ) {
        let l = 0;
        for (; l < i && a[o + l] === e[l]; ) l++;
        if (l >= i) return t.pos += o, true;
        o++;
      }
    }
    return false;
  }
  function z7(t) {
    if (t) {
      const e = cl(t);
      if (e) return e.href;
      F(`Invalid absolute docBaseUrl: "${t}".`);
    }
    return null;
  }
  function Z1() {
  }
  function ds(t) {
    if (t instanceof jn || t instanceof Br || t instanceof La || t instanceof Uh || t instanceof nf) return t;
    switch (t instanceof Error || typeof t == "object" && t !== null || Ye('wrapReason: Expected "reason" to be a (possibly cloned) Error.'), t.name) {
      case "AbortException":
        return new jn(t.message);
      case "InvalidPDFException":
        return new Br(t.message);
      case "PasswordException":
        return new La(t.message, t.code);
      case "ResponseException":
        return new Uh(t.message, t.status, t.missing);
      case "UnknownErrorException":
        return new nf(t.message, t.details);
    }
    return new nf(t.message, t.toString());
  }
  async function tp(t, e, n, { encrypt: s = null, encryptRef: i = null }) {
    const a = s && i !== t ? s.createCipherTransform(t.num, t.gen) : null;
    n.push(`${t.num} ${t.gen} obj
`), await h0(e, n, a), n.push(`
endobj
`);
  }
  async function Wc(t, e, n) {
    e.push("<<");
    for (const [s, i] of t.getRawEntries()) e.push(` /${pf(s)} `), await h0(i, e, n);
    e.push(">>");
  }
  async function G7(t, e, n) {
    t = t.getOriginalStream(), t.reset();
    let s = t.getBytes();
    const { dict: i } = t, [a, r] = await Promise.all([i.getAsync("Filter"), i.getAsync("DecodeParms")]), o = Array.isArray(a) ? await i.xref.fetchIfRefAsync(a[0]) : a, l = ot(o, "FlateDecode");
    if (s.length >= 256 && !l) try {
      const h = new CompressionStream("deflate"), u = h.writable.getWriter();
      await u.ready, u.write(s).then(async () => {
        await u.ready, await u.close();
      }).catch(() => {
      }), s = await new Response(h.readable).bytes();
      let d, m;
      a ? l || (d = Array.isArray(a) ? [te.get("FlateDecode"), ...a] : [te.get("FlateDecode"), a], r && (m = Array.isArray(r) ? [null, ...r] : [null, r])) : d = te.get("FlateDecode"), d && i.set("Filter", d), m && i.set("DecodeParms", m);
    } catch (h) {
      Ke(`writeStream - cannot compress data: "${h}".`);
    }
    let c = Vn(s);
    n && (c = n.encryptString(c)), i.set("Length", c.length), await Wc(i, e, n), e.push(` stream
`, c, `
endstream`);
  }
  async function W7(t, e, n) {
    e.push("[");
    for (let s = 0, i = t.length; s < i; s++) await h0(t[s], e, n), s < i - 1 && e.push(" ");
    e.push("]");
  }
  async function h0(t, e, n) {
    t instanceof te ? e.push(`/${pf(t.name)}`) : t instanceof ae ? e.push(`${t.num} ${t.gen} R`) : Array.isArray(t) || ArrayBuffer.isView(t) ? await W7(t, e, n) : typeof t == "string" ? (n && (t = n.encryptString(t)), e.push(`(${za(t)})`)) : typeof t == "number" || typeof t == "boolean" ? e.push(t.toString()) : t instanceof _ ? await Wc(t, e, n) : t instanceof ze ? await G7(t, e, n) : t === null ? e.push("null") : F(`Unhandled value in writer: ${typeof t}, please file a bug.`);
  }
  function $c(t, e, n, s) {
    for (let i = e + n - 1; i > n - 1; i--) s[i] = t & 255, t >>= 8;
    return n + e;
  }
  function np(t, e, n) {
    const s = t.length;
    for (let i = 0; i < s; i++) n[e + i] = t.charCodeAt(i) & 255;
    return e + s;
  }
  function $7(t, e) {
    const n = Math.floor(Date.now() / 1e3), s = e.filename || "", i = [n.toString(), s, t.toString(), ...e.infoMap.values()], a = Math.sumPrecise(i.map((l) => l.length)), r = new Uint8Array(a);
    let o = 0;
    for (const l of i) o = np(l, o, r);
    return Vn(Vi(r, 0, r.length));
  }
  function V7(t, e) {
    const n = new Ul({ hasAttributes: true }).parseFromString(t);
    for (const { xfa: i } of e) {
      if (!i) continue;
      const { path: a, value: r } = i;
      if (!a) continue;
      const o = Jh(a);
      let l = n.documentElement.searchNode(o, 0);
      !l && o.length > 1 && (l = n.documentElement.searchNode([o.at(-1)], 0)), l ? l.childNodes = Array.isArray(r) ? r.map((f) => new lo("value", f)) : [new lo("#text", r)] : F(`Node not found for path: ${a}`);
    }
    const s = [];
    return n.documentElement.dump(s), s.join("");
  }
  async function K7({ xref: t, acroForm: e, acroFormRef: n, hasXfa: s, hasXfaDatasetsEntry: i, xfaDatasetsRef: a, needAppearances: r, changes: o }) {
    if (s && !i && !a && F("XFA - Cannot save it"), !r && (!s || !a || i)) return;
    const l = e.clone();
    if (s && !i) {
      const f = e.get("XFA").slice();
      f.splice(2, 0, "datasets"), f.splice(3, 0, a), l.set("XFA", f);
    }
    r && l.set("NeedAppearances", true), o.put(n, { data: l });
  }
  function X7({ xfaData: t, xfaDatasetsRef: e, changes: n, xref: s }) {
    if (t === null) {
      const a = s.fetchIfRef(e);
      t = V7(a.getString(), n);
    }
    const i = new Rn(t);
    i.dict = new _(s), i.dict.setIfName("Type", "EmbeddedFile"), n.put(e, { data: i });
  }
  async function Y7(t, e, n, s, i) {
    i.push(`xref
`);
    const a = sp(n);
    let r = 0;
    for (const { ref: o, data: l } of n) o.num === a[r] && (i.push(`${a[r]} ${a[r + 1]}
`), r += 2), l !== null ? (i.push(`${e.toString().padStart(10, "0")} ${Math.min(o.gen, 65535).toString().padStart(5, "0")} n\r
`), e += l.length) : i.push(`0000000000 ${Math.min(o.gen + 1, 65535).toString().padStart(5, "0")} f\r
`);
    ip(e, t, s), i.push(`trailer
`), await Wc(s, i, null), i.push(`
startxref
`, e.toString(), `
%%EOF
`);
  }
  function sp(t) {
    const e = [];
    for (const { ref: n } of t) n.num === e.at(-2) + e.at(-1) ? e[e.length - 1] += 1 : e.push(n.num, 1);
    return e;
  }
  async function Q7(t, e, n, s, i) {
    const a = [];
    let r = 0, o = 0;
    for (const { ref: g, data: b, objStreamRef: w, index: x } of n) {
      let y;
      r = Math.max(r, e), w ? (y = x, a.push([2, w.num, y])) : b !== null ? (y = Math.min(g.gen, 65535), a.push([1, e, y]), e += b.length) : (y = Math.min(g.gen + 1, 65535), a.push([0, 0, y])), o = Math.max(o, y);
    }
    s.set("Index", sp(n));
    const l = tu(r), f = tu(o), c = [1, l, f];
    s.set("W", c), ip(e, t, s);
    const h = Math.sumPrecise(c), u = new Uint8Array(h * a.length), d = new jt(u);
    d.dict = s;
    let m = 0;
    for (const [g, b, w] of a) m = $c(g, c[0], m, u), m = $c(b, c[1], m, u), m = $c(w, c[2], m, u);
    await tp(t.newRef, d, i, {}), i.push(`startxref
`, e.toString(), `
%%EOF
`);
  }
  function ip(t, e, n) {
    if (Array.isArray(e.fileIds) && e.fileIds.length > 0) {
      const s = $7(t, e);
      n.set("ID", [e.fileIds[0] || s, s]);
    }
  }
  function J7(t, e, n) {
    const s = new _(null);
    s.setIfDefined("Prev", t?.startXRef);
    const i = t.newRef;
    return n ? (e.put(i, { data: "" }), s.set("Size", i.num + 1), s.setIfName("Type", "XRef")) : s.set("Size", i.num), s.setIfDefined("Root", t?.rootRef), s.setIfDefined("Info", t?.infoRef), s.setIfDefined("Encrypt", t?.encryptRef), s;
  }
  async function Z7(t, e, n = []) {
    const s = [];
    for (const [i, { data: a, objStreamRef: r, index: o }] of t.items()) {
      if (r) {
        s.push({ ref: i, data: a, objStreamRef: r, index: o });
        continue;
      }
      if (a === null || typeof a == "string") {
        s.push({ ref: i, data: a });
        continue;
      }
      await tp(i, a, n, e), s.push({ ref: i, data: n.join("") }), n.length = 0;
    }
    return s.sort((i, a) => i.ref.num - a.ref.num);
  }
  async function ap({ originalData: t, xrefInfo: e, changes: n, xref: s = null, hasXfa: i = false, xfaDatasetsRef: a = null, hasXfaDatasetsEntry: r = false, needAppearances: o, acroFormRef: l = null, acroForm: f = null, xfaData: c = null, useXrefStream: h = false }) {
    await K7({ xref: s, acroForm: f, acroFormRef: l, hasXfa: i, hasXfaDatasetsEntry: r, xfaDatasetsRef: a, needAppearances: o, changes: n }), i && X7({ xfaData: c, xfaDatasetsRef: a, changes: n, xref: s });
    const u = J7(e, n, h), d = [], m = await Z7(n, s, d);
    let g = t.length;
    const b = t.at(-1);
    b !== 10 && b !== 13 && (d.push(`
`), g += 1);
    for (const { data: j } of m) j !== null && d.push(j);
    await (h ? Q7(e, g, m, u, d) : Y7(e, g, m, u, d));
    const w = t.length + Math.sumPrecise(d.map((j) => j.length)), x = new Uint8Array(w);
    x.set(t);
    let y = t.length;
    for (const j of d) y = np(j, y, x);
    return x;
  }
  function d6(t) {
    Number.isInteger(t) && (u0 = t);
  }
  function p6() {
    return u0;
  }
  function d0(t) {
    u0 >= Eo.INFOS && console.info(`Info: ${t}`);
  }
  function at(t) {
    u0 >= Eo.WARNINGS && console.warn(`Warning: ${t}`);
  }
  function It(t) {
    throw new Error(t);
  }
  function Lt(t, e) {
    t || It(e);
  }
  function m6(t) {
    switch (t?.protocol) {
      case "http:":
      case "https:":
      case "ftp:":
      case "mailto:":
      case "tel:":
        return true;
      default:
        return false;
    }
  }
  function Xc(t, e = null, n = null) {
    if (!t) return null;
    if (n && typeof t == "string" && (n.addDefaultProtocol && t.startsWith("www.") && t.match(/\./g)?.length >= 2 && (t = `http://${t}`), n.tryConvertEncoding)) try {
      t = y6(t);
    } catch {
    }
    const s = e ? URL.parse(t, e) : URL.parse(t);
    return m6(s) ? s : null;
  }
  function Yc(t, e, n = false) {
    const s = URL.parse(t);
    return s ? (s.hash = e, s.href) : n && Xc(t, "http://example.com") ? t.split("#", 1)[0] + `${e ? `#${e}` : ""}` : "";
  }
  function Qc(t) {
    return t.substring(t.lastIndexOf("/") + 1);
  }
  function st(t, e, n, s = false) {
    return Object.defineProperty(t, e, { value: n, enumerable: !s, configurable: true, writable: false }), n;
  }
  function b6(t) {
    (typeof t != "object" || t?.length === void 0) && It("Invalid argument for bytesToString");
    const e = t.length, n = 8192;
    if (e < n) return String.fromCharCode.apply(null, t);
    const s = [];
    for (let i = 0; i < e; i += n) {
      const a = Math.min(i + n, e), r = t.subarray(i, a);
      s.push(String.fromCharCode.apply(null, r));
    }
    return s.join("");
  }
  function m0(t) {
    typeof t != "string" && It("Invalid argument for stringToBytes");
    const e = t.length, n = new Uint8Array(e);
    for (let s = 0; s < e; ++s) n[s] = t.charCodeAt(s) & 255;
    return n;
  }
  function w6(t) {
    return String.fromCharCode(t >> 24 & 255, t >> 16 & 255, t >> 8 & 255, t & 255);
  }
  function x6() {
    const t = new Uint8Array(4);
    return t[0] = 1, new Uint32Array(t.buffer, 0, 1)[0] === 1;
  }
  function k6() {
    try {
      return new Function(""), true;
    } catch {
      return false;
    }
  }
  function y6(t) {
    return decodeURIComponent(escape(t));
  }
  function cp(t) {
    return eh || (eh = /([\u00a0\u00b5\u037e\u0eb3\u2000-\u200a\u202f\u2126\ufb00-\ufb04\ufb06\ufb20-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufba1\ufba4-\ufba9\ufbae-\ufbb1\ufbd3-\ufbdc\ufbde-\ufbe7\ufbea-\ufbf8\ufbfc-\ufbfd\ufc00-\ufc5d\ufc64-\ufcf1\ufcf5-\ufd3d\ufd88\ufdf4\ufdfa-\ufdfb\ufe71\ufe77\ufe79\ufe7b\ufe7d]+)|(\ufb05+)/gu, fp = /* @__PURE__ */ new Map([["\uFB05", "\u017Ft"]])), t.replaceAll(eh, (e, n, s) => n ? n.normalize("NFKC") : fp.get(s));
  }
  function th() {
    if (typeof crypto.randomUUID == "function") return crypto.randomUUID();
    const t = new Uint8Array(32);
    return crypto.getRandomValues(t), b6(t);
  }
  function j6(t, e, n) {
    if (!Array.isArray(n) || n.length < 2) return false;
    const [s, i, ...a] = n;
    if (!t(s) && !Number.isInteger(s) || !e(i)) return false;
    const r = a.length;
    let o = true;
    switch (i.name) {
      case "XYZ":
        if (r < 2 || r > 3) return false;
        break;
      case "Fit":
      case "FitB":
        return r === 0;
      case "FitH":
      case "FitBH":
      case "FitV":
      case "FitBV":
        if (r > 1) return false;
        break;
      case "FitR":
        if (r !== 4) return false;
        o = false;
        break;
      default:
        return false;
    }
    for (const l of a) if (!(typeof l == "number" || o && l === null)) return false;
    return true;
  }
  function hn(t, e, n) {
    return Math.min(Math.max(t, e), n);
  }
  async function x0(t, e = "text") {
    if (_o(t, document.baseURI)) {
      const n = await fetch(t);
      if (!n.ok) throw new Error(n.statusText);
      switch (e) {
        case "blob":
          return n.blob();
        case "bytes":
          return n.bytes();
        case "json":
          return n.json();
      }
      return n.text();
    }
    return new Promise((n, s) => {
      const i = new XMLHttpRequest();
      i.open("GET", t, true), i.responseType = e === "bytes" ? "arraybuffer" : e, i.onreadystatechange = () => {
        if (i.readyState === XMLHttpRequest.DONE) {
          if (i.status === 200 || i.status === 0) {
            switch (e) {
              case "bytes":
                n(new Uint8Array(i.response));
                return;
              case "blob":
              case "json":
                n(i.response);
                return;
            }
            n(i.responseText);
            return;
          }
          s(new Error(i.statusText));
        }
      }, i.send(null);
    });
  }
  function Ro(t) {
    const e = t.length;
    let n = 0;
    for (; n < e && t[n].trim() === ""; ) n++;
    return t.substring(n, n + 5).toLowerCase() === "data:";
  }
  function y0(t) {
    return typeof t == "string" && /\.pdf$/i.test(t);
  }
  function hp(t) {
    return [t] = t.split(/[#?]/, 1), Qc(t);
  }
  function up(t, e = "document.pdf") {
    if (typeof t != "string") return e;
    if (Ro(t)) return at('getPdfFilenameFromUrl: ignore "data:"-URL for performance reasons.'), e;
    const s = p((o) => {
      try {
        return new URL(o);
      } catch {
        try {
          return new URL(decodeURIComponent(o));
        } catch {
          try {
            return new URL(o, "https://foo.bar");
          } catch {
            try {
              return new URL(decodeURIComponent(o), "https://foo.bar");
            } catch {
              return null;
            }
          }
        }
      }
    }, "getURL")(t);
    if (!s) return e;
    const i = p((o) => {
      try {
        let l = decodeURIComponent(o);
        return l.includes("/") && (l = Qc(l), /^\.pdf$/i.test(l)) ? o : l;
      } catch {
        return o;
      }
    }, "decode"), a = /\.pdf$/i, r = Qc(s.pathname);
    if (a.test(r)) return i(r);
    if (s.searchParams.size > 0) {
      const o = p((f) => [...f].findLast((c) => a.test(c)), "getLast"), l = o(s.searchParams.values()) ?? o(s.searchParams.keys());
      if (l) return i(l);
    }
    if (s.hash) {
      const l = /[^/?#=]+\.pdf\b(?!.*\.pdf\b)/i.exec(s.hash);
      if (l) return i(l[0]);
    }
    return e;
  }
  function _o(t, e) {
    const n = e ? URL.parse(t, e) : URL.parse(t);
    return /https?:/.test(n?.protocol ?? "");
  }
  function ms(t) {
    t.preventDefault();
  }
  function Nt(t) {
    t.preventDefault(), t.stopPropagation();
  }
  function v6(t) {
    console.log("Deprecated API usage: " + t);
  }
  function pp(t, { scale: e = 1, rotation: n = 0 }) {
    const { width: s, height: i } = t.attributes.style, a = [0, 0, parseInt(s), parseInt(i)];
    return new Qo({ viewBox: a, userUnit: 1, scale: e, rotation: n });
  }
  function ur(t) {
    if (t.startsWith("#")) {
      const e = parseInt(t.slice(1), 16);
      return [(e & 16711680) >> 16, (e & 65280) >> 8, e & 255];
    }
    return t.startsWith("rgb(") ? t.slice(4, -1).split(",").map((e) => parseInt(e)) : t.startsWith("rgba(") ? t.slice(5, -1).split(",", 3).map((e) => parseInt(e)) : (at(`Not a valid color format: "${t}"`), [0, 0, 0]);
  }
  function q6(t) {
    const e = document.createElement("span");
    e.style.visibility = "hidden", e.style.colorScheme = "only light", document.body.append(e);
    for (const n of t.keys()) {
      e.style.color = n;
      const s = window.getComputedStyle(e).color;
      t.set(n, ur(s));
    }
    e.remove();
  }
  function zt(t) {
    const { a: e, b: n, c: s, d: i, e: a, f: r } = t.getTransform();
    return [e, n, s, i, a, r];
  }
  function si(t) {
    const { a: e, b: n, c: s, d: i, e: a, f: r } = t.getTransform().invertSelf();
    return [e, n, s, i, a, r];
  }
  function Ki(t, e, n = false, s = true) {
    if (e instanceof Qo) {
      const { pageWidth: i, pageHeight: a } = e.rawDims, { style: r } = t, o = rn.isCSSRoundSupported, l = `var(--total-scale-factor) * ${i}px`, f = `var(--total-scale-factor) * ${a}px`, c = o ? `round(down, ${l}, var(--scale-round-x))` : `calc(${l})`, h = o ? `round(down, ${f}, var(--scale-round-y))` : `calc(${f})`;
      !n || e.rotation % 180 === 0 ? (r.width = c, r.height = h) : (r.width = h, r.height = c);
    }
    s && t.setAttribute("data-main-rotation", e.rotation);
  }
  function gp(t, e) {
    e = hn(e ?? 1, 0, 1);
    const n = 255 * (1 - e);
    return t.map((s) => Math.round(s * e + n));
  }
  function bp(t, e) {
    const n = t[0] / 255, s = t[1] / 255, i = t[2] / 255, a = Math.max(n, s, i), r = Math.min(n, s, i), o = (a + r) / 2;
    if (a === r) e[0] = e[1] = 0;
    else {
      const l = a - r;
      switch (e[1] = o < 0.5 ? l / (a + r) : l / (2 - a - r), a) {
        case n:
          e[0] = ((s - i) / l + (s < i ? 6 : 0)) * 60;
          break;
        case s:
          e[0] = ((i - n) / l + 2) * 60;
          break;
        case i:
          e[0] = ((n - s) / l + 4) * 60;
          break;
      }
    }
    e[2] = o;
  }
  function sh(t, e) {
    const n = t[0], s = t[1], i = t[2], a = (1 - Math.abs(2 * i - 1)) * s, r = a * (1 - Math.abs(n / 60 % 2 - 1)), o = i - a / 2;
    switch (Math.floor(n / 60)) {
      case 0:
        e[0] = a + o, e[1] = r + o, e[2] = o;
        break;
      case 1:
        e[0] = r + o, e[1] = a + o, e[2] = o;
        break;
      case 2:
        e[0] = o, e[1] = a + o, e[2] = r + o;
        break;
      case 3:
        e[0] = o, e[1] = r + o, e[2] = a + o;
        break;
      case 4:
        e[0] = r + o, e[1] = o, e[2] = a + o;
        break;
      case 5:
      case 6:
        e[0] = a + o, e[1] = o, e[2] = r + o;
        break;
    }
  }
  function wp(t) {
    return t <= 0.03928 ? t / 12.92 : ((t + 0.055) / 1.055) ** 2.4;
  }
  function xp(t, e, n) {
    sh(t, n), n.map(wp);
    const s = 0.2126 * n[0] + 0.7152 * n[1] + 0.0722 * n[2];
    sh(e, n), n.map(wp);
    const i = 0.2126 * n[0] + 0.7152 * n[1] + 0.0722 * n[2];
    return s > i ? (s + 0.05) / (i + 0.05) : (i + 0.05) / (s + 0.05);
  }
  function yp(t, e) {
    const n = t[0] + t[1] * 256 + t[2] * 65536 + e[0] * 16777216 + e[1] * 4294967296 + e[2] * 1099511627776;
    let s = kp.get(n);
    if (s) return s;
    const i = new Float32Array(9), a = i.subarray(0, 3), r = i.subarray(3, 6);
    bp(t, r);
    const o = i.subarray(6, 9);
    bp(e, o);
    const l = o[2] < 0.5, f = l ? 12 : 4.5;
    if (r[2] = l ? Math.sqrt(r[2]) : 1 - Math.sqrt(1 - r[2]), xp(r, o, a) < f) {
      let c, h;
      l ? (c = r[2], h = 1) : (c = 0, h = r[2]);
      const u = 5e-3;
      for (; h - c > u; ) {
        const d = r[2] = (c + h) / 2;
        l === xp(r, o, a) < f ? c = d : h = d;
      }
      r[2] = l ? h : c;
    }
    return sh(r, a), s = Ie.makeHexColor(Math.round(a[0] * 255), Math.round(a[1] * 255), Math.round(a[2] * 255)), kp.set(n, s), s;
  }
  function ih({ html: t, dir: e, className: n }, s) {
    const i = document.createDocumentFragment();
    if (typeof t == "string") {
      const a = document.createElement("p");
      a.dir = e || "auto";
      const r = t.split(/(?:\r\n?|\n)/);
      for (let o = 0, l = r.length; o < l; ++o) {
        const f = r[o];
        a.append(document.createTextNode(f)), o < l - 1 && a.append(document.createElement("br"));
      }
      i.append(a);
    } else nh.render({ xfaHtml: t, div: i, intent: "richText" });
    i.firstElementChild.classList.add("richText", n), s.append(i);
  }
  function jp(t) {
    const e = new Path2D();
    if (!t) return e;
    for (let n = 0, s = t.length; n < s; ) switch (t[n++]) {
      case Fo.moveTo:
        e.moveTo(t[n++], t[n++]);
        break;
      case Fo.lineTo:
        e.lineTo(t[n++], t[n++]);
        break;
      case Fo.curveTo:
        e.bezierCurveTo(t[n++], t[n++], t[n++], t[n++], t[n++], t[n++]);
        break;
      case Fo.quadraticCurveTo:
        e.quadraticCurveTo(t[n++], t[n++], t[n++], t[n++]);
        break;
      case Fo.closePath:
        e.closePath();
        break;
      default:
        at(`Unrecognized drawing path operator: ${t[n - 1]}`);
        break;
    }
    return e;
  }
  function vp(t, e, n) {
    for (const s of n) e.addEventListener(s, t[s].bind(t));
  }
  function Tp(t, e, n, s, i, a) {
    t[e * 4 + 0] = Math.min(t[e * 4 + 0], n), t[e * 4 + 1] = Math.min(t[e * 4 + 1], s), t[e * 4 + 2] = Math.max(t[e * 4 + 2], i), t[e * 4 + 3] = Math.max(t[e * 4 + 3], a);
  }
  function z6(t) {
    if (t instanceof URL) return t;
    if (typeof t == "string") {
      if (Ts) {
        if (/^[a-z][a-z0-9\-+.]+:/i.test(t)) return new URL(t);
        const n = process.getBuiltinModule("url");
        return new URL(n.pathToFileURL(t));
      }
      const e = URL.parse(t, window.location);
      if (e) return e;
    }
    throw new Error("Invalid PDF url data: either string or URL-object is expected in the url property.");
  }
  function U6(t) {
    if (Ts && typeof Buffer < "u" && t instanceof Buffer) throw new Error("Please provide binary data as `Uint8Array`, rather than `Buffer`.");
    if (t instanceof Uint8Array && t.byteLength === t.buffer.byteLength) return t;
    if (typeof t == "string") return m0(t);
    if (t instanceof ArrayBuffer || ArrayBuffer.isView(t) || typeof t == "object" && !isNaN(t?.length)) return new Uint8Array(t);
    throw new Error("Invalid PDF binary data: either TypedArray, string, or array-like object is expected in the data property.");
  }
  function A0(t) {
    if (typeof t != "string") return null;
    if (t.endsWith("/")) return t;
    throw new Error(`Invalid factory url: "${t}" must include trailing slash.`);
  }
  function Bp() {
  }
  function es(t) {
    if (t instanceof qi || t instanceof p0 || t instanceof lp || t instanceof Bo || t instanceof Jc) return t;
    switch (t instanceof Error || typeof t == "object" && t !== null || It('wrapReason: Expected "reason" to be a (possibly cloned) Error.'), t.name) {
      case "AbortException":
        return new qi(t.message);
      case "InvalidPDFException":
        return new p0(t.message);
      case "PasswordException":
        return new lp(t.message, t.code);
      case "ResponseException":
        return new Bo(t.message, t.status, t.missing);
      case "UnknownErrorException":
        return new Jc(t.message, t.details);
    }
    return new Jc(t.message, t.toString());
  }
  async function K6(t) {
    const n = await process.getBuiltinModule("fs").promises.readFile(t);
    return new Uint8Array(n);
  }
  function ek() {
    lh.init();
  }
  function tk() {
    return lh.isReady;
  }
  function nk(t, e, n, s, i, a) {
    return lh.draw(t, e, n, s, i, a);
  }
  function C0(t, e) {
    if (!e) return;
    const n = e[2] - e[0], s = e[3] - e[1], i = new Path2D();
    i.rect(e[0], e[1], n, s), t.clip(i);
  }
  function ch(t, e, n, s, i, a, r, o) {
    const l = e.coords, f = e.colors, c = t.data, h = t.width * 4;
    let u;
    l[n * 2 + 1] > l[s * 2 + 1] && (u = n, n = s, s = u, u = a, a = r, r = u), l[s * 2 + 1] > l[i * 2 + 1] && (u = s, s = i, i = u, u = r, r = o, o = u), l[n * 2 + 1] > l[s * 2 + 1] && (u = n, n = s, s = u, u = a, a = r, r = u);
    const d = (l[n * 2] + e.offsetX) * e.scaleX, m = (l[n * 2 + 1] + e.offsetY) * e.scaleY, g = (l[s * 2] + e.offsetX) * e.scaleX, b = (l[s * 2 + 1] + e.offsetY) * e.scaleY, w = (l[i * 2] + e.offsetX) * e.scaleX, x = (l[i * 2 + 1] + e.offsetY) * e.scaleY;
    if (m >= x) return;
    const y = f[a * 4], j = f[a * 4 + 1], v = f[a * 4 + 2], q = f[r * 4], A = f[r * 4 + 1], C = f[r * 4 + 2], S = f[o * 4], I = f[o * 4 + 1], T = f[o * 4 + 2], P = Math.round(m), H = Math.round(x);
    let G, Z, z, O, N, oe, je, Y;
    for (let ye = P; ye <= H; ye++) {
      if (ye < b) {
        const L = ye < m ? 0 : (m - ye) / (m - b);
        G = d - (d - g) * L, Z = y - (y - q) * L, z = j - (j - A) * L, O = v - (v - C) * L;
      } else {
        let L;
        ye > x ? L = 1 : b === x ? L = 0 : L = (b - ye) / (b - x), G = g - (g - w) * L, Z = q - (q - S) * L, z = A - (A - I) * L, O = C - (C - T) * L;
      }
      let qe;
      ye < m ? qe = 0 : ye > x ? qe = 1 : qe = (m - ye) / (m - x), N = d - (d - w) * qe, oe = y - (y - S) * qe, je = j - (j - I) * qe, Y = v - (v - T) * qe;
      const W = Math.round(Math.min(G, N)), K = Math.round(Math.max(G, N));
      let M = h * ye + W * 4;
      for (let L = W; L <= K; L++) qe = (G - L) / (G - N), qe < 0 ? qe = 0 : qe > 1 && (qe = 1), c[M++] = Z - (Z - oe) * qe | 0, c[M++] = z - (z - je) * qe | 0, c[M++] = O - (O - Y) * qe | 0, c[M++] = 255;
    }
  }
  function ik(t, e, n) {
    const s = e.coords, i = e.colors;
    let a, r;
    switch (e.type) {
      case Ia.LATTICE:
        const o = e.verticesPerRow, l = Math.floor(s.length / o) - 1, f = o - 1;
        for (a = 0; a < l; a++) {
          let c = a * o;
          for (let h = 0; h < f; h++, c++) ch(t, n, s[c], s[c + 1], s[c + o], i[c], i[c + 1], i[c + o]), ch(t, n, s[c + o + 1], s[c + 1], s[c + o], i[c + o + 1], i[c + 1], i[c + o]);
        }
        break;
      case Ia.TRIANGLES:
        for (a = 0, r = s.length; a < r; a += 3) ch(t, n, s[a], s[a + 1], s[a + 2], i[a], i[a + 1], i[a + 2]);
        break;
      default:
        throw new Error("illegal figure");
    }
  }
  function ok(t) {
    switch (t[0]) {
      case "RadialAxial":
        return new sk(t);
      case "Mesh":
        return new ak(t);
      case "Dummy":
        return new rk();
    }
    throw new Error(`Unknown IR type: ${t[0]}`);
  }
  function lk({ src: t, srcPos: e = 0, dest: n, width: s, height: i, nonBlackColor: a = 4294967295, inverseDecode: r = false }) {
    const o = rn.isLittleEndian ? 4278190080 : 255, [l, f] = r ? [a, o] : [o, a], c = s >> 3, h = s & 7, u = l ^ f, d = t.length;
    n = new Uint32Array(n.buffer);
    let m = 0;
    for (let g = 0; g < i; ++g) {
      for (const w = e + c; e < w; ++e, m += 8) {
        const x = t[e];
        n[m] = l ^ -(x >> 7 & 1) & u, n[m + 1] = l ^ -(x >> 6 & 1) & u, n[m + 2] = l ^ -(x >> 5 & 1) & u, n[m + 3] = l ^ -(x >> 4 & 1) & u, n[m + 4] = l ^ -(x >> 3 & 1) & u, n[m + 5] = l ^ -(x >> 2 & 1) & u, n[m + 6] = l ^ -(x >> 1 & 1) & u, n[m + 7] = l ^ -(x & 1) & u;
      }
      if (h === 0) continue;
      const b = e < d ? t[e++] : 255;
      for (let w = 0; w < h; ++w, ++m) n[m] = l ^ -(b >> 7 - w & 1) & u;
    }
    return { srcPos: e, destPos: m };
  }
  function ck(t, e) {
    if (t._removeMirroring) throw new Error("Context is already forwarding operations.");
    t.__originalSave = t.save, t.__originalRestore = t.restore, t.__originalRotate = t.rotate, t.__originalScale = t.scale, t.__originalTranslate = t.translate, t.__originalTransform = t.transform, t.__originalSetTransform = t.setTransform, t.__originalResetTransform = t.resetTransform, t.__originalClip = t.clip, t.__originalMoveTo = t.moveTo, t.__originalLineTo = t.lineTo, t.__originalBezierCurveTo = t.bezierCurveTo, t.__originalRect = t.rect, t.__originalClosePath = t.closePath, t.__originalBeginPath = t.beginPath, t._removeMirroring = () => {
      t.save = t.__originalSave, t.restore = t.__originalRestore, t.rotate = t.__originalRotate, t.scale = t.__originalScale, t.translate = t.__originalTranslate, t.transform = t.__originalTransform, t.setTransform = t.__originalSetTransform, t.resetTransform = t.__originalResetTransform, t.clip = t.__originalClip, t.moveTo = t.__originalMoveTo, t.lineTo = t.__originalLineTo, t.bezierCurveTo = t.__originalBezierCurveTo, t.rect = t.__originalRect, t.closePath = t.__originalClosePath, t.beginPath = t.__originalBeginPath, delete t._removeMirroring;
    }, t.save = function() {
      e.save(), this.__originalSave();
    }, t.restore = function() {
      e.restore(), this.__originalRestore();
    }, t.translate = function(n, s) {
      e.translate(n, s), this.__originalTranslate(n, s);
    }, t.scale = function(n, s) {
      e.scale(n, s), this.__originalScale(n, s);
    }, t.transform = function(n, s, i, a, r, o) {
      e.transform(n, s, i, a, r, o), this.__originalTransform(n, s, i, a, r, o);
    }, t.setTransform = function(n, s, i, a, r, o) {
      e.setTransform(n, s, i, a, r, o), this.__originalSetTransform(n, s, i, a, r, o);
    }, t.resetTransform = function() {
      e.resetTransform(), this.__originalResetTransform();
    }, t.rotate = function(n) {
      e.rotate(n), this.__originalRotate(n);
    }, t.clip = function(n) {
      e.clip(n), this.__originalClip(n);
    }, t.moveTo = function(n, s) {
      e.moveTo(n, s), this.__originalMoveTo(n, s);
    }, t.lineTo = function(n, s) {
      e.lineTo(n, s), this.__originalLineTo(n, s);
    }, t.bezierCurveTo = function(n, s, i, a, r, o) {
      e.bezierCurveTo(n, s, i, a, r, o), this.__originalBezierCurveTo(n, s, i, a, r, o);
    }, t.rect = function(n, s, i, a) {
      e.rect(n, s, i, a), this.__originalRect(n, s, i, a);
    }, t.closePath = function() {
      e.closePath(), this.__originalClosePath();
    }, t.beginPath = function() {
      e.beginPath(), this.__originalBeginPath();
    };
  }
  function I0(t, e, n, s, i, a, r, o, l, f) {
    const [c, h, u, d, m, g] = zt(t);
    if (h === 0 && u === 0) {
      const x = r * c + m, y = Math.round(x), j = o * d + g, v = Math.round(j), q = (r + l) * c + m, A = Math.abs(Math.round(q) - y) || 1, C = (o + f) * d + g, S = Math.abs(Math.round(C) - v) || 1;
      return t.setTransform(Math.sign(c), 0, 0, Math.sign(d), y, v), t.drawImage(e, n, s, i, a, 0, 0, A, S), t.setTransform(c, h, u, d, m, g), [A, S];
    }
    if (c === 0 && d === 0) {
      const x = o * u + m, y = Math.round(x), j = r * h + g, v = Math.round(j), q = (o + f) * u + m, A = Math.abs(Math.round(q) - y) || 1, C = (r + l) * h + g, S = Math.abs(Math.round(C) - v) || 1;
      return t.setTransform(0, Math.sign(h), Math.sign(u), 0, y, v), t.drawImage(e, n, s, i, a, 0, 0, S, A), t.setTransform(c, h, u, d, m, g), [S, A];
    }
    t.drawImage(e, n, s, i, a, r, o, l, f);
    const b = Math.hypot(c, h), w = Math.hypot(u, d);
    return [b * l, w * f];
  }
  function zp(t, e) {
    if (e instanceof ImageData) {
      t.putImageData(e, 0, 0);
      return;
    }
    const n = e.height, s = e.width, i = n % ts, a = (n - i) / ts, r = i === 0 ? a : a + 1, o = t.createImageData(s, ts);
    let l = 0, f;
    const c = e.data, h = o.data;
    let u, d, m, g;
    if (e.kind === To.GRAYSCALE_1BPP) {
      const b = c.byteLength, w = new Uint32Array(h.buffer, 0, h.byteLength >> 2), x = w.length, y = s + 7 >> 3, j = 4294967295, v = rn.isLittleEndian ? 4278190080 : 255;
      for (u = 0; u < r; u++) {
        for (m = u < a ? ts : i, f = 0, d = 0; d < m; d++) {
          const q = b - l;
          let A = 0;
          const C = q > y ? s : q * 8 - 7, S = C & -8;
          let I = 0, T = 0;
          for (; A < S; A += 8) T = c[l++], w[f++] = T & 128 ? j : v, w[f++] = T & 64 ? j : v, w[f++] = T & 32 ? j : v, w[f++] = T & 16 ? j : v, w[f++] = T & 8 ? j : v, w[f++] = T & 4 ? j : v, w[f++] = T & 2 ? j : v, w[f++] = T & 1 ? j : v;
          for (; A < C; A++) I === 0 && (T = c[l++], I = 128), w[f++] = T & I ? j : v, I >>= 1;
        }
        for (; f < x; ) w[f++] = 0;
        t.putImageData(o, 0, u * ts);
      }
    } else if (e.kind === To.RGBA_32BPP) {
      for (d = 0, g = s * ts * 4, u = 0; u < a; u++) h.set(c.subarray(l, l + g)), l += g, t.putImageData(o, 0, d), d += ts;
      u < r && (g = s * i * 4, h.set(c.subarray(l, l + g)), t.putImageData(o, 0, d));
    } else if (e.kind === To.RGB_24BPP) for (m = ts, g = s * m, u = 0; u < r; u++) {
      for (u >= a && (m = i, g = s * m), f = 0, d = g; d--; ) h[f++] = c[l++], h[f++] = c[l++], h[f++] = c[l++], h[f++] = 255;
      t.putImageData(o, 0, u * ts);
    }
    else throw new Error(`bad image kind: ${e.kind}`);
  }
  function Up(t, e) {
    if (e.bitmap) {
      t.drawImage(e.bitmap, 0, 0);
      return;
    }
    const n = e.height, s = e.width, i = n % ts, a = (n - i) / ts, r = i === 0 ? a : a + 1, o = t.createImageData(s, ts);
    let l = 0;
    const f = e.data, c = o.data;
    for (let h = 0; h < r; h++) {
      const u = h < a ? ts : i;
      ({ srcPos: l } = lk({ src: f, srcPos: l, dest: c, width: s, height: u, nonBlackColor: 0 })), t.putImageData(o, 0, h * ts);
    }
  }
  function Ho(t, e) {
    const n = ["strokeStyle", "fillStyle", "fillRule", "globalAlpha", "lineWidth", "lineCap", "lineJoin", "miterLimit", "globalCompositeOperation", "font", "filter"];
    for (const s of n) t[s] !== void 0 && (e[s] = t[s]);
    t.setLineDash !== void 0 && (e.setLineDash(t.getLineDash()), e.lineDashOffset = t.lineDashOffset);
  }
  function T0(t) {
    t.strokeStyle = t.fillStyle = "#000000", t.fillRule = "nonzero", t.globalAlpha = 1, t.lineWidth = 1, t.lineCap = "butt", t.lineJoin = "miter", t.miterLimit = 10, t.globalCompositeOperation = "source-over", t.font = "10px sans-serif", t.setLineDash !== void 0 && (t.setLineDash([]), t.lineDashOffset = 0);
    const { filter: e } = t;
    e !== "none" && e !== "" && (t.filter = "none");
  }
  function Gp(t, e) {
    if (e) return true;
    Ie.singularValueDecompose2dScale(t, gs);
    const n = Math.fround(Ws.pixelRatio * Ea.PDF_TO_CSS_UNITS);
    return gs[0] <= n && gs[1] <= n;
  }
  function pk(t) {
    let e = true, n = s("filename\\*", "i").exec(t);
    if (n) {
      n = n[1];
      let c = o(n);
      return c = unescape(c), c = l(c), c = f(c), a(c);
    }
    if (n = r(t), n) {
      const c = f(n);
      return a(c);
    }
    if (n = s("filename", "i").exec(t), n) {
      n = n[1];
      let c = o(n);
      return c = f(c), a(c);
    }
    function s(c, h) {
      return new RegExp("(?:^|;)\\s*" + c + '\\s*=\\s*([^";\\s][^;\\s]*|"(?:[^"\\\\]|\\\\"?)+"?)', h);
    }
    p(s, "toParamRegExp");
    function i(c, h) {
      if (c) {
        if (!/^[\x00-\xFF]+$/.test(h)) return h;
        try {
          const u = new TextDecoder(c, { fatal: true }), d = m0(h);
          h = u.decode(d), e = false;
        } catch {
        }
      }
      return h;
    }
    p(i, "textdecode");
    function a(c) {
      return e && /[\x80-\xff]/.test(c) && (c = i("utf-8", c), e && (c = i("iso-8859-1", c))), c;
    }
    p(a, "fixupEncoding");
    function r(c) {
      const h = [];
      let u;
      const d = s("filename\\*((?!0\\d)\\d+)(\\*?)", "ig");
      for (; (u = d.exec(c)) !== null; ) {
        let [, g, b, w] = u;
        if (g = parseInt(g, 10), g in h) {
          if (g === 0) break;
          continue;
        }
        h[g] = [b, w];
      }
      const m = [];
      for (let g = 0; g < h.length && g in h; ++g) {
        let [b, w] = h[g];
        w = o(w), b && (w = unescape(w), g === 0 && (w = l(w))), m.push(w);
      }
      return m.join("");
    }
    p(r, "rfc2231getparam");
    function o(c) {
      if (c.startsWith('"')) {
        const h = c.slice(1).split('\\"');
        for (let u = 0; u < h.length; ++u) {
          const d = h[u].indexOf('"');
          d !== -1 && (h[u] = h[u].slice(0, d), h.length = u + 1), h[u] = h[u].replaceAll(/\\(.)/g, "$1");
        }
        c = h.join('"');
      }
      return c;
    }
    p(o, "rfc2616unquote");
    function l(c) {
      const h = c.indexOf("'");
      if (h === -1) return c;
      const u = c.slice(0, h), m = c.slice(h + 1).replace(/^[^']*'/, "");
      return i(u, m);
    }
    p(l, "rfc5987decode");
    function f(c) {
      return !c.startsWith("=?") || /[\x00-\x19\x80-\xff]/.test(c) ? c : c.replaceAll(/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g, function(h, u, d, m) {
        if (d === "q" || d === "Q") return m = m.replaceAll("_", " "), m = m.replaceAll(/=([0-9a-fA-F]{2})/g, function(g, b) {
          return String.fromCharCode(parseInt(b, 16));
        }), i(u, m);
        try {
          m = atob(m);
        } catch {
        }
        return i(u, m);
      });
    }
    return p(f, "rfc2047decode"), "";
  }
  function $p(t, e) {
    const n = new Headers();
    if (!t || !e || typeof e != "object") return n;
    for (const s in e) {
      const i = e[s];
      i !== void 0 && n.append(s, i);
    }
    return n;
  }
  function R0(t) {
    return URL.parse(t)?.origin ?? null;
  }
  function Vp({ responseHeaders: t, isHttp: e, rangeChunkSize: n, disableRange: s }) {
    const i = { contentLength: 0, isRangeSupported: false }, a = parseInt(t.get("Content-Length"), 10);
    return !Number.isInteger(a) || (i.contentLength = a, a <= 2 * n) || s || !e || t.get("Accept-Ranges") !== "bytes" || (t.get("Content-Encoding") || "identity") === "identity" && (i.isRangeSupported = true), i;
  }
  function Kp(t) {
    const e = t.get("Content-Disposition");
    if (e) {
      let n = pk(e);
      if (n.includes("%")) try {
        n = decodeURIComponent(n);
      } catch {
      }
      if (y0(n)) return n;
    }
    return null;
  }
  function _0(t, e) {
    return new Bo(`Unexpected server response (${t}) while retrieving PDF "${e.href}".`, t, t === 404 || t === 0 && e.protocol === "file:");
  }
  function Xp(t, e) {
    if (t !== e) throw new Error(`Expected range response-origin "${t}" to match "${e}".`);
  }
  function Yp(t, e, n, s) {
    return fetch(t, { method: "GET", headers: e, signal: s.signal, mode: "cors", credentials: n ? "include" : "same-origin", redirect: "follow" });
  }
  function Qp(t, e) {
    if (t !== 200 && t !== 206) throw _0(t, e);
  }
  function P0(t) {
    if (t instanceof Uint8Array) return t.buffer;
    if (t instanceof ArrayBuffer) return t;
    throw new Error(`getArrayBuffer - unexpected data: ${t}`);
  }
  function Jp(t) {
    return t instanceof Uint8Array && t.byteLength === t.buffer.byteLength ? t.buffer : new Uint8Array(t).buffer;
  }
  function D0() {
    for (const t of this._requests) t.resolve({ value: void 0, done: true });
    this._requests.length = 0;
  }
  function yk(t) {
    return typeof t != "string" ? t : m0(t).buffer;
  }
  function em(t) {
    const { Readable: e } = process.getBuiltinModule("stream");
    return typeof e.toWeb == "function" ? e.toWeb(t) : process.getBuiltinModule("module").createRequire(import_meta.url)("node-readable-to-web-readable-stream").makeDefaultReadableStreamFromNodeReadable(t);
  }
  function Ik(t) {
    return _o(t) ? mk : Ts ? Ak : jk;
  }
  function im(t = {}) {
    typeof t == "string" || t instanceof URL ? t = { url: t } : (t instanceof ArrayBuffer || ArrayBuffer.isView(t)) && (t = { data: t });
    const e = new Ch(), { docId: n } = e, s = t.url ? z6(t.url) : null, i = t.data ? U6(t.data) : null, a = t.httpHeaders || null, r = t.withCredentials === true, o = t.password ?? null, l = t.range instanceof dh ? t.range : null, f = Number.isInteger(t.rangeChunkSize) && t.rangeChunkSize > 0 ? t.rangeChunkSize : 2 ** 16;
    let c = t.worker instanceof yn ? t.worker : null;
    const h = t.verbosity, u = typeof t.docBaseUrl == "string" && !Ro(t.docBaseUrl) ? t.docBaseUrl : null, d = A0(t.cMapUrl), m = t.cMapPacked !== false, g = A0(t.iccUrl), b = A0(t.standardFontDataUrl), w = A0(t.wasmUrl), x = t.stopAtErrors !== true, y = Number.isInteger(t.maxImageSize) && t.maxImageSize > -1 ? t.maxImageSize : -1, j = t.isEvalSupported !== false, v = typeof t.isOffscreenCanvasSupported == "boolean" ? t.isOffscreenCanvasSupported : !Ts, q = typeof t.isImageDecoderSupported == "boolean" ? t.isImageDecoderSupported : !Ts && (rn.platform.isFirefox || !globalThis.chrome), A = Number.isInteger(t.canvasMaxAreaInBytes) ? t.canvasMaxAreaInBytes : -1, C = typeof t.disableFontFace == "boolean" ? t.disableFontFace : Ts, S = t.fontExtraProperties === true, I = t.enableXfa === true, T = t.ownerDocument || globalThis.document, P = t.disableRange === true, H = t.disableStream === true, G = t.disableAutoFetch === true, Z = t.pdfBug === true, z = t.CanvasFactory || (Ts ? Y6 : $6), O = t.FilterFactory || (Ts ? X6 : V6), N = t.BinaryDataFactory || (Ts ? Q6 : _p), oe = t.enableHWA === true, je = t.enableWebGPU === true, Y = t.useWasm !== false, ye = t.pagesMapper || new Bk(), qe = typeof t.useSystemFonts == "boolean" ? t.useSystemFonts : !Ts && !C, W = typeof t.useWorkerFetch == "boolean" ? t.useWorkerFetch : !!(N === _p && d && m && b && w && _o(d, document.baseURI) && _o(b, document.baseURI) && _o(w, document.baseURI)), K = null;
    d6(h);
    const M = { canvasFactory: new z({ ownerDocument: T, enableHWA: oe }), filterFactory: new O({ docId: n, ownerDocument: T }), binaryDataFactory: W ? null : new N({ cMapUrl: d, standardFontDataUrl: b, wasmUrl: w }) };
    c || (c = yn.create({ verbosity: h, port: mr.workerPort }), e._worker = c);
    const L = { docId: n, apiVersion: "5.6.205", data: i, password: o, disableAutoFetch: G, rangeChunkSize: f, docBaseUrl: u, enableXfa: I, evaluatorOptions: { maxImageSize: y, disableFontFace: C, ignoreErrors: x, isEvalSupported: j, isOffscreenCanvasSupported: v, isImageDecoderSupported: q, canvasMaxAreaInBytes: A, fontExtraProperties: S, useSystemFonts: qe, useWasm: Y, useWorkerFetch: W, cMapUrl: d, cMapPacked: m, iccUrl: g, standardFontDataUrl: b, wasmUrl: w, enableWebGPU: je } }, J = { ownerDocument: T, pdfBug: Z, styleElement: K, enableHWA: oe, loadingParams: { disableAutoFetch: G, enableXfa: I } };
    return c.promise.then(function() {
      if (e.destroyed) throw new Error("Loading aborted");
      if (c.destroyed) throw new Error("Worker was destroyed");
      const ce = c.messageHandler.sendWithPromise("GetDocRequest", L, i ? [i.buffer] : null);
      let le;
      if (!i) if (l) le = new wk({ pdfDataRangeTransport: l, disableRange: P, disableStream: H });
      else if (s) {
        const se = Ik(s);
        le = new se({ url: s, httpHeaders: a, withCredentials: r, rangeChunkSize: f, disableRange: P, disableStream: H });
      } else throw new Error("getDocument - expected either `data`, `range`, or `url` parameter.");
      return ce.then((se) => {
        if (e.destroyed) throw new Error("Loading aborted");
        if (c.destroyed) throw new Error("Worker was destroyed");
        const Te = new Mo(n, se, c.port), _e = new Dk(Te, e, le, J, M, ye);
        e._transport = _e, Te.send("Ready", null);
      });
    }).catch(e._capability.reject), e;
  }
  function om(t) {
    return Math.floor(Math.max(0, Math.min(1, t)) * 255).toString(16).padStart(2, "0");
  }
  function Oo(t) {
    return Math.max(0, Math.min(255, 255 * t));
  }
  function O0(t) {
    return `${(t * 100).toFixed(2)}%`;
  }
  var import_meta, km, p, ym, jm, Ma, qm, na, hi, ll, Dh, On, Mh, $s, Hh, Ha, Oh, dn, Lh, tf, Zt, Rs, Oa, Nh, Am, Sm, Fr, E, Et, zh, fl, Ln, La, nf, Br, Uh, Q, jn, qn, Rr, pt, Rm, rf, Gh, Pm, hl, Mm, Hm, Om, pn, Wh, $h, ul, te, Qt, Vh, _, ae, Rt, tn, ze, Xh, of, Nm, _s, lf, ff, Ft, cf, Fi, sa, uf, Wm, mn, zn, nu, Pr, bf, wf, rg, wn, dg, ru, pg, mg, gg, bg, ou, wg, Hn, xg, Ci, Uo, jt, Rn, xf, kg, yg, cu, qg, hu, ns, Ag, Sg, yf, pi, mi, Sn, Re, Cn, In, jf, vf, uu, du, pu, mu, gu, bu, wu, xu, ku, _t, Cg, Dr, ju, Ig, vu, Tg, kl, Og, Ri, L0, yl, Su, Mr, Gg, jl, Wg, Pn, $g, ut, ks, Af, Cu, Hr, vl, ql, Al, Sl, Cl, Il, Ga, Tl, Tu, wr, Fl, Bl, aa, Eu, Zg, kn, Wa, eb, tb, nb, sb, ib, ab, rb, ob, lb, Fu, fb, cb, hb, ub, Bu, db, pb, Ru, _u, mb, gb, Pi, $a, Ps, wb, xb, If, Tf, Lr, Nr, Hu, Ou, Kn, Mi, Lu, Bb, Ff, gi, zr, Bf, Rf, Ks, Rb, _b, _f, Mb, Pf, Ka, Ds, Nu, Lb, Gu, zb, Ub, Gb, Wb, _l, Pl, Xa, $b, Df, Wu, $u, Mf, Oi, Vu, Vb, Go, Kb, Wo, Hf, Gr, Xb, Yb, Ku, $o, Wr, Qb, Of, Lf, Nf, Xu, Jb, Zb, $r, ys, zf, sw, el, iw, aw, rw, ow, lw, fw, Ml, Hl, Zu, Vr, Kr, cw, Xr, Ol, hw, uw, dw, pw, Wf, mw, tl, yh, gw, jh, vh, ed, td, Vo, Gn, xw, nd, kw, ad, qw, bi, fa, Aw, Sw, Tw, md, gd, Xn, Nw, Qr, zw, Uw, bd, Yi, $w, Vw, Kw, Xw, Yw, Qw, Jw, Zw, ex, tx, nx, sx, ix, ax, rx, ox, lx, Jr, Zr, eo, to, no, so, io, ao, fx, cx, hx, ux, dx, px, mx, gx, bx, wx, xx, kx, yx, jx, vx, qx, Ax, Cx, Mn, ws, Ix, ha, yd, jd, Tx, vd, Ex, Fx, Bx, xr, qd, Ad, N0, Rx, Qa, _x, ua, Jf, Px, Sd, Cd, Id, Lx, Nx, zx, Li, mt, vs, da, pa, ma, ro, Wx, _d, qs, Ys, Vx, Qi, Kx, Pd, Xx, Dd, nl, qr, nc, zl, Yx, Hd, Ji, Qx, Jx, Zi, t2, n2, Od, ga, oo, ac, Yn, Nd, lo, Ul, i2, zd, cs, ea, a2, Gl, Ud, r2, Wl, Pa, kr, $l, ba, Mt, Ni, As, Za, Vl, Ms, Js, ee, Ss, er, V, vt, fo, oc, Wd, wa, Kl, co, ho, lc, Tn, uo, gn, tr, wi, Wt, Ue, $t, qt, po, nr, fc, Xl, cc, xa, sr, zi, mo, xi, ki, go, bo, f2, Vt, dt, ka, Zs, hc, yi, ei, Qn, ir, Ui, $d, wo, ji, uc, Vd, Jn, Hs, nn, Kd, Pe, xo, ft, xt, Os, Kt, c2, h2, Ee, p2, g2, Yd, b2, w2, Qd, x2, hs, Jd, k2, Zl, ya, ar, Xe, pc, Wi, mc, e1, gc, t1, bc, ko, e0, Cs, yo, jo, wc, xc, n1, X, R, kc, ri, Ht, kt, Ze, Ns, sn, s1, i1, he, va, s0, q2, A2, S2, C2, I2, T2, y1, E2, F2, B2, R2, Sc, _2, P2, j1, D2, v1, q1, M2, H2, O2, L2, N2, A1, S1, z2, U2, G2, Cc, C1, W2, $2, V2, K2, X2, Y2, Q2, J2, I1, qo, Z2, e9, t9, n9, s9, i9, a9, r9, o9, l9, T1, f9, c9, Ic, h9, u9, d9, p9, m9, g9, b9, E1, w9, x9, k9, Tc, y9, j9, v9, q9, A9, S9, C9, I9, T9, E9, F9, B9, R9, _9, F1, or, Ko, P9, D9, M9, H9, O9, L9, N9, z9, B1, U9, G9, Ec, W9, $9, V9, K9, X9, Y9, R1, Fc, Q9, J9, Z9, Bc, _1, P1, e3, t3, n3, s3, i3, Rc, a3, _c, r3, z0, D1, o3, l3, re, f3, c3, h3, u3, d3, p3, m3, g3, b3, w3, x3, k3, y3, j3, v3, q3, A3, S3, C3, I3, T3, E3, F3, B3, R3, _3, P3, D3, M3, H3, O3, L3, N3, z3, U3, G3, W3, $3, V3, K3, X3, Y3, Q3, J3, Z3, e5, t5, n5, s5, i5, a5, r5, o5, l5, f5, c5, h5, u5, d5, p5, m5, g5, b5, w5, x5, k5, y5, j5, v5, q5, A5, S5, C5, I5, T5, E5, F5, B5, R5, _5, P5, D5, M5, H5, O5, L5, N5, z5, U5, G5, W5, $5, V5, K5, X5, Y5, Q5, J5, Z5, e4, t4, n4, s4, i4, a4, r4, o4, l4, f4, c4, h4, u4, d4, p4, m4, g4, b4, w4, x4, k4, y4, j4, v4, q4, A4, S4, C4, I4, T4, E4, F4, B4, R4, _4, P4, D4, M4, H4, O4, U0, Is, L4, N4, z4, U4, G4, W4, $4, V4, K4, X4, Y4, Q4, G0, Pc, J4, Z4, W0, Ot, e8, t8, n8, s8, i8, a8, r8, o8, l8, f8, c8, h8, u8, d8, p8, m8, g8, b8, w8, x8, k8, y8, j8, v8, $0, q8, A8, V0, S8, C8, K0, I8, T8, X0, E8, f0, F8, B8, R8, _8, P8, H8, us, O8, L8, N8, z8, U8, G8, W8, $8, V8, K8, X8, Y8, Q8, Ar, M1, H1, J8, Z8, e7, Y0, Xo, zs, So, t7, Zn, Gs, n7, s7, i7, O1, a7, r7, Mc, Hc, o7, l7, f7, L1, N1, c7, Co, Oc, h7, u7, d7, lr, p7, m7, g7, b7, w7, Sa, x7, de, k7, I7, G1, P7, Ca, D7, Nc, W1, zc, $1, M7, H7, V1, yr, O7, L7, K1, X1, Y1, N7, Q1, J1, Gc, U7, c0, an, ep, e6, t6, n6, s6, i6, a6, r6, o6, l6, f6, c6, h6, ni, u6, Ts, Vc, Kc, ps, vi, Io, et, gt, rp, Ia, cn, To, Yt, fr, Eo, cr, Fo, op, u0, Ta, lp, Jc, p0, Bo, g6, qi, rn, Zc, Ie, eh, fp, hr, g0, b0, w0, Yo, nh, Ai, Ea, Qo, k0, dp, j0, Ws, v0, A6, mp, kp, Jo, S6, St, C6, qh, I6, Po, Ah, Si, oi, q0, Zo, We, T6, qp, Es, ii, Ap, Do, ah, Sp, dr, Cp, Ip, rh, E6, Ep, F6, B6, Q0, Fs, J0, R6, _6, P6, D6, Us, Xi, M6, H6, O6, L6, N6, oh, G6, Fp, W6, S0, on, Mo, Rp, _p, Pp, $6, Dp, V6, X6, Y6, Q6, J6, Z6, lh, Fn, fh, sk, ak, rk, Mp, Sh, Hp, Op, fk, Lp, ts, hh, gs, pr, Np, hk, uk, dk, Wp, jr, E0, F0, B0, mk, gk, bk, wk, xk, kk, uh, Zp, jk, vk, qk, Ak, Sk, Ck, mr, Tk, gr, Ek, Fk, Bk, br, tm, nm, Rk, sm, ss, _k, Ch, dh, Pk, Ih, yn, Dk, Mk, vr, am, rm, bs, sl, lm, Hk, Lo, Ok, Fa, Lk, ph, Ut, Nk, mh, zk, Ba, Uk, Gk, Wk, fm, $k, Vk, gh, Kk, cm, Xk, Yk, Qk, hm, Jk, Zk, bh, um, ey, ty, ny, dm, sy, Z0, M0, bn, Be, _a, pm, wh, iy, xh, ay, Jt, mm, At, ry, No, ef, Th, kh, H0, zo, Ra, Eh, Fh, ai, oy, li, xn, il;
  var init_pdfjs = __esm({
    "node_modules/unpdf/dist/pdfjs.mjs"() {
      import_meta = {};
      km = Object.defineProperty;
      p = (t, e) => km(t, "name", { value: e, configurable: true });
      ym = Object.defineProperty;
      jm = p((t, e, n) => e in t ? ym(t, e, { enumerable: true, configurable: true, writable: true, value: n }) : t[e] = n, "__defNormalProp");
      Ma = p((t, e, n) => jm(t, typeof e != "symbol" ? e + "" : e, n), "__publicField");
      if (p(vm, "polyfillDOMMatrix"), vm(), typeof globalThis.FinalizationRegistry > "u" && (globalThis.FinalizationRegistry = class {
        static {
          p(this, "FinalizationRegistry");
        }
        register() {
        }
        unregister() {
        }
      }), globalThis.navigator ??= {}, globalThis.navigator.platform ??= "", globalThis.navigator.userAgent ??= "", typeof Promise.withResolvers > "u" && (Promise.withResolvers = function() {
        let t, e;
        return { promise: new Promise((s, i) => {
          t = s, e = i;
        }), resolve: t, reject: e };
      }), typeof Promise.try > "u" && (Promise.try = function(t, ...e) {
        return new Promise((n) => n(t(...e)));
      }), typeof Map.prototype.getOrInsertComputed > "u" && Object.defineProperty(Map.prototype, "getOrInsertComputed", { value(t, e) {
        if (this.has(t)) return this.get(t);
        const n = e(t);
        return this.set(t, n), n;
      }, writable: true, configurable: true }), typeof Uint8Array.prototype.toHex > "u" && Object.defineProperty(Uint8Array.prototype, "toHex", { value() {
        let t = "";
        for (let e = 0; e < this.length; e++) t += this[e].toString(16).padStart(2, "0");
        return t;
      }, writable: true, configurable: true }), typeof ReadableStream < "u" && typeof ReadableStream.prototype[Symbol.asyncIterator] > "u") {
        const t = p(function({ preventCancel: e = false } = {}) {
          const n = this.getReader();
          let s = false, i = Promise.resolve();
          const a = p(() => s ? Promise.resolve({ value: void 0, done: true }) : n.read().then((o) => (o.done && (s = true, n.releaseLock()), o), (o) => {
            throw s = true, n.releaseLock(), o;
          }), "next"), r = p((o) => {
            if (s) return Promise.resolve({ value: o, done: true });
            if (s = true, e) return n.releaseLock(), Promise.resolve({ value: o, done: true });
            const l = n.cancel(o);
            return n.releaseLock(), l.then(() => ({ value: o, done: true }));
          }, "doReturn");
          return { next() {
            return i = i.then(a, a);
          }, return(o) {
            return i = i.then(() => r(o), () => r(o));
          }, [Symbol.asyncIterator]() {
            return this;
          } };
        }, "asyncIterator");
        for (const e of [Symbol.asyncIterator, "values"]) Object.defineProperty(ReadableStream.prototype, e, { value: t, writable: true, configurable: true });
      }
      qm = typeof process == "object" && process + "" == "[object process]" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== "browser");
      na = [1e-3, 0, 0, 1e-3, 0, 0];
      hi = 1.35;
      ll = 0.35;
      Dh = ll / hi;
      On = { ANY: 1, DISPLAY: 2, PRINT: 4, SAVE: 8, ANNOTATIONS_FORMS: 16, ANNOTATIONS_DISABLE: 64, IS_EDITING: 128, OPLIST: 256 };
      Mh = "pdfjs_internal_editor_";
      $s = { FREETEXT: 3, HIGHLIGHT: 9, STAMP: 13, INK: 15, SIGNATURE: 101 };
      Hh = { PRINT: 4, MODIFY_CONTENTS: 8, COPY: 16, MODIFY_ANNOTATIONS: 32, FILL_INTERACTIVE_FORMS: 256, COPY_FOR_ACCESSIBILITY: 512, ASSEMBLE: 1024, PRINT_HIGH_QUALITY: 2048 };
      Ha = { TRIANGLES: 1, LATTICE: 2, PATCH: 3 };
      Oh = { FILL: 0, ADD_TO_PATH_FLAG: 4 };
      dn = { GRAYSCALE_1BPP: 1, RGB_24BPP: 2, RGBA_32BPP: 3 };
      Lh = { TEXT: 1, LINK: 2, FREETEXT: 3, LINE: 4, SQUARE: 5, CIRCLE: 6, POLYGON: 7, POLYLINE: 8, HIGHLIGHT: 9, UNDERLINE: 10, SQUIGGLY: 11, STRIKEOUT: 12, STAMP: 13, CARET: 14, INK: 15, POPUP: 16, FILEATTACHMENT: 17, SOUND: 18, MOVIE: 19, WIDGET: 20, SCREEN: 21, PRINTERMARK: 22, TRAPNET: 23, WATERMARK: 24, THREED: 25, REDACT: 26 };
      tf = { GROUP: "Group", REPLY: "R" };
      Zt = { INVISIBLE: 1, HIDDEN: 2, PRINT: 4, NOROTATE: 16, NOVIEW: 32, LOCKED: 128, LOCKEDCONTENTS: 512 };
      Rs = { READONLY: 1, REQUIRED: 2, MULTILINE: 4096, PASSWORD: 8192, RADIO: 32768, PUSHBUTTON: 65536, COMBO: 131072, FILESELECT: 1048576, MULTISELECT: 2097152, DONOTSCROLL: 8388608, COMB: 16777216 };
      Oa = { SOLID: 1, DASHED: 2, BEVELED: 3, INSET: 4, UNDERLINE: 5 };
      Nh = { E: "Mouse Enter", X: "Mouse Exit", D: "Mouse Down", U: "Mouse Up", Fo: "Focus", Bl: "Blur", PO: "PageOpen", PC: "PageClose", PV: "PageVisible", PI: "PageInvisible", K: "Keystroke", F: "Format", V: "Validate", C: "Calculate" };
      Am = { WC: "WillClose", WS: "WillSave", DS: "DidSave", WP: "WillPrint", DP: "DidPrint" };
      Sm = { O: "PageOpen", C: "PageClose" };
      Fr = { WARNINGS: 1, INFOS: 5 };
      E = { dependency: 1, setLineWidth: 2, setLineCap: 3, setLineJoin: 4, setMiterLimit: 5, setDash: 6, setRenderingIntent: 7, setFlatness: 8, setGState: 9, save: 10, restore: 11, transform: 12, moveTo: 13, lineTo: 14, curveTo: 15, curveTo2: 16, curveTo3: 17, closePath: 18, rectangle: 19, stroke: 20, closeStroke: 21, fill: 22, eoFill: 23, fillStroke: 24, eoFillStroke: 25, closeFillStroke: 26, closeEOFillStroke: 27, endPath: 28, clip: 29, eoClip: 30, beginText: 31, endText: 32, setCharSpacing: 33, setWordSpacing: 34, setHScale: 35, setLeading: 36, setFont: 37, setTextRenderingMode: 38, setTextRise: 39, moveText: 40, setLeadingMoveText: 41, setTextMatrix: 42, nextLine: 43, showText: 44, showSpacedText: 45, nextLineShowText: 46, nextLineSetSpacingShowText: 47, setCharWidth: 48, setCharWidthAndBounds: 49, setStrokeColorSpace: 50, setFillColorSpace: 51, setStrokeColor: 52, setStrokeColorN: 53, setFillColor: 54, setFillColorN: 55, setStrokeGray: 56, setFillGray: 57, setStrokeRGBColor: 58, setFillRGBColor: 59, setStrokeCMYKColor: 60, setFillCMYKColor: 61, shadingFill: 62, beginInlineImage: 63, beginImageData: 64, endInlineImage: 65, paintXObject: 66, markPoint: 67, markPointProps: 68, beginMarkedContent: 69, beginMarkedContentProps: 70, endMarkedContent: 71, beginCompat: 72, endCompat: 73, paintFormXObjectBegin: 74, paintFormXObjectEnd: 75, beginGroup: 76, endGroup: 77, beginAnnotation: 80, endAnnotation: 81, paintImageMaskXObject: 83, paintImageMaskXObjectGroup: 84, paintImageXObject: 85, paintInlineImageXObject: 86, paintInlineImageXObjectGroup: 87, paintImageXObjectRepeat: 88, paintImageMaskXObjectRepeat: 89, paintSolidColorImageMask: 90, constructPath: 91, setStrokeTransparent: 92, setFillTransparent: 93, rawFillPath: 94 };
      Et = { moveTo: 0, lineTo: 1, curveTo: 2, quadraticCurveTo: 3, closePath: 4 };
      zh = { NEED_PASSWORD: 1, INCORRECT_PASSWORD: 2 };
      fl = Fr.WARNINGS;
      p(Cm, "setVerbosityLevel$1");
      p(Im, "getVerbosityLevel$1");
      p(Ke, "info$1");
      p(F, "warn$1");
      p(Ye, "unreachable$1");
      p(Bt, "assert$1");
      p(Tm, "_isValidProtocol$1");
      p(cl, "createValidAbsoluteUrl$1");
      p(Em, "stripPath$1");
      p(fe, "shadow$1");
      Ln = p(function() {
        function e(n, s) {
          this.message = n, this.name = s;
        }
        return p(e, "BaseException"), e.prototype = new Error(), e.constructor = e, e;
      }, "BaseExceptionClosure")();
      La = class extends Ln {
        static {
          p(this, "PasswordException");
        }
        constructor(e, n) {
          super(e, "PasswordException"), this.code = n;
        }
      };
      nf = class extends Ln {
        static {
          p(this, "UnknownErrorException");
        }
        constructor(e, n) {
          super(e, "UnknownErrorException"), this.details = n;
        }
      };
      Br = class extends Ln {
        static {
          p(this, "InvalidPDFException");
        }
        constructor(e) {
          super(e, "InvalidPDFException");
        }
      };
      Uh = class extends Ln {
        static {
          p(this, "ResponseException");
        }
        constructor(e, n, s) {
          super(e, "ResponseException"), this.status = n, this.missing = s;
        }
      };
      Q = class extends Ln {
        static {
          p(this, "FormatError");
        }
        constructor(e) {
          super(e, "FormatError");
        }
      };
      jn = class extends Ln {
        static {
          p(this, "AbortException");
        }
        constructor(e) {
          super(e, "AbortException");
        }
      };
      p(Vn, "bytesToString$1");
      p(Bn, "stringToBytes$1");
      p(vn, "string32$1");
      p(sf, "objectSize");
      p(Fm, "isLittleEndian$1");
      p(Bm, "isEvalSupported$1");
      qn = class {
        static {
          p(this, "FeatureTest");
        }
        static get isLittleEndian() {
          return fe(this, "isLittleEndian", Fm());
        }
        static get isEvalSupported() {
          return fe(this, "isEvalSupported", Bm());
        }
        static get isOffscreenCanvasSupported() {
          return fe(this, "isOffscreenCanvasSupported", typeof OffscreenCanvas < "u");
        }
        static get isImageDecoderSupported() {
          return fe(this, "isImageDecoderSupported", typeof ImageDecoder < "u");
        }
        static get isFloat16ArraySupported() {
          return fe(this, "isFloat16ArraySupported", typeof Float16Array < "u");
        }
        static get isSanitizerSupported() {
          return fe(this, "isSanitizerSupported", typeof Sanitizer < "u");
        }
        static get platform() {
          const { platform: e, userAgent: n } = navigator;
          return fe(this, "platform", { isAndroid: n.includes("Android"), isLinux: e.includes("Linux"), isMac: e.includes("Mac"), isWindows: e.includes("Win"), isFirefox: n.includes("Firefox") });
        }
        static get isCSSRoundSupported() {
          return fe(this, "isCSSRoundSupported", globalThis.CSS?.supports?.("width: round(1.5px, 1px)"));
        }
      };
      Rr = Array.from(Array(256).keys(), (t) => t.toString(16).padStart(2, "0"));
      pt = class {
        static {
          p(this, "Util");
        }
        static makeHexColor(e, n, s) {
          return `#${Rr[e]}${Rr[n]}${Rr[s]}`;
        }
        static domMatrixToTransform(e) {
          return [e.a, e.b, e.c, e.d, e.e, e.f];
        }
        static scaleMinMax(e, n) {
          let s;
          e[0] ? (e[0] < 0 && (s = n[0], n[0] = n[2], n[2] = s), n[0] *= e[0], n[2] *= e[0], e[3] < 0 && (s = n[1], n[1] = n[3], n[3] = s), n[1] *= e[3], n[3] *= e[3]) : (s = n[0], n[0] = n[1], n[1] = s, s = n[2], n[2] = n[3], n[3] = s, e[1] < 0 && (s = n[1], n[1] = n[3], n[3] = s), n[1] *= e[1], n[3] *= e[1], e[2] < 0 && (s = n[0], n[0] = n[2], n[2] = s), n[0] *= e[2], n[2] *= e[2]), n[0] += e[4], n[1] += e[5], n[2] += e[4], n[3] += e[5];
        }
        static transform(e, n) {
          return [e[0] * n[0] + e[2] * n[1], e[1] * n[0] + e[3] * n[1], e[0] * n[2] + e[2] * n[3], e[1] * n[2] + e[3] * n[3], e[0] * n[4] + e[2] * n[5] + e[4], e[1] * n[4] + e[3] * n[5] + e[5]];
        }
        static multiplyByDOMMatrix(e, n) {
          return [e[0] * n.a + e[2] * n.b, e[1] * n.a + e[3] * n.b, e[0] * n.c + e[2] * n.d, e[1] * n.c + e[3] * n.d, e[0] * n.e + e[2] * n.f + e[4], e[1] * n.e + e[3] * n.f + e[5]];
        }
        static applyTransform(e, n, s = 0) {
          const i = e[s], a = e[s + 1];
          e[s] = i * n[0] + a * n[2] + n[4], e[s + 1] = i * n[1] + a * n[3] + n[5];
        }
        static applyTransformToBezier(e, n, s = 0) {
          const i = n[0], a = n[1], r = n[2], o = n[3], l = n[4], f = n[5];
          for (let c = 0; c < 6; c += 2) {
            const h = e[s + c], u = e[s + c + 1];
            e[s + c] = h * i + u * r + l, e[s + c + 1] = h * a + u * o + f;
          }
        }
        static applyInverseTransform(e, n) {
          const s = e[0], i = e[1], a = n[0] * n[3] - n[1] * n[2];
          e[0] = (s * n[3] - i * n[2] + n[2] * n[5] - n[4] * n[3]) / a, e[1] = (-s * n[1] + i * n[0] + n[4] * n[1] - n[5] * n[0]) / a;
        }
        static axialAlignedBoundingBox(e, n, s) {
          const i = n[0], a = n[1], r = n[2], o = n[3], l = n[4], f = n[5], c = e[0], h = e[1], u = e[2], d = e[3];
          let m = i * c + l, g = m, b = i * u + l, w = b, x = o * h + f, y = x, j = o * d + f, v = j;
          if (a !== 0 || r !== 0) {
            const q = a * c, A = a * u, C = r * h, S = r * d;
            m += C, w += C, b += S, g += S, x += q, v += q, j += A, y += A;
          }
          s[0] = Math.min(s[0], m, b, g, w), s[1] = Math.min(s[1], x, j, y, v), s[2] = Math.max(s[2], m, b, g, w), s[3] = Math.max(s[3], x, j, y, v);
        }
        static inverseTransform(e) {
          const n = e[0] * e[3] - e[1] * e[2];
          return [e[3] / n, -e[1] / n, -e[2] / n, e[0] / n, (e[2] * e[5] - e[4] * e[3]) / n, (e[4] * e[1] - e[5] * e[0]) / n];
        }
        static singularValueDecompose2dScale(e, n) {
          const s = e[0], i = e[1], a = e[2], r = e[3], o = s ** 2 + i ** 2, l = s * a + i * r, f = a ** 2 + r ** 2, c = (o + f) / 2, h = Math.sqrt(c ** 2 - (o * f - l ** 2));
          n[0] = Math.sqrt(c + h || 1), n[1] = Math.sqrt(c - h || 1);
        }
        static normalizeRect(e) {
          const n = e.slice(0);
          return e[0] > e[2] && (n[0] = e[2], n[2] = e[0]), e[1] > e[3] && (n[1] = e[3], n[3] = e[1]), n;
        }
        static intersect(e, n) {
          const s = Math.max(Math.min(e[0], e[2]), Math.min(n[0], n[2])), i = Math.min(Math.max(e[0], e[2]), Math.max(n[0], n[2]));
          if (s > i) return null;
          const a = Math.max(Math.min(e[1], e[3]), Math.min(n[1], n[3])), r = Math.min(Math.max(e[1], e[3]), Math.max(n[1], n[3]));
          return a > r ? null : [s, a, i, r];
        }
        static pointBoundingBox(e, n, s) {
          s[0] = Math.min(s[0], e), s[1] = Math.min(s[1], n), s[2] = Math.max(s[2], e), s[3] = Math.max(s[3], n);
        }
        static rectBoundingBox(e, n, s, i, a) {
          a[0] = Math.min(a[0], e, s), a[1] = Math.min(a[1], n, i), a[2] = Math.max(a[2], e, s), a[3] = Math.max(a[3], n, i);
        }
        static #e(e, n, s, i, a, r, o, l, f, c) {
          if (f <= 0 || f >= 1) return;
          const h = 1 - f, u = f * f, d = u * f, m = h * (h * (h * e + 3 * f * n) + 3 * u * s) + d * i, g = h * (h * (h * a + 3 * f * r) + 3 * u * o) + d * l;
          c[0] = Math.min(c[0], m), c[1] = Math.min(c[1], g), c[2] = Math.max(c[2], m), c[3] = Math.max(c[3], g);
        }
        static #t(e, n, s, i, a, r, o, l, f, c, h, u) {
          if (Math.abs(f) < 1e-12) {
            Math.abs(c) >= 1e-12 && this.#e(e, n, s, i, a, r, o, l, -h / c, u);
            return;
          }
          const d = c ** 2 - 4 * h * f;
          if (d < 0) return;
          const m = Math.sqrt(d), g = 2 * f;
          this.#e(e, n, s, i, a, r, o, l, (-c + m) / g, u), this.#e(e, n, s, i, a, r, o, l, (-c - m) / g, u);
        }
        static bezierBoundingBox(e, n, s, i, a, r, o, l, f) {
          f[0] = Math.min(f[0], e, o), f[1] = Math.min(f[1], n, l), f[2] = Math.max(f[2], e, o), f[3] = Math.max(f[3], n, l), this.#t(e, s, a, o, n, i, r, l, 3 * (-e + 3 * (s - a) + o), 6 * (e - 2 * s + a), 3 * (s - e), f), this.#t(e, s, a, o, n, i, r, l, 3 * (-n + 3 * (i - r) + l), 6 * (n - 2 * i + r), 3 * (i - n), f);
        }
      };
      Rm = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 728, 711, 710, 729, 733, 731, 730, 732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8226, 8224, 8225, 8230, 8212, 8211, 402, 8260, 8249, 8250, 8722, 8240, 8222, 8220, 8221, 8216, 8217, 8218, 8482, 64257, 64258, 321, 338, 352, 376, 381, 305, 322, 339, 353, 382, 0, 8364];
      p(Je, "stringToPDFString");
      p(Na, "stringToUTF8String$1");
      p(af, "utf8StringToString");
      p(_r, "isArrayEqual");
      p(Ei, "getModificationDate");
      rf = null;
      Gh = null;
      p(_m, "normalizeUnicode$1");
      Pm = "pdfjs_internal_id_";
      p(Dm, "_isValidExplicitDest$1");
      hl = p(() => [], "makeArr$1");
      Mm = p(() => /* @__PURE__ */ new Map(), "makeMap$1");
      Hm = p(() => /* @__PURE__ */ Object.create(null), "makeObj$1");
      p(en, "MathClamp$1"), typeof Math.sumPrecise != "function" && (Math.sumPrecise = function(t) {
        return t.reduce((e, n) => e + n, 0);
      });
      Om = /* @__PURE__ */ Symbol("CIRCULAR_REF");
      pn = /* @__PURE__ */ Symbol("EOF");
      Wh = /* @__PURE__ */ Object.create(null);
      $h = /* @__PURE__ */ Object.create(null);
      ul = /* @__PURE__ */ Object.create(null);
      p(Lm, "clearPrimitiveCaches");
      te = class _te {
        static {
          p(this, "Name");
        }
        constructor(e) {
          this.name = e;
        }
        static get(e) {
          return $h[e] ||= new _te(e);
        }
      };
      Qt = class _Qt {
        static {
          p(this, "Cmd");
        }
        constructor(e) {
          this.cmd = e;
        }
        static get(e) {
          return Wh[e] ||= new _Qt(e);
        }
      };
      Vh = p(function() {
        return Vh;
      }, "nonSerializableClosure");
      _ = class __ {
        static {
          p(this, "Dict");
        }
        __nonSerializable__ = Vh;
        #e = /* @__PURE__ */ new Map();
        objId = null;
        suppressEncryption = false;
        xref;
        constructor(e = null) {
          this.xref = e;
        }
        assignXref(e) {
          this.xref = e;
        }
        get size() {
          return this.#e.size;
        }
        #t(e, n, s, i) {
          let a = this.#e.get(n);
          return a === void 0 && s !== void 0 && (a = this.#e.get(s), a === void 0 && i !== void 0 && (a = this.#e.get(i))), a instanceof ae && this.xref ? e ? this.xref.fetchAsync(a, this.suppressEncryption) : this.xref.fetch(a, this.suppressEncryption) : a;
        }
        get(e, n, s) {
          return this.#t(false, e, n, s);
        }
        async getAsync(e, n, s) {
          return this.#t(true, e, n, s);
        }
        getArray(e, n, s) {
          let i = this.#t(false, e, n, s);
          if (Array.isArray(i)) {
            i = i.slice();
            for (let a = 0, r = i.length; a < r; a++) i[a] instanceof ae && this.xref && (i[a] = this.xref.fetch(i[a], this.suppressEncryption));
          }
          return i;
        }
        getRaw(e) {
          return this.#e.get(e);
        }
        getKeys() {
          return this.#e.keys();
        }
        getRawValues() {
          return this.#e.values();
        }
        getRawEntries() {
          return this.#e.entries();
        }
        set(e, n) {
          this.#e.set(e, n);
        }
        setIfNotExists(e, n) {
          this.has(e) || this.set(e, n);
        }
        setIfNumber(e, n) {
          typeof n == "number" && this.set(e, n);
        }
        setIfArray(e, n) {
          (Array.isArray(n) || ArrayBuffer.isView(n)) && this.set(e, n);
        }
        setIfDefined(e, n) {
          n != null && this.set(e, n);
        }
        setIfName(e, n) {
          typeof n == "string" ? this.set(e, te.get(n)) : n instanceof te && this.set(e, n);
        }
        setIfDict(e, n) {
          n instanceof __ && this.set(e, n);
        }
        has(e) {
          return this.#e.has(e);
        }
        *[Symbol.iterator]() {
          for (const [e, n] of this.#e) yield [e, n instanceof ae && this.xref ? this.xref.fetch(n, this.suppressEncryption) : n];
        }
        static get empty() {
          const e = new __(null);
          return e.set = (n, s) => {
            Ye("Should not call `set` on the empty dictionary.");
          }, fe(this, "empty", e);
        }
        static merge({ xref: e, dictArray: n, mergeSubDicts: s = false }) {
          const i = new __(e), a = /* @__PURE__ */ new Map();
          for (const r of n) if (r instanceof __) for (const [o, l] of r.getRawEntries()) {
            let f = a.get(o);
            if (f === void 0) f = [], a.set(o, f);
            else if (!s || !(l instanceof __)) continue;
            f.push(l);
          }
          for (const [r, o] of a) {
            if (o.length === 1 || !(o[0] instanceof __)) {
              i.set(r, o[0]);
              continue;
            }
            const l = new __(e);
            for (const f of o) for (const [c, h] of f.getRawEntries()) l.setIfNotExists(c, h);
            l.size > 0 && i.set(r, l);
          }
          return a.clear(), i.size > 0 ? i : __.empty;
        }
        clone() {
          const e = new __(this.xref);
          for (const [n, s] of this.#e) e.set(n, s);
          return e;
        }
        delete(e) {
          this.#e.delete(e);
        }
      };
      ae = class _ae {
        static {
          p(this, "Ref");
        }
        constructor(e, n) {
          this.num = e, this.gen = n;
        }
        toString() {
          return this.gen === 0 ? `${this.num}R` : `${this.num}R${this.gen}`;
        }
        static fromString(e) {
          const n = ul[e];
          if (n) return n;
          const s = /^(\d+)R(\d*)$/.exec(e);
          return !s || s[1] === "0" ? null : ul[e] = new _ae(parseInt(s[1]), s[2] ? parseInt(s[2]) : 0);
        }
        static get(e, n) {
          const s = n === 0 ? `${e}R` : `${e}R${n}`;
          return ul[s] ||= new _ae(e, n);
        }
      };
      Rt = class {
        static {
          p(this, "RefSet");
        }
        constructor(e = null) {
          this._set = new Set(e?._set);
        }
        has(e) {
          return this._set.has(e.toString());
        }
        put(e) {
          this._set.add(e.toString());
        }
        remove(e) {
          this._set.delete(e.toString());
        }
        [Symbol.iterator]() {
          return this._set.values();
        }
        clear() {
          this._set.clear();
        }
      };
      tn = class {
        static {
          p(this, "RefSetCache");
        }
        _map = /* @__PURE__ */ new Map();
        get size() {
          return this._map.size;
        }
        get(e) {
          return this._map.get(e.toString());
        }
        has(e) {
          return this._map.has(e.toString());
        }
        put(e, n) {
          this._map.set(e.toString(), n);
        }
        putAlias(e, n) {
          this._map.set(e.toString(), this.get(n));
        }
        [Symbol.iterator]() {
          return this._map.values();
        }
        clear() {
          this._map.clear();
        }
        *values() {
          yield* this._map.values();
        }
        *items() {
          for (const [e, n] of this._map) yield [ae.fromString(e), n];
        }
        *keys() {
          for (const e of this._map.keys()) yield ae.fromString(e);
        }
      };
      p(ot, "isName");
      p(fn, "isCmd");
      p(Kh, "isDict");
      p(dl, "isRefsEqual");
      ze = class {
        static {
          p(this, "BaseStream");
        }
        get length() {
          Ye("Abstract getter `length` accessed");
        }
        get isEmpty() {
          Ye("Abstract getter `isEmpty` accessed");
        }
        get isDataLoaded() {
          return fe(this, "isDataLoaded", true);
        }
        getByte() {
          Ye("Abstract method `getByte` called");
        }
        getBytes(e) {
          Ye("Abstract method `getBytes` called");
        }
        async getImageData(e, n) {
          return this.getBytes(e, n);
        }
        async asyncGetBytes() {
          Ye("Abstract method `asyncGetBytes` called");
        }
        get isAsync() {
          return false;
        }
        get isAsyncDecoder() {
          return false;
        }
        get isImageStream() {
          return false;
        }
        get canAsyncDecodeImageFromBuffer() {
          return false;
        }
        async getTransferableImage() {
          return null;
        }
        peekByte() {
          const e = this.getByte();
          return e !== -1 && this.pos--, e;
        }
        peekBytes(e) {
          const n = this.getBytes(e);
          return this.pos -= n.length, n;
        }
        getUint16() {
          const e = this.getByte(), n = this.getByte();
          return e === -1 || n === -1 ? -1 : (e << 8) + n;
        }
        getInt32() {
          const e = this.getByte(), n = this.getByte(), s = this.getByte(), i = this.getByte();
          return (e << 24) + (n << 16) + (s << 8) + i;
        }
        getByteRange(e, n) {
          Ye("Abstract method `getByteRange` called");
        }
        getString(e) {
          return Vn(this.getBytes(e));
        }
        skip(e) {
          this.pos += e || 1;
        }
        reset() {
          Ye("Abstract method `reset` called");
        }
        moveStart() {
          Ye("Abstract method `moveStart` called");
        }
        makeSubStream(e, n, s = null) {
          Ye("Abstract method `makeSubStream` called");
        }
        getBaseStreams() {
          return null;
        }
        getOriginalStream() {
          return this.stream?.getOriginalStream() || this;
        }
      };
      Xh = /^[1-9]\.\d$/;
      of = 2 ** 31 - 1;
      Nm = -2147483648;
      _s = [1, 0, 0, 1, 0, 0];
      lf = ["ColorSpace", "ExtGState", "Font", "Pattern", "Properties", "Shading", "XObject"];
      ff = ["ExtGState", "Font", "Properties", "XObject"];
      p(Dt, "getLookupTableFactory");
      Ft = class extends Ln {
        static {
          p(this, "MissingDataException");
        }
        constructor(e, n) {
          super(`Missing data [${e}, ${n})`, "MissingDataException"), this.begin = e, this.end = n;
        }
      };
      cf = class extends Ln {
        static {
          p(this, "ParserEOFException");
        }
        constructor(e) {
          super(e, "ParserEOFException");
        }
      };
      Fi = class extends Ln {
        static {
          p(this, "XRefEntryException");
        }
        constructor(e) {
          super(e, "XRefEntryException");
        }
      };
      sa = class extends Ln {
        static {
          p(this, "XRefParseException");
        }
        constructor(e) {
          super(e, "XRefParseException");
        }
      };
      p(Yh, "arrayBuffersToBytes");
      p(Qh, "fetchBinaryData");
      p(os, "getInheritableProperty");
      p(zm, "getParentToUpdate");
      p(hf, "deepCompare");
      uf = ["", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM", "", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC", "", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"];
      p(Um, "toRomanNumerals");
      p(df, "log2");
      p(Vs, "readInt8");
      p(ui, "readInt16");
      p(nt, "readUint16");
      p(yt, "readUint32");
      p(ls, "isWhiteSpace");
      p(Gm, "isBooleanArray");
      p(Nn, "isNumberArray");
      p(Bi, "lookupMatrix");
      p(pl, "lookupRect");
      p(di, "lookupNormalRect");
      p(Jh, "parseXFAPath");
      p(pf, "escapePDFName");
      p(za, "escapeString");
      p(ml, "_collectJS");
      p(gl, "collectActions");
      Wm = { 60: "&lt;", 62: "&gt;", 38: "&amp;", 34: "&quot;", 39: "&apos;" };
      p($m, "codePointIter");
      p(Ua, "encodeToXmlString");
      p(mf, "validateFontName");
      p(Vm, "validateCSSFont");
      p(Zh, "recoverJsURL");
      p(it, "numberToString");
      p(gf, "getNewAnnotationsMap");
      p(An, "stringToAsciiOrUTF16BE");
      p(Km, "isAscii");
      p(Xm, "stringToUTF16HexString");
      p(eu, "stringToUTF16String");
      p(bl, "getRotationMatrix");
      p(tu, "getSizeInBytes");
      mn = class {
        static {
          p(this, "QCMS");
        }
        static #e = null;
        static _memory = null;
        static _mustAddAlpha = false;
        static _destBuffer = null;
        static _destOffset = 0;
        static _destLength = 0;
        static _cssColor = "";
        static _makeHexColor = null;
        static get _memoryArray() {
          const e = this.#e;
          return e?.byteLength ? e : this.#e = new Uint8Array(this._memory.buffer);
        }
      };
      p(Ym, "copy_result");
      p(Qm, "copy_rgb");
      p(Jm, "make_cssRGB");
      nu = typeof TextDecoder < "u" ? new TextDecoder("utf-8", { ignoreBOM: true, fatal: true }) : { decode: p(() => {
        throw Error("TextDecoder not available");
      }, "decode") };
      typeof TextDecoder < "u" && nu.decode();
      Pr = null;
      p(su, "getUint8ArrayMemory0");
      p(Zm, "getStringFromWasm0");
      bf = 0;
      p(iu, "passArray8ToWasm0");
      p(eg, "qcms_convert_array");
      p(tg, "qcms_convert_one");
      p(ng, "qcms_convert_three");
      p(sg, "qcms_convert_four");
      p(ig, "qcms_transformer_from_memory");
      p(ag, "qcms_drop_transformer");
      wf = Object.freeze({ RGB8: 0, 0: "RGB8", RGBA8: 1, 1: "RGBA8", BGRA8: 2, 2: "BGRA8", Gray8: 3, 3: "Gray8", GrayA8: 4, 4: "GrayA8", CMYK: 5, 5: "CMYK" });
      rg = Object.freeze({ Perceptual: 0, 0: "Perceptual", RelativeColorimetric: 1, 1: "RelativeColorimetric", Saturation: 2, 2: "Saturation", AbsoluteColorimetric: 3, 3: "AbsoluteColorimetric" });
      p(og, "__wbg_get_imports");
      p(lg, "__wbg_finalize_init");
      p(fg, "initSync");
      p(cg, "resizeRgbImage");
      p(hg, "resizeRgbaImage");
      p(ug, "copyRgbaImage");
      p(au, "isDefaultDecodeHelper");
      wn = class _wn {
        static {
          p(this, "ColorSpace");
        }
        static #e = new Uint8ClampedArray(3);
        constructor(e, n) {
          this.name = e, this.numComps = n;
        }
        getRgb(e, n, s = new Uint8ClampedArray(3)) {
          return this.getRgbItem(e, n, s, 0), s;
        }
        getRgbHex(e, n) {
          const s = this.getRgb(e, n, _wn.#e);
          return pt.makeHexColor(s[0], s[1], s[2]);
        }
        getRgbItem(e, n, s, i) {
          Ye("Should not call ColorSpace.getRgbItem");
        }
        getRgbBuffer(e, n, s, i, a, r, o) {
          Ye("Should not call ColorSpace.getRgbBuffer");
        }
        getOutputLength(e, n) {
          Ye("Should not call ColorSpace.getOutputLength");
        }
        isPassthrough(e) {
          return false;
        }
        isDefaultDecode(e, n) {
          return _wn.isDefaultDecode(e, this.numComps);
        }
        fillRgb(e, n, s, i, a, r, o, l, f) {
          const c = n * s;
          let h = null;
          const u = 1 << o, d = s !== a || n !== i;
          if (this.isPassthrough(o)) h = l;
          else if (this.numComps === 1 && c > u && this.name !== "DeviceGray" && this.name !== "DeviceRGB") {
            const m = o <= 8 ? new Uint8Array(u) : new Uint16Array(u);
            for (let b = 0; b < u; b++) m[b] = b;
            const g = new Uint8ClampedArray(u * 3);
            if (this.getRgbBuffer(m, 0, u, g, 0, o, 0), d) {
              h = new Uint8Array(c * 3);
              let b = 0;
              for (let w = 0; w < c; ++w) {
                const x = l[w] * 3;
                h[b++] = g[x], h[b++] = g[x + 1], h[b++] = g[x + 2];
              }
            } else {
              let b = 0;
              for (let w = 0; w < c; ++w) {
                const x = l[w] * 3;
                e[b++] = g[x], e[b++] = g[x + 1], e[b++] = g[x + 2], b += f;
              }
            }
          } else d ? (h = new Uint8ClampedArray(c * 3), this.getRgbBuffer(l, 0, c, h, 0, o, 0)) : this.getRgbBuffer(l, 0, i * r, e, 0, o, f);
          if (h) if (d) cg(h, e, n, s, i, a, f);
          else {
            let m = 0, g = 0;
            for (let b = 0, w = i * r; b < w; b++) e[m++] = h[g++], e[m++] = h[g++], e[m++] = h[g++], m += f;
          }
        }
        get usesZeroToOneRange() {
          return fe(this, "usesZeroToOneRange", true);
        }
        static isDefaultDecode(e, n) {
          if (au(e, n * 2)) return true;
          for (let s = 0, i = e.length; s < i; s += 2) if (e[s] !== 0 || e[s + 1] !== 1) return false;
          return true;
        }
      };
      dg = class extends wn {
        static {
          p(this, "AlternateCS");
        }
        constructor(e, n, s) {
          super("Alternate", e), this.base = n, this.tintFn = s, this.tmpBuf = new Float32Array(n.numComps);
        }
        getRgbItem(e, n, s, i) {
          const a = this.tmpBuf;
          this.tintFn(e, n, a, 0), this.base.getRgbItem(a, 0, s, i);
        }
        getRgbBuffer(e, n, s, i, a, r, o) {
          const l = this.tintFn, f = this.base, c = 1 / ((1 << r) - 1), h = f.numComps, u = f.usesZeroToOneRange, d = (f.isPassthrough(8) || !u) && o === 0;
          let m = d ? a : 0;
          const g = d ? i : new Uint8ClampedArray(h * s), b = this.numComps, w = new Float32Array(b), x = new Float32Array(h);
          let y, j;
          for (y = 0; y < s; y++) {
            for (j = 0; j < b; j++) w[j] = e[n++] * c;
            if (l(w, 0, x, 0), u) for (j = 0; j < h; j++) g[m++] = x[j] * 255;
            else f.getRgbItem(x, 0, g, m), m += h;
          }
          d || f.getRgbBuffer(g, 0, s, i, a, 8, o);
        }
        getOutputLength(e, n) {
          return this.base.getOutputLength(e * this.base.numComps / this.numComps, n);
        }
      };
      ru = class extends wn {
        static {
          p(this, "PatternCS");
        }
        constructor(e) {
          super("Pattern", null), this.base = e;
        }
        isDefaultDecode(e, n) {
          Ye("Should not call PatternCS.isDefaultDecode");
        }
      };
      pg = class extends wn {
        static {
          p(this, "IndexedCS");
        }
        constructor(e, n, s) {
          super("Indexed", 1), this.base = e, this.highVal = n;
          const i = e.numComps * (n + 1);
          if (this.lookup = new Uint8Array(i), s instanceof ze) {
            const a = s.getBytes(i);
            this.lookup.set(a);
          } else if (typeof s == "string") for (let a = 0; a < i; ++a) this.lookup[a] = s.charCodeAt(a) & 255;
          else throw new Q(`IndexedCS - unrecognized lookup table: ${s}`);
        }
        getRgbItem(e, n, s, i) {
          const { base: a, highVal: r, lookup: o } = this, l = en(Math.round(e[n]), 0, r) * a.numComps;
          a.getRgbBuffer(o, l, 1, s, i, 8, 0);
        }
        getRgbBuffer(e, n, s, i, a, r, o) {
          const { base: l, highVal: f, lookup: c } = this, { numComps: h } = l, u = l.getOutputLength(h, o);
          for (let d = 0; d < s; ++d) {
            const m = en(Math.round(e[n++]), 0, f) * h;
            l.getRgbBuffer(c, m, 1, i, a, 8, o), a += u;
          }
        }
        getOutputLength(e, n) {
          return this.base.getOutputLength(e * this.base.numComps, n);
        }
        isDefaultDecode(e, n) {
          return au(e, 2) ? true : !Number.isInteger(n) || n < 1 ? (F("Bits per component is not correct"), true) : e[0] === 0 && e[1] === (1 << n) - 1;
        }
      };
      mg = class extends wn {
        static {
          p(this, "DeviceGrayCS");
        }
        constructor() {
          super("DeviceGray", 1);
        }
        getRgbItem(e, n, s, i) {
          const a = e[n] * 255;
          s[i] = s[i + 1] = s[i + 2] = a;
        }
        getRgbBuffer(e, n, s, i, a, r, o) {
          const l = 255 / ((1 << r) - 1);
          let f = n, c = a;
          for (let h = 0; h < s; ++h) {
            const u = l * e[f++];
            i[c++] = u, i[c++] = u, i[c++] = u, c += o;
          }
        }
        getOutputLength(e, n) {
          return e * (3 + n);
        }
      };
      gg = class extends wn {
        static {
          p(this, "DeviceRgbCS");
        }
        constructor() {
          super("DeviceRGB", 3);
        }
        getRgbItem(e, n, s, i) {
          s[i] = e[n] * 255, s[i + 1] = e[n + 1] * 255, s[i + 2] = e[n + 2] * 255;
        }
        getRgbBuffer(e, n, s, i, a, r, o) {
          if (r === 8 && o === 0) {
            i.set(e.subarray(n, n + s * 3), a);
            return;
          }
          const l = 255 / ((1 << r) - 1);
          let f = n, c = a;
          for (let h = 0; h < s; ++h) i[c++] = l * e[f++], i[c++] = l * e[f++], i[c++] = l * e[f++], c += o;
        }
        getOutputLength(e, n) {
          return e * (3 + n) / 3 | 0;
        }
        isPassthrough(e) {
          return e === 8;
        }
      };
      bg = class extends wn {
        static {
          p(this, "DeviceRgbaCS");
        }
        constructor() {
          super("DeviceRGBA", 4);
        }
        getOutputLength(e, n) {
          return e * 4;
        }
        isPassthrough(e) {
          return e === 8;
        }
        fillRgb(e, n, s, i, a, r, o, l, f) {
          s !== a || n !== i ? hg(l, e, n, s, i, a, f) : ug(l, e, f);
        }
      };
      ou = class extends wn {
        static {
          p(this, "DeviceCmykCS");
        }
        constructor() {
          super("DeviceCMYK", 4);
        }
        #e(e, n, s, i, a) {
          const r = e[n] * s, o = e[n + 1] * s, l = e[n + 2] * s, f = e[n + 3] * s;
          i[a] = 255 + r * (-4.387332384609988 * r + 54.48615194189176 * o + 18.82290502165302 * l + 212.25662451639585 * f + -285.2331026137004) + o * (1.7149763477362134 * o - 5.6096736904047315 * l + -17.873870861415444 * f - 5.497006427196366) + l * (-2.5217340131683033 * l - 21.248923337353073 * f + 17.5119270841813) + f * (-21.86122147463605 * f - 189.48180835922747), i[a + 1] = 255 + r * (8.841041422036149 * r + 60.118027045597366 * o + 6.871425592049007 * l + 31.159100130055922 * f + -79.2970844816548) + o * (-15.310361306967817 * o + 17.575251261109482 * l + 131.35250912493976 * f - 190.9453302588951) + l * (4.444339102852739 * l + 9.8632861493405 * f - 24.86741582555878) + f * (-20.737325471181034 * f - 187.80453709719578), i[a + 2] = 255 + r * (0.8842522430003296 * r + 8.078677503112928 * o + 30.89978309703729 * l - 0.23883238689178934 * f + -14.183576799673286) + o * (10.49593273432072 * o + 63.02378494754052 * l + 50.606957656360734 * f - 112.23884253719248) + l * (0.03296041114873217 * l + 115.60384449646641 * f + -193.58209356861505) + f * (-22.33816807309886 * f - 180.12613974708367);
        }
        getRgbItem(e, n, s, i) {
          this.#e(e, n, 1, s, i);
        }
        getRgbBuffer(e, n, s, i, a, r, o) {
          const l = 1 / ((1 << r) - 1);
          for (let f = 0; f < s; f++) this.#e(e, n, l, i, a), n += 4, a += 3 + o;
        }
        getOutputLength(e, n) {
          return e / 4 * (3 + n) | 0;
        }
      };
      wg = class extends wn {
        static {
          p(this, "CalGrayCS");
        }
        constructor(e, n, s) {
          if (super("CalGray", 1), !e) throw new Q("WhitePoint missing - required for color space CalGray");
          if ([this.XW, this.YW, this.ZW] = e, [this.XB, this.YB, this.ZB] = n || [0, 0, 0], this.G = s || 1, this.XW < 0 || this.ZW < 0 || this.YW !== 1) throw new Q(`Invalid WhitePoint components for ${this.name}, no fallback available`);
          (this.XB < 0 || this.YB < 0 || this.ZB < 0) && (Ke(`Invalid BlackPoint for ${this.name}, falling back to default.`), this.XB = this.YB = this.ZB = 0), (this.XB !== 0 || this.YB !== 0 || this.ZB !== 0) && F(`${this.name}, BlackPoint: XB: ${this.XB}, YB: ${this.YB}, ZB: ${this.ZB}, only default values are supported.`), this.G < 1 && (Ke(`Invalid Gamma: ${this.G} for ${this.name}, falling back to default.`), this.G = 1);
        }
        #e(e, n, s, i, a) {
          const o = (e[n] * a) ** this.G, l = this.YW * o, f = Math.max(295.8 * l ** 0.3333333333333333 - 40.8, 0);
          s[i] = f, s[i + 1] = f, s[i + 2] = f;
        }
        getRgbItem(e, n, s, i) {
          this.#e(e, n, s, i, 1);
        }
        getRgbBuffer(e, n, s, i, a, r, o) {
          const l = 1 / ((1 << r) - 1);
          for (let f = 0; f < s; ++f) this.#e(e, n, i, a, l), n += 1, a += 3 + o;
        }
        getOutputLength(e, n) {
          return e * (3 + n);
        }
      };
      Hn = class _Hn extends wn {
        static {
          p(this, "CalRGBCS");
        }
        static #e = new Float32Array([0.8951, 0.2664, -0.1614, -0.7502, 1.7135, 0.0367, 0.0389, -0.0685, 1.0296]);
        static #t = new Float32Array([0.9869929, -0.1470543, 0.1599627, 0.4323053, 0.5183603, 0.0492912, -85287e-7, 0.0400428, 0.9684867]);
        static #n = new Float32Array([3.2404542, -1.5371385, -0.4985314, -0.969266, 1.8760108, 0.041556, 0.0556434, -0.2040259, 1.0572252]);
        static #s = new Float32Array([1, 1, 1]);
        static #i = new Float32Array(3);
        static #a = new Float32Array(3);
        static #r = new Float32Array(3);
        static #o = (24 / 116) ** 3 / 8;
        constructor(e, n, s, i) {
          if (super("CalRGB", 3), !e) throw new Q("WhitePoint missing - required for color space CalRGB");
          const [a, r, o] = this.whitePoint = e, [l, f, c] = this.blackPoint = n || new Float32Array(3);
          if ([this.GR, this.GG, this.GB] = s || new Float32Array([1, 1, 1]), [this.MXA, this.MYA, this.MZA, this.MXB, this.MYB, this.MZB, this.MXC, this.MYC, this.MZC] = i || new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]), a < 0 || o < 0 || r !== 1) throw new Q(`Invalid WhitePoint components for ${this.name}, no fallback available`);
          (l < 0 || f < 0 || c < 0) && (Ke(`Invalid BlackPoint for ${this.name} [${l}, ${f}, ${c}], falling back to default.`), this.blackPoint = new Float32Array(3)), (this.GR < 0 || this.GG < 0 || this.GB < 0) && (Ke(`Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for ${this.name}, falling back to default.`), this.GR = this.GG = this.GB = 1);
        }
        #l(e, n, s) {
          s[0] = e[0] * n[0] + e[1] * n[1] + e[2] * n[2], s[1] = e[3] * n[0] + e[4] * n[1] + e[5] * n[2], s[2] = e[6] * n[0] + e[7] * n[1] + e[8] * n[2];
        }
        #f(e, n, s) {
          s[0] = n[0] * 1 / e[0], s[1] = n[1] * 1 / e[1], s[2] = n[2] * 1 / e[2];
        }
        #u(e, n, s) {
          s[0] = n[0] * 0.95047 / e[0], s[1] = n[1] * 1 / e[1], s[2] = n[2] * 1.08883 / e[2];
        }
        #c(e) {
          return e <= 31308e-7 ? en(12.92 * e, 0, 1) : e >= 0.99554525 ? 1 : en((1 + 0.055) * e ** (1 / 2.4) - 0.055, 0, 1);
        }
        #d(e) {
          return e < 0 ? -this.#d(-e) : e > 8 ? ((e + 16) / 116) ** 3 : e * _Hn.#o;
        }
        #g(e, n, s) {
          if (e[0] === 0 && e[1] === 0 && e[2] === 0) {
            s[0] = n[0], s[1] = n[1], s[2] = n[2];
            return;
          }
          const i = this.#d(0), a = i, r = this.#d(e[0]), o = i, l = this.#d(e[1]), f = i, c = this.#d(e[2]), h = (1 - a) / (1 - r), u = 1 - h, d = (1 - o) / (1 - l), m = 1 - d, g = (1 - f) / (1 - c), b = 1 - g;
          s[0] = n[0] * h + u, s[1] = n[1] * d + m, s[2] = n[2] * g + b;
        }
        #m(e, n, s) {
          if (e[0] === 1 && e[2] === 1) {
            s[0] = n[0], s[1] = n[1], s[2] = n[2];
            return;
          }
          const i = s;
          this.#l(_Hn.#e, n, i);
          const a = _Hn.#i;
          this.#f(e, i, a), this.#l(_Hn.#t, a, s);
        }
        #h(e, n, s) {
          const i = s;
          this.#l(_Hn.#e, n, i);
          const a = _Hn.#i;
          this.#u(e, i, a), this.#l(_Hn.#t, a, s);
        }
        #p(e, n, s, i, a) {
          const r = en(e[n] * a, 0, 1), o = en(e[n + 1] * a, 0, 1), l = en(e[n + 2] * a, 0, 1), f = r === 1 ? 1 : r ** this.GR, c = o === 1 ? 1 : o ** this.GG, h = l === 1 ? 1 : l ** this.GB, u = this.MXA * f + this.MXB * c + this.MXC * h, d = this.MYA * f + this.MYB * c + this.MYC * h, m = this.MZA * f + this.MZB * c + this.MZC * h, g = _Hn.#a;
          g[0] = u, g[1] = d, g[2] = m;
          const b = _Hn.#r;
          this.#m(this.whitePoint, g, b);
          const w = _Hn.#a;
          this.#g(this.blackPoint, b, w);
          const x = _Hn.#r;
          this.#h(_Hn.#s, w, x);
          const y = _Hn.#a;
          this.#l(_Hn.#n, x, y), s[i] = this.#c(y[0]) * 255, s[i + 1] = this.#c(y[1]) * 255, s[i + 2] = this.#c(y[2]) * 255;
        }
        getRgbItem(e, n, s, i) {
          this.#p(e, n, s, i, 1);
        }
        getRgbBuffer(e, n, s, i, a, r, o) {
          const l = 1 / ((1 << r) - 1);
          for (let f = 0; f < s; ++f) this.#p(e, n, i, a, l), n += 3, a += 3 + o;
        }
        getOutputLength(e, n) {
          return e * (3 + n) / 3 | 0;
        }
      };
      xg = class extends wn {
        static {
          p(this, "LabCS");
        }
        constructor(e, n, s) {
          if (super("Lab", 3), !e) throw new Q("WhitePoint missing - required for color space Lab");
          if ([this.XW, this.YW, this.ZW] = e, [this.amin, this.amax, this.bmin, this.bmax] = s || [-100, 100, -100, 100], [this.XB, this.YB, this.ZB] = n || [0, 0, 0], this.XW < 0 || this.ZW < 0 || this.YW !== 1) throw new Q("Invalid WhitePoint components, no fallback available");
          (this.XB < 0 || this.YB < 0 || this.ZB < 0) && (Ke("Invalid BlackPoint, falling back to default"), this.XB = this.YB = this.ZB = 0), (this.amin > this.amax || this.bmin > this.bmax) && (Ke("Invalid Range, falling back to defaults"), this.amin = -100, this.amax = 100, this.bmin = -100, this.bmax = 100);
        }
        #e(e) {
          return e >= 6 / 29 ? e ** 3 : 108 / 841 * (e - 4 / 29);
        }
        #t(e, n, s, i) {
          return s + e * (i - s) / n;
        }
        #n(e, n, s, i, a) {
          let r = e[n], o = e[n + 1], l = e[n + 2];
          s !== false && (r = this.#t(r, s, 0, 100), o = this.#t(o, s, this.amin, this.amax), l = this.#t(l, s, this.bmin, this.bmax)), o > this.amax ? o = this.amax : o < this.amin && (o = this.amin), l > this.bmax ? l = this.bmax : l < this.bmin && (l = this.bmin);
          const f = (r + 16) / 116, c = f + o / 500, h = f - l / 200, u = this.XW * this.#e(c), d = this.YW * this.#e(f), m = this.ZW * this.#e(h);
          let g, b, w;
          this.ZW < 1 ? (g = u * 3.1339 + d * -1.617 + m * -0.4906, b = u * -0.9785 + d * 1.916 + m * 0.0333, w = u * 0.072 + d * -0.229 + m * 1.4057) : (g = u * 3.2406 + d * -1.5372 + m * -0.4986, b = u * -0.9689 + d * 1.8758 + m * 0.0415, w = u * 0.0557 + d * -0.204 + m * 1.057), i[a] = Math.sqrt(g) * 255, i[a + 1] = Math.sqrt(b) * 255, i[a + 2] = Math.sqrt(w) * 255;
        }
        getRgbItem(e, n, s, i) {
          this.#n(e, n, false, s, i);
        }
        getRgbBuffer(e, n, s, i, a, r, o) {
          const l = (1 << r) - 1;
          for (let f = 0; f < s; f++) this.#n(e, n, l, i, a), n += 3, a += 3 + o;
        }
        getOutputLength(e, n) {
          return e * (3 + n) / 3 | 0;
        }
        isDefaultDecode(e, n) {
          return true;
        }
        get usesZeroToOneRange() {
          return fe(this, "usesZeroToOneRange", false);
        }
      };
      p(lu, "fetchSync");
      Ci = class _Ci extends wn {
        static {
          p(this, "IccColorSpace");
        }
        #e;
        #t;
        static #n = true;
        static #s = null;
        static #i = null;
        constructor(e, n, s) {
          if (!_Ci.isUsable) throw new Error("No ICC color space support");
          super(n, s);
          let i;
          switch (s) {
            case 1:
              i = wf.Gray8, this.#t = (a, r, o) => tg(this.#e, a[r] * 255, o);
              break;
            case 3:
              i = wf.RGB8, this.#t = (a, r, o) => ng(this.#e, a[r] * 255, a[r + 1] * 255, a[r + 2] * 255, o);
              break;
            case 4:
              i = wf.CMYK, this.#t = (a, r, o) => sg(this.#e, a[r] * 255, a[r + 1] * 255, a[r + 2] * 255, a[r + 3] * 255, o);
              break;
            default:
              throw new Error(`Unsupported number of components: ${s}`);
          }
          if (this.#e = ig(e, i, rg.Perceptual), !this.#e) throw new Error("Failed to create ICC color space");
          _Ci.#i ||= new FinalizationRegistry((a) => {
            ag(a);
          }), _Ci.#i.register(this, this.#e);
        }
        getRgbHex(e, n) {
          return this.#t(e, n, true), mn._cssColor;
        }
        getRgbItem(e, n, s, i) {
          mn._destBuffer = s, mn._destOffset = i, mn._destLength = 3, this.#t(e, n, false), mn._destBuffer = null;
        }
        getRgbBuffer(e, n, s, i, a, r, o) {
          if (e = e.subarray(n, n + s * this.numComps), r !== 8) {
            const l = 255 / ((1 << r) - 1);
            for (let f = 0, c = e.length; f < c; f++) e[f] *= l;
          }
          mn._mustAddAlpha = o && i.buffer === e.buffer, mn._destBuffer = i, mn._destOffset = a, mn._destLength = s * (3 + o), eg(this.#e, e), mn._mustAddAlpha = false, mn._destBuffer = null;
        }
        getOutputLength(e, n) {
          return e / this.numComps * (3 + n) | 0;
        }
        static setOptions({ useWasm: e, useWorkerFetch: n, wasmUrl: s }) {
          if (!n) {
            this.#n = false;
            return;
          }
          this.#n = e, this.#s = s;
        }
        static get isUsable() {
          let e = false;
          if (this.#n) if (this.#s) try {
            this._module = fg({ module: lu(`${this.#s}qcms_bg.wasm`) }), e = !!this._module, mn._memory = this._module.memory, mn._makeHexColor = pt.makeHexColor;
          } catch (n) {
            F(`ICCBased color space: "${n}".`);
          }
          else F("No ICC color space support due to missing `wasmUrl` API option");
          return fe(this, "isUsable", e);
        }
      };
      Uo = class _Uo extends Ci {
        static {
          p(this, "CmykICCBasedCS");
        }
        static #e;
        constructor() {
          const e = new Uint8Array(lu(`${_Uo.#e}CGATS001Compat-v2-micro.icc`));
          super(e, "DeviceCMYK", 4);
        }
        static setOptions({ iccUrl: e }) {
          this.#e = e;
        }
        static get isUsable() {
          let e = false;
          return Ci.isUsable && (this.#e ? e = true : F("No CMYK ICC profile support due to missing `iccUrl` API option")), fe(this, "isUsable", e);
        }
      };
      jt = class _jt extends ze {
        static {
          p(this, "Stream");
        }
        constructor(e, n, s, i) {
          super(), this.bytes = e instanceof Uint8Array ? e : new Uint8Array(e), this.start = n || 0, this.pos = this.start, this.end = n + s || this.bytes.length, this.dict = i;
        }
        get length() {
          return this.end - this.start;
        }
        get isEmpty() {
          return this.length === 0;
        }
        getByte() {
          return this.pos >= this.end ? -1 : this.bytes[this.pos++];
        }
        getBytes(e) {
          const n = this.bytes, s = this.pos, i = this.end;
          if (!e) return this.pos = i, n.subarray(s, i);
          let a = s + e;
          return a > i && (a = i), this.pos = a, n.subarray(s, a);
        }
        getByteRange(e, n) {
          return e < 0 && (e = 0), n > this.end && (n = this.end), this.bytes.subarray(e, n);
        }
        reset() {
          this.pos = this.start;
        }
        moveStart() {
          this.start = this.pos;
        }
        makeSubStream(e, n, s = null) {
          return new _jt(this.bytes.buffer, e, n, s);
        }
        clone() {
          return new _jt(this.bytes.buffer, this.start, this.end - this.start, this.dict.clone());
        }
      };
      Rn = class extends jt {
        static {
          p(this, "StringStream");
        }
        constructor(e) {
          super(Bn(e));
        }
      };
      xf = class extends jt {
        static {
          p(this, "NullStream");
        }
        constructor() {
          super(new Uint8Array(0));
        }
      };
      kg = class extends jt {
        static {
          p(this, "ChunkedStream");
        }
        progressiveDataLength = 0;
        _lastSuccessfulEnsureByteChunk = -1;
        _loadedChunks = /* @__PURE__ */ new Set();
        constructor(e, n, s) {
          super(new Uint8Array(e), 0, e, null), this.chunkSize = n, this.numChunks = Math.ceil(e / n), this.manager = s;
        }
        getMissingChunks() {
          const e = [];
          for (let n = 0, s = this.numChunks; n < s; ++n) this._loadedChunks.has(n) || e.push(n);
          return e;
        }
        get numChunksLoaded() {
          return this._loadedChunks.size;
        }
        get isDataLoaded() {
          return this.numChunksLoaded === this.numChunks;
        }
        onReceiveData(e, n) {
          const s = this.chunkSize;
          if (e % s !== 0) throw new Error(`Bad begin offset: ${e}`);
          const i = e + n.byteLength;
          if (i % s !== 0 && i !== this.bytes.length) throw new Error(`Bad end offset: ${i}`);
          this.bytes.set(new Uint8Array(n), e);
          const a = Math.floor(e / s), r = Math.floor((i - 1) / s) + 1;
          for (let o = a; o < r; ++o) this._loadedChunks.add(o);
        }
        onReceiveProgressiveData(e) {
          let n = this.progressiveDataLength;
          const s = Math.floor(n / this.chunkSize);
          this.bytes.set(new Uint8Array(e), n), n += e.byteLength, this.progressiveDataLength = n;
          const i = n >= this.end ? this.numChunks : Math.floor(n / this.chunkSize);
          for (let a = s; a < i; ++a) this._loadedChunks.add(a);
        }
        ensureByte(e) {
          if (e < this.progressiveDataLength) return;
          const n = Math.floor(e / this.chunkSize);
          if (!(n > this.numChunks) && n !== this._lastSuccessfulEnsureByteChunk) {
            if (!this._loadedChunks.has(n)) throw new Ft(e, e + 1);
            this._lastSuccessfulEnsureByteChunk = n;
          }
        }
        ensureRange(e, n) {
          if (e >= n || n <= this.progressiveDataLength) return;
          const s = Math.floor(e / this.chunkSize);
          if (s > this.numChunks) return;
          const i = Math.min(Math.floor((n - 1) / this.chunkSize) + 1, this.numChunks);
          for (let a = s; a < i; ++a) if (!this._loadedChunks.has(a)) throw new Ft(e, n);
        }
        nextEmptyChunk(e) {
          const n = this.numChunks;
          for (let s = 0; s < n; ++s) {
            const i = (e + s) % n;
            if (!this._loadedChunks.has(i)) return i;
          }
          return null;
        }
        hasChunk(e) {
          return this._loadedChunks.has(e);
        }
        getByte() {
          const e = this.pos;
          return e >= this.end ? -1 : (e >= this.progressiveDataLength && this.ensureByte(e), this.bytes[this.pos++]);
        }
        getBytes(e) {
          const n = this.bytes, s = this.pos, i = this.end;
          if (!e) return i > this.progressiveDataLength && this.ensureRange(s, i), n.subarray(s, i);
          let a = s + e;
          return a > i && (a = i), a > this.progressiveDataLength && this.ensureRange(s, a), this.pos = a, n.subarray(s, a);
        }
        getByteRange(e, n) {
          return e < 0 && (e = 0), n > this.end && (n = this.end), n > this.progressiveDataLength && this.ensureRange(e, n), this.bytes.subarray(e, n);
        }
        makeSubStream(e, n, s = null) {
          n ? e + n > this.progressiveDataLength && this.ensureRange(e, e + n) : e >= this.progressiveDataLength && this.ensureByte(e);
          function i() {
          }
          p(i, "ChunkedStreamSubstream"), i.prototype = Object.create(this), i.prototype.getMissingChunks = function() {
            const r = this.chunkSize, o = Math.floor(this.start / r), l = Math.floor((this.end - 1) / r) + 1, f = [];
            for (let c = o; c < l; ++c) this._loadedChunks.has(c) || f.push(c);
            return f;
          }, Object.defineProperty(i.prototype, "isDataLoaded", { get() {
            return this.numChunksLoaded === this.numChunks ? true : this.getMissingChunks().length === 0;
          }, configurable: true });
          const a = new i();
          return a.pos = a.start = e, a.end = e + n || this.end, a.dict = s, a;
        }
        getBaseStreams() {
          return [this];
        }
      };
      yg = class {
        static {
          p(this, "ChunkedStreamManager");
        }
        aborted = false;
        currRequestId = 0;
        _chunksNeededByRequest = /* @__PURE__ */ new Map();
        _loadedStreamCapability = Promise.withResolvers();
        _promisesByRequest = /* @__PURE__ */ new Map();
        _requestsByChunk = /* @__PURE__ */ new Map();
        constructor(e, n) {
          this.length = n.length, this.chunkSize = n.rangeChunkSize, this.stream = new kg(this.length, this.chunkSize, this), this.pdfStream = e, this.disableAutoFetch = n.disableAutoFetch, this.msgHandler = n.msgHandler;
        }
        async sendRequest(e, n) {
          const s = this.pdfStream.getRangeReader(e, n);
          let i = [];
          for (; ; ) {
            const { value: r, done: o } = await s.read();
            if (this.aborted) {
              i = null;
              return;
            }
            if (o) break;
            i.push(r);
          }
          if (i.length === 0 && this.disableAutoFetch) return;
          const a = Yh(i);
          i = null, this.onReceiveData({ chunk: a.buffer, begin: e });
        }
        requestAllChunks(e = false) {
          if (!e) {
            const n = this.stream.getMissingChunks();
            this._requestChunks(n);
          }
          return this._loadedStreamCapability.promise;
        }
        _requestChunks(e) {
          const n = this.currRequestId++, s = /* @__PURE__ */ new Set();
          this._chunksNeededByRequest.set(n, s);
          for (const r of e) this.stream.hasChunk(r) || s.add(r);
          if (s.size === 0) return Promise.resolve();
          const i = Promise.withResolvers();
          this._promisesByRequest.set(n, i);
          const a = [];
          for (const r of s) {
            let o = this._requestsByChunk.get(r);
            o || (o = [], this._requestsByChunk.set(r, o), a.push(r)), o.push(n);
          }
          if (a.length > 0) {
            const r = this.groupChunks(a);
            for (const o of r) {
              const l = o.beginChunk * this.chunkSize, f = Math.min(o.endChunk * this.chunkSize, this.length);
              this.sendRequest(l, f).catch(i.reject);
            }
          }
          return i.promise.catch((r) => {
            if (!this.aborted) throw r;
          });
        }
        getStream() {
          return this.stream;
        }
        requestRange(e, n) {
          n = Math.min(n, this.length);
          const s = this.getBeginChunk(e), i = this.getEndChunk(n), a = [];
          for (let r = s; r < i; ++r) a.push(r);
          return this._requestChunks(a);
        }
        requestRanges(e = []) {
          const n = [];
          for (const s of e) {
            const i = this.getBeginChunk(s.begin), a = this.getEndChunk(s.end);
            for (let r = i; r < a; ++r) n.includes(r) || n.push(r);
          }
          return n.sort((s, i) => s - i), this._requestChunks(n);
        }
        groupChunks(e) {
          const n = [];
          let s = -1, i = -1;
          for (let a = 0, r = e.length; a < r; ++a) {
            const o = e[a];
            s < 0 && (s = o), i >= 0 && i + 1 !== o && (n.push({ beginChunk: s, endChunk: i + 1 }), s = o), a + 1 === e.length && n.push({ beginChunk: s, endChunk: o + 1 }), i = o;
          }
          return n;
        }
        onReceiveData(e) {
          const { chunkSize: n, length: s, stream: i } = this, a = e.chunk, r = e.begin === void 0, o = r ? i.progressiveDataLength : e.begin, l = o + a.byteLength, f = Math.floor(o / n), c = l < s ? Math.floor(l / n) : Math.ceil(l / n);
          r ? i.onReceiveProgressiveData(a) : i.onReceiveData(o, a), i.isDataLoaded && this._loadedStreamCapability.resolve(i);
          const h = [];
          for (let u = f; u < c; ++u) {
            const d = this._requestsByChunk.get(u);
            if (d) {
              this._requestsByChunk.delete(u);
              for (const m of d) {
                const g = this._chunksNeededByRequest.get(m);
                g.has(u) && g.delete(u), !(g.size > 0) && h.push(m);
              }
            }
          }
          if (!this.disableAutoFetch && this._requestsByChunk.size === 0) {
            let u;
            if (i.numChunksLoaded === 1) {
              const d = i.numChunks - 1;
              i.hasChunk(d) || (u = d);
            } else u = i.nextEmptyChunk(c);
            Number.isInteger(u) && this._requestChunks([u]);
          }
          for (const u of h) {
            const d = this._promisesByRequest.get(u);
            this._promisesByRequest.delete(u), d.resolve();
          }
          this.msgHandler.send("DocProgress", { loaded: en(i.numChunksLoaded * n, i.progressiveDataLength, s), total: s });
        }
        onError(e) {
          this._loadedStreamCapability.reject(e);
        }
        getBeginChunk(e) {
          return Math.floor(e / this.chunkSize);
        }
        getEndChunk(e) {
          return Math.floor((e - 1) / this.chunkSize) + 1;
        }
        abort(e) {
          this.aborted = true, this.pdfStream?.cancelAllRequests(e);
          for (const n of this._promisesByRequest.values()) n.reject(e);
        }
      };
      p(fu, "convertToRGBA");
      p(kf, "convertBlackAndWhiteToRGBA$1");
      p(jg, "convertRGBToRGBA");
      p(vg, "grayToRGBA");
      cu = 2048;
      qg = 32768;
      hu = 128;
      ns = class _ns {
        static {
          p(this, "ImageResizer");
        }
        static #e = cu;
        static #t = qn.isImageDecoderSupported;
        constructor(e, n) {
          this._imgData = e, this._isMask = n;
        }
        static get canUseImageDecoder() {
          return fe(this, "canUseImageDecoder", this.#t ? ImageDecoder.isTypeSupported("image/bmp") : Promise.resolve(false));
        }
        static needsToBeResized(e, n) {
          if (e <= this.#e && n <= this.#e) return false;
          const { MAX_DIM: s } = this;
          if (e > s || n > s) return true;
          const i = e * n;
          if (this._hasMaxArea) return i > this.MAX_AREA;
          if (i < this.#e ** 2) return false;
          if (this._areGoodDims(e, n)) return this.#e = Math.max(this.#e, Math.floor(Math.sqrt(e * n))), false;
          this.#e = this._guessMax(this.#e, s, hu, 0);
          const a = this.MAX_AREA = this.#e ** 2;
          return i > a;
        }
        static getReducePowerForJPX(e, n, s) {
          const i = e * n, a = 2 ** 30 / (s * 4);
          if (!this.needsToBeResized(e, n)) return i > a ? Math.ceil(Math.log2(i / a)) : 0;
          const { MAX_DIM: r, MAX_AREA: o } = this, l = Math.max(e / r, n / r, Math.sqrt(i / Math.min(a, o)));
          return Math.ceil(Math.log2(l));
        }
        static get MAX_DIM() {
          return fe(this, "MAX_DIM", this._guessMax(cu, qg, 0, 1));
        }
        static get MAX_AREA() {
          return this._hasMaxArea = true, fe(this, "MAX_AREA", this._guessMax(this.#e, this.MAX_DIM, hu, 0) ** 2);
        }
        static set MAX_AREA(e) {
          e >= 0 && (this._hasMaxArea = true, fe(this, "MAX_AREA", e));
        }
        static setOptions({ canvasMaxAreaInBytes: e = -1, isImageDecoderSupported: n = false }) {
          this._hasMaxArea || (this.MAX_AREA = e >> 2), this.#t = n;
        }
        static _areGoodDims(e, n) {
          try {
            const s = new OffscreenCanvas(e, n), i = s.getContext("2d");
            i.fillRect(0, 0, 1, 1);
            const a = i.getImageData(0, 0, 1, 1).data[3];
            return s.width = s.height = 1, a !== 0;
          } catch {
            return false;
          }
        }
        static _guessMax(e, n, s, i) {
          for (; e + s + 1 < n; ) {
            const a = Math.floor((e + n) / 2), r = i || a;
            this._areGoodDims(a, r) ? e = a : n = a;
          }
          return e;
        }
        static async createImage(e, n = false) {
          return new _ns(e, n)._createImage();
        }
        async _createImage() {
          const { _imgData: e } = this, { width: n, height: s } = e;
          if (n * s * 4 > of) {
            const x = this.#n();
            if (x) return x;
          }
          const i = this._encodeBMP();
          let a, r;
          await _ns.canUseImageDecoder ? (a = new ImageDecoder({ data: i, type: "image/bmp", preferAnimation: false, transfer: [i.buffer] }), r = a.decode().catch((x) => (F(`BMP image decoding failed: ${x}`), createImageBitmap(new Blob([this._encodeBMP().buffer], { type: "image/bmp" })))).finally(() => {
            a.close();
          })) : r = createImageBitmap(new Blob([i.buffer], { type: "image/bmp" }));
          const { MAX_AREA: o, MAX_DIM: l } = _ns, f = Math.max(n / l, s / l, Math.sqrt(n * s / o)), c = Math.max(f, 2), h = Math.round(10 * (f + 1.25)) / 10 / c, u = Math.floor(Math.log2(h)), d = new Array(u + 2).fill(2);
          d[0] = c, d.splice(-1, 1, h / (1 << u));
          let m = n, g = s;
          const b = await r;
          let w = b.image || b;
          for (const x of d) {
            const y = m, j = g;
            m = Math.floor(m / x) - 1, g = Math.floor(g / x) - 1;
            const v = new OffscreenCanvas(m, g);
            v.getContext("2d").drawImage(w, 0, 0, y, j, 0, 0, m, g), w.close(), w = v.transferToImageBitmap();
          }
          return e.data = null, e.bitmap = w, e.width = m, e.height = g, e;
        }
        #n() {
          const { _imgData: e } = this, { data: n, width: s, height: i, kind: a } = e, r = s * i * 4, o = Math.ceil(Math.log2(r / of)), l = s >> o, f = i >> o;
          let c, h = i;
          try {
            c = new Uint8Array(r);
          } catch {
            let j = Math.floor(Math.log2(r + 1));
            for (; ; ) try {
              c = new Uint8Array(2 ** j - 1);
              break;
            } catch {
              j -= 1;
            }
            h = Math.floor((2 ** j - 1) / (s * 4));
            const v = s * h * 4;
            v < c.length && (c = new Uint8Array(v));
          }
          const u = new Uint32Array(c.buffer), d = new Uint32Array(l * f);
          let m = 0, g = 0;
          const b = Math.ceil(i / h), w = i % h === 0 ? i : i % h;
          for (let j = 0; j < b; j++) {
            const v = j < b - 1 ? h : w;
            ({ srcPos: m } = fu({ kind: a, src: n, dest: u, width: s, height: v, inverseDecode: this._isMask, srcPos: m }));
            for (let q = 0, A = v >> o; q < A; q++) {
              const C = u.subarray((q << o) * s);
              for (let S = 0; S < l; S++) d[g++] = C[S << o];
            }
          }
          if (_ns.needsToBeResized(l, f)) return e.data = d, e.width = l, e.height = f, e.kind = dn.RGBA_32BPP, null;
          const x = new OffscreenCanvas(l, f);
          return x.getContext("2d", { willReadFrequently: true }).putImageData(new ImageData(new Uint8ClampedArray(d.buffer), l, f), 0, 0), e.data = null, e.bitmap = x.transferToImageBitmap(), e.width = l, e.height = f, e;
        }
        _encodeBMP() {
          const { width: e, height: n, kind: s } = this._imgData;
          let i = this._imgData.data, a, r = new Uint8Array(0), o = r, l = 0;
          switch (s) {
            case dn.GRAYSCALE_1BPP: {
              a = 1, r = new Uint8Array(this._isMask ? [255, 255, 255, 255, 0, 0, 0, 0] : [0, 0, 0, 0, 255, 255, 255, 255]);
              const g = e + 7 >> 3, b = g + 3 & -4;
              if (g !== b) {
                const w = new Uint8Array(b * n);
                let x = 0;
                for (let y = 0, j = n * g; y < j; y += g, x += b) w.set(i.subarray(y, y + g), x);
                i = w;
              }
              break;
            }
            case dn.RGB_24BPP: {
              if (a = 24, e & 3) {
                const g = 3 * e, b = g + 3 & -4, w = b - g, x = new Uint8Array(b * n);
                let y = 0;
                for (let j = 0, v = n * g; j < v; j += g) {
                  const q = i.subarray(j, j + g);
                  for (let A = 0; A < g; A += 3) x[y++] = q[A + 2], x[y++] = q[A + 1], x[y++] = q[A];
                  y += w;
                }
                i = x;
              } else for (let g = 0, b = i.length; g < b; g += 3) {
                const w = i[g];
                i[g] = i[g + 2], i[g + 2] = w;
              }
              break;
            }
            case dn.RGBA_32BPP:
              a = 32, l = 3, o = new Uint8Array(68);
              const m = new DataView(o.buffer);
              qn.isLittleEndian ? (m.setUint32(0, 255, true), m.setUint32(4, 65280, true), m.setUint32(8, 16711680, true), m.setUint32(12, 4278190080, true)) : (m.setUint32(0, 4278190080, true), m.setUint32(4, 16711680, true), m.setUint32(8, 65280, true), m.setUint32(12, 255, true));
              break;
            default:
              throw new Error("invalid format");
          }
          let f = 0;
          const c = 40 + o.length, h = 14 + c + r.length + i.length, u = new Uint8Array(h), d = new DataView(u.buffer);
          return d.setUint16(f, 19778, true), f += 2, d.setUint32(f, h, true), f += 4, d.setUint32(f, 0, true), f += 4, d.setUint32(f, 14 + c + r.length, true), f += 4, d.setUint32(f, c, true), f += 4, d.setInt32(f, e, true), f += 4, d.setInt32(f, -n, true), f += 4, d.setUint16(f, 1, true), f += 2, d.setUint16(f, a, true), f += 2, d.setUint32(f, l, true), f += 4, d.setUint32(f, 0, true), f += 4, d.setInt32(f, 0, true), f += 4, d.setInt32(f, 0, true), f += 4, d.setUint32(f, r.length / 4, true), f += 4, d.setUint32(f, 0, true), f += 4, u.set(o, f), f += o.length, u.set(r, f), f += r.length, u.set(i, f), u;
        }
      };
      Ag = [{ qe: 22017, nmps: 1, nlps: 1, switchFlag: 1 }, { qe: 13313, nmps: 2, nlps: 6, switchFlag: 0 }, { qe: 6145, nmps: 3, nlps: 9, switchFlag: 0 }, { qe: 2753, nmps: 4, nlps: 12, switchFlag: 0 }, { qe: 1313, nmps: 5, nlps: 29, switchFlag: 0 }, { qe: 545, nmps: 38, nlps: 33, switchFlag: 0 }, { qe: 22017, nmps: 7, nlps: 6, switchFlag: 1 }, { qe: 21505, nmps: 8, nlps: 14, switchFlag: 0 }, { qe: 18433, nmps: 9, nlps: 14, switchFlag: 0 }, { qe: 14337, nmps: 10, nlps: 14, switchFlag: 0 }, { qe: 12289, nmps: 11, nlps: 17, switchFlag: 0 }, { qe: 9217, nmps: 12, nlps: 18, switchFlag: 0 }, { qe: 7169, nmps: 13, nlps: 20, switchFlag: 0 }, { qe: 5633, nmps: 29, nlps: 21, switchFlag: 0 }, { qe: 22017, nmps: 15, nlps: 14, switchFlag: 1 }, { qe: 21505, nmps: 16, nlps: 14, switchFlag: 0 }, { qe: 20737, nmps: 17, nlps: 15, switchFlag: 0 }, { qe: 18433, nmps: 18, nlps: 16, switchFlag: 0 }, { qe: 14337, nmps: 19, nlps: 17, switchFlag: 0 }, { qe: 13313, nmps: 20, nlps: 18, switchFlag: 0 }, { qe: 12289, nmps: 21, nlps: 19, switchFlag: 0 }, { qe: 10241, nmps: 22, nlps: 19, switchFlag: 0 }, { qe: 9217, nmps: 23, nlps: 20, switchFlag: 0 }, { qe: 8705, nmps: 24, nlps: 21, switchFlag: 0 }, { qe: 7169, nmps: 25, nlps: 22, switchFlag: 0 }, { qe: 6145, nmps: 26, nlps: 23, switchFlag: 0 }, { qe: 5633, nmps: 27, nlps: 24, switchFlag: 0 }, { qe: 5121, nmps: 28, nlps: 25, switchFlag: 0 }, { qe: 4609, nmps: 29, nlps: 26, switchFlag: 0 }, { qe: 4353, nmps: 30, nlps: 27, switchFlag: 0 }, { qe: 2753, nmps: 31, nlps: 28, switchFlag: 0 }, { qe: 2497, nmps: 32, nlps: 29, switchFlag: 0 }, { qe: 2209, nmps: 33, nlps: 30, switchFlag: 0 }, { qe: 1313, nmps: 34, nlps: 31, switchFlag: 0 }, { qe: 1089, nmps: 35, nlps: 32, switchFlag: 0 }, { qe: 673, nmps: 36, nlps: 33, switchFlag: 0 }, { qe: 545, nmps: 37, nlps: 34, switchFlag: 0 }, { qe: 321, nmps: 38, nlps: 35, switchFlag: 0 }, { qe: 273, nmps: 39, nlps: 36, switchFlag: 0 }, { qe: 133, nmps: 40, nlps: 37, switchFlag: 0 }, { qe: 73, nmps: 41, nlps: 38, switchFlag: 0 }, { qe: 37, nmps: 42, nlps: 39, switchFlag: 0 }, { qe: 21, nmps: 43, nlps: 40, switchFlag: 0 }, { qe: 9, nmps: 44, nlps: 41, switchFlag: 0 }, { qe: 5, nmps: 45, nlps: 42, switchFlag: 0 }, { qe: 1, nmps: 45, nlps: 43, switchFlag: 0 }, { qe: 22017, nmps: 46, nlps: 46, switchFlag: 0 }];
      Sg = class {
        static {
          p(this, "ArithmeticDecoder");
        }
        constructor(e, n, s) {
          this.data = e, this.bp = n, this.dataEnd = s, this.chigh = e[n], this.clow = 0, this.byteIn(), this.chigh = this.chigh << 7 & 65535 | this.clow >> 9 & 127, this.clow = this.clow << 7 & 65535, this.ct -= 7, this.a = 32768;
        }
        byteIn() {
          const e = this.data;
          let n = this.bp;
          e[n] === 255 ? e[n + 1] > 143 ? (this.clow += 65280, this.ct = 8) : (n++, this.clow += e[n] << 9, this.ct = 7, this.bp = n) : (n++, this.clow += n < this.dataEnd ? e[n] << 8 : 65280, this.ct = 8, this.bp = n), this.clow > 65535 && (this.chigh += this.clow >> 16, this.clow &= 65535);
        }
        readBit(e, n) {
          let s = e[n] >> 1, i = e[n] & 1;
          const a = Ag[s], r = a.qe;
          let o, l = this.a - r;
          if (this.chigh < r) l < r ? (l = r, o = i, s = a.nmps) : (l = r, o = 1 ^ i, a.switchFlag === 1 && (i = o), s = a.nlps);
          else {
            if (this.chigh -= r, (l & 32768) !== 0) return this.a = l, i;
            l < r ? (o = 1 ^ i, a.switchFlag === 1 && (i = o), s = a.nlps) : (o = i, s = a.nmps);
          }
          do
            this.ct === 0 && this.byteIn(), l <<= 1, this.chigh = this.chigh << 1 & 65535 | this.clow >> 15 & 1, this.clow = this.clow << 1 & 65535, this.ct--;
          while ((l & 32768) === 0);
          return this.a = l, e[n] = s << 1 | i, o;
        }
      };
      yf = -2;
      pi = -1;
      mi = 0;
      Sn = 1;
      Re = 2;
      Cn = 3;
      In = 4;
      jf = 5;
      vf = 6;
      uu = 7;
      du = 8;
      pu = [[-1, -1], [-1, -1], [7, du], [7, uu], [6, vf], [6, vf], [6, jf], [6, jf], [4, mi], [4, mi], [4, mi], [4, mi], [4, mi], [4, mi], [4, mi], [4, mi], [3, Sn], [3, Sn], [3, Sn], [3, Sn], [3, Sn], [3, Sn], [3, Sn], [3, Sn], [3, Sn], [3, Sn], [3, Sn], [3, Sn], [3, Sn], [3, Sn], [3, Sn], [3, Sn], [3, In], [3, In], [3, In], [3, In], [3, In], [3, In], [3, In], [3, In], [3, In], [3, In], [3, In], [3, In], [3, In], [3, In], [3, In], [3, In], [3, Cn], [3, Cn], [3, Cn], [3, Cn], [3, Cn], [3, Cn], [3, Cn], [3, Cn], [3, Cn], [3, Cn], [3, Cn], [3, Cn], [3, Cn], [3, Cn], [3, Cn], [3, Cn], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re], [1, Re]];
      mu = [[-1, -1], [12, yf], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [11, 1792], [11, 1792], [12, 1984], [12, 2048], [12, 2112], [12, 2176], [12, 2240], [12, 2304], [11, 1856], [11, 1856], [11, 1920], [11, 1920], [12, 2368], [12, 2432], [12, 2496], [12, 2560]];
      gu = [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [8, 29], [8, 29], [8, 30], [8, 30], [8, 45], [8, 45], [8, 46], [8, 46], [7, 22], [7, 22], [7, 22], [7, 22], [7, 23], [7, 23], [7, 23], [7, 23], [8, 47], [8, 47], [8, 48], [8, 48], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [7, 20], [7, 20], [7, 20], [7, 20], [8, 33], [8, 33], [8, 34], [8, 34], [8, 35], [8, 35], [8, 36], [8, 36], [8, 37], [8, 37], [8, 38], [8, 38], [7, 19], [7, 19], [7, 19], [7, 19], [8, 31], [8, 31], [8, 32], [8, 32], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [8, 53], [8, 53], [8, 54], [8, 54], [7, 26], [7, 26], [7, 26], [7, 26], [8, 39], [8, 39], [8, 40], [8, 40], [8, 41], [8, 41], [8, 42], [8, 42], [8, 43], [8, 43], [8, 44], [8, 44], [7, 21], [7, 21], [7, 21], [7, 21], [7, 28], [7, 28], [7, 28], [7, 28], [8, 61], [8, 61], [8, 62], [8, 62], [8, 63], [8, 63], [8, 0], [8, 0], [8, 320], [8, 320], [8, 384], [8, 384], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [7, 27], [7, 27], [7, 27], [7, 27], [8, 59], [8, 59], [8, 60], [8, 60], [9, 1472], [9, 1536], [9, 1600], [9, 1728], [7, 18], [7, 18], [7, 18], [7, 18], [7, 24], [7, 24], [7, 24], [7, 24], [8, 49], [8, 49], [8, 50], [8, 50], [8, 51], [8, 51], [8, 52], [8, 52], [7, 25], [7, 25], [7, 25], [7, 25], [8, 55], [8, 55], [8, 56], [8, 56], [8, 57], [8, 57], [8, 58], [8, 58], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [8, 448], [8, 448], [8, 512], [8, 512], [9, 704], [9, 768], [8, 640], [8, 640], [8, 576], [8, 576], [9, 832], [9, 896], [9, 960], [9, 1024], [9, 1088], [9, 1152], [9, 1216], [9, 1280], [9, 1344], [9, 1408], [7, 256], [7, 256], [7, 256], [7, 256], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7]];
      bu = [[-1, -1], [-1, -1], [12, yf], [12, yf], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [11, 1792], [11, 1792], [11, 1792], [11, 1792], [12, 1984], [12, 1984], [12, 2048], [12, 2048], [12, 2112], [12, 2112], [12, 2176], [12, 2176], [12, 2240], [12, 2240], [12, 2304], [12, 2304], [11, 1856], [11, 1856], [11, 1856], [11, 1856], [11, 1920], [11, 1920], [11, 1920], [11, 1920], [12, 2368], [12, 2368], [12, 2432], [12, 2432], [12, 2496], [12, 2496], [12, 2560], [12, 2560], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [12, 52], [12, 52], [13, 640], [13, 704], [13, 768], [13, 832], [12, 55], [12, 55], [12, 56], [12, 56], [13, 1280], [13, 1344], [13, 1408], [13, 1472], [12, 59], [12, 59], [12, 60], [12, 60], [13, 1536], [13, 1600], [11, 24], [11, 24], [11, 24], [11, 24], [11, 25], [11, 25], [11, 25], [11, 25], [13, 1664], [13, 1728], [12, 320], [12, 320], [12, 384], [12, 384], [12, 448], [12, 448], [13, 512], [13, 576], [12, 53], [12, 53], [12, 54], [12, 54], [13, 896], [13, 960], [13, 1024], [13, 1088], [13, 1152], [13, 1216], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64]];
      wu = [[8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [11, 23], [11, 23], [12, 50], [12, 51], [12, 44], [12, 45], [12, 46], [12, 47], [12, 57], [12, 58], [12, 61], [12, 256], [10, 16], [10, 16], [10, 16], [10, 16], [10, 17], [10, 17], [10, 17], [10, 17], [12, 48], [12, 49], [12, 62], [12, 63], [12, 30], [12, 31], [12, 32], [12, 33], [12, 40], [12, 41], [11, 22], [11, 22], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [12, 128], [12, 192], [12, 26], [12, 27], [12, 28], [12, 29], [11, 19], [11, 19], [11, 20], [11, 20], [12, 34], [12, 35], [12, 36], [12, 37], [12, 38], [12, 39], [11, 21], [11, 21], [12, 42], [12, 43], [10, 0], [10, 0], [10, 0], [10, 0], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12]];
      xu = [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [6, 9], [6, 8], [5, 7], [5, 7], [4, 6], [4, 6], [4, 6], [4, 6], [4, 5], [4, 5], [4, 5], [4, 5], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2]];
      ku = class {
        static {
          p(this, "CCITTFaxDecoder");
        }
        constructor(e, n = { K: 0, EndOfLine: false, EncodedByteAlign: false, Columns: 1728, Rows: 0, EndOfBlock: true, BlackIs1: false }) {
          if (typeof e?.next != "function") throw new Error('CCITTFaxDecoder - invalid "source" parameter.');
          this.source = e, this.eof = false, { K: this.encoding, EndOfLine: this.eoline, EncodedByteAlign: this.byteAlign, Columns: this.columns, Rows: this.rows, EndOfBlock: this.eoblock, BlackIs1: this.black } = n, this.codingLine = new Uint32Array(this.columns + 1), this.refLine = new Uint32Array(this.columns + 2), this.codingLine[0] = this.columns, this.codingPos = 0, this.row = 0, this.nextLine2D = this.encoding < 0, this.inputBits = 0, this.inputBuf = 0, this.outputBits = 0, this.rowsDone = false;
          let s;
          for (; (s = this._lookBits(12)) === 0; ) this._eatBits(1);
          s === 1 && this._eatBits(12), this.encoding > 0 && (this.nextLine2D = !this._lookBits(1), this._eatBits(1));
        }
        readNextChar() {
          if (this.eof) return -1;
          const e = this.refLine, n = this.codingLine, s = this.columns;
          let i, a, r, o;
          if (this.outputBits === 0) {
            if (this.rowsDone && (this.eof = true), this.eof) return -1;
            this.err = false;
            let f, c, h;
            if (this.nextLine2D) {
              for (o = 0; n[o] < s; ++o) e[o] = n[o];
              for (e[o++] = s, e[o] = s, n[0] = 0, this.codingPos = 0, i = 0, a = 0; n[this.codingPos] < s; ) switch (f = this._getTwoDimCode(), f) {
                case mi:
                  this._addPixels(e[i + 1], a), e[i + 1] < s && (i += 2);
                  break;
                case Sn:
                  if (f = c = 0, a) {
                    do
                      f += h = this._getBlackCode();
                    while (h >= 64);
                    do
                      c += h = this._getWhiteCode();
                    while (h >= 64);
                  } else {
                    do
                      f += h = this._getWhiteCode();
                    while (h >= 64);
                    do
                      c += h = this._getBlackCode();
                    while (h >= 64);
                  }
                  for (this._addPixels(n[this.codingPos] + f, a), n[this.codingPos] < s && this._addPixels(n[this.codingPos] + c, a ^ 1); e[i] <= n[this.codingPos] && e[i] < s; ) i += 2;
                  break;
                case uu:
                  if (this._addPixels(e[i] + 3, a), a ^= 1, n[this.codingPos] < s) for (++i; e[i] <= n[this.codingPos] && e[i] < s; ) i += 2;
                  break;
                case jf:
                  if (this._addPixels(e[i] + 2, a), a ^= 1, n[this.codingPos] < s) for (++i; e[i] <= n[this.codingPos] && e[i] < s; ) i += 2;
                  break;
                case Cn:
                  if (this._addPixels(e[i] + 1, a), a ^= 1, n[this.codingPos] < s) for (++i; e[i] <= n[this.codingPos] && e[i] < s; ) i += 2;
                  break;
                case Re:
                  if (this._addPixels(e[i], a), a ^= 1, n[this.codingPos] < s) for (++i; e[i] <= n[this.codingPos] && e[i] < s; ) i += 2;
                  break;
                case du:
                  if (this._addPixelsNeg(e[i] - 3, a), a ^= 1, n[this.codingPos] < s) for (i > 0 ? --i : ++i; e[i] <= n[this.codingPos] && e[i] < s; ) i += 2;
                  break;
                case vf:
                  if (this._addPixelsNeg(e[i] - 2, a), a ^= 1, n[this.codingPos] < s) for (i > 0 ? --i : ++i; e[i] <= n[this.codingPos] && e[i] < s; ) i += 2;
                  break;
                case In:
                  if (this._addPixelsNeg(e[i] - 1, a), a ^= 1, n[this.codingPos] < s) for (i > 0 ? --i : ++i; e[i] <= n[this.codingPos] && e[i] < s; ) i += 2;
                  break;
                case pi:
                  this._addPixels(s, 0), this.eof = true;
                  break;
                default:
                  Ke("bad 2d code"), this._addPixels(s, 0), this.err = true;
              }
            } else for (n[0] = 0, this.codingPos = 0, a = 0; n[this.codingPos] < s; ) {
              if (f = 0, a) do
                f += h = this._getBlackCode();
              while (h >= 64);
              else do
                f += h = this._getWhiteCode();
              while (h >= 64);
              this._addPixels(n[this.codingPos] + f, a), a ^= 1;
            }
            let u = false;
            if (this.byteAlign && (this.inputBits &= -8), !this.eoblock && this.row === this.rows - 1) this.rowsDone = true;
            else {
              if (f = this._lookBits(12), this.eoline) for (; f !== pi && f !== 1; ) this._eatBits(1), f = this._lookBits(12);
              else for (; f === 0; ) this._eatBits(1), f = this._lookBits(12);
              f === 1 ? (this._eatBits(12), u = true) : f === pi && (this.eof = true);
            }
            if (!this.eof && this.encoding > 0 && !this.rowsDone && (this.nextLine2D = !this._lookBits(1), this._eatBits(1)), this.eoblock && u && this.byteAlign) {
              if (f = this._lookBits(12), f === 1) {
                if (this._eatBits(12), this.encoding > 0 && (this._lookBits(1), this._eatBits(1)), this.encoding >= 0) for (o = 0; o < 4; ++o) f = this._lookBits(12), f !== 1 && Ke("bad rtc code: " + f), this._eatBits(12), this.encoding > 0 && (this._lookBits(1), this._eatBits(1));
                this.eof = true;
              }
            } else if (this.err && this.eoline) {
              for (; ; ) {
                if (f = this._lookBits(13), f === pi) return this.eof = true, -1;
                if (f >> 1 === 1) break;
                this._eatBits(1);
              }
              this._eatBits(12), this.encoding > 0 && (this._eatBits(1), this.nextLine2D = !(f & 1));
            }
            this.outputBits = n[0] > 0 ? n[this.codingPos = 0] : n[this.codingPos = 1], this.row++;
          }
          let l;
          if (this.outputBits >= 8) l = this.codingPos & 1 ? 0 : 255, this.outputBits -= 8, this.outputBits === 0 && n[this.codingPos] < s && (this.codingPos++, this.outputBits = n[this.codingPos] - n[this.codingPos - 1]);
          else {
            r = 8, l = 0;
            do {
              if (typeof this.outputBits != "number") throw new Q('Invalid /CCITTFaxDecode data, "outputBits" must be a number.');
              this.outputBits > r ? (l <<= r, this.codingPos & 1 || (l |= 255 >> 8 - r), this.outputBits -= r, r = 0) : (l <<= this.outputBits, this.codingPos & 1 || (l |= 255 >> 8 - this.outputBits), r -= this.outputBits, this.outputBits = 0, n[this.codingPos] < s ? (this.codingPos++, this.outputBits = n[this.codingPos] - n[this.codingPos - 1]) : r > 0 && (l <<= r, r = 0));
            } while (r);
          }
          return this.black && (l ^= 255), l;
        }
        _addPixels(e, n) {
          const s = this.codingLine;
          let i = this.codingPos;
          e > s[i] && (e > this.columns && (Ke("row is wrong length"), this.err = true, e = this.columns), i & 1 ^ n && ++i, s[i] = e), this.codingPos = i;
        }
        _addPixelsNeg(e, n) {
          const s = this.codingLine;
          let i = this.codingPos;
          if (e > s[i]) e > this.columns && (Ke("row is wrong length"), this.err = true, e = this.columns), i & 1 ^ n && ++i, s[i] = e;
          else if (e < s[i]) {
            for (e < 0 && (Ke("invalid code"), this.err = true, e = 0); i > 0 && e < s[i - 1]; ) --i;
            s[i] = e;
          }
          this.codingPos = i;
        }
        _findTableCode(e, n, s, i) {
          const a = i || 0;
          for (let r = e; r <= n; ++r) {
            let o = this._lookBits(r);
            if (o === pi) return [true, 1, false];
            if (r < n && (o <<= n - r), !a || o >= a) {
              const l = s[o - a];
              if (l[0] === r) return this._eatBits(r), [true, l[1], true];
            }
          }
          return [false, 0, false];
        }
        _getTwoDimCode() {
          let e = 0, n;
          if (this.eoblock) {
            if (e = this._lookBits(7), n = pu[e], n?.[0] > 0) return this._eatBits(n[0]), n[1];
          } else {
            const s = this._findTableCode(1, 7, pu);
            if (s[0] && s[2]) return s[1];
          }
          return Ke("Bad two dim code"), pi;
        }
        _getWhiteCode() {
          let e = 0, n;
          if (this.eoblock) {
            if (e = this._lookBits(12), e === pi) return 1;
            if (n = e >> 5 === 0 ? mu[e] : gu[e >> 3], n[0] > 0) return this._eatBits(n[0]), n[1];
          } else {
            let s = this._findTableCode(1, 9, gu);
            if (s[0] || (s = this._findTableCode(11, 12, mu), s[0])) return s[1];
          }
          return Ke("bad white code"), this._eatBits(1), 1;
        }
        _getBlackCode() {
          let e, n;
          if (this.eoblock) {
            if (e = this._lookBits(13), e === pi) return 1;
            if (e >> 7 === 0 ? n = bu[e] : e >> 9 === 0 && e >> 7 !== 0 ? n = wu[(e >> 1) - 64] : n = xu[e >> 7], n[0] > 0) return this._eatBits(n[0]), n[1];
          } else {
            let s = this._findTableCode(2, 6, xu);
            if (s[0] || (s = this._findTableCode(7, 12, wu, 64), s[0]) || (s = this._findTableCode(10, 13, bu), s[0])) return s[1];
          }
          return Ke("bad black code"), this._eatBits(1), 1;
        }
        _lookBits(e) {
          let n;
          for (; this.inputBits < e; ) {
            if ((n = this.source.next()) === -1) return this.inputBits === 0 ? pi : this.inputBuf << e - this.inputBits & 65535 >> 16 - e;
            this.inputBuf = this.inputBuf << 8 | n, this.inputBits += 8;
          }
          return this.inputBuf >> this.inputBits - e & 65535 >> 16 - e;
        }
        _eatBits(e) {
          (this.inputBits -= e) < 0 && (this.inputBits = 0);
        }
      };
      _t = class extends Ln {
        static {
          p(this, "Jbig2Error");
        }
        constructor(e) {
          super(e, "Jbig2Error");
        }
      };
      Cg = class {
        static {
          p(this, "ContextCache");
        }
        getContexts(e) {
          return e in this ? this[e] : this[e] = new Int8Array(65536);
        }
      };
      Dr = class {
        static {
          p(this, "DecodingContext");
        }
        constructor(e, n, s) {
          this.data = e, this.start = n, this.end = s;
        }
        get decoder() {
          const e = new Sg(this.data, this.start, this.end);
          return fe(this, "decoder", e);
        }
        get contextCache() {
          const e = new Cg();
          return fe(this, "contextCache", e);
        }
      };
      p(_n, "decodeInteger");
      p(yu, "decodeIAID");
      ju = ["SymbolDictionary", null, null, null, "IntermediateTextRegion", null, "ImmediateTextRegion", "ImmediateLosslessTextRegion", null, null, null, null, null, null, null, null, "PatternDictionary", null, null, null, "IntermediateHalftoneRegion", null, "ImmediateHalftoneRegion", "ImmediateLosslessHalftoneRegion", null, null, null, null, null, null, null, null, null, null, null, null, "IntermediateGenericRegion", null, "ImmediateGenericRegion", "ImmediateLosslessGenericRegion", "IntermediateGenericRefinementRegion", null, "ImmediateGenericRefinementRegion", "ImmediateLosslessGenericRefinementRegion", null, null, null, null, "PageInformation", "EndOfPage", "EndOfStripe", "EndOfFile", "Profiles", "Tables", null, null, null, null, null, null, null, null, "Extension"];
      Ig = [[{ x: -1, y: -2 }, { x: 0, y: -2 }, { x: 1, y: -2 }, { x: -2, y: -1 }, { x: -1, y: -1 }, { x: 0, y: -1 }, { x: 1, y: -1 }, { x: 2, y: -1 }, { x: -4, y: 0 }, { x: -3, y: 0 }, { x: -2, y: 0 }, { x: -1, y: 0 }], [{ x: -1, y: -2 }, { x: 0, y: -2 }, { x: 1, y: -2 }, { x: 2, y: -2 }, { x: -2, y: -1 }, { x: -1, y: -1 }, { x: 0, y: -1 }, { x: 1, y: -1 }, { x: 2, y: -1 }, { x: -3, y: 0 }, { x: -2, y: 0 }, { x: -1, y: 0 }], [{ x: -1, y: -2 }, { x: 0, y: -2 }, { x: 1, y: -2 }, { x: -2, y: -1 }, { x: -1, y: -1 }, { x: 0, y: -1 }, { x: 1, y: -1 }, { x: -2, y: 0 }, { x: -1, y: 0 }], [{ x: -3, y: -1 }, { x: -2, y: -1 }, { x: -1, y: -1 }, { x: 0, y: -1 }, { x: 1, y: -1 }, { x: -4, y: 0 }, { x: -3, y: 0 }, { x: -2, y: 0 }, { x: -1, y: 0 }]];
      vu = [{ coding: [{ x: 0, y: -1 }, { x: 1, y: -1 }, { x: -1, y: 0 }], reference: [{ x: 0, y: -1 }, { x: 1, y: -1 }, { x: -1, y: 0 }, { x: 0, y: 0 }, { x: 1, y: 0 }, { x: -1, y: 1 }, { x: 0, y: 1 }, { x: 1, y: 1 }] }, { coding: [{ x: -1, y: -1 }, { x: 0, y: -1 }, { x: 1, y: -1 }, { x: -1, y: 0 }], reference: [{ x: 0, y: -1 }, { x: -1, y: 0 }, { x: 0, y: 0 }, { x: 1, y: 0 }, { x: 0, y: 1 }, { x: 1, y: 1 }] }];
      Tg = [39717, 1941, 229, 405];
      p(Eg, "decodeBitmapTemplate0");
      p(wl, "decodeBitmap");
      p(qu, "decodeRefinement");
      p(Fg, "decodeSymbolDictionary");
      p(Au, "decodeTextRegion");
      p(Bg, "decodePatternDictionary");
      p(Rg, "decodeHalftoneRegion");
      p(_g, "readSegmentHeader");
      p(Pg, "readSegments");
      p(xl, "readRegionSegmentInformation");
      kl = 17;
      p(Dg, "processSegment");
      p(Mg, "processSegments");
      p(Hg, "parseJbig2Chunks");
      Og = class {
        static {
          p(this, "SimpleSegmentVisitor");
        }
        onPageInformation(e) {
          this.currentPageInfo = e;
          const n = e.width + 7 >> 3, s = new Uint8ClampedArray(n * e.height);
          e.defaultPixelValue && s.fill(255), this.buffer = s;
        }
        drawBitmap(e, n) {
          const s = this.currentPageInfo, i = e.width, a = e.height, r = s.width + 7 >> 3, o = s.combinationOperatorOverride ? e.combinationOperator : s.combinationOperator, l = this.buffer, f = 128 >> (e.x & 7);
          let c = e.y * r + (e.x >> 3), h, u, d, m;
          switch (o) {
            case 0:
              for (h = 0; h < a; h++) {
                for (d = f, m = c, u = 0; u < i; u++) n[h][u] && (l[m] |= d), d >>= 1, d || (d = 128, m++);
                c += r;
              }
              break;
            case 2:
              for (h = 0; h < a; h++) {
                for (d = f, m = c, u = 0; u < i; u++) n[h][u] && (l[m] ^= d), d >>= 1, d || (d = 128, m++);
                c += r;
              }
              break;
            default:
              throw new _t(`operator ${o} is not supported`);
          }
        }
        onImmediateGenericRegion(e, n, s, i) {
          const a = e.info, r = new Dr(n, s, i), o = wl(e.mmr, a.width, a.height, e.template, e.prediction, null, e.at, r);
          this.drawBitmap(a, o);
        }
        onImmediateLosslessGenericRegion() {
          this.onImmediateGenericRegion(...arguments);
        }
        onSymbolDictionary(e, n, s, i, a, r) {
          let o, l;
          e.huffman && (o = zg(e, s, this.customTables), l = new Mr(i, a, r));
          const f = this.symbols ||= {}, c = [];
          for (const u of s) {
            const d = f[u];
            d && c.push(...d);
          }
          const h = new Dr(i, a, r);
          f[n] = Fg(e.huffman, e.refinement, c, e.numberOfNewSymbols, e.numberOfExportedSymbols, o, e.template, e.at, e.refinementTemplate, e.refinementAt, h, l);
        }
        onImmediateTextRegion(e, n, s, i, a) {
          const r = e.info;
          let o, l;
          const f = this.symbols, c = [];
          for (const m of n) {
            const g = f[m];
            g && c.push(...g);
          }
          const h = df(c.length);
          e.huffman && (l = new Mr(s, i, a), o = Ng(e, n, this.customTables, c.length, l));
          const u = new Dr(s, i, a), d = Au(e.huffman, e.refinement, r.width, r.height, e.defaultPixelValue, e.numberOfSymbolInstances, e.stripSize, c, h, e.transposed, e.dsOffset, e.referenceCorner, e.combinationOperator, o, e.refinementTemplate, e.refinementAt, u, e.logStripSize, l);
          this.drawBitmap(r, d);
        }
        onImmediateLosslessTextRegion() {
          this.onImmediateTextRegion(...arguments);
        }
        onPatternDictionary(e, n, s, i, a) {
          const r = this.patterns ||= {}, o = new Dr(s, i, a);
          r[n] = Bg(e.mmr, e.patternWidth, e.patternHeight, e.maxPatternIndex, e.template, o);
        }
        onImmediateHalftoneRegion(e, n, s, i, a) {
          const r = this.patterns[n[0]], o = e.info, l = new Dr(s, i, a), f = Rg(e.mmr, r, e.template, o.width, o.height, e.defaultPixelValue, e.enableSkip, e.combinationOperator, e.gridWidth, e.gridHeight, e.gridOffsetX, e.gridOffsetY, e.gridVectorX, e.gridVectorY, l);
          this.drawBitmap(o, f);
        }
        onImmediateLosslessHalftoneRegion() {
          this.onImmediateHalftoneRegion(...arguments);
        }
        onTables(e, n, s, i) {
          const a = this.customTables ||= {};
          a[e] = Lg(n, s, i);
        }
      };
      Ri = class {
        static {
          p(this, "HuffmanLine");
        }
        constructor(e) {
          e.length === 2 ? (this.isOOB = true, this.rangeLow = 0, this.prefixLength = e[0], this.rangeLength = 0, this.prefixCode = e[1], this.isLowerRange = false) : (this.isOOB = false, this.rangeLow = e[0], this.prefixLength = e[1], this.rangeLength = e[2], this.prefixCode = e[3], this.isLowerRange = e[4] === "lower");
        }
      };
      L0 = class _L0 {
        static {
          p(this, "HuffmanTreeNode");
        }
        constructor(e) {
          this.children = [], e ? (this.isLeaf = true, this.rangeLength = e.rangeLength, this.rangeLow = e.rangeLow, this.isLowerRange = e.isLowerRange, this.isOOB = e.isOOB) : this.isLeaf = false;
        }
        buildTree(e, n) {
          const s = e.prefixCode >> n & 1;
          n <= 0 ? this.children[s] = new _L0(e) : (this.children[s] ||= new _L0(null)).buildTree(e, n - 1);
        }
        decodeNode(e) {
          if (this.isLeaf) {
            if (this.isOOB) return null;
            const s = e.readBits(this.rangeLength);
            return this.rangeLow + (this.isLowerRange ? -s : s);
          }
          const n = this.children[e.readBit()];
          if (!n) throw new _t("invalid Huffman data");
          return n.decodeNode(e);
        }
      };
      yl = class {
        static {
          p(this, "HuffmanTable");
        }
        constructor(e, n) {
          n || this.assignPrefixCodes(e), this.rootNode = new L0(null);
          for (let s = 0, i = e.length; s < i; s++) {
            const a = e[s];
            a.prefixLength > 0 && this.rootNode.buildTree(a, a.prefixLength - 1);
          }
        }
        decode(e) {
          return this.rootNode.decodeNode(e);
        }
        assignPrefixCodes(e) {
          const n = e.length;
          let s = 0;
          for (let c = 0; c < n; c++) s = Math.max(s, e[c].prefixLength);
          const i = new Uint32Array(s + 1);
          for (let c = 0; c < n; c++) i[e[c].prefixLength]++;
          let a = 1, r = 0, o, l, f;
          for (i[0] = 0; a <= s; ) {
            for (r = r + i[a - 1] << 1, o = r, l = 0; l < n; ) f = e[l], f.prefixLength === a && (f.prefixCode = o, o++), l++;
            a++;
          }
        }
      };
      p(Lg, "decodeTablesSegment");
      Su = {};
      p(_i, "getStandardTable");
      Mr = class {
        static {
          p(this, "Reader");
        }
        constructor(e, n, s) {
          this.data = e, this.start = n, this.end = s, this.position = n, this.shift = -1, this.currentByte = 0;
        }
        readBit() {
          if (this.shift < 0) {
            if (this.position >= this.end) throw new _t("end of data while reading bit");
            this.currentByte = this.data[this.position++], this.shift = 7;
          }
          const e = this.currentByte >> this.shift & 1;
          return this.shift--, e;
        }
        readBits(e) {
          let n = 0, s;
          for (s = e - 1; s >= 0; s--) n |= this.readBit() << s;
          return n;
        }
        byteAlign() {
          this.shift = -1;
        }
        next() {
          return this.position >= this.end ? -1 : this.data[this.position++];
        }
      };
      p(ia, "getCustomHuffmanTable");
      p(Ng, "getTextRegionHuffmanTables");
      p(zg, "getSymbolDictionaryHuffmanTables");
      p(Ug, "readUncompressedBitmap");
      p(qf, "decodeMMRBitmap");
      Gg = class {
        static {
          p(this, "Jbig2Image");
        }
        parseChunks(e) {
          return Hg(e);
        }
        parse(e) {
          throw new Error("Not implemented: Jbig2Image.parse");
        }
      };
      jl = class {
        static {
          p(this, "JBig2CCITTFaxWasmImage");
        }
        static #e = null;
        static #t = null;
        static #n = null;
        static #s = true;
        static #i = true;
        static #a = null;
        static setOptions({ handler: e, useWasm: n, useWorkerFetch: s, wasmUrl: i }) {
          this.#s = n, this.#i = s, this.#a = i, s || (this.#t = e);
        }
        static async #r(e, n, s) {
        }
        static async decode(e, n, s, i, a) {
          const r = await this.#n;
          if (!r) throw new _t("JBig2 failed to initialize");
          let o, l;
          try {
            const f = e.length;
            if (o = r._malloc(f), r.writeArrayToMemory(e, o), a) r._ccitt_decode(o, f, n, s, a.K, a.EndOfLine ? 1 : 0, a.EncodedByteAlign ? 1 : 0, a.BlackIs1 ? 1 : 0, a.Columns, a.Rows);
            else {
              const h = i ? i.length : 0;
              h > 0 && (l = r._malloc(h), r.writeArrayToMemory(i, l)), r._jbig2_decode(o, f, n, s, l, h);
            }
            if (!r.imageData) throw new _t("Unknown error");
            const { imageData: c } = r;
            return r.imageData = null, c;
          } finally {
            o && r._free(o), l && r._free(l);
          }
        }
        static cleanup() {
          this.#n = null;
        }
      };
      Wg = new Uint8Array(0);
      Pn = class extends ze {
        static {
          p(this, "DecodeStream");
        }
        constructor(e) {
          if (super(), this._rawMinBufferLength = e || 0, this.pos = 0, this.bufferLength = 0, this.eof = false, this.buffer = Wg, this.minBufferLength = 512, e) for (; this.minBufferLength < e; ) this.minBufferLength *= 2;
        }
        get isEmpty() {
          for (; !this.eof && this.bufferLength === 0; ) this.readBlock();
          return this.bufferLength === 0;
        }
        ensureBuffer(e) {
          const n = this.buffer;
          if (e <= n.byteLength) return n;
          let s = this.minBufferLength;
          for (; s < e; ) s *= 2;
          const i = new Uint8Array(s);
          return i.set(n), this.buffer = i;
        }
        getByte() {
          const e = this.pos;
          for (; this.bufferLength <= e; ) {
            if (this.eof) return -1;
            this.readBlock();
          }
          return this.buffer[this.pos++];
        }
        getBytes(e, n = null) {
          const s = this.pos;
          let i;
          if (e) {
            for (this.ensureBuffer(s + e), i = s + e; !this.eof && this.bufferLength < i; ) this.readBlock(n);
            const a = this.bufferLength;
            i > a && (i = a);
          } else {
            for (; !this.eof; ) this.readBlock(n);
            i = this.bufferLength;
          }
          return this.pos = i, this.buffer.subarray(s, i);
        }
        async getImageData(e, n) {
          if (!this.canAsyncDecodeImageFromBuffer) return this.isAsyncDecoder ? this.decodeImage(null, e, n) : this.getBytes(e, n);
          const s = await this.stream.asyncGetBytes();
          return this.decodeImage(s, e, n);
        }
        async asyncGetBytesFromDecompressionStream(e) {
          this.stream.reset();
          const n = this.stream.isAsync ? await this.stream.asyncGetBytes() : this.stream.getBytes();
          try {
            const { readable: s, writable: i } = new DecompressionStream(e), a = i.getWriter();
            await a.ready, a.write(n).then(async () => {
              await a.ready, await a.close();
            }).catch(() => {
            });
            const r = [];
            let o = 0;
            for await (const c of s) r.push(c), o += c.byteLength;
            const l = new Uint8Array(o);
            let f = 0;
            for (const c of r) l.set(c, f), f += c.byteLength;
            return { decompressed: l, compressed: n };
          } catch {
            return { decompressed: null, compressed: n };
          }
        }
        reset() {
          this.pos = 0;
        }
        makeSubStream(e, n, s = null) {
          if (n === void 0) for (; !this.eof; ) this.readBlock();
          else {
            const i = e + n;
            for (; this.bufferLength <= i && !this.eof; ) this.readBlock();
          }
          return new jt(this.buffer, e, n, s);
        }
        getBaseStreams() {
          return this.stream ? this.stream.getBaseStreams() : null;
        }
        clone() {
          for (; !this.eof; ) this.readBlock();
          return new jt(this.buffer, this.start, this.end - this.start, this.dict.clone());
        }
      };
      $g = class extends Pn {
        static {
          p(this, "StreamsSequenceStream");
        }
        constructor(e, n = null) {
          e = e.filter((i) => i instanceof ze && !i.isImageStream);
          let s = 0;
          for (const i of e) s += i instanceof Pn ? i._rawMinBufferLength : i.length;
          super(s), this.streams = e, this._onError = n;
        }
        readBlock() {
          const e = this.streams;
          if (e.length === 0) {
            this.eof = true;
            return;
          }
          const n = e.shift();
          let s;
          try {
            s = n.getBytes();
          } catch (o) {
            if (this._onError) {
              this._onError(o, n.dict?.objId);
              return;
            }
            throw o;
          }
          const i = this.bufferLength, a = i + s.length;
          this.ensureBuffer(a).set(s, i), this.bufferLength = a;
        }
        getBaseStreams() {
          const e = [];
          for (const n of this.streams) {
            const s = n.getBaseStreams();
            s && e.push(...s);
          }
          return e.length > 0 ? e : null;
        }
      };
      ut = class {
        static {
          p(this, "ColorSpaceUtils");
        }
        static parse({ cs: e, xref: n, resources: s = null, pdfFunctionFactory: i, globalColorSpaceCache: a, localColorSpaceCache: r, asyncIfNotCached: o = false }) {
          const l = { xref: n, resources: s, pdfFunctionFactory: i, globalColorSpaceCache: a, localColorSpaceCache: r };
          let f, c, h;
          if (e instanceof ae) {
            c = e;
            const u = a.getByRef(c) || r.getByRef(c);
            if (u) return u;
            e = n.fetch(e);
          }
          if (e instanceof te) {
            f = e.name;
            const u = r.getByName(f);
            if (u) return u;
          }
          try {
            h = this.#t(e, l);
          } catch (u) {
            if (o && !(u instanceof Ft)) return Promise.reject(u);
            throw u;
          }
          return (f || c) && (r.set(f, c, h), c && a.set(null, c, h)), o ? Promise.resolve(h) : h;
        }
        static #e(e, n) {
          const { globalColorSpaceCache: s } = n;
          let i;
          if (e instanceof ae) {
            i = e;
            const r = s.getByRef(i);
            if (r) return r;
          }
          const a = this.#t(e, n);
          return i && s.set(null, i, a), a;
        }
        static #t(e, n) {
          const { xref: s, resources: i, pdfFunctionFactory: a, globalColorSpaceCache: r } = n;
          if (e = s.fetchIfRef(e), e instanceof te) switch (e.name) {
            case "G":
            case "DeviceGray":
              return this.gray;
            case "RGB":
            case "DeviceRGB":
              return this.rgb;
            case "DeviceRGBA":
              return this.rgba;
            case "CMYK":
            case "DeviceCMYK":
              return this.cmyk;
            case "Pattern":
              return new ru(null);
            default:
              if (i instanceof _) {
                const o = i.get("ColorSpace");
                if (o instanceof _) {
                  const l = o.get(e.name);
                  if (l) {
                    if (l instanceof te) return this.#t(l, n);
                    e = l;
                    break;
                  }
                }
              }
              return F(`Unrecognized ColorSpace: ${e.name}`), this.gray;
          }
          if (Array.isArray(e)) {
            const o = s.fetchIfRef(e[0]).name;
            let l, f, c, h, u, d;
            switch (o) {
              case "G":
              case "DeviceGray":
                return this.gray;
              case "RGB":
              case "DeviceRGB":
                return this.rgb;
              case "CMYK":
              case "DeviceCMYK":
                return this.cmyk;
              case "CalGray":
                return l = s.fetchIfRef(e[1]), h = l.getArray("WhitePoint"), u = l.getArray("BlackPoint"), d = l.get("Gamma"), new wg(h, u, d);
              case "CalRGB":
                l = s.fetchIfRef(e[1]), h = l.getArray("WhitePoint"), u = l.getArray("BlackPoint"), d = l.getArray("Gamma");
                const m = l.getArray("Matrix");
                return new Hn(h, u, d, m);
              case "ICCBased":
                const g = e[1] instanceof ae;
                if (g) {
                  const C = r.getByRef(e[1]);
                  if (C) return C;
                }
                const b = s.fetchIfRef(e[1]), w = b.dict;
                if (f = w.get("N"), Ci.isUsable) try {
                  const C = new Ci(b.getBytes(), "ICCBased", f);
                  return g && r.set(null, e[1], C), C;
                } catch (C) {
                  if (C instanceof Ft) throw C;
                  F(`ICCBased color space (${e[1]}): "${C}".`);
                }
                const x = w.getRaw("Alternate");
                if (x) {
                  const C = this.#e(x, n);
                  if (C.numComps === f) return C;
                  F("ICCBased color space: Ignoring incorrect /Alternate entry.");
                }
                if (f === 1) return this.gray;
                if (f === 3) return this.rgb;
                if (f === 4) return this.cmyk;
                break;
              case "Pattern":
                return c = e[1] || null, c && (c = this.#e(c, n)), new ru(c);
              case "I":
              case "Indexed":
                c = this.#e(e[1], n);
                const y = en(s.fetchIfRef(e[2]), 0, 255), j = s.fetchIfRef(e[3]);
                return new pg(c, y, j);
              case "Separation":
              case "DeviceN":
                const v = s.fetchIfRef(e[1]);
                f = Array.isArray(v) ? v.length : 1, c = this.#e(e[2], n);
                const q = a.create(e[3]);
                return new dg(f, c, q);
              case "Lab":
                l = s.fetchIfRef(e[1]), h = l.getArray("WhitePoint"), u = l.getArray("BlackPoint");
                const A = l.getArray("Range");
                return new xg(h, u, A);
              default:
                return F(`Unimplemented ColorSpace object: ${o}`), this.gray;
            }
          }
          return F(`Unrecognized ColorSpace object: ${e}`), this.gray;
        }
        static get gray() {
          return fe(this, "gray", new mg());
        }
        static get rgb() {
          return fe(this, "rgb", new gg());
        }
        static get rgba() {
          return fe(this, "rgba", new bg());
        }
        static get cmyk() {
          if (Uo.isUsable) try {
            return fe(this, "cmyk", new Uo());
          } catch {
            F("CMYK fallback: DeviceCMYK");
          }
          return fe(this, "cmyk", new ou());
        }
      };
      ks = class extends Ln {
        static {
          p(this, "JpegError");
        }
        constructor(e) {
          super(e, "JpegError");
        }
      };
      Af = class extends Ln {
        static {
          p(this, "DNLMarkerError");
        }
        constructor(e, n) {
          super(e, "DNLMarkerError"), this.scanLines = n;
        }
      };
      Cu = class extends Ln {
        static {
          p(this, "EOIMarkerError");
        }
        constructor(e) {
          super(e, "EOIMarkerError");
        }
      };
      Hr = new Uint8Array([0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40, 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63]);
      vl = 4017;
      ql = 799;
      Al = 3406;
      Sl = 2276;
      Cl = 1567;
      Il = 3784;
      Ga = 5793;
      Tl = 2896;
      p(Vg, "buildHuffmanTable");
      p(Sf, "getBlockBufferOffset");
      p(Kg, "decodeScan");
      p(Xg, "quantizeAndInverse");
      p(Yg, "buildComponentData");
      p(El, "findNextFileMarker");
      p(Qg, "prepareComponents");
      p(Iu, "readDataBlock");
      p(Jg, "skipData");
      Tu = class {
        static {
          p(this, "JpegImage");
        }
        constructor({ decodeTransform: e = null, colorTransform: n = -1 } = {}) {
          this._decodeTransform = e, this._colorTransform = n;
        }
        static canUseImageDecoder(e, n = -1) {
          let s = null, i = 0, a = null, r = nt(e, i);
          if (i += 2, r !== 65496) throw new ks("SOI not found");
          r = nt(e, i), i += 2;
          e: for (; r !== 65497; ) {
            switch (r) {
              case 65505:
                const { appData: o, oldOffset: l, newOffset: f } = Iu(e, i);
                if (i = f, o[0] === 69 && o[1] === 120 && o[2] === 105 && o[3] === 102 && o[4] === 0 && o[5] === 0) {
                  if (s) throw new ks("Duplicate EXIF-blocks found.");
                  s = { exifStart: l + 6, exifEnd: f };
                }
                r = nt(e, i), i += 2;
                continue;
              case 65472:
              case 65473:
              case 65474:
                a = e[i + 7];
                break e;
              case 65535:
                e[i] !== 255 && i--;
                break;
            }
            i = Jg(e, i), r = nt(e, i), i += 2;
          }
          return a === 4 || a === 3 && n === 0 ? null : s || {};
        }
        parse(e, { dnlScanLines: n = null } = {}) {
          let s = 0, i = null, a = null, r, o, l = 0;
          const f = [], c = [], h = [];
          let u = nt(e, s);
          if (s += 2, u !== 65496) throw new ks("SOI not found");
          u = nt(e, s), s += 2;
          e: for (; u !== 65497; ) {
            let d, m, g;
            switch (u) {
              case 65504:
              case 65505:
              case 65506:
              case 65507:
              case 65508:
              case 65509:
              case 65510:
              case 65511:
              case 65512:
              case 65513:
              case 65514:
              case 65515:
              case 65516:
              case 65517:
              case 65518:
              case 65519:
              case 65534:
                const { appData: b, newOffset: w } = Iu(e, s);
                s = w, u === 65504 && b[0] === 74 && b[1] === 70 && b[2] === 73 && b[3] === 70 && b[4] === 0 && (i = { version: { major: b[5], minor: b[6] }, densityUnits: b[7], xDensity: b[8] << 8 | b[9], yDensity: b[10] << 8 | b[11], thumbWidth: b[12], thumbHeight: b[13], thumbData: b.subarray(14, 14 + 3 * b[12] * b[13]) }), u === 65518 && b[0] === 65 && b[1] === 100 && b[2] === 111 && b[3] === 98 && b[4] === 101 && (a = { version: b[5] << 8 | b[6], flags0: b[7] << 8 | b[8], flags1: b[9] << 8 | b[10], transformCode: b[11] });
                break;
              case 65499:
                const x = nt(e, s);
                s += 2;
                const y = x + s - 2;
                let j;
                for (; s < y; ) {
                  const O = e[s++], N = new Uint16Array(64);
                  if (O >> 4 === 0) for (m = 0; m < 64; m++) j = Hr[m], N[j] = e[s++];
                  else if (O >> 4 === 1) for (m = 0; m < 64; m++) j = Hr[m], N[j] = nt(e, s), s += 2;
                  else throw new ks("DQT - invalid table spec");
                  f[O & 15] = N;
                }
                break;
              case 65472:
              case 65473:
              case 65474:
                if (r) throw new ks("Only single frame JPEGs supported");
                s += 2, r = {}, r.extended = u === 65473, r.progressive = u === 65474, r.precision = e[s++];
                const v = nt(e, s);
                s += 2, r.scanLines = n || v, r.samplesPerLine = nt(e, s), s += 2, r.components = [], r.componentIds = {};
                const q = e[s++];
                let A = 0, C = 0;
                for (d = 0; d < q; d++) {
                  const O = e[s], N = e[s + 1] >> 4, oe = e[s + 1] & 15;
                  A < N && (A = N), C < oe && (C = oe);
                  const je = e[s + 2];
                  g = r.components.push({ h: N, v: oe, quantizationId: je, quantizationTable: null }), r.componentIds[O] = g - 1, s += 3;
                }
                r.maxH = A, r.maxV = C, Qg(r);
                break;
              case 65476:
                const S = nt(e, s);
                for (s += 2, d = 2; d < S; ) {
                  const O = e[s++], N = new Uint8Array(16);
                  let oe = 0;
                  for (m = 0; m < 16; m++, s++) oe += N[m] = e[s];
                  const je = new Uint8Array(oe);
                  for (m = 0; m < oe; m++, s++) je[m] = e[s];
                  d += 17 + oe, (O >> 4 === 0 ? h : c)[O & 15] = Vg(N, je);
                }
                break;
              case 65501:
                s += 2, o = nt(e, s), s += 2;
                break;
              case 65498:
                const I = ++l === 1 && !n;
                s += 2;
                const T = e[s++], P = [];
                for (d = 0; d < T; d++) {
                  const O = e[s++], N = r.componentIds[O], oe = r.components[N];
                  oe.index = O;
                  const je = e[s++];
                  oe.huffmanTableDC = h[je >> 4], oe.huffmanTableAC = c[je & 15], P.push(oe);
                }
                const H = e[s++], G = e[s++], Z = e[s++];
                try {
                  const O = Kg(e, s, r, P, o, H, G, Z >> 4, Z & 15, I);
                  s += O;
                } catch (O) {
                  if (O instanceof Af) return F(`${O.message} -- attempting to re-parse the JPEG image.`), this.parse(e, { dnlScanLines: O.scanLines });
                  if (O instanceof Cu) {
                    F(`${O.message} -- ignoring the rest of the image data.`);
                    break e;
                  }
                  throw O;
                }
                break;
              case 65500:
                s += 4;
                break;
              case 65535:
                e[s] !== 255 && s--;
                break;
              default:
                const z = El(e, s - 2, s - 3);
                if (z?.invalid) {
                  F("JpegImage.parse - unexpected data, current marker is: " + z.invalid), s = z.offset;
                  break;
                }
                if (!z || s >= e.length - 1) {
                  F("JpegImage.parse - reached the end of the image data without finding an EOI marker (0xFFD9).");
                  break e;
                }
                throw new ks("JpegImage.parse - unknown marker: " + u.toString(16));
            }
            u = nt(e, s), s += 2;
          }
          if (!r) throw new ks("JpegImage.parse - no frame data found.");
          this.width = r.samplesPerLine, this.height = r.scanLines, this.jfif = i, this.adobe = a, this.components = [];
          for (const d of r.components) {
            const m = f[d.quantizationId];
            m && (d.quantizationTable = m), this.components.push({ index: d.index, output: Yg(r, d), scaleX: d.h / r.maxH, scaleY: d.v / r.maxV, blocksPerLine: d.blocksPerLine, blocksPerColumn: d.blocksPerColumn });
          }
          this.numComponents = this.components.length;
        }
        _getLinearizedBlockData(e, n, s = false) {
          const i = this.width / e, a = this.height / n;
          let r, o, l, f, c, h, u, d, m, g, b = 0, w;
          const x = this.components.length, y = e * n * x, j = new Uint8ClampedArray(y), v = new Uint32Array(e), q = 4294967288;
          let A;
          for (u = 0; u < x; u++) {
            if (r = this.components[u], o = r.scaleX * i, l = r.scaleY * a, b = u, w = r.output, f = r.blocksPerLine + 1 << 3, o !== A) {
              for (c = 0; c < e; c++) d = 0 | c * o, v[c] = (d & q) << 3 | d & 7;
              A = o;
            }
            for (h = 0; h < n; h++) for (d = 0 | h * l, g = f * (d & q) | (d & 7) << 3, c = 0; c < e; c++) j[b] = w[g + v[c]], b += x;
          }
          let C = this._decodeTransform;
          if (!s && x === 4 && !C && (C = new Int32Array([-256, 255, -256, 255, -256, 255, -256, 255])), C) for (u = 0; u < y; ) for (d = 0, m = 0; d < x; d++, u++, m += 2) j[u] = (j[u] * C[m] >> 8) + C[m + 1];
          return j;
        }
        get _isColorConversionNeeded() {
          return this.adobe ? !!this.adobe.transformCode : this.numComponents === 3 ? this._colorTransform === 0 ? false : !(this.components[0].index === 82 && this.components[1].index === 71 && this.components[2].index === 66) : this._colorTransform === 1;
        }
        _convertYccToRgb(e) {
          let n, s, i;
          for (let a = 0, r = e.length; a < r; a += 3) n = e[a], s = e[a + 1], i = e[a + 2], e[a] = n - 179.456 + 1.402 * i, e[a + 1] = n + 135.459 - 0.344 * s - 0.714 * i, e[a + 2] = n - 226.816 + 1.772 * s;
          return e;
        }
        _convertYccToRgba(e, n) {
          for (let s = 0, i = 0, a = e.length; s < a; s += 3, i += 4) {
            const r = e[s], o = e[s + 1], l = e[s + 2];
            n[i] = r - 179.456 + 1.402 * l, n[i + 1] = r + 135.459 - 0.344 * o - 0.714 * l, n[i + 2] = r - 226.816 + 1.772 * o, n[i + 3] = 255;
          }
          return n;
        }
        _convertYcckToRgb(e) {
          return this._convertYcckToCmyk(e), this._convertCmykToRgb(e);
        }
        _convertYcckToRgba(e) {
          return this._convertYcckToCmyk(e), this._convertCmykToRgba(e);
        }
        _convertYcckToCmyk(e) {
          let n, s, i;
          for (let a = 0, r = e.length; a < r; a += 4) n = e[a], s = e[a + 1], i = e[a + 2], e[a] = 434.456 - n - 1.402 * i, e[a + 1] = 119.541 - n + 0.344 * s + 0.714 * i, e[a + 2] = 481.816 - n - 1.772 * s;
          return e;
        }
        _convertCmykToRgb(e) {
          const n = e.length / 4;
          return ut.cmyk.getRgbBuffer(e, 0, n, e, 0, 8, 0), e.subarray(0, n * 3);
        }
        _convertCmykToRgba(e) {
          if (ut.cmyk.getRgbBuffer(e, 0, e.length / 4, e, 0, 8, 1), ut.cmyk instanceof ou) for (let n = 3, s = e.length; n < s; n += 4) e[n] = 255;
          return e;
        }
        getData({ width: e, height: n, forceRGBA: s = false, forceRGB: i = false, isSourcePDF: a = false }) {
          if (this.numComponents > 4) throw new ks("Unsupported color mode");
          const r = this._getLinearizedBlockData(e, n, a);
          if (this.numComponents === 1 && (s || i)) {
            const o = r.length * (s ? 4 : 3), l = new Uint8ClampedArray(o);
            let f = 0;
            if (s) vg(r, new Uint32Array(l.buffer));
            else for (const c of r) l[f++] = c, l[f++] = c, l[f++] = c;
            return l;
          } else if (this.numComponents === 3 && this._isColorConversionNeeded) {
            if (s) {
              const o = new Uint8ClampedArray(r.length / 3 * 4);
              return this._convertYccToRgba(r, o);
            }
            return this._convertYccToRgb(r);
          } else if (this.numComponents === 4) {
            if (this._isColorConversionNeeded) return s ? this._convertYcckToRgba(r) : i ? this._convertYcckToRgb(r) : this._convertYcckToCmyk(r);
            if (s) return this._convertCmykToRgba(r);
            if (i) return this._convertCmykToRgb(r);
          }
          return r;
        }
      };
      wr = class _wr extends Pn {
        static {
          p(this, "JpegStream");
        }
        static #e = qn.isImageDecoderSupported;
        constructor(e, n, s) {
          super(n), this.stream = e, this.dict = e.dict, this.maybeLength = n, this.params = s;
        }
        static get canUseImageDecoder() {
          return fe(this, "canUseImageDecoder", this.#e ? ImageDecoder.isTypeSupported("image/jpeg") : Promise.resolve(false));
        }
        static setOptions({ isImageDecoderSupported: e = false }) {
          this.#e = e;
        }
        get bytes() {
          return fe(this, "bytes", this.stream.getBytes(this.maybeLength));
        }
        ensureBuffer(e) {
        }
        readBlock() {
          this.decodeImage();
        }
        get jpegOptions() {
          const e = { decodeTransform: void 0, colorTransform: void 0 }, n = this.dict.getArray("D", "Decode");
          if ((this.forceRGBA || this.forceRGB) && Array.isArray(n)) {
            const s = this.dict.get("BPC", "BitsPerComponent") || 8, i = n.length, a = new Int32Array(i);
            let r = false;
            const o = (1 << s) - 1;
            for (let l = 0; l < i; l += 2) a[l] = (n[l + 1] - n[l]) * 256 | 0, a[l + 1] = n[l] * o | 0, (a[l] !== 256 || a[l + 1] !== 0) && (r = true);
            r && (e.decodeTransform = a);
          }
          if (this.params instanceof _) {
            const s = this.params.get("ColorTransform");
            Number.isInteger(s) && (e.colorTransform = s);
          }
          return fe(this, "jpegOptions", e);
        }
        #t(e) {
          for (let n = 0, s = e.length - 1; n < s; n++) if (e[n] === 255 && e[n + 1] === 216) {
            n > 0 && (e = e.subarray(n));
            break;
          }
          return e;
        }
        decodeImage(e) {
          if (this.eof) return this.buffer;
          e = this.#t(e || this.bytes);
          const n = new Tu(this.jpegOptions);
          n.parse(e);
          const s = n.getData({ width: this.drawWidth, height: this.drawHeight, forceRGBA: this.forceRGBA, forceRGB: this.forceRGB, isSourcePDF: true });
          return this.buffer = s, this.bufferLength = s.length, this.eof = true, this.buffer;
        }
        get canAsyncDecodeImageFromBuffer() {
          return this.stream.isAsync;
        }
        async getTransferableImage() {
          if (!await _wr.canUseImageDecoder) return null;
          const e = this.jpegOptions;
          if (e.decodeTransform) return null;
          let n;
          try {
            const s = this.canAsyncDecodeImageFromBuffer && await this.stream.asyncGetBytes() || this.bytes;
            if (!s) return null;
            let i = this.#t(s);
            const a = Tu.canUseImageDecoder(i, e.colorTransform);
            return a ? (a.exifStart && (i = i.slice(), i.fill(0, a.exifStart, a.exifEnd)), n = new ImageDecoder({ data: i, type: "image/jpeg", preferAnimation: false }), (await n.decode()).image) : null;
          } catch (s) {
            return F(`getTransferableImage - failed: "${s}".`), null;
          } finally {
            n?.close();
          }
        }
        get isImageStream() {
          return true;
        }
      };
      Fl = class extends Ln {
        static {
          p(this, "JpxError");
        }
        constructor(e) {
          super(e, "JpxError");
        }
      };
      Bl = class {
        static {
          p(this, "JpxImage");
        }
        static #e = null;
        static #t = null;
        static #n = null;
        static #s = true;
        static #i = true;
        static #a = null;
        static setOptions({ handler: e, useWasm: n, useWorkerFetch: s, wasmUrl: i }) {
          this.#s = n, this.#i = s, this.#a = i, s || (this.#t = e);
        }
        static async #r(e) {
        }
        static async #o(e, n, s) {
        }
        static async decode(e, { numComponents: n = 4, isIndexedColormap: s = false, smaskInData: i = false, reducePower: a = 0 } = {}) {
          const r = await this.#n;
          if (!r) throw new Fl("OpenJPEG failed to initialize");
          let o;
          try {
            const l = e.length;
            if (o = r._malloc(l), r.writeArrayToMemory(e, o), r._jp2_decode(o, l, n > 0 ? n : 0, !!s, !!i, a)) {
              const { errorMessages: h } = r;
              throw h ? (delete r.errorMessages, new Fl(h)) : new Fl("Unknown error");
            }
            const { imageData: c } = r;
            return r.imageData = null, c;
          } finally {
            o && r._free(o);
          }
        }
        static cleanup() {
          this.#n = null;
        }
        static parseImageProperties(e) {
          let n = e.getByte();
          for (; n >= 0; ) {
            const s = n;
            if (n = e.getByte(), (s << 8 | n) === 65361) {
              e.skip(4);
              const a = e.getInt32() >>> 0, r = e.getInt32() >>> 0, o = e.getInt32() >>> 0, l = e.getInt32() >>> 0;
              e.skip(16);
              const f = e.getUint16();
              return { width: a - o, height: r - l, bitsPerComponent: 8, componentsCount: f };
            }
          }
          throw new Fl("No size marker found in JPX stream");
        }
      };
      p(Or, "addState");
      aa = [];
      Or(aa, [E.save, E.transform, E.paintInlineImageXObject, E.restore], null, p(function(e, n) {
        const s = e.fnArray, i = e.iCurr - 3, a = (n - i) % 4;
        switch (a) {
          case 0:
            return s[n] === E.save;
          case 1:
            return s[n] === E.transform;
          case 2:
            return s[n] === E.paintInlineImageXObject;
          case 3:
            return s[n] === E.restore;
        }
        throw new Error(`iterateInlineImageGroup - invalid pos: ${a}`);
      }, "iterateInlineImageGroup"), p(function(e, n) {
        const o = e.fnArray, l = e.argsArray, f = e.iCurr, c = f - 3, h = f - 2, u = f - 1, d = Math.min(Math.floor((n - c) / 4), 200);
        if (d < 10) return n - (n - c) % 4;
        let m = 0;
        const g = [];
        let b = 0, w = 1, x = 1;
        for (let C = 0; C < d; C++) {
          const S = l[h + (C << 2)], I = l[u + (C << 2)][0];
          w + I.width > 1e3 && (m = Math.max(m, w), x += b + 2, w = 0, b = 0), g.push({ transform: S, x: w, y: x, w: I.width, h: I.height }), w += I.width + 2, b = Math.max(b, I.height);
        }
        const y = Math.max(m, w) + 1, j = x + b + 1, v = new Uint8Array(y * j * 4), q = y << 2;
        for (let C = 0; C < d; C++) {
          const S = l[u + (C << 2)][0].data, I = g[C].w << 2;
          let T = 0, P = g[C].x + g[C].y * y << 2;
          v.set(S.subarray(0, I), P - q);
          for (let H = 0, G = g[C].h; H < G; H++) v.set(S.subarray(T, T + I), P), T += I, P += q;
          for (v.set(S.subarray(T - I, T), P); P >= 0; ) S[P - 4] = S[P], S[P - 3] = S[P + 1], S[P - 2] = S[P + 2], S[P - 1] = S[P + 3], S[P + I] = S[P + I - 4], S[P + I + 1] = S[P + I - 3], S[P + I + 2] = S[P + I - 2], S[P + I + 3] = S[P + I - 1], P -= q;
        }
        const A = { width: y, height: j };
        if (e.isOffscreenCanvasSupported) {
          const C = new OffscreenCanvas(y, j);
          C.getContext("2d").putImageData(new ImageData(new Uint8ClampedArray(v.buffer), y, j), 0, 0), A.bitmap = C.transferToImageBitmap(), A.data = null;
        } else A.kind = dn.RGBA_32BPP, A.data = v;
        return o.splice(c, d * 4, E.paintInlineImageXObjectGroup), l.splice(c, d * 4, [A, g]), c + 1;
      }, "foundInlineImageGroup")), Or(aa, [E.save, E.transform, E.paintImageMaskXObject, E.restore], null, p(function(e, n) {
        const s = e.fnArray, i = e.iCurr - 3, a = (n - i) % 4;
        switch (a) {
          case 0:
            return s[n] === E.save;
          case 1:
            return s[n] === E.transform;
          case 2:
            return s[n] === E.paintImageMaskXObject;
          case 3:
            return s[n] === E.restore;
        }
        throw new Error(`iterateImageMaskGroup - invalid pos: ${a}`);
      }, "iterateImageMaskGroup"), p(function(e, n) {
        const r = e.fnArray, o = e.argsArray, l = e.iCurr, f = l - 3, c = l - 2, h = l - 1;
        let u = Math.floor((n - f) / 4);
        if (u < 10) return n - (n - f) % 4;
        let d = false, m, g;
        const b = o[h][0], w = o[c][0], x = o[c][1], y = o[c][2], j = o[c][3];
        if (x === y) {
          d = true, m = c + 4;
          let v = h + 4;
          for (let q = 1; q < u; q++, m += 4, v += 4) if (g = o[m], o[v][0] !== b || g[0] !== w || g[1] !== x || g[2] !== y || g[3] !== j) {
            q < 10 ? d = false : u = q;
            break;
          }
        }
        if (d) {
          u = Math.min(u, 1e3);
          const v = new Float32Array(u * 2);
          m = c;
          for (let q = 0; q < u; q++, m += 4) g = o[m], v[q << 1] = g[4], v[(q << 1) + 1] = g[5];
          r.splice(f, u * 4, E.paintImageMaskXObjectRepeat), o.splice(f, u * 4, [b, w, x, y, j, v]);
        } else {
          u = Math.min(u, 100);
          const v = [];
          for (let q = 0; q < u; q++) {
            g = o[c + (q << 2)];
            const A = o[h + (q << 2)][0];
            v.push({ data: A.data, width: A.width, height: A.height, interpolate: A.interpolate, count: A.count, transform: g });
          }
          r.splice(f, u * 4, E.paintImageMaskXObjectGroup), o.splice(f, u * 4, [v]);
        }
        return f + 1;
      }, "foundImageMaskGroup")), Or(aa, [E.save, E.transform, E.paintImageXObject, E.restore], function(t) {
        const e = t.argsArray, n = t.iCurr - 2;
        return e[n][1] === 0 && e[n][2] === 0;
      }, p(function(e, n) {
        const s = e.fnArray, i = e.argsArray, a = e.iCurr - 3, r = (n - a) % 4;
        switch (r) {
          case 0:
            return s[n] === E.save;
          case 1:
            if (s[n] !== E.transform) return false;
            const o = e.iCurr - 2, l = i[o][0], f = i[o][3];
            return !(i[n][0] !== l || i[n][1] !== 0 || i[n][2] !== 0 || i[n][3] !== f);
          case 2:
            if (s[n] !== E.paintImageXObject) return false;
            const c = e.iCurr - 1, h = i[c][0];
            return i[n][0] === h;
          case 3:
            return s[n] === E.restore;
        }
        throw new Error(`iterateImageGroup - invalid pos: ${r}`);
      }, "iterateImageGroup"), function(t, e) {
        const i = t.fnArray, a = t.argsArray, r = t.iCurr, o = r - 3, l = r - 2, f = r - 1, c = a[f][0], h = a[l][0], u = a[l][3], d = Math.min(Math.floor((e - o) / 4), 1e3);
        if (d < 3) return e - (e - o) % 4;
        const m = new Float32Array(d * 2);
        let g = l;
        for (let w = 0; w < d; w++, g += 4) {
          const x = a[g];
          m[w << 1] = x[4], m[(w << 1) + 1] = x[5];
        }
        const b = [c, h, u, m];
        return i.splice(o, d * 4, E.paintImageXObjectRepeat), a.splice(o, d * 4, b), o + 1;
      }), Or(aa, [E.beginText, E.setFont, E.setTextMatrix, E.showText, E.endText], null, p(function(e, n) {
        const s = e.fnArray, i = e.argsArray, a = e.iCurr - 4, r = (n - a) % 5;
        switch (r) {
          case 0:
            return s[n] === E.beginText;
          case 1:
            return s[n] === E.setFont;
          case 2:
            return s[n] === E.setTextMatrix;
          case 3:
            if (s[n] !== E.showText) return false;
            const o = e.iCurr - 3, l = i[o][0], f = i[o][1];
            return !(i[n][0] !== l || i[n][1] !== f);
          case 4:
            return s[n] === E.endText;
        }
        throw new Error(`iterateShowTextGroup - invalid pos: ${r}`);
      }, "iterateShowTextGroup"), function(t, e) {
        const i = t.fnArray, a = t.argsArray, r = t.iCurr, o = r - 4, l = r - 3, f = r - 2, c = r - 1, h = r, u = a[l][0], d = a[l][1];
        let m = Math.min(Math.floor((e - o) / 5), 1e3);
        if (m < 3) return e - (e - o) % 5;
        let g = o;
        o >= 4 && i[o - 4] === i[l] && i[o - 3] === i[f] && i[o - 2] === i[c] && i[o - 1] === i[h] && a[o - 4][0] === u && a[o - 4][1] === d && (m++, g -= 5);
        let b = g + 4;
        for (let w = 1; w < m; w++) i.splice(b, 3), a.splice(b, 3), b += 2;
        return b + 1;
      }), Or(aa, [E.save, E.transform, E.constructPath, E.restore], (t) => {
        const e = t.argsArray, n = t.iCurr - 1, s = e[n][0];
        if (s !== E.stroke && s !== E.closeStroke && s !== E.fillStroke && s !== E.eoFillStroke && s !== E.closeFillStroke && s !== E.closeEOFillStroke) return true;
        const i = t.iCurr - 2, a = e[i];
        return a[0] === 1 && a[1] === 0 && a[2] === 0 && a[3] === 1;
      }, () => false, (t, e) => {
        const { fnArray: n, argsArray: s } = t, i = t.iCurr, a = i - 3, r = i - 2, o = i - 1, l = s[o], f = s[r], [, [c], h] = l;
        if (h) {
          pt.scaleMinMax(f, h);
          for (let u = 0, d = c.length; u < d; ) switch (c[u++]) {
            case Et.moveTo:
            case Et.lineTo:
              pt.applyTransform(c, f, u), u += 2;
              break;
            case Et.curveTo:
              pt.applyTransformToBezier(c, f, u), u += 6;
              break;
          }
        }
        return n.splice(a, 4, E.constructPath), s.splice(a, 4, l), a + 1;
      });
      Eu = class {
        static {
          p(this, "NullOptimizer");
        }
        constructor(e) {
          this.queue = e;
        }
        _optimize() {
        }
        push(e, n) {
          this.queue.fnArray.push(e), this.queue.argsArray.push(n), this._optimize();
        }
        flush() {
        }
        reset() {
        }
      };
      Zg = class extends Eu {
        static {
          p(this, "QueueOptimizer");
        }
        constructor(e) {
          super(e), this.state = null, this.context = { iCurr: 0, fnArray: e.fnArray, argsArray: e.argsArray, isOffscreenCanvasSupported: kn.isOffscreenCanvasSupported }, this.match = null, this.lastProcessed = 0;
        }
        _optimize() {
          const e = this.queue.fnArray;
          let n = this.lastProcessed, s = e.length, i = this.state, a = this.match;
          if (!i && !a && n + 1 === s && !aa[e[n]]) {
            this.lastProcessed = s;
            return;
          }
          const r = this.context;
          for (; n < s; ) {
            if (a) {
              if ((0, a.iterateFn)(r, n)) {
                n++;
                continue;
              }
              if (n = (0, a.processFn)(r, n + 1), s = e.length, a = null, i = null, n >= s) break;
            }
            if (i = (i || aa)[e[n]], !i || Array.isArray(i)) {
              n++;
              continue;
            }
            if (r.iCurr = n, n++, i.checkFn && !(0, i.checkFn)(r)) {
              i = null;
              continue;
            }
            a = i, i = null;
          }
          this.state = i, this.match = a, this.lastProcessed = n;
        }
        flush() {
          for (; this.match; ) {
            const e = this.queue.fnArray.length;
            this.lastProcessed = (0, this.match.processFn)(this.context, e), this.match = null, this.state = null, this._optimize();
          }
        }
        reset() {
          this.state = null, this.match = null, this.lastProcessed = 0;
        }
      };
      kn = class _kn {
        static {
          p(this, "OperatorList");
        }
        static CHUNK_SIZE = 1e3;
        static CHUNK_SIZE_ABOUT = this.CHUNK_SIZE - 5;
        static isOffscreenCanvasSupported = false;
        constructor(e = 0, n) {
          this._streamSink = n, this.fnArray = [], this.argsArray = [], this.optimizer = n && !(e & On.OPLIST) ? new Zg(this) : new Eu(this), this.dependencies = /* @__PURE__ */ new Set(), this._totalLength = 0, this.weight = 0, this._resolved = n ? null : Promise.resolve();
        }
        static setOptions({ isOffscreenCanvasSupported: e }) {
          this.isOffscreenCanvasSupported = e;
        }
        get length() {
          return this.argsArray.length;
        }
        get ready() {
          return this._resolved || this._streamSink.ready;
        }
        get totalLength() {
          return this._totalLength + this.length;
        }
        addOp(e, n) {
          this.optimizer.push(e, n), this.weight++, this._streamSink && (this.weight >= _kn.CHUNK_SIZE ? this.flush() : this.weight >= _kn.CHUNK_SIZE_ABOUT && (e === E.restore || e === E.endText) && this.flush());
        }
        addImageOps(e, n, s, i = false) {
          i && (this.addOp(E.save), this.addOp(E.setGState, [[["SMask", false]]])), s !== void 0 && this.addOp(E.beginMarkedContentProps, ["OC", s]), this.addOp(e, n), s !== void 0 && this.addOp(E.endMarkedContent, []), i && this.addOp(E.restore);
        }
        addDependency(e) {
          this.dependencies.has(e) || (this.dependencies.add(e), this.addOp(E.dependency, [e]));
        }
        addDependencies(e) {
          for (const n of e) this.addDependency(n);
        }
        addOpList(e) {
          if (!(e instanceof _kn)) {
            F('addOpList - ignoring invalid "opList" parameter.');
            return;
          }
          for (const n of e.dependencies) this.dependencies.add(n);
          for (let n = 0, s = e.length; n < s; n++) this.addOp(e.fnArray[n], e.argsArray[n]);
        }
        getIR() {
          return { fnArray: this.fnArray, argsArray: this.argsArray, length: this.length };
        }
        get _transfers() {
          const e = [], { fnArray: n, argsArray: s, length: i } = this;
          for (let a = 0; a < i; a++) switch (n[a]) {
            case E.paintInlineImageXObject:
            case E.paintInlineImageXObjectGroup:
            case E.paintImageMaskXObject: {
              const { bitmap: l, data: f } = s[a][0];
              (l || f?.buffer) && e.push(l || f.buffer);
              break;
            }
            case E.constructPath: {
              const [, [l], f] = s[a];
              l && e.push(l.buffer, f.buffer);
              break;
            }
            case E.paintFormXObjectBegin:
              const [r, o] = s[a];
              r && e.push(r.buffer), o && e.push(o.buffer);
              break;
            case E.setTextMatrix:
              e.push(s[a][0].buffer);
              break;
          }
          return e;
        }
        flush(e = false, n = null) {
          this.optimizer.flush();
          const s = this.length;
          this._totalLength += s, this._streamSink.enqueue({ fnArray: this.fnArray, argsArray: this.argsArray, lastChunk: e, separateAnnots: n, length: s }, 1, this._transfers), this.dependencies.clear(), this.fnArray.length = 0, this.argsArray.length = 0, this.weight = 0, this.optimizer.reset();
        }
      };
      p(Dn, "hexToInt");
      p(Rl, "hexToStr");
      p(Un, "addHex");
      p(ra, "incHex");
      Wa = 16;
      eb = 19;
      tb = class extends jt {
        static {
          p(this, "BinaryCMapStream");
        }
        tmpBuf = new Uint8Array(eb);
        constructor(e) {
          super(e, 0, e.length, null);
        }
        readNumber() {
          let e = 0, n;
          do {
            const s = this.getByte();
            if (s < 0) throw new Q("unexpected EOF in bcmap");
            n = !(s & 128), e = e << 7 | s & 127;
          } while (!n);
          return e;
        }
        readSigned() {
          const e = this.readNumber();
          return e & 1 ? ~(e >>> 1) : e >>> 1;
        }
        readHex(e, n) {
          e.set(this.getBytes(n + 1));
        }
        readHexNumber(e, n) {
          let s;
          const i = this.tmpBuf;
          let a = 0;
          do {
            const f = this.getByte();
            if (f < 0) throw new Q("unexpected EOF in bcmap");
            s = !(f & 128), i[a++] = f & 127;
          } while (!s);
          let r = n, o = 0, l = 0;
          for (; r >= 0; ) {
            for (; l < 8 && i.length > 0; ) o |= i[--a] << l, l += 7;
            e[r] = o & 255, r--, o >>= 8, l -= 8;
          }
        }
        readHexSigned(e, n) {
          this.readHexNumber(e, n);
          const s = e[n] & 1 ? 255 : 0;
          let i = 0;
          for (let a = 0; a <= n; a++) i = (i & 1) << 8 | e[a], e[a] = i >> 1 ^ s;
        }
        readString() {
          const e = this.readNumber(), n = new Array(e);
          for (let s = 0; s < e; s++) n[s] = this.readNumber();
          return String.fromCharCode(...n);
        }
      };
      nb = class {
        static {
          p(this, "BinaryCMapReader");
        }
        async process(e, n, s) {
          const i = new tb(e), a = i.getByte();
          n.vertical = !!(a & 1);
          let r = null;
          const o = new Uint8Array(Wa), l = new Uint8Array(Wa), f = new Uint8Array(Wa), c = new Uint8Array(Wa), h = new Uint8Array(Wa);
          let u, d;
          for (; (d = i.getByte()) >= 0; ) {
            const m = d >> 5;
            if (m === 7) {
              switch (d & 31) {
                case 0:
                  i.readString();
                  break;
                case 1:
                  r = i.readString();
                  break;
              }
              continue;
            }
            const g = !!(d & 16), b = d & 15;
            if (b + 1 > Wa) throw new Error("BinaryCMapReader.process: Invalid dataSize.");
            const w = 1, x = i.readNumber();
            switch (m) {
              case 0:
                i.readHex(o, b), i.readHexNumber(l, b), Un(l, o, b), n.addCodespaceRange(b + 1, Dn(o, b), Dn(l, b));
                for (let y = 1; y < x; y++) ra(l, b), i.readHexNumber(o, b), Un(o, l, b), i.readHexNumber(l, b), Un(l, o, b), n.addCodespaceRange(b + 1, Dn(o, b), Dn(l, b));
                break;
              case 1:
                i.readHex(o, b), i.readHexNumber(l, b), Un(l, o, b), i.readNumber();
                for (let y = 1; y < x; y++) ra(l, b), i.readHexNumber(o, b), Un(o, l, b), i.readHexNumber(l, b), Un(l, o, b), i.readNumber();
                break;
              case 2:
                i.readHex(f, b), u = i.readNumber(), n.mapOne(Dn(f, b), u);
                for (let y = 1; y < x; y++) ra(f, b), g || (i.readHexNumber(h, b), Un(f, h, b)), u = i.readSigned() + (u + 1), n.mapOne(Dn(f, b), u);
                break;
              case 3:
                i.readHex(o, b), i.readHexNumber(l, b), Un(l, o, b), u = i.readNumber(), n.mapCidRange(Dn(o, b), Dn(l, b), u);
                for (let y = 1; y < x; y++) ra(l, b), g ? o.set(l) : (i.readHexNumber(o, b), Un(o, l, b)), i.readHexNumber(l, b), Un(l, o, b), u = i.readNumber(), n.mapCidRange(Dn(o, b), Dn(l, b), u);
                break;
              case 4:
                i.readHex(f, w), i.readHex(c, b), n.mapOne(Dn(f, w), Rl(c, b));
                for (let y = 1; y < x; y++) ra(f, w), g || (i.readHexNumber(h, w), Un(f, h, w)), ra(c, b), i.readHexSigned(h, b), Un(c, h, b), n.mapOne(Dn(f, w), Rl(c, b));
                break;
              case 5:
                i.readHex(o, w), i.readHexNumber(l, w), Un(l, o, w), i.readHex(c, b), n.mapBfRange(Dn(o, w), Dn(l, w), Rl(c, b));
                for (let y = 1; y < x; y++) ra(l, w), g ? o.set(l) : (i.readHexNumber(o, w), Un(o, l, w)), i.readHexNumber(l, w), Un(l, o, w), i.readHex(c, b), n.mapBfRange(Dn(o, w), Dn(l, w), Rl(c, b));
                break;
              default:
                throw new Error(`BinaryCMapReader.process - unknown type: ${m}`);
            }
          }
          return r ? s(r) : n;
        }
      };
      sb = class extends Pn {
        static {
          p(this, "Ascii85Stream");
        }
        constructor(e, n) {
          n && (n *= 0.8), super(n), this.stream = e, this.dict = e.dict, this.input = new Uint8Array(5);
        }
        readBlock() {
          const i = this.stream;
          let a = i.getByte();
          for (; ls(a); ) a = i.getByte();
          if (a === -1 || a === 126) {
            this.eof = true;
            return;
          }
          const r = this.bufferLength;
          let o, l;
          if (a === 122) {
            for (o = this.ensureBuffer(r + 4), l = 0; l < 4; ++l) o[r + l] = 0;
            this.bufferLength += 4;
          } else {
            const f = this.input;
            for (f[0] = a, l = 1; l < 5; ++l) {
              for (a = i.getByte(); ls(a); ) a = i.getByte();
              if (f[l] = a, a === -1 || a === 126) break;
            }
            if (o = this.ensureBuffer(r + l - 1), this.bufferLength += l - 1, l < 5) {
              for (; l < 5; ++l) f[l] = 117;
              this.eof = true;
            }
            let c = 0;
            for (l = 0; l < 5; ++l) c = c * 85 + (f[l] - 33);
            for (l = 3; l >= 0; --l) o[r + l] = c & 255, c >>= 8;
          }
        }
      };
      ib = class extends Pn {
        static {
          p(this, "AsciiHexStream");
        }
        constructor(e, n) {
          n && (n *= 0.5), super(n), this.stream = e, this.dict = e.dict, this.firstDigit = -1;
        }
        readBlock() {
          const n = this.stream.getBytes(8e3);
          if (!n.length) {
            this.eof = true;
            return;
          }
          const s = n.length + 1 >> 1, i = this.ensureBuffer(this.bufferLength + s);
          let a = this.bufferLength, r = this.firstDigit;
          for (const o of n) {
            let l;
            if (o >= 48 && o <= 57) l = o & 15;
            else if (o >= 65 && o <= 70 || o >= 97 && o <= 102) l = (o & 15) + 9;
            else if (o === 62) {
              this.eof = true;
              break;
            } else continue;
            r < 0 ? r = l : (i[a++] = r << 4 | l, r = -1);
          }
          r >= 0 && this.eof && (i[a++] = r << 4, r = -1), this.firstDigit = r, this.bufferLength = a;
        }
      };
      ab = p(() => {
        const t = Int32Array.from([256, 402, 436, 468, 500, 534, 566, 598, 630, 662, 694, 726, 758, 790, 822, 854, 886, 920, 952, 984, 1016, 1048, 1080]), e = Int32Array.from([1, 2, 3, 4, 0, 5, 17, 6, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15]), n = Int32Array.from([0, 3, 2, 1, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3]), s = Int32Array.from([0, 0, 0, 0, -1, 1, -2, 2, -3, 3, -1, 1, -2, 2, -3, 3]), i = Int32Array.from([131072, 131076, 131075, 196610, 131072, 131076, 131075, 262145, 131072, 131076, 131075, 196610, 131072, 131076, 131075, 262149]), a = Int32Array.from([1, 5, 9, 13, 17, 25, 33, 41, 49, 65, 81, 97, 113, 145, 177, 209, 241, 305, 369, 497, 753, 1265, 2289, 4337, 8433, 16625]), r = Int32Array.from([2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 7, 8, 9, 10, 11, 12, 13, 24]), o = Int16Array.from([0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 7, 8, 9, 10, 12, 14, 24]), l = Int16Array.from([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 7, 8, 9, 10, 24]), f = new Int16Array(2816);
        d(f);
        function c(k) {
          let B = -1, D = 16, $ = k;
          for (; D > 0; ) {
            let U = $ >> D;
            U !== 0 && (B += D, $ = U), D = D >> 1;
          }
          return B + $;
        }
        p(c, "log2floor");
        function h(k, B, D) {
          return 16 + B + 2 * (D << k);
        }
        p(h, "calculateDistanceAlphabetSize");
        function u(k, B, D, $) {
          if (B < $ + (2 << D)) return bt(k, -23);
          const U = (B - $ >> D) + 4, ie = c(U) - 1;
          return ((ie - 1 << 1 | U >> ie & 1) - 1 << D) + (1 << D) + $ + 16;
        }
        p(u, "calculateDistanceAlphabetLimit");
        function d(k) {
          const B = new Int32Array(24), D = new Int32Array(24);
          D[0] = 2;
          for (let $ = 0; $ < 23; ++$) B[$ + 1] = B[$] + (1 << o[$]), D[$ + 1] = D[$] + (1 << l[$]);
          for (let $ = 0; $ < 704; ++$) {
            let U = $ >> 6, ie = -4;
            U >= 2 && (U -= 2, ie = 0);
            const pe = (170064 >> U * 2 & 3) << 3 | $ >> 3 & 7, ke = (156228 >> U * 2 & 3) << 3 | $ & 7, De = D[ke], $e = ie + Math.min(De, 5) - 2, Me = $ * 4;
            k[Me] = o[pe] | l[ke] << 8, k[Me + 1] = B[pe], k[Me + 2] = D[ke], k[Me + 3] = $e;
          }
        }
        p(d, "unpackCommandLookupTable");
        function m(k) {
          const B = k.isLargeWindow;
          if (k.isLargeWindow = 0, k.bitOffset >= 16 && (k.accumulator32 = k.shortBuffer[k.halfOffset++] << 16 | k.accumulator32 >>> 16, k.bitOffset -= 16), we(k, 1) === 0) return 16;
          let D = we(k, 3);
          return D !== 0 ? 17 + D : (D = we(k, 3), D !== 0 ? D === 1 ? B === 0 || (k.isLargeWindow = 1, we(k, 1) === 1) || (D = we(k, 6), D < 10 || D > 30) ? -1 : D : 8 + D : 17);
        }
        p(m, "decodeWindowBits");
        function g(k, B) {
          return k.runningState !== 1 ? bt(k, -24) : (k.cdNumChunks === 0 && (k.cdChunks = new Array(16), k.cdChunkOffsets = new Int32Array(16), k.cdBlockBits = -1), k.cdNumChunks === 15 ? bt(k, -27) : (k.cdChunks[k.cdNumChunks] = B, k.cdNumChunks++, k.cdTotalSize += B.length, k.cdChunkOffsets[k.cdNumChunks] = k.cdTotalSize, 0));
        }
        p(g, "attachDictionaryChunk");
        function b(k) {
          if (k.runningState !== 0) return bt(k, -26);
          k.blockTrees = new Int32Array(3091), k.blockTrees[0] = 7, k.distRbIdx = 3;
          let B = u(k, 2147483644, 3, 120);
          if (B < 0) return B;
          const D = B;
          return k.distExtraBits = new Int8Array(D), k.distOffset = new Int32Array(D), B = me(k), B < 0 ? B : (k.runningState = 1, 0);
        }
        p(b, "initState");
        function w(k) {
          return k.runningState === 0 ? bt(k, -25) : (k.runningState > 0 && (k.runningState = 11), 0);
        }
        p(w, "close");
        function x(k) {
          if (k.bitOffset >= 16 && (k.accumulator32 = k.shortBuffer[k.halfOffset++] << 16 | k.accumulator32 >>> 16, k.bitOffset -= 16), we(k, 1) !== 0) {
            const B = we(k, 3);
            return B === 0 ? 1 : we(k, B) + (1 << B);
          }
          return 0;
        }
        p(x, "decodeVarLenUnsignedByte");
        function y(k) {
          if (k.bitOffset >= 16 && (k.accumulator32 = k.shortBuffer[k.halfOffset++] << 16 | k.accumulator32 >>> 16, k.bitOffset -= 16), k.inputEnd = we(k, 1), k.metaBlockLength = 0, k.isUncompressed = 0, k.isMetadata = 0, k.inputEnd !== 0 && we(k, 1) !== 0) return 0;
          const B = we(k, 2) + 4;
          if (B === 7) {
            if (k.isMetadata = 1, we(k, 1) !== 0) return bt(k, -6);
            const D = we(k, 2);
            if (D === 0) return 0;
            for (let $ = 0; $ < D; ++$) {
              k.bitOffset >= 16 && (k.accumulator32 = k.shortBuffer[k.halfOffset++] << 16 | k.accumulator32 >>> 16, k.bitOffset -= 16);
              const U = we(k, 8);
              if (U === 0 && $ + 1 === D && D > 1) return bt(k, -8);
              k.metaBlockLength += U << $ * 8;
            }
          } else for (let D = 0; D < B; ++D) {
            k.bitOffset >= 16 && (k.accumulator32 = k.shortBuffer[k.halfOffset++] << 16 | k.accumulator32 >>> 16, k.bitOffset -= 16);
            const $ = we(k, 4);
            if ($ === 0 && D + 1 === B && B > 4) return bt(k, -8);
            k.metaBlockLength += $ << D * 4;
          }
          return k.metaBlockLength++, k.inputEnd === 0 && (k.isUncompressed = we(k, 1)), 0;
        }
        p(y, "decodeMetaBlockLength");
        function j(k, B, D) {
          let $ = k[B];
          const U = D.accumulator32 >>> D.bitOffset;
          $ += U & 255;
          const ie = k[$] >> 16, pe = k[$] & 65535;
          if (ie <= 8) return D.bitOffset += ie, pe;
          $ += pe;
          const ke = (1 << ie) - 1;
          return $ += (U & ke) >>> 8, D.bitOffset += (k[$] >> 16) + 8, k[$] & 65535;
        }
        p(j, "readSymbol");
        function v(k, B, D) {
          D.bitOffset >= 16 && (D.accumulator32 = D.shortBuffer[D.halfOffset++] << 16 | D.accumulator32 >>> 16, D.bitOffset -= 16);
          const $ = j(k, B, D), U = r[$];
          return D.bitOffset >= 16 && (D.accumulator32 = D.shortBuffer[D.halfOffset++] << 16 | D.accumulator32 >>> 16, D.bitOffset -= 16), a[$] + (U <= 16 ? we(D, U) : Se(D, U));
        }
        p(v, "readBlockLength");
        function q(k, B) {
          let D = B;
          const $ = k[D];
          for (; D > 0; ) k[D] = k[D - 1], D--;
          k[0] = $;
        }
        p(q, "moveToFront");
        function A(k, B) {
          const D = new Int32Array(256);
          for (let $ = 0; $ < 256; ++$) D[$] = $;
          for (let $ = 0; $ < B; ++$) {
            const U = k[$] & 255;
            k[$] = D[U], U !== 0 && q(D, U);
          }
        }
        p(A, "inverseMoveToFrontTransform");
        function C(k, B, D, $) {
          let U = 0, ie = 8, pe = 0, ke = 0, De = 32768;
          const $e = new Int32Array(33), Me = $e.length - 1;
          for (ge($e, Me, 5, k, 18); U < B && De > 0; ) {
            if ($.halfOffset > 2030) {
              const ht = be($);
              if (ht < 0) return ht;
            }
            $.bitOffset >= 16 && ($.accumulator32 = $.shortBuffer[$.halfOffset++] << 16 | $.accumulator32 >>> 16, $.bitOffset -= 16);
            const Qe = $.accumulator32 >>> $.bitOffset & 31;
            $.bitOffset += $e[Qe] >> 16;
            const rt = $e[Qe] & 65535;
            if (rt < 16) pe = 0, D[U++] = rt, rt !== 0 && (ie = rt, De -= 32768 >> rt);
            else {
              const ht = rt - 14;
              let Gt = 0;
              rt === 16 && (Gt = ie), ke !== Gt && (pe = 0, ke = Gt);
              const Bs = pe;
              pe > 0 && (pe -= 2, pe = pe << ht), $.bitOffset >= 16 && ($.accumulator32 = $.shortBuffer[$.halfOffset++] << 16 | $.accumulator32 >>> 16, $.bitOffset -= 16), pe += we($, ht) + 3;
              const as = pe - Bs;
              if (U + as > B) return bt($, -2);
              for (let un = 0; un < as; ++un) D[U++] = ke;
              ke !== 0 && (De -= as << 15 - ke);
            }
          }
          return De !== 0 ? bt($, -18) : (D.fill(0, U, B), 0);
        }
        p(C, "readHuffmanCodeLengths");
        function S(k, B, D) {
          for (let $ = 0; $ < D - 1; ++$) for (let U = $ + 1; U < D; ++U) if (B[$] === B[U]) return bt(k, -7);
          return 0;
        }
        p(S, "checkDupes");
        function I(k, B, D, $, U) {
          const ie = new Int32Array(B), pe = new Int32Array(4), ke = 1 + c(k - 1), De = we(U, 2) + 1;
          for (let Qe = 0; Qe < De; ++Qe) {
            U.bitOffset >= 16 && (U.accumulator32 = U.shortBuffer[U.halfOffset++] << 16 | U.accumulator32 >>> 16, U.bitOffset -= 16);
            const rt = we(U, ke);
            if (rt >= B) return bt(U, -15);
            pe[Qe] = rt;
          }
          const $e = S(U, pe, De);
          if ($e < 0) return $e;
          let Me = De;
          switch (De === 4 && (Me += we(U, 1)), Me) {
            case 1:
              ie[pe[0]] = 1;
              break;
            case 2:
              ie[pe[0]] = 1, ie[pe[1]] = 1;
              break;
            case 3:
              ie[pe[0]] = 1, ie[pe[1]] = 2, ie[pe[2]] = 2;
              break;
            case 4:
              ie[pe[0]] = 2, ie[pe[1]] = 2, ie[pe[2]] = 2, ie[pe[3]] = 2;
              break;
            case 5:
              ie[pe[0]] = 1, ie[pe[1]] = 2, ie[pe[2]] = 3, ie[pe[3]] = 3;
              break;
          }
          return ge(D, $, 8, ie, B);
        }
        p(I, "readSimpleHuffmanCode");
        function T(k, B, D, $, U) {
          const ie = new Int32Array(k), pe = new Int32Array(18);
          let ke = 32, De = 0;
          for (let Me = B; Me < 18; ++Me) {
            const Qe = e[Me];
            U.bitOffset >= 16 && (U.accumulator32 = U.shortBuffer[U.halfOffset++] << 16 | U.accumulator32 >>> 16, U.bitOffset -= 16);
            const rt = U.accumulator32 >>> U.bitOffset & 15;
            U.bitOffset += i[rt] >> 16;
            const ht = i[rt] & 65535;
            if (pe[Qe] = ht, ht !== 0 && (ke -= 32 >> ht, De++, ke <= 0)) break;
          }
          if (ke !== 0 && De !== 1) return bt(U, -4);
          const $e = C(pe, k, ie, U);
          return $e < 0 ? $e : ge(D, $, 8, ie, k);
        }
        p(T, "readComplexHuffmanCode");
        function P(k, B, D, $, U) {
          if (U.halfOffset > 2030) {
            const pe = be(U);
            if (pe < 0) return pe;
          }
          U.bitOffset >= 16 && (U.accumulator32 = U.shortBuffer[U.halfOffset++] << 16 | U.accumulator32 >>> 16, U.bitOffset -= 16);
          const ie = we(U, 2);
          return ie === 1 ? I(k, B, D, $, U) : T(B, ie, D, $, U);
        }
        p(P, "readHuffmanCode");
        function H(k, B, D) {
          let $;
          if (D.halfOffset > 2030 && ($ = be(D), $ < 0)) return $;
          const U = x(D) + 1;
          if (U === 1) return B.fill(0, 0, k), U;
          D.bitOffset >= 16 && (D.accumulator32 = D.shortBuffer[D.halfOffset++] << 16 | D.accumulator32 >>> 16, D.bitOffset -= 16);
          const ie = we(D, 1);
          let pe = 0;
          ie !== 0 && (pe = we(D, 4) + 1);
          const ke = U + pe, De = t[ke + 31 >> 5], $e = new Int32Array(De + 1), Me = $e.length - 1;
          if ($ = P(ke, ke, $e, Me, D), $ < 0) return $;
          let Qe = 0;
          for (; Qe < k; ) {
            if (D.halfOffset > 2030 && ($ = be(D), $ < 0)) return $;
            D.bitOffset >= 16 && (D.accumulator32 = D.shortBuffer[D.halfOffset++] << 16 | D.accumulator32 >>> 16, D.bitOffset -= 16);
            const rt = j($e, Me, D);
            if (rt === 0) B[Qe] = 0, Qe++;
            else if (rt <= pe) {
              D.bitOffset >= 16 && (D.accumulator32 = D.shortBuffer[D.halfOffset++] << 16 | D.accumulator32 >>> 16, D.bitOffset -= 16);
              let ht = (1 << rt) + we(D, rt);
              for (; ht !== 0; ) {
                if (Qe >= k) return bt(D, -3);
                B[Qe] = 0, Qe++, ht--;
              }
            } else B[Qe] = rt - pe, Qe++;
          }
          return D.bitOffset >= 16 && (D.accumulator32 = D.shortBuffer[D.halfOffset++] << 16 | D.accumulator32 >>> 16, D.bitOffset -= 16), we(D, 1) === 1 && A(B, k), U;
        }
        p(H, "decodeContextMap");
        function G(k, B, D) {
          const $ = k.rings, U = 4 + B * 2;
          k.bitOffset >= 16 && (k.accumulator32 = k.shortBuffer[k.halfOffset++] << 16 | k.accumulator32 >>> 16, k.bitOffset -= 16);
          let ie = j(k.blockTrees, 2 * B, k);
          const pe = v(k.blockTrees, 2 * B + 1, k);
          return ie === 1 ? ie = $[U + 1] + 1 : ie === 0 ? ie = $[U] : ie -= 2, ie >= D && (ie -= D), $[U] = $[U + 1], $[U + 1] = ie, pe;
        }
        p(G, "decodeBlockTypeAndLength");
        function Z(k) {
          k.literalBlockLength = G(k, 0, k.numLiteralBlockTypes);
          const B = k.rings[5];
          k.contextMapSlice = B << 6, k.literalTreeIdx = k.contextMap[k.contextMapSlice] & 255;
          const D = k.contextModes[B];
          k.contextLookupOffset1 = D << 9, k.contextLookupOffset2 = k.contextLookupOffset1 + 256;
        }
        p(Z, "decodeLiteralBlockSwitch");
        function z(k) {
          k.commandBlockLength = G(k, 1, k.numCommandBlockTypes), k.commandTreeIdx = k.rings[7];
        }
        p(z, "decodeCommandBlockSwitch");
        function O(k) {
          k.distanceBlockLength = G(k, 2, k.numDistanceBlockTypes), k.distContextMapSlice = k.rings[9] << 2;
        }
        p(O, "decodeDistanceBlockSwitch");
        function N(k) {
          let B = k.maxRingBufferSize;
          if (B > k.expectedTotalSize) {
            const ie = k.expectedTotalSize;
            for (; B >> 1 > ie; ) B = B >> 1;
            k.inputEnd === 0 && B < 16384 && k.maxRingBufferSize >= 16384 && (B = 16384);
          }
          if (B <= k.ringBufferSize) return;
          const D = B + 37, $ = new Int8Array(D), U = k.ringBuffer;
          U.length !== 0 && $.set(U.subarray(0, k.ringBufferSize), 0), k.ringBuffer = $, k.ringBufferSize = B;
        }
        p(N, "maybeReallocateRingBuffer");
        function oe(k) {
          if (k.inputEnd !== 0) return k.nextRunningState = 10, k.runningState = 12, 0;
          k.literalTreeGroup = new Int32Array(0), k.commandTreeGroup = new Int32Array(0), k.distanceTreeGroup = new Int32Array(0);
          let B;
          if (k.halfOffset > 2030 && (B = be(k), B < 0) || (B = y(k), B < 0)) return B;
          if (k.metaBlockLength === 0 && k.isMetadata === 0) return 0;
          if (k.isUncompressed !== 0 || k.isMetadata !== 0) {
            if (B = ct(k), B < 0) return B;
            k.isMetadata === 0 ? k.runningState = 6 : k.runningState = 5;
          } else k.runningState = 3;
          return k.isMetadata !== 0 || (k.expectedTotalSize += k.metaBlockLength, k.expectedTotalSize > 1 << 30 && (k.expectedTotalSize = 1 << 30), k.ringBufferSize < k.maxRingBufferSize && N(k)), 0;
        }
        p(oe, "readNextMetablockHeader");
        function je(k, B, D) {
          let $ = k.blockTrees[2 * B];
          if (D <= 1) return k.blockTrees[2 * B + 1] = $, k.blockTrees[2 * B + 2] = $, 1 << 28;
          const U = D + 2;
          let ie = P(U, U, k.blockTrees, 2 * B, k);
          if (ie < 0) return ie;
          $ += ie, k.blockTrees[2 * B + 1] = $;
          const pe = 26;
          return ie = P(pe, pe, k.blockTrees, 2 * B + 1, k), ie < 0 ? ie : ($ += ie, k.blockTrees[2 * B + 2] = $, v(k.blockTrees, 2 * B + 1, k));
        }
        p(je, "readMetablockPartition");
        function Y(k, B) {
          const D = k.distExtraBits, $ = k.distOffset, U = k.distancePostfixBits, ie = k.numDirectDistanceCodes, pe = 1 << U;
          let ke = 1, De = 0, $e = 16;
          for (let Me = 0; Me < ie; ++Me) D[$e] = 0, $[$e] = Me + 1, ++$e;
          for (; $e < B; ) {
            const Me = ie + ((2 + De << ke) - 4 << U) + 1;
            for (let Qe = 0; Qe < pe; ++Qe) D[$e] = ke, $[$e] = Me + Qe, ++$e;
            ke = ke + De, De = De ^ 1;
          }
        }
        p(Y, "calculateDistanceLut");
        function ye(k) {
          k.numLiteralBlockTypes = x(k) + 1;
          let B = je(k, 0, k.numLiteralBlockTypes);
          if (B < 0 || (k.literalBlockLength = B, k.numCommandBlockTypes = x(k) + 1, B = je(k, 1, k.numCommandBlockTypes), B < 0) || (k.commandBlockLength = B, k.numDistanceBlockTypes = x(k) + 1, B = je(k, 2, k.numDistanceBlockTypes), B < 0) || (k.distanceBlockLength = B, k.halfOffset > 2030 && (B = be(k), B < 0))) return B;
          k.bitOffset >= 16 && (k.accumulator32 = k.shortBuffer[k.halfOffset++] << 16 | k.accumulator32 >>> 16, k.bitOffset -= 16), k.distancePostfixBits = we(k, 2), k.numDirectDistanceCodes = we(k, 4) << k.distancePostfixBits, k.contextModes = new Int8Array(k.numLiteralBlockTypes);
          let D = 0;
          for (; D < k.numLiteralBlockTypes; ) {
            const De = Math.min(D + 96, k.numLiteralBlockTypes);
            for (; D < De; ) k.bitOffset >= 16 && (k.accumulator32 = k.shortBuffer[k.halfOffset++] << 16 | k.accumulator32 >>> 16, k.bitOffset -= 16), k.contextModes[D] = we(k, 2), D++;
            if (k.halfOffset > 2030 && (B = be(k), B < 0)) return B;
          }
          const $ = k.numLiteralBlockTypes << 6;
          if (k.contextMap = new Int8Array($), B = H($, k.contextMap, k), B < 0) return B;
          const U = B;
          k.trivialLiteralContext = 1;
          for (let De = 0; De < $; ++De) if (k.contextMap[De] !== De >> 6) {
            k.trivialLiteralContext = 0;
            break;
          }
          if (k.distContextMap = new Int8Array(k.numDistanceBlockTypes << 2), B = H(k.numDistanceBlockTypes << 2, k.distContextMap, k), B < 0) return B;
          const ie = B;
          if (k.literalTreeGroup = new Int32Array(K(256, U)), B = M(256, 256, U, k, k.literalTreeGroup), B < 0 || (k.commandTreeGroup = new Int32Array(K(704, k.numCommandBlockTypes)), B = M(704, 704, k.numCommandBlockTypes, k, k.commandTreeGroup), B < 0)) return B;
          let pe = h(k.distancePostfixBits, k.numDirectDistanceCodes, 24), ke = pe;
          if (k.isLargeWindow === 1) {
            if (pe = h(k.distancePostfixBits, k.numDirectDistanceCodes, 62), B = u(k, 2147483644, k.distancePostfixBits, k.numDirectDistanceCodes), B < 0) return B;
            ke = B;
          }
          return k.distanceTreeGroup = new Int32Array(K(ke, ie)), B = M(pe, ke, ie, k, k.distanceTreeGroup), B < 0 ? B : (Y(k, ke), k.contextMapSlice = 0, k.distContextMapSlice = 0, k.contextLookupOffset1 = k.contextModes[0] * 512, k.contextLookupOffset2 = k.contextLookupOffset1 + 256, k.literalTreeIdx = 0, k.commandTreeIdx = 0, k.rings[4] = 1, k.rings[5] = 0, k.rings[6] = 1, k.rings[7] = 0, k.rings[8] = 1, k.rings[9] = 0, 0);
        }
        p(ye, "readMetablockHuffmanCodesAndContextMaps");
        function qe(k) {
          const B = k.ringBuffer;
          let D;
          if (k.metaBlockLength <= 0) return D = tt(k), D < 0 ? D : (k.runningState = 2, 0);
          const $ = Math.min(k.ringBufferSize - k.pos, k.metaBlockLength);
          return D = Pt(k, B, k.pos, $), D < 0 ? D : (k.metaBlockLength -= $, k.pos += $, k.pos === k.ringBufferSize ? (k.nextRunningState = 6, k.runningState = 12, 0) : (D = tt(k), D < 0 ? D : (k.runningState = 2, 0)));
        }
        p(qe, "copyUncompressedData");
        function W(k) {
          const B = Math.min(k.outputLength - k.outputUsed, k.ringBufferBytesReady - k.ringBufferBytesWritten);
          return B !== 0 && (k.output.set(k.ringBuffer.subarray(k.ringBufferBytesWritten, k.ringBufferBytesWritten + B), k.outputOffset + k.outputUsed), k.outputUsed += B, k.ringBufferBytesWritten += B), k.outputUsed < k.outputLength ? 0 : 2;
        }
        p(W, "writeRingBuffer");
        function K(k, B) {
          const D = t[k + 31 >> 5];
          return B + B * D;
        }
        p(K, "huffmanTreeGroupAllocSize");
        function M(k, B, D, $, U) {
          let ie = D;
          for (let pe = 0; pe < D; ++pe) {
            U[pe] = ie;
            const ke = P(k, B, U, pe, $);
            if (ke < 0) return ke;
            ie += ke;
          }
          return 0;
        }
        p(M, "decodeHuffmanTreeGroup");
        function L(k) {
          let B = k.ringBufferSize;
          return k.isEager !== 0 && (B = Math.min(B, k.ringBufferBytesWritten + k.outputLength - k.outputUsed)), B;
        }
        p(L, "calculateFence");
        function J(k, B) {
          if (k.distance > 2147483644) return bt(k, -9);
          const D = k.distance - k.maxDistance - 1 - k.cdTotalSize;
          if (D < 0) {
            const $ = le(k, -D - 1, k.copyLength);
            if ($ < 0) return $;
            k.runningState = 14;
          } else {
            const $ = fi, U = k.copyLength;
            if (U > 31) return bt(k, -9);
            const ie = Sr[U];
            if (ie === 0) return bt(k, -9);
            let pe = al[U];
            const ke = (1 << ie) - 1, De = D & ke, $e = D >> ie;
            pe += De * U;
            const Me = Fe;
            if ($e >= Me.numTransforms) return bt(k, -9);
            const Qe = Le(k.ringBuffer, k.pos, $, pe, U, Me, $e);
            if (k.pos += Qe, k.metaBlockLength -= Qe, k.pos >= B) return k.nextRunningState = 4, k.runningState = 12, 0;
            k.runningState = 4;
          }
          return 0;
        }
        p(J, "doUseDictionary");
        function ce(k) {
          k.cdBlockMap = new Int8Array(256);
          let B = 8;
          for (; k.cdTotalSize - 1 >> B !== 0; ) B++;
          B -= 8, k.cdBlockBits = B;
          let D = 0, $ = 0;
          for (; D < k.cdTotalSize; ) {
            for (; k.cdChunkOffsets[$ + 1] < D; ) $++;
            k.cdBlockMap[D >> B] = $, D += 1 << B;
          }
        }
        p(ce, "initializeCompoundDictionary");
        function le(k, B, D) {
          k.cdBlockBits === -1 && ce(k);
          let $ = k.cdBlockMap[B >> k.cdBlockBits];
          for (; B >= k.cdChunkOffsets[$ + 1]; ) $++;
          return k.cdTotalSize > B + D ? bt(k, -9) : (k.distRbIdx = k.distRbIdx + 1 & 3, k.rings[k.distRbIdx] = k.distance, k.metaBlockLength -= D, k.cdBrIndex = $, k.cdBrOffset = B - k.cdChunkOffsets[$], k.cdBrLength = D, k.cdBrCopied = 0, 0);
        }
        p(le, "initializeCompoundDictionaryCopy");
        function se(k, B) {
          let D = k.pos;
          const $ = D;
          for (; k.cdBrLength !== k.cdBrCopied; ) {
            const U = B - D, pe = k.cdChunkOffsets[k.cdBrIndex + 1] - k.cdChunkOffsets[k.cdBrIndex] - k.cdBrOffset;
            let ke = k.cdBrLength - k.cdBrCopied;
            if (ke > pe && (ke = pe), ke > U && (ke = U), k.ringBuffer.set(k.cdChunks[k.cdBrIndex].subarray(k.cdBrOffset, k.cdBrOffset + ke), D), D += ke, k.cdBrOffset += ke, k.cdBrCopied += ke, ke === pe && (k.cdBrIndex++, k.cdBrOffset = 0), D >= B) break;
          }
          return D - $;
        }
        p(se, "copyFromCompoundDictionary");
        function Te(k) {
          let B;
          if (k.runningState === 0) return bt(k, -25);
          if (k.runningState < 0) return bt(k, -28);
          if (k.runningState === 11) return bt(k, -22);
          if (k.runningState === 1) {
            const ie = m(k);
            if (ie === -1) return bt(k, -11);
            k.maxRingBufferSize = 1 << ie, k.maxBackwardDistance = k.maxRingBufferSize - 16, k.runningState = 2;
          }
          let D = L(k), $ = k.ringBufferSize - 1, U = k.ringBuffer;
          for (; k.runningState !== 10; ) switch (k.runningState) {
            case 2:
              if (k.metaBlockLength < 0) return bt(k, -10);
              if (B = oe(k), B < 0) return B;
              D = L(k), $ = k.ringBufferSize - 1, U = k.ringBuffer;
              continue;
            case 3:
              if (B = ye(k), B < 0) return B;
              k.runningState = 4;
              continue;
            case 4:
              if (k.metaBlockLength <= 0) {
                k.runningState = 2;
                continue;
              }
              if (k.halfOffset > 2030 && (B = be(k), B < 0)) return B;
              k.commandBlockLength === 0 && z(k), k.commandBlockLength--, k.bitOffset >= 16 && (k.accumulator32 = k.shortBuffer[k.halfOffset++] << 16 | k.accumulator32 >>> 16, k.bitOffset -= 16);
              const ie = j(k.commandTreeGroup, k.commandTreeIdx, k) << 2, pe = f[ie], ke = f[ie + 1], De = f[ie + 2];
              k.distanceCode = f[ie + 3], k.bitOffset >= 16 && (k.accumulator32 = k.shortBuffer[k.halfOffset++] << 16 | k.accumulator32 >>> 16, k.bitOffset -= 16);
              const $e = pe & 255;
              k.insertLength = ke + ($e <= 16 ? we(k, $e) : Se(k, $e)), k.bitOffset >= 16 && (k.accumulator32 = k.shortBuffer[k.halfOffset++] << 16 | k.accumulator32 >>> 16, k.bitOffset -= 16);
              const Me = pe >> 8;
              k.copyLength = De + (Me <= 16 ? we(k, Me) : Se(k, Me)), k.j = 0, k.runningState = 7;
              continue;
            case 7:
              if (k.trivialLiteralContext !== 0) for (; k.j < k.insertLength; ) {
                if (k.halfOffset > 2030 && (B = be(k), B < 0)) return B;
                if (k.literalBlockLength === 0 && Z(k), k.literalBlockLength--, k.bitOffset >= 16 && (k.accumulator32 = k.shortBuffer[k.halfOffset++] << 16 | k.accumulator32 >>> 16, k.bitOffset -= 16), U[k.pos] = j(k.literalTreeGroup, k.literalTreeIdx, k), k.pos++, k.j++, k.pos >= D) {
                  k.nextRunningState = 7, k.runningState = 12;
                  break;
                }
              }
              else {
                let un = U[k.pos - 1 & $] & 255, Ve = U[k.pos - 2 & $] & 255;
                for (; k.j < k.insertLength; ) {
                  if (k.halfOffset > 2030 && (B = be(k), B < 0)) return B;
                  k.literalBlockLength === 0 && Z(k);
                  const rs = xs[k.contextLookupOffset1 + un] | xs[k.contextLookupOffset2 + Ve], Da = k.contextMap[k.contextMapSlice + rs] & 255;
                  if (k.literalBlockLength--, Ve = un, k.bitOffset >= 16 && (k.accumulator32 = k.shortBuffer[k.halfOffset++] << 16 | k.accumulator32 >>> 16, k.bitOffset -= 16), un = j(k.literalTreeGroup, Da, k), U[k.pos] = un, k.pos++, k.j++, k.pos >= D) {
                    k.nextRunningState = 7, k.runningState = 12;
                    break;
                  }
                }
              }
              if (k.runningState !== 7) continue;
              if (k.metaBlockLength -= k.insertLength, k.metaBlockLength <= 0) {
                k.runningState = 4;
                continue;
              }
              let Qe = k.distanceCode;
              if (Qe < 0) k.distance = k.rings[k.distRbIdx];
              else {
                if (k.halfOffset > 2030 && (B = be(k), B < 0)) return B;
                k.distanceBlockLength === 0 && O(k), k.distanceBlockLength--, k.bitOffset >= 16 && (k.accumulator32 = k.shortBuffer[k.halfOffset++] << 16 | k.accumulator32 >>> 16, k.bitOffset -= 16);
                const un = k.distContextMap[k.distContextMapSlice + Qe] & 255;
                if (Qe = j(k.distanceTreeGroup, un, k), Qe < 16) {
                  const Ve = k.distRbIdx + n[Qe] & 3;
                  if (k.distance = k.rings[Ve] + s[Qe], k.distance < 0) return bt(k, -12);
                } else {
                  const Ve = k.distExtraBits[Qe];
                  let rs;
                  k.bitOffset + Ve <= 32 ? rs = we(k, Ve) : (k.bitOffset >= 16 && (k.accumulator32 = k.shortBuffer[k.halfOffset++] << 16 | k.accumulator32 >>> 16, k.bitOffset -= 16), rs = Ve <= 16 ? we(k, Ve) : Se(k, Ve)), k.distance = k.distOffset[Qe] + (rs << k.distancePostfixBits);
                }
              }
              if (k.maxDistance !== k.maxBackwardDistance && k.pos < k.maxBackwardDistance ? k.maxDistance = k.pos : k.maxDistance = k.maxBackwardDistance, k.distance > k.maxDistance) {
                k.runningState = 9;
                continue;
              }
              if (Qe > 0 && (k.distRbIdx = k.distRbIdx + 1 & 3, k.rings[k.distRbIdx] = k.distance), k.copyLength > k.metaBlockLength) return bt(k, -9);
              k.j = 0, k.runningState = 8;
              continue;
            case 8:
              let rt = k.pos - k.distance & $, ht = k.pos;
              const Gt = k.copyLength - k.j, Bs = rt + Gt, as = ht + Gt;
              if (Bs < $ && as < $) {
                if (Gt < 12 || Bs > ht && as > rt) {
                  const un = Gt + 3 >> 2;
                  for (let Ve = 0; Ve < un; ++Ve) U[ht++] = U[rt++], U[ht++] = U[rt++], U[ht++] = U[rt++], U[ht++] = U[rt++];
                } else U.copyWithin(ht, rt, Bs);
                k.j += Gt, k.metaBlockLength -= Gt, k.pos += Gt;
              } else for (; k.j < k.copyLength; ) if (U[k.pos] = U[k.pos - k.distance & $], k.metaBlockLength--, k.pos++, k.j++, k.pos >= D) {
                k.nextRunningState = 8, k.runningState = 12;
                break;
              }
              k.runningState === 8 && (k.runningState = 4);
              continue;
            case 9:
              if (B = J(k, D), B < 0) return B;
              continue;
            case 14:
              if (k.pos += se(k, D), k.pos >= D) return k.nextRunningState = 14, k.runningState = 12, 2;
              k.runningState = 4;
              continue;
            case 5:
              for (; k.metaBlockLength > 0; ) {
                if (k.halfOffset > 2030 && (B = be(k), B < 0)) return B;
                k.bitOffset >= 16 && (k.accumulator32 = k.shortBuffer[k.halfOffset++] << 16 | k.accumulator32 >>> 16, k.bitOffset -= 16), we(k, 8), k.metaBlockLength--;
              }
              k.runningState = 2;
              continue;
            case 6:
              if (B = qe(k), B < 0) return B;
              continue;
            case 12:
              k.ringBufferBytesReady = Math.min(k.pos, k.ringBufferSize), k.runningState = 13;
              continue;
            case 13:
              if (B = W(k), B !== 0) return B;
              k.pos >= k.maxBackwardDistance && (k.maxDistance = k.maxBackwardDistance), k.pos >= k.ringBufferSize && (k.pos > k.ringBufferSize && U.copyWithin(0, k.ringBufferSize, k.pos), k.pos = k.pos & $, k.ringBufferBytesWritten = 0), k.runningState = k.nextRunningState;
              continue;
            default:
              return bt(k, -28);
          }
          return k.runningState !== 10 ? bt(k, -29) : k.metaBlockLength < 0 ? bt(k, -10) : (B = ct(k), B !== 0 || (B = Ce(k, 1), B !== 0) ? B : 1);
        }
        p(Te, "decompress");
        function _e(k, B, D) {
          this.numTransforms = 0, this.triplets = new Int32Array(0), this.prefixSuffixStorage = new Int8Array(0), this.prefixSuffixHeads = new Int32Array(0), this.params = new Int16Array(0), this.numTransforms = k, this.triplets = new Int32Array(k * 3), this.params = new Int16Array(k), this.prefixSuffixStorage = new Int8Array(B), this.prefixSuffixHeads = new Int32Array(D + 1);
        }
        p(_e, "Transforms");
        const Fe = new _e(121, 167, 50);
        function Ne(k, B, D, $, U) {
          const ie = Rh($), pe = ie.length;
          let ke = 1, De = 0;
          for (let $e = 0; $e < pe; ++$e) {
            const Me = ie[$e];
            Me === 35 ? B[ke++] = De : k[De++] = Me;
          }
          for (let $e = 0; $e < 363; ++$e) D[$e] = U.charCodeAt($e) - 32;
        }
        p(Ne, "unpackTransforms"), Ne(Fe.prefixSuffixStorage, Fe.prefixSuffixHeads, Fe.triplets, `# #s #, #e #.# the #.com/#\xC2\xA0# of # and # in # to #"#">#
#]# for # a # that #. # with #'# from # by #. The # on # as # is #ing #
	#:#ed #(# at #ly #="# of the #. This #,# not #er #al #='#ful #ive #less #est #ize #ous #`, `     !! ! ,  *!  &!  " !  ) *   * -  ! # !  #!*!  +  ,$ !  -  %  .  / #   0  1 .  "   2  3!*   4%  ! # /   5  6  7  8 0  1 &   $   9 +   :  ;  < '  !=  >  ?! 4  @ 4  2  &   A *# (   B  C& ) %  ) !*# *-% A +! *.  D! %'  & E *6  F  G% ! *A *%  H! D  I!+!  J!+   K +- *4! A  L!*4  M  N +6  O!*% +.! K *G  P +%(  ! G *D +D  Q +# *K!*G!+D!+# +G +A +4!+% +K!+4!*D!+K!*K`);
        function Le(k, B, D, $, U, ie, pe) {
          let ke = B;
          const De = ie.triplets, $e = ie.prefixSuffixStorage, Me = ie.prefixSuffixHeads, Qe = 3 * pe, rt = De[Qe], ht = De[Qe + 1], Gt = De[Qe + 2];
          let Bs = Me[rt];
          const as = Me[rt + 1];
          let un = Me[Gt];
          const Ve = Me[Gt + 1];
          let rs = ht - 11, Da = ht;
          for ((rs < 1 || rs > 9) && (rs = 0), (Da < 1 || Da > 9) && (Da = 0); Bs !== as; ) k[ke++] = $e[Bs++];
          let Xt = U;
          rs > Xt && (rs = Xt);
          let xm = $ + rs;
          Xt -= rs, Xt -= Da;
          let _h = Xt;
          for (; _h > 0; ) k[ke++] = D[xm++], _h--;
          if (ht === 10 || ht === 11) {
            let Tt = ke - Xt;
            for (ht === 10 && (Xt = 1); Xt > 0; ) {
              const ta = k[Tt] & 255;
              ta < 192 ? (ta >= 97 && ta <= 122 && (k[Tt] = k[Tt] ^ 32), Tt += 1, Xt -= 1) : ta < 224 ? (k[Tt + 1] = k[Tt + 1] ^ 32, Tt += 2, Xt -= 2) : (k[Tt + 2] = k[Tt + 2] ^ 5, Tt += 3, Xt -= 3);
            }
          } else if (ht === 21 || ht === 22) {
            let Tt = ke - Xt;
            const ta = ie.params[pe];
            let $n = (ta & 32767) + (16777216 - (ta & 32768));
            for (; Xt > 0; ) {
              let Ii = 1;
              const ci = k[Tt] & 255;
              if (ci < 128) $n += ci, k[Tt] = $n & 127;
              else if (!(ci < 192)) {
                if (ci < 224) if (Xt >= 2) {
                  const Ti = k[Tt + 1];
                  $n += Ti & 63 | (ci & 31) << 6, k[Tt] = 192 | $n >> 6 & 31, k[Tt + 1] = Ti & 192 | $n & 63, Ii = 2;
                } else Ii = Xt;
                else if (ci < 240) if (Xt >= 3) {
                  const Ti = k[Tt + 1], Er = k[Tt + 2];
                  $n += Er & 63 | (Ti & 63) << 6 | (ci & 15) << 12, k[Tt] = 224 | $n >> 12 & 15, k[Tt + 1] = Ti & 192 | $n >> 6 & 63, k[Tt + 2] = Er & 192 | $n & 63, Ii = 3;
                } else Ii = Xt;
                else if (ci < 248) if (Xt >= 4) {
                  const Ti = k[Tt + 1], Er = k[Tt + 2], Ph = k[Tt + 3];
                  $n += Ph & 63 | (Er & 63) << 6 | (Ti & 63) << 12 | (ci & 7) << 18, k[Tt] = 240 | $n >> 18 & 7, k[Tt + 1] = Ti & 192 | $n >> 12 & 63, k[Tt + 2] = Er & 192 | $n >> 6 & 63, k[Tt + 3] = Ph & 192 | $n & 63, Ii = 4;
                } else Ii = Xt;
              }
              Tt += Ii, Xt -= Ii, ht === 21 && (Xt = 0);
            }
          }
          for (; un !== Ve; ) k[ke++] = $e[un++];
          return ke - B;
        }
        p(Le, "transformDictionaryWord");
        function ue(k, B) {
          let D = 1 << B - 1;
          for (; (k & D) !== 0; ) D = D >> 1;
          return (k & D - 1) + D;
        }
        p(ue, "getNextKey");
        function Ae(k, B, D, $, U) {
          let ie = $;
          for (; ie > 0; ) ie -= D, k[B + ie] = U;
        }
        p(Ae, "replicateValue");
        function xe(k, B, D) {
          let $ = B, U = 1 << $ - D;
          for (; $ < 15 && (U -= k[$], !(U <= 0)); ) $++, U = U << 1;
          return $ - D;
        }
        p(xe, "nextTableBitSize");
        function ge(k, B, D, $, U) {
          const ie = k[B], pe = new Int32Array(U), ke = new Int32Array(16), De = new Int32Array(16);
          for (let Ve = 0; Ve < U; ++Ve) ke[$[Ve]]++;
          De[1] = 0;
          for (let Ve = 1; Ve < 15; ++Ve) De[Ve + 1] = De[Ve] + ke[Ve];
          for (let Ve = 0; Ve < U; ++Ve) $[Ve] !== 0 && (pe[De[$[Ve]]++] = Ve);
          let $e = D, Me = 1 << $e, Qe = Me;
          if (De[15] === 1) {
            for (let Ve = 0; Ve < Qe; ++Ve) k[ie + Ve] = pe[0];
            return Qe;
          }
          let rt = 0, ht = 0, Gt = 1;
          for (let Ve = 1; Ve <= D; ++Ve) for (Gt = Gt << 1; ke[Ve] > 0; ) Ae(k, ie + rt, Gt, Me, Ve << 16 | pe[ht++]), rt = ue(rt, Ve), ke[Ve]--;
          const Bs = Qe - 1;
          let as = -1, un = ie;
          Gt = 1;
          for (let Ve = D + 1; Ve <= 15; ++Ve) for (Gt = Gt << 1; ke[Ve] > 0; ) (rt & Bs) !== as && (un += Me, $e = xe(ke, Ve, D), Me = 1 << $e, Qe += Me, as = rt & Bs, k[ie + as] = $e + D << 16 | un - ie - as), Ae(k, un + (rt >> D), Gt, Me, Ve - D << 16 | pe[ht++]), rt = ue(rt, Ve), ke[Ve]--;
          return Qe;
        }
        p(ge, "buildHuffmanTable");
        function be(k) {
          if (k.endOfStreamReached !== 0) return Ct(k) >= -2 ? 0 : bt(k, -16);
          const B = k.halfOffset << 1;
          let D = 4096 - B;
          for (k.byteBuffer.copyWithin(0, B, 4096), k.halfOffset = 0; D < 4096; ) {
            const $ = 4096 - D, U = Bh(k, k.byteBuffer, D, $);
            if (U < -1) return U;
            if (U <= 0) {
              k.endOfStreamReached = 1, k.tailBytes = D, D += 1;
              break;
            }
            D += U;
          }
          return lt(k, D), 0;
        }
        p(be, "readMoreInput");
        function Ce(k, B) {
          if (k.endOfStreamReached === 0) return 0;
          const D = (k.halfOffset << 1) + (k.bitOffset + 7 >> 3) - 4;
          return D > k.tailBytes ? bt(k, -13) : B !== 0 && D !== k.tailBytes ? bt(k, -17) : 0;
        }
        p(Ce, "checkHealth");
        function we(k, B) {
          const D = k.accumulator32 >>> k.bitOffset & (1 << B) - 1;
          return k.bitOffset += B, D;
        }
        p(we, "readFewBits");
        function Se(k, B) {
          const D = we(k, 16);
          return k.accumulator32 = k.shortBuffer[k.halfOffset++] << 16 | k.accumulator32 >>> 16, k.bitOffset -= 16, D | we(k, B - 16) << 16;
        }
        p(Se, "readManyBits");
        function me(k) {
          return k.byteBuffer = new Int8Array(4160), k.accumulator32 = 0, k.shortBuffer = new Int16Array(2080), k.bitOffset = 32, k.halfOffset = 2048, k.endOfStreamReached = 0, Ge(k);
        }
        p(me, "initBitReader");
        function Ge(k) {
          if (k.halfOffset > 2030) {
            const D = be(k);
            if (D !== 0) return D;
          }
          let B = Ce(k, 0);
          return B !== 0 ? B : (k.accumulator32 = k.shortBuffer[k.halfOffset++] << 16 | k.accumulator32 >>> 16, k.bitOffset -= 16, k.accumulator32 = k.shortBuffer[k.halfOffset++] << 16 | k.accumulator32 >>> 16, k.bitOffset -= 16, 0);
        }
        p(Ge, "prepare");
        function tt(k) {
          return k.bitOffset === 32 ? Ge(k) : 0;
        }
        p(tt, "reload");
        function ct(k) {
          const B = 32 - k.bitOffset & 7;
          return B !== 0 && we(k, B) !== 0 ? bt(k, -5) : 0;
        }
        p(ct, "jumpToByteBoundary");
        function Ct(k) {
          let B = 2048;
          return k.endOfStreamReached !== 0 && (B = k.tailBytes + 1 >> 1), B - k.halfOffset;
        }
        p(Ct, "halfAvailable");
        function Pt(k, B, D, $) {
          let U = D, ie = $;
          if ((k.bitOffset & 7) !== 0) return bt(k, -30);
          for (; k.bitOffset !== 32 && ie !== 0; ) B[U++] = k.accumulator32 >>> k.bitOffset, k.bitOffset += 8, ie--;
          if (ie === 0) return 0;
          const pe = Math.min(Ct(k), ie >> 1);
          if (pe > 0) {
            const ke = k.halfOffset << 1, De = pe << 1;
            B.set(k.byteBuffer.subarray(ke, ke + De), U), U += De, ie -= De, k.halfOffset += pe;
          }
          if (ie === 0) return 0;
          if (Ct(k) > 0) {
            for (k.bitOffset >= 16 && (k.accumulator32 = k.shortBuffer[k.halfOffset++] << 16 | k.accumulator32 >>> 16, k.bitOffset -= 16); ie !== 0; ) B[U++] = k.accumulator32 >>> k.bitOffset, k.bitOffset += 8, ie--;
            return Ce(k, 0);
          }
          for (; ie > 0; ) {
            const ke = Bh(k, B, U, ie);
            if (ke < -1) return ke;
            if (ke <= 0) return bt(k, -16);
            U += ke, ie -= ke;
          }
          return 0;
        }
        p(Pt, "copyRawBytes");
        function lt(k, B) {
          const D = k.byteBuffer, $ = B >> 1, U = k.shortBuffer;
          for (let ie = 0; ie < $; ++ie) U[ie] = D[ie * 2] & 255 | (D[ie * 2 + 1] & 255) << 8;
        }
        p(lt, "bytesToNibbles");
        const xs = new Int32Array(2048);
        function ln(k, B, D) {
          for (let U = 0; U < 256; ++U) k[U] = U & 63, k[512 + U] = U >> 2, k[1792 + U] = 2 + (U >> 6);
          for (let U = 0; U < 128; ++U) k[1024 + U] = 4 * (B.charCodeAt(U) - 32);
          for (let U = 0; U < 64; ++U) k[1152 + U] = U & 1, k[1216 + U] = 2 + (U & 1);
          let $ = 1280;
          for (let U = 0; U < 19; ++U) {
            const ie = U & 3, pe = D.charCodeAt(U) - 32;
            for (let ke = 0; ke < pe; ++ke) k[$++] = ie;
          }
          for (let U = 0; U < 16; ++U) k[1792 + U] = 1, k[2032 + U] = 6;
          k[1792] = 0, k[2047] = 7;
          for (let U = 0; U < 256; ++U) k[1536 + U] = k[1792 + U] << 3;
        }
        p(ln, "unpackLookupTable"), ln(xs, `         !!  !                  "#$##%#$&'##(#)#++++++++++((&*'##,---,---,-----,-----,-----&#'###.///.///./////./////./////&#'# `, "A/*  ':  & : $  \x81 @");
        function is() {
          this.ringBuffer = new Int8Array(0), this.contextModes = new Int8Array(0), this.contextMap = new Int8Array(0), this.distContextMap = new Int8Array(0), this.distExtraBits = new Int8Array(0), this.output = new Int8Array(0), this.byteBuffer = new Int8Array(0), this.shortBuffer = new Int16Array(0), this.intBuffer = new Int32Array(0), this.rings = new Int32Array(0), this.blockTrees = new Int32Array(0), this.literalTreeGroup = new Int32Array(0), this.commandTreeGroup = new Int32Array(0), this.distanceTreeGroup = new Int32Array(0), this.distOffset = new Int32Array(0), this.accumulator64 = 0, this.runningState = 0, this.nextRunningState = 0, this.accumulator32 = 0, this.bitOffset = 0, this.halfOffset = 0, this.tailBytes = 0, this.endOfStreamReached = 0, this.metaBlockLength = 0, this.inputEnd = 0, this.isUncompressed = 0, this.isMetadata = 0, this.literalBlockLength = 0, this.numLiteralBlockTypes = 0, this.commandBlockLength = 0, this.numCommandBlockTypes = 0, this.distanceBlockLength = 0, this.numDistanceBlockTypes = 0, this.pos = 0, this.maxDistance = 0, this.distRbIdx = 0, this.trivialLiteralContext = 0, this.literalTreeIdx = 0, this.commandTreeIdx = 0, this.j = 0, this.insertLength = 0, this.contextMapSlice = 0, this.distContextMapSlice = 0, this.contextLookupOffset1 = 0, this.contextLookupOffset2 = 0, this.distanceCode = 0, this.numDirectDistanceCodes = 0, this.distancePostfixBits = 0, this.distance = 0, this.copyLength = 0, this.maxBackwardDistance = 0, this.maxRingBufferSize = 0, this.ringBufferSize = 0, this.expectedTotalSize = 0, this.outputOffset = 0, this.outputLength = 0, this.outputUsed = 0, this.ringBufferBytesWritten = 0, this.ringBufferBytesReady = 0, this.isEager = 0, this.isLargeWindow = 0, this.cdNumChunks = 0, this.cdTotalSize = 0, this.cdBrIndex = 0, this.cdBrOffset = 0, this.cdBrLength = 0, this.cdBrCopied = 0, this.cdChunks = new Array(0), this.cdChunkOffsets = new Int32Array(0), this.cdBlockBits = 0, this.cdBlockMap = new Int8Array(0), this.input = new Tr(new Int8Array(0)), this.ringBuffer = new Int8Array(0), this.rings = new Int32Array(10), this.rings[0] = 16, this.rings[1] = 15, this.rings[2] = 11, this.rings[3] = 4;
        }
        p(is, "State");
        let fi = new Int8Array(0);
        const al = new Int32Array(32), Sr = new Int32Array(32);
        function rl(k, B) {
          const D = al, $ = Sr;
          for (let ie = 0; ie < B.length; ++ie) $[ie] = B[ie];
          let U = 0;
          for (let ie = 0; ie < B.length; ++ie) {
            D[ie] = U;
            const pe = $[ie];
            pe !== 0 && (U += ie << (pe & 31));
          }
          for (let ie = B.length; ie < 32; ++ie) D[ie] = U;
          fi = k;
        }
        p(rl, "setData");
        function ol(k, B, D, $, U, ie) {
          const pe = bm(B + D), ke = Rh($);
          let De = 0;
          const $e = ke.length >> 1;
          for (let Me = 0; Me < $e; ++Me) {
            const Qe = ke[2 * Me] - 36, rt = ke[2 * Me + 1] - 36;
            for (let ht = 0; ht < Qe; ++ht) pe[De] = pe[De] ^ 3, De++;
            for (let ht = 0; ht < rt; ++ht) pe[De] = pe[De] ^ 236, De++;
          }
          for (let Me = 0; Me < ie.length; ++Me) U[Me] = ie.charCodeAt(Me) - 65;
          k.set(pe);
        }
        p(ol, "unpackDictionaryData");
        const Cr = new Int8Array(122784), Ir = new Int32Array(25);
        ol(Cr, 'wjnfgltmojefofewab`h`lgfgbwbpkltlmozpjwf`jwzlsfmivpwojhfeqfftlqhwf{wzfbqlufqalgzolufelqnallhsobzojufojmfkfosklnfpjgfnlqftlqgolmdwkfnujftejmgsbdfgbzpevookfbgwfqnfb`kbqfbeqlnwqvfnbqhbaofvslmkjdkgbwfobmgmftpfufmmf{w`bpfalwkslpwvpfgnbgfkbmgkfqftkbwmbnfOjmhaoldpjyfabpfkfognbhfnbjmvpfq$*#(klogfmgptjwkMftpqfbgtfqfpjdmwbhfkbufdbnfpffm`boosbwktfoosovpnfmvejonsbqwiljmwkjpojpwdllgmffgtbzptfpwilapnjmgboploldlqj`kvpfpobpwwfbnbqnzellghjmdtjoofbpwtbqgafpwejqfSbdfhmltbtbz-smdnlufwkbmolbgdjufpfoemlwfnv`keffgnbmzql`hj`lmlm`follhkjgfgjfgKlnfqvofklpwbib{jmel`ovaobtpofppkboeplnfpv`kylmf233&lmfp`bqfWjnfqb`faovfelvqtffheb`fklsfdbufkbqgolpwtkfmsbqhhfswsbpppkjsqllnKWNOsobmWzsfglmfpbufhffseobdojmhplogejufwllhqbwfwltmivnswkvpgbqh`bqgejofefbqpwbzhjoowkbweboobvwlfufq-`lnwbohpklsulwfgffsnlgfqfpwwvqmalqmabmgefooqlpfvqo+phjmqlof`lnfb`wpbdfpnffwdlog-isdjwfnubqzefowwkfmpfmggqlsUjft`lsz2-3!?,b=pwlsfopfojfpwlvqsb`h-djesbpw`pp<dqbznfbm%dw8qjgfpklwobwfpbjgqlbgubq#effoilkmqj`hslqwebpw$VB.gfbg?,a=sllqajoowzsfV-P-tllgnvpw1s{8JmelqbmhtjgftbmwtbooofbgX3^8sbvotbufpvqf\'+$ tbjwnbppbqnpdlfpdbjmobmdsbjg"..#ol`hvmjwqllwtbohejqntjef{no!plmdwfpw13s{hjmgqltpwlloelmwnbjopbefpwbqnbsp`lqfqbjmeoltabazpsbmpbzp7s{85s{8bqwpellwqfbotjhjkfbwpwfswqjslqd,obhftfbhwlogElqn`bpwebmpabmhufqzqvmpivozwbph2s{8dlbodqftpoltfgdfjg>!pfwp6s{8-ip<73s{je#+pllmpfbwmlmfwvafyfqlpfmwqffgeb`wjmwldjewkbqn2;s{`bnfkjooalogyllnuljgfbpzqjmdejoosfbhjmjw`lpw0s{8ib`hwbdpajwpqloofgjwhmftmfbq?"..dqltIPLMgvwzMbnfpbofzlv#olwpsbjmibyy`logfzfpejpkttt-qjphwbapsqfu23s{qjpf16s{Aovfgjmd033/abooelqgfbqmtjogal{-ebjqob`hufqpsbjqivmfwf`kje+"sj`hfujo\'+! tbqnolqgglfpsvoo/333jgfbgqbtkvdfpslwevmgavqmkqfe`foohfzpwj`hklvqolppevfo21s{pvjwgfboQPP!bdfgdqfzDFW!fbpfbjnpdjqobjgp;s{8mbuzdqjgwjsp :::tbqpobgz`bqp*8#~sks<kfoowbootklnyk9	),	#233kboo-		B4s{8svpk`kbw3s{8`qft),?,kbpk46s{eobwqbqf#%%#wfoo`bnslmwlobjgnjppphjswfmwejmfnbofdfwpsolw733/		`lloeffw-sks?aq=fqj`nlpwdvjgafoogfp`kbjqnbwkbwln,jnd% ;1ov`h`fmw3338wjmzdlmfkwnopfoogqvdEQFFmlgfmj`h<jg>olpfmvooubpwtjmgQPP#tfbqqfozaffmpbnfgvhfmbpb`bsftjpkdvoeW109kjwppolwdbwfhj`haovqwkfz26s{$$*8*8!=npjftjmpajqgplqwafwbpffhW2;9lqgpwqffnboo53s{ebqnlupalzpX3^-$*8!SLPWafbqhjgp*8~~nbqzwfmg+VH*rvbgyk9\n.pjy....sqls$*8ojewW2:9uj`fbmgzgfaw=QPPsllomf`haoltW259gllqfuboW249ofwpebjolqbosloomlub`lopdfmf#lxplewqlnfwjooqlpp?k0=slvqebgfsjmh?wq=njmj*\x7F"+njmfyk9abqpkfbq33*8njoh#..=jqlmeqfggjphtfmwpljosvwp,ip,klozW119JPAMW139bgbnpffp?k1=iplm$/#$`lmwW129#QPPollsbpjbnllm?,s=plvoOJMFelqw`bqwW279?k2=;3s{"..?:s{8W379njhf975Ymj`fjm`kZlqhqj`fyk9\b$**8svqfnbdfsbqbwlmfalmg904Y\\le\\$^*8333/yk9\vwbmhzbqgaltoavpk965YIbub03s{	\x7F~	&@0&907YifeeF[SJ`bpkujpbdloepmltyk9rvfq-`pppj`hnfbwnjm-ajmggfookjqfsj`pqfmw905YKWWS.132elwltloeFMG#{al{967YALGZgj`h8	~	f{jw906Yubqpafbw$~*8gjfw:::8bmmf~~?,Xj^-Obmdhn.^tjqfwlzpbggppfbobof{8	\n~f`klmjmf-lqd336*wlmziftppbmgofdpqlle333*#133tjmfdfbqgldpallwdbqz`vwpwzofwfnswjlm-{no`l`hdbmd\'+$-63s{Sk-Gnjp`bobmolbmgfphnjofqzbmvmj{gjp`*8~	gvpw`ojs*-		43s{.133GUGp4^=?wbsfgfnlj((*tbdffvqlskjolswpklofEBRpbpjm.15WobapsfwpVQO#avoh`llh8~	KFBGX3^*baaqivbm+2:;ofpkwtjm?,j=plmzdvzpev`hsjsf\x7F.	"331*mgltX2^8X^8	Old#pbow	\n\nabmdwqjnabwk*x	33s{	~*8hl9\0effpbg=p9,,#X^8wloosovd+*x	x	#-ip$133sgvboalbw-ISD*8	~rvlw*8		$*8		~1327132613251324132;132:13131312131113101317131613151314131;131:130313021301130013071306130513041320132113221323133:133;133413351336133713301331133213332:::2::;2::42::52::62::72::02::12::22::32:;:2:;;2:;42:;52:;62:;72:;02:;12:;22:;32:4:2:4;2:442:452:462:472:402:412:422:432:5:2:5;2:542:552:562:572:502:512:522:532:6:2:6;2:642:652:662:672:602:612:622:632333231720:73333::::`lnln/Mpfpwffpwbsfqlwlglkb`f`bgbb/]lajfmg/Abbp/Aujgb`bpllwqlelqlplollwqb`vbogjilpjgldqbmwjslwfnbgfafbodlrv/Efpwlmbgbwqfpsl`l`bpbabilwlgbpjmlbdvbsvfpvmlpbmwfgj`fovjpfoobnbzlylmbbnlqsjpllaqb`oj`foolgjlpklqb`bpj<[<\\<Q<\\<R<P=l<\\=l=o=n<\\<Q<Y<S<R<R=n<T<[<Q<R<X<R=n<R<Z<Y<R<Q<T=i<q<\\<Y<Y<]=g<P=g<~=g=m<R<^=g<^<R<q<R<R<]<s<R<W<T<Q<T<L<H<q<Y<p=g=n=g<r<Q<T<P<X<\\<{<\\<x<\\<q=o<r<]=n<Y<t<[<Y<U<Q=o<P<P<N=g=o<Z5m5f4O5j5i4K5i4U5o5h4O5d4]4C5f4K5m5e5k5d5h5i5h5o4K5d5h5k4D4_4K5h4I5j5k5f4O5f5n4C5k5h4G5i4D5k5h5d5h5f4D5h4K5f4D5o4X5f4K5i4O5i5j4F4D5f5h5j4A4D5k5i5i4X5d4Xejqpwujgflojdkwtlqognfgjbtkjwf`olpfaob`hqjdkwpnbooallhpsob`fnvpj`ejfoglqgfqsljmwubovfofufowbaofalbqgklvpfdqlvstlqhpzfbqppwbwfwlgbztbwfqpwbqwpwzofgfbwksltfqsklmfmjdkwfqqlqjmsvwbalvwwfqnpwjwofwllopfufmwol`bowjnfpobqdftlqgpdbnfppklqwpsb`fel`vp`ofbqnlgfoaol`hdvjgfqbgjlpkbqftlnfmbdbjmnlmfzjnbdfmbnfpzlvmdojmfpobwfq`lolqdqffmeqlmw%bns8tbw`kelq`fsqj`fqvofpafdjmbewfqujpjwjppvfbqfbpafoltjmgf{wlwboklvqpobafosqjmwsqfppavjowojmhppsffgpwvgzwqbgfelvmgpfmpfvmgfqpkltmelqnpqbmdfbggfgpwjoonlufgwbhfmbalufeobpkej{fglewfmlwkfqujftp`kf`hofdboqjufqjwfnprvj`hpkbsfkvnbmf{jpwdljmdnlujfwkjqgabpj`sfb`fpwbdftjgwkoldjmjgfbptqlwfsbdfpvpfqpgqjufpwlqfaqfbhplvwkulj`fpjwfpnlmwktkfqfavjogtkj`kfbqwkelqvnwkqffpslqwsbqwz@oj`holtfqojufp`obppobzfqfmwqzpwlqzvpbdfplvmg`lvqwzlvq#ajqwkslsvswzsfpbssozJnbdfafjmdvssfqmlwfpfufqzpkltpnfbmpf{wqbnbw`kwqb`hhmltmfbqozafdbmpvsfqsbsfqmlqwkofbqmdjufmmbnfgfmgfgWfqnpsbqwpDqlvsaqbmgvpjmdtlnbmebopfqfbgzbvgjlwbhfptkjof-`ln,ojufg`bpfpgbjoz`kjogdqfbwivgdfwklpfvmjwpmfufqaqlbg`lbpw`lufqbssofejofp`z`ofp`fmfsobmp`oj`htqjwfrvffmsjf`ffnbjoeqbnflogfqsklwlojnjw`b`kf`jujop`boffmwfqwkfnfwkfqfwlv`kalvmgqlzbobphfgtklofpjm`fpwl`h#mbnfebjwkkfbqwfnswzleefqp`lsfltmfgnjdkwboavnwkjmhaollgbqqbznbilqwqvpw`bmlmvmjlm`lvmwubojgpwlmfPwzofOldjmkbsszl``vqofew9eqfpkrvjwfejonpdqbgfmffgpvqabmejdkwabpjpklufqbvwl8qlvwf-kwnonj{fgejmboZlvq#pojgfwlsj`aqltmbolmfgqbtmpsojwqfb`kQjdkwgbwfpnbq`krvlwfdllgpOjmhpglvawbpzm`wkvnaboolt`kjfezlvwkmlufo23s{8pfqufvmwjokbmgp@kf`hPsb`frvfqzibnfpfrvbowtj`f3/333Pwbqwsbmfoplmdpqlvmgfjdkwpkjewtlqwkslpwpofbgptffhpbuljgwkfpfnjofpsobmfpnbqwboskbsobmwnbqhpqbwfpsobzp`objnpbofpwf{wppwbqptqlmd?,k0=wkjmd-lqd,nvowjkfbqgSltfqpwbmgwlhfmplojg+wkjpaqjmdpkjsppwbeewqjfg`boopevoozeb`wpbdfmwWkjp#,,..=bgnjmfdzswFufmw26s{8Fnbjowqvf!`qlpppsfmwaoldpal{!=mlwfgofbuf`kjmbpjyfpdvfpw?,k7=qlalwkfbuzwqvf/pfufmdqbmg`qjnfpjdmpbtbqfgbm`fskbpf=?"..fm\\VP% 0:8133s{\\mbnfobwjmfmilzbib{-bwjlmpnjwkV-P-#klogpsfwfqjmgjbmbu!=`kbjmp`lqf`lnfpgljmdsqjlqPkbqf2::3pqlnbmojpwpibsbmeboopwqjboltmfqbdqff?,k1=bavpfbofqwlsfqb!.,,T`bqgpkjoopwfbnpSklwlwqvwk`ofbm-sks<pbjmwnfwboolvjpnfbmwsqlleaqjfeqlt!=dfmqfwqv`hollhpUbovfEqbnf-mfw,..=	?wqz#x	ubq#nbhfp`lpwpsobjmbgvowrvfpwwqbjmobalqkfosp`bvpfnbdj`nlwlqwkfjq163s{ofbpwpwfsp@lvmw`lvogdobpppjgfpevmgpklwfobtbqgnlvwknlufpsbqjpdjufpgvw`kwf{bpeqvjwmvoo/\x7F\x7FX^8wls!=	?"..SLPW!l`fbm?aq,=eollqpsfbhgfswk#pjyfabmhp`bw`k`kbqw13s{8bojdmgfboptlvog63s{8vqo>!sbqhpnlvpfNlpw#---?,bnlmdaqbjmalgz#mlmf8abpfg`bqqzgqbewqfefqsbdf\\klnf-nfwfqgfobzgqfbnsqlufiljmw?,wq=gqvdp?"..#bsqjojgfboboofmf{b`welqwk`lgfpoldj`Ujft#pffnpaobmhslqwp#+133pbufg\\ojmhdlbopdqbmwdqffhklnfpqjmdpqbwfg03s{8tklpfsbqpf+*8!#Aol`hojmv{ilmfpsj{fo$*8!=*8je+.ofewgbujgklqpfEl`vpqbjpfal{fpWqb`hfnfmw?,fn=abq!=-pq`>wltfqbow>!`baofkfmqz17s{8pfwvsjwbozpkbqsnjmlqwbpwftbmwpwkjp-qfpfwtkffodjqop,`pp,233&8`ovappwveeajaofulwfp#2333hlqfb~*8	abmgprvfvf>#x~8;3s{8`hjmdx	\n\nbkfbg`ol`hjqjpkojhf#qbwjlpwbwpElqn!zbkll*X3^8Balvwejmgp?,k2=gfavdwbphpVQO#>`foop~*+*821s{8sqjnfwfoopwvqmp3{533-isd!psbjmafb`kwb{fpnj`qlbmdfo..=?,djewppwfuf.ojmhalgz-~*8	\nnlvmw#+2::EBR?,qldfqeqbmh@obpp1;s{8effgp?k2=?p`lwwwfpwp11s{8gqjmh*#\x7F\x7F#oftjppkboo 30:8#elq#olufgtbpwf33s{8ib9npjnlm?elmwqfsoznffwpvmwfq`kfbswjdkwAqbmg*#">#gqfpp`ojspqllnplmhfznlajonbjm-Mbnf#sobwfevmmzwqffp`ln,!2-isdtnlgfsbqbnPWBQWofew#jggfm/#132*8	~	elqn-ujqvp`kbjqwqbmptlqpwSbdfpjwjlmsbw`k?"..	l.`b`ejqnpwlvqp/333#bpjbmj((*xbglaf$*X3^jg>23alwk8nfmv#-1-nj-smd!hfujm`lb`k@kjogaqv`f1-isdVQO*(-isd\x7Fpvjwfpoj`fkbqqz213!#ptffwwq=	mbnf>gjfdlsbdf#ptjpp..=		 eee8!=Old-`ln!wqfbwpkffw*#%%#27s{8poffsmwfmwejofgib9ojg>!`Mbnf!tlqpfpklwp.al{.gfowb	%ow8afbqp97;Y?gbwb.qvqbo?,b=#psfmgabhfqpklsp>#!!8sks!=`wjlm20s{8aqjbmkfoolpjyf>l>&1E#iljmnbzaf?jnd#jnd!=/#eipjnd!#!*X3^NWlsAWzsf!mftozGbmph`yf`kwqbjohmltp?,k6=ebr!=yk.`m23*8	.2!*8wzsf>aovfpwqvozgbujp-ip$8=	?"pwffo#zlv#k1=	elqn#ifpvp233&#nfmv-	\n	tbofpqjphpvnfmwggjmda.ojhwfb`kdje!#ufdbpgbmphffpwjpkrjspvlnjplaqfgfpgffmwqfwlglpsvfgfb/]lpfpw/Mwjfmfkbpwblwqlpsbqwfglmgfmvfulkb`fqelqnbnjpnlnfilqnvmglbrv/Ag/Abpp/_olbzvgbef`kbwlgbpwbmwlnfmlpgbwlplwqbppjwjlnv`klbklqbovdbqnbzlqfpwlpklqbpwfmfqbmwfpelwlpfpwbpsb/Apmvfubpbovgelqlpnfgjlrvjfmnfpfpslgfq`kjofpfq/Muf`fpgf`jqilp/Efpwbqufmwbdqvslkf`klfoolpwfmdlbnjdl`lpbpmjufodfmwfnjpnbbjqfpivojlwfnbpkb`jbebulqivmjlojaqfsvmwlavfmlbvwlqbaqjoavfmbwf{wlnbqylpbafqojpwbovfdl`/_nlfmfqlivfdlsfq/Vkbafqfpwlzmvm`bnvifqubolqevfqbojaqldvpwbjdvboulwlp`bplpdv/Absvfglplnlpbujplvpwfggfafmml`kfavp`bebowbfvqlppfqjfgj`kl`vqpl`obuf`bpbpof/_msobylobqdllaqbpujpwbbslzlivmwlwqbwbujpwl`qfbq`bnslkfnlp`jm`l`bqdlsjplplqgfmkb`fm/Mqfbgjp`lsfgql`fq`bsvfgbsbsfonfmlq/Vwjo`obqlilqdf`boofslmfqwbqgfmbgjfnbq`bpjdvffoobppjdol`l`kfnlwlpnbgqf`obpfqfpwlmj/]lrvfgbsbpbqabm`lkjilpujbifsbaol/Epwfujfmfqfjmlgfibqelmgl`bmbomlqwfofwqb`bvpbwlnbqnbmlpovmfpbvwlpujoobufmglsfpbqwjslpwfmdbnbq`loofubsbgqfvmjglubnlpylmbpbnalpabmgbnbqjbbavplnv`kbpvajqqjlibujujqdqbgl`kj`bboo/Ailufmgj`kbfpwbmwbofppbojqpvfolsfplpejmfpoobnbavp`l/Epwboofdbmfdqlsobybkvnlqsbdbqivmwbglaofjpobpalopbab/]lkbaobov`kb/mqfbgj`fmivdbqmlwbpuboofboo/M`bqdbglolqbabilfpw/Edvpwlnfmwfnbqjlejqnb`lpwlej`kbsobwbkldbqbqwfpofzfpbrvfonvpflabpfpsl`lpnjwbg`jfol`kj`lnjfgldbmbqpbmwlfwbsbgfafpsobzbqfgfppjfwf`lqwf`lqfbgvgbpgfpflujfilgfpfbbdvbp%rvlw8glnbjm`lnnlmpwbwvpfufmwpnbpwfqpzpwfnb`wjlmabmmfqqfnlufp`qloovsgbwfdolabonfgjvnejowfqmvnafq`kbmdfqfpvowsvaoj`p`qffm`kllpfmlqnbowqbufojppvfpplvq`fwbqdfwpsqjmdnlgvofnlajofptjw`ksklwlpalqgfqqfdjlmjwpfoepl`jbob`wjuf`lovnmqf`lqgelooltwjwof=fjwkfqofmdwkebnjozeqjfmgobzlvwbvwklq`qfbwfqfujftpvnnfqpfqufqsobzfgsobzfqf{sbmgsloj`zelqnbwglvaofsljmwppfqjfpsfqplmojujmdgfpjdmnlmwkpelq`fpvmjrvftfjdkwsflsoffmfqdzmbwvqfpfbq`kejdvqfkbujmd`vpwlnleepfwofwwfqtjmgltpvanjwqfmgfqdqlvspvsolbgkfbowknfwklgujgflpp`klloevwvqfpkbgltgfabwfubovfpLaif`wlwkfqpqjdkwpofbdvf`kqlnfpjnsofmlwj`fpkbqfgfmgjmdpfbplmqfslqwlmojmfprvbqfavwwlmjnbdfpfmbaofnlujmdobwfpwtjmwfqEqbm`fsfqjlgpwqlmdqfsfbwOlmglmgfwbjoelqnfggfnbmgpf`vqfsbppfgwlddofsob`fpgfuj`fpwbwj``jwjfppwqfbnzfooltbwwb`hpwqffweojdkwkjggfmjmel!=lsfmfgvpfevouboofz`bvpfpofbgfqpf`qfwpf`lmggbnbdfpslqwpf{`fswqbwjmdpjdmfgwkjmdpfeef`wejfogppwbwfpleej`fujpvbofgjwlqulovnfQfslqwnvpfvnnlujfpsbqfmwb``fppnlpwoznlwkfq!#jg>!nbqhfwdqlvmg`kbm`fpvqufzafelqfpznalonlnfmwpsff`knlwjlmjmpjgfnbwwfq@fmwfqlaif`wf{jpwpnjggofFvqlsfdqltwkofdb`znbmmfqfmlvdk`bqffqbmptfqlqjdjmslqwbo`ojfmwpfof`wqbmgln`olpfgwlsj`p`lnjmdebwkfqlswjlmpjnsozqbjpfgfp`bsf`klpfm`kvq`kgfejmfqfbplm`lqmfqlvwsvwnfnlqzjeqbnfsloj`fnlgfopMvnafqgvqjmdleefqppwzofphjoofgojpwfg`boofgpjoufqnbqdjmgfofwfafwwfqaqltpfojnjwpDolabopjmdoftjgdfw`fmwfqavgdfwmltqbs`qfgjw`objnpfmdjmfpbefwz`klj`fpsjqjw.pwzofpsqfbgnbhjmdmffgfgqvppjbsofbpff{wfmwP`qjswaqlhfmbooltp`kbqdfgjujgfeb`wlqnfnafq.abpfgwkflqz`lmejdbqlvmgtlqhfgkfosfg@kvq`kjnsb`wpklvogbotbzpoldl!#alwwlnojpw!=*xubq#sqfej{lqbmdfKfbgfq-svpk+`lvsofdbqgfmaqjgdfobvm`kQfujftwbhjmdujpjlmojwwofgbwjmdAvwwlmafbvwzwkfnfpelqdlwPfbq`kbm`klqbonlpwolbgfg@kbmdfqfwvqmpwqjmdqfolbgNlajofjm`lnfpvssozPlvq`flqgfqpujftfg%maps8`lvqpfBalvw#jpobmg?kwno#`llhjfmbnf>!bnbylmnlgfqmbguj`fjm?,b=9#Wkf#gjboldklvpfpAFDJM#Nf{j`lpwbqwp`fmwqfkfjdkwbggjmdJpobmgbppfwpFnsjqfP`kllofeelqwgjqf`wmfbqoznbmvboPfof`w-		Lmfiljmfgnfmv!=SkjojsbtbqgpkbmgofjnslqwLeej`fqfdbqgphjoopmbwjlmPslqwpgfdqfftffhoz#+f-d-afkjmggl`wlqolddfgvmjwfg?,a=?,afdjmpsobmwpbppjpwbqwjpwjppvfg033s{\x7F`bmbgbbdfm`zp`kfnfqfnbjmAqbyjopbnsofoldl!=afzlmg.p`bofb``fswpfqufgnbqjmfEllwfq`bnfqb?,k2=	\\elqn!ofbufppwqfpp!#,=	-dje!#lmolbgolbgfqL{elqgpjpwfqpvqujuojpwfmefnbofGfpjdmpjyf>!bssfbowf{w!=ofufopwkbmhpkjdkfqelq`fgbmjnbobmzlmfBeqj`bbdqffgqf`fmwSflsof?aq#,=tlmgfqsqj`fpwvqmfg\x7F\x7F#x~8nbjm!=jmojmfpvmgbztqbs!=ebjofg`fmpvpnjmvwfafb`lmrvlwfp263s{\x7Ffpwbwfqfnlwffnbjo!ojmhfgqjdkw8pjdmboelqnbo2-kwnopjdmvssqjm`feolbw9-smd!#elqvn-B``fppsbsfqpplvmgpf{wfmgKfjdkwpojgfqVWE.;!%bns8#Afelqf-#TjwkpwvgjlltmfqpnbmbdfsqlejwiRvfqzbmmvbosbqbnpalvdkwebnlvpdlldofolmdfqj((*#xjpqbfopbzjmdgf`jgfklnf!=kfbgfqfmpvqfaqbm`ksjf`fpaol`h8pwbwfgwls!=?qb`jmdqfpjyf..%dw8sb`jwzpf{vboavqfbv-isd!#23/333lawbjmwjwofpbnlvmw/#Jm`-`lnfgznfmv!#ozqj`pwlgbz-jmgffg`lvmwz\\oldl-EbnjozollhfgNbqhfwopf#jeSobzfqwvqhfz*8ubq#elqfpwdjujmdfqqlqpGlnbjm~fopfxjmpfqwAold?,ellwfqoldjm-ebpwfqbdfmwp?algz#23s{#3sqbdnbeqjgbzivmjlqgloobqsob`fg`lufqpsovdjm6/333#sbdf!=alpwlm-wfpw+bubwbqwfpwfg\\`lvmwelqvnpp`kfnbjmgf{/ejoofgpkbqfpqfbgfqbofqw+bssfbqPvanjwojmf!=algz!=	)#WkfWklvdkpffjmdifqpfzMftp?,ufqjezf{sfqwjmivqztjgwk>@llhjfPWBQW#b`qlpp\\jnbdfwkqfbgmbwjufsl`hfwal{!=	Pzpwfn#Gbujg`bm`fqwbaofpsqlufgBsqjo#qfboozgqjufqjwfn!=nlqf!=albqgp`lolqp`bnsvpejqpw#\x7F\x7F#X^8nfgjb-dvjwbqejmjpktjgwk9pkltfgLwkfq#-sks!#bppvnfobzfqptjoplmpwlqfpqfojfeptfgfm@vpwlnfbpjoz#zlvq#Pwqjmd		Tkjowbzolq`ofbq9qfplqweqfm`kwklvdk!*#(#!?algz=avzjmdaqbmgpNfnafqmbnf!=lssjmdpf`wlq6s{8!=upsb`fslpwfqnbilq#`leeffnbqwjmnbwvqfkbssfm?,mbu=hbmpbpojmh!=Jnbdfp>ebopftkjof#kpsb`f3%bns8#		Jm##sltfqSlophj.`lolqilqgbmAlwwlnPwbqw#.`lvmw1-kwnomftp!=32-isdLmojmf.qjdkwnjoofqpfmjlqJPAM#33/333#dvjgfpubovf*f`wjlmqfsbjq-{no!##qjdkwp-kwno.aol`hqfdF{s9klufqtjwkjmujqdjmsklmfp?,wq=vpjmd#	\nubq#=$*8	\n?,wg=	?,wq=	abkbpbaqbpjodbofdlnbdzbqslophjpqsphj4]4C5d\bTA\nzk\vBl\bQ\x7F\vUmGx\bSM\nmC\bTA	wQ\nd}\bW@\bTl\bTF	i@	cT\vBM\v|jBV	qw	cC\bWI\npa	fM\n{Z{X\bTF\bVV\bVK	\x7FmkF	[]\bPm\bTv\nsI\vpg	[I\bQpmx\v_W\n^M\npe\vQ}\vGu\nel\npeChBV\bTA	So\nzk\vGL\vxD\nd[JzMY\bQpli\nfl\npC{BNt\vwT	i_\bTgQQ\n|p\vXN\bQS\vxDQC\bWZ	pD\vVS\bTWNtYh\nzuKjN}	wr	Ha\n_D	j`\vQ}\vWp\nxZ{c	ji	BU\nbDa|	Tn	pV\nZd\nmC\vEV{X	c}	To\bWl\bUd	IQ	cg\vxs\nXW	wR\vek	c}	]y	Jn\nrp\neg\npV\nz\\{W\npl\nz\\\nzU	Pc	`{\bV@\nc|\bRw	i_\bVb\nwX	HvSu\bTF\v_W\vWs\vsIm\x7F\nTT\ndc	US	}f	iZ\bWz	c}MD	Be	iD\v@@\bTl\bPv	}tSwM`\vnU	kW\ved\nqo\vxY	A|\bTz\vy`BRBM	iaXU\nyun^	fL	iI\nXW	fD\bWz\bW@	yj	\x7Fm	av	BN\vb\\	pD\bTf\nY[	Jn\bQy	[^\vWc\vyuDlCJ\vWj\vHR	`V\vuW	Qy\np@\vGuplJm\bW[\nLP\nxC\n`m	wQui\x7FR\nbI	wQ	BZ	WVBR\npg	cgtiCW\n_y	Rg\bQa\vQB\vWc\nYble\ngESu\nL[	Q\x7F	ea	dj\v]W\nb~M`	wL\bTV\bVH\nt\x7F\npl	|bs_\bU|\bTaoQlvSkM`\bTv\vK}\nfl	cCoQBR	Hk	|d\bQp	HK	BZ\vHR\bPv\vLx\vEZ\bT\x7F\bTv	iDoDMU\vwBSuk`St\ntC	Pl	Kg\noi	jY\vxYh}\nzk\bWZ	\x7Fm\ve`	TB	fE\nzk	`zYh\nV|	HK	AJ	AJ\bUL	p\\	ql\nYcKd\nfyYh	[I\vDgJm\n]n\nlb\bUd\n{Z	lu	fsoQ\bTWJm\vwB	eaYhBC	sb	Tn\nzU\n_y\vxY	Q]\ngwmt	O\\\ntb\bWW\bQy	mI	V[\ny\\\naB\vRb	wQ\n]QQJ\bWg\vWa\bQj\ntC\bVH\nYm\vxs\bVK\nel\bWI\vxYCq\ntR\vHV\bTl\bVw	ay\bQa\bVV	}t	dj\nr|	p\\	wR\n{i\nTT	[I	i[	AJ\vxs\v_W	d{\vQ}	cg	Tz	A|	Cj\vLmN}m\x7F\nbK	dZ	p\\	`V	sV\np@	iD	wQ\vQ}\bTfkaJm\v@@\bV`	zp\n@NSw	iI	cg\noiSu\bVwloCy	c}\vb\\	sUBA\bWI\bTf\nxS	Vp\nd|\bTV\vbC	NoJu\nTC	|`\n{Z	D]\bU|	c}lm\bTl	Bv	Pl	c}\bQp	\x7Fm\nLk	kj\n@NSbKO	j_	p\\\nzU\bTl\bTg\bWI	cfXO\bWW\ndzli	BN\nd[\bWOMD\vKC	dj	I_\bVV\ny\\\vLmxl	xB	kV\vb\\\vJW\vVS	Vx\vxD	d{MD\bTa	|`\vPzR}\vWsBM\nsICN\bTaJm\npe	i_\npV\nrh	Rd	Hv\n~A\nxR\vWh\vWk\nxS\vAz\vwX\nbIoQ	fw\nqI\nV|\nunz\x7F\vpg	d\\\voA{D	i_xB\bT\x7F	`Vqr	TTg]CA\vuR	VJ	T`\npw\vRb	I_\nCxRo\vsICjKh	Bv	WVBBoD{D\nhcKm\v^R	QE\n{I\np@\nc|Gt	c}Dl\nzUqN	sVk}	Hh\v|j\nqou|	Q]\vek\x7FZM`St\npe	dj\bVG\veE	\x7Fm\vWc|I\n[W	fL\bT\x7F	BZSu\vKaCqNtY[\nqI\bTv	fM	i@	}fB\\	Qy\vBl\bWgXDkc\vx[\bVV	Q]	\x7Fa	Py\vxD\nfI	}foD	dj	SGls	~DCN\n{Z	\\v\n_D\nhc\vx_C[	AJ\nLM	VxCI	bj	c^	cF\ntCSx	wrXA\bU\\	|a\vK\\\bTV\bVj\nd|	fsCX\ntb\bRw	Vx	AE	A|\bT\x7FNt\vDg	Vc\bTld@\npo	\x7FM	cF\npe	iZ	Bo\bSq\nfHl`\bTx\bWf	HE\vF{	cO	fD\nlm\vfZ\nlm\veU	dGBH\bTV	SiMW\nwX\nz\\	\\cCX\nd}	l}\bQp\bTV	F~\bQ\x7F	`i\ng@nO\bUd\bTl\nL[	wQ	ji\ntC	|J\nLU\naB\vxYKj	AJuN	i[\npeSk\vDg\vx]\bVb\bVV\nea	kV\nqI\bTaSk\nAO	pD\ntb\nts\nyi\bVg	i_\v_W\nLkNt	yj	fMR\x7F	iI\bTl\vwX	sV\vMl\nyu	AJ\bVjKO	WV\vA}\vW\x7F\nrp	iD\v|olv\vsIBM	d~	CU\bVbeV\npC\vwT	j`	c}\vxs\vps\vvh	WV\vGg\vAe\vVK\v]W	rg\vWcF`	Br\vb\\	dZ\bQp\nqIkF\nLk\vAR\bWI\bTg	bs	dw\n{L\n_y	iZ\bTA	lg\bVV\bTl	dk\n`k	a{	i_{Awj	wN\v@@\bTe	i_\n_D	wL\nAH\viK\vek\n[]	p_	yj\bTv	US	[r\n{I\npsGt\vVK\nplS}\vWP	|dMD\vHV\bT\x7FR}M`\bTV\bVHlvCh\bW[Ke	R{\v^R	ab	BZ	VA	B`\nd|\nhsKe	BeOi	R{	d\\nB\bWZ	dZ	VJOs	\x7FmuQ\vhZQ@QQ\nfI\bW[B\\li\nzU\nMdM`\nxS\bVV\n\\}\vxD	\x7Fm\bTpIS\nc|	kVi~	V{\vhZ	|b\bWt\n@R\voA\vnU\bWI	ea	B`	iD	c}	TzBR\vQBNj	CP	[I\bTv	`WuN\vpg\vpg\vWc	iT	bs	wL	U_	c\\	|h\vKa	Nr	fL\nq|\nzu\nz\\	Nr\bUg	|bm`\bTv\nyd\nrp\bWf	UXBV\nzk\nd}	wQ	}fCe\ved\bTW\bSB\nxU	cn\bTb\ne\x7F	a\\	SG\bU|\npV\nN\\Kn\vnU	At	pD\v^R\vIrb[	R{	dE\vxD\vWK\vWA\bQL\bW@Su\bUd\nDM	PcCADloQ	Hswiub\n\x7Fa\bQpOb\nLP\bTlY[\vK}	AJ\bQ\x7Fn^\vsA\bSM\nqM\bWZ\n^W\vz{S|	fD\bVK\bTv\bPvBB	CPdF	id\vxsmx\vws	cC\ntC	ycM`\vW\x7F\nrh\bQp\vxD\\o\nsI_k\nzukF	fDXsXO	jp\bTvBS{B	Br\nzQ\nbI	c{BDBVnO\bTF	caJd	fL	PV	I_\nlK`o	wX\npa	gu\bP}{^\bWf\n{I	BN\npaKl\vpg	cn	fL\vvhCq\bTl\vnU\bSqCm	wR\bUJ\npe\nyd\nYgCy\vKW	fD\neaoQ	j_	BvnM\vID\bTa\nzApl\n]n\bTa	R{	fr\n_y\bUg{Xkk\vxD|Ixl\nfyCe\vwB\nLk\vd]\noi\n}h	Q]\npe\bVwHkOQ\nzk	AJ\npV\bPv\ny\\	A{Oi\bSBXA\veE	jp\nq}	iDqN\v^R	\x7Fm	iZ	Br\bVg\noi\n\\X	U_\nc|\vHV\bTf	Tn\\N\\N\nuBlv\nyu	Td\bTf\bPL\v]W	dG\nA`\nw^\ngI\npe	dw\nz\\ia\bWZ	cFJm\n{Z\bWO_kDfRR	d\\\bVV\vxsBNtilm	Td	]y\vHV	So\v|jXX	A|\vZ^\vGu\bTWM`kF\vhZ\vVK	dG\vBl	ay\nxUqEnO\bVw\nqICX\ne\x7F	Pl\bWO\vLm	dLuHCm	dTfn\vwBka\vnU\n@M\nyT	Hv	\\}Kh	d~Yhk}\neR	d\\\bWI	|b	HK	iD\bTWMY\npl\bQ_	wr\vAx	HE\bTg\bSqvp\vb\\\bWO\nOl\nsI\nfy\vID	\\c\n{Z\n^~\npe\nAO	TT\vxvk_\bWO\v|j\vwB	Qy	i@	Pl	Ha	dZk}ra	UT\vJc\ved\np@	QN\nd|	kj	HkM`\noi	wr	d\\\nlq\no_\nlb\nL[	acBBBHCm\npl	IQ\bVK\vxs\n`e\viK\npaOi	US\bTp	fD\nPGkkXA\nz\\\neg\vWh	wRqN\nqS	cnlo\nxS\n^W	BU\nt\x7F	HE	p\\	fF	fw\bVV\bW@	ak\vVKls	VJ\bVV\veE\\o\nyX\nYmM`lL\nd|\nzk	A{sE	wQXT\nt\x7F	Pl	]y\vwT{pMD\vb\\	Q]Kj	Jn\nAH\vRb	BU	HK	\\c\nfIm\x7F\nqM\n@R	So\noiBT	Hv\n_yKh	BZ	]i\bUJ	V{Sr\nbI\vGg	a_\bTR\nfI\nfl	[K	IIS|\vuW	iI\bWI\nqI\v|jBV\bVg\bWZkF\vx]\bTA	ab	fr	i@	Jd	Jd\vps\nAO\bTaxu	iD\nzk	|d	|`\bW[	lP	dG\bVV\vw}\vqO	i[\bQ\x7F\bTz\vVF	wNts	dw\bTv\neS\ngi	NryS\npe\bVV\bSq\n`m	yj	BZ\vWX\bSB	c\\\nUR	[J	c_nM\bWQ\vAx\nMd	Brui\vxY\bSM\vWc\v|j\vxs	}Q	BO\bPL\bWW	fM\nAO	Pc\veUe^\bTg\nqI	ac\bPv	cFoQ	Q\x7F\vhZka\nz\\	iK	BU\n`k	CPS|M`\n{I	S{_O	BZZiSk	ps	p\\\nYu\n]s\nxC\bWt\nbD	kV\vGuyS\nqA	[r\neKM`	dZlL\bUg\bTl\nbD	US\vb\\	pV\nccS\\	ct	`z\bPL\vWs\nA`\neg\bSquECR\vDg	`W\vz{\vWcSkSk	bW\bUg	ea\nxZ	iI	UX	VJ\nqn	S{\vRb\bTQ\nplGt\vuWuj\npF\nqI	fL	[I	iaXO\nyu\vDg\ved	q{VG\bQ\x7Fka	Vj	kV	xB\nd|\np@	QN	Pc	ps]j	kV	oU\bTp\nzUnB\vB]	a{\bV@\n]nm`	cz	R{m`\bQa\vwT\bSMMYqN	dj~s\vQ}MY\vMB	Bv	wR\bRg\vQ}	ql\vKC\nrmxuCC\vwB\vvh	BqXq\npV	i_ObuE\nbd\nqo\v{i\nC~	BL\veEuH\bVjEyGz\vzR\v{i	cf\n{Z\n]nXA\vGu\vnU	hS\vGI\nCc	HE\bTA	HBBHCj\nCc\bTF	HE\nXI	A{\bQ\x7F	c\\\vmO\vWX\nfH\np@MY\bTF\nlK	Bt\nzU	TTKm\vwT\npV\ndt\vyI	Vx	Q\x7F	Rg	Td\nzU\bRS\nLM	wAnM	Tn\ndS	]g\nLc\vwB	}t	[I	CPkX\vFm\vhZm\x7F	i[\np@\vQ}\vW\x7F	|d\nMO\nMd	f_	fD	cJ	Hz\vRb	io	PyY[\nxU	ct\v@@	ww\bPvBMFF\ntbv|\vKm	Bq	BqKh`o\nZdXU	i]	|`	StB\\\bQ\x7F\v_W	TJ\nqI	|a	A{\vuPMD	Pl\nxR	fL\vws	c{	d\\\bV`\neg	HKkc\nd|\bVV\ny\\kc	i]\bVG	`V	ss	I_	AE	bs	du\nel	pD\vW\x7F\nqslv\bSMZi\vVKia\vQB	Q\x7F\n{Z\bPt\vKl\nlK\nhs\ndS\bVKmf\nd^	kV	cO\nc|\bVH	\\]\bTv\bSq	mI\vDg	VJ	cn\ny\\\bVg\bTv\nyX\bTF	]]\bTp\noi\nhs\veU\nBf	djMr\n|p	\\g	]r\bVb{D\nd[XN	fM	O\\s_	cf	iZXN\vWc	qv\n`m	U^oD\nd|\vGg	dE\vwflou}\nd|oQ	`iOi\vxD\ndZ\nCxYw\nzk\ntb\ngw	yj	B`\nyX\vps\ntC\vpP\vqw\bPu\bPX	Dm\npwNj	ss	aG\vxs\bPt\noLGz	Ok	i@	i]eC	IQ	ii	dj\v@J	|duh\bWZ\veU\vnU\bTa	cCg]\nzkYh\bVK\nLU\np@\ntb\ntR	Cj\vNP	i@\bP{\n\\}\n{c\nwX	fL\bVG	c{	|`	AJ	|C	fDln	|d	bs\nqI{B\vAx\np@\nzk\vRbOs\vWSe^\vD_	Bv\vWd\bVb\vxs\veE\bRw\n]n\n|p\vg|	fwkc\bTIka\n\\TSp	ju\vps\npeu|\vGr\bVe	CU]MXU\vxD\bTa	IQ\vWq	CU	am	dj\bSoSw\vnUCh	Q]s_\bPt	fS\bTa	\\}\n@OYc	UZ\bTx\npe\vnU\nzU	|}	iD\nz\\\bSM\vxDBR\nzQ	QN]MYh\nLP\vFm\vLXvc\vqlka	HK\bVb\ntC\nCy\bTv\nuVoQ	`z	[I	B`\vRb	yj	sb\vWs\bTl	kV\ved\ne\x7FlL\vxN	\x7Fm\nJn	jY\vxD\bVb\bSq\vyu	wL\vXL\bTA	pg	At	nDXX	wR\npl\nhwyS\nps	cO\bW[\v|jXN	sV	p\\	Be\nb~\nAJ\n]ek`qN	dw	WV	HE\vEVJz	id	B`	zhE]	fD\bTgqN\bTa	jaCv\bSM\nhc\bUet_	ieg]	wQ\nPn\bVB	jw\bVg\vbE	BZ\vRH\bP{	jp\n\\}	a_	cC	|a\vD]	BZ	i[	fD\vxW\no_	d\\\n_D\ntb	\\c	AJ\nlKoQlo\vLx\vM@\bWZKn\vpg\nTi\nIv\n|r\v@}JzLmWhk}ln\vxD\n]sgc\vps	Br\bTW\vBMtZ\nBYDW	jf\vSWC}\nqo	dE	mv	IQ\bPP\bUblvBC\nzQ	[I\vgl\nig\bUsBT\vbC\bSq	sU	iW\nJn	SY	HK	rg\npV\vID\v|jKO	`S	|a`vbmglfmujbqnbgqjgavp`bqjmj`jlwjfnslslqrvf`vfmwbfpwbglsvfgfmivfdlp`lmwqbfpw/Mmmlnaqfwjfmfmsfqejonbmfqbbnjdlp`jvgbg`fmwqlbvmrvfsvfgfpgfmwqlsqjnfqsqf`jlpfd/Vmavfmlpuloufqsvmwlppfnbmbkba/Abbdlpwlmvfulpvmjglp`bqolpfrvjslmj/]lpnv`klpbodvmb`lqqfljnbdfmsbqwjqbqqjabnbq/Abklnaqffnsoflufqgbg`bnajlnv`kbpevfqlmsbpbglo/Amfbsbqf`fmvfubp`vqplpfpwbabrvjfqlojaqlp`vbmwlb``fplnjdvfoubqjlp`vbwqlwjfmfpdqvslppfq/Mmfvqlsbnfgjlpeqfmwfb`fq`bgfn/Mplefqwb`l`kfpnlgfoljwbojbofwqbpbod/Vm`lnsqb`vbofpf{jpwf`vfqslpjfmglsqfmpboofdbqujbifpgjmfqlnvq`jbslgq/Msvfpwlgjbqjlsvfaolrvjfqfnbmvfosqlsjl`qjpjp`jfqwlpfdvqlnvfqwfevfmwf`fqqbqdqbmgffef`wlsbqwfpnfgjgbsqlsjbleqf`fwjfqqbf.nbjoubqjbpelqnbpevwvqllaifwlpfdvjqqjfpdlmlqnbpnjpnlp/Vmj`l`bnjmlpjwjlpqby/_mgfajglsqvfabwlofglwfm/Abifp/Vpfpsfql`l`jmblqjdfmwjfmgb`jfmwl`/Mgjykbaobqpfq/Abobwjmbevfqybfpwjoldvfqqbfmwqbq/E{jwlo/_sfybdfmgbu/Agflfujwbqsbdjmbnfwqlpibujfqsbgqfpe/M`jo`bafyb/Mqfbppbojgbfmu/Alibs/_mbavplpajfmfpwf{wlpoofubqsvfgbmevfqwf`ln/Vm`obpfpkvnbmlwfmjglajoablvmjgbgfpw/Mpfgjwbq`qfbgl<X<W=c=k=n<R<V<\\<V<T<W<T=a=n<R<^=m<Y<Y<_<R<S=l<T=n<\\<V<Y=e<Y=o<Z<Y<v<\\<V<]<Y<[<]=g<W<R<Q<T<~=m<Y<S<R<X<A=n<R=n<R<P=k<Y<P<Q<Y=n<W<Y=n=l<\\<[<R<Q<\\<_<X<Y<P<Q<Y<x<W=c<s=l<T<Q<\\=m<Q<T=i=n<Y<P<V=n<R<_<R<X<^<R=n=n<\\<P<M<D<|<P<\\=c<K=n<R<^<\\=m<^<\\<P<Y<P=o<N<\\<V<X<^<\\<Q<\\<P=a=n<T=a=n=o<~<\\<P=n<Y=i<S=l<R=n=o=n<Q<\\<X<X<Q=c<~<R=n=n=l<T<Q<Y<U<~<\\=m<Q<T<P=m<\\<P=n<R=n=l=o<]<r<Q<T<P<T=l<Q<Y<Y<r<r<r<W<T=j=a=n<\\<r<Q<\\<Q<Y<P<X<R<P<P<R<U<X<^<Y<R<Q<R=m=o<X\fHy\fIk\fHU\fId\fHy\fIl\fHT\fIk\fHy\fHR\fHy\fIg\fHx\fH\\\fHF\fH\\\fHD\fIk\fHc\fHy\fHy\fHS\fHA\fIl\fHk\fHT\fHy\fH\\\fHH\fIg\fHU\fIg\fHj\fHF\fHU\fIl\fHC\fHU\fHC\fHR\fHH\fHy\fHI\fHRibdqbm\fHj\fHp\fHp\fIg\fHi\fH@\fHJ\fIg\fH{\fHd\fHp\fHR\fH{\fHc\fHU\fHB\fHk\fHD\fHY\fHU\fHC\fIk\fHI\fIk\fHI\fIl\fHt\fH\\\fHp\fH@\fHJ\fIl\fHy\fHd\fHp\fIl\fHY\fIk\fHD\fHd\fHD\fHc\fHU\fH\\\fHe\fHT\fHB\fIk\fHy\fHB\fHY\fIg\fH^\fIk\fHT\fH@\fHB\fHd\fHJ\fIk\fH\x7F\fH\\\fHj\fHB\fH@\fHT\fHA\fH\\\fH@\fHD\fHv\fH^\fHB\fHD\fHj\fH{\fHT\fIl\fH^\fIl4U5h5e4I5h5e5k4\\4K4N4B4]4U4C4C4K5h5e5k4\\5k4Y5d4]4V5f4]5o4K5j5d5h4K4D5f5j4U4]4Z4\\5h5o5k5j4K5f5d5i5n4K5h4U5h5f4K5j4K5h5o5j4A4F5e5n4D5h5d4A4E4K4B4]5m5n4[4U4D4C4]5o5j4I4\\4K5o5i4K4K4A4C4I5h4K5m5f5k4D4U4Z5o5f5m4D4A4G5d5i5j5d5k5d4O5j4K4@4C4K5h5k4K4_5h5i4U5j4C5h5f4_4U4D4]4Y5h5e5i5j4\\4D5k4K4O5j5k5i4G5h5o5j4F4K5h4K4A5f4G5i4Y4]4X4]4A4A5d5h5d5m5f4K4\\4K5h5o5h5i4]4E4K5j4F4K5h5m4O4D5d4B4K4Y4O5j4F4K5j5k4K5h5f4U4Z5d5d5n4C4K4D5j4B5f4]4D5j4F5h5o5i4X4K4M5d5k5f4K4D5d5n4Y4Y5d5i4K4]5n5i4O4A4C5j4A5j4U4C5i4]4O5f4K4A4E5o4F4D4C5d5j5f4@4D5i5j5k4F4A4F4@5k4E4_5j4E5f4F5i5o4]4E4V4^4E5j5m4_4D5f4F5h5h5k5h5j4K4F5h5o5n5h4D5h5i4K4U5j5k4O5d5h4X5f4M5j5d4]4O5i4K5m5f5o4D5o5h4\\4K4F4]4F4D4D4O5j5k5i4_4K5j5o4D5f4U5m5n4C4A4_5j5h5k5i4X4U4]4O5k5h4X5k4]5n4[4]4[5h4Dsqlejofpfquj`fgfebvowkjnpfoegfwbjop`lmwfmwpvsslqwpwbqwfgnfppbdfpv``fppebpkjlm?wjwof=`lvmwqzb``lvmw`qfbwfgpwlqjfpqfpvowpqvmmjmdsql`fpptqjwjmdlaif`wpujpjaoftfo`lnfbqwj`ofvmhmltmmfwtlqh`lnsbmzgzmbnj`aqltpfqsqjub`zsqlaofnPfquj`fqfpsf`wgjpsobzqfrvfpwqfpfquftfapjwfkjpwlqzeqjfmgplswjlmptlqhjmdufqpjlmnjoojlm`kbmmfotjmglt-bggqfppujpjwfgtfbwkfq`lqqf`wsqlgv`wfgjqf`welqtbqgzlv#`bmqfnlufgpvaif`w`lmwqlobq`kjuf`vqqfmwqfbgjmdojaqbqzojnjwfgnbmbdfqevqwkfqpvnnbqznb`kjmfnjmvwfpsqjubwf`lmwf{wsqldqbnpl`jfwzmvnafqptqjwwfmfmbaofgwqjddfqplvq`fpolbgjmdfofnfmwsbqwmfqejmboozsfqef`wnfbmjmdpzpwfnphffsjmd`vowvqf%rvlw8/ilvqmbosqlif`wpvqeb`fp%rvlw8f{sjqfpqfujftpabobm`fFmdojpk@lmwfmwwkqlvdkSofbpf#lsjmjlm`lmwb`wbufqbdfsqjnbqzujoobdfPsbmjpkdboofqzgf`ojmfnffwjmdnjppjlmslsvobqrvbojwznfbpvqfdfmfqbopsf`jfppfppjlmpf`wjlmtqjwfqp`lvmwfqjmjwjboqfslqwpejdvqfpnfnafqpklogjmdgjpsvwffbqojfqf{sqfppgjdjwbosj`wvqfBmlwkfqnbqqjfgwqbeej`ofbgjmd`kbmdfg`fmwqbouj`wlqzjnbdfp,qfbplmppwvgjfpefbwvqfojpwjmdnvpw#afp`kllopUfqpjlmvpvboozfsjplgfsobzjmddqltjmdlaujlvplufqobzsqfpfmwb`wjlmp?,vo=	tqbssfqboqfbgz`fqwbjmqfbojwzpwlqbdfbmlwkfqgfphwlsleefqfgsbwwfqmvmvpvboGjdjwbo`bsjwboTfapjwfebjovqf`lmmf`wqfgv`fgBmgqljggf`bgfpqfdvobq#%bns8#bmjnbopqfofbpfBvwlnbwdfwwjmdnfwklgpmlwkjmdSlsvobq`bswjlmofwwfqp`bswvqfp`jfm`foj`fmpf`kbmdfpFmdobmg>2%bns8Kjpwlqz#>#mft#@fmwqbovsgbwfgPsf`jboMfwtlqhqfrvjqf`lnnfmwtbqmjmd@loofdfwlloabqqfnbjmpaf`bvpffof`wfgGfvwp`kejmbm`ftlqhfqprvj`hozafwtffmf{b`wozpfwwjmdgjpfbpfPl`jfwztfbslmpf{kjajw%ow8"..@lmwqlo`obppfp`lufqfglvwojmfbwwb`hpgfuj`fp+tjmgltsvqslpfwjwof>!Nlajof#hjoojmdpkltjmdJwbojbmgqlssfgkfbujozfeef`wp.2$^*8	`lmejqn@vqqfmwbgubm`fpkbqjmdlsfmjmdgqbtjmdajoojlmlqgfqfgDfqnbmzqfobwfg?,elqn=jm`ovgftkfwkfqgfejmfgP`jfm`f`bwboldBqwj`ofavwwlmpobqdfpwvmjelqnilvqmfzpjgfabq@kj`bdlklojgbzDfmfqbosbppbdf/%rvlw8bmjnbwfeffojmdbqqjufgsbppjmdmbwvqboqlvdkoz-		Wkf#avw#mlwgfmpjwzAqjwbjm@kjmfpfob`h#lewqjavwfJqfobmg!#gbwb.eb`wlqpqf`fjufwkbw#jpOjaqbqzkvpabmgjm#eb`wbeebjqp@kbqofpqbgj`boaqlvdkwejmgjmdobmgjmd9obmd>!qfwvqm#ofbgfqpsobmmfgsqfnjvnsb`hbdfBnfqj`bFgjwjlm^%rvlw8Nfppbdfmffg#wlubovf>!`lnsof{ollhjmdpwbwjlmafojfufpnboofq.nlajofqf`lqgptbmw#wlhjmg#leEjqfel{zlv#bqfpjnjobqpwvgjfgnb{jnvnkfbgjmdqbsjgoz`ojnbwfhjmdglnfnfqdfgbnlvmwpelvmgfgsjlmffqelqnvobgzmbpwzklt#wl#Pvsslqwqfufmvff`lmlnzQfpvowpaqlwkfqplogjfqobqdfoz`boojmd-%rvlw8B``lvmwFgtbqg#pfdnfmwQlafqw#feelqwpSb`jej`ofbqmfgvs#tjwkkfjdkw9tf#kbufBmdfofpmbwjlmp\\pfbq`kbssojfgb`rvjqfnbppjufdqbmwfg9#ebopfwqfbwfgajddfpwafmfejwgqjujmdPwvgjfpnjmjnvnsfqkbspnlqmjmdpfoojmdjp#vpfgqfufqpfubqjbmw#qlof>!njppjmdb`kjfufsqlnlwfpwvgfmwplnflmff{wqfnfqfpwlqfalwwln9fuloufgboo#wkfpjwfnbsfmdojpktbz#wl##Bvdvpwpznalop@lnsbmznbwwfqpnvpj`bobdbjmpwpfqujmd~*+*8	sbznfmwwqlvaof`lm`fsw`lnsbqfsbqfmwpsobzfqpqfdjlmpnlmjwlq#$$Wkf#tjmmjmdf{solqfbgbswfgDboofqzsqlgv`fbajojwzfmkbm`f`bqffqp*-#Wkf#`loof`wPfbq`k#bm`jfmwf{jpwfgellwfq#kbmgofqsqjmwfg`lmplofFbpwfqmf{slqwptjmgltp@kbmmfojoofdbomfvwqbopvddfpw\\kfbgfqpjdmjmd-kwno!=pfwwofgtfpwfqm`bvpjmd.tfahjw`objnfgIvpwj`f`kbswfquj`wjnpWklnbp#nlyjoobsqlnjpfsbqwjfpfgjwjlmlvwpjgf9ebopf/kvmgqfgLoznsj`\\avwwlmbvwklqpqfb`kfg`kqlmj`gfnbmgppf`lmgpsqlwf`wbglswfgsqfsbqfmfjwkfqdqfbwozdqfbwfqlufqboojnsqluf`lnnbmgpsf`jbopfbq`k-tlqpkjsevmgjmdwklvdkwkjdkfpwjmpwfbgvwjojwzrvbqwfq@vowvqfwfpwjmd`ofbqozf{slpfgAqltpfqojafqbo~#`bw`kSqlif`wf{bnsofkjgf+*8EolqjgbbmptfqpbooltfgFnsfqlqgfefmpfpfqjlvpeqffglnPfufqbo.avwwlmEvqwkfqlvw#le#">#mvoowqbjmfgGfmnbqhuljg+3*,boo-ipsqfufmwQfrvfpwPwfskfm		Tkfm#lapfquf?,k1=	Nlgfqm#sqlujgf!#bow>!alqgfqp-		Elq#		Nbmz#bqwjpwpsltfqfgsfqelqnej`wjlmwzsf#lenfgj`bowj`hfwplsslpfg@lvm`jotjwmfppivpwj`fDflqdf#Afodjvn---?,b=wtjwwfqmlwbaoztbjwjmdtbqebqf#Lwkfq#qbmhjmdskqbpfpnfmwjlmpvqujufp`klobq?,s=	#@lvmwqzjdmlqfgolpp#leivpw#bpDflqdjbpwqbmdf?kfbg=?pwlssfg2$^*8	jpobmgpmlwbaofalqgfq9ojpw#le`bqqjfg233/333?,k0=	#pfufqboaf`lnfppfof`w#tfggjmd33-kwnonlmbq`klee#wkfwfb`kfqkjdkoz#ajloldzojef#lelq#fufmqjpf#le%qbrvl8sovplmfkvmwjmd+wklvdkGlvdobpiljmjmd`jq`ofpElq#wkfBm`jfmwUjfwmbnufkj`ofpv`k#bp`qzpwboubovf#>Tjmgltpfmilzfgb#pnboobppvnfg?b#jg>!elqfjdm#Boo#qjklt#wkfGjpsobzqfwjqfgkltfufqkjggfm8abwwofppffhjmd`bajmfwtbp#mlwollh#bw`lmgv`wdfw#wkfIbmvbqzkbssfmpwvqmjmdb9klufqLmojmf#Eqfm`k#ob`hjmdwzsj`bof{wqb`wfmfnjfpfufm#jedfmfqbwgf`jgfgbqf#mlw,pfbq`kafojfep.jnbdf9ol`bwfgpwbwj`-oldjm!=`lmufqwujlofmwfmwfqfgejqpw!=`jq`vjwEjmobmg`kfnjpwpkf#tbp23s{8!=bp#pv`kgjujgfg?,psbm=tjoo#afojmf#leb#dqfbwnzpwfqz,jmgf{-eboojmdgvf#wl#qbjotbz`loofdfnlmpwfqgfp`fmwjw#tjwkmv`ofbqIftjpk#sqlwfpwAqjwjpkeoltfqpsqfgj`wqfelqnpavwwlm#tkl#tbpof`wvqfjmpwbmwpvj`jgfdfmfqj`sfqjlgpnbqhfwpPl`jbo#ejpkjmd`lnajmfdqbskj`tjmmfqp?aq#,=?az#wkf#MbwvqboSqjub`z`llhjfplvw`lnfqfploufPtfgjpkaqjfeozSfqpjbmpl#nv`k@fmwvqzgfsj`wp`lovnmpklvpjmdp`qjswpmf{w#wlafbqjmdnbssjmdqfujpfgiRvfqz+.tjgwk9wjwof!=wllowjsPf`wjlmgfpjdmpWvqhjpkzlvmdfq-nbw`k+~*+*8		avqmjmdlsfqbwfgfdqffpplvq`f>Qj`kbqg`olpfozsobpwj`fmwqjfp?,wq=	`lolq9 vo#jg>!slppfppqloojmdskzpj`pebjojmdf{f`vwf`lmwfpwojmh#wlGfebvow?aq#,=	9#wqvf/`kbqwfqwlvqjpn`obppj`sql`ffgf{sobjm?,k2=	lmojmf-<{no#ufkfosjmdgjbnlmgvpf#wkfbjqojmffmg#..=*-bwwq+qfbgfqpklpwjmd eeeeeeqfbojyfUjm`fmwpjdmbop#pq`>!,Sqlgv`wgfpsjwfgjufqpfwfoojmdSvaoj`#kfog#jmIlpfsk#wkfbwqfbeef`wp?pwzof=b#obqdfglfpm$wobwfq/#Fofnfmwebuj`lm`qfbwlqKvmdbqzBjqslqwpff#wkfpl#wkbwNj`kbfoPzpwfnpSqldqbnp/#bmg##tjgwk>f%rvlw8wqbgjmdofew!=	sfqplmpDlogfm#Beebjqpdqbnnbqelqnjmdgfpwqlzjgfb#le`bpf#lelogfpw#wkjp#jp-pq`#>#`bqwllmqfdjpwq@lnnlmpNvpojnpTkbw#jpjm#nbmznbqhjmdqfufbopJmgffg/frvbooz,pklt\\blvwgllqfp`bsf+Bvpwqjbdfmfwj`pzpwfn/Jm#wkf#pjwwjmdKf#boplJpobmgpB`bgfnz	\n\n?"..Gbmjfo#ajmgjmdaol`h!=jnslpfgvwjojyfBaqbkbn+f{`fswxtjgwk9svwwjmd*-kwno+\x7F\x7F#X^8	GBWBX#)hjw`kfmnlvmwfgb`wvbo#gjbof`wnbjmoz#\\aobmh$jmpwboof{sfqwpje+wzsfJw#bopl%`lsz8#!=Wfqnpalqm#jmLswjlmpfbpwfqmwbohjmd`lm`fqmdbjmfg#lmdljmdivpwjez`qjwj`peb`wlqzjwp#ltmbppbvowjmujwfgobpwjmdkjp#ltmkqfe>!,!#qfo>!gfufols`lm`fqwgjbdqbngloobqp`ovpwfqsks<jg>bo`lklo*8~*+*8vpjmd#b=?psbm=ufppfopqfujuboBggqfppbnbwfvqbmgqljgboofdfgjoomfpptbohjmd`fmwfqprvbojeznbw`kfpvmjejfgf{wjm`wGfefmpfgjfg#jm	\n?"..#`vpwlnpojmhjmdOjwwof#Allh#lefufmjmdnjm-ip<bqf#wkfhlmwbhwwlgbz$p-kwno!#wbqdfw>tfbqjmdBoo#Qjd8	~*+*8qbjpjmd#Bopl/#`qv`jbobalvw!=gf`obqf..=	?p`ejqfel{bp#nv`kbssojfpjmgf{/#p/#avw#wzsf#>#		?"..wltbqgpQf`lqgpSqjubwfElqfjdmSqfnjfq`klj`fpUjqwvboqfwvqmp@lnnfmwSltfqfgjmojmf8slufqwz`kbnafqOjujmd#ulovnfpBmwklmzoldjm!#QfobwfgF`lmlnzqfb`kfp`vwwjmddqbujwzojef#jm@kbswfq.pkbgltMlwbaof?,wg=	#qfwvqmpwbgjvntjgdfwpubqzjmdwqbufopkfog#aztkl#bqftlqh#jmeb`vowzbmdvobqtkl#kbgbjqslqwwltm#le		Plnf#$`oj`h$`kbqdfphfztlqgjw#tjoo`jwz#le+wkjp*8Bmgqft#vmjrvf#`kf`hfglq#nlqf033s{8#qfwvqm8qpjlm>!sovdjmptjwkjm#kfqpfoePwbwjlmEfgfqboufmwvqfsvaojpkpfmw#wlwfmpjlmb`wqfpp`lnf#wlejmdfqpGvhf#lesflsof/f{soljwtkbw#jpkbqnlmzb#nbilq!9!kwwsjm#kjp#nfmv!=	nlmwkozleej`fq`lvm`jodbjmjmdfufm#jmPvnnbqzgbwf#leolzbowzejwmfppbmg#tbpfnsfqlqpvsqfnfPf`lmg#kfbqjmdQvppjbmolmdfpwBoafqwbobwfqbopfw#le#pnboo!=-bssfmggl#tjwkefgfqboabmh#leafmfbwkGfpsjwf@bsjwbodqlvmgp*/#bmg#sfq`fmwjw#eqln`olpjmd`lmwbjmJmpwfbgejewffmbp#tfoo-zbkll-qfpslmgejdkwfqlap`vqfqfeof`wlqdbmj`>#Nbwk-fgjwjmdlmojmf#sbggjmdb#tkloflmfqqlqzfbq#lefmg#le#abqqjfqtkfm#jwkfbgfq#klnf#leqfpvnfgqfmbnfgpwqlmd=kfbwjmdqfwbjmp`olvgeqtbz#le#Nbq`k#2hmltjmdjm#sbqwAfwtffmofpplmp`olpfpwujqwvboojmhp!=`qlppfgFMG#..=ebnlvp#btbqgfgOj`fmpfKfbowk#ebjqoz#tfbowkznjmjnboBeqj`bm`lnsfwfobafo!=pjmdjmdebqnfqpAqbpjo*gjp`vppqfsob`fDqfdlqzelmw#`lsvqpvfgbssfbqpnbhf#vsqlvmgfgalwk#leaol`hfgpbt#wkfleej`fp`lolvqpje+gl`vtkfm#kffmelq`fsvpk+evBvdvpw#VWE.;!=Ebmwbpzjm#nlpwjmivqfgVpvboozebqnjmd`olpvqflaif`w#gfefm`fvpf#le#Nfgj`bo?algz=	fujgfmwaf#vpfghfz@lgfpj{wffmJpobnj` 333333fmwjqf#tjgfoz#b`wjuf#+wzsflelmf#`bm`lolq#>psfbhfqf{wfmgpSkzpj`pwfqqbjm?walgz=evmfqboujftjmdnjggof#`qj`hfwsqlskfwpkjewfggl`wlqpQvppfoo#wbqdfw`lnsb`wbodfaqbpl`jbo.avoh#lenbm#bmg?,wg=	#kf#ofew*-ubo+*ebopf*8oldj`boabmhjmdklnf#wlmbnjmd#Bqjylmb`qfgjwp*8	~*8	elvmgfqjm#wvqm@loojmpafelqf#Avw#wkf`kbqdfgWjwof!=@bswbjmpsfoofgdlggfppWbd#..=Bggjmd9avw#tbpQf`fmw#sbwjfmwab`h#jm>ebopf%Ojm`lomtf#hmlt@lvmwfqIvgbjpnp`qjsw#bowfqfg$^*8	##kbp#wkfvm`ofbqFufmw$/alwk#jmmlw#boo		?"..#sob`jmdkbqg#wl#`fmwfqplqw#le`ojfmwppwqffwpAfqmbqgbppfqwpwfmg#wlebmwbpzgltm#jmkbqalvqEqffglniftfoqz,balvw--pfbq`kofdfmgpjp#nbgfnlgfqm#lmoz#lmlmoz#wljnbdf!#ojmfbq#sbjmwfqbmg#mlwqbqfoz#b`qlmzngfojufqpklqwfq33%bns8bp#nbmztjgwk>!,)#?"X@wjwof#>le#wkf#oltfpw#sj`hfg#fp`bsfgvpfp#lesflsofp#Svaoj`Nbwwkftwb`wj`pgbnbdfgtbz#elqobtp#lefbpz#wl#tjmgltpwqlmd##pjnsof~`bw`k+pfufmwkjmelal{tfmw#wlsbjmwfg`jwjyfmJ#glm$wqfwqfbw-#Plnf#tt-!*8	alnajmdnbjowl9nbgf#jm-#Nbmz#`bqqjfp\x7F\x7Fx~8tjtlqh#lepzmlmzngfefbwpebulqfglswj`bosbdfWqbvmofpp#pfmgjmdofew!=?`lnP`lqBoo#wkfiRvfqz-wlvqjpw@obppj`ebopf!#Tjokfonpvavqapdfmvjmfajpklsp-psojw+dolabo#elooltpalgz#lemlnjmbo@lmwb`wpf`vobqofew#wl`kjfeoz.kjggfm.abmmfq?,oj=		-#Tkfm#jm#alwkgjpnjppF{solqfbotbzp#ujb#wkfpsb/]lotfoebqfqvojmd#bqqbmdf`bswbjmkjp#plmqvof#lekf#wllhjwpfoe/>3%bns8+`boofgpbnsofpwl#nbhf`ln,sbdNbqwjm#Hfmmfgzb``fswpevoo#lekbmgofgAfpjgfp,,..=?,baof#wlwbqdfwpfppfm`fkjn#wl#jwp#az#`lnnlm-njmfqbowl#wbhftbzp#wlp-lqd,obgujpfgsfmbowzpjnsof9je#wkfzOfwwfqpb#pklqwKfqafqwpwqjhfp#dqlvsp-ofmdwkeojdkwplufqobspoltoz#ofppfq#pl`jbo#?,s=	\n\njw#jmwlqbmhfg#qbwf#levo=	##bwwfnswsbjq#lenbhf#jwHlmwbhwBmwlmjlkbujmd#qbwjmdp#b`wjufpwqfbnpwqbssfg!*-`pp+klpwjofofbg#wlojwwof#dqlvsp/Sj`wvqf..=		#qltp>!#laif`wjmufqpf?ellwfq@vpwlnU=?_,p`qploujmd@kbnafqpobufqztlvmgfgtkfqfbp">#$vmgelq#boosbqwoz#.qjdkw9Bqbajbmab`hfg#`fmwvqzvmjw#lenlajof.Fvqlsf/jp#klnfqjph#legfpjqfg@ojmwlm`lpw#lebdf#le#af`lnf#mlmf#les%rvlw8Njggof#fbg$*X3@qjwj`ppwvgjlp=%`lsz8dqlvs!=bppfnaonbhjmd#sqfppfgtjgdfw-sp9!#<#qfavjowaz#plnfElqnfq#fgjwlqpgfobzfg@bmlmj`kbg#wkfsvpkjmd`obpp>!avw#bqfsbqwjboAbazolmalwwln#`bqqjfq@lnnbmgjwp#vpfBp#tjwk`lvqpfpb#wkjqggfmlwfpbopl#jmKlvpwlm13s{8!=b``vpfgglvaof#dlbo#leEbnlvp#*-ajmg+sqjfpwp#Lmojmfjm#Ivozpw#(#!d`lmpvowgf`jnbokfosevoqfujufgjp#ufqzq$($jswolpjmd#efnbofpjp#boplpwqjmdpgbzp#lebqqjuboevwvqf#?laif`welq`jmdPwqjmd+!#,=	\n\nkfqf#jpfm`lgfg-##Wkf#aboollmglmf#az,`lnnlmad`lolqobt#le#Jmgjbmbbuljgfgavw#wkf1s{#0s{irvfqz-bewfq#bsloj`z-nfm#bmgellwfq.>#wqvf8elq#vpfp`qffm-Jmgjbm#jnbdf#>ebnjoz/kwws9,,#%maps8gqjufqpfwfqmbopbnf#bpmlwj`fgujftfqp~*+*8	#jp#nlqfpfbplmpelqnfq#wkf#mftjp#ivpw`lmpfmw#Pfbq`ktbp#wkftkz#wkfpkjssfgaq=?aq=tjgwk9#kfjdkw>nbgf#le`vjpjmfjp#wkbwb#ufqz#Bgnjqbo#ej{fg8mlqnbo#NjppjlmSqfpp/#lmwbqjl`kbqpfwwqz#wl#jmubgfg>!wqvf!psb`jmdjp#nlpwb#nlqf#wlwboozeboo#le~*8	##jnnfmpfwjnf#jmpfw#lvwpbwjpezwl#ejmggltm#wlolw#le#Sobzfqpjm#Ivmfrvbmwvnmlw#wkfwjnf#wlgjpwbmwEjmmjpkpq`#>#+pjmdof#kfos#leDfqnbm#obt#bmgobafofgelqfpwp`llhjmdpsb`f!=kfbgfq.tfoo#bpPwbmofzaqjgdfp,dolabo@qlbwjb#Balvw#X3^8	##jw/#bmgdqlvsfgafjmd#b*xwkqltkf#nbgfojdkwfqfwkj`boEEEEEE!alwwln!ojhf#b#fnsolzpojuf#jmbp#pffmsqjmwfqnlpw#leva.ojmhqfif`wpbmg#vpfjnbdf!=pv``ffgeffgjmdMv`ofbqjmelqnbwl#kfosTlnfm$pMfjwkfqNf{j`bmsqlwfjm?wbaof#az#nbmzkfbowkzobtpvjwgfujpfg-svpk+xpfoofqppjnsoz#Wkqlvdk-`llhjf#Jnbdf+logfq!=vp-ip!=#Pjm`f#vmjufqpobqdfq#lsfm#wl"..#fmgojfp#jm$^*8	##nbqhfwtkl#jp#+!GLN@lnbmbdfglmf#elqwzsfle#Hjmdglnsqlejwpsqlslpfwl#pklt`fmwfq8nbgf#jwgqfppfgtfqf#jmnj{wvqfsqf`jpfbqjpjmdpq`#>#$nbhf#b#pf`vqfgAbswjpwulwjmd#	\n\nubq#Nbq`k#1dqft#vs@ojnbwf-qfnlufphjoofgtbz#wkf?,kfbg=eb`f#leb`wjmd#qjdkw!=wl#tlqhqfgv`fpkbp#kbgfqf`wfgpklt+*8b`wjlm>allh#lebm#bqfb>>#!kww?kfbgfq	?kwno=`lmelqneb`jmd#`llhjf-qfoz#lmklpwfg#-`vpwlnkf#tfmwavw#elqpsqfbg#Ebnjoz#b#nfbmplvw#wkfelqvnp-ellwbdf!=Nlajo@ofnfmwp!#jg>!bp#kjdkjmwfmpf..=?"..efnbof#jp#pffmjnsojfgpfw#wkfb#pwbwfbmg#kjpebpwfpwafpjgfpavwwlm\\alvmgfg!=?jnd#Jmelal{fufmwp/b#zlvmdbmg#bqfMbwjuf#`kfbsfqWjnflvwbmg#kbpfmdjmfptlm#wkf+nlpwozqjdkw9#ejmg#b#.alwwlnSqjm`f#bqfb#lenlqf#lepfbq`k\\mbwvqf/ofdboozsfqjlg/obmg#lelq#tjwkjmgv`fgsqlujmdnjppjofol`boozBdbjmpwwkf#tbzh%rvlw8s{8!=	svpkfg#babmglmmvnfqbo@fqwbjmJm#wkjpnlqf#jmlq#plnfmbnf#jpbmg/#jm`qltmfgJPAM#3.`qfbwfpL`wlafqnbz#mlw`fmwfq#obwf#jmGfefm`ffmb`wfgtjpk#wlaqlbgoz`llojmdlmolbg>jw-#Wkfqf`lufqNfnafqpkfjdkw#bppvnfp?kwno=	sflsof-jm#lmf#>tjmgltellwfq\\b#dllg#qfhobnblwkfqp/wl#wkjp\\`llhjfsbmfo!=Olmglm/gfejmfp`qvpkfgabswjpn`lbpwbopwbwvp#wjwof!#nluf#wlolpw#jmafwwfq#jnsojfpqjuboqzpfqufqp#PzpwfnSfqkbspfp#bmg#`lmwfmgeoltjmdobpwfg#qjpf#jmDfmfpjpujft#leqjpjmd#pffn#wlavw#jm#ab`hjmdkf#tjoodjufm#bdjujmd#`jwjfp-eolt#le#Obwfq#boo#avwKjdktbzlmoz#azpjdm#lekf#glfpgjeefqpabwwfqz%bns8obpjmdofpwkqfbwpjmwfdfqwbhf#lmqfevpfg`boofg#>VP%bnsPff#wkfmbwjufpaz#wkjppzpwfn-kfbg#le9klufq/ofpajbmpvqmbnfbmg#boo`lnnlm,kfbgfq\\\\sbqbnpKbqubqg,sj{fo-qfnlubopl#olmdqlof#leiljmwozphzp`qbVmj`lgfaq#,=	Bwobmwbmv`ofvp@lvmwz/svqfoz#`lvmw!=fbpjoz#avjog#blm`oj`hb#djufmsljmwfqk%rvlw8fufmwp#fopf#x	gjwjlmpmlt#wkf/#tjwk#nbm#tkllqd,Tfalmf#bmg`buboqzKf#gjfgpfbwwof33/333#xtjmgltkbuf#wlje+tjmgbmg#jwpplofoz#n%rvlw8qfmftfgGfwqljwbnlmdpwfjwkfq#wkfn#jmPfmbwlqVp?,b=?Hjmd#leEqbm`jp.sqlgv`kf#vpfgbqw#bmgkjn#bmgvpfg#azp`lqjmdbw#klnfwl#kbufqfobwfpjajojwzeb`wjlmAveebolojmh!=?tkbw#kfeqff#wl@jwz#le`lnf#jmpf`wlqp`lvmwfglmf#gbzmfqulvpprvbqf#~8je+dljm#tkbwjnd!#bojp#lmozpfbq`k,wvfpgbzollpfozPlolnlmpf{vbo#.#?b#kqnfgjvn!GL#MLW#Eqbm`f/tjwk#b#tbq#bmgpf`lmg#wbhf#b#=			nbqhfw-kjdktbzglmf#jm`wjujwz!obpw!=laojdfgqjpf#wl!vmgfejnbgf#wl#Fbqoz#sqbjpfgjm#jwp#elq#kjpbwkofwfIvsjwfqZbkll"#wfqnfg#pl#nbmzqfbooz#p-#Wkf#b#tlnbm<ubovf>gjqf`w#qjdkw!#aj`z`ofb`jmd>!gbz#bmgpwbwjmdQbwkfq/kjdkfq#Leej`f#bqf#mltwjnfp/#tkfm#b#sbz#elqlm#wkjp.ojmh!=8alqgfqbqlvmg#bmmvbo#wkf#Mftsvw#wkf-`ln!#wbhjm#wlb#aqjfe+jm#wkfdqlvsp-8#tjgwkfmyznfppjnsof#jm#obwfxqfwvqmwkfqbszb#sljmwabmmjmdjmhp!=	+*8!#qfb#sob`f_v330@bbalvw#bwq=	\n\n``lvmw#djufp#b?P@QJSWQbjotbzwkfnfp,wlloal{AzJg+!{kvnbmp/tbw`kfpjm#plnf#je#+tj`lnjmd#elqnbwp#Vmgfq#avw#kbpkbmgfg#nbgf#azwkbm#jmefbq#legfmlwfg,jeqbnfofew#jmulowbdfjm#fb`kb%rvlw8abpf#leJm#nbmzvmgfqdlqfdjnfpb`wjlm#?,s=	?vpwlnUb8%dw8?,jnslqwplq#wkbwnlpwoz#%bns8qf#pjyf>!?,b=?,kb#`obppsbppjufKlpw#>#TkfwkfqefqwjofUbqjlvp>X^8+ev`bnfqbp,=?,wg=b`wp#bpJm#plnf=		?"lqdbmjp#?aq#,=Afjijmd`bwbo/Lgfvwp`kfvqlsfvfvphbqbdbfjodfpufmphbfpsb/]bnfmpbifvpvbqjlwqbabiln/E{j`ls/Mdjmbpjfnsqfpjpwfnbl`wvaqfgvqbmwfb/]bgjqfnsqfpbnlnfmwlmvfpwqlsqjnfqbwqbu/Epdqb`jbpmvfpwqbsql`fplfpwbglp`bojgbgsfqplmbm/Vnfqlb`vfqgln/Vpj`bnjfnaqllefqwbpbodvmlpsb/Apfpfifnsolgfqf`klbgfn/Mpsqjubglbdqfdbqfmob`fpslpjaofklwfofppfujoobsqjnfql/Vowjnlfufmwlpbq`kjul`vowvqbnvifqfpfmwqbgbbmvm`jlfnabqdlnfq`bgldqbmgfpfpwvgjlnfilqfpefaqfqlgjpf/]lwvqjpnl`/_gjdlslqwbgbfpsb`jlebnjojbbmwlmjlsfqnjwfdvbqgbqbodvmbpsqf`jlpbodvjfmpfmwjglujpjwbpw/Awvol`lml`fqpfdvmgl`lmpfileqbm`jbnjmvwlppfdvmgbwfmfnlpfef`wlpn/Mobdbpfpj/_mqfujpwbdqbmbgb`lnsqbqjmdqfpldbq`/Abb``j/_mf`vbglqrvjfmfpjm`ovplgfafq/Mnbwfqjbklnaqfpnvfpwqbslgq/Abnb/]bmb/Vowjnbfpwbnlplej`jbowbnajfmmjmd/Vmpbovglpslgfnlpnfilqbqslpjwjlmavpjmfppklnfsbdfpf`vqjwzobmdvbdfpwbmgbqg`bnsbjdmefbwvqfp`bwfdlqzf{wfqmbo`kjogqfmqfpfqufgqfpfbq`kf{`kbmdfebulqjwfwfnsobwfnjojwbqzjmgvpwqzpfquj`fpnbwfqjbosqlgv`wpy.jmgf{9`lnnfmwpplewtbqf`lnsofwf`bofmgbqsobwelqnbqwj`ofpqfrvjqfgnlufnfmwrvfpwjlmavjogjmdslojwj`pslppjaofqfojdjlmskzpj`boeffgab`hqfdjpwfqsj`wvqfpgjpbaofgsqlwl`lobvgjfm`fpfwwjmdpb`wjujwzfofnfmwpofbqmjmdbmzwkjmdbapwqb`wsqldqfpplufqujftnbdbyjmff`lmlnj`wqbjmjmdsqfppvqfubqjlvp#?pwqlmd=sqlsfqwzpklssjmdwldfwkfqbgubm`fgafkbujlqgltmolbgefbwvqfgellwaboopfof`wfgObmdvbdfgjpwbm`fqfnfnafqwqb`hjmdsbpptlqgnlgjejfgpwvgfmwpgjqf`wozejdkwjmdmlqwkfqmgbwbabpfefpwjuboaqfbhjmdol`bwjlmjmwfqmfwgqlsgltmsqb`wj`ffujgfm`fevm`wjlmnbqqjbdfqfpslmpfsqlaofnpmfdbwjufsqldqbnpbmbozpjpqfofbpfgabmmfq!=svq`kbpfsloj`jfpqfdjlmbo`qfbwjufbqdvnfmwallhnbqhqfefqqfq`kfnj`bogjujpjlm`booab`hpfsbqbwfsqlif`wp`lmeoj`wkbqgtbqfjmwfqfpwgfojufqznlvmwbjmlawbjmfg>#ebopf8elq+ubq#b``fswfg`bsb`jwz`lnsvwfqjgfmwjwzbjq`qbewfnsolzfgsqlslpfgglnfpwj`jm`ovgfpsqlujgfgklpsjwboufqwj`bo`loobspfbssqlb`ksbqwmfqpoldl!=?bgbvdkwfqbvwklq!#`vowvqboebnjojfp,jnbdfp,bppfnaozsltfqevowfb`kjmdejmjpkfggjpwqj`w`qjwj`bo`dj.ajm,svqslpfpqfrvjqfpfof`wjlmaf`lnjmdsqlujgfpb`bgfnj`f{fq`jpfb`wvbooznfgj`jmf`lmpwbmwb``jgfmwNbdbyjmfgl`vnfmwpwbqwjmdalwwln!=lapfqufg9#%rvlw8f{wfmgfgsqfujlvpPlewtbqf`vpwlnfqgf`jpjlmpwqfmdwkgfwbjofgpojdkwozsobmmjmdwf{wbqfb`vqqfm`zfufqzlmfpwqbjdkwwqbmpefqslpjwjufsqlgv`fgkfqjwbdfpkjssjmdbaplovwfqf`fjufgqfofubmwavwwlm!#ujlofm`fbmztkfqfafmfejwpobvm`kfgqf`fmwozboojbm`felooltfgnvowjsofavoofwjmjm`ovgfgl``vqqfgjmwfqmbo\'+wkjp*-qfsvaoj`=?wq=?wg`lmdqfppqf`lqgfgvowjnbwfplovwjlm?vo#jg>!gjp`lufqKlnf?,b=tfapjwfpmfwtlqhpbowklvdkfmwjqfoznfnlqjbonfppbdfp`lmwjmvfb`wjuf!=plnftkbwuj`wlqjbTfpwfqm##wjwof>!Ol`bwjlm`lmwqb`wujpjwlqpGltmolbgtjwklvw#qjdkw!=	nfbpvqfptjgwk#>#ubqjbaofjmuloufgujqdjmjbmlqnboozkbssfmfgb``lvmwppwbmgjmdmbwjlmboQfdjpwfqsqfsbqfg`lmwqlopb``vqbwfajqwkgbzpwqbwfdzleej`jbodqbskj`p`qjnjmboslppjaoz`lmpvnfqSfqplmbopsfbhjmdubojgbwfb`kjfufg-isd!#,=nb`kjmfp?,k1=	##hfztlqgpeqjfmgozaqlwkfqp`lnajmfglqjdjmbo`lnslpfgf{sf`wfgbgfrvbwfsbhjpwbmeloolt!#ubovbaof?,obafo=qfobwjufaqjmdjmdjm`qfbpfdlufqmlqsovdjmp,Ojpw#le#Kfbgfq!=!#mbnf>!#+%rvlw8dqbgvbwf?,kfbg=	`lnnfq`fnbobzpjbgjqf`wlqnbjmwbjm8kfjdkw9p`kfgvof`kbmdjmdab`h#wl#`bwkloj`sbwwfqmp`lolq9# dqfbwfpwpvssojfpqfojbaof?,vo=	\n\n?pfof`w#`jwjyfmp`olwkjmdtbw`kjmd?oj#jg>!psf`jej``bqqzjmdpfmwfm`f?`fmwfq=`lmwqbpwwkjmhjmd`bw`k+f*plvwkfqmNj`kbfo#nfq`kbmw`bqlvpfosbggjmd9jmwfqjlq-psojw+!ojybwjlmL`wlafq#*xqfwvqmjnsqlufg..%dw8		`lufqbdf`kbjqnbm-smd!#,=pvaif`wpQj`kbqg#tkbwfufqsqlabaozqf`lufqzabpfabooivgdnfmw`lmmf`w--`pp!#,=#tfapjwfqfslqwfggfebvow!,=?,b=	fof`wqj`p`lwobmg`qfbwjlmrvbmwjwz-#JPAM#3gjg#mlw#jmpwbm`f.pfbq`k.!#obmd>!psfbhfqp@lnsvwfq`lmwbjmpbq`kjufpnjmjpwfqqfb`wjlmgjp`lvmwJwbojbml`qjwfqjbpwqlmdoz9#$kwws9$p`qjsw$`lufqjmdleefqjmdbssfbqfgAqjwjpk#jgfmwjezEb`fallhmvnfqlvpufkj`ofp`lm`fqmpBnfqj`bmkbmgojmdgju#jg>!Tjoojbn#sqlujgfq\\`lmwfmwb``vqb`zpf`wjlm#bmgfqplmeof{jaof@bwfdlqzobtqfm`f?p`qjsw=obzlvw>!bssqlufg#nb{jnvnkfbgfq!=?,wbaof=Pfquj`fpkbnjowlm`vqqfmw#`bmbgjbm`kbmmfop,wkfnfp,,bqwj`oflswjlmboslqwvdboubovf>!!jmwfqubotjqfofppfmwjwofgbdfm`jfpPfbq`k!#nfbpvqfgwklvpbmgpsfmgjmd%kfoojs8mft#Gbwf!#pjyf>!sbdfMbnfnjggof!#!#,=?,b=kjggfm!=pfrvfm`fsfqplmbolufqeoltlsjmjlmpjoojmljpojmhp!=	\n?wjwof=ufqpjlmppbwvqgbzwfqnjmbojwfnsqlsfmdjmffqpf`wjlmpgfpjdmfqsqlslpbo>!ebopf!Fpsb/]loqfofbpfppvanjw!#fq%rvlw8bggjwjlmpznswlnplqjfmwfgqfplvq`fqjdkw!=?sofbpvqfpwbwjlmpkjpwlqz-ofbujmd##alqgfq>`lmwfmwp`fmwfq!=-		Plnf#gjqf`wfgpvjwbaofavodbqjb-pklt+*8gfpjdmfgDfmfqbo#`lm`fswpF{bnsofptjoojbnpLqjdjmbo!=?psbm=pfbq`k!=lsfqbwlqqfrvfpwpb#%rvlw8booltjmdGl`vnfmwqfujpjlm-#		Wkf#zlvqpfoe@lmwb`w#nj`kjdbmFmdojpk#`lovnajbsqjlqjwzsqjmwjmdgqjmhjmdeb`jojwzqfwvqmfg@lmwfmw#leej`fqpQvppjbm#dfmfqbwf.;;6:.2!jmgj`bwfebnjojbq#rvbojwznbqdjm93#`lmwfmwujftslqw`lmwb`wp.wjwof!=slqwbaof-ofmdwk#fojdjaofjmuloufpbwobmwj`lmolbg>!gfebvow-pvssojfgsbznfmwpdolppbqz		Bewfq#dvjgbm`f?,wg=?wgfm`lgjmdnjggof!=`bnf#wl#gjpsobzpp`lwwjpkilmbwkbmnbilqjwztjgdfwp-`ojmj`bowkbjobmgwfb`kfqp?kfbg=	\nbeef`wfgpvsslqwpsljmwfq8wlPwqjmd?,pnboo=lhobklnbtjoo#af#jmufpwlq3!#bow>!klojgbzpQfplvq`foj`fmpfg#+tkj`k#-#Bewfq#`lmpjgfqujpjwjmdf{solqfqsqjnbqz#pfbq`k!#bmgqljg!rvj`hoz#nffwjmdpfpwjnbwf8qfwvqm#8`lolq9 #kfjdkw>bssqlubo/#%rvlw8#`kf`hfg-njm-ip!nbdmfwj`=?,b=?,kelqf`bpw-#Tkjof#wkvqpgbzgufqwjpf%fb`vwf8kbp@obppfubovbwflqgfqjmdf{jpwjmdsbwjfmwp#Lmojmf#`lolqbglLswjlmp!`bnsafoo?"..#fmg?,psbm=??aq#,=	\\slsvsp\x7Fp`jfm`fp/%rvlw8#rvbojwz#Tjmgltp#bppjdmfgkfjdkw9#?a#`obppof%rvlw8#ubovf>!#@lnsbmzf{bnsofp?jeqbnf#afojfufpsqfpfmwpnbqpkboosbqw#le#sqlsfqoz*-		Wkf#wb{lmlnznv`k#le#?,psbm=	!#gbwb.pqwvdv/Fpp`qlooWl#sqlif`w?kfbg=	bwwlqmfzfnskbpjppslmplqpebm`zal{tlqog$p#tjogojef`kf`hfg>pfppjlmpsqldqbnns{8elmw.#Sqlif`wilvqmbopafojfufgub`bwjlmwklnsplmojdkwjmdbmg#wkf#psf`jbo#alqgfq>3`kf`hjmd?,walgz=?avwwlm#@lnsofwf`ofbqej{	?kfbg=	bqwj`of#?pf`wjlmejmgjmdpqlof#jm#slsvobq##L`wlafqtfapjwf#f{slpvqfvpfg#wl##`kbmdfplsfqbwfg`oj`hjmdfmwfqjmd`lnnbmgpjmelqnfg#mvnafqp##?,gju=`qfbwjmdlmPvanjwnbqzobmg`loofdfpbmbozwj`ojpwjmdp`lmwb`w-olddfgJmbgujplqzpjaojmdp`lmwfmw!p%rvlw8*p-#Wkjp#sb`hbdfp`kf`hal{pvddfpwpsqfdmbmwwlnlqqltpsb`jmd>j`lm-smdibsbmfpf`lgfabpfavwwlm!=dbnaojmdpv`k#bp#/#tkjof#?,psbm=#njpplvqjpslqwjmdwls92s{#-?,psbm=wfmpjlmptjgwk>!1obyzolbgmlufnafqvpfg#jm#kfjdkw>!`qjsw!=	%maps8?,?wq=?wg#kfjdkw91,sqlgv`w`lvmwqz#jm`ovgf#ellwfq!#%ow8"..#wjwof!=?,irvfqz-?,elqn=	+\vBl\bQ\x7F*+\vUmGx*kqubwphjjwbojbmlqln/Nm(ow/Pqh/Kf4K4]4C5dwbnaj/Emmlwj`jbpnfmpbifpsfqplmbpgfqf`klpmb`jlmbopfquj`jl`lmwb`wlvpvbqjlpsqldqbnbdlajfqmlfnsqfpbpbmvm`jlpubofm`jb`lolnajbgfpsv/Epgfslqwfpsqlzf`wlsqlgv`wls/Vaoj`lmlplwqlpkjpwlqjbsqfpfmwfnjoolmfpnfgjbmwfsqfdvmwbbmwfqjlqqf`vqplpsqlaofnbpbmwjbdlmvfpwqlplsjmj/_mjnsqjnjqnjfmwqbpbn/Eqj`bufmgfglqpl`jfgbgqfpsf`wlqfbojybqqfdjpwqlsbobaqbpjmwfq/Epfmwlm`fpfpsf`jbonjfnaqlpqfbojgbg`/_qglabybqbdlybs/Mdjmbppl`jbofpaolrvfbqdfpwj/_mborvjofqpjpwfnbp`jfm`jbp`lnsofwlufqpj/_m`lnsofwbfpwvgjlps/Vaoj`blaifwjulboj`bmwfavp`bglq`bmwjgbgfmwqbgbpb``jlmfpbq`kjulppvsfqjlqnbzlq/Abbofnbmjbevm`j/_m/Vowjnlpkb`jfmglbrvfoolpfgj`j/_mefqmbmglbnajfmwfeb`fallhmvfpwqbp`ojfmwfpsql`fplpabpwbmwfsqfpfmwbqfslqwbq`lmdqfplsvaoj`bq`lnfq`jl`lmwqbwli/_ufmfpgjpwqjwlw/E`mj`b`lmivmwlfmfqd/Abwqbabibqbpwvqjbpqf`jfmwfvwjojybqalofw/Ampboubglq`lqqf`wbwqbabilpsqjnfqlpmfdl`jlpojafqwbggfwboofpsbmwboobsq/_{jnlbonfq/Abbmjnbofprvj/Emfp`lqby/_mpf``j/_mavp`bmglls`jlmfpf{wfqjlq`lm`fswlwlgbu/Abdbofq/Abfp`qjajqnfgj`jmboj`fm`jb`lmpvowbbpsf`wlp`q/Awj`bg/_obqfpivpwj`jbgfafq/Mmsfq/Alglmf`fpjwbnbmwfmfqsfrvf/]lqf`jajgbwqjavmbowfmfqjef`bm`j/_m`bmbqjbpgfp`bqdbgjufqplpnboolq`bqfrvjfqfw/E`mj`lgfafq/Abujujfmgbejmbmybpbgfobmwfevm`jlmb`lmpfilpgje/A`jo`jvgbgfpbmwjdvbpbubmybgbw/Eqnjmlvmjgbgfpp/Mm`kfy`bnsb/]bplewlmj`qfujpwbp`lmwjfmfpf`wlqfpnlnfmwlpeb`vowbg`q/Egjwlgjufqpbppvsvfpwleb`wlqfppfdvmglpsfrvf/]b<_<R<X<\\<Y=m<W<T<Y=m=n=`<]=g<W<R<]=g=n=`=a=n<R<P<y=m<W<T=n<R<_<R<P<Y<Q=c<^=m<Y=i=a=n<R<U<X<\\<Z<Y<]=g<W<T<_<R<X=o<X<Y<Q=`=a=n<R=n<]=g<W<\\=m<Y<]=c<R<X<T<Q=m<Y<]<Y<Q<\\<X<R=m<\\<U=n=h<R=n<R<Q<Y<_<R=m<^<R<T=m<^<R<U<T<_=l=g=n<R<Z<Y<^=m<Y<P=m<^<R=b<W<T=d=`=a=n<T=i<S<R<V<\\<X<Q<Y<U<X<R<P<\\<P<T=l<\\<W<T<]<R=n<Y<P=o=i<R=n=c<X<^=o=i=m<Y=n<T<W=b<X<T<X<Y<W<R<P<T=l<Y=n<Y<]=c=m<^<R<Y<^<T<X<Y=k<Y<_<R=a=n<T<P=m=k<Y=n=n<Y<P=g=j<Y<Q=g=m=n<\\<W<^<Y<X=`=n<Y<P<Y<^<R<X=g=n<Y<]<Y<^=g=d<Y<Q<\\<P<T=n<T<S<\\=n<R<P=o<S=l<\\<^<W<T=j<\\<R<X<Q<\\<_<R<X=g<[<Q<\\=b<P<R<_=o<X=l=o<_<^=m<Y<U<T<X<Y=n<V<T<Q<R<R<X<Q<R<X<Y<W<\\<X<Y<W<Y=m=l<R<V<T=b<Q=c<^<Y=m=`<y=m=n=`=l<\\<[<\\<Q<\\=d<T4K5h5h5k4K5h4F5f4@5i5f4U4B4K4Y4E4K5h4\\5f4U5h5f5k4@4C5f4C4K5h4N5j4K5h4]4C4F4A5o5i4Y5m4A4E5o4K5j4F4K5h5h5f5f5o5d5j4X4D5o4E5m5f5k4K4D5j4K4F4A5d4K4M4O5o4G4]4B5h4K5h4K5h4A4D4C5h5f5h4C4]5d4_4K4Z4V4[4F5o5d5j5k5j4K5o4_4K4A4E5j4K4C5f4K5h4[4D4U5h5f5o4X5o4]4K5f5i5o5j5i5j5k4K4X4]5o4E4]4J5f4_5j4X5f4[5i4K4\\4K4K5h5m5j4X4D4K4D4F4U4D4]4]4A5i4E5o4K5m4E5f5n5d5h5i4]5o4^5o5h5i4E4O4A5i4C5n5h4D5f5f4U5j5f4Y5d4]4E4[4]5f5n4X4K4]5o4@5d4K5h4O4B4]5e5i4U5j4K4K4D4A4G4U4]5d4Z4D4X5o5h5i4_4@5h4D5j4K5j4B4K5h4C5o4F4K4D5o5h5f4E4D4C5d5j4O5f4Z4K5f5d4@4C5m4]5f5n5o4F4D4F4O5m4Z5h5i4[4D4B4K5o4G4]4D4K4]5o4K5m4Z5h4K4A5h5e5j5m4_5k4O5f4K5i4]4C5d4C4O5j5k4K4C5f5j4K4K5h4K5j5i4U4]4Z4F4U5h5i4C4K4B5h5i5i5o5j\x07\x07\x07\x07\0\x07\x07\0\v\n	\b\r\f\f\r\b	\n\v\x1B\x1B\0\v\v\v\v\0\x07qfplvq`fp`lvmwqjfprvfpwjlmpfrvjsnfmw`lnnvmjwzbubjobaofkjdkojdkwGWG,{kwnonbqhfwjmdhmltofgdfplnfwkjmd`lmwbjmfqgjqf`wjlmpvap`qjafbgufqwjpf`kbqb`wfq!#ubovf>!?,pfof`w=Bvpwqbojb!#`obpp>!pjwvbwjlmbvwklqjwzelooltjmdsqjnbqjozlsfqbwjlm`kboofmdfgfufolsfgbmlmznlvpevm`wjlm#evm`wjlmp`lnsbmjfppwqv`wvqfbdqffnfmw!#wjwof>!slwfmwjbofgv`bwjlmbqdvnfmwppf`lmgbqz`lszqjdkwobmdvbdfpf{`ovpjuf`lmgjwjlm?,elqn=	pwbwfnfmwbwwfmwjlmAjldqbskz~#fopf#x	plovwjlmptkfm#wkf#Bmbozwj`pwfnsobwfpgbmdfqlvppbwfoojwfgl`vnfmwpsvaojpkfqjnslqwbmwsqlwlwzsfjmeovfm`f%qbrvl8?,feef`wjufdfmfqboozwqbmpelqnafbvwjevowqbmpslqwlqdbmjyfgsvaojpkfgsqlnjmfmwvmwjo#wkfwkvnambjoMbwjlmbo#-el`vp+*8lufq#wkf#njdqbwjlmbmmlvm`fgellwfq!=	f{`fswjlmofpp#wkbmf{sfmpjufelqnbwjlmeqbnftlqhwfqqjwlqzmgj`bwjlm`vqqfmwoz`obppMbnf`qjwj`jpnwqbgjwjlmfopftkfqfBof{bmgfqbssljmwfgnbwfqjbopaqlbg`bpwnfmwjlmfgbeejojbwf?,lswjlm=wqfbwnfmwgjeefqfmw,gfebvow-Sqfpjgfmwlm`oj`h>!ajldqbskzlwkfqtjpfsfqnbmfmwEqbm/KbjpKlooztllgf{sbmpjlmpwbmgbqgp?,pwzof=	qfgv`wjlmGf`fnafq#sqfefqqfg@bnaqjgdflsslmfmwpAvpjmfpp#`lmevpjlm=	?wjwof=sqfpfmwfgf{sobjmfgglfp#mlw#tlqogtjgfjmwfqeb`fslpjwjlmpmftpsbsfq?,wbaof=	nlvmwbjmpojhf#wkf#fppfmwjboejmbm`jbopfof`wjlmb`wjlm>!,babmglmfgFgv`bwjlmsbqpfJmw+pwbajojwzvmbaof#wl?,wjwof=	qfobwjlmpMlwf#wkbwfeej`jfmwsfqelqnfgwtl#zfbqpPjm`f#wkfwkfqfelqftqbssfq!=bowfqmbwfjm`qfbpfgAbwwof#lesfq`fjufgwqzjmd#wlmf`fppbqzslqwqbzfgfof`wjlmpFojybafwk?,jeqbnf=gjp`lufqzjmpvqbm`fp-ofmdwk8ofdfmgbqzDfldqbskz`bmgjgbwf`lqslqbwfplnfwjnfppfquj`fp-jmkfqjwfg?,pwqlmd=@lnnvmjwzqfojdjlvpol`bwjlmp@lnnjwwffavjogjmdpwkf#tlqogml#olmdfqafdjmmjmdqfefqfm`f`bmmlw#afeqfrvfm`zwzsj`boozjmwl#wkf#qfobwjuf8qf`lqgjmdsqfpjgfmwjmjwjboozwf`kmjrvfwkf#lwkfqjw#`bm#aff{jpwfm`fvmgfqojmfwkjp#wjnfwfofsklmfjwfnp`lsfsqb`wj`fpbgubmwbdf*8qfwvqm#Elq#lwkfqsqlujgjmdgfnl`qb`zalwk#wkf#f{wfmpjufpveefqjmdpvsslqwfg`lnsvwfqp#evm`wjlmsqb`wj`bopbjg#wkbwjw#nbz#afFmdojpk?,eqln#wkf#p`kfgvofggltmolbgp?,obafo=	pvpsf`wfgnbqdjm9#3psjqjwvbo?,kfbg=		nj`qlplewdqbgvboozgjp`vppfgkf#af`bnff{f`vwjufirvfqz-ipklvpfklog`lmejqnfgsvq`kbpfgojwfqboozgfpwqlzfgvs#wl#wkfubqjbwjlmqfnbjmjmdjw#jp#mlw`fmwvqjfpIbsbmfpf#bnlmd#wkf`lnsofwfgbodlqjwknjmwfqfpwpqfafoojlmvmgfejmfgfm`lvqbdfqfpjybaofjmuloujmdpfmpjwjufvmjufqpbosqlujpjlm+bowklvdkefbwvqjmd`lmgv`wfg*/#tkj`k#`lmwjmvfg.kfbgfq!=Efaqvbqz#mvnfqlvp#lufqeolt9`lnslmfmweqbdnfmwpf{`foofmw`lopsbm>!wf`kmj`bomfbq#wkf#Bgubm`fg#plvq`f#lef{sqfppfgKlmd#Hlmd#Eb`fallhnvowjsof#nf`kbmjpnfofubwjlmleefmpjuf?,elqn=	\npslmplqfggl`vnfmw-lq#%rvlw8wkfqf#bqfwklpf#tklnlufnfmwpsql`fppfpgjeej`vowpvanjwwfgqf`lnnfmg`lmujm`fgsqlnlwjmd!#tjgwk>!-qfsob`f+`obppj`bo`lbojwjlmkjp#ejqpwgf`jpjlmpbppjpwbmwjmgj`bwfgfulovwjlm.tqbssfq!fmlvdk#wlbolmd#wkfgfojufqfg..=	?"..Bnfqj`bm#sqlwf`wfgMlufnafq#?,pwzof=?evqmjwvqfJmwfqmfw##lmaovq>!pvpsfmgfgqf`jsjfmwabpfg#lm#Nlqflufq/balojpkfg`loof`wfgtfqf#nbgffnlwjlmbofnfqdfm`zmbqqbwjufbgul`bwfps{8alqgfq`lnnjwwfggjq>!owq!fnsolzffpqfpfbq`k-#pfof`wfgpv``fpplq`vpwlnfqpgjpsobzfgPfswfnafqbgg@obpp+Eb`fallh#pvddfpwfgbmg#obwfqlsfqbwjmdfobalqbwfPlnfwjnfpJmpwjwvwf`fqwbjmozjmpwboofgelooltfqpIfqvpbofnwkfz#kbuf`lnsvwjmddfmfqbwfgsqlujm`fpdvbqbmwffbqajwqbqzqf`ldmjyftbmwfg#wls{8tjgwk9wkflqz#leafkbujlvqTkjof#wkffpwjnbwfgafdbm#wl#jw#af`bnfnbdmjwvgfnvpw#kbufnlqf#wkbmGjqf`wlqzf{wfmpjlmpf`qfwbqzmbwvqboozl``vqqjmdubqjbaofpdjufm#wkfsobwelqn-?,obafo=?ebjofg#wl`lnslvmgphjmgp#le#pl`jfwjfpbolmdpjgf#..%dw8		plvwktfpwwkf#qjdkwqbgjbwjlmnbz#kbuf#vmfp`bsf+pslhfm#jm!#kqfe>!,sqldqbnnflmoz#wkf#`lnf#eqlngjqf`wlqzavqjfg#jmb#pjnjobqwkfz#tfqf?,elmw=?,Mlqtfdjbmpsf`jejfgsqlgv`jmdsbppfmdfq+mft#Gbwfwfnslqbqzej`wjlmboBewfq#wkffrvbwjlmpgltmolbg-qfdvobqozgfufolsfqbaluf#wkfojmhfg#wlskfmlnfmbsfqjlg#lewllowjs!=pvapwbm`fbvwlnbwj`bpsf`w#leBnlmd#wkf`lmmf`wfgfpwjnbwfpBjq#Elq`fpzpwfn#lelaif`wjufjnnfgjbwfnbhjmd#jwsbjmwjmdp`lmrvfqfgbqf#pwjoosql`fgvqfdqltwk#lekfbgfg#azFvqlsfbm#gjujpjlmpnlof`vofpeqbm`kjpfjmwfmwjlmbwwqb`wfg`kjogkllgbopl#vpfggfgj`bwfgpjmdbslqfgfdqff#leebwkfq#le`lmeoj`wp?,b=?,s=	`bnf#eqlntfqf#vpfgmlwf#wkbwqf`fjujmdF{f`vwjuffufm#nlqfb``fpp#wl`lnnbmgfqSlojwj`bonvpj`jbmpgfoj`jlvpsqjplmfqpbgufmw#leVWE.;!#,=?"X@GBWBX!=@lmwb`wPlvwkfqm#ad`lolq>!pfqjfp#le-#Jw#tbp#jm#Fvqlsfsfqnjwwfgubojgbwf-bssfbqjmdleej`jboppfqjlvpoz.obmdvbdfjmjwjbwfgf{wfmgjmdolmd.wfqnjmeobwjlmpv`k#wkbwdfw@llhjfnbqhfg#az?,avwwlm=jnsofnfmwavw#jw#jpjm`qfbpfpgltm#wkf#qfrvjqjmdgfsfmgfmw..=	?"..#jmwfqujftTjwk#wkf#`lsjfp#le`lmpfmpvptbp#avjowUfmfyvfob+elqnfqozwkf#pwbwfsfqplmmfopwqbwfdj`ebulvq#lejmufmwjlmTjhjsfgjb`lmwjmfmwujqwvbooztkj`k#tbpsqjm`jsof@lnsofwf#jgfmwj`bopklt#wkbwsqjnjwjufbtbz#eqlnnlof`vobqsqf`jpfozgjpploufgVmgfq#wkfufqpjlm>!=%maps8?,Jw#jp#wkf#Wkjp#jp#tjoo#kbuflqdbmjpnpplnf#wjnfEqjfgqj`ktbp#ejqpwwkf#lmoz#eb`w#wkbwelqn#jg>!sqf`fgjmdWf`kmj`boskzpj`jpwl``vqp#jmmbujdbwlqpf`wjlm!=psbm#jg>!plvdkw#wlafolt#wkfpvqujujmd~?,pwzof=kjp#gfbwkbp#jm#wkf`bvpfg#azsbqwjboozf{jpwjmd#vpjmd#wkftbp#djufmb#ojpw#leofufop#lemlwjlm#leLeej`jbo#gjpnjppfgp`jfmwjpwqfpfnaofpgvsoj`bwff{solpjufqf`lufqfgboo#lwkfqdboofqjfpxsbggjmd9sflsof#leqfdjlm#lebggqfppfpbppl`jbwfjnd#bow>!jm#nlgfqmpklvog#afnfwklg#leqfslqwjmdwjnfpwbnsmffgfg#wlwkf#Dqfbwqfdbqgjmdpffnfg#wlujftfg#bpjnsb`w#lmjgfb#wkbwwkf#Tlqogkfjdkw#lef{sbmgjmdWkfpf#bqf`vqqfmw!=`bqfevooznbjmwbjmp`kbqdf#le@obppj`bobggqfppfgsqfgj`wfgltmfqpkjs?gju#jg>!qjdkw!=	qfpjgfm`fofbuf#wkf`lmwfmw!=bqf#lewfm##~*+*8	sqlabaoz#Sqlefpplq.avwwlm!#qfpslmgfgpbzp#wkbwkbg#wl#afsob`fg#jmKvmdbqjbmpwbwvp#lepfqufp#bpVmjufqpbof{f`vwjlmbddqfdbwfelq#tkj`kjmef`wjlmbdqffg#wlkltfufq/#slsvobq!=sob`fg#lm`lmpwqv`wfof`wlqbopznalo#lejm`ovgjmdqfwvqm#wlbq`kjwf`w@kqjpwjbmsqfujlvp#ojujmd#jmfbpjfq#wlsqlefpplq	%ow8"..#feef`w#lebmbozwj`ptbp#wbhfmtkfqf#wkfwllh#lufqafojfe#jmBeqjhbbmpbp#ebq#bpsqfufmwfgtlqh#tjwkb#psf`jbo?ejfogpfw@kqjpwnbpQfwqjfufg		Jm#wkf#ab`h#jmwlmlqwkfbpwnbdbyjmfp=?pwqlmd=`lnnjwwffdlufqmjmddqlvsp#lepwlqfg#jmfpwbaojpkb#dfmfqbojwp#ejqpwwkfjq#ltmslsvobwfgbm#laif`w@bqjaafbmboolt#wkfgjpwqj`wptjp`lmpjmol`bwjlm-8#tjgwk9#jmkbajwfgPl`jbojpwIbmvbqz#2?,ellwfq=pjnjobqoz`klj`f#lewkf#pbnf#psf`jej`#avpjmfpp#Wkf#ejqpw-ofmdwk8#gfpjqf#wlgfbo#tjwkpjm`f#wkfvpfqBdfmw`lm`fjufgjmgf{-sksbp#%rvlw8fmdbdf#jmqf`fmwoz/eft#zfbqptfqf#bopl	?kfbg=	?fgjwfg#azbqf#hmltm`jwjfp#jmb``fpphfz`lmgfnmfgbopl#kbufpfquj`fp/ebnjoz#leP`kllo#le`lmufqwfgmbwvqf#le#obmdvbdfnjmjpwfqp?,laif`w=wkfqf#jp#b#slsvobqpfrvfm`fpbgul`bwfgWkfz#tfqfbmz#lwkfqol`bwjlm>fmwfq#wkfnv`k#nlqfqfeof`wfgtbp#mbnfglqjdjmbo#b#wzsj`botkfm#wkfzfmdjmffqp`lvog#mlwqfpjgfmwptfgmfpgbzwkf#wkjqg#sqlgv`wpIbmvbqz#1tkbw#wkfzb#`fqwbjmqfb`wjlmpsql`fpplqbewfq#kjpwkf#obpw#`lmwbjmfg!=?,gju=	?,b=?,wg=gfsfmg#lmpfbq`k!=	sjf`fp#le`lnsfwjmdQfefqfm`fwfmmfppfftkj`k#kbp#ufqpjlm>?,psbm=#??,kfbgfq=djufp#wkfkjpwlqjbmubovf>!!=sbggjmd93ujft#wkbwwldfwkfq/wkf#nlpw#tbp#elvmgpvapfw#lebwwb`h#lm`kjogqfm/sljmwp#lesfqplmbo#slpjwjlm9boofdfgoz@ofufobmgtbp#obwfqbmg#bewfqbqf#djufmtbp#pwjoop`qloojmdgfpjdm#lenbhfp#wkfnv`k#ofppBnfqj`bmp-		Bewfq#/#avw#wkfNvpfvn#leolvjpjbmb+eqln#wkfnjmmfplwbsbqwj`ofpb#sql`fppGlnjmj`bmulovnf#leqfwvqmjmdgfefmpjuf33s{\x7Fqjdknbgf#eqlnnlvpflufq!#pwzof>!pwbwfp#le+tkj`k#jp`lmwjmvfpEqbm`jp`lavjogjmd#tjwklvw#btjwk#plnftkl#tlvogb#elqn#leb#sbqw#leafelqf#jwhmltm#bp##Pfquj`fpol`bwjlm#bmg#lewfmnfbpvqjmdbmg#jw#jpsbsfqab`hubovfp#le	?wjwof=>#tjmglt-gfwfqnjmffq%rvlw8#sobzfg#azbmg#fbqoz?,`fmwfq=eqln#wkjpwkf#wkqffsltfq#bmgle#%rvlw8jmmfqKWNO?b#kqfe>!z9jmojmf8@kvq`k#lewkf#fufmwufqz#kjdkleej`jbo#.kfjdkw9#`lmwfmw>!,`dj.ajm,wl#`qfbwfbeqjhbbmpfpsfqbmwleqbm/Kbjpobwujf)Mvojfwvuj)_(`f)Mwjmb(af)Mwjmb\fUh\fT{\fTN\n{I\np@Fr\vBl\bQ\x7F	A{\vUmGx	A{ypYA\0zX\bTV\bWl\bUdBM\vB{\npV\v@xB\\\np@DbGz	al\npa	fM	uD\bV~mx\vQ}\ndS	p\\\bVK\bS]\bU|oD	kV\ved\vHR\nb~M`\nJpoD|Q\nLPSw\bTl\nAI\nxC\bWt	BqF`Cm\vLm	Kx	}t\bPv\ny\\\naB	V\x7F\nZdXUli	fr	i@	BHBDBV	`V\n[]	p_	Tn\n~A\nxR	uD	`{\bV@	Tn	HK	AJ\vxsZf\nqIZf\vBM\v|j	}t\bSM\nmC\vQ}pfquj`jlpbqw/A`volbqdfmwjmbabq`folmb`vborvjfqsvaoj`bglsqlgv`wlpslo/Awj`bqfpsvfpwbtjhjsfgjbpjdvjfmwfa/Vprvfgb`lnvmjgbgpfdvqjgbgsqjm`jsbosqfdvmwbp`lmwfmjglqfpslmgfqufmfyvfobsqlaofnbpgj`jfnaqfqfob`j/_mmlujfnaqfpjnjobqfpsqlzf`wlpsqldqbnbpjmpwjwvwlb`wjujgbgfm`vfmwqbf`lmln/Abjn/Mdfmfp`lmwb`wbqgfp`bqdbqmf`fpbqjlbwfm`j/_mwfo/Eelml`lnjpj/_m`bm`jlmfp`bsb`jgbgfm`lmwqbqbm/Mojpjpebulqjwlpw/Eqnjmlpsqlujm`jbfwjrvfwbpfofnfmwlpevm`jlmfpqfpvowbgl`bq/M`wfqsqlsjfgbgsqjm`jsjlmf`fpjgbgnvmj`jsbo`qfb`j/_mgfp`bqdbpsqfpfm`jb`lnfq`jbolsjmjlmfpfifq`j`jlfgjwlqjbopbobnbm`bdlmy/Mofygl`vnfmwlsfo/A`vobqf`jfmwfpdfmfqbofpwbqqbdlmbsq/M`wj`bmlufgbgfpsqlsvfpwbsb`jfmwfpw/E`mj`bplaifwjulp`lmwb`wlp\fHB\fIk\fHn\fH^\fHS\fHc\fHU\fId\fHn\fH{\fHC\fHR\fHT\fHR\fHI\fHc\fHY\fHn\fH\\\fHU\fIk\fHy\fIg\fHd\fHy\fIm\fHw\fH\\\fHU\fHR\fH@\fHR\fHJ\fHy\fHU\fHR\fHT\fHA\fIl\fHU\fIm\fHc\fH\\\fHU\fIl\fHB\fId\fHn\fHJ\fHS\fHD\fH@\fHR\fHHgjsolgl`p\fHT\fHB\fHC\fH\\\fIn\fHF\fHD\fHR\fHB\fHF\fHH\fHR\fHG\fHS\fH\\\fHx\fHT\fHH\fHH\fH\\\fHU\fH^\fIg\fH{\fHU\fIm\fHj\fH@\fHR\fH\\\fHJ\fIk\fHZ\fHU\fIm\fHd\fHz\fIk\fH^\fHC\fHJ\fHS\fHy\fHR\fHB\fHY\fIk\fH@\fHH\fIl\fHD\fH@\fIl\fHv\fHB\fI`\fHH\fHT\fHR\fH^\fH^\fIk\fHz\fHp\fIe\fH@\fHB\fHJ\fHJ\fHH\fHI\fHR\fHD\fHU\fIl\fHZ\fHU\fH\\\fHi\fH^\fH{\fHy\fHA\fIl\fHD\fH{\fH\\\fHF\fHR\fHT\fH\\\fHR\fHH\fHy\fHS\fHc\fHe\fHT\fIk\fH{\fHC\fIl\fHU\fIn\fHm\fHj\fH{\fIk\fHs\fIl\fHB\fHz\fIg\fHp\fHy\fHR\fH\\\fHi\fHA\fIl\fH{\fHC\fIk\fHH\fIm\fHB\fHY\fIg\fHs\fHJ\fIk\fHn\fHi\fH{\fH\\\fH|\fHT\fIk\fHB\fIk\fH^\fH^\fH{\fHR\fHU\fHR\fH^\fHf\fHF\fH\\\fHv\fHR\fH\\\fH|\fHT\fHR\fHJ\fIk\fH\\\fHp\fHS\fHT\fHJ\fHS\fH^\fH@\fHn\fHJ\fH@\fHD\fHR\fHU\fIn\fHn\fH^\fHR\fHz\fHp\fIl\fHH\fH@\fHs\fHD\fHB\fHS\fH^\fHk\fHT\fIk\fHj\fHD\fIk\fHD\fHC\fHR\fHy\fIm\fH^\fH^\fIe\fH{\fHA\fHR\fH{\fH\\\fIk\fH^\fHp\fH{\fHU\fH\\\fHR\fHB\fH^\fH{\fIk\fHF\fIk\fHp\fHU\fHR\fHI\fHk\fHT\fIl\fHT\fHU\fIl\fHy\fH^\fHR\fHL\fIl\fHy\fHU\fHR\fHm\fHJ\fIn\fH\\\fHH\fHU\fHH\fHT\fHR\fHH\fHC\fHR\fHJ\fHj\fHC\fHR\fHF\fHR\fHy\fHy\fI`\fHD\fHZ\fHR\fHB\fHJ\fIk\fHz\fHC\fHU\fIl\fH\\\fHR\fHC\fHz\fIm\fHJ\fH^\fH{\fIl`bwfdlqjfpf{sfqjfm`f?,wjwof=	@lszqjdkw#ibubp`qjsw`lmgjwjlmpfufqzwkjmd?s#`obpp>!wf`kmloldzab`hdqlvmg?b#`obpp>!nbmbdfnfmw%`lsz8#132ibubP`qjsw`kbqb`wfqpaqfbg`qvnawkfnpfoufpklqjylmwbodlufqmnfmw@bojelqmjbb`wjujwjfpgjp`lufqfgMbujdbwjlmwqbmpjwjlm`lmmf`wjlmmbujdbwjlmbssfbqbm`f?,wjwof=?n`kf`hal{!#wf`kmjrvfpsqlwf`wjlmbssbqfmwozbp#tfoo#bpvmw$/#$VB.qfplovwjlmlsfqbwjlmpwfofujpjlmwqbmpobwfgTbpkjmdwlmmbujdbwlq-#>#tjmglt-jnsqfppjlm%ow8aq%dw8ojwfqbwvqfslsvobwjlmad`lolq>! fpsf`jbooz#`lmwfmw>!sqlgv`wjlmmftpofwwfqsqlsfqwjfpgfejmjwjlmofbgfqpkjsWf`kmloldzSbqojbnfmw`lnsbqjplmvo#`obpp>!-jmgf{Le+!`lm`ovpjlmgjp`vppjlm`lnslmfmwpajloldj`boQfulovwjlm\\`lmwbjmfqvmgfqpwllgmlp`qjsw=?sfqnjppjlmfb`k#lwkfqbwnlpskfqf#lmel`vp>!?elqn#jg>!sql`fppjmdwkjp-ubovfdfmfqbwjlm@lmefqfm`fpvapfrvfmwtfoo.hmltmubqjbwjlmpqfsvwbwjlmskfmlnfmlmgjp`jsojmfoldl-smd!#+gl`vnfmw/alvmgbqjfpf{sqfppjlmpfwwofnfmwAb`hdqlvmglvw#le#wkffmwfqsqjpf+!kwwsp9!#vmfp`bsf+!sbpptlqg!#gfnl`qbwj`?b#kqfe>!,tqbssfq!=	nfnafqpkjsojmdvjpwj`s{8sbggjmdskjolplskzbppjpwbm`fvmjufqpjwzeb`jojwjfpqf`ldmjyfgsqfefqfm`fje#+wzsflenbjmwbjmfgul`bavobqzkzslwkfpjp-pvanjw+*8%bns8maps8bmmlwbwjlmafkjmg#wkfElvmgbwjlmsvaojpkfq!bppvnswjlmjmwqlgv`fg`lqqvswjlmp`jfmwjpwpf{soj`jwozjmpwfbg#legjnfmpjlmp#lm@oj`h>!`lmpjgfqfggfsbqwnfmwl``vsbwjlmpllm#bewfqjmufpwnfmwsqlmlvm`fgjgfmwjejfgf{sfqjnfmwNbmbdfnfmwdfldqbskj`!#kfjdkw>!ojmh#qfo>!-qfsob`f+,gfsqfppjlm`lmefqfm`fsvmjpknfmwfojnjmbwfgqfpjpwbm`fbgbswbwjlmlsslpjwjlmtfoo#hmltmpvssofnfmwgfwfqnjmfgk2#`obpp>!3s{8nbqdjmnf`kbmj`bopwbwjpwj`p`fofaqbwfgDlufqmnfmw		Gvqjmd#wgfufolsfqpbqwjej`jbofrvjubofmwlqjdjmbwfg@lnnjppjlmbwwb`knfmw?psbm#jg>!wkfqf#tfqfMfgfqobmgpafzlmg#wkfqfdjpwfqfgilvqmbojpweqfrvfmwozboo#le#wkfobmd>!fm!#?,pwzof=	baplovwf8#pvsslqwjmdf{wqfnfoz#nbjmpwqfbn?,pwqlmd=#slsvobqjwzfnsolznfmw?,wbaof=	#`lopsbm>!?,elqn=	##`lmufqpjlmbalvw#wkf#?,s=?,gju=jmwfdqbwfg!#obmd>!fmSlqwvdvfpfpvapwjwvwfjmgjujgvbojnslppjaofnvowjnfgjbbonlpw#boos{#plojg# bsbqw#eqlnpvaif`w#wljm#Fmdojpk`qjwj`jyfgf{`fsw#elqdvjgfojmfplqjdjmboozqfnbqhbaofwkf#pf`lmgk1#`obpp>!?b#wjwof>!+jm`ovgjmdsbqbnfwfqpsqlkjajwfg>#!kwws9,,gj`wjlmbqzsfq`fswjlmqfulovwjlmelvmgbwjlms{8kfjdkw9pv``fppevopvsslqwfqpnjoofmmjvnkjp#ebwkfqwkf#%rvlw8ml.qfsfbw8`lnnfq`jbojmgvpwqjbofm`lvqbdfgbnlvmw#le#vmleej`jbofeej`jfm`zQfefqfm`fp`llqgjmbwfgjp`objnfqf{sfgjwjlmgfufolsjmd`bo`vobwfgpjnsojejfgofdjwjnbwfpvapwqjmd+3!#`obpp>!`lnsofwfozjoovpwqbwfejuf#zfbqpjmpwqvnfmwSvaojpkjmd2!#`obpp>!spz`kloldz`lmejgfm`fmvnafq#le#bapfm`f#leel`vpfg#lmiljmfg#wkfpwqv`wvqfpsqfujlvpoz=?,jeqbnf=lm`f#bdbjmavw#qbwkfqjnnjdqbmwple#`lvqpf/b#dqlvs#leOjwfqbwvqfVmojhf#wkf?,b=%maps8	evm`wjlm#jw#tbp#wkf@lmufmwjlmbvwlnlajofSqlwfpwbmwbddqfppjufbewfq#wkf#Pjnjobqoz/!#,=?,gju=`loof`wjlm	evm`wjlmujpjajojwzwkf#vpf#leulovmwffqpbwwqb`wjlmvmgfq#wkf#wkqfbwfmfg)?"X@GBWBXjnslqwbm`fjm#dfmfqbowkf#obwwfq?,elqn=	?,-jmgf{Le+$j#>#38#j#?gjeefqfm`fgfulwfg#wlwqbgjwjlmppfbq`k#elqvowjnbwfozwlvqmbnfmwbwwqjavwfppl.`boofg#~	?,pwzof=fubovbwjlmfnskbpjyfgb``fppjaof?,pf`wjlm=pv``fppjlmbolmd#tjwkNfbmtkjof/jmgvpwqjfp?,b=?aq#,=kbp#af`lnfbpsf`wp#leWfofujpjlmpveej`jfmwabphfwabooalwk#pjgfp`lmwjmvjmdbm#bqwj`of?jnd#bow>!bgufmwvqfpkjp#nlwkfqnbm`kfpwfqsqjm`jsofpsbqwj`vobq`lnnfmwbqzfeef`wp#legf`jgfg#wl!=?pwqlmd=svaojpkfqpIlvqmbo#legjeej`vowzeb`jojwbwfb``fswbaofpwzof-`pp!\nevm`wjlm#jmmlubwjlm=@lszqjdkwpjwvbwjlmptlvog#kbufavpjmfppfpGj`wjlmbqzpwbwfnfmwplewfm#vpfgsfqpjpwfmwjm#Ibmvbqz`lnsqjpjmd?,wjwof=	\ngjsolnbwj``lmwbjmjmdsfqelqnjmdf{wfmpjlmpnbz#mlw#af`lm`fsw#le#lm`oj`h>!Jw#jp#boplejmbm`jbo#nbhjmd#wkfOv{fnalvqdbggjwjlmbobqf#`boofgfmdbdfg#jm!p`qjsw!*8avw#jw#tbpfof`wqlmj`lmpvanjw>!	?"..#Fmg#fof`wqj`boleej`jboozpvddfpwjlmwls#le#wkfvmojhf#wkfBvpwqbojbmLqjdjmboozqfefqfm`fp	?,kfbg=	qf`ldmjpfgjmjwjbojyfojnjwfg#wlBof{bmgqjbqfwjqfnfmwBgufmwvqfpelvq#zfbqp		%ow8"..#jm`qfbpjmdgf`lqbwjlmk0#`obpp>!lqjdjmp#lelaojdbwjlmqfdvobwjlm`obppjejfg+evm`wjlm+bgubmwbdfpafjmd#wkf#kjpwlqjbmp?abpf#kqfeqfsfbwfgoztjoojmd#wl`lnsbqbaofgfpjdmbwfgmlnjmbwjlmevm`wjlmbojmpjgf#wkfqfufobwjlmfmg#le#wkfp#elq#wkf#bvwklqjyfgqfevpfg#wlwbhf#sob`fbvwlmlnlvp`lnsqlnjpfslojwj`bo#qfpwbvqbmwwtl#le#wkfEfaqvbqz#1rvbojwz#leptelaif`w-vmgfqpwbmgmfbqoz#bootqjwwfm#azjmwfqujftp!#tjgwk>!2tjwkgqbtboeolbw9ofewjp#vpvbooz`bmgjgbwfpmftpsbsfqpnzpwfqjlvpGfsbqwnfmwafpw#hmltmsbqojbnfmwpvssqfppfg`lmufmjfmwqfnfnafqfggjeefqfmw#pzpwfnbwj`kbp#ofg#wlsqlsbdbmgb`lmwqloofgjmeovfm`fp`fqfnlmjbosql`objnfgSqlwf`wjlmoj#`obpp>!P`jfmwjej``obpp>!ml.wqbgfnbqhpnlqf#wkbm#tjgfpsqfbgOjafqbwjlmwllh#sob`fgbz#le#wkfbp#olmd#bpjnsqjplmfgBggjwjlmbo	?kfbg=	?nObalqbwlqzMlufnafq#1f{`fswjlmpJmgvpwqjboubqjfwz#leeolbw9#ofeGvqjmd#wkfbppfppnfmwkbuf#affm#gfbop#tjwkPwbwjpwj`pl``vqqfm`f,vo=?,gju=`ofbqej{!=wkf#svaoj`nbmz#zfbqptkj`k#tfqflufq#wjnf/pzmlmznlvp`lmwfmw!=	sqfpvnbaozkjp#ebnjozvpfqBdfmw-vmf{sf`wfgjm`ovgjmd#`kboofmdfgb#njmlqjwzvmgfejmfg!afolmdp#wlwbhfm#eqlnjm#L`wlafqslpjwjlm9#pbjg#wl#afqfojdjlvp#Efgfqbwjlm#qltpsbm>!lmoz#b#eftnfbmw#wkbwofg#wl#wkf..=	?gju#?ejfogpfw=Bq`kajpkls#`obpp>!mlafjmd#vpfgbssqlb`kfpsqjujofdfpmlp`qjsw=	qfpvowp#jmnbz#af#wkfFbpwfq#fddnf`kbmjpnpqfbplmbaofSlsvobwjlm@loof`wjlmpfof`wfg!=mlp`qjsw=,jmgf{-sksbqqjubo#le.ippgh$**8nbmbdfg#wljm`lnsofwf`bpvbowjfp`lnsofwjlm@kqjpwjbmpPfswfnafq#bqjwknfwj`sql`fgvqfpnjdkw#kbufSqlgv`wjlmjw#bssfbqpSkjolplskzeqjfmgpkjsofbgjmd#wldjujmd#wkfwltbqg#wkfdvbqbmwffggl`vnfmwfg`lolq9 333ujgfl#dbnf`lnnjppjlmqfeof`wjmd`kbmdf#wkfbppl`jbwfgpbmp.pfqjelmhfzsqfpp8#sbggjmd9Kf#tbp#wkfvmgfqozjmdwzsj`booz#/#bmg#wkf#pq`Fofnfmwpv``fppjufpjm`f#wkf#pklvog#af#mfwtlqhjmdb``lvmwjmdvpf#le#wkfoltfq#wkbmpkltp#wkbw?,psbm=	\n\n`lnsobjmwp`lmwjmvlvprvbmwjwjfpbpwqlmlnfqkf#gjg#mlwgvf#wl#jwpbssojfg#wlbm#bufqbdffeelqwp#wlwkf#evwvqfbwwfnsw#wlWkfqfelqf/`bsbajojwzQfsvaoj`bmtbp#elqnfgFof`wqlmj`hjolnfwfqp`kboofmdfpsvaojpkjmdwkf#elqnfqjmgjdfmlvpgjqf`wjlmppvapjgjbqz`lmpsjqb`zgfwbjop#lebmg#jm#wkfbeelqgbaofpvapwbm`fpqfbplm#elq`lmufmwjlmjwfnwzsf>!baplovwfozpvsslpfgozqfnbjmfg#bbwwqb`wjufwqbufoojmdpfsbqbwfozel`vpfp#lmfofnfmwbqzbssoj`baofelvmg#wkbwpwzofpkffwnbmvp`qjswpwbmgp#elq#ml.qfsfbw+plnfwjnfp@lnnfq`jbojm#Bnfqj`bvmgfqwbhfmrvbqwfq#lebm#f{bnsofsfqplmboozjmgf{-sks<?,avwwlm=	sfq`fmwbdfafpw.hmltm`qfbwjmd#b!#gjq>!owqOjfvwfmbmw	?gju#jg>!wkfz#tlvogbajojwz#lenbgf#vs#lemlwfg#wkbw`ofbq#wkbwbqdvf#wkbwwl#bmlwkfq`kjogqfm$psvqslpf#leelqnvobwfgabpfg#vslmwkf#qfdjlmpvaif`w#lesbppfmdfqpslppfppjlm-		Jm#wkf#Afelqf#wkfbewfqtbqgp`vqqfmwoz#b`qlpp#wkfp`jfmwjej``lnnvmjwz-`bsjwbojpnjm#Dfqnbmzqjdkw.tjmdwkf#pzpwfnPl`jfwz#leslojwj`jbmgjqf`wjlm9tfmw#lm#wlqfnlubo#le#Mft#Zlqh#bsbqwnfmwpjmgj`bwjlmgvqjmd#wkfvmofpp#wkfkjpwlqj`bokbg#affm#bgfejmjwjufjmdqfgjfmwbwwfmgbm`f@fmwfq#elqsqlnjmfm`fqfbgzPwbwfpwqbwfdjfpavw#jm#wkfbp#sbqw#le`lmpwjwvwf`objn#wkbwobalqbwlqz`lnsbwjaofebjovqf#le/#pv`k#bp#afdbm#tjwkvpjmd#wkf#wl#sqlujgfefbwvqf#leeqln#tkj`k,!#`obpp>!dfloldj`bopfufqbo#legfojafqbwfjnslqwbmw#klogp#wkbwjmd%rvlw8#ubojdm>wlswkf#Dfqnbmlvwpjgf#lemfdlwjbwfgkjp#`bqffqpfsbqbwjlmjg>!pfbq`ktbp#`boofgwkf#elvqwkqf`qfbwjlmlwkfq#wkbmsqfufmwjlmtkjof#wkf#fgv`bwjlm/`lmmf`wjmdb``vqbwfoztfqf#avjowtbp#hjoofgbdqffnfmwpnv`k#nlqf#Gvf#wl#wkftjgwk9#233plnf#lwkfqHjmdgln#lewkf#fmwjqfebnlvp#elqwl#`lmmf`wlaif`wjufpwkf#Eqfm`ksflsof#bmgefbwvqfg!=jp#pbjg#wlpwqv`wvqboqfefqfmgvnnlpw#lewfmb#pfsbqbwf.=	?gju#jg#Leej`jbo#tlqogtjgf-bqjb.obafowkf#sobmfwbmg#jw#tbpg!#ubovf>!ollhjmd#bwafmfej`jbobqf#jm#wkfnlmjwlqjmdqfslqwfgozwkf#nlgfqmtlqhjmd#lmbooltfg#wltkfqf#wkf#jmmlubwjuf?,b=?,gju=plvmgwqb`hpfbq`kElqnwfmg#wl#afjmsvw#jg>!lsfmjmd#leqfpwqj`wfgbglswfg#azbggqfppjmdwkfloldjbmnfwklgp#leubqjbmw#le@kqjpwjbm#ufqz#obqdfbvwlnlwjufaz#ebq#wkfqbmdf#eqlnsvqpvjw#leeloolt#wkfaqlvdkw#wljm#Fmdobmgbdqff#wkbwb``vpfg#le`lnfp#eqlnsqfufmwjmdgju#pwzof>kjp#lq#kfqwqfnfmglvpeqffgln#le`lm`fqmjmd3#2fn#2fn8Abphfwaboo,pwzof-`ppbm#fbqojfqfufm#bewfq,!#wjwof>!-`ln,jmgf{wbhjmd#wkfsjwwpavqdk`lmwfmw!=?p`qjsw=+ewvqmfg#lvwkbujmd#wkf?,psbm=	#l``bpjlmboaf`bvpf#jwpwbqwfg#wlskzpj`booz=?,gju=	##`qfbwfg#az@vqqfmwoz/#ad`lolq>!wbajmgf{>!gjpbpwqlvpBmbozwj`p#bopl#kbp#b=?gju#jg>!?,pwzof=	?`boofg#elqpjmdfq#bmg-pq`#>#!,,ujlobwjlmpwkjp#sljmw`lmpwbmwozjp#ol`bwfgqf`lqgjmdpg#eqln#wkfmfgfqobmgpslqwvdv/Fp;N;};D;u;F5m4K4]4_7`gfpbqqlool`lnfmwbqjlfgv`b`j/_mpfswjfnaqfqfdjpwqbglgjqf``j/_mvaj`b`j/_msvaoj`jgbgqfpsvfpwbpqfpvowbglpjnslqwbmwfqfpfqubglpbqw/A`volpgjefqfmwfppjdvjfmwfpqfs/Vaoj`bpjwvb`j/_mnjmjpwfqjlsqjub`jgbggjqf`wlqjlelqnb`j/_mslaob`j/_msqfpjgfmwf`lmw', 'fmjglpb``fplqjlpwf`kmlqbwjsfqplmbofp`bwfdlq/Abfpsf`jbofpgjpslmjaofb`wvbojgbgqfefqfm`jbuboobglojgajaojlwf`bqfob`jlmfp`bofmgbqjlslo/Awj`bpbmwfqjlqfpgl`vnfmwlpmbwvqbofybnbwfqjbofpgjefqfm`jbf`lm/_nj`bwqbmpslqwfqlgq/Advfysbqwj`jsbqfm`vfmwqbmgjp`vpj/_mfpwqv`wvqbevmgb`j/_meqf`vfmwfpsfqnbmfmwfwlwbonfmwf<P<R<Z<Q<R<]=o<X<Y=n<P<R<Z<Y=n<^=l<Y<P=c=n<\\<V<Z<Y=k=n<R<]=g<]<R<W<Y<Y<R=k<Y<Q=`=a=n<R<_<R<V<R<_<X<\\<S<R=m<W<Y<^=m<Y<_<R=m<\\<U=n<Y=k<Y=l<Y<[<P<R<_=o=n=m<\\<U=n<\\<Z<T<[<Q<T<P<Y<Z<X=o<]=o<X=o=n<s<R<T=m<V<[<X<Y=m=`<^<T<X<Y<R=m<^=c<[<T<Q=o<Z<Q<R=m<^<R<Y<U<W=b<X<Y<U<S<R=l<Q<R<P<Q<R<_<R<X<Y=n<Y<U=m<^<R<T=i<S=l<\\<^<\\=n<\\<V<R<U<P<Y=m=n<R<T<P<Y<Y=n<Z<T<[<Q=`<R<X<Q<R<U<W=o=k=d<Y<S<Y=l<Y<X=k<\\=m=n<T=k<\\=m=n=`=l<\\<]<R=n<Q<R<^=g=i<S=l<\\<^<R=m<R<]<R<U<S<R=n<R<P<P<Y<Q<Y<Y=k<T=m<W<Y<Q<R<^=g<Y=o=m<W=o<_<R<V<R<W<R<Q<\\<[<\\<X=n<\\<V<R<Y=n<R<_<X<\\<S<R=k=n<T<s<R=m<W<Y=n<\\<V<T<Y<Q<R<^=g<U=m=n<R<T=n=n<\\<V<T=i=m=l<\\<[=o<M<\\<Q<V=n=h<R=l=o<P<v<R<_<X<\\<V<Q<T<_<T=m<W<R<^<\\<Q<\\=d<Y<U<Q<\\<U=n<T=m<^<R<T<P=m<^=c<[=`<W=b<]<R<U=k<\\=m=n<R=m=l<Y<X<T<v=l<R<P<Y<H<R=l=o<P=l=g<Q<V<Y=m=n<\\<W<T<S<R<T=m<V=n=g=m=c=k<P<Y=m=c=j=j<Y<Q=n=l=n=l=o<X<\\=m<\\<P=g=i=l=g<Q<V<\\<q<R<^=g<U=k<\\=m<R<^<P<Y=m=n<\\=h<T<W=`<P<P<\\=l=n<\\=m=n=l<\\<Q<P<Y=m=n<Y=n<Y<V=m=n<Q<\\=d<T=i<P<T<Q=o=n<T<P<Y<Q<T<T<P<Y=b=n<Q<R<P<Y=l<_<R=l<R<X=m<\\<P<R<P=a=n<R<P=o<V<R<Q=j<Y=m<^<R<Y<P<V<\\<V<R<U<|=l=i<T<^5i5j4F4C5e4I4]4_4K5h4]4_4K5h4E4K5h4U4K5i5o4F4D5k4K4D4]4K5i4@4K5h5f5d5i4K5h4Y5d4]4@4C5f4C4E4K5h4U4Z5d4I4Z4K5m4E4K5h5n4_5i4K5h4U4K4D4F4A5i5f5h5i5h5m4K4F5i5h4F5n5e4F4U4C5f5h4K5h4X4U4]4O4B4D4K4]4F4[5d5f4]4U5h5f5o5i4I4]5m4K5n4[5h4D4K4F4K5h5h4V4E4F4]4F5f4D4K5h5j4K4_4K5h4X5f4B5i5j4F4C5f4K5h4U4]4D4K5h5n4Y4Y4K5m5h4K5i4U5h5f5k4K4F4A4C5f4G4K5h5h5k5i4K5h4U5i5h5i5o4F4D4E5f5i5o5j5o4K5h4[5m5h5m5f4C5f5d4I4C4K4]4E4F4K4]5f4B4K5h4Y4A4E4F4_4@5f5h4K5h5d5n4F4U5j4C5i4K5i4C5f5j4E4F4Y5i5f5i4O4]4X5f5m4K5h4\\5f5j4U4]4D5f4E4D5d4K4D4E4O5h4U4K4D4K5h4_5m4]5i4X4K5o5h4F4U4K5h5e4K5h4O5d5h4K5h4_5j4E4@4K5i4U4E4K5h4Y4A5m4K5h4C5f5j5o5h5i4K4F4K5h4B4K4Y4K5h5i5h5m4O4U4Z4K4M5o4F4K4D4E4K5h4B5f4]4]4_4K4J5h4K5h5n5h4D4K5h4O4C4D5i5n4K4[4U5i4]4K4_5h5i5j4[5n4E4K5h5o4F4D4K5h4]4@5h4K4X4F4]5o4K5h5n4C5i5f4U4[5f5opAzWbdMbnf+-isd!#bow>!2s{#plojg# -dje!#bow>!wqbmpsbqfmwjmelqnbwjlmbssoj`bwjlm!#lm`oj`h>!fpwbaojpkfgbgufqwjpjmd-smd!#bow>!fmujqlmnfmwsfqelqnbm`fbssqlsqjbwf%bns8ngbpk8jnnfgjbwfoz?,pwqlmd=?,qbwkfq#wkbmwfnsfqbwvqfgfufolsnfmw`lnsfwjwjlmsob`fklogfqujpjajojwz9`lszqjdkw!=3!#kfjdkw>!fufm#wklvdkqfsob`fnfmwgfpwjmbwjlm@lqslqbwjlm?vo#`obpp>!Bppl`jbwjlmjmgjujgvbopsfqpsf`wjufpfwWjnflvw+vqo+kwws9,,nbwkfnbwj`pnbqdjm.wls9fufmwvbooz#gfp`qjswjlm*#ml.qfsfbw`loof`wjlmp-ISD\x7Fwkvna\x7Fsbqwj`jsbwf,kfbg=?algzeolbw9ofew8?oj#`obpp>!kvmgqfgp#le		Kltfufq/#`lnslpjwjlm`ofbq9alwk8`llsfqbwjlmtjwkjm#wkf#obafo#elq>!alqgfq.wls9Mft#Yfbobmgqf`lnnfmgfgsklwldqbskzjmwfqfpwjmd%ow8pvs%dw8`lmwqlufqpzMfwkfqobmgpbowfqmbwjufnb{ofmdwk>!ptjwyfqobmgGfufolsnfmwfppfmwjbooz		Bowklvdk#?,wf{wbqfb=wkvmgfqajqgqfsqfpfmwfg%bns8mgbpk8psf`vobwjlm`lnnvmjwjfpofdjpobwjlmfof`wqlmj`p	\n?gju#jg>!joovpwqbwfgfmdjmffqjmdwfqqjwlqjfpbvwklqjwjfpgjpwqjavwfg5!#kfjdkw>!pbmp.pfqje8`bsbaof#le#gjpbssfbqfgjmwfqb`wjufollhjmd#elqjw#tlvog#afBedkbmjpwbmtbp#`qfbwfgNbwk-eollq+pvqqlvmgjmd`bm#bopl#aflapfqubwjlmnbjmwfmbm`ffm`lvmwfqfg?k1#`obpp>!nlqf#qf`fmwjw#kbp#affmjmubpjlm#le*-dfwWjnf+*evmgbnfmwboGfpsjwf#wkf!=?gju#jg>!jmpsjqbwjlmf{bnjmbwjlmsqfsbqbwjlmf{sobmbwjlm?jmsvw#jg>!?,b=?,psbm=ufqpjlmp#lejmpwqvnfmwpafelqf#wkf##>#$kwws9,,Gfp`qjswjlmqfobwjufoz#-pvapwqjmd+fb`k#le#wkff{sfqjnfmwpjmeovfmwjbojmwfdqbwjlmnbmz#sflsofgvf#wl#wkf#`lnajmbwjlmgl#mlw#kbufNjggof#Fbpw?mlp`qjsw=?`lszqjdkw!#sfqkbsp#wkfjmpwjwvwjlmjm#Gf`fnafqbqqbmdfnfmwnlpw#ebnlvpsfqplmbojwz`qfbwjlm#leojnjwbwjlmpf{`ovpjufozplufqfjdmwz.`lmwfmw!=	?wg#`obpp>!vmgfqdqlvmgsbqboofo#wlgl`wqjmf#lel``vsjfg#azwfqnjmloldzQfmbjppbm`fb#mvnafq#lepvsslqw#elqf{solqbwjlmqf`ldmjwjlmsqfgf`fpplq?jnd#pq`>!,?k2#`obpp>!svaoj`bwjlmnbz#bopl#afpsf`jbojyfg?,ejfogpfw=sqldqfppjufnjoojlmp#lepwbwfp#wkbwfmelq`fnfmwbqlvmg#wkf#lmf#bmlwkfq-sbqfmwMlgfbdqj`vowvqfBowfqmbwjufqfpfbq`kfqpwltbqgp#wkfNlpw#le#wkfnbmz#lwkfq#+fpsf`jbooz?wg#tjgwk>!8tjgwk9233&jmgfsfmgfmw?k0#`obpp>!#lm`kbmdf>!*-bgg@obpp+jmwfqb`wjlmLmf#le#wkf#gbvdkwfq#leb``fpplqjfpaqbm`kfp#le	?gju#jg>!wkf#obqdfpwgf`obqbwjlmqfdvobwjlmpJmelqnbwjlmwqbmpobwjlmgl`vnfmwbqzjm#lqgfq#wl!=	?kfbg=	?!#kfjdkw>!2b`qlpp#wkf#lqjfmwbwjlm*8?,p`qjsw=jnsofnfmwfg`bm#af#pffmwkfqf#tbp#bgfnlmpwqbwf`lmwbjmfq!=`lmmf`wjlmpwkf#Aqjwjpktbp#tqjwwfm"jnslqwbmw8s{8#nbqdjm.elooltfg#azbajojwz#wl#`lnsoj`bwfggvqjmd#wkf#jnnjdqbwjlmbopl#`boofg?k7#`obpp>!gjpwjm`wjlmqfsob`fg#azdlufqmnfmwpol`bwjlm#lejm#Mlufnafqtkfwkfq#wkf?,s=	?,gju=b`rvjpjwjlm`boofg#wkf#sfqpf`vwjlmgfpjdmbwjlmxelmw.pjyf9bssfbqfg#jmjmufpwjdbwff{sfqjfm`fgnlpw#ojhfoztjgfoz#vpfggjp`vppjlmpsqfpfm`f#le#+gl`vnfmw-f{wfmpjufozJw#kbp#affmjw#glfp#mlw`lmwqbqz#wljmkbajwbmwpjnsqlufnfmwp`klobqpkjs`lmpvnswjlmjmpwqv`wjlmelq#f{bnsoflmf#lq#nlqfs{8#sbggjmdwkf#`vqqfmwb#pfqjfp#lebqf#vpvboozqlof#jm#wkfsqfujlvpoz#gfqjubwjufpfujgfm`f#lef{sfqjfm`fp`lolqp`kfnfpwbwfg#wkbw`fqwjej`bwf?,b=?,gju=	#pfof`wfg>!kjdk#p`klloqfpslmpf#wl`lnelqwbaofbglswjlm#lewkqff#zfbqpwkf#`lvmwqzjm#Efaqvbqzpl#wkbw#wkfsflsof#tkl#sqlujgfg#az?sbqbn#mbnfbeef`wfg#azjm#wfqnp#lebssljmwnfmwJPL.;;6:.2!tbp#alqm#jmkjpwlqj`bo#qfdbqgfg#bpnfbpvqfnfmwjp#abpfg#lm#bmg#lwkfq#9#evm`wjlm+pjdmjej`bmw`fofaqbwjlmwqbmpnjwwfg,ip,irvfqz-jp#hmltm#bpwkflqfwj`bo#wbajmgf{>!jw#`lvog#af?mlp`qjsw=	kbujmd#affm	?kfbg=	?#%rvlw8Wkf#`lnsjobwjlmkf#kbg#affmsqlgv`fg#azskjolplskfq`lmpwqv`wfgjmwfmgfg#wlbnlmd#lwkfq`lnsbqfg#wlwl#pbz#wkbwFmdjmffqjmdb#gjeefqfmwqfefqqfg#wlgjeefqfm`fpafojfe#wkbwsklwldqbskpjgfmwjezjmdKjpwlqz#le#Qfsvaoj`#lemf`fppbqjozsqlabajojwzwf`kmj`boozofbujmd#wkfpsf`wb`vobqeqb`wjlm#lefof`wqj`jwzkfbg#le#wkfqfpwbvqbmwpsbqwmfqpkjsfnskbpjp#lmnlpw#qf`fmwpkbqf#tjwk#pbzjmd#wkbwejoofg#tjwkgfpjdmfg#wljw#jp#lewfm!=?,jeqbnf=bp#elooltp9nfqdfg#tjwkwkqlvdk#wkf`lnnfq`jbo#sljmwfg#lvwlsslqwvmjwzujft#le#wkfqfrvjqfnfmwgjujpjlm#lesqldqbnnjmdkf#qf`fjufgpfwJmwfqubo!=?,psbm=?,jm#Mft#Zlqhbggjwjlmbo#`lnsqfppjlm		?gju#jg>!jm`lqslqbwf8?,p`qjsw=?bwwb`kFufmwaf`bnf#wkf#!#wbqdfw>!\\`bqqjfg#lvwPlnf#le#wkfp`jfm`f#bmgwkf#wjnf#le@lmwbjmfq!=nbjmwbjmjmd@kqjpwlskfqNv`k#le#wkftqjwjmdp#le!#kfjdkw>!1pjyf#le#wkfufqpjlm#le#nj{wvqf#le#afwtffm#wkfF{bnsofp#lefgv`bwjlmbo`lnsfwjwjuf#lmpvanjw>!gjqf`wlq#legjpwjm`wjuf,GWG#[KWNO#qfobwjmd#wlwfmgfm`z#wlsqlujm`f#letkj`k#tlvoggfpsjwf#wkfp`jfmwjej`#ofdjpobwvqf-jmmfqKWNO#boofdbwjlmpBdqj`vowvqftbp#vpfg#jmbssqlb`k#wljmwfoojdfmwzfbqp#obwfq/pbmp.pfqjegfwfqnjmjmdSfqelqnbm`fbssfbqbm`fp/#tkj`k#jp#elvmgbwjlmpbaaqfujbwfgkjdkfq#wkbmp#eqln#wkf#jmgjujgvbo#`lnslpfg#lepvsslpfg#wl`objnp#wkbwbwwqjavwjlmelmw.pjyf92fofnfmwp#leKjpwlqj`bo#kjp#aqlwkfqbw#wkf#wjnfbmmjufqpbqzdlufqmfg#azqfobwfg#wl#vowjnbwfoz#jmmlubwjlmpjw#jp#pwjoo`bm#lmoz#afgfejmjwjlmpwlDNWPwqjmdB#mvnafq#lejnd#`obpp>!Fufmwvbooz/tbp#`kbmdfgl``vqqfg#jmmfjdkalqjmdgjpwjmdvjpktkfm#kf#tbpjmwqlgv`jmdwfqqfpwqjboNbmz#le#wkfbqdvfp#wkbwbm#Bnfqj`bm`lmrvfpw#letjgfpsqfbg#tfqf#hjoofgp`qffm#bmg#Jm#lqgfq#wlf{sf`wfg#wlgfp`fmgbmwpbqf#ol`bwfgofdjpobwjufdfmfqbwjlmp#ab`hdqlvmgnlpw#sflsofzfbqp#bewfqwkfqf#jp#mlwkf#kjdkfpweqfrvfmwoz#wkfz#gl#mlwbqdvfg#wkbwpkltfg#wkbwsqfglnjmbmwwkfloldj`boaz#wkf#wjnf`lmpjgfqjmdpklqw.ojufg?,psbm=?,b=`bm#af#vpfgufqz#ojwwoflmf#le#wkf#kbg#boqfbgzjmwfqsqfwfg`lnnvmj`bwfefbwvqfp#ledlufqmnfmw/?,mlp`qjsw=fmwfqfg#wkf!#kfjdkw>!0Jmgfsfmgfmwslsvobwjlmpobqdf.p`bof-#Bowklvdk#vpfg#jm#wkfgfpwqv`wjlmslppjajojwzpwbqwjmd#jmwtl#lq#nlqff{sqfppjlmppvalqgjmbwfobqdfq#wkbmkjpwlqz#bmg?,lswjlm=	@lmwjmfmwbofojnjmbwjmdtjoo#mlw#afsqb`wj`f#lejm#eqlmw#lepjwf#le#wkffmpvqf#wkbwwl#`qfbwf#bnjppjppjssjslwfmwjboozlvwpwbmgjmdafwwfq#wkbmtkbw#jp#mltpjwvbwfg#jmnfwb#mbnf>!WqbgjwjlmbopvddfpwjlmpWqbmpobwjlmwkf#elqn#lebwnlpskfqj`jgfloldj`bofmwfqsqjpfp`bo`vobwjmdfbpw#le#wkfqfnmbmwp#lesovdjmpsbdf,jmgf{-sks<qfnbjmfg#jmwqbmpelqnfgKf#tbp#bopltbp#boqfbgzpwbwjpwj`bojm#ebulq#leNjmjpwqz#lenlufnfmw#leelqnvobwjlmjp#qfrvjqfg?ojmh#qfo>!Wkjp#jp#wkf#?b#kqfe>!,slsvobqjyfgjmuloufg#jmbqf#vpfg#wlbmg#pfufqbonbgf#az#wkfpffnp#wl#afojhfoz#wkbwSbofpwjmjbmmbnfg#bewfqjw#kbg#affmnlpw#`lnnlmwl#qfefq#wlavw#wkjp#jp`lmpf`vwjufwfnslqbqjozJm#dfmfqbo/`lmufmwjlmpwbhfp#sob`fpvagjujpjlmwfqqjwlqjbolsfqbwjlmbosfqnbmfmwoztbp#obqdfozlvwaqfbh#lejm#wkf#sbpwelooltjmd#b#{nomp9ld>!=?b#`obpp>!`obpp>!wf{w@lmufqpjlm#nbz#af#vpfgnbmveb`wvqfbewfq#afjmd`ofbqej{!=	rvfpwjlm#letbp#fof`wfgwl#af`lnf#baf`bvpf#le#plnf#sflsofjmpsjqfg#azpv``fppevo#b#wjnf#tkfmnlqf#`lnnlmbnlmdpw#wkfbm#leej`jbotjgwk9233&8wf`kmloldz/tbp#bglswfgwl#hffs#wkfpfwwofnfmwpojuf#ajqwkpjmgf{-kwno!@lmmf`wj`vwbppjdmfg#wl%bns8wjnfp8b``lvmw#elqbojdm>qjdkwwkf#`lnsbmzbotbzp#affmqfwvqmfg#wljmuloufnfmwAf`bvpf#wkfwkjp#sfqjlg!#mbnf>!r!#`lmejmfg#wlb#qfpvow#leubovf>!!#,=jp#b`wvboozFmujqlmnfmw	?,kfbg=	@lmufqpfoz/=	?gju#jg>!3!#tjgwk>!2jp#sqlabaozkbuf#af`lnf`lmwqloojmdwkf#sqlaofn`jwjyfmp#leslojwj`jbmpqfb`kfg#wkfbp#fbqoz#bp9mlmf8#lufq?wbaof#`fooubojgjwz#legjqf`woz#wllmnlvpfgltmtkfqf#jw#jptkfm#jw#tbpnfnafqp#le#qfobwjlm#wlb``lnnlgbwfbolmd#tjwk#Jm#wkf#obwfwkf#Fmdojpkgfoj`jlvp!=wkjp#jp#mlwwkf#sqfpfmwje#wkfz#bqfbmg#ejmboozb#nbwwfq#le	\n?,gju=		?,p`qjsw=ebpwfq#wkbmnbilqjwz#lebewfq#tkj`k`lnsbqbwjufwl#nbjmwbjmjnsqluf#wkfbtbqgfg#wkffq!#`obpp>!eqbnfalqgfqqfpwlqbwjlmjm#wkf#pbnfbmbozpjp#lewkfjq#ejqpwGvqjmd#wkf#`lmwjmfmwbopfrvfm`f#leevm`wjlm+*xelmw.pjyf9#tlqh#lm#wkf?,p`qjsw=	?afdjmp#tjwkibubp`qjsw9`lmpwjwvfmwtbp#elvmgfgfrvjojaqjvnbppvnf#wkbwjp#djufm#azmffgp#wl#af`llqgjmbwfpwkf#ubqjlvpbqf#sbqw#lelmoz#jm#wkfpf`wjlmp#lejp#b#`lnnlmwkflqjfp#legjp`lufqjfpbppl`jbwjlmfgdf#le#wkfpwqfmdwk#leslpjwjlm#jmsqfpfmw.gbzvmjufqpboozwl#elqn#wkfavw#jmpwfbg`lqslqbwjlmbwwb`kfg#wljp#`lnnlmozqfbplmp#elq#%rvlw8wkf#`bm#af#nbgftbp#baof#wltkj`k#nfbmpavw#gjg#mlwlmNlvpfLufqbp#slppjaoflsfqbwfg#az`lnjmd#eqlnwkf#sqjnbqzbggjwjlm#leelq#pfufqbowqbmpefqqfgb#sfqjlg#lebqf#baof#wlkltfufq/#jwpklvog#kbufnv`k#obqdfq	\n?,p`qjsw=bglswfg#wkfsqlsfqwz#legjqf`wfg#azfeef`wjufoztbp#aqlvdkw`kjogqfm#leSqldqbnnjmdolmdfq#wkbmnbmvp`qjswptbq#bdbjmpwaz#nfbmp#lebmg#nlpw#lepjnjobq#wl#sqlsqjfwbqzlqjdjmbwjmdsqfpwjdjlvpdqbnnbwj`bof{sfqjfm`f-wl#nbhf#wkfJw#tbp#bopljp#elvmg#jm`lnsfwjwlqpjm#wkf#V-P-qfsob`f#wkfaqlvdkw#wkf`bo`vobwjlmeboo#le#wkfwkf#dfmfqbosqb`wj`boozjm#klmlq#leqfofbpfg#jmqfpjgfmwjbobmg#plnf#lehjmd#le#wkfqfb`wjlm#wl2pw#Fbqo#le`vowvqf#bmgsqjm`jsbooz?,wjwof=	##wkfz#`bm#afab`h#wl#wkfplnf#le#kjpf{slpvqf#wlbqf#pjnjobqelqn#le#wkfbggEbulqjwf`jwjyfmpkjssbqw#jm#wkfsflsof#tjwkjm#sqb`wj`fwl#`lmwjmvf%bns8njmvp8bssqlufg#az#wkf#ejqpw#booltfg#wkfbmg#elq#wkfevm`wjlmjmdsobzjmd#wkfplovwjlm#wlkfjdkw>!3!#jm#kjp#allhnlqf#wkbm#belooltp#wkf`qfbwfg#wkfsqfpfm`f#jm%maps8?,wg=mbwjlmbojpwwkf#jgfb#leb#`kbqb`wfqtfqf#elq`fg#`obpp>!awmgbzp#le#wkfefbwvqfg#jmpkltjmd#wkfjmwfqfpw#jmjm#sob`f#lewvqm#le#wkfwkf#kfbg#leOlqg#le#wkfslojwj`boozkbp#jwp#ltmFgv`bwjlmbobssqlubo#leplnf#le#wkffb`k#lwkfq/afkbujlq#lebmg#af`bvpfbmg#bmlwkfqbssfbqfg#lmqf`lqgfg#jmaob`h%rvlw8nbz#jm`ovgfwkf#tlqog$p`bm#ofbg#wlqfefqp#wl#balqgfq>!3!#dlufqmnfmw#tjmmjmd#wkfqfpvowfg#jm#tkjof#wkf#Tbpkjmdwlm/wkf#pvaif`w`jwz#jm#wkf=?,gju=	\n\nqfeof`w#wkfwl#`lnsofwfaf`bnf#nlqfqbgjlb`wjufqfif`wfg#aztjwklvw#bmzkjp#ebwkfq/tkj`k#`lvog`lsz#le#wkfwl#jmgj`bwfb#slojwj`bob``lvmwp#le`lmpwjwvwfptlqhfg#tjwkfq?,b=?,oj=le#kjp#ojefb``lnsbmjfg`ojfmwTjgwksqfufmw#wkfOfdjpobwjufgjeefqfmwozwldfwkfq#jmkbp#pfufqboelq#bmlwkfqwf{w#le#wkfelvmgfg#wkff#tjwk#wkf#jp#vpfg#elq`kbmdfg#wkfvpvbooz#wkfsob`f#tkfqftkfqfbp#wkf=#?b#kqfe>!!=?b#kqfe>!wkfnpfoufp/bowklvdk#kfwkbw#`bm#afwqbgjwjlmboqlof#le#wkfbp#b#qfpvowqfnluf@kjoggfpjdmfg#aztfpw#le#wkfPlnf#sflsofsqlgv`wjlm/pjgf#le#wkfmftpofwwfqpvpfg#az#wkfgltm#wl#wkfb``fswfg#azojuf#jm#wkfbwwfnswp#wllvwpjgf#wkfeqfrvfm`jfpKltfufq/#jmsqldqbnnfqpbw#ofbpw#jmbssql{jnbwfbowklvdk#jwtbp#sbqw#lebmg#ubqjlvpDlufqmlq#lewkf#bqwj`ofwvqmfg#jmwl=?b#kqfe>!,wkf#f`lmlnzjp#wkf#nlpwnlpw#tjgfoztlvog#obwfqbmg#sfqkbspqjpf#wl#wkfl``vqp#tkfmvmgfq#tkj`k`lmgjwjlmp-wkf#tfpwfqmwkflqz#wkbwjp#sqlgv`fgwkf#`jwz#lejm#tkj`k#kfpffm#jm#wkfwkf#`fmwqboavjogjmd#lenbmz#le#kjpbqfb#le#wkfjp#wkf#lmoznlpw#le#wkfnbmz#le#wkfwkf#TfpwfqmWkfqf#jp#mlf{wfmgfg#wlPwbwjpwj`bo`lopsbm>1#\x7Fpklqw#pwlqzslppjaof#wlwlsloldj`bo`qjwj`bo#leqfslqwfg#wlb#@kqjpwjbmgf`jpjlm#wljp#frvbo#wlsqlaofnp#leWkjp#`bm#afnfq`kbmgjpfelq#nlpw#leml#fujgfm`ffgjwjlmp#lefofnfmwp#jm%rvlw8-#Wkf`ln,jnbdfp,tkj`k#nbhfpwkf#sql`fppqfnbjmp#wkfojwfqbwvqf/jp#b#nfnafqwkf#slsvobqwkf#bm`jfmwsqlaofnp#jmwjnf#le#wkfgfefbwfg#azalgz#le#wkfb#eft#zfbqpnv`k#le#wkfwkf#tlqh#le@bojelqmjb/pfqufg#bp#bdlufqmnfmw-`lm`fswp#lenlufnfmw#jm\n\n?gju#jg>!jw!#ubovf>!obmdvbdf#lebp#wkfz#bqfsqlgv`fg#jmjp#wkbw#wkff{sobjm#wkfgju=?,gju=	Kltfufq#wkfofbg#wl#wkf\n?b#kqfe>!,tbp#dqbmwfgsflsof#kbuf`lmwjmvbooztbp#pffm#bpbmg#qfobwfgwkf#qlof#lesqlslpfg#azle#wkf#afpwfb`k#lwkfq-@lmpwbmwjmfsflsof#eqlngjbof`wp#lewl#qfujpjlmtbp#qfmbnfgb#plvq`f#lewkf#jmjwjboobvm`kfg#jmsqlujgf#wkfwl#wkf#tfpwtkfqf#wkfqfbmg#pjnjobqafwtffm#wtljp#bopl#wkfFmdojpk#bmg`lmgjwjlmp/wkbw#jw#tbpfmwjwofg#wlwkfnpfoufp-rvbmwjwz#leqbmpsbqfm`zwkf#pbnf#bpwl#iljm#wkf`lvmwqz#bmgwkjp#jp#wkfWkjp#ofg#wlb#pwbwfnfmw`lmwqbpw#wlobpwJmgf{Lewkqlvdk#kjpjp#gfpjdmfgwkf#wfqn#jpjp#sqlujgfgsqlwf`w#wkfmd?,b=?,oj=Wkf#`vqqfmwwkf#pjwf#lepvapwbmwjbof{sfqjfm`f/jm#wkf#Tfpwwkfz#pklvogpolufm(ajmb`lnfmwbqjlpvmjufqpjgbg`lmgj`jlmfpb`wjujgbgfpf{sfqjfm`jbwf`mlold/Absqlgv``j/_msvmwvb`j/_mbsoj`b`j/_m`lmwqbpf/]b`bwfdlq/Abpqfdjpwqbqpfsqlefpjlmbowqbwbnjfmwlqfd/Apwqbwfpf`qfwbq/Absqjm`jsbofpsqlwf``j/_mjnslqwbmwfpjnslqwbm`jbslpjajojgbgjmwfqfpbmwf`qf`jnjfmwlmf`fpjgbgfppvp`qjajqpfbpl`jb`j/_mgjpslmjaofpfubovb`j/_mfpwvgjbmwfpqfpslmpbaofqfplov`j/_mdvbgbobibqbqfdjpwqbglplslqwvmjgbg`lnfq`jbofpelwldqbe/Abbvwlqjgbgfpjmdfmjfq/Abwfofujpj/_m`lnsfwfm`jblsfqb`jlmfpfpwbaof`jglpjnsofnfmwfb`wvbonfmwfmbufdb`j/_m`lmelqnjgbgojmf.kfjdkw9elmw.ebnjoz9!#9#!kwws9,,bssoj`bwjlmpojmh!#kqfe>!psf`jej`booz,,?"X@GBWBX	Lqdbmjybwjlmgjpwqjavwjlm3s{8#kfjdkw9qfobwjlmpkjsgfuj`f.tjgwk?gju#`obpp>!?obafo#elq>!qfdjpwqbwjlm?,mlp`qjsw=	,jmgf{-kwno!tjmglt-lsfm+#"jnslqwbmw8bssoj`bwjlm,jmgfsfmgfm`f,,ttt-dlldoflqdbmjybwjlmbvwl`lnsofwfqfrvjqfnfmwp`lmpfqubwjuf?elqn#mbnf>!jmwfoof`wvbonbqdjm.ofew92;wk#`fmwvqzbm#jnslqwbmwjmpwjwvwjlmpbaaqfujbwjlm?jnd#`obpp>!lqdbmjpbwjlm`jujojybwjlm2:wk#`fmwvqzbq`kjwf`wvqfjm`lqslqbwfg13wk#`fmwvqz.`lmwbjmfq!=nlpw#mlwbaoz,=?,b=?,gju=mlwjej`bwjlm$vmgfejmfg$*Evqwkfqnlqf/afojfuf#wkbwjmmfqKWNO#>#sqjlq#wl#wkfgqbnbwj`boozqfefqqjmd#wlmfdlwjbwjlmpkfbgrvbqwfqpPlvwk#Beqj`bvmpv``fppevoSfmmpzoubmjbBp#b#qfpvow/?kwno#obmd>!%ow8,pvs%dw8gfbojmd#tjwkskjobgfoskjbkjpwlqj`booz*8?,p`qjsw=	sbggjmd.wls9f{sfqjnfmwbodfwBwwqjavwfjmpwqv`wjlmpwf`kmloldjfpsbqw#le#wkf#>evm`wjlm+*xpvap`qjswjlmo-gwg!=	?kwdfldqbskj`bo@lmpwjwvwjlm$/#evm`wjlm+pvsslqwfg#azbdqj`vowvqbo`lmpwqv`wjlmsvaoj`bwjlmpelmw.pjyf9#2b#ubqjfwz#le?gju#pwzof>!Fm`z`olsfgjbjeqbnf#pq`>!gfnlmpwqbwfgb``lnsojpkfgvmjufqpjwjfpGfnldqbskj`p*8?,p`qjsw=?gfgj`bwfg#wlhmltofgdf#lepbwjpeb`wjlmsbqwj`vobqoz?,gju=?,gju=Fmdojpk#+VP*bssfmg@kjog+wqbmpnjppjlmp-#Kltfufq/#jmwfoojdfm`f!#wbajmgf{>!eolbw9qjdkw8@lnnlmtfbowkqbmdjmd#eqlnjm#tkj`k#wkfbw#ofbpw#lmfqfsqlgv`wjlmfm`z`olsfgjb8elmw.pjyf92ivqjpgj`wjlmbw#wkbw#wjnf!=?b#`obpp>!Jm#bggjwjlm/gfp`qjswjlm(`lmufqpbwjlm`lmwb`w#tjwkjp#dfmfqboozq!#`lmwfmw>!qfsqfpfmwjmd%ow8nbwk%dw8sqfpfmwbwjlml``bpjlmbooz?jnd#tjgwk>!mbujdbwjlm!=`lnsfmpbwjlm`kbnsjlmpkjsnfgjb>!boo!#ujlobwjlm#leqfefqfm`f#wlqfwvqm#wqvf8Pwqj`w,,FM!#wqbmpb`wjlmpjmwfqufmwjlmufqjej`bwjlmJmelqnbwjlm#gjeej`vowjfp@kbnsjlmpkjs`bsbajojwjfp?"Xfmgje^..=~	?,p`qjsw=	@kqjpwjbmjwzelq#f{bnsof/Sqlefppjlmboqfpwqj`wjlmppvddfpw#wkbwtbp#qfofbpfg+pv`k#bp#wkfqfnluf@obpp+vmfnsolznfmwwkf#Bnfqj`bmpwqv`wvqf#le,jmgf{-kwno#svaojpkfg#jmpsbm#`obpp>!!=?b#kqfe>!,jmwqlgv`wjlmafolmdjmd#wl`objnfg#wkbw`lmpfrvfm`fp?nfwb#mbnf>!Dvjgf#wl#wkflufqtkfonjmdbdbjmpw#wkf#`lm`fmwqbwfg/	-mlmwlv`k#lapfqubwjlmp?,b=	?,gju=	e#+gl`vnfmw-alqgfq9#2s{#xelmw.pjyf92wqfbwnfmw#le3!#kfjdkw>!2nlgjej`bwjlmJmgfsfmgfm`fgjujgfg#jmwldqfbwfq#wkbmb`kjfufnfmwpfpwbaojpkjmdIbubP`qjsw!#mfufqwkfofpppjdmjej`bm`fAqlbg`bpwjmd=%maps8?,wg=`lmwbjmfq!=	pv`k#bp#wkf#jmeovfm`f#leb#sbqwj`vobqpq`>$kwws9,,mbujdbwjlm!#kboe#le#wkf#pvapwbmwjbo#%maps8?,gju=bgubmwbdf#legjp`lufqz#leevmgbnfmwbo#nfwqlslojwbmwkf#lsslpjwf!#{no9obmd>!gfojafqbwfozbojdm>`fmwfqfulovwjlm#lesqfpfqubwjlmjnsqlufnfmwpafdjmmjmd#jmIfpvp#@kqjpwSvaoj`bwjlmpgjpbdqffnfmwwf{w.bojdm9q/#evm`wjlm+*pjnjobqjwjfpalgz=?,kwno=jp#`vqqfmwozboskbafwj`bojp#plnfwjnfpwzsf>!jnbdf,nbmz#le#wkf#eolt9kjggfm8bubjobaof#jmgfp`qjaf#wkff{jpwfm`f#leboo#lufq#wkfwkf#Jmwfqmfw\n?vo#`obpp>!jmpwboobwjlmmfjdkalqkllgbqnfg#elq`fpqfgv`jmd#wkf`lmwjmvfp#wlMlmfwkfofpp/wfnsfqbwvqfp	\n\n?b#kqfe>!`olpf#wl#wkff{bnsofp#le#jp#balvw#wkf+pff#afolt*-!#jg>!pfbq`ksqlefppjlmbojp#bubjobaofwkf#leej`jbo\n\n?,p`qjsw=		\n\n?gju#jg>!b``fofqbwjlmwkqlvdk#wkf#Kboo#le#Ebnfgfp`qjswjlmpwqbmpobwjlmpjmwfqefqfm`f#wzsf>$wf{w,qf`fmw#zfbqpjm#wkf#tlqogufqz#slsvobqxab`hdqlvmg9wqbgjwjlmbo#plnf#le#wkf#`lmmf`wfg#wlf{soljwbwjlmfnfqdfm`f#le`lmpwjwvwjlmB#Kjpwlqz#lepjdmjej`bmw#nbmveb`wvqfgf{sf`wbwjlmp=?mlp`qjsw=?`bm#af#elvmgaf`bvpf#wkf#kbp#mlw#affmmfjdkalvqjmdtjwklvw#wkf#bggfg#wl#wkf\n?oj#`obpp>!jmpwqvnfmwboPlujfw#Vmjlmb`hmltofgdfgtkj`k#`bm#afmbnf#elq#wkfbwwfmwjlm#wlbwwfnswp#wl#gfufolsnfmwpJm#eb`w/#wkf?oj#`obpp>!bjnsoj`bwjlmppvjwbaof#elqnv`k#le#wkf#`lolmjybwjlmsqfpjgfmwjbo`bm`foAvaaof#Jmelqnbwjlmnlpw#le#wkf#jp#gfp`qjafgqfpw#le#wkf#nlqf#lq#ofppjm#PfswfnafqJmwfoojdfm`fpq`>!kwws9,,s{8#kfjdkw9#bubjobaof#wlnbmveb`wvqfqkvnbm#qjdkwpojmh#kqfe>!,bubjobajojwzsqlslqwjlmbolvwpjgf#wkf#bpwqlmlnj`bokvnbm#afjmdpmbnf#le#wkf#bqf#elvmg#jmbqf#abpfg#lmpnboofq#wkbmb#sfqplm#tklf{sbmpjlm#lebqdvjmd#wkbwmlt#hmltm#bpJm#wkf#fbqozjmwfqnfgjbwfgfqjufg#eqlnP`bmgjmbujbm?,b=?,gju=	`lmpjgfq#wkfbm#fpwjnbwfgwkf#Mbwjlmbo?gju#jg>!sbdqfpvowjmd#jm`lnnjppjlmfgbmboldlvp#wlbqf#qfrvjqfg,vo=	?,gju=	tbp#abpfg#lmbmg#af`bnf#b%maps8%maps8w!#ubovf>!!#tbp#`bswvqfgml#nlqf#wkbmqfpsf`wjufoz`lmwjmvf#wl#=	?kfbg=	?tfqf#`qfbwfgnlqf#dfmfqbojmelqnbwjlm#vpfg#elq#wkfjmgfsfmgfmw#wkf#Jnsfqjbo`lnslmfmw#lewl#wkf#mlqwkjm`ovgf#wkf#@lmpwqv`wjlmpjgf#le#wkf#tlvog#mlw#afelq#jmpwbm`fjmufmwjlm#lenlqf#`lnsof{`loof`wjufozab`hdqlvmg9#wf{w.bojdm9#jwp#lqjdjmbojmwl#b``lvmwwkjp#sql`fppbm#f{wfmpjufkltfufq/#wkfwkfz#bqf#mlwqfif`wfg#wkf`qjwj`jpn#legvqjmd#tkj`ksqlabaoz#wkfwkjp#bqwj`of+evm`wjlm+*xJw#pklvog#afbm#bdqffnfmwb``jgfmwboozgjeefqp#eqlnBq`kjwf`wvqfafwwfq#hmltmbqqbmdfnfmwpjmeovfm`f#lmbwwfmgfg#wkfjgfmwj`bo#wlplvwk#le#wkfsbpp#wkqlvdk{no!#wjwof>!tfjdkw9alog8`qfbwjmd#wkfgjpsobz9mlmfqfsob`fg#wkf?jnd#pq`>!,jkwwsp9,,ttt-Tlqog#Tbq#JJwfpwjnlmjbopelvmg#jm#wkfqfrvjqfg#wl#bmg#wkbw#wkfafwtffm#wkf#tbp#gfpjdmfg`lmpjpwp#le#`lmpjgfqbaozsvaojpkfg#azwkf#obmdvbdf@lmpfqubwjlm`lmpjpwfg#leqfefq#wl#wkfab`h#wl#wkf#`pp!#nfgjb>!Sflsof#eqln#bubjobaof#lmsqlufg#wl#afpvddfpwjlmp!tbp#hmltm#bpubqjfwjfp#leojhfoz#wl#af`lnsqjpfg#lepvsslqw#wkf#kbmgp#le#wkf`lvsofg#tjwk`lmmf`w#bmg#alqgfq9mlmf8sfqelqnbm`fpafelqf#afjmdobwfq#af`bnf`bo`vobwjlmplewfm#`boofgqfpjgfmwp#lenfbmjmd#wkbw=?oj#`obpp>!fujgfm`f#elqf{sobmbwjlmpfmujqlmnfmwp!=?,b=?,gju=tkj`k#booltpJmwqlgv`wjlmgfufolsfg#azb#tjgf#qbmdflm#afkboe#leubojdm>!wls!sqjm`jsof#lebw#wkf#wjnf/?,mlp`qjsw=pbjg#wl#kbufjm#wkf#ejqpwtkjof#lwkfqpkzslwkfwj`boskjolplskfqpsltfq#le#wkf`lmwbjmfg#jmsfqelqnfg#azjmbajojwz#wltfqf#tqjwwfmpsbm#pwzof>!jmsvw#mbnf>!wkf#rvfpwjlmjmwfmgfg#elqqfif`wjlm#lejnsojfp#wkbwjmufmwfg#wkfwkf#pwbmgbqgtbp#sqlabaozojmh#afwtffmsqlefpplq#lejmwfqb`wjlmp`kbmdjmd#wkfJmgjbm#L`fbm#`obpp>!obpwtlqhjmd#tjwk$kwws9,,ttt-zfbqp#afelqfWkjp#tbp#wkfqf`qfbwjlmbofmwfqjmd#wkfnfbpvqfnfmwpbm#f{wqfnfozubovf#le#wkfpwbqw#le#wkf	?,p`qjsw=		bm#feelqw#wljm`qfbpf#wkfwl#wkf#plvwkpsb`jmd>!3!=pveej`jfmwozwkf#Fvqlsfbm`lmufqwfg#wl`ofbqWjnflvwgjg#mlw#kbuf`lmpfrvfmwozelq#wkf#mf{wf{wfmpjlm#lef`lmlnj`#bmgbowklvdk#wkfbqf#sqlgv`fgbmg#tjwk#wkfjmpveej`jfmwdjufm#az#wkfpwbwjmd#wkbwf{sfmgjwvqfp?,psbm=?,b=	wklvdkw#wkbwlm#wkf#abpjp`foosbggjmd>jnbdf#le#wkfqfwvqmjmd#wljmelqnbwjlm/pfsbqbwfg#azbppbppjmbwfgp!#`lmwfmw>!bvwklqjwz#lemlqwktfpwfqm?,gju=	?gju#!=?,gju=	##`lmpvowbwjlm`lnnvmjwz#lewkf#mbwjlmbojw#pklvog#afsbqwj`jsbmwp#bojdm>!ofewwkf#dqfbwfpwpfof`wjlm#lepvsfqmbwvqbogfsfmgfmw#lmjp#nfmwjlmfgbooltjmd#wkftbp#jmufmwfgb``lnsbmzjmdkjp#sfqplmbobubjobaof#bwpwvgz#le#wkflm#wkf#lwkfqf{f`vwjlm#leKvnbm#Qjdkwpwfqnp#le#wkfbppl`jbwjlmpqfpfbq`k#bmgpv``ffgfg#azgfefbwfg#wkfbmg#eqln#wkfavw#wkfz#bqf`lnnbmgfq#lepwbwf#le#wkfzfbqp#le#bdfwkf#pwvgz#le?vo#`obpp>!psob`f#jm#wkftkfqf#kf#tbp?oj#`obpp>!ewkfqf#bqf#mltkj`k#af`bnfkf#svaojpkfgf{sqfppfg#jmwl#tkj`k#wkf`lnnjppjlmfqelmw.tfjdkw9wfqqjwlqz#lef{wfmpjlmp!=Qlnbm#Fnsjqffrvbo#wl#wkfJm#`lmwqbpw/kltfufq/#bmgjp#wzsj`boozbmg#kjp#tjef+bopl#`boofg=?vo#`obpp>!feef`wjufoz#fuloufg#jmwlpffn#wl#kbuftkj`k#jp#wkfwkfqf#tbp#mlbm#f{`foofmwboo#le#wkfpfgfp`qjafg#azJm#sqb`wj`f/aqlbg`bpwjmd`kbqdfg#tjwkqfeof`wfg#jmpvaif`wfg#wlnjojwbqz#bmgwl#wkf#sljmwf`lmlnj`boozpfwWbqdfwjmdbqf#b`wvboozuj`wlqz#lufq+*8?,p`qjsw=`lmwjmvlvpozqfrvjqfg#elqfulovwjlmbqzbm#feef`wjufmlqwk#le#wkf/#tkj`k#tbp#eqlmw#le#wkflq#lwkfqtjpfplnf#elqn#lekbg#mlw#affmdfmfqbwfg#azjmelqnbwjlm-sfqnjwwfg#wljm`ovgfp#wkfgfufolsnfmw/fmwfqfg#jmwlwkf#sqfujlvp`lmpjpwfmwozbqf#hmltm#bpwkf#ejfog#lewkjp#wzsf#ledjufm#wl#wkfwkf#wjwof#le`lmwbjmp#wkfjmpwbm`fp#lejm#wkf#mlqwkgvf#wl#wkfjqbqf#gfpjdmfg`lqslqbwjlmptbp#wkbw#wkflmf#le#wkfpfnlqf#slsvobqpv``ffgfg#jmpvsslqw#eqlnjm#gjeefqfmwglnjmbwfg#azgfpjdmfg#elqltmfqpkjs#lebmg#slppjaozpwbmgbqgjyfgqfpslmpfWf{wtbp#jmwfmgfgqf`fjufg#wkfbppvnfg#wkbwbqfbp#le#wkfsqjnbqjoz#jmwkf#abpjp#lejm#wkf#pfmpfb``lvmwp#elqgfpwqlzfg#azbw#ofbpw#wtltbp#gf`obqfg`lvog#mlw#afPf`qfwbqz#lebssfbq#wl#afnbqdjm.wls92,]_p(\x7F_p(\',df*xwkqlt#f~8wkf#pwbqw#lewtl#pfsbqbwfobmdvbdf#bmgtkl#kbg#affmlsfqbwjlm#legfbwk#le#wkfqfbo#mvnafqp\n?ojmh#qfo>!sqlujgfg#wkfwkf#pwlqz#le`lnsfwjwjlmpfmdojpk#+VH*fmdojpk#+VP*<p<R<Q<_<R<W<M=l<S=m<V<T=m=l<S=m<V<T=m=l<S=m<V<R5h4U4]4D5f4E\nAOGx\bTA\nzk\vBl\bQ\x7F\bTA\nzk\vUm\bQ\x7F\bTA\nzk\npeu|	i@	cT\bVV\n\\}\nxS	VptSk`	[X	[X\vHR\bPv\bTW\bUe\n\x7Fa\bQp\v_W\vWs\nxS\vAz\n_yKhjmelqnb`j/_mkfqqbnjfmwbpfof`wq/_mj`lgfp`qjs`j/_m`obpjej`bglp`lml`jnjfmwlsvaoj`b`j/_mqfob`jlmbgbpjmelqn/Mwj`bqfob`jlmbglpgfsbqwbnfmwlwqbabibglqfpgjqf`wbnfmwfbzvmwbnjfmwlnfq`bglOjaqf`lmw/M`wfmlpkbajwb`jlmfp`vnsojnjfmwlqfpwbvqbmwfpgjpslpj`j/_m`lmpf`vfm`jbfof`wq/_mj`bbsoj`b`jlmfpgfp`lmf`wbgljmpwbob`j/_mqfbojyb`j/_mvwjojyb`j/_mfm`j`olsfgjbfmefqnfgbgfpjmpwqvnfmwlpf{sfqjfm`jbpjmpwjwv`j/_msbqwj`vobqfppva`bwfdlqjb=n<R<W=`<V<R<L<R=m=m<T<T=l<\\<]<R=n=g<]<R<W=`=d<Y<S=l<R=m=n<R<P<R<Z<Y=n<Y<X=l=o<_<T=i=m<W=o=k<\\<Y=m<Y<U=k<\\=m<^=m<Y<_<X<\\<L<R=m=m<T=c<p<R=m<V<^<Y<X=l=o<_<T<Y<_<R=l<R<X<\\<^<R<S=l<R=m<X<\\<Q<Q=g=i<X<R<W<Z<Q=g<T<P<Y<Q<Q<R<p<R=m<V<^=g=l=o<]<W<Y<U<p<R=m<V<^<\\=m=n=l<\\<Q=g<Q<T=k<Y<_<R=l<\\<]<R=n<Y<X<R<W<Z<Y<Q=o=m<W=o<_<T=n<Y<S<Y=l=`<r<X<Q<\\<V<R<S<R=n<R<P=o=l<\\<]<R=n=o<\\<S=l<Y<W=c<^<R<R<]=e<Y<R<X<Q<R<_<R=m<^<R<Y<_<R=m=n<\\=n=`<T<X=l=o<_<R<U=h<R=l=o<P<Y=i<R=l<R=d<R<S=l<R=n<T<^=m=m=g<W<V<\\<V<\\<Z<X=g<U<^<W<\\=m=n<T<_=l=o<S<S=g<^<P<Y=m=n<Y=l<\\<]<R=n<\\=m<V<\\<[<\\<W<S<Y=l<^=g<U<X<Y<W<\\=n=`<X<Y<Q=`<_<T<S<Y=l<T<R<X<]<T<[<Q<Y=m<R=m<Q<R<^<Y<P<R<P<Y<Q=n<V=o<S<T=n=`<X<R<W<Z<Q<\\=l<\\<P<V<\\=i<Q<\\=k<\\<W<R<L<\\<]<R=n<\\<N<R<W=`<V<R=m<R<^=m<Y<P<^=n<R=l<R<U<Q<\\=k<\\<W<\\=m<S<T=m<R<V=m<W=o<Z<]=g=m<T=m=n<Y<P<S<Y=k<\\=n<T<Q<R<^<R<_<R<S<R<P<R=e<T=m<\\<U=n<R<^<S<R=k<Y<P=o<S<R<P<R=e=`<X<R<W<Z<Q<R=m=m=g<W<V<T<]=g=m=n=l<R<X<\\<Q<Q=g<Y<P<Q<R<_<T<Y<S=l<R<Y<V=n<M<Y<U=k<\\=m<P<R<X<Y<W<T=n<\\<V<R<_<R<R<Q<W<\\<U<Q<_<R=l<R<X<Y<^<Y=l=m<T=c=m=n=l<\\<Q<Y=h<T<W=`<P=g=o=l<R<^<Q=c=l<\\<[<Q=g=i<T=m<V<\\=n=`<Q<Y<X<Y<W=b=c<Q<^<\\=l=c<P<Y<Q=`=d<Y<P<Q<R<_<T=i<X<\\<Q<Q<R<U<[<Q<\\=k<T=n<Q<Y<W=`<[=c=h<R=l=o<P<\\<N<Y<S<Y=l=`<P<Y=m=c=j<\\<[<\\=e<T=n=g<w=o=k=d<T<Y\fHD\fHU\fIl\fHn\fHy\fH\\\fHD\fIk\fHi\fHF\fHD\fIk\fHy\fHS\fHC\fHR\fHy\fH\\\fIk\fHn\fHi\fHD\fIa\fHC\fHy\fIa\fHC\fHR\fH{\fHR\fHk\fHM\fH@\fHR\fH\\\fIk\fHy\fHS\fHT\fIl\fHJ\fHS\fHC\fHR\fHF\fHU\fH^\fIk\fHT\fHS\fHn\fHU\fHA\fHR\fH\\\fHH\fHi\fHF\fHD\fIl\fHY\fHR\fH^\fIk\fHT\fIk\fHY\fHR\fHy\fH\\\fHH\fIk\fHB\fIk\fH\\\fIk\fHU\fIg\fHD\fIk\fHT\fHy\fHH\fIk\fH@\fHU\fIm\fHH\fHT\fHR\fHk\fHs\fHU\fIg\fH{\fHR\fHp\fHR\fHD\fIk\fHB\fHS\fHD\fHs\fHy\fH\\\fHH\fHR\fHy\fH\\\fHD\fHR\fHe\fHD\fHy\fIk\fHC\fHU\fHR\fHm\fHT\fH@\fHT\fIk\fHA\fHR\fH[\fHR\fHj\fHF\fHy\fIk\fH^\fHS\fHC\fIk\fHZ\fIm\fH\\\fIn\fHk\fHT\fHy\fIk\fHt\fHn\fHs\fIk\fHB\fIk\fH\\\fIl\fHT\fHy\fHH\fHR\fHB\fIk\fH\\\fHR\fH^\fIk\fHy\fH\\\fHi\fHK\fHS\fHy\fHi\fHF\fHD\fHR\fHT\fHB\fHR\fHp\fHB\fIm\fHq\fIk\fHy\fHR\fH\\\fHO\fHU\fIg\fHH\fHR\fHy\fHM\fHP\fIl\fHC\fHU\fHR\fHn\fHU\fIg\fHs\fH^\fHZ\fH@\fIa\fHJ\fH^\fHS\fHC\fHR\fHp\fIl\fHY\fHD\fHp\fHR\fHH\fHR\fHy\fId\fHT\fIk\fHj\fHF\fHy\fHR\fHY\fHR\fH^\fIl\fHJ\fIk\fHD\fIk\fHF\fIn\fH\\\fIl\fHF\fHR\fHD\fIl\fHe\fHT\fHy\fIk\fHU\fIg\fH{\fIl\fH@\fId\fHL\fHy\fHj\fHF\fHy\fIl\fHY\fH\\\fIa\fH[\fH{\fHR\fHn\fHY\fHj\fHF\fHy\fIg\fHp\fHS\fH^\fHR\fHp\fHR\fHD\fHR\fHT\fHU\fHB\fHH\fHU\fHB\fIk\fHn\fHe\fHD\fHy\fIl\fHC\fHR\fHU\fIn\fHJ\fH\\\fIa\fHp\fHT\fIn\fHv\fIl\fHF\fHT\fHn\fHJ\fHT\fHY\fHR\fH^\fHU\fIg\fHD\fHR\fHU\fIg\fHH\fIl\fHp\fId\fHT\fIk\fHY\fHR\fHF\fHT\fHp\fHD\fHH\fHR\fHD\fIk\fHH\fHR\fHp\fHR\fH\\\fIl\fHt\fHR\fHC\fH^\fHp\fHS\fH^\fIk\fHD\fIl\fHv\fIk\fHp\fHR\fHn\fHv\fHF\fHH\fIa\fH\\\fH{\fIn\fH{\fH^\fHp\fHR\fHH\fIk\fH@\fHR\fHU\fH\\\fHj\fHF\fHD\fIk\fHY\fHR\fHU\fHD\fHk\fHT\fHy\fHR\fHT\fIm\fH@\fHU\fH\\\fHU\fHD\fIk\fHk\fHT\fHT\fIk\fHT\fHU\fHS\fHH\fH@\fHM\fHP\fIk\fHt\fHs\fHD\fHR\fHH\fH^\fHR\fHZ\fHF\fHR\fHn\fHv\fHZ\fIa\fH\\\fIl\fH@\fHM\fHP\fIl\fHU\fIg\fHH\fIk\fHT\fHR\fHd\fHs\fHZ\fHR\fHC\fHJ\fHT\fHy\fHH\fIl\fHp\fHR\fHH\fIl\fHY\fHR\fH^\fHR\fHU\fHp\fHR\fH\\\fHF\fHs\fHD\fHR\fH\\\fHz\fHD\fIk\fHT\fHM\fHP\fHy\fHB\fHS\fH^\fHR\fHe\fHT\fHy\fIl\fHy\fIk\fHY\fH^\fH^\fH{\fHH\fHR\fHz\fHR\fHD\fHR\fHi\fH\\\fIa\fHI\fHp\fHU\fHR\fHn\fHJ\fIk\fHz\fHR\fHF\fHU\fH^\fIl\fHD\fHS\fHC\fHB\fH@\fHS\fHD\fHR\fH@\fId\fHn\fHy\fHy\fHU\fIl\fHn\fHy\fHU\fHD\fHR\fHJ\fIk\fHH\fHR\fHU\fHB\fH^\fIk\fHy\fHR\fHG\fIl\fHp\fH@\fHy\fHS\fHH\fIm\fH\\\fHH\fHB\fHR\fHn\fH{\fHY\fHU\fIl\fHn\fH\\\fIg\fHp\fHP\fHB\fHS\fH^\fIl\fHj\fH\\\fIg\fHF\fHT\fIk\fHD\fHR\fHC\fHR\fHJ\fHY\fH^\fIk\fHD\fIk\fHz\fHR\fHH\fHR\fHy\fH\\\fIl\fH@\fHe\fHD\fHy\fHR\fHp\fHY\fHR\fH@\fHF\fIn\fH\\\fHR\fH@\fHM\fHP\fHR\fHT\fI`\fHJ\fHR\fHZ\fIk\fHC\fH\\\fHy\fHS\fHC\fIk\fHy\fHU\fHR\fHn\fHi\fHy\fHT\fH\\\fH@\fHD\fHR\fHc\fHY\fHU\fHR\fHn\fHT\fIa\fHI\fH^\fHB\fHS\fH^\fIk\fH^\fIk\fHz\fHy\fHY\fHS\fH[\fHC\fHy\fIa\fH\\\fHn\fHT\fHB\fIn\fHU\fHI\fHR\fHD\fHR4F4_4F4[5f4U5i4X4K4]5o4E4D5d4K4_4[4E4K5h4Y5m4A4E5i5d4K4Z5f4U4K5h4B4K4Y4E4K5h5i4^5f4C4K5h4U4K5i4E4K5h5o4K4F4D4K5h4]4C5d4C4D4]5j4K5i4@4K5h4C5d5h4E4K5h4U4K5h5i4K5h5i5d5n4U4K5h4U4]4D5f4K5h4_4]5f4U4K5h4@5d4K5h4K5h4\\5k4K4D4K5h4A5f4K4E4K5h4A5n5d5n4K5h5o4]5f5i4K5h4U4]4K5n5i4A5m5d4T4E4K5h4G4K5j5f5i4X4K5k4C4E4K5h5i4]4O4E4K5h5n4]4N5j4K5h4X4D4K4D4K5h4A5d4K4]4K5h4@4C5f4C4K5h4O4_4]4E4K5h4U5h5d5i5i4@5i5d4U4E4K5h4]4A5i5j4K5h5j5n4K4[5m5h4_4[5f5j4K5h5o5d5f4F4K5h4C5j5f4K4D4]5o4K4F5k4K5h4]5f4K4Z4F4A5f4K4F5f4D4F5d5n5f4F4K5h4O5d5h5e4K5h4D4]5f4C4K5h5o5h4K5i4K5h4]4K4D4[4K5h4X4B4Y5f4_5f4K4]4K4F4K5h4G4K5h4G4K5h4Y5h4K4E4K5h4A4C5f4G4K5h4^5d4K4]4K5h4B5h5f4@4K5h4@5i5f4U4K5h4U4K5i5k4K5h4@5i4K5h4K5h4_4K4U4E5i4X4K5k4C5k4K5h4]4J5f4_4K5h4C4B5d5h4K5h5m5j5f4E4K5h5o4F4K4D4K5h4C5d4]5f4K5h4C4]5d4_4K4_4F4V4]5n4F4Y4K5i5f5i4K5h4D5j4K4F4K5h4U4T5f5ifmwfqwbjmnfmwvmgfqpwbmgjmd#>#evm`wjlm+*-isd!#tjgwk>!`lmejdvqbwjlm-smd!#tjgwk>!?algz#`obpp>!Nbwk-qbmgln+*`lmwfnslqbqz#Vmjwfg#Pwbwfp`jq`vnpwbm`fp-bssfmg@kjog+lqdbmjybwjlmp?psbm#`obpp>!!=?jnd#pq`>!,gjpwjmdvjpkfgwklvpbmgp#le#`lnnvmj`bwjlm`ofbq!=?,gju=jmufpwjdbwjlmebuj`lm-j`l!#nbqdjm.qjdkw9abpfg#lm#wkf#Nbppb`kvpfwwpwbaof#alqgfq>jmwfqmbwjlmbobopl#hmltm#bpsqlmvm`jbwjlmab`hdqlvmg9 esbggjmd.ofew9Elq#f{bnsof/#njp`foobmflvp%ow8,nbwk%dw8spz`kloldj`bojm#sbqwj`vobqfbq`k!#wzsf>!elqn#nfwklg>!bp#lsslpfg#wlPvsqfnf#@lvqwl``bpjlmbooz#Bggjwjlmbooz/Mlqwk#Bnfqj`bs{8ab`hdqlvmglsslqwvmjwjfpFmwfqwbjmnfmw-wlOltfq@bpf+nbmveb`wvqjmdsqlefppjlmbo#`lnajmfg#tjwkElq#jmpwbm`f/`lmpjpwjmd#le!#nb{ofmdwk>!qfwvqm#ebopf8`lmp`jlvpmfppNfgjwfqqbmfbmf{wqblqgjmbqzbppbppjmbwjlmpvapfrvfmwoz#avwwlm#wzsf>!wkf#mvnafq#lewkf#lqjdjmbo#`lnsqfkfmpjufqfefqp#wl#wkf?,vo=	?,gju=	skjolplskj`bool`bwjlm-kqfetbp#svaojpkfgPbm#Eqbm`jp`l+evm`wjlm+*x	?gju#jg>!nbjmplskjpwj`bwfgnbwkfnbwj`bo#,kfbg=	?algzpvddfpwp#wkbwgl`vnfmwbwjlm`lm`fmwqbwjlmqfobwjlmpkjspnbz#kbuf#affm+elq#f{bnsof/Wkjp#bqwj`of#jm#plnf#`bpfpsbqwp#le#wkf#gfejmjwjlm#leDqfbw#Aqjwbjm#`foosbggjmd>frvjubofmw#wlsob`fklogfq>!8#elmw.pjyf9#ivpwjej`bwjlmafojfufg#wkbwpveefqfg#eqlnbwwfnswfg#wl#ofbgfq#le#wkf`qjsw!#pq`>!,+evm`wjlm+*#xbqf#bubjobaof	\n?ojmh#qfo>!#pq`>$kwws9,,jmwfqfpwfg#jm`lmufmwjlmbo#!#bow>!!#,=?,bqf#dfmfqboozkbp#bopl#affmnlpw#slsvobq#`lqqfpslmgjmd`qfgjwfg#tjwkwzof>!alqgfq9?,b=?,psbm=?,-dje!#tjgwk>!?jeqbnf#pq`>!wbaof#`obpp>!jmojmf.aol`h8b``lqgjmd#wl#wldfwkfq#tjwkbssql{jnbwfozsbqojbnfmwbqznlqf#bmg#nlqfgjpsobz9mlmf8wqbgjwjlmboozsqfglnjmbmwoz%maps8\x7F%maps8%maps8?,psbm=#`foopsb`jmd>?jmsvw#mbnf>!lq!#`lmwfmw>!`lmwqlufqpjbosqlsfqwz>!ld9,{.pkl`htbuf.gfnlmpwqbwjlmpvqqlvmgfg#azMfufqwkfofpp/tbp#wkf#ejqpw`lmpjgfqbaof#Bowklvdk#wkf#`loobalqbwjlmpklvog#mlw#afsqlslqwjlm#le?psbm#pwzof>!hmltm#bp#wkf#pklqwoz#bewfqelq#jmpwbm`f/gfp`qjafg#bp#,kfbg=	?algz#pwbqwjmd#tjwkjm`qfbpjmdoz#wkf#eb`w#wkbwgjp`vppjlm#lenjggof#le#wkfbm#jmgjujgvbogjeej`vow#wl#sljmw#le#ujftklnlpf{vbojwzb``fswbm`f#le?,psbm=?,gju=nbmveb`wvqfqplqjdjm#le#wkf`lnnlmoz#vpfgjnslqwbm`f#legfmlnjmbwjlmpab`hdqlvmg9# ofmdwk#le#wkfgfwfqnjmbwjlmb#pjdmjej`bmw!#alqgfq>!3!=qfulovwjlmbqzsqjm`jsofp#lejp#`lmpjgfqfgtbp#gfufolsfgJmgl.Fvqlsfbmuvomfqbaof#wlsqlslmfmwp#lebqf#plnfwjnfp`olpfq#wl#wkfMft#Zlqh#@jwz#mbnf>!pfbq`kbwwqjavwfg#wl`lvqpf#le#wkfnbwkfnbwj`jbmaz#wkf#fmg#lebw#wkf#fmg#le!#alqgfq>!3!#wf`kmloldj`bo-qfnluf@obpp+aqbm`k#le#wkffujgfm`f#wkbw"Xfmgje^..=	Jmpwjwvwf#le#jmwl#b#pjmdofqfpsf`wjufoz-bmg#wkfqfelqfsqlsfqwjfp#lejp#ol`bwfg#jmplnf#le#tkj`kWkfqf#jp#bopl`lmwjmvfg#wl#bssfbqbm`f#le#%bns8mgbpk8#gfp`qjafp#wkf`lmpjgfqbwjlmbvwklq#le#wkfjmgfsfmgfmwozfrvjssfg#tjwkglfp#mlw#kbuf?,b=?b#kqfe>!`lmevpfg#tjwk?ojmh#kqfe>!,bw#wkf#bdf#lebssfbq#jm#wkfWkfpf#jm`ovgfqfdbqgofpp#le`lvog#af#vpfg#pwzof>%rvlw8pfufqbo#wjnfpqfsqfpfmw#wkfalgz=	?,kwno=wklvdkw#wl#afslsvobwjlm#leslppjajojwjfpsfq`fmwbdf#leb``fpp#wl#wkfbm#bwwfnsw#wlsqlgv`wjlm#leirvfqz,irvfqzwtl#gjeefqfmwafolmd#wl#wkffpwbaojpknfmwqfsob`jmd#wkfgfp`qjswjlm!#gfwfqnjmf#wkfbubjobaof#elqB``lqgjmd#wl#tjgf#qbmdf#le\n?gju#`obpp>!nlqf#`lnnlmozlqdbmjpbwjlmpevm`wjlmbojwztbp#`lnsofwfg#%bns8ngbpk8#sbqwj`jsbwjlmwkf#`kbqb`wfqbm#bggjwjlmbobssfbqp#wl#afeb`w#wkbw#wkfbm#f{bnsof#lepjdmjej`bmwozlmnlvpflufq>!af`bvpf#wkfz#bpzm`#>#wqvf8sqlaofnp#tjwkpffnp#wl#kbufwkf#qfpvow#le#pq`>!kwws9,,ebnjojbq#tjwkslppfppjlm#leevm`wjlm#+*#xwllh#sob`f#jmbmg#plnfwjnfppvapwbmwjbooz?psbm=?,psbm=jp#lewfm#vpfgjm#bm#bwwfnswdqfbw#gfbo#leFmujqlmnfmwbopv``fppevooz#ujqwvbooz#boo13wk#`fmwvqz/sqlefppjlmbopmf`fppbqz#wl#gfwfqnjmfg#az`lnsbwjajojwzaf`bvpf#jw#jpGj`wjlmbqz#lenlgjej`bwjlmpWkf#elooltjmdnbz#qfefq#wl9@lmpfrvfmwoz/Jmwfqmbwjlmbobowklvdk#plnfwkbw#tlvog#aftlqog$p#ejqpw`obppjejfg#bpalwwln#le#wkf+sbqwj`vobqozbojdm>!ofew!#nlpw#`lnnlmozabpjp#elq#wkfelvmgbwjlm#le`lmwqjavwjlmpslsvobqjwz#le`fmwfq#le#wkfwl#qfgv`f#wkfivqjpgj`wjlmpbssql{jnbwjlm#lmnlvpflvw>!Mft#Wfpwbnfmw`loof`wjlm#le?,psbm=?,b=?,jm#wkf#Vmjwfgejon#gjqf`wlq.pwqj`w-gwg!=kbp#affm#vpfgqfwvqm#wl#wkfbowklvdk#wkjp`kbmdf#jm#wkfpfufqbo#lwkfqavw#wkfqf#bqfvmsqf`fgfmwfgjp#pjnjobq#wlfpsf`jbooz#jmtfjdkw9#alog8jp#`boofg#wkf`lnsvwbwjlmbojmgj`bwf#wkbwqfpwqj`wfg#wl\n?nfwb#mbnf>!bqf#wzsj`booz`lmeoj`w#tjwkKltfufq/#wkf#Bm#f{bnsof#le`lnsbqfg#tjwkrvbmwjwjfp#leqbwkfq#wkbm#b`lmpwfoobwjlmmf`fppbqz#elqqfslqwfg#wkbwpsf`jej`bwjlmslojwj`bo#bmg%maps8%maps8?qfefqfm`fp#wlwkf#pbnf#zfbqDlufqmnfmw#ledfmfqbwjlm#lekbuf#mlw#affmpfufqbo#zfbqp`lnnjwnfmw#wl\n\n?vo#`obpp>!ujpvbojybwjlm2:wk#`fmwvqz/sqb`wjwjlmfqpwkbw#kf#tlvogbmg#`lmwjmvfgl``vsbwjlm#lejp#gfejmfg#bp`fmwqf#le#wkfwkf#bnlvmw#le=?gju#pwzof>!frvjubofmw#legjeefqfmwjbwfaqlvdkw#balvwnbqdjm.ofew9#bvwlnbwj`boozwklvdkw#le#bpPlnf#le#wkfpf	?gju#`obpp>!jmsvw#`obpp>!qfsob`fg#tjwkjp#lmf#le#wkffgv`bwjlm#bmgjmeovfm`fg#azqfsvwbwjlm#bp	?nfwb#mbnf>!b``lnnlgbwjlm?,gju=	?,gju=obqdf#sbqw#leJmpwjwvwf#elqwkf#pl.`boofg#bdbjmpw#wkf#Jm#wkjp#`bpf/tbp#bssljmwfg`objnfg#wl#afKltfufq/#wkjpGfsbqwnfmw#lewkf#qfnbjmjmdfeef`w#lm#wkfsbqwj`vobqoz#gfbo#tjwk#wkf	?gju#pwzof>!bonlpw#botbzpbqf#`vqqfmwozf{sqfppjlm#leskjolplskz#leelq#nlqf#wkbm`jujojybwjlmplm#wkf#jpobmgpfof`wfgJmgf{`bm#qfpvow#jm!#ubovf>!!#,=wkf#pwqv`wvqf#,=?,b=?,gju=Nbmz#le#wkfpf`bvpfg#az#wkfle#wkf#Vmjwfgpsbm#`obpp>!n`bm#af#wqb`fgjp#qfobwfg#wlaf`bnf#lmf#lejp#eqfrvfmwozojujmd#jm#wkfwkflqfwj`boozElooltjmd#wkfQfulovwjlmbqzdlufqmnfmw#jmjp#gfwfqnjmfgwkf#slojwj`bojmwqlgv`fg#jmpveej`jfmw#wlgfp`qjswjlm!=pklqw#pwlqjfppfsbqbwjlm#lebp#wl#tkfwkfqhmltm#elq#jwptbp#jmjwjboozgjpsobz9aol`hjp#bm#f{bnsofwkf#sqjm`jsbo`lmpjpwp#le#bqf`ldmjyfg#bp,algz=?,kwno=b#pvapwbmwjboqf`lmpwqv`wfgkfbg#le#pwbwfqfpjpwbm`f#wlvmgfqdqbgvbwfWkfqf#bqf#wtldqbujwbwjlmbobqf#gfp`qjafgjmwfmwjlmboozpfqufg#bp#wkf`obpp>!kfbgfqlsslpjwjlm#wlevmgbnfmwboozglnjmbwfg#wkfbmg#wkf#lwkfqboojbm`f#tjwktbp#elq`fg#wlqfpsf`wjufoz/bmg#slojwj`bojm#pvsslqw#lesflsof#jm#wkf13wk#`fmwvqz-bmg#svaojpkfgolbg@kbqwafbwwl#vmgfqpwbmgnfnafq#pwbwfpfmujqlmnfmwboejqpw#kboe#le`lvmwqjfp#bmgbq`kjwf`wvqboaf#`lmpjgfqfg`kbqb`wfqjyfg`ofbqJmwfqubobvwklqjwbwjufEfgfqbwjlm#letbp#pv``ffgfgbmg#wkfqf#bqfb#`lmpfrvfm`fwkf#Sqfpjgfmwbopl#jm`ovgfgeqff#plewtbqfpv``fppjlm#legfufolsfg#wkftbp#gfpwqlzfgbtbz#eqln#wkf8	?,p`qjsw=	?bowklvdk#wkfzelooltfg#az#bnlqf#sltfqevoqfpvowfg#jm#bVmjufqpjwz#leKltfufq/#nbmzwkf#sqfpjgfmwKltfufq/#plnfjp#wklvdkw#wlvmwjo#wkf#fmgtbp#bmmlvm`fgbqf#jnslqwbmwbopl#jm`ovgfp=?jmsvw#wzsf>wkf#`fmwfq#le#GL#MLW#BOWFQvpfg#wl#qfefqwkfnfp,<plqw>wkbw#kbg#affmwkf#abpjp#elqkbp#gfufolsfgjm#wkf#pvnnfq`lnsbqbwjufozgfp`qjafg#wkfpv`k#bp#wklpfwkf#qfpvowjmdjp#jnslppjaofubqjlvp#lwkfqPlvwk#Beqj`bmkbuf#wkf#pbnffeef`wjufmfppjm#tkj`k#`bpf8#wf{w.bojdm9pwqv`wvqf#bmg8#ab`hdqlvmg9qfdbqgjmd#wkfpvsslqwfg#wkfjp#bopl#hmltmpwzof>!nbqdjmjm`ovgjmd#wkfabkbpb#Nfobzvmlqph#alhn/Iomlqph#mzmlqphpolufm)M(ajmbjmwfqmb`jlmbo`bojej`b`j/_m`lnvmj`b`j/_m`lmpwqv``j/_m!=?gju#`obpp>!gjpbnajdvbwjlmGlnbjmMbnf$/#$bgnjmjpwqbwjlmpjnvowbmflvpozwqbmpslqwbwjlmJmwfqmbwjlmbo#nbqdjm.alwwln9qfpslmpjajojwz?"Xfmgje^..=	?,=?nfwb#mbnf>!jnsofnfmwbwjlmjmeqbpwqv`wvqfqfsqfpfmwbwjlmalqgfq.alwwln9?,kfbg=	?algz=>kwws&0B&1E&1E?elqn#nfwklg>!nfwklg>!slpw!#,ebuj`lm-j`l!#~*8	?,p`qjsw=	-pfwBwwqjavwf+Bgnjmjpwqbwjlm>#mft#Bqqbz+*8?"Xfmgje^..=	gjpsobz9aol`h8Vmelqwvmbwfoz/!=%maps8?,gju=,ebuj`lm-j`l!=>$pwzofpkffw$#jgfmwjej`bwjlm/#elq#f{bnsof/?oj=?b#kqfe>!,bm#bowfqmbwjufbp#b#qfpvow#lesw!=?,p`qjsw=	wzsf>!pvanjw!#	+evm`wjlm+*#xqf`lnnfmgbwjlmelqn#b`wjlm>!,wqbmpelqnbwjlmqf`lmpwqv`wjlm-pwzof-gjpsobz#B``lqgjmd#wl#kjggfm!#mbnf>!bolmd#tjwk#wkfgl`vnfmw-algz-bssql{jnbwfoz#@lnnvmj`bwjlmpslpw!#b`wjlm>!nfbmjmd#%rvlw8..?"Xfmgje^..=Sqjnf#Njmjpwfq`kbqb`wfqjpwj`?,b=#?b#`obpp>wkf#kjpwlqz#le#lmnlvpflufq>!wkf#dlufqmnfmwkqfe>!kwwsp9,,tbp#lqjdjmbooztbp#jmwqlgv`fg`obppjej`bwjlmqfsqfpfmwbwjufbqf#`lmpjgfqfg?"Xfmgje^..=		gfsfmgp#lm#wkfVmjufqpjwz#le#jm#`lmwqbpw#wl#sob`fklogfq>!jm#wkf#`bpf#lejmwfqmbwjlmbo#`lmpwjwvwjlmbopwzof>!alqgfq.9#evm`wjlm+*#xAf`bvpf#le#wkf.pwqj`w-gwg!=	?wbaof#`obpp>!b``lnsbmjfg#azb``lvmw#le#wkf?p`qjsw#pq`>!,mbwvqf#le#wkf#wkf#sflsof#jm#jm#bggjwjlm#wlp*8#ip-jg#>#jg!#tjgwk>!233&!qfdbqgjmd#wkf#Qlnbm#@bwkloj`bm#jmgfsfmgfmwelooltjmd#wkf#-dje!#tjgwk>!2wkf#elooltjmd#gjp`qjnjmbwjlmbq`kbfloldj`bosqjnf#njmjpwfq-ip!=?,p`qjsw=`lnajmbwjlm#le#nbqdjmtjgwk>!`qfbwfFofnfmw+t-bwwb`kFufmw+?,b=?,wg=?,wq=pq`>!kwwsp9,,bJm#sbqwj`vobq/#bojdm>!ofew!#@yf`k#Qfsvaoj`Vmjwfg#Hjmdgln`lqqfpslmgfm`f`lm`ovgfg#wkbw-kwno!#wjwof>!+evm`wjlm#+*#x`lnfp#eqln#wkfbssoj`bwjlm#le?psbm#`obpp>!pafojfufg#wl#affnfmw+$p`qjsw$?,b=	?,oj=	?ojufqz#gjeefqfmw=?psbm#`obpp>!lswjlm#ubovf>!+bopl#hmltm#bp\n?oj=?b#kqfe>!=?jmsvw#mbnf>!pfsbqbwfg#eqlnqfefqqfg#wl#bp#ubojdm>!wls!=elvmgfq#le#wkfbwwfnswjmd#wl#`bqalm#gjl{jgf		?gju#`obpp>!`obpp>!pfbq`k.,algz=	?,kwno=lsslqwvmjwz#wl`lnnvmj`bwjlmp?,kfbg=	?algz#pwzof>!tjgwk9Wj\rVSmd#Uj\rWkw`kbmdfp#jm#wkfalqgfq.`lolq9 3!#alqgfq>!3!#?,psbm=?,gju=?tbp#gjp`lufqfg!#wzsf>!wf{w!#*8	?,p`qjsw=		Gfsbqwnfmw#le#f``ofpjbpwj`bowkfqf#kbp#affmqfpvowjmd#eqln?,algz=?,kwno=kbp#mfufq#affmwkf#ejqpw#wjnfjm#qfpslmpf#wlbvwlnbwj`booz#?,gju=		?gju#jtbp#`lmpjgfqfgsfq`fmw#le#wkf!#,=?,b=?,gju=`loof`wjlm#le#gfp`fmgfg#eqlnpf`wjlm#le#wkfb``fsw.`kbqpfwwl#af#`lmevpfgnfnafq#le#wkf#sbggjmd.qjdkw9wqbmpobwjlm#lejmwfqsqfwbwjlm#kqfe>$kwws9,,tkfwkfq#lq#mlwWkfqf#bqf#boplwkfqf#bqf#nbmzb#pnboo#mvnafqlwkfq#sbqwp#lejnslppjaof#wl##`obpp>!avwwlmol`bwfg#jm#wkf-#Kltfufq/#wkfbmg#fufmwvboozBw#wkf#fmg#le#af`bvpf#le#jwpqfsqfpfmwp#wkf?elqn#b`wjlm>!#nfwklg>!slpw!jw#jp#slppjaofnlqf#ojhfoz#wlbm#jm`qfbpf#jmkbuf#bopl#affm`lqqfpslmgp#wlbmmlvm`fg#wkbwbojdm>!qjdkw!=nbmz#`lvmwqjfpelq#nbmz#zfbqpfbqojfpw#hmltmaf`bvpf#jw#tbpsw!=?,p`qjsw=#ubojdm>!wls!#jmkbajwbmwp#leelooltjmd#zfbq	?gju#`obpp>!njoojlm#sflsof`lmwqlufqpjbo#`lm`fqmjmd#wkfbqdvf#wkbw#wkfdlufqmnfmw#bmgb#qfefqfm`f#wlwqbmpefqqfg#wlgfp`qjajmd#wkf#pwzof>!`lolq9bowklvdk#wkfqfafpw#hmltm#elqpvanjw!#mbnf>!nvowjsoj`bwjlmnlqf#wkbm#lmf#qf`ldmjwjlm#le@lvm`jo#le#wkffgjwjlm#le#wkf##?nfwb#mbnf>!Fmwfqwbjmnfmw#btbz#eqln#wkf#8nbqdjm.qjdkw9bw#wkf#wjnf#lejmufpwjdbwjlmp`lmmf`wfg#tjwkbmg#nbmz#lwkfqbowklvdk#jw#jpafdjmmjmd#tjwk#?psbm#`obpp>!gfp`fmgbmwp#le?psbm#`obpp>!j#bojdm>!qjdkw!?,kfbg=	?algz#bpsf`wp#le#wkfkbp#pjm`f#affmFvqlsfbm#Vmjlmqfnjmjp`fmw#lenlqf#gjeej`vowUj`f#Sqfpjgfmw`lnslpjwjlm#lesbppfg#wkqlvdknlqf#jnslqwbmwelmw.pjyf922s{f{sobmbwjlm#lewkf#`lm`fsw#letqjwwfm#jm#wkf\n?psbm#`obpp>!jp#lmf#le#wkf#qfpfnaobm`f#wllm#wkf#dqlvmgptkj`k#`lmwbjmpjm`ovgjmd#wkf#gfejmfg#az#wkfsvaoj`bwjlm#lenfbmp#wkbw#wkflvwpjgf#le#wkfpvsslqw#le#wkf?jmsvw#`obpp>!?psbm#`obpp>!w+Nbwk-qbmgln+*nlpw#sqlnjmfmwgfp`qjswjlm#le@lmpwbmwjmlsoftfqf#svaojpkfg?gju#`obpp>!pfbssfbqp#jm#wkf2!#kfjdkw>!2!#nlpw#jnslqwbmwtkj`k#jm`ovgfptkj`k#kbg#affmgfpwqv`wjlm#lewkf#slsvobwjlm	\n?gju#`obpp>!slppjajojwz#leplnfwjnfp#vpfgbssfbq#wl#kbufpv``fpp#le#wkfjmwfmgfg#wl#afsqfpfmw#jm#wkfpwzof>!`ofbq9a	?,p`qjsw=	?tbp#elvmgfg#jmjmwfqujft#tjwk\\jg!#`lmwfmw>!`bsjwbo#le#wkf	?ojmh#qfo>!pqfofbpf#le#wkfsljmw#lvw#wkbw{NOKwwsQfrvfpwbmg#pvapfrvfmwpf`lmg#obqdfpwufqz#jnslqwbmwpsf`jej`bwjlmppvqeb`f#le#wkfbssojfg#wl#wkfelqfjdm#sloj`z\\pfwGlnbjmMbnffpwbaojpkfg#jmjp#afojfufg#wlJm#bggjwjlm#wlnfbmjmd#le#wkfjp#mbnfg#bewfqwl#sqlwf`w#wkfjp#qfsqfpfmwfgGf`obqbwjlm#lenlqf#feej`jfmw@obppjej`bwjlmlwkfq#elqnp#lekf#qfwvqmfg#wl?psbm#`obpp>!`sfqelqnbm`f#le+evm`wjlm+*#xje#bmg#lmoz#jeqfdjlmp#le#wkfofbgjmd#wl#wkfqfobwjlmp#tjwkVmjwfg#Mbwjlmppwzof>!kfjdkw9lwkfq#wkbm#wkfzsf!#`lmwfmw>!Bppl`jbwjlm#le	?,kfbg=	?algzol`bwfg#lm#wkfjp#qfefqqfg#wl+jm`ovgjmd#wkf`lm`fmwqbwjlmpwkf#jmgjujgvbobnlmd#wkf#nlpwwkbm#bmz#lwkfq,=	?ojmh#qfo>!#qfwvqm#ebopf8wkf#svqslpf#lewkf#bajojwz#wl8`lolq9 eee~	-	?psbm#`obpp>!wkf#pvaif`w#legfejmjwjlmp#le=	?ojmh#qfo>!`objn#wkbw#wkfkbuf#gfufolsfg?wbaof#tjgwk>!`fofaqbwjlm#leElooltjmd#wkf#wl#gjpwjmdvjpk?psbm#`obpp>!awbhfp#sob`f#jmvmgfq#wkf#mbnfmlwfg#wkbw#wkf=?"Xfmgje^..=	pwzof>!nbqdjm.jmpwfbg#le#wkfjmwqlgv`fg#wkfwkf#sql`fpp#lejm`qfbpjmd#wkfgjeefqfm`fp#jmfpwjnbwfg#wkbwfpsf`jbooz#wkf,gju=?gju#jg>!tbp#fufmwvboozwkqlvdklvw#kjpwkf#gjeefqfm`fplnfwkjmd#wkbwpsbm=?,psbm=?,pjdmjej`bmwoz#=?,p`qjsw=		fmujqlmnfmwbo#wl#sqfufmw#wkfkbuf#affm#vpfgfpsf`jbooz#elqvmgfqpwbmg#wkfjp#fppfmwjbooztfqf#wkf#ejqpwjp#wkf#obqdfpwkbuf#affm#nbgf!#pq`>!kwws9,,jmwfqsqfwfg#bppf`lmg#kboe#le`qloojmd>!ml!#jp#`lnslpfg#leJJ/#Kloz#Qlnbmjp#f{sf`wfg#wlkbuf#wkfjq#ltmgfejmfg#bp#wkfwqbgjwjlmbooz#kbuf#gjeefqfmwbqf#lewfm#vpfgwl#fmpvqf#wkbwbdqffnfmw#tjwk`lmwbjmjmd#wkfbqf#eqfrvfmwozjmelqnbwjlm#lmf{bnsof#jp#wkfqfpvowjmd#jm#b?,b=?,oj=?,vo=#`obpp>!ellwfqbmg#fpsf`jboozwzsf>!avwwlm!#?,psbm=?,psbm=tkj`k#jm`ovgfg=	?nfwb#mbnf>!`lmpjgfqfg#wkf`bqqjfg#lvw#azKltfufq/#jw#jpaf`bnf#sbqw#lejm#qfobwjlm#wlslsvobq#jm#wkfwkf#`bsjwbo#letbp#leej`jbooztkj`k#kbp#affmwkf#Kjpwlqz#lebowfqmbwjuf#wlgjeefqfmw#eqlnwl#pvsslqw#wkfpvddfpwfg#wkbwjm#wkf#sql`fpp##?gju#`obpp>!wkf#elvmgbwjlmaf`bvpf#le#kjp`lm`fqmfg#tjwkwkf#vmjufqpjwzlsslpfg#wl#wkfwkf#`lmwf{w#le?psbm#`obpp>!swf{w!#mbnf>!r!\n\n?gju#`obpp>!wkf#p`jfmwjej`qfsqfpfmwfg#aznbwkfnbwj`jbmpfof`wfg#az#wkfwkbw#kbuf#affm=?gju#`obpp>!`gju#jg>!kfbgfqjm#sbqwj`vobq/`lmufqwfg#jmwl*8	?,p`qjsw=	?skjolplskj`bo#pqsphlkqubwphjwj\rVSmd#Uj\rWkw<L=o=m=m<V<T<U=l=o=m=m<V<T<Ujmufpwjdb`j/_msbqwj`jsb`j/_m<V<R=n<R=l=g<Y<R<]<W<\\=m=n<T<V<R=n<R=l=g<U=k<Y<W<R<^<Y<V=m<T=m=n<Y<P=g<q<R<^<R=m=n<T<V<R=n<R=l=g=i<R<]<W<\\=m=n=`<^=l<Y<P<Y<Q<T<V<R=n<R=l<\\=c=m<Y<_<R<X<Q=c=m<V<\\=k<\\=n=`<Q<R<^<R=m=n<T<O<V=l<\\<T<Q=g<^<R<S=l<R=m=g<V<R=n<R=l<R<U=m<X<Y<W<\\=n=`<S<R<P<R=e=`=b=m=l<Y<X=m=n<^<R<]=l<\\<[<R<P=m=n<R=l<R<Q=g=o=k<\\=m=n<T<Y=n<Y=k<Y<Q<T<Y<\x7F<W<\\<^<Q<\\=c<T=m=n<R=l<T<T=m<T=m=n<Y<P<\\=l<Y=d<Y<Q<T=c<M<V<\\=k<\\=n=`<S<R=a=n<R<P=o=m<W<Y<X=o<Y=n=m<V<\\<[<\\=n=`=n<R<^<\\=l<R<^<V<R<Q<Y=k<Q<R=l<Y=d<Y<Q<T<Y<V<R=n<R=l<R<Y<R=l<_<\\<Q<R<^<V<R=n<R=l<R<P<L<Y<V<W<\\<P<\\4K5h5i5j4F4C5e5i5j4F4C5f4K4F4K5h5i5d4Z5d4U4K5h4D4]4K5i4@4K5h5i5d4K5n4U4K5h4]4_4K4J5h5i4X4K4]5o4K4F4K5h4O4U4Z4K4M4K5h4]5f4K4Z4E4K5h4F4Y5i5f5i4K5h4K4U4Z4K4M4K5h5j4F4K4J4@4K5h4O5h4U4K4D4K5h4F4_4@5f5h4K5h4O5n4_4K5i4K5h4Z4V4[4K4F4K5h5m5f4C5f5d4K5h4F4]4A5f4D4K5h4@4C5f4C4E4K5h4F4U5h5f5i4K5h4O4B4D4K4]4K5h4K5m5h4K5i4K5h4O5m5h4K5i4K5h4F4K4]5f4B4K5h4F5n5j5f4E4K5h4K5h4U4K4D4K5h4B5d4K4[4]4K5h5i4@4F5i4U4K5h4C5f5o5d4]4K5h4_5f4K4A4E4U4D4C4K5h5h5k4K5h4F4]4D5f4E4K5h4]5d4K4D4[4K5h4O4C4D5f4E4K5h4K4B4D4K4]4K5h5i4F4A4C4E4K5h4K4V4K5j5f`vqplq9sljmwfq8?,wjwof=	?nfwb#!#kqfe>!kwws9,,!=?psbm#`obpp>!nfnafqp#le#wkf#tjmglt-ol`bwjlmufqwj`bo.bojdm9,b=#\x7F#?b#kqfe>!?"gl`wzsf#kwno=nfgjb>!p`qffm!#?lswjlm#ubovf>!ebuj`lm-j`l!#,=	\n\n?gju#`obpp>!`kbqb`wfqjpwj`p!#nfwklg>!dfw!#,algz=	?,kwno=	pklqw`vw#j`lm!#gl`vnfmw-tqjwf+sbggjmd.alwwln9qfsqfpfmwbwjufppvanjw!#ubovf>!bojdm>!`fmwfq!#wkqlvdklvw#wkf#p`jfm`f#ej`wjlm	##?gju#`obpp>!pvanjw!#`obpp>!lmf#le#wkf#nlpw#ubojdm>!wls!=?tbp#fpwbaojpkfg*8	?,p`qjsw=	qfwvqm#ebopf8!=*-pwzof-gjpsobzaf`bvpf#le#wkf#gl`vnfmw-`llhjf?elqn#b`wjlm>!,~algzxnbqdjm938Fm`z`olsfgjb#leufqpjlm#le#wkf#-`qfbwfFofnfmw+mbnf!#`lmwfmw>!?,gju=	?,gju=		bgnjmjpwqbwjuf#?,algz=	?,kwno=kjpwlqz#le#wkf#!=?jmsvw#wzsf>!slqwjlm#le#wkf#bp#sbqw#le#wkf#%maps8?b#kqfe>!lwkfq#`lvmwqjfp!=	?gju#`obpp>!?,psbm=?,psbm=?Jm#lwkfq#tlqgp/gjpsobz9#aol`h8`lmwqlo#le#wkf#jmwqlgv`wjlm#le,=	?nfwb#mbnf>!bp#tfoo#bp#wkf#jm#qf`fmw#zfbqp	\n?gju#`obpp>!?,gju=	\n?,gju=	jmpsjqfg#az#wkfwkf#fmg#le#wkf#`lnsbwjaof#tjwkaf`bnf#hmltm#bp#pwzof>!nbqdjm9-ip!=?,p`qjsw=?#Jmwfqmbwjlmbo#wkfqf#kbuf#affmDfqnbm#obmdvbdf#pwzof>!`lolq9 @lnnvmjpw#Sbqwz`lmpjpwfmw#tjwkalqgfq>!3!#`foo#nbqdjmkfjdkw>!wkf#nbilqjwz#le!#bojdm>!`fmwfqqfobwfg#wl#wkf#nbmz#gjeefqfmw#Lqwklgl{#@kvq`kpjnjobq#wl#wkf#,=	?ojmh#qfo>!ptbp#lmf#le#wkf#vmwjo#kjp#gfbwk~*+*8	?,p`qjsw=lwkfq#obmdvbdfp`lnsbqfg#wl#wkfslqwjlmp#le#wkfwkf#Mfwkfqobmgpwkf#nlpw#`lnnlmab`hdqlvmg9vqo+bqdvfg#wkbw#wkfp`qloojmd>!ml!#jm`ovgfg#jm#wkfMlqwk#Bnfqj`bm#wkf#mbnf#le#wkfjmwfqsqfwbwjlmpwkf#wqbgjwjlmbogfufolsnfmw#le#eqfrvfmwoz#vpfgb#`loof`wjlm#leufqz#pjnjobq#wlpvqqlvmgjmd#wkff{bnsof#le#wkjpbojdm>!`fmwfq!=tlvog#kbuf#affmjnbdf\\`bswjlm#>bwwb`kfg#wl#wkfpvddfpwjmd#wkbwjm#wkf#elqn#le#jmuloufg#jm#wkfjp#gfqjufg#eqlnmbnfg#bewfq#wkfJmwqlgv`wjlm#wlqfpwqj`wjlmp#lm#pwzof>!tjgwk9#`bm#af#vpfg#wl#wkf#`qfbwjlm#lenlpw#jnslqwbmw#jmelqnbwjlm#bmgqfpvowfg#jm#wkf`loobspf#le#wkfWkjp#nfbmp#wkbwfofnfmwp#le#wkftbp#qfsob`fg#azbmbozpjp#le#wkfjmpsjqbwjlm#elqqfdbqgfg#bp#wkfnlpw#pv``fppevohmltm#bp#%rvlw8b#`lnsqfkfmpjufKjpwlqz#le#wkf#tfqf#`lmpjgfqfgqfwvqmfg#wl#wkfbqf#qfefqqfg#wlVmplvq`fg#jnbdf=	\n?gju#`obpp>!`lmpjpwp#le#wkfpwlsSqlsbdbwjlmjmwfqfpw#jm#wkfbubjobajojwz#lebssfbqp#wl#kbuffof`wqlnbdmfwj`fmbaofPfquj`fp+evm`wjlm#le#wkfJw#jp#jnslqwbmw?,p`qjsw=?,gju=evm`wjlm+*xubq#qfobwjuf#wl#wkfbp#b#qfpvow#le#wkf#slpjwjlm#leElq#f{bnsof/#jm#nfwklg>!slpw!#tbp#elooltfg#az%bns8ngbpk8#wkfwkf#bssoj`bwjlmip!=?,p`qjsw=	vo=?,gju=?,gju=bewfq#wkf#gfbwktjwk#qfpsf`w#wlpwzof>!sbggjmd9jp#sbqwj`vobqozgjpsobz9jmojmf8#wzsf>!pvanjw!#jp#gjujgfg#jmwl\bTA\nzk#+\vBl\bQ\x7F*qfpslmpbajojgbgbgnjmjpwqb`j/_mjmwfqmb`jlmbofp`lqqfpslmgjfmwf\fHe\fHF\fHC\fIg\fH{\fHF\fIn\fH\\\fIa\fHY\fHU\fHB\fHR\fH\\\fIk\fH^\fIg\fH{\fIg\fHn\fHv\fIm\fHD\fHR\fHY\fH^\fIk\fHy\fHS\fHD\fHT\fH\\\fHy\fHR\fH\\\fHF\fIm\fH^\fHS\fHT\fHz\fIg\fHp\fIk\fHn\fHv\fHR\fHU\fHS\fHc\fHA\fIk\fHp\fIk\fHn\fHZ\fHR\fHB\fHS\fH^\fHU\fHB\fHR\fH\\\fIl\fHp\fHR\fH{\fH\\\fHO\fH@\fHD\fHR\fHD\fIk\fHy\fIm\fHB\fHR\fH\\\fH@\fIa\fH^\fIe\fH{\fHB\fHR\fH^\fHS\fHy\fHB\fHU\fHS\fH^\fHR\fHF\fIo\fH[\fIa\fHL\fH@\fHN\fHP\fHH\fIk\fHA\fHR\fHp\fHF\fHR\fHy\fIa\fH^\fHS\fHy\fHs\fIa\fH\\\fIk\fHD\fHz\fHS\fH^\fHR\fHG\fHJ\fI`\fH\\\fHR\fHD\fHB\fHR\fHB\fH^\fIk\fHB\fHH\fHJ\fHR\fHD\fH@\fHR\fHp\fHR\fH\\\fHY\fHS\fHy\fHR\fHT\fHy\fIa\fHC\fIg\fHn\fHv\fHR\fHU\fHH\fIk\fHF\fHU\fIm\fHm\fHv\fH@\fHH\fHR\fHC\fHR\fHT\fHn\fHY\fHR\fHJ\fHJ\fIk\fHz\fHD\fIk\fHF\fHS\fHw\fH^\fIk\fHY\fHS\fHZ\fIk\fH[\fH\\\fHR\fHp\fIa\fHC\fHe\fHH\fIa\fHH\fH\\\fHB\fIm\fHn\fH@\fHd\fHJ\fIg\fHD\fIg\fHn\fHe\fHF\fHy\fH\\\fHO\fHF\fHN\fHP\fIk\fHn\fHT\fIa\fHI\fHS\fHH\fHG\fHS\fH^\fIa\fHB\fHB\fIm\fHz\fIa\fHC\fHi\fHv\fIa\fHw\fHR\fHw\fIn\fHs\fHH\fIl\fHT\fHn\fH{\fIl\fHH\fHp\fHR\fHc\fH{\fHR\fHY\fHS\fHA\fHR\fH{\fHt\fHO\fIa\fHs\fIk\fHJ\fIn\fHT\fH\\\fIk\fHJ\fHS\fHD\fIg\fHn\fHU\fHH\fIa\fHC\fHR\fHT\fIk\fHy\fIa\fHT\fH{\fHR\fHn\fHK\fIl\fHY\fHS\fHZ\fIa\fHY\fH\\\fHR\fHH\fIk\fHn\fHJ\fId\fHs\fIa\fHT\fHD\fHy\fIa\fHZ\fHR\fHT\fHR\fHB\fHD\fIk\fHi\fHJ\fHR\fH^\fHH\fH@\fHS\fHp\fH^\fIl\fHF\fIm\fH\\\fIn\fH[\fHU\fHS\fHn\fHJ\fIl\fHB\fHS\fHH\fIa\fH\\\fHy\fHY\fHS\fHH\fHR\fH\\\fIm\fHF\fHC\fIk\fHT\fIa\fHI\fHR\fHD\fHy\fH\\\fIg\fHM\fHP\fHB\fIm\fHy\fIa\fHH\fHC\fIg\fHp\fHD\fHR\fHy\fIo\fHF\fHC\fHR\fHF\fIg\fHT\fIa\fHs\fHt\fH\\\fIk\fH^\fIn\fHy\fHR\fH\\\fIa\fHC\fHY\fHS\fHv\fHR\fH\\\fHT\fIn\fHv\fHD\fHR\fHB\fIn\fH^\fIa\fHC\fHJ\fIk\fHz\fIk\fHn\fHU\fHB\fIk\fHZ\fHR\fHT\fIa\fHy\fIn\fH^\fHB\fId\fHn\fHD\fIk\fHH\fId\fHC\fHR\fH\\\fHp\fHS\fHT\fHy\fIkqpp({no!#wjwof>!.wzsf!#`lmwfmw>!wjwof!#`lmwfmw>!bw#wkf#pbnf#wjnf-ip!=?,p`qjsw=	?!#nfwklg>!slpw!#?,psbm=?,b=?,oj=ufqwj`bo.bojdm9w,irvfqz-njm-ip!=-`oj`h+evm`wjlm+#pwzof>!sbggjmd.~*+*8	?,p`qjsw=	?,psbm=?b#kqfe>!?b#kqfe>!kwws9,,*8#qfwvqm#ebopf8wf{w.gf`lqbwjlm9#p`qloojmd>!ml!#alqgfq.`loobspf9bppl`jbwfg#tjwk#Abkbpb#JmglmfpjbFmdojpk#obmdvbdf?wf{w#{no9psb`f>-dje!#alqgfq>!3!?,algz=	?,kwno=	lufqeolt9kjggfm8jnd#pq`>!kwws9,,bggFufmwOjpwfmfqqfpslmpjaof#elq#p-ip!=?,p`qjsw=	,ebuj`lm-j`l!#,=lsfqbwjmd#pzpwfn!#pwzof>!tjgwk92wbqdfw>!\\aobmh!=Pwbwf#Vmjufqpjwzwf{w.bojdm9ofew8	gl`vnfmw-tqjwf+/#jm`ovgjmd#wkf#bqlvmg#wkf#tlqog*8	?,p`qjsw=	?!#pwzof>!kfjdkw98lufqeolt9kjggfmnlqf#jmelqnbwjlmbm#jmwfqmbwjlmbob#nfnafq#le#wkf#lmf#le#wkf#ejqpw`bm#af#elvmg#jm#?,gju=	\n\n?,gju=	gjpsobz9#mlmf8!=!#,=	?ojmh#qfo>!	##+evm`wjlm+*#xwkf#26wk#`fmwvqz-sqfufmwGfebvow+obqdf#mvnafq#le#Azybmwjmf#Fnsjqf-isd\x7Fwkvna\x7Fofew\x7Fubpw#nbilqjwz#lenbilqjwz#le#wkf##bojdm>!`fmwfq!=Vmjufqpjwz#Sqfppglnjmbwfg#az#wkfPf`lmg#Tlqog#Tbqgjpwqjavwjlm#le#pwzof>!slpjwjlm9wkf#qfpw#le#wkf#`kbqb`wfqjyfg#az#qfo>!mleloolt!=gfqjufp#eqln#wkfqbwkfq#wkbm#wkf#b#`lnajmbwjlm#lepwzof>!tjgwk9233Fmdojpk.psfbhjmd`lnsvwfq#p`jfm`falqgfq>!3!#bow>!wkf#f{jpwfm`f#leGfnl`qbwj`#Sbqwz!#pwzof>!nbqdjm.Elq#wkjp#qfbplm/-ip!=?,p`qjsw=	\npAzWbdMbnf+p*X3^ip!=?,p`qjsw=	?-ip!=?,p`qjsw=	ojmh#qfo>!j`lm!#$#bow>$$#`obpp>$elqnbwjlm#le#wkfufqpjlmp#le#wkf#?,b=?,gju=?,gju=,sbdf=	##?sbdf=	?gju#`obpp>!`lmwaf`bnf#wkf#ejqpwabkbpb#Jmglmfpjbfmdojpk#+pjnsof*"y"W"W"["Q"U"V"@=i=l<^<\\=n=m<V<T<V<R<P<S<\\<Q<T<T=c<^<W=c<Y=n=m=c<x<R<]<\\<^<T=n=`=k<Y<W<R<^<Y<V<\\=l<\\<[<^<T=n<T=c<t<Q=n<Y=l<Q<Y=n<r=n<^<Y=n<T=n=`<Q<\\<S=l<T<P<Y=l<T<Q=n<Y=l<Q<Y=n<V<R=n<R=l<R<_<R=m=n=l<\\<Q<T=j=g<V<\\=k<Y=m=n<^<Y=o=m<W<R<^<T=c=i<S=l<R<]<W<Y<P=g<S<R<W=o=k<T=n=`=c<^<W=c=b=n=m=c<Q<\\<T<]<R<W<Y<Y<V<R<P<S<\\<Q<T=c<^<Q<T<P<\\<Q<T<Y=m=l<Y<X=m=n<^<\\4K5h5i5d4K4Z5f4U4K5h4]4J5f4_5f4E4K5h4K5j4F5n4K5h5i4X4K4]5o4K4F5o4K5h4_5f4K4]4K4F4K5h5i5o4F5d4D4E4K5h4_4U5d4C5f4E4K4A4Y4K4J5f4K4F4K5h4U4K5h5i5f4E4K5h4Y5d4F5f4K4F4K5h4K5j4F4]5j4F4K5h4F4Y4K5i5f5i4K5h4I4_5h4K5i5f4K5h5i4X4K4]5o4E4K5h5i4]4J5f4K4Fqlalwp!#`lmwfmw>!?gju#jg>!ellwfq!=wkf#Vmjwfg#Pwbwfp?jnd#pq`>!kwws9,,-isd\x7Fqjdkw\x7Fwkvna\x7F-ip!=?,p`qjsw=	?ol`bwjlm-sqlwl`loeqbnfalqgfq>!3!#p!#,=	?nfwb#mbnf>!?,b=?,gju=?,gju=?elmw.tfjdkw9alog8%rvlw8#bmg#%rvlw8gfsfmgjmd#lm#wkf#nbqdjm938sbggjmd9!#qfo>!mleloolt!#Sqfpjgfmw#le#wkf#wtfmwjfwk#`fmwvqzfujpjlm=	##?,sbdfJmwfqmfw#F{solqfqb-bpzm`#>#wqvf8	jmelqnbwjlm#balvw?gju#jg>!kfbgfq!=!#b`wjlm>!kwws9,,?b#kqfe>!kwwsp9,,?gju#jg>!`lmwfmw!?,gju=	?,gju=	?gfqjufg#eqln#wkf#?jnd#pq`>$kwws9,,b``lqgjmd#wl#wkf#	?,algz=	?,kwno=	pwzof>!elmw.pjyf9p`qjsw#obmdvbdf>!Bqjbo/#Kfoufwj`b/?,b=?psbm#`obpp>!?,p`qjsw=?p`qjsw#slojwj`bo#sbqwjfpwg=?,wq=?,wbaof=?kqfe>!kwws9,,ttt-jmwfqsqfwbwjlm#leqfo>!pwzofpkffw!#gl`vnfmw-tqjwf+$?`kbqpfw>!vwe.;!=	afdjmmjmd#le#wkf#qfufbofg#wkbw#wkfwfofujpjlm#pfqjfp!#qfo>!mleloolt!=#wbqdfw>!\\aobmh!=`objnjmd#wkbw#wkfkwws&0B&1E&1Ettt-nbmjefpwbwjlmp#leSqjnf#Njmjpwfq#lejmeovfm`fg#az#wkf`obpp>!`ofbqej{!=,gju=	?,gju=		wkqff.gjnfmpjlmbo@kvq`k#le#Fmdobmgle#Mlqwk#@bqlojmbprvbqf#hjolnfwqfp-bggFufmwOjpwfmfqgjpwjm`w#eqln#wkf`lnnlmoz#hmltm#bpSklmfwj`#Boskbafwgf`obqfg#wkbw#wkf`lmwqloofg#az#wkfAfmibnjm#Eqbmhojmqlof.sobzjmd#dbnfwkf#Vmjufqpjwz#lejm#Tfpwfqm#Fvqlsfsfqplmbo#`lnsvwfqSqlif`w#Dvwfmafqdqfdbqgofpp#le#wkfkbp#affm#sqlslpfgwldfwkfq#tjwk#wkf=?,oj=?oj#`obpp>!jm#plnf#`lvmwqjfpnjm-ip!=?,p`qjsw=le#wkf#slsvobwjlmleej`jbo#obmdvbdf?jnd#pq`>!jnbdfp,jgfmwjejfg#az#wkfmbwvqbo#qfplvq`fp`obppjej`bwjlm#le`bm#af#`lmpjgfqfgrvbmwvn#nf`kbmj`pMfufqwkfofpp/#wkfnjoojlm#zfbqp#bdl?,algz=	?,kwno="y"W"W"["Q"U"V"@	wbhf#bgubmwbdf#lebmg/#b``lqgjmd#wlbwwqjavwfg#wl#wkfNj`qlplew#Tjmgltpwkf#ejqpw#`fmwvqzvmgfq#wkf#`lmwqlogju#`obpp>!kfbgfqpklqwoz#bewfq#wkfmlwbaof#f{`fswjlmwfmp#le#wklvpbmgppfufqbo#gjeefqfmwbqlvmg#wkf#tlqog-qfb`kjmd#njojwbqzjplobwfg#eqln#wkflsslpjwjlm#wl#wkfwkf#Log#WfpwbnfmwBeqj`bm#Bnfqj`bmpjmpfqwfg#jmwl#wkfpfsbqbwf#eqln#wkfnfwqlslojwbm#bqfbnbhfp#jw#slppjaofb`hmltofgdfg#wkbwbqdvbaoz#wkf#nlpwwzsf>!wf{w,`pp!=	wkf#JmwfqmbwjlmboB``lqgjmd#wl#wkf#sf>!wf{w,`pp!#,=	`ljm`jgf#tjwk#wkfwtl.wkjqgp#le#wkfGvqjmd#wkjp#wjnf/gvqjmd#wkf#sfqjlgbmmlvm`fg#wkbw#kfwkf#jmwfqmbwjlmbobmg#nlqf#qf`fmwozafojfufg#wkbw#wkf`lmp`jlvpmfpp#bmgelqnfqoz#hmltm#bppvqqlvmgfg#az#wkfejqpw#bssfbqfg#jml``bpjlmbooz#vpfgslpjwjlm9baplovwf8!#wbqdfw>!\\aobmh!#slpjwjlm9qfobwjuf8wf{w.bojdm9`fmwfq8ib{,ojap,irvfqz,2-ab`hdqlvmg.`lolq9 wzsf>!bssoj`bwjlm,bmdvbdf!#`lmwfmw>!?nfwb#kwws.frvju>!Sqjub`z#Sloj`z?,b=f+!&0@p`qjsw#pq`>$!#wbqdfw>!\\aobmh!=Lm#wkf#lwkfq#kbmg/-isd\x7Fwkvna\x7Fqjdkw\x7F1?,gju=?gju#`obpp>!?gju#pwzof>!eolbw9mjmfwffmwk#`fmwvqz?,algz=	?,kwno=	?jnd#pq`>!kwws9,,p8wf{w.bojdm9`fmwfqelmw.tfjdkw9#alog8#B``lqgjmd#wl#wkf#gjeefqfm`f#afwtffm!#eqbnfalqgfq>!3!#!#pwzof>!slpjwjlm9ojmh#kqfe>!kwws9,,kwno7,ollpf-gwg!=	gvqjmd#wkjp#sfqjlg?,wg=?,wq=?,wbaof=`olpfoz#qfobwfg#wlelq#wkf#ejqpw#wjnf8elmw.tfjdkw9alog8jmsvw#wzsf>!wf{w!#?psbm#pwzof>!elmw.lmqfbgzpwbwf`kbmdf\n?gju#`obpp>!`ofbqgl`vnfmw-ol`bwjlm-#Elq#f{bnsof/#wkf#b#tjgf#ubqjfwz#le#?"GL@WZSF#kwno=	?%maps8%maps8%maps8!=?b#kqfe>!kwws9,,pwzof>!eolbw9ofew8`lm`fqmfg#tjwk#wkf>kwws&0B&1E&1Ettt-jm#slsvobq#`vowvqfwzsf>!wf{w,`pp!#,=jw#jp#slppjaof#wl#Kbqubqg#Vmjufqpjwzwzofpkffw!#kqfe>!,wkf#nbjm#`kbqb`wfqL{elqg#Vmjufqpjwz##mbnf>!hfztlqgp!#`pwzof>!wf{w.bojdm9wkf#Vmjwfg#Hjmdglnefgfqbo#dlufqmnfmw?gju#pwzof>!nbqdjm#gfsfmgjmd#lm#wkf#gfp`qjswjlm#le#wkf?gju#`obpp>!kfbgfq-njm-ip!=?,p`qjsw=gfpwqv`wjlm#le#wkfpojdkwoz#gjeefqfmwjm#b``lqgbm`f#tjwkwfof`lnnvmj`bwjlmpjmgj`bwfp#wkbw#wkfpklqwoz#wkfqfbewfqfpsf`jbooz#jm#wkf#Fvqlsfbm#`lvmwqjfpKltfufq/#wkfqf#bqfpq`>!kwws9,,pwbwj`pvddfpwfg#wkbw#wkf!#pq`>!kwws9,,ttt-b#obqdf#mvnafq#le#Wfof`lnnvmj`bwjlmp!#qfo>!mleloolt!#wKloz#Qlnbm#Fnsfqlqbonlpw#f{`ovpjufoz!#alqgfq>!3!#bow>!Pf`qfwbqz#le#Pwbwf`vonjmbwjmd#jm#wkf@JB#Tlqog#Eb`wallhwkf#nlpw#jnslqwbmwbmmjufqpbqz#le#wkfpwzof>!ab`hdqlvmg.?oj=?fn=?b#kqfe>!,wkf#Bwobmwj`#L`fbmpwqj`woz#psfbhjmd/pklqwoz#afelqf#wkfgjeefqfmw#wzsfp#lewkf#Lwwlnbm#Fnsjqf=?jnd#pq`>!kwws9,,Bm#Jmwqlgv`wjlm#wl`lmpfrvfm`f#le#wkfgfsbqwvqf#eqln#wkf@lmefgfqbwf#Pwbwfpjmgjdfmlvp#sflsofpSql`ffgjmdp#le#wkfjmelqnbwjlm#lm#wkfwkflqjfp#kbuf#affmjmuloufnfmw#jm#wkfgjujgfg#jmwl#wkqffbgib`fmw#`lvmwqjfpjp#qfpslmpjaof#elqgjpplovwjlm#le#wkf`loobalqbwjlm#tjwktjgfoz#qfdbqgfg#bpkjp#`lmwfnslqbqjfpelvmgjmd#nfnafq#leGlnjmj`bm#Qfsvaoj`dfmfqbooz#b``fswfgwkf#slppjajojwz#lebqf#bopl#bubjobaofvmgfq#`lmpwqv`wjlmqfpwlqbwjlm#le#wkfwkf#dfmfqbo#svaoj`jp#bonlpw#fmwjqfozsbppfp#wkqlvdk#wkfkbp#affm#pvddfpwfg`lnsvwfq#bmg#ujgflDfqnbmj`#obmdvbdfp#b``lqgjmd#wl#wkf#gjeefqfmw#eqln#wkfpklqwoz#bewfqtbqgpkqfe>!kwwsp9,,ttt-qf`fmw#gfufolsnfmwAlbqg#le#Gjqf`wlqp?gju#`obpp>!pfbq`k\x7F#?b#kqfe>!kwws9,,Jm#sbqwj`vobq/#wkfNvowjsof#ellwmlwfplq#lwkfq#pvapwbm`fwklvpbmgp#le#zfbqpwqbmpobwjlm#le#wkf?,gju=	?,gju=		?b#kqfe>!jmgf{-skstbp#fpwbaojpkfg#jmnjm-ip!=?,p`qjsw=	sbqwj`jsbwf#jm#wkfb#pwqlmd#jmeovfm`fpwzof>!nbqdjm.wls9qfsqfpfmwfg#az#wkfdqbgvbwfg#eqln#wkfWqbgjwjlmbooz/#wkfFofnfmw+!p`qjsw!*8Kltfufq/#pjm`f#wkf,gju=	?,gju=	?gju#ofew8#nbqdjm.ofew9sqlwf`wjlm#bdbjmpw38#ufqwj`bo.bojdm9Vmelqwvmbwfoz/#wkfwzsf>!jnbdf,{.j`lm,gju=	?gju#`obpp>!#`obpp>!`ofbqej{!=?gju#`obpp>!ellwfq\n\n?,gju=	\n\n?,gju=	wkf#nlwjlm#sj`wvqf<}=f<W<_<\\=l=m<V<T<]=f<W<_<\\=l=m<V<T<H<Y<X<Y=l<\\=j<T<T<Q<Y=m<V<R<W=`<V<R=m<R<R<]=e<Y<Q<T<Y=m<R<R<]=e<Y<Q<T=c<S=l<R<_=l<\\<P<P=g<r=n<S=l<\\<^<T=n=`<]<Y=m<S<W<\\=n<Q<R<P<\\=n<Y=l<T<\\<W=g<S<R<[<^<R<W=c<Y=n<S<R=m<W<Y<X<Q<T<Y=l<\\<[<W<T=k<Q=g=i<S=l<R<X=o<V=j<T<T<S=l<R<_=l<\\<P<P<\\<S<R<W<Q<R=m=n=`=b<Q<\\=i<R<X<T=n=m=c<T<[<]=l<\\<Q<Q<R<Y<Q<\\=m<Y<W<Y<Q<T=c<T<[<P<Y<Q<Y<Q<T=c<V<\\=n<Y<_<R=l<T<T<|<W<Y<V=m<\\<Q<X=l\fHJ\fIa\fHY\fHR\fH\\\fHR\fHB\fId\fHD\fIm\fHi\fH^\fHF\fIa\fH\\\fHJ\fHR\fHD\fHA\fHR\fH\\\fHH\fIl\fHC\fHi\fHD\fIm\fHJ\fIk\fHZ\fHU\fHS\fHD\fIa\fHJ\fIl\fHk\fHn\fHM\fHS\fHC\fHR\fHJ\fHS\fH^\fIa\fH^\fIl\fHi\fHK\fHS\fHy\fHR\fH\\\fHY\fIl\fHM\fHS\fHC\fIg\fHv\fHS\fHs\fIa\fHL\fIk\fHT\fHB\fHR\fHv\fHR\fH\\\fHp\fHn\fHy\fIa\fHZ\fHD\fHJ\fIm\fHD\fHS\fHC\fHR\fHF\fIa\fH\\\fHC\fIg\fH{\fHi\fHD\fIm\fHT\fHR\fH\\\fH}\fHD\fH^\fHR\fHk\fHD\fHF\fHR\fH\\\fIa\fHs\fIl\fHZ\fH\\\fIa\fHH\fIg\fHn\fH^\fIg\fHy\fHT\fHA\fHR\fHG\fHP\fIa\fH^\fId\fHZ\fHZ\fH\\\fIa\fHH\fIk\fHn\fHF\fIa\fH\\\fHJ\fIk\fHZ\fHF\fIa\fH^\fIk\fHC\fH\\\fHy\fIk\fHn\fHJ\fIa\fH\\\fHT\fIa\fHI\fHS\fHH\fHS\fHe\fHH\fIa\fHF\fHR\fHJ\fHe\fHD\fIa\fHU\fIk\fHn\fHv\fHS\fHs\fIa\fHL\fHR\fHC\fHR\fHH\fIa\fH\\\fHR\fHp\fIa\fHC\fHR\fHJ\fHR\fHF\fIm\fH\\\fHR\fHD\fIk\fHp\fIg\fHM\fHP\fIk\fHn\fHi\fHD\fIm\fHY\fHR\fHJ\fHZ\fIa\fH\\\fIk\fHO\fIl\fHZ\fHS\fHy\fIa\fH[\fHR\fHT\fH\\\fHy\fHR\fH\\\fIl\fHT\fHn\fH{\fIa\fH\\\fHU\fHF\fH\\\fHS\fHO\fHR\fHB\fH@\fIa\fH\\\fHR\fHn\fHM\fH@\fHv\fIa\fHv\fIg\fHn\fHe\fHF\fH^\fH@\fIa\fHK\fHB\fHn\fHH\fIa\fH\\\fIl\fHT\fHn\fHF\fH\\\fIa\fHy\fHe\fHB\fIa\fHB\fIl\fHJ\fHB\fHR\fHK\fIa\fHC\fHB\fHT\fHU\fHR\fHC\fHH\fHR\fHZ\fH@\fIa\fHJ\fIg\fHn\fHB\fIl\fHM\fHS\fHC\fHR\fHj\fHd\fHF\fIl\fHc\fH^\fHB\fIg\fH@\fHR\fHk\fH^\fHT\fHn\fHz\fIa\fHC\fHR\fHj\fHF\fH\\\fIk\fHZ\fHD\fHi\fHD\fIm\fH@\fHn\fHK\fH@\fHR\fHp\fHP\fHR\fH\\\fHD\fHY\fIl\fHD\fHH\fHB\fHF\fIa\fH\\\fHB\fIm\fHz\fHF\fIa\fH\\\fHZ\fIa\fHD\fHF\fH\\\fHS\fHY\fHR\fH\\\fHD\fIm\fHy\fHT\fHR\fHD\fHT\fHB\fH\\\fIa\fHI\fHD\fHj\fHC\fIg\fHp\fHS\fHH\fHT\fIg\fHB\fHY\fHR\fH\\4K5h5i4X4K4]5o4K4F4K5h5i5j4F4C5f4K4F4K5h5o5i4D5f5d4F4]4K5h5i4X4K5k4C4K4F4U4C4C4K5h4^5d4K4]4U4C4C4K5h4]4C5d4C4K5h4I4_5h4K5i5f4E4K5h5m5d4F5d4X5d4D4K5h5i4_4K4D5n4K4F4K5h5i4U5h5d5i4K4F4K5h5i4_5h4_5h4K4F4K5h4@4]4K5m5f5o4_4K5h4K4_5h4K5i5f4E4K5h4K4F4Y4K5h4K4Fhfztlqgp!#`lmwfmw>!t0-lqd,2:::,{kwno!=?b#wbqdfw>!\\aobmh!#wf{w,kwno8#`kbqpfw>!#wbqdfw>!\\aobmh!=?wbaof#`foosbggjmd>!bvwl`lnsofwf>!lee!#wf{w.bojdm9#`fmwfq8wl#obpw#ufqpjlm#az#ab`hdqlvmg.`lolq9# !#kqfe>!kwws9,,ttt-,gju=?,gju=?gju#jg>?b#kqfe>! !#`obpp>!!=?jnd#pq`>!kwws9,,`qjsw!#pq`>!kwws9,,	?p`qjsw#obmdvbdf>!,,FM!#!kwws9,,ttt-tfm`lgfVQJ@lnslmfmw+!#kqfe>!ibubp`qjsw9?gju#`obpp>!`lmwfmwgl`vnfmw-tqjwf+$?p`slpjwjlm9#baplovwf8p`qjsw#pq`>!kwws9,,#pwzof>!nbqdjm.wls9-njm-ip!=?,p`qjsw=	?,gju=	?gju#`obpp>!t0-lqd,2:::,{kwno!#		?,algz=	?,kwno=gjpwjm`wjlm#afwtffm,!#wbqdfw>!\\aobmh!=?ojmh#kqfe>!kwws9,,fm`lgjmd>!vwe.;!<=	t-bggFufmwOjpwfmfq<b`wjlm>!kwws9,,ttt-j`lm!#kqfe>!kwws9,,#pwzof>!ab`hdqlvmg9wzsf>!wf{w,`pp!#,=	nfwb#sqlsfqwz>!ld9w?jmsvw#wzsf>!wf{w!##pwzof>!wf{w.bojdm9wkf#gfufolsnfmw#le#wzofpkffw!#wzsf>!wfkwno8#`kbqpfw>vwe.;jp#`lmpjgfqfg#wl#afwbaof#tjgwk>!233&!#Jm#bggjwjlm#wl#wkf#`lmwqjavwfg#wl#wkf#gjeefqfm`fp#afwtffmgfufolsnfmw#le#wkf#Jw#jp#jnslqwbmw#wl#?,p`qjsw=		?p`qjsw##pwzof>!elmw.pjyf92=?,psbm=?psbm#jg>daOjaqbqz#le#@lmdqfpp?jnd#pq`>!kwws9,,jnFmdojpk#wqbmpobwjlmB`bgfnz#le#P`jfm`fpgju#pwzof>!gjpsobz9`lmpwqv`wjlm#le#wkf-dfwFofnfmwAzJg+jg*jm#`lmivm`wjlm#tjwkFofnfmw+$p`qjsw$*8#?nfwb#sqlsfqwz>!ld9<}=f<W<_<\\=l=m<V<T	#wzsf>!wf{w!#mbnf>!=Sqjub`z#Sloj`z?,b=bgnjmjpwfqfg#az#wkffmbaofPjmdofQfrvfpwpwzof>%rvlw8nbqdjm9?,gju=?,gju=?,gju=?=?jnd#pq`>!kwws9,,j#pwzof>%rvlw8eolbw9qfefqqfg#wl#bp#wkf#wlwbo#slsvobwjlm#lejm#Tbpkjmdwlm/#G-@-#pwzof>!ab`hdqlvmg.bnlmd#lwkfq#wkjmdp/lqdbmjybwjlm#le#wkfsbqwj`jsbwfg#jm#wkfwkf#jmwqlgv`wjlm#lejgfmwjejfg#tjwk#wkfej`wjlmbo#`kbqb`wfq#L{elqg#Vmjufqpjwz#njpvmgfqpwbmgjmd#leWkfqf#bqf/#kltfufq/pwzofpkffw!#kqfe>!,@lovnajb#Vmjufqpjwzf{sbmgfg#wl#jm`ovgfvpvbooz#qfefqqfg#wljmgj`bwjmd#wkbw#wkfkbuf#pvddfpwfg#wkbwbeejojbwfg#tjwk#wkf`lqqfobwjlm#afwtffmmvnafq#le#gjeefqfmw=?,wg=?,wq=?,wbaof=Qfsvaoj`#le#Jqfobmg	?,p`qjsw=	?p`qjsw#vmgfq#wkf#jmeovfm`f`lmwqjavwjlm#wl#wkfLeej`jbo#tfapjwf#lekfbgrvbqwfqp#le#wkf`fmwfqfg#bqlvmg#wkfjnsoj`bwjlmp#le#wkfkbuf#affm#gfufolsfgEfgfqbo#Qfsvaoj`#leaf`bnf#jm`qfbpjmdoz`lmwjmvbwjlm#le#wkfMlwf/#kltfufq/#wkbwpjnjobq#wl#wkbw#le#`bsbajojwjfp#le#wkfb``lqgbm`f#tjwk#wkfsbqwj`jsbmwp#jm#wkfevqwkfq#gfufolsnfmwvmgfq#wkf#gjqf`wjlmjp#lewfm#`lmpjgfqfgkjp#zlvmdfq#aqlwkfq?,wg=?,wq=?,wbaof=?b#kwws.frvju>![.VB.skzpj`bo#sqlsfqwjfple#Aqjwjpk#@lovnajbkbp#affm#`qjwj`jyfg+tjwk#wkf#f{`fswjlmrvfpwjlmp#balvw#wkfsbppjmd#wkqlvdk#wkf3!#`foosbggjmd>!3!#wklvpbmgp#le#sflsofqfgjqf`wp#kfqf-#Elqkbuf#`kjogqfm#vmgfq&0F&0@,p`qjsw&0F!**8?b#kqfe>!kwws9,,ttt-?oj=?b#kqfe>!kwws9,,pjwf\\mbnf!#`lmwfmw>!wf{w.gf`lqbwjlm9mlmfpwzof>!gjpsobz9#mlmf?nfwb#kwws.frvju>![.mft#Gbwf+*-dfwWjnf+*#wzsf>!jnbdf,{.j`lm!?,psbm=?psbm#`obpp>!obmdvbdf>!ibubp`qjswtjmglt-ol`bwjlm-kqfe?b#kqfe>!ibubp`qjsw9..=	?p`qjsw#wzsf>!w?b#kqfe>$kwws9,,ttt-klqw`vw#j`lm!#kqfe>!?,gju=	?gju#`obpp>!?p`qjsw#pq`>!kwws9,,!#qfo>!pwzofpkffw!#w?,gju=	?p`qjsw#wzsf>,b=#?b#kqfe>!kwws9,,#booltWqbmpsbqfm`z>![.VB.@lnsbwjaof!#`lmqfobwjlmpkjs#afwtffm	?,p`qjsw=	?p`qjsw#?,b=?,oj=?,vo=?,gju=bppl`jbwfg#tjwk#wkf#sqldqbnnjmd#obmdvbdf?,b=?b#kqfe>!kwws9,,?,b=?,oj=?oj#`obpp>!elqn#b`wjlm>!kwws9,,?gju#pwzof>!gjpsobz9wzsf>!wf{w!#mbnf>!r!?wbaof#tjgwk>!233&!#ab`hdqlvmg.slpjwjlm9!#alqgfq>!3!#tjgwk>!qfo>!pklqw`vw#j`lm!#k5=?vo=?oj=?b#kqfe>!##?nfwb#kwws.frvju>!`pp!#nfgjb>!p`qffm!#qfpslmpjaof#elq#wkf#!#wzsf>!bssoj`bwjlm,!#pwzof>!ab`hdqlvmg.kwno8#`kbqpfw>vwe.;!#booltwqbmpsbqfm`z>!pwzofpkffw!#wzsf>!wf	?nfwb#kwws.frvju>!=?,psbm=?psbm#`obpp>!3!#`foopsb`jmd>!3!=8	?,p`qjsw=	?p`qjsw#plnfwjnfp#`boofg#wkfglfp#mlw#mf`fppbqjozElq#nlqf#jmelqnbwjlmbw#wkf#afdjmmjmd#le#?"GL@WZSF#kwno=?kwnosbqwj`vobqoz#jm#wkf#wzsf>!kjggfm!#mbnf>!ibubp`qjsw9uljg+3*8!feef`wjufmfpp#le#wkf#bvwl`lnsofwf>!lee!#dfmfqbooz#`lmpjgfqfg=?jmsvw#wzsf>!wf{w!#!=?,p`qjsw=	?p`qjswwkqlvdklvw#wkf#tlqog`lnnlm#njp`lm`fswjlmbppl`jbwjlm#tjwk#wkf?,gju=	?,gju=	?gju#`gvqjmd#kjp#ojefwjnf/`lqqfpslmgjmd#wl#wkfwzsf>!jnbdf,{.j`lm!#bm#jm`qfbpjmd#mvnafqgjsolnbwj`#qfobwjlmpbqf#lewfm#`lmpjgfqfgnfwb#`kbqpfw>!vwe.;!#?jmsvw#wzsf>!wf{w!#f{bnsofp#jm`ovgf#wkf!=?jnd#pq`>!kwws9,,jsbqwj`jsbwjlm#jm#wkfwkf#fpwbaojpknfmw#le	?,gju=	?gju#`obpp>!%bns8maps8%bns8maps8wl#gfwfqnjmf#tkfwkfqrvjwf#gjeefqfmw#eqlnnbqhfg#wkf#afdjmmjmdgjpwbm`f#afwtffm#wkf`lmwqjavwjlmp#wl#wkf`lmeoj`w#afwtffm#wkftjgfoz#`lmpjgfqfg#wltbp#lmf#le#wkf#ejqpwtjwk#ubqzjmd#gfdqffpkbuf#psf`vobwfg#wkbw+gl`vnfmw-dfwFofnfmwsbqwj`jsbwjmd#jm#wkflqjdjmbooz#gfufolsfgfwb#`kbqpfw>!vwe.;!=#wzsf>!wf{w,`pp!#,=	jmwfq`kbmdfbaoz#tjwknlqf#`olpfoz#qfobwfgpl`jbo#bmg#slojwj`bowkbw#tlvog#lwkfqtjpfsfqsfmgj`vobq#wl#wkfpwzof#wzsf>!wf{w,`ppwzsf>!pvanjw!#mbnf>!ebnjojfp#qfpjgjmd#jmgfufolsjmd#`lvmwqjfp`lnsvwfq#sqldqbnnjmdf`lmlnj`#gfufolsnfmwgfwfqnjmbwjlm#le#wkfelq#nlqf#jmelqnbwjlmlm#pfufqbo#l``bpjlmpslqwvdv/Fp#+Fvqlsfv*<O<V=l<\\={<Q=m=`<V<\\=o<V=l<\\={<Q=m=`<V<\\<L<R=m=m<T<U=m<V<R<U<P<\\=n<Y=l<T<\\<W<R<^<T<Q=h<R=l<P<\\=j<T<T=o<S=l<\\<^<W<Y<Q<T=c<Q<Y<R<]=i<R<X<T<P<R<T<Q=h<R=l<P<\\=j<T=c<t<Q=h<R=l<P<\\=j<T=c<L<Y=m<S=o<]<W<T<V<T<V<R<W<T=k<Y=m=n<^<R<T<Q=h<R=l<P<\\=j<T=b=n<Y=l=l<T=n<R=l<T<T<X<R=m=n<\\=n<R=k<Q<R4K5h5i4F5d4K4@4C5d5j4K5h4K4X4F4]4K5o4K4F4K5h4K5n4F4]4K4A4K4Fkwno8#`kbqpfw>VWE.;!#pfwWjnflvw+evm`wjlm+*gjpsobz9jmojmf.aol`h8?jmsvw#wzsf>!pvanjw!#wzsf#>#$wf{w,ibubp`qj?jnd#pq`>!kwws9,,ttt-!#!kwws9,,ttt-t0-lqd,pklqw`vw#j`lm!#kqfe>!!#bvwl`lnsofwf>!lee!#?,b=?,gju=?gju#`obpp>?,b=?,oj=	?oj#`obpp>!`pp!#wzsf>!wf{w,`pp!#?elqn#b`wjlm>!kwws9,,{w,`pp!#kqfe>!kwws9,,ojmh#qfo>!bowfqmbwf!#	?p`qjsw#wzsf>!wf{w,#lm`oj`h>!ibubp`qjsw9+mft#Gbwf*-dfwWjnf+*~kfjdkw>!2!#tjgwk>!2!#Sflsof$p#Qfsvaoj`#le##?b#kqfe>!kwws9,,ttt-wf{w.gf`lqbwjlm9vmgfqwkf#afdjmmjmd#le#wkf#?,gju=	?,gju=	?,gju=	fpwbaojpknfmw#le#wkf#?,gju=?,gju=?,gju=?,g ujftslqwxnjm.kfjdkw9	?p`qjsw#pq`>!kwws9,,lswjlm=?lswjlm#ubovf>lewfm#qfefqqfg#wl#bp#,lswjlm=	?lswjlm#ubov?"GL@WZSF#kwno=	?"..XJmwfqmbwjlmbo#Bjqslqw=	?b#kqfe>!kwws9,,ttt?,b=?b#kqfe>!kwws9,,t\fTL\fT^\fTE\fT^\fUh\fT{\fTN\roI\ro|\roL\ro{\roO\rov\rot\nAOGx\bTA\nzk#+\vUmGx*\fHD\fHS\fH\\\fIa\fHJ\fIk\fHZ\fHM\fHR\fHe\fHD\fH^\fIg\fHM\fHy\fIa\fH[\fIk\fHH\fIa\fH\\\fHp\fHR\fHD\fHy\fHR\fH\\\fIl\fHT\fHn\fH@\fHn\fHK\fHS\fHH\fHT\fIa\fHI\fHR\fHF\fHD\fHR\fHT\fIa\fHY\fIl\fHy\fHR\fH\\\fHT\fHn\fHT\fIa\fHy\fH\\\fHO\fHT\fHR\fHB\fH{\fIa\fH\\\fIl\fHv\fHS\fHs\fIa\fHL\fIg\fHn\fHY\fHS\fHp\fIa\fHr\fHR\fHD\fHi\fHB\fIk\fH\\\fHS\fHy\fHR\fHY\fHS\fHA\fHS\fHD\fIa\fHD\fH{\fHR\fHM\fHS\fHC\fHR\fHm\fHy\fIa\fHC\fIg\fHn\fHy\fHS\fHT\fIm\fH\\\fHy\fIa\fH[\fHR\fHF\fHU\fIm\fHm\fHv\fHH\fIl\fHF\fIa\fH\\\fH@\fHn\fHK\fHD\fHs\fHS\fHF\fIa\fHF\fHO\fIl\fHy\fIa\fH\\\fHS\fHy\fIk\fHs\fHF\fIa\fH\\\fHR\fH\\\fHn\fHA\fHF\fIa\fH\\\fHR\fHF\fIa\fHH\fHB\fHR\fH^\fHS\fHy\fIg\fHn\fH\\\fHG\fHP\fIa\fHH\fHR\fH\\\fHD\fHS\fH\\\fIa\fHB\fHR\fHO\fH^\fHS\fHB\fHS\fHs\fIk\fHMgfp`qjswjlm!#`lmwfmw>!gl`vnfmw-ol`bwjlm-sqlw-dfwFofnfmwpAzWbdMbnf+?"GL@WZSF#kwno=	?kwno#?nfwb#`kbqpfw>!vwe.;!=9vqo!#`lmwfmw>!kwws9,,-`pp!#qfo>!pwzofpkffw!pwzof#wzsf>!wf{w,`pp!=wzsf>!wf{w,`pp!#kqfe>!t0-lqd,2:::,{kwno!#{nowzsf>!wf{w,ibubp`qjsw!#nfwklg>!dfw!#b`wjlm>!ojmh#qfo>!pwzofpkffw!##>#gl`vnfmw-dfwFofnfmwwzsf>!jnbdf,{.j`lm!#,=`foosbggjmd>!3!#`foops-`pp!#wzsf>!wf{w,`pp!#?,b=?,oj=?oj=?b#kqfe>!!#tjgwk>!2!#kfjdkw>!2!!=?b#kqfe>!kwws9,,ttt-pwzof>!gjpsobz9mlmf8!=bowfqmbwf!#wzsf>!bssoj.,,T0@,,GWG#[KWNO#2-3#foopsb`jmd>!3!#`foosbg#wzsf>!kjggfm!#ubovf>!,b=%maps8?psbm#qlof>!p	?jmsvw#wzsf>!kjggfm!#obmdvbdf>!IbubP`qjsw!##gl`vnfmw-dfwFofnfmwpAd>!3!#`foopsb`jmd>!3!#zsf>!wf{w,`pp!#nfgjb>!wzsf>$wf{w,ibubp`qjsw$tjwk#wkf#f{`fswjlm#le#zsf>!wf{w,`pp!#qfo>!pw#kfjdkw>!2!#tjgwk>!2!#>$(fm`lgfVQJ@lnslmfmw+?ojmh#qfo>!bowfqmbwf!#	algz/#wq/#jmsvw/#wf{wnfwb#mbnf>!qlalwp!#`lmnfwklg>!slpw!#b`wjlm>!=	?b#kqfe>!kwws9,,ttt-`pp!#qfo>!pwzofpkffw!#?,gju=?,gju=?gju#`obppobmdvbdf>!ibubp`qjsw!=bqjb.kjggfm>!wqvf!=.[?qjsw!#wzsf>!wf{w,ibubpo>38~*+*8	+evm`wjlm+*xab`hdqlvmg.jnbdf9#vqo+,b=?,oj=?oj=?b#kqfe>!k\n\n?oj=?b#kqfe>!kwws9,,bwlq!#bqjb.kjggfm>!wqv=#?b#kqfe>!kwws9,,ttt-obmdvbdf>!ibubp`qjsw!#,lswjlm=	?lswjlm#ubovf,gju=?,gju=?gju#`obpp>qbwlq!#bqjb.kjggfm>!wqf>+mft#Gbwf*-dfwWjnf+*slqwvdv/Fp#+gl#Aqbpjo*<R=l<_<\\<Q<T<[<\\=j<T<T<^<R<[<P<R<Z<Q<R=m=n=`<R<]=l<\\<[<R<^<\\<Q<T=c=l<Y<_<T=m=n=l<\\=j<T<T<^<R<[<P<R<Z<Q<R=m=n<T<R<]=c<[<\\=n<Y<W=`<Q<\\?"GL@WZSF#kwno#SVAOJ@#!mw.Wzsf!#`lmwfmw>!wf{w,?nfwb#kwws.frvju>!@lmwfqbmpjwjlmbo,,FM!#!kwws9?kwno#{nomp>!kwws9,,ttt.,,T0@,,GWG#[KWNO#2-3#WGWG,{kwno2.wqbmpjwjlmbo,,ttt-t0-lqd,WQ,{kwno2,sf#>#$wf{w,ibubp`qjsw$8?nfwb#mbnf>!gfp`qjswjlmsbqfmwMlgf-jmpfqwAfelqf?jmsvw#wzsf>!kjggfm!#mbip!#wzsf>!wf{w,ibubp`qj+gl`vnfmw*-qfbgz+evm`wjp`qjsw#wzsf>!wf{w,ibubpjnbdf!#`lmwfmw>!kwws9,,VB.@lnsbwjaof!#`lmwfmw>wno8#`kbqpfw>vwe.;!#,=	ojmh#qfo>!pklqw`vw#j`lm?ojmh#qfo>!pwzofpkffw!#?,p`qjsw=	?p`qjsw#wzsf>>#gl`vnfmw-`qfbwfFofnfm?b#wbqdfw>!\\aobmh!#kqfe>#gl`vnfmw-dfwFofnfmwpAjmsvw#wzsf>!wf{w!#mbnf>b-wzsf#>#$wf{w,ibubp`qjmsvw#wzsf>!kjggfm!#mbnfkwno8#`kbqpfw>vwe.;!#,=gwg!=	?kwno#{nomp>!kwws.,,T0@,,GWG#KWNO#7-32#WfmwpAzWbdMbnf+$p`qjsw$*jmsvw#wzsf>!kjggfm!#mbn?p`qjsw#wzsf>!wf{w,ibubp!#pwzof>!gjpsobz9mlmf8!=gl`vnfmw-dfwFofnfmwAzJg+>gl`vnfmw-`qfbwfFofnfmw+$#wzsf>$wf{w,ibubp`qjsw$jmsvw#wzsf>!wf{w!#mbnf>!g-dfwFofnfmwpAzWbdMbnf+pmj`bo!#kqfe>!kwws9,,ttt-@,,GWG#KWNO#7-32#Wqbmpjw?pwzof#wzsf>!wf{w,`pp!=		?pwzof#wzsf>!wf{w,`pp!=jlmbo-gwg!=	?kwno#{nomp>kwws.frvju>!@lmwfmw.Wzsfgjmd>!3!#`foopsb`jmd>!3!kwno8#`kbqpfw>vwe.;!#,=	#pwzof>!gjpsobz9mlmf8!=??oj=?b#kqfe>!kwws9,,ttt-#wzsf>$wf{w,ibubp`qjsw$=<X<Y=c=n<Y<W=`<Q<R=m=n<T=m<R<R=n<^<Y=n=m=n<^<T<T<S=l<R<T<[<^<R<X=m=n<^<\\<]<Y<[<R<S<\\=m<Q<R=m=n<T\fHF\fIm\fHT\fIa\fHH\fHS\fHy\fHR\fHy\fHR\fHn\fH{\fIa\fH\\\fIk\fHT\fHe\fHD\fIa\fHU\fIg\fHn\fHD\fIk\fHY\fHS\fHK\fHR\fHD\fHT\fHA\fHR\fHG\fHS\fHy\fIa\fHT\fHS\fHn\fH{\fHT\fIm\fH\\\fHy\fIa\fH[\fHS\fHH\fHy\fIe\fHF\fIl\fH\\\fHR\fHk\fHs\fHY\fHS\fHp\fIa\fHr\fHR\fHF\fHD\fHy\fHR\fH\\\fIa\fH\\\fHY\fHR\fHd\fHT\fHy\fIa\fH\\\fHS\fHC\fHH\fHR', "\u06F7%\u018C'T%\x85'W%\xD7%O%g%\xA6&\u0193%\u01E5&>&*&'&^&\x88\u0178\u0C3E&\u01AD&\u0192&)&^&%&'&\x82&P&1&\xB1&3&]&m&u&E&t&C&\xCF&V&V&/&>&6&\u0F76\u177Co&p&@&E&M&P&x&@&F&e&\xCC&7&:&(&D&0&C&)&.&F&-&1&(&L&F&1\u025E*\u03EA\u21F3&\u1372&K&;&)&E&H&P&0&?&9&V&\x81&-&v&a&,&E&)&?&=&'&'&B&\u0D2E&\u0503&\u0316*&*8&%&%&&&%,)&\x9A&>&\x86&7&]&F&2&>&J&6&n&2&%&?&\x8E&2&6&J&g&-&0&,&*&J&*&O&)&6&(&<&B&N&.&P&@&2&.&W&M&%\u053C\x84(,(<&,&\u03DA&\u18C7&-&,(%&(&%&(\u013B0&X&D&\x81&j&'&J&(&.&B&3&Z&R&h&3&E&E&<\xC6-\u0360\u1EF3&%8?&@&,&Z&@&0&J&,&^&x&_&6&C&6&C\u072C\u2A25&f&-&-&-&-&,&J&2&8&z&8&C&Y&8&-&d&\u1E78\xCC-&7&1&F&7&t&W&7&I&.&.&^&=\u0F9C\u19D3&8(>&/&/&\u077B')'\u1065')'%@/&0&%\u043E\u09C0*&*@&C\u053D\u05D4\u0274\u05EB4\u0DD7\u071A\u04D16\u0D84&/\u0178\u0303Z&*%\u0246\u03FF&\u0134&1\xA8\u04B4\u0174", Ir, "AAAAKKLLKKKKKJJIHHIHHGGFF"), rl(Cr, Ir);
        function Tr(k) {
          this.data = new Int8Array(0), this.offset = 0, this.data = k;
        }
        p(Tr, "InputStream");
        function Bh(k, B, D, $) {
          if (k.input === null) return -1;
          const U = k.input, ie = Math.min(U.offset + $, U.data.length), pe = ie - U.offset;
          return B.set(U.data.subarray(U.offset, ie), D), U.offset += pe, pe;
        }
        p(Bh, "readInput");
        function gm(k) {
          k.input = new Tr(new Int8Array(0));
        }
        p(gm, "closeInput");
        function bm(k) {
          const B = k.length, D = new Int8Array(B);
          for (let $ = 0; $ < B; ++$) D[$] = k.charCodeAt($);
          return D;
        }
        p(bm, "toUsAsciiBytes");
        function Rh(k) {
          const B = k.length, D = new Int32Array(B);
          for (let $ = 0; $ < B; ++$) D[$] = k.charCodeAt($);
          return D;
        }
        p(Rh, "toUtf8Runes");
        function bt(k, B) {
          if (B >= 0) return B;
          throw k.runningState >= 0 && (k.runningState = B), new Error("Brotli error code: " + B);
        }
        p(bt, "makeError");
        function wm(k, B) {
          let D = new is();
          if (D.input = new Tr(k), b(D), B) {
            let ke = B.customDictionary;
            ke && g(D, ke);
          }
          let $ = 0, U = [];
          for (; ; ) {
            let ke = new Int8Array(16384);
            if (U.push(ke), D.output = ke, D.outputOffset = 0, D.outputLength = 16384, D.outputUsed = 0, Te(D), $ += D.outputUsed, D.outputUsed < 16384) break;
          }
          w(D), gm(D);
          let ie = new Int8Array($), pe = 0;
          for (let ke = 0; ke < U.length; ++ke) {
            let De = U[ke], Me = Math.min($, pe + 16384) - pe;
            Me < 16384 ? ie.set(De.subarray(0, Me), pe) : ie.set(De, pe), pe += Me;
          }
          return ie;
        }
        return p(wm, "decode"), wm;
      }, "makeBrotliDecode");
      rb = ab();
      ob = class extends Pn {
        static {
          p(this, "BrotliStream");
        }
        #e = true;
        constructor(e, n) {
          super(n), this.stream = e, this.dict = e.dict;
        }
        readBlock() {
          const e = this.stream.getBytes(), n = rb(new Int8Array(e.buffer, e.byteOffset, e.length));
          this.buffer = new Uint8Array(n.buffer, n.byteOffset, n.length), this.bufferLength = this.buffer.length, this.eof = true;
        }
        async getImageData(e, n) {
          const s = await this.asyncGetBytes();
          return s ? s.length <= e ? s : s.subarray(0, e) : this.getBytes(e);
        }
        async asyncGetBytes() {
          const { decompressed: e, compressed: n } = await this.asyncGetBytesFromDecompressionStream("brotli");
          return e || (this.#e = false, this.stream = new jt(n, 0, n.length, this.stream.dict), this.reset(), null);
        }
        get isAsync() {
          return this.#e;
        }
      };
      lb = class extends Pn {
        static {
          p(this, "CCITTFaxStream");
        }
        constructor(e, n, s) {
          super(n), this.stream = e, this.maybeLength = n, this.dict = e.dict, s instanceof _ || (s = _.empty), this.params = { K: s.get("K") || 0, EndOfLine: !!s.get("EndOfLine"), EncodedByteAlign: !!s.get("EncodedByteAlign"), Columns: s.get("Columns") || 1728, Rows: s.get("Rows") || 0, EndOfBlock: !!(s.get("EndOfBlock") ?? true), BlackIs1: !!s.get("BlackIs1") };
        }
        get bytes() {
          return fe(this, "bytes", this.stream.getBytes(this.maybeLength));
        }
        readBlock() {
          this.decodeImageFallback();
        }
        get isImageStream() {
          return true;
        }
        get isAsyncDecoder() {
          return true;
        }
        async decodeImage(e, n, s) {
          if (this.eof) return this.buffer;
          e || (e = this.stream.isAsync ? await this.stream.asyncGetBytes() || this.bytes : this.bytes);
          try {
            this.buffer = await jl.decode(e, this.dict.get("W", "Width"), this.dict.get("H", "Height"), null, this.params);
          } catch {
            return F("CCITTFaxStream: Falling back to JS CCITTFax decoder."), this.decodeImageFallback(e, n);
          }
          return this.bufferLength = this.buffer.length, this.eof = true, this.buffer;
        }
        decodeImageFallback(e, n) {
          if (this.eof) return this.buffer;
          const { params: s } = this;
          e || (this.stream.reset(), e = this.bytes);
          let i = 0;
          const a = { next() {
            return e[i++] ?? -1;
          } };
          n && this.buffer.byteLength < n && (this.buffer = new Uint8Array(n)), this.ccittFaxDecoder = new ku(a, s);
          let r = 0;
          for (; !this.eof; ) {
            const o = this.ccittFaxDecoder.readNextChar();
            if (o === -1) {
              this.eof = true;
              break;
            }
            n || this.ensureBuffer(r + 1), this.buffer[r++] = o;
          }
          return this.bufferLength = this.buffer.length, this.buffer.subarray(0, n || this.bufferLength);
        }
      };
      Fu = new Int32Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);
      fb = new Int32Array([3, 4, 5, 6, 7, 8, 9, 10, 65547, 65549, 65551, 65553, 131091, 131095, 131099, 131103, 196643, 196651, 196659, 196667, 262211, 262227, 262243, 262259, 327811, 327843, 327875, 327907, 258, 258, 258]);
      cb = new Int32Array([1, 2, 3, 4, 65541, 65543, 131081, 131085, 196625, 196633, 262177, 262193, 327745, 327777, 393345, 393409, 459009, 459137, 524801, 525057, 590849, 591361, 657409, 658433, 724993, 727041, 794625, 798721, 868353, 876545]);
      hb = [new Int32Array([459008, 524368, 524304, 524568, 459024, 524400, 524336, 590016, 459016, 524384, 524320, 589984, 524288, 524416, 524352, 590048, 459012, 524376, 524312, 589968, 459028, 524408, 524344, 590032, 459020, 524392, 524328, 59e4, 524296, 524424, 524360, 590064, 459010, 524372, 524308, 524572, 459026, 524404, 524340, 590024, 459018, 524388, 524324, 589992, 524292, 524420, 524356, 590056, 459014, 524380, 524316, 589976, 459030, 524412, 524348, 590040, 459022, 524396, 524332, 590008, 524300, 524428, 524364, 590072, 459009, 524370, 524306, 524570, 459025, 524402, 524338, 590020, 459017, 524386, 524322, 589988, 524290, 524418, 524354, 590052, 459013, 524378, 524314, 589972, 459029, 524410, 524346, 590036, 459021, 524394, 524330, 590004, 524298, 524426, 524362, 590068, 459011, 524374, 524310, 524574, 459027, 524406, 524342, 590028, 459019, 524390, 524326, 589996, 524294, 524422, 524358, 590060, 459015, 524382, 524318, 589980, 459031, 524414, 524350, 590044, 459023, 524398, 524334, 590012, 524302, 524430, 524366, 590076, 459008, 524369, 524305, 524569, 459024, 524401, 524337, 590018, 459016, 524385, 524321, 589986, 524289, 524417, 524353, 590050, 459012, 524377, 524313, 589970, 459028, 524409, 524345, 590034, 459020, 524393, 524329, 590002, 524297, 524425, 524361, 590066, 459010, 524373, 524309, 524573, 459026, 524405, 524341, 590026, 459018, 524389, 524325, 589994, 524293, 524421, 524357, 590058, 459014, 524381, 524317, 589978, 459030, 524413, 524349, 590042, 459022, 524397, 524333, 590010, 524301, 524429, 524365, 590074, 459009, 524371, 524307, 524571, 459025, 524403, 524339, 590022, 459017, 524387, 524323, 589990, 524291, 524419, 524355, 590054, 459013, 524379, 524315, 589974, 459029, 524411, 524347, 590038, 459021, 524395, 524331, 590006, 524299, 524427, 524363, 590070, 459011, 524375, 524311, 524575, 459027, 524407, 524343, 590030, 459019, 524391, 524327, 589998, 524295, 524423, 524359, 590062, 459015, 524383, 524319, 589982, 459031, 524415, 524351, 590046, 459023, 524399, 524335, 590014, 524303, 524431, 524367, 590078, 459008, 524368, 524304, 524568, 459024, 524400, 524336, 590017, 459016, 524384, 524320, 589985, 524288, 524416, 524352, 590049, 459012, 524376, 524312, 589969, 459028, 524408, 524344, 590033, 459020, 524392, 524328, 590001, 524296, 524424, 524360, 590065, 459010, 524372, 524308, 524572, 459026, 524404, 524340, 590025, 459018, 524388, 524324, 589993, 524292, 524420, 524356, 590057, 459014, 524380, 524316, 589977, 459030, 524412, 524348, 590041, 459022, 524396, 524332, 590009, 524300, 524428, 524364, 590073, 459009, 524370, 524306, 524570, 459025, 524402, 524338, 590021, 459017, 524386, 524322, 589989, 524290, 524418, 524354, 590053, 459013, 524378, 524314, 589973, 459029, 524410, 524346, 590037, 459021, 524394, 524330, 590005, 524298, 524426, 524362, 590069, 459011, 524374, 524310, 524574, 459027, 524406, 524342, 590029, 459019, 524390, 524326, 589997, 524294, 524422, 524358, 590061, 459015, 524382, 524318, 589981, 459031, 524414, 524350, 590045, 459023, 524398, 524334, 590013, 524302, 524430, 524366, 590077, 459008, 524369, 524305, 524569, 459024, 524401, 524337, 590019, 459016, 524385, 524321, 589987, 524289, 524417, 524353, 590051, 459012, 524377, 524313, 589971, 459028, 524409, 524345, 590035, 459020, 524393, 524329, 590003, 524297, 524425, 524361, 590067, 459010, 524373, 524309, 524573, 459026, 524405, 524341, 590027, 459018, 524389, 524325, 589995, 524293, 524421, 524357, 590059, 459014, 524381, 524317, 589979, 459030, 524413, 524349, 590043, 459022, 524397, 524333, 590011, 524301, 524429, 524365, 590075, 459009, 524371, 524307, 524571, 459025, 524403, 524339, 590023, 459017, 524387, 524323, 589991, 524291, 524419, 524355, 590055, 459013, 524379, 524315, 589975, 459029, 524411, 524347, 590039, 459021, 524395, 524331, 590007, 524299, 524427, 524363, 590071, 459011, 524375, 524311, 524575, 459027, 524407, 524343, 590031, 459019, 524391, 524327, 589999, 524295, 524423, 524359, 590063, 459015, 524383, 524319, 589983, 459031, 524415, 524351, 590047, 459023, 524399, 524335, 590015, 524303, 524431, 524367, 590079]), 9];
      ub = [new Int32Array([327680, 327696, 327688, 327704, 327684, 327700, 327692, 327708, 327682, 327698, 327690, 327706, 327686, 327702, 327694, 0, 327681, 327697, 327689, 327705, 327685, 327701, 327693, 327709, 327683, 327699, 327691, 327707, 327687, 327703, 327695, 0]), 5];
      Bu = class extends Pn {
        static {
          p(this, "FlateStream");
        }
        #e = true;
        constructor(e, n) {
          super(n), this.stream = e, this.dict = e.dict;
          const s = e.getByte(), i = e.getByte();
          if (s === -1 || i === -1) throw new Q(`Invalid header in flate stream: ${s}, ${i}`);
          if ((s & 15) !== 8) throw new Q(`Unknown compression method in flate stream: ${s}, ${i}`);
          if (((s << 8) + i) % 31 !== 0) throw new Q(`Bad FCHECK in flate stream: ${s}, ${i}`);
          if (i & 32) throw new Q(`FDICT bit set in flate stream: ${s}, ${i}`);
          this.codeSize = 0, this.codeBuf = 0;
        }
        async getImageData(e, n) {
          const s = await this.asyncGetBytes();
          return s ? s.length <= e ? s : s.subarray(0, e) : this.getBytes(e);
        }
        async asyncGetBytes() {
          const { decompressed: e, compressed: n } = await this.asyncGetBytesFromDecompressionStream("deflate");
          return e || (this.#e = false, this.stream = new jt(n, 2, n.length, this.stream.dict), this.reset(), null);
        }
        get isAsync() {
          return this.#e;
        }
        getBits(e) {
          const n = this.stream;
          let s = this.codeSize, i = this.codeBuf, a;
          for (; s < e; ) {
            if ((a = n.getByte()) === -1) throw new Q("Bad encoding in flate stream");
            i |= a << s, s += 8;
          }
          return a = i & (1 << e) - 1, this.codeBuf = i >> e, this.codeSize = s -= e, a;
        }
        getCode(e) {
          const n = this.stream, s = e[0], i = e[1];
          let a = this.codeSize, r = this.codeBuf, o;
          for (; a < i && (o = n.getByte()) !== -1; ) r |= o << a, a += 8;
          const l = s[r & (1 << i) - 1], f = l >> 16, c = l & 65535;
          if (f < 1 || a < f) throw new Q("Bad encoding in flate stream");
          return this.codeBuf = r >> f, this.codeSize = a - f, c;
        }
        generateHuffmanTable(e) {
          const n = e.length;
          let s = 0, i;
          for (i = 0; i < n; ++i) e[i] > s && (s = e[i]);
          const a = 1 << s, r = new Int32Array(a);
          for (let o = 1, l = 0, f = 2; o <= s; ++o, l <<= 1, f <<= 1) for (let c = 0; c < n; ++c) if (e[c] === o) {
            let h = 0, u = l;
            for (i = 0; i < o; ++i) h = h << 1 | u & 1, u >>= 1;
            for (i = h; i < a; i += f) r[i] = o << 16 | c;
            ++l;
          }
          return [r, s];
        }
        #t(e) {
          Ke(e), this.eof = true;
        }
        readBlock() {
          let e, n, s;
          const i = this.stream;
          try {
            n = this.getBits(3);
          } catch (f) {
            this.#t(f.message);
            return;
          }
          if (n & 1 && (this.eof = true), n >>= 1, n === 0) {
            let f;
            if ((f = i.getByte()) === -1) {
              this.#t("Bad block header in flate stream");
              return;
            }
            let c = f;
            if ((f = i.getByte()) === -1) {
              this.#t("Bad block header in flate stream");
              return;
            }
            if (c |= f << 8, (f = i.getByte()) === -1) {
              this.#t("Bad block header in flate stream");
              return;
            }
            let h = f;
            if ((f = i.getByte()) === -1) {
              this.#t("Bad block header in flate stream");
              return;
            }
            if (h |= f << 8, h !== (~c & 65535) && (c !== 0 || h !== 0)) throw new Q("Bad uncompressed block length in flate stream");
            this.codeBuf = 0, this.codeSize = 0;
            const u = this.bufferLength, d = u + c;
            if (e = this.ensureBuffer(d), this.bufferLength = d, c === 0) i.peekByte() === -1 && (this.eof = true);
            else {
              const m = i.getBytes(c);
              e.set(m, u), m.length < c && (this.eof = true);
            }
            return;
          }
          let a, r;
          if (n === 1) a = hb, r = ub;
          else if (n === 2) {
            const f = this.getBits(5) + 257, c = this.getBits(5) + 1, h = this.getBits(4) + 4, u = new Uint8Array(Fu.length);
            let d;
            for (d = 0; d < h; ++d) u[Fu[d]] = this.getBits(3);
            const m = this.generateHuffmanTable(u);
            s = 0, d = 0;
            const g = f + c, b = new Uint8Array(g);
            let w, x, y;
            for (; d < g; ) {
              const j = this.getCode(m);
              if (j === 16) w = 2, x = 3, y = s;
              else if (j === 17) w = 3, x = 3, y = s = 0;
              else if (j === 18) w = 7, x = 11, y = s = 0;
              else {
                b[d++] = s = j;
                continue;
              }
              let v = this.getBits(w) + x;
              for (; v-- > 0; ) b[d++] = y;
            }
            a = this.generateHuffmanTable(b.subarray(0, f)), r = this.generateHuffmanTable(b.subarray(f, g));
          } else throw new Q("Unknown block type in flate stream");
          e = this.buffer;
          let o = e ? e.length : 0, l = this.bufferLength;
          for (; ; ) {
            let f = this.getCode(a);
            if (f < 256) {
              l + 1 >= o && (e = this.ensureBuffer(l + 1), o = e.length), e[l++] = f;
              continue;
            }
            if (f === 256) {
              this.bufferLength = l;
              return;
            }
            f -= 257, f = fb[f];
            let c = f >> 16;
            c > 0 && (c = this.getBits(c)), s = (f & 65535) + c, f = this.getCode(r), f = cb[f], c = f >> 16, c > 0 && (c = this.getBits(c));
            const h = (f & 65535) + c;
            l + s >= o && (e = this.ensureBuffer(l + s), o = e.length);
            for (let u = 0; u < s; ++u, ++l) e[l] = e[l - h];
          }
        }
      };
      db = class extends Pn {
        static {
          p(this, "Jbig2Stream");
        }
        constructor(e, n, s) {
          super(n), this.stream = e, this.dict = e.dict, this.maybeLength = n, this.params = s;
        }
        get bytes() {
          return fe(this, "bytes", this.stream.getBytes(this.maybeLength));
        }
        ensureBuffer(e) {
        }
        readBlock() {
          this.decodeImageFallback();
        }
        get isAsyncDecoder() {
          return true;
        }
        get isImageStream() {
          return true;
        }
        async decodeImage(e, n, s) {
          if (this.eof) return this.buffer;
          e ||= this.bytes;
          try {
            let i = null;
            if (this.params instanceof _) {
              const a = this.params.get("JBIG2Globals");
              a instanceof ze && (i = a.getBytes());
            }
            this.buffer = await jl.decode(e, this.dict.get("Width"), this.dict.get("Height"), i);
          } catch {
            return F("Jbig2Stream: Falling back to JS JBIG2 decoder."), this.decodeImageFallback(e, n);
          }
          return this.bufferLength = this.buffer.length, this.eof = true, this.buffer;
        }
        decodeImageFallback(e, n) {
          if (this.eof) return this.buffer;
          e ||= this.bytes;
          const s = new Gg(), i = [];
          if (this.params instanceof _) {
            const o = this.params.get("JBIG2Globals");
            if (o instanceof ze) {
              const l = o.getBytes();
              i.push({ data: l, start: 0, end: l.length });
            }
          }
          i.push({ data: e, start: 0, end: e.length });
          const a = s.parseChunks(i), r = a.length;
          for (let o = 0; o < r; o++) a[o] ^= 255;
          return this.buffer = a, this.bufferLength = r, this.eof = true, this.buffer;
        }
        get canAsyncDecodeImageFromBuffer() {
          return this.stream.isAsync;
        }
      };
      pb = class extends Pn {
        static {
          p(this, "JpxStream");
        }
        constructor(e, n, s) {
          super(n), this.stream = e, this.dict = e.dict, this.maybeLength = n, this.params = s;
        }
        get bytes() {
          return fe(this, "bytes", this.stream.getBytes(this.maybeLength));
        }
        ensureBuffer(e) {
        }
        readBlock(e) {
          Ye("JpxStream.readBlock");
        }
        get isAsyncDecoder() {
          return true;
        }
        async decodeImage(e, n, s) {
          return this.eof ? this.buffer : (e ||= this.bytes, this.buffer = await Bl.decode(e, s), this.bufferLength = this.buffer.length, this.eof = true, this.buffer);
        }
        get canAsyncDecodeImageFromBuffer() {
          return this.stream.isAsync;
        }
        get isImageStream() {
          return true;
        }
      };
      Ru = class extends Pn {
        static {
          p(this, "LZWStream");
        }
        constructor(e, n, s) {
          super(n), this.stream = e, this.dict = e.dict, this.cachedData = 0, this.bitsCached = 0;
          const i = 4096, a = { earlyChange: s, codeLength: 9, nextCode: 258, dictionaryValues: new Uint8Array(i), dictionaryLengths: new Uint16Array(i), dictionaryPrevCodes: new Uint16Array(i), currentSequence: new Uint8Array(i), currentSequenceLength: 0 };
          for (let r = 0; r < 256; ++r) a.dictionaryValues[r] = r, a.dictionaryLengths[r] = 1;
          this.lzwState = a;
        }
        readBits(e) {
          let n = this.bitsCached, s = this.cachedData;
          for (; n < e; ) {
            const i = this.stream.getByte();
            if (i === -1) return this.eof = true, null;
            s = s << 8 | i, n += 8;
          }
          return this.bitsCached = n -= e, this.cachedData = s, s >>> n & (1 << e) - 1;
        }
        readBlock() {
          let s = 1024, i, a, r;
          const o = this.lzwState;
          if (!o) return;
          const l = o.earlyChange;
          let f = o.nextCode;
          const c = o.dictionaryValues, h = o.dictionaryLengths, u = o.dictionaryPrevCodes;
          let d = o.codeLength, m = o.prevCode;
          const g = o.currentSequence;
          let b = o.currentSequenceLength, w = 0, x = this.bufferLength, y = this.ensureBuffer(this.bufferLength + s);
          for (i = 0; i < 512; i++) {
            const j = this.readBits(d), v = b > 0;
            if (j < 256) g[0] = j, b = 1;
            else if (j >= 258) if (j < f) for (b = h[j], a = b - 1, r = j; a >= 0; a--) g[a] = c[r], r = u[r];
            else g[b++] = g[0];
            else if (j === 256) {
              d = 9, f = 258, b = 0;
              continue;
            } else {
              this.eof = true, delete this.lzwState;
              break;
            }
            if (v && (u[f] = m, h[f] = h[m] + 1, c[f] = g[0], f++, d = f + l & f + l - 1 ? d : Math.min(Math.log(f + l) / 0.6931471805599453 + 1, 12) | 0), m = j, w += b, s < w) {
              do
                s += 512;
              while (s < w);
              y = this.ensureBuffer(this.bufferLength + s);
            }
            for (a = 0; a < b; a++) y[x++] = g[a];
          }
          o.nextCode = f, o.codeLength = d, o.prevCode = m, o.currentSequenceLength = b, this.bufferLength = x;
        }
      };
      _u = class extends Pn {
        static {
          p(this, "PredictorStream");
        }
        constructor(e, n, s) {
          if (super(n), !(s instanceof _)) return e;
          const i = this.predictor = s.get("Predictor") || 1;
          if (i <= 1) return e;
          if (i !== 2 && (i < 10 || i > 15)) throw new Q(`Unsupported predictor: ${i}`);
          this.readBlock = i === 2 ? this.readBlockTiff : this.readBlockPng, this.stream = e, this.dict = e.dict;
          const a = this.colors = s.get("Colors") || 1, r = this.bits = s.get("BPC", "BitsPerComponent") || 8, o = this.columns = s.get("Columns") || 1;
          return this.pixBytes = a * r + 7 >> 3, this.rowBytes = o * a * r + 7 >> 3, this;
        }
        readBlockTiff() {
          const e = this.rowBytes, n = this.bufferLength, s = this.ensureBuffer(n + e), i = this.bits, a = this.colors, r = this.stream.getBytes(e);
          if (this.eof = !r.length, this.eof) return;
          let o = 0, l = 0, f = 0, c = 0, h = n, u;
          if (i === 1 && a === 1) for (u = 0; u < e; ++u) {
            let d = r[u] ^ o;
            d ^= d >> 1, d ^= d >> 2, d ^= d >> 4, o = (d & 1) << 7, s[h++] = d;
          }
          else if (i === 8) {
            for (u = 0; u < a; ++u) s[h++] = r[u];
            for (; u < e; ++u) s[h] = s[h - a] + r[u], h++;
          } else if (i === 16) {
            const d = a * 2;
            for (u = 0; u < d; ++u) s[h++] = r[u];
            for (; u < e; u += 2) {
              const m = ((r[u] & 255) << 8) + (r[u + 1] & 255) + ((s[h - d] & 255) << 8) + (s[h - d + 1] & 255);
              s[h++] = m >> 8 & 255, s[h++] = m & 255;
            }
          } else {
            const d = new Uint8Array(a + 1), m = (1 << i) - 1;
            let g = 0, b = n;
            const w = this.columns;
            for (u = 0; u < w; ++u) for (let x = 0; x < a; ++x) f < i && (o = o << 8 | r[g++] & 255, f += 8), d[x] = d[x] + (o >> f - i) & m, f -= i, l = l << i | d[x], c += i, c >= 8 && (s[b++] = l >> c - 8 & 255, c -= 8);
            c > 0 && (s[b++] = (l << 8 - c) + (o & (1 << 8 - c) - 1));
          }
          this.bufferLength += e;
        }
        readBlockPng() {
          const e = this.rowBytes, n = this.pixBytes, s = this.stream.getByte(), i = this.stream.getBytes(e);
          if (this.eof = !i.length, this.eof) return;
          const a = this.bufferLength, r = this.ensureBuffer(a + e);
          let o = r.subarray(a - e, a);
          o.length === 0 && (o = new Uint8Array(e));
          let l, f = a, c, h;
          switch (s) {
            case 0:
              for (l = 0; l < e; ++l) r[f++] = i[l];
              break;
            case 1:
              for (l = 0; l < n; ++l) r[f++] = i[l];
              for (; l < e; ++l) r[f] = r[f - n] + i[l] & 255, f++;
              break;
            case 2:
              for (l = 0; l < e; ++l) r[f++] = o[l] + i[l] & 255;
              break;
            case 3:
              for (l = 0; l < n; ++l) r[f++] = (o[l] >> 1) + i[l];
              for (; l < e; ++l) r[f] = (o[l] + r[f - n] >> 1) + i[l] & 255, f++;
              break;
            case 4:
              for (l = 0; l < n; ++l) c = o[l], h = i[l], r[f++] = c + h;
              for (; l < e; ++l) {
                c = o[l];
                const u = o[l - n], d = r[f - n], m = d + c - u;
                let g = m - d;
                g < 0 && (g = -g);
                let b = m - c;
                b < 0 && (b = -b);
                let w = m - u;
                w < 0 && (w = -w), h = i[l], g <= b && g <= w ? r[f++] = d + h : b <= w ? r[f++] = c + h : r[f++] = u + h;
              }
              break;
            default:
              throw new Q(`Unsupported predictor: ${s}`);
          }
          this.bufferLength += e;
        }
      };
      mb = class extends Pn {
        static {
          p(this, "RunLengthStream");
        }
        constructor(e, n) {
          super(n), this.stream = e, this.dict = e.dict;
        }
        readBlock() {
          const e = this.stream.getBytes(2);
          if (!e || e.length < 2 || e[0] === 128) {
            this.eof = true;
            return;
          }
          let n, s = this.bufferLength, i = e[0];
          if (i < 128) {
            if (n = this.ensureBuffer(s + i + 1), n[s++] = e[1], i > 0) {
              const a = this.stream.getBytes(i);
              n.set(a, s), s += i;
            }
          } else i = 257 - i, n = this.ensureBuffer(s + i + 1), n.fill(e[1], s, s + i), s += i;
          this.bufferLength = s;
        }
      };
      gb = 1e3;
      p(bb, "getInlineImageCacheKey");
      Pi = class {
        static {
          p(this, "Parser");
        }
        constructor({ lexer: e, xref: n, allowStreams: s = false, recoveryMode: i = false }) {
          this.lexer = e, this.xref = n, this.allowStreams = s, this.recoveryMode = i, this.imageCache = /* @__PURE__ */ Object.create(null), this._imageId = 0, this.refill();
        }
        refill() {
          this.buf1 = this.lexer.getObj(), this.buf2 = this.lexer.getObj();
        }
        shift() {
          this.buf2 instanceof Qt && this.buf2.cmd === "ID" ? (this.buf1 = this.buf2, this.buf2 = null) : (this.buf1 = this.buf2, this.buf2 = this.lexer.getObj());
        }
        tryShift() {
          try {
            return this.shift(), true;
          } catch (e) {
            if (e instanceof Ft) throw e;
            return false;
          }
        }
        getObj(e = null) {
          const n = this.buf1;
          if (this.shift(), n instanceof Qt) switch (n.cmd) {
            case "BI":
              return this.makeInlineImage(e);
            case "[":
              const s = [];
              for (; !fn(this.buf1, "]") && this.buf1 !== pn; ) s.push(this.getObj(e));
              if (this.buf1 === pn) {
                if (this.recoveryMode) return s;
                throw new cf("End of file inside array.");
              }
              return this.shift(), s;
            case "<<":
              const i = new _(this.xref);
              for (; !fn(this.buf1, ">>") && this.buf1 !== pn; ) {
                if (!(this.buf1 instanceof te)) {
                  Ke("Malformed dictionary: key must be a name object"), this.shift();
                  continue;
                }
                const a = this.buf1.name;
                if (this.shift(), this.buf1 === pn) break;
                i.set(a, this.getObj(e));
              }
              if (this.buf1 === pn) {
                if (this.recoveryMode) return i;
                throw new cf("End of file inside dictionary.");
              }
              return fn(this.buf2, "stream") ? this.allowStreams ? this.makeStream(i, e) : i : (this.shift(), i);
            default:
              return n;
          }
          if (Number.isInteger(n)) {
            if (Number.isInteger(this.buf1) && fn(this.buf2, "R")) {
              const s = ae.get(n, this.buf1);
              return this.shift(), this.shift(), s;
            }
            return n;
          }
          return typeof n == "string" && e ? e.decryptString(n) : n;
        }
        findDefaultInlineStreamEnd(e) {
          const { knownCommands: l } = this.lexer, f = e.pos, c = 15;
          let h = 0, u, d;
          for (; (u = e.getByte()) !== -1; ) if (h === 0) h = u === 69 ? 1 : 0;
          else if (h === 1) h = u === 73 ? 2 : 0;
          else if (u === 32 || u === 10 || u === 13) {
            d = e.pos;
            const g = e.peekBytes(c), b = g.length;
            if (b === 0) break;
            for (let y = 0; y < b; y++) if (u = g[y], !(u === 0 && g[y + 1] !== 0) && u !== 10 && u !== 13 && (u < 32 || u > 127)) {
              h = 0;
              break;
            }
            if (h !== 2) continue;
            if (!l) {
              F("findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined.");
              continue;
            }
            const w = new Ps(new jt(e.peekBytes(5 * c)), l);
            w._hexStringWarn = () => {
            };
            let x = 0;
            for (; ; ) {
              const y = w.getObj();
              if (y === pn) {
                h = 0;
                break;
              }
              if (y instanceof Qt) {
                const j = l[y.cmd];
                if (j) {
                  if (j.variableArgs ? x <= j.numArgs : x === j.numArgs) break;
                } else {
                  h = 0;
                  break;
                }
                x = 0;
                continue;
              }
              x++;
            }
            if (h === 2) break;
          } else h = 0;
          u === -1 && (F("findDefaultInlineStreamEnd: Reached the end of the stream without finding a valid EI marker"), d && (F('... trying to recover by using the last "EI" occurrence.'), e.skip(-(e.pos - d))));
          let m = 4;
          return e.skip(-m), u = e.peekByte(), e.skip(m), ls(u) || m--, e.pos - m - f;
        }
        findDCTDecodeInlineStreamEnd(e) {
          const n = e.pos;
          let s = false, i, a;
          for (; (i = e.getByte()) !== -1; ) if (i === 255) {
            switch (e.getByte()) {
              case 0:
                break;
              case 255:
                e.skip(-1);
                break;
              case 217:
                s = true;
                break;
              case 192:
              case 193:
              case 194:
              case 195:
              case 197:
              case 198:
              case 199:
              case 201:
              case 202:
              case 203:
              case 205:
              case 206:
              case 207:
              case 196:
              case 204:
              case 218:
              case 219:
              case 220:
              case 221:
              case 222:
              case 223:
              case 224:
              case 225:
              case 226:
              case 227:
              case 228:
              case 229:
              case 230:
              case 231:
              case 232:
              case 233:
              case 234:
              case 235:
              case 236:
              case 237:
              case 238:
              case 239:
              case 254:
                a = e.getUint16(), a > 2 ? e.skip(a - 2) : e.skip(-2);
                break;
            }
            if (s) break;
          }
          const r = e.pos - n;
          return i === -1 ? (F("Inline DCTDecode image stream: EOI marker not found, searching for /EI/ instead."), e.skip(-r), this.findDefaultInlineStreamEnd(e)) : (this.inlineStreamSkipEI(e), r);
        }
        findASCII85DecodeInlineStreamEnd(e) {
          const i = e.pos;
          let a;
          for (; (a = e.getByte()) !== -1; ) if (a === 126) {
            const o = e.pos;
            for (a = e.peekByte(); ls(a); ) e.skip(), a = e.peekByte();
            if (a === 62) {
              e.skip();
              break;
            }
            if (e.pos > o) {
              const l = e.peekBytes(2);
              if (l[0] === 69 && l[1] === 73) break;
            }
          }
          const r = e.pos - i;
          return a === -1 ? (F("Inline ASCII85Decode image stream: EOD marker not found, searching for /EI/ instead."), e.skip(-r), this.findDefaultInlineStreamEnd(e)) : (this.inlineStreamSkipEI(e), r);
        }
        findASCIIHexDecodeInlineStreamEnd(e) {
          const s = e.pos;
          let i;
          for (; (i = e.getByte()) !== -1 && i !== 62; ) ;
          const a = e.pos - s;
          return i === -1 ? (F("Inline ASCIIHexDecode image stream: EOD marker not found, searching for /EI/ instead."), e.skip(-a), this.findDefaultInlineStreamEnd(e)) : (this.inlineStreamSkipEI(e), a);
        }
        inlineStreamSkipEI(e) {
          let i = 0, a;
          for (; (a = e.getByte()) !== -1; ) if (i === 0) i = a === 69 ? 1 : 0;
          else if (i === 1) i = a === 73 ? 2 : 0;
          else if (i === 2) break;
        }
        makeInlineImage(e) {
          const n = this.lexer, s = n.stream, i = /* @__PURE__ */ Object.create(null);
          let a;
          for (; !fn(this.buf1, "ID") && this.buf1 !== pn; ) {
            if (!(this.buf1 instanceof te)) throw new Q("Dictionary key must be a name object");
            const d = this.buf1.name;
            if (this.shift(), this.buf1 === pn) break;
            i[d] = this.getObj(e);
          }
          n.beginInlineImagePos !== -1 && (a = s.pos - n.beginInlineImagePos);
          const r = this.xref.fetchIfRef(i.F || i.Filter);
          let o;
          if (r instanceof te) o = r.name;
          else if (Array.isArray(r)) {
            const d = this.xref.fetchIfRef(r[0]);
            d instanceof te && (o = d.name);
          }
          const l = s.pos;
          let f;
          switch (o) {
            case "DCT":
            case "DCTDecode":
              f = this.findDCTDecodeInlineStreamEnd(s);
              break;
            case "A85":
            case "ASCII85Decode":
              f = this.findASCII85DecodeInlineStreamEnd(s);
              break;
            case "AHx":
            case "ASCIIHexDecode":
              f = this.findASCIIHexDecodeInlineStreamEnd(s);
              break;
            default:
              f = this.findDefaultInlineStreamEnd(s);
          }
          let c;
          if (f < gb && a > 0) {
            const d = s.pos;
            s.pos = n.beginInlineImagePos, c = bb(s.getBytes(a + f)), s.pos = d;
            const m = this.imageCache[c];
            if (m !== void 0) return this.buf2 = Qt.get("EI"), this.shift(), m.reset(), m;
          }
          const h = new _(this.xref);
          for (const d in i) h.set(d, i[d]);
          let u = s.makeSubStream(l, f, h);
          return e && (u = e.createStream(u, f)), u = this.filter(u, h, f), u.dict = h, c !== void 0 && (u.cacheKey = `inline_img_${++this._imageId}`, this.imageCache[c] = u), this.buf2 = Qt.get("EI"), this.shift(), u;
        }
        #e(e) {
          const { stream: n } = this.lexer;
          n.pos = e;
          const s = 2048, i = 9, a = new Uint8Array([101, 110, 100]), r = a.length, o = [new Uint8Array([115, 116, 114, 101, 97, 109]), new Uint8Array([115, 116, 101, 97, 109]), new Uint8Array([115, 116, 114, 101, 97])], l = i - r;
          for (; n.pos < n.end; ) {
            const f = n.peekBytes(s), c = f.length - i;
            if (c <= 0) break;
            let h = 0;
            for (; h < c; ) {
              let u = 0;
              for (; u < r && f[h + u] === a[u]; ) u++;
              if (u >= r) {
                let d = false;
                for (const m of o) {
                  const g = m.length;
                  let b = 0;
                  for (; b < g && f[h + u + b] === m[b]; ) b++;
                  if (b >= l) {
                    d = true;
                    break;
                  }
                  if (b >= g) {
                    const w = f[h + u + b];
                    ls(w) && (Ke(`Found "${Vn([...a, ...m])}" when searching for endstream command.`), d = true);
                    break;
                  }
                }
                if (d) return n.pos += h, n.pos - e;
              }
              h++;
            }
            n.pos += c;
          }
          return -1;
        }
        makeStream(e, n) {
          const s = this.lexer;
          let i = s.stream;
          s.skipToNextLine();
          const a = i.pos - 1;
          let r = e.get("Length");
          if (Number.isInteger(r) || (Ke(`Bad length "${r && r.toString()}" in stream.`), r = 0), i.pos = a + r, s.nextChar(), this.tryShift() && fn(this.buf2, "endstream")) this.shift();
          else {
            if (r = this.#e(a), r < 0) throw new Q("Missing endstream command.");
            s.nextChar(), this.shift(), this.shift();
          }
          return this.shift(), i = i.makeSubStream(a, r, e), n && (i = n.createStream(i, r)), i = this.filter(i, e, r), i.dict = e, i;
        }
        filter(e, n, s) {
          let i = n.get("F", "Filter"), a = n.get("DP", "DecodeParms");
          if (i instanceof te) return Array.isArray(a) && F("/DecodeParms should not be an Array, when /Filter is a Name."), this.makeFilter(e, i.name, s, a);
          let r = s;
          if (Array.isArray(i)) {
            const o = i, l = a;
            for (let f = 0, c = o.length; f < c; ++f) {
              if (i = this.xref.fetchIfRef(o[f]), !(i instanceof te)) throw new Q(`Bad filter name "${i}"`);
              a = null, Array.isArray(l) && f in l && (a = this.xref.fetchIfRef(l[f])), e = this.makeFilter(e, i.name, r, a), r = null;
            }
          }
          return e;
        }
        makeFilter(e, n, s, i) {
          if (s === 0) return F(`Empty "${n}" stream.`), new xf();
          try {
            switch (n) {
              case "Fl":
              case "FlateDecode":
                return i ? new _u(new Bu(e, s), s, i) : new Bu(e, s);
              case "LZW":
              case "LZWDecode":
                let a = 1;
                return i ? (i.has("EarlyChange") && (a = i.get("EarlyChange")), new _u(new Ru(e, s, a), s, i)) : new Ru(e, s, a);
              case "DCT":
              case "DCTDecode":
                return new wr(e, s, i);
              case "JPX":
              case "JPXDecode":
                return new pb(e, s, i);
              case "A85":
              case "ASCII85Decode":
                return new sb(e, s);
              case "AHx":
              case "ASCIIHexDecode":
                return new ib(e, s);
              case "CCF":
              case "CCITTFaxDecode":
                return new lb(e, s, i);
              case "RL":
              case "RunLengthDecode":
                return new mb(e, s);
              case "JBIG2Decode":
                return new db(e, s, i);
              case "BrotliDecode":
                return new ob(e, s);
            }
            return F(`Filter "${n}" is not supported.`), e;
          } catch (a) {
            if (a instanceof Ft) throw a;
            return F(`Invalid stream: "${a}"`), new xf();
          }
        }
      };
      $a = [1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
      p(Cf, "toHexDigit");
      Ps = class {
        static {
          p(this, "Lexer");
        }
        constructor(e, n = null) {
          this.stream = e, this.nextChar(), this.strBuf = [], this.knownCommands = n, this._hexStringNumWarn = 0, this.beginInlineImagePos = -1;
        }
        nextChar() {
          return this.currentChar = this.stream.getByte();
        }
        peekChar() {
          return this.stream.peekByte();
        }
        getNumber() {
          let e = this.currentChar, n = 0, s = 1;
          if (e === 45 ? (s = -1, e = this.nextChar(), e === 45 && (e = this.nextChar())) : e === 43 && (e = this.nextChar()), e === 10 || e === 13) do
            e = this.nextChar();
          while (e === 10 || e === 13);
          if (e === 46 && (n = 10, e = this.nextChar()), e < 48 || e > 57) {
            const a = `Invalid number: ${String.fromCharCode(e)} (charCode ${e})`;
            if (ls(e) || e === 40 || e === 60 || e === -1) return Ke(`Lexer.getNumber - "${a}".`), 0;
            throw new Q(a);
          }
          let i = e - 48;
          for (; (e = this.nextChar()) >= 0; ) if (e >= 48 && e <= 57) {
            const a = e - 48;
            n !== 0 && (n *= 10), i = i * 10 + a;
          } else if (e === 46) if (n === 0) n = 1;
          else break;
          else if (e === 45) F("Badly formatted number: minus sign in the middle");
          else break;
          return n !== 0 && (i /= n), s * i;
        }
        getString() {
          let e = 1, n = false;
          const s = this.strBuf;
          s.length = 0;
          let i = this.nextChar();
          for (; ; ) {
            let a = false;
            switch (i | 0) {
              case -1:
                F("Unterminated string"), n = true;
                break;
              case 40:
                ++e, s.push("(");
                break;
              case 41:
                --e === 0 ? (this.nextChar(), n = true) : s.push(")");
                break;
              case 92:
                switch (i = this.nextChar(), i) {
                  case -1:
                    F("Unterminated string"), n = true;
                    break;
                  case 110:
                    s.push(`
`);
                    break;
                  case 114:
                    s.push("\r");
                    break;
                  case 116:
                    s.push("	");
                    break;
                  case 98:
                    s.push("\b");
                    break;
                  case 102:
                    s.push("\f");
                    break;
                  case 92:
                  case 40:
                  case 41:
                    s.push(String.fromCharCode(i));
                    break;
                  case 48:
                  case 49:
                  case 50:
                  case 51:
                  case 52:
                  case 53:
                  case 54:
                  case 55:
                    let r = i & 15;
                    i = this.nextChar(), a = true, i >= 48 && i <= 55 && (r = (r << 3) + (i & 15), i = this.nextChar(), i >= 48 && i <= 55 && (a = false, r = (r << 3) + (i & 15))), s.push(String.fromCharCode(r));
                    break;
                  case 13:
                    this.peekChar() === 10 && this.nextChar();
                    break;
                  case 10:
                    break;
                  default:
                    s.push(String.fromCharCode(i));
                    break;
                }
                break;
              default:
                s.push(String.fromCharCode(i));
                break;
            }
            if (n) break;
            a || (i = this.nextChar());
          }
          return s.join("");
        }
        getName() {
          let e, n;
          const s = this.strBuf;
          for (s.length = 0; (e = this.nextChar()) >= 0 && !$a[e]; ) if (e === 35) {
            if (e = this.nextChar(), $a[e]) {
              F("Lexer_getName: NUMBER SIGN (#) should be followed by a hexadecimal number."), s.push("#");
              break;
            }
            const i = Cf(e);
            if (i !== -1) {
              n = e, e = this.nextChar();
              const a = Cf(e);
              if (a === -1) {
                if (F(`Lexer_getName: Illegal digit (${String.fromCharCode(e)}) in hexadecimal number.`), s.push("#", String.fromCharCode(n)), $a[e]) break;
                s.push(String.fromCharCode(e));
                continue;
              }
              s.push(String.fromCharCode(i << 4 | a));
            } else s.push("#", String.fromCharCode(e));
          } else s.push(String.fromCharCode(e));
          return s.length > 127 && F(`Name token is longer than allowed by the spec: ${s.length}`), te.get(s.join(""));
        }
        _hexStringWarn(e) {
          if (this._hexStringNumWarn++ === 5) {
            F("getHexString - ignoring additional invalid characters.");
            return;
          }
          this._hexStringNumWarn > 5 || F(`getHexString - ignoring invalid character: ${e}`);
        }
        getHexString() {
          const e = this.strBuf;
          e.length = 0;
          let n = this.currentChar, s = -1, i = -1;
          for (this._hexStringNumWarn = 0; ; ) if (n < 0) {
            F("Unterminated hex string");
            break;
          } else if (n === 62) {
            this.nextChar();
            break;
          } else if ($a[n] === 1) {
            n = this.nextChar();
            continue;
          } else i = Cf(n), i === -1 ? this._hexStringWarn(n) : s === -1 ? s = i : (e.push(String.fromCharCode(s << 4 | i)), s = -1), n = this.nextChar();
          return s !== -1 && e.push(String.fromCharCode(s << 4)), e.join("");
        }
        getObj() {
          let e = false, n = this.currentChar;
          for (; ; ) {
            if (n < 0) return pn;
            if (e) (n === 10 || n === 13) && (e = false);
            else if (n === 37) e = true;
            else if ($a[n] !== 1) break;
            n = this.nextChar();
          }
          switch (n | 0) {
            case 48:
            case 49:
            case 50:
            case 51:
            case 52:
            case 53:
            case 54:
            case 55:
            case 56:
            case 57:
            case 43:
            case 45:
            case 46:
              return this.getNumber();
            case 40:
              return this.getString();
            case 47:
              return this.getName();
            case 91:
              return this.nextChar(), Qt.get("[");
            case 93:
              return this.nextChar(), Qt.get("]");
            case 60:
              return n = this.nextChar(), n === 60 ? (this.nextChar(), Qt.get("<<")) : this.getHexString();
            case 62:
              return n = this.nextChar(), n === 62 ? (this.nextChar(), Qt.get(">>")) : Qt.get(">");
            case 123:
              return this.nextChar(), Qt.get("{");
            case 125:
              return this.nextChar(), Qt.get("}");
            case 41:
              throw this.nextChar(), new Q(`Illegal character: ${n}`);
          }
          let s = String.fromCharCode(n);
          if (n < 32 || n > 127) {
            const r = this.peekChar();
            if (r >= 32 && r <= 127) return this.nextChar(), Qt.get(s);
          }
          const i = this.knownCommands;
          let a = i?.[s] !== void 0;
          for (; (n = this.nextChar()) >= 0 && !$a[n]; ) {
            const r = s + String.fromCharCode(n);
            if (a && i[r] === void 0) break;
            if (s.length === 128) throw new Q(`Command token too long: ${s.length}`);
            s = r, a = i?.[s] !== void 0;
          }
          return s === "true" ? true : s === "false" ? false : s === "null" ? null : (s === "BI" && (this.beginInlineImagePos = this.stream.pos), Qt.get(s));
        }
        skipToNextLine() {
          let e = this.currentChar;
          for (; e >= 0; ) {
            if (e === 13) {
              e = this.nextChar(), e === 10 && this.nextChar();
              break;
            } else if (e === 10) {
              this.nextChar();
              break;
            }
            e = this.nextChar();
          }
        }
      };
      wb = class {
        static {
          p(this, "Linearization");
        }
        static create(e) {
          function n(h, u, d = false) {
            const m = h.get(u);
            if (Number.isInteger(m) && (d ? m >= 0 : m > 0)) return m;
            throw new Error(`The "${u}" parameter in the linearization dictionary is invalid.`);
          }
          p(n, "getInt");
          function s(h) {
            const u = h.get("H");
            let d;
            if (Array.isArray(u) && ((d = u.length) === 2 || d === 4)) {
              for (let m = 0; m < d; m++) {
                const g = u[m];
                if (!(Number.isInteger(g) && g > 0)) throw new Error(`Hint (${m}) in the linearization dictionary is invalid.`);
              }
              return u;
            }
            throw new Error("Hint array in the linearization dictionary is invalid.");
          }
          p(s, "getHints");
          const i = new Pi({ lexer: new Ps(e), xref: null }), a = i.getObj(), r = i.getObj(), o = i.getObj(), l = i.getObj();
          let f, c;
          if (Number.isInteger(a) && Number.isInteger(r) && fn(o, "obj") && l instanceof _ && typeof (f = l.get("Linearized")) == "number" && f > 0) {
            if ((c = n(l, "L")) !== e.length) throw new Error('The "L" parameter in the linearization dictionary does not equal the stream length.');
          } else return null;
          return { length: c, hints: s(l), objectNumberFirst: n(l, "O"), endFirst: n(l, "E"), numPages: n(l, "N"), mainXRefEntriesOffset: n(l, "T"), pageFirst: l.has("P") ? n(l, "P", true) : 0 };
        }
      };
      xb = ["Adobe-GB1-UCS2", "Adobe-CNS1-UCS2", "Adobe-Japan1-UCS2", "Adobe-Korea1-UCS2", "78-EUC-H", "78-EUC-V", "78-H", "78-RKSJ-H", "78-RKSJ-V", "78-V", "78ms-RKSJ-H", "78ms-RKSJ-V", "83pv-RKSJ-H", "90ms-RKSJ-H", "90ms-RKSJ-V", "90msp-RKSJ-H", "90msp-RKSJ-V", "90pv-RKSJ-H", "90pv-RKSJ-V", "Add-H", "Add-RKSJ-H", "Add-RKSJ-V", "Add-V", "Adobe-CNS1-0", "Adobe-CNS1-1", "Adobe-CNS1-2", "Adobe-CNS1-3", "Adobe-CNS1-4", "Adobe-CNS1-5", "Adobe-CNS1-6", "Adobe-GB1-0", "Adobe-GB1-1", "Adobe-GB1-2", "Adobe-GB1-3", "Adobe-GB1-4", "Adobe-GB1-5", "Adobe-Japan1-0", "Adobe-Japan1-1", "Adobe-Japan1-2", "Adobe-Japan1-3", "Adobe-Japan1-4", "Adobe-Japan1-5", "Adobe-Japan1-6", "Adobe-Korea1-0", "Adobe-Korea1-1", "Adobe-Korea1-2", "B5-H", "B5-V", "B5pc-H", "B5pc-V", "CNS-EUC-H", "CNS-EUC-V", "CNS1-H", "CNS1-V", "CNS2-H", "CNS2-V", "ETHK-B5-H", "ETHK-B5-V", "ETen-B5-H", "ETen-B5-V", "ETenms-B5-H", "ETenms-B5-V", "EUC-H", "EUC-V", "Ext-H", "Ext-RKSJ-H", "Ext-RKSJ-V", "Ext-V", "GB-EUC-H", "GB-EUC-V", "GB-H", "GB-V", "GBK-EUC-H", "GBK-EUC-V", "GBK2K-H", "GBK2K-V", "GBKp-EUC-H", "GBKp-EUC-V", "GBT-EUC-H", "GBT-EUC-V", "GBT-H", "GBT-V", "GBTpc-EUC-H", "GBTpc-EUC-V", "GBpc-EUC-H", "GBpc-EUC-V", "H", "HKdla-B5-H", "HKdla-B5-V", "HKdlb-B5-H", "HKdlb-B5-V", "HKgccs-B5-H", "HKgccs-B5-V", "HKm314-B5-H", "HKm314-B5-V", "HKm471-B5-H", "HKm471-B5-V", "HKscs-B5-H", "HKscs-B5-V", "Hankaku", "Hiragana", "KSC-EUC-H", "KSC-EUC-V", "KSC-H", "KSC-Johab-H", "KSC-Johab-V", "KSC-V", "KSCms-UHC-H", "KSCms-UHC-HW-H", "KSCms-UHC-HW-V", "KSCms-UHC-V", "KSCpc-EUC-H", "KSCpc-EUC-V", "Katakana", "NWP-H", "NWP-V", "RKSJ-H", "RKSJ-V", "Roman", "UniCNS-UCS2-H", "UniCNS-UCS2-V", "UniCNS-UTF16-H", "UniCNS-UTF16-V", "UniCNS-UTF32-H", "UniCNS-UTF32-V", "UniCNS-UTF8-H", "UniCNS-UTF8-V", "UniGB-UCS2-H", "UniGB-UCS2-V", "UniGB-UTF16-H", "UniGB-UTF16-V", "UniGB-UTF32-H", "UniGB-UTF32-V", "UniGB-UTF8-H", "UniGB-UTF8-V", "UniJIS-UCS2-H", "UniJIS-UCS2-HW-H", "UniJIS-UCS2-HW-V", "UniJIS-UCS2-V", "UniJIS-UTF16-H", "UniJIS-UTF16-V", "UniJIS-UTF32-H", "UniJIS-UTF32-V", "UniJIS-UTF8-H", "UniJIS-UTF8-V", "UniJIS2004-UTF16-H", "UniJIS2004-UTF16-V", "UniJIS2004-UTF32-H", "UniJIS2004-UTF32-V", "UniJIS2004-UTF8-H", "UniJIS2004-UTF8-V", "UniJISPro-UCS2-HW-V", "UniJISPro-UCS2-V", "UniJISPro-UTF8-V", "UniJISX0213-UTF32-H", "UniJISX0213-UTF32-V", "UniJISX02132004-UTF32-H", "UniJISX02132004-UTF32-V", "UniKS-UCS2-H", "UniKS-UCS2-V", "UniKS-UTF16-H", "UniKS-UTF16-V", "UniKS-UTF32-H", "UniKS-UTF32-V", "UniKS-UTF8-H", "UniKS-UTF8-V", "V", "WP-Symbol"];
      If = 2 ** 24 - 1;
      Tf = class {
        static {
          p(this, "CMap");
        }
        constructor(e = false) {
          this.codespaceRanges = [[], [], [], []], this.numCodespaceRanges = 0, this._map = [], this.name = "", this.vertical = false, this.useCMap = null, this.builtInCMap = e;
        }
        addCodespaceRange(e, n, s) {
          this.codespaceRanges[e - 1].push(n, s), this.numCodespaceRanges++;
        }
        mapCidRange(e, n, s) {
          if (n - e > If) throw new Error("mapCidRange - ignoring data above MAX_MAP_RANGE.");
          for (; e <= n; ) this._map[e++] = s++;
        }
        mapBfRange(e, n, s) {
          if (n - e > If) throw new Error("mapBfRange - ignoring data above MAX_MAP_RANGE.");
          const i = s.length - 1;
          for (; e <= n; ) {
            this._map[e++] = s;
            const a = s.charCodeAt(i) + 1;
            if (a > 255) {
              s = s.substring(0, i - 1) + String.fromCharCode(s.charCodeAt(i - 1) + 1) + "\0";
              continue;
            }
            s = s.substring(0, i) + String.fromCharCode(a);
          }
        }
        mapBfRangeToArray(e, n, s) {
          if (n - e > If) throw new Error("mapBfRangeToArray - ignoring data above MAX_MAP_RANGE.");
          const i = s.length;
          let a = 0;
          for (; e <= n && a < i; ) this._map[e] = s[a++], ++e;
        }
        mapOne(e, n) {
          this._map[e] = n;
        }
        lookup(e) {
          return this._map[e];
        }
        contains(e) {
          return this._map[e] !== void 0;
        }
        forEach(e) {
          const n = this._map, s = n.length;
          if (s <= 65536) for (let i = 0; i < s; i++) n[i] !== void 0 && e(i, n[i]);
          else for (const i in n) e(i, n[i]);
        }
        charCodeOf(e) {
          const n = this._map;
          if (n.length <= 65536) return n.indexOf(e);
          for (const s in n) if (n[s] === e) return s | 0;
          return -1;
        }
        getMap() {
          return this._map;
        }
        readCharCode(e, n, s) {
          let i = 0;
          const a = this.codespaceRanges;
          for (let r = 0, o = a.length; r < o; r++) {
            i = (i << 8 | e.charCodeAt(n + r)) >>> 0;
            const l = a[r];
            for (let f = 0, c = l.length; f < c; ) {
              const h = l[f++], u = l[f++];
              if (i >= h && i <= u) {
                s.charcode = i, s.length = r + 1;
                return;
              }
            }
          }
          s.charcode = 0, s.length = 1;
        }
        getCharCodeLength(e) {
          const n = this.codespaceRanges;
          for (let s = 0, i = n.length; s < i; s++) {
            const a = n[s];
            for (let r = 0, o = a.length; r < o; ) {
              const l = a[r++], f = a[r++];
              if (e >= l && e <= f) return s + 1;
            }
          }
          return 1;
        }
        get length() {
          return this._map.length;
        }
        get isIdentityCMap() {
          if (!(this.name === "Identity-H" || this.name === "Identity-V") || this._map.length !== 65536) return false;
          for (let e = 0; e < 65536; e++) if (this._map[e] !== e) return false;
          return true;
        }
      };
      Lr = class extends Tf {
        static {
          p(this, "IdentityCMap");
        }
        constructor(e, n) {
          super(), this.vertical = e, this.addCodespaceRange(n, 0, 65535);
        }
        mapCidRange(e, n, s) {
          Ye("should not call mapCidRange");
        }
        mapBfRange(e, n, s) {
          Ye("should not call mapBfRange");
        }
        mapBfRangeToArray(e, n, s) {
          Ye("should not call mapBfRangeToArray");
        }
        mapOne(e, n) {
          Ye("should not call mapCidOne");
        }
        lookup(e) {
          return Number.isInteger(e) && e <= 65535 ? e : void 0;
        }
        contains(e) {
          return Number.isInteger(e) && e <= 65535;
        }
        forEach(e) {
          for (let n = 0; n <= 65535; n++) e(n, n);
        }
        charCodeOf(e) {
          return Number.isInteger(e) && e <= 65535 ? e : -1;
        }
        getMap() {
          const e = new Array(65536);
          for (let n = 0; n <= 65535; n++) e[n] = n;
          return e;
        }
        get length() {
          return 65536;
        }
        get isIdentityCMap() {
          Ye("should not access .isIdentityCMap");
        }
      };
      p(Di, "strToInt");
      p(oa, "expectString");
      p(Pu, "expectInt");
      p(kb, "parseBfChar");
      p(yb, "parseBfRange");
      p(jb, "parseCidChar");
      p(vb, "parseCidRange");
      p(qb, "parseCodespaceRange");
      p(Ab, "parseWMode");
      p(Sb, "parseCMapName");
      p(Du, "parseCMap");
      p(Mu, "extendCMap");
      p(Ef, "createBuiltInCMap");
      Nr = class {
        static {
          p(this, "CMapFactory");
        }
        static async create({ encoding: e, fetchBuiltInCMap: n, useCMap: s }) {
          if (e instanceof te) return Ef(e.name, n);
          if (e instanceof ze) {
            if (e.isAsync) {
              const a = await e.asyncGetBytes();
              a && (e = new jt(a, 0, a.length, e.dict));
            }
            const i = await Du(new Tf(), new Ps(e), n, s);
            return i.isIdentityCMap ? Ef(i.name, n) : i;
          }
          throw new Error("Encoding required.");
        }
      };
      Hu = class {
        static {
          p(this, "CSS_FONT_INFO");
        }
        static strings = ["fontFamily", "fontWeight", "italicAngle"];
      };
      Ou = class {
        static {
          p(this, "SYSTEM_FONT_INFO");
        }
        static strings = ["css", "loadedName", "baseFontName", "src"];
      };
      Kn = class {
        static {
          p(this, "FONT_INFO");
        }
        static bools = ["black", "bold", "disableFontFace", "fontExtraProperties", "isInvalidPDFjsFont", "isType3Font", "italic", "missingFile", "remeasure", "vertical"];
        static numbers = ["ascent", "defaultWidth", "descent"];
        static strings = ["fallbackName", "loadedName", "mimetype", "name"];
        static OFFSET_NUMBERS = Math.ceil(this.bools.length * 2 / 8);
        static OFFSET_BBOX = this.OFFSET_NUMBERS + this.numbers.length * 8;
        static OFFSET_FONT_MATRIX = this.OFFSET_BBOX + 1 + 8;
        static OFFSET_DEFAULT_VMETRICS = this.OFFSET_FONT_MATRIX + 1 + 48;
        static OFFSET_STRINGS = this.OFFSET_DEFAULT_VMETRICS + 1 + 6;
      };
      Mi = class {
        static {
          p(this, "PATTERN_INFO");
        }
        static KIND = 0;
        static HAS_BBOX = 1;
        static HAS_BACKGROUND = 2;
        static SHADING_TYPE = 3;
        static N_COORD = 4;
        static N_COLOR = 8;
        static N_STOP = 12;
        static N_FIGURES = 16;
      };
      p(Cb, "compileCssFontInfo");
      p(Ib, "compileSystemFontInfo");
      p(Tb, "compileFontInfo");
      p(Eb, "compilePatternInfo");
      p(Fb, "compileFontPathInfo");
      Lu = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "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"];
      Bb = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "space", "exclamsmall", "Hungarumlautsmall", "centoldstyle", "dollaroldstyle", "dollarsuperior", "ampersandsmall", "Acutesmall", "parenleftsuperior", "parenrightsuperior", "twodotenleader", "onedotenleader", "comma", "hyphen", "period", "fraction", "zerooldstyle", "oneoldstyle", "twooldstyle", "threeoldstyle", "fouroldstyle", "fiveoldstyle", "sixoldstyle", "sevenoldstyle", "eightoldstyle", "nineoldstyle", "colon", "semicolon", "", "threequartersemdash", "", "questionsmall", "", "", "", "", "Ethsmall", "", "", "onequarter", "onehalf", "threequarters", "oneeighth", "threeeighths", "fiveeighths", "seveneighths", "onethird", "twothirds", "", "", "", "", "", "", "ff", "fi", "fl", "ffi", "ffl", "parenleftinferior", "", "parenrightinferior", "Circumflexsmall", "hypheninferior", "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", "", "", "asuperior", "centsuperior", "", "", "", "", "Aacutesmall", "Agravesmall", "Acircumflexsmall", "Adieresissmall", "Atildesmall", "Aringsmall", "Ccedillasmall", "Eacutesmall", "Egravesmall", "Ecircumflexsmall", "Edieresissmall", "Iacutesmall", "Igravesmall", "Icircumflexsmall", "Idieresissmall", "Ntildesmall", "Oacutesmall", "Ogravesmall", "Ocircumflexsmall", "Odieresissmall", "Otildesmall", "Uacutesmall", "Ugravesmall", "Ucircumflexsmall", "Udieresissmall", "", "eightsuperior", "fourinferior", "threeinferior", "sixinferior", "eightinferior", "seveninferior", "Scaronsmall", "", "centinferior", "twoinferior", "", "Dieresissmall", "", "Caronsmall", "osuperior", "fiveinferior", "", "commainferior", "periodinferior", "Yacutesmall", "", "dollarinferior", "", "", "Thornsmall", "", "nineinferior", "zeroinferior", "Zcaronsmall", "AEsmall", "Oslashsmall", "questiondownsmall", "oneinferior", "Lslashsmall", "", "", "", "", "", "", "Cedillasmall", "", "", "", "", "", "OEsmall", "figuredash", "hyphensuperior", "", "", "", "", "exclamdownsmall", "", "Ydieresissmall", "", "onesuperior", "twosuperior", "threesuperior", "foursuperior", "fivesuperior", "sixsuperior", "sevensuperior", "ninesuperior", "zerosuperior", "", "esuperior", "rsuperior", "tsuperior", "", "", "isuperior", "ssuperior", "dsuperior", "", "", "", "", "", "lsuperior", "Ogoneksmall", "Brevesmall", "Macronsmall", "bsuperior", "nsuperior", "msuperior", "commasuperior", "periodsuperior", "Dotaccentsmall", "Ringsmall", "", "", "", ""];
      Ff = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "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", "space", "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"];
      gi = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "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", "", "", "", ""];
      zr = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "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", "bullet", "Euro", "bullet", "quotesinglbase", "florin", "quotedblbase", "ellipsis", "dagger", "daggerdbl", "circumflex", "perthousand", "Scaron", "guilsinglleft", "OE", "bullet", "Zcaron", "bullet", "bullet", "quoteleft", "quoteright", "quotedblleft", "quotedblright", "bullet", "endash", "emdash", "tilde", "trademark", "scaron", "guilsinglright", "oe", "bullet", "zcaron", "Ydieresis", "space", "exclamdown", "cent", "sterling", "currency", "yen", "brokenbar", "section", "dieresis", "copyright", "ordfeminine", "guillemotleft", "logicalnot", "hyphen", "registered", "macron", "degree", "plusminus", "twosuperior", "threesuperior", "acute", "mu", "paragraph", "periodcentered", "cedilla", "onesuperior", "ordmasculine", "guillemotright", "onequarter", "onehalf", "threequarters", "questiondown", "Agrave", "Aacute", "Acircumflex", "Atilde", "Adieresis", "Aring", "AE", "Ccedilla", "Egrave", "Eacute", "Ecircumflex", "Edieresis", "Igrave", "Iacute", "Icircumflex", "Idieresis", "Eth", "Ntilde", "Ograve", "Oacute", "Ocircumflex", "Otilde", "Odieresis", "multiply", "Oslash", "Ugrave", "Uacute", "Ucircumflex", "Udieresis", "Yacute", "Thorn", "germandbls", "agrave", "aacute", "acircumflex", "atilde", "adieresis", "aring", "ae", "ccedilla", "egrave", "eacute", "ecircumflex", "edieresis", "igrave", "iacute", "icircumflex", "idieresis", "eth", "ntilde", "ograve", "oacute", "ocircumflex", "otilde", "odieresis", "divide", "oslash", "ugrave", "uacute", "ucircumflex", "udieresis", "yacute", "thorn", "ydieresis"];
      Bf = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "space", "exclam", "universal", "numbersign", "existential", "percent", "ampersand", "suchthat", "parenleft", "parenright", "asteriskmath", "plus", "comma", "minus", "period", "slash", "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "colon", "semicolon", "less", "equal", "greater", "question", "congruent", "Alpha", "Beta", "Chi", "Delta", "Epsilon", "Phi", "Gamma", "Eta", "Iota", "theta1", "Kappa", "Lambda", "Mu", "Nu", "Omicron", "Pi", "Theta", "Rho", "Sigma", "Tau", "Upsilon", "sigma1", "Omega", "Xi", "Psi", "Zeta", "bracketleft", "therefore", "bracketright", "perpendicular", "underscore", "radicalex", "alpha", "beta", "chi", "delta", "epsilon", "phi", "gamma", "eta", "iota", "phi1", "kappa", "lambda", "mu", "nu", "omicron", "pi", "theta", "rho", "sigma", "tau", "upsilon", "omega1", "omega", "xi", "psi", "zeta", "braceleft", "bar", "braceright", "similar", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "Euro", "Upsilon1", "minute", "lessequal", "fraction", "infinity", "florin", "club", "diamond", "heart", "spade", "arrowboth", "arrowleft", "arrowup", "arrowright", "arrowdown", "degree", "plusminus", "second", "greaterequal", "multiply", "proportional", "partialdiff", "bullet", "divide", "notequal", "equivalence", "approxequal", "ellipsis", "arrowvertex", "arrowhorizex", "carriagereturn", "aleph", "Ifraktur", "Rfraktur", "weierstrass", "circlemultiply", "circleplus", "emptyset", "intersection", "union", "propersuperset", "reflexsuperset", "notsubset", "propersubset", "reflexsubset", "element", "notelement", "angle", "gradient", "registerserif", "copyrightserif", "trademarkserif", "product", "radical", "dotmath", "logicalnot", "logicaland", "logicalor", "arrowdblboth", "arrowdblleft", "arrowdblup", "arrowdblright", "arrowdbldown", "lozenge", "angleleft", "registersans", "copyrightsans", "trademarksans", "summation", "parenlefttp", "parenleftex", "parenleftbt", "bracketlefttp", "bracketleftex", "bracketleftbt", "bracelefttp", "braceleftmid", "braceleftbt", "braceex", "", "angleright", "integral", "integraltp", "integralex", "integralbt", "parenrighttp", "parenrightex", "parenrightbt", "bracketrighttp", "bracketrightex", "bracketrightbt", "bracerighttp", "bracerightmid", "bracerightbt", ""];
      Rf = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "space", "a1", "a2", "a202", "a3", "a4", "a5", "a119", "a118", "a117", "a11", "a12", "a13", "a14", "a15", "a16", "a105", "a17", "a18", "a19", "a20", "a21", "a22", "a23", "a24", "a25", "a26", "a27", "a28", "a6", "a7", "a8", "a9", "a10", "a29", "a30", "a31", "a32", "a33", "a34", "a35", "a36", "a37", "a38", "a39", "a40", "a41", "a42", "a43", "a44", "a45", "a46", "a47", "a48", "a49", "a50", "a51", "a52", "a53", "a54", "a55", "a56", "a57", "a58", "a59", "a60", "a61", "a62", "a63", "a64", "a65", "a66", "a67", "a68", "a69", "a70", "a71", "a72", "a73", "a74", "a203", "a75", "a204", "a76", "a77", "a78", "a79", "a81", "a82", "a83", "a84", "a97", "a98", "a99", "a100", "", "a89", "a90", "a93", "a94", "a91", "a92", "a205", "a85", "a206", "a86", "a87", "a88", "a95", "a96", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "a101", "a102", "a103", "a104", "a106", "a107", "a108", "a112", "a111", "a110", "a109", "a120", "a121", "a122", "a123", "a124", "a125", "a126", "a127", "a128", "a129", "a130", "a131", "a132", "a133", "a134", "a135", "a136", "a137", "a138", "a139", "a140", "a141", "a142", "a143", "a144", "a145", "a146", "a147", "a148", "a149", "a150", "a151", "a152", "a153", "a154", "a155", "a156", "a157", "a158", "a159", "a160", "a161", "a163", "a164", "a196", "a165", "a192", "a166", "a167", "a168", "a169", "a170", "a171", "a172", "a173", "a162", "a174", "a175", "a176", "a177", "a178", "a179", "a193", "a180", "a199", "a181", "a200", "a182", "", "a201", "a183", "a184", "a197", "a185", "a194", "a198", "a186", "a195", "a187", "a188", "a189", "a190", "a191", ""];
      p(Ur, "getEncoding");
      Ks = Dt(function(t) {
        t.A = 65, t.AE = 198, t.AEacute = 508, t.AEmacron = 482, t.AEsmall = 63462, t.Aacute = 193, t.Aacutesmall = 63457, t.Abreve = 258, t.Abreveacute = 7854, t.Abrevecyrillic = 1232, t.Abrevedotbelow = 7862, t.Abrevegrave = 7856, t.Abrevehookabove = 7858, t.Abrevetilde = 7860, t.Acaron = 461, t.Acircle = 9398, t.Acircumflex = 194, t.Acircumflexacute = 7844, t.Acircumflexdotbelow = 7852, t.Acircumflexgrave = 7846, t.Acircumflexhookabove = 7848, t.Acircumflexsmall = 63458, t.Acircumflextilde = 7850, t.Acute = 63177, t.Acutesmall = 63412, t.Acyrillic = 1040, t.Adblgrave = 512, t.Adieresis = 196, t.Adieresiscyrillic = 1234, t.Adieresismacron = 478, t.Adieresissmall = 63460, t.Adotbelow = 7840, t.Adotmacron = 480, t.Agrave = 192, t.Agravesmall = 63456, t.Ahookabove = 7842, t.Aiecyrillic = 1236, t.Ainvertedbreve = 514, t.Alpha = 913, t.Alphatonos = 902, t.Amacron = 256, t.Amonospace = 65313, t.Aogonek = 260, t.Aring = 197, t.Aringacute = 506, t.Aringbelow = 7680, t.Aringsmall = 63461, t.Asmall = 63329, t.Atilde = 195, t.Atildesmall = 63459, t.Aybarmenian = 1329, t.B = 66, t.Bcircle = 9399, t.Bdotaccent = 7682, t.Bdotbelow = 7684, t.Becyrillic = 1041, t.Benarmenian = 1330, t.Beta = 914, t.Bhook = 385, t.Blinebelow = 7686, t.Bmonospace = 65314, t.Brevesmall = 63220, t.Bsmall = 63330, t.Btopbar = 386, t.C = 67, t.Caarmenian = 1342, t.Cacute = 262, t.Caron = 63178, t.Caronsmall = 63221, t.Ccaron = 268, t.Ccedilla = 199, t.Ccedillaacute = 7688, t.Ccedillasmall = 63463, t.Ccircle = 9400, t.Ccircumflex = 264, t.Cdot = 266, t.Cdotaccent = 266, t.Cedillasmall = 63416, t.Chaarmenian = 1353, t.Cheabkhasiancyrillic = 1212, t.Checyrillic = 1063, t.Chedescenderabkhasiancyrillic = 1214, t.Chedescendercyrillic = 1206, t.Chedieresiscyrillic = 1268, t.Cheharmenian = 1347, t.Chekhakassiancyrillic = 1227, t.Cheverticalstrokecyrillic = 1208, t.Chi = 935, t.Chook = 391, t.Circumflexsmall = 63222, t.Cmonospace = 65315, t.Coarmenian = 1361, t.Csmall = 63331, t.D = 68, t.DZ = 497, t.DZcaron = 452, t.Daarmenian = 1332, t.Dafrican = 393, t.Dcaron = 270, t.Dcedilla = 7696, t.Dcircle = 9401, t.Dcircumflexbelow = 7698, t.Dcroat = 272, t.Ddotaccent = 7690, t.Ddotbelow = 7692, t.Decyrillic = 1044, t.Deicoptic = 1006, t.Delta = 8710, t.Deltagreek = 916, t.Dhook = 394, t.Dieresis = 63179, t.DieresisAcute = 63180, t.DieresisGrave = 63181, t.Dieresissmall = 63400, t.Digammagreek = 988, t.Djecyrillic = 1026, t.Dlinebelow = 7694, t.Dmonospace = 65316, t.Dotaccentsmall = 63223, t.Dslash = 272, t.Dsmall = 63332, t.Dtopbar = 395, t.Dz = 498, t.Dzcaron = 453, t.Dzeabkhasiancyrillic = 1248, t.Dzecyrillic = 1029, t.Dzhecyrillic = 1039, t.E = 69, t.Eacute = 201, t.Eacutesmall = 63465, t.Ebreve = 276, t.Ecaron = 282, t.Ecedillabreve = 7708, t.Echarmenian = 1333, t.Ecircle = 9402, t.Ecircumflex = 202, t.Ecircumflexacute = 7870, t.Ecircumflexbelow = 7704, t.Ecircumflexdotbelow = 7878, t.Ecircumflexgrave = 7872, t.Ecircumflexhookabove = 7874, t.Ecircumflexsmall = 63466, t.Ecircumflextilde = 7876, t.Ecyrillic = 1028, t.Edblgrave = 516, t.Edieresis = 203, t.Edieresissmall = 63467, t.Edot = 278, t.Edotaccent = 278, t.Edotbelow = 7864, t.Efcyrillic = 1060, t.Egrave = 200, t.Egravesmall = 63464, t.Eharmenian = 1335, t.Ehookabove = 7866, t.Eightroman = 8551, t.Einvertedbreve = 518, t.Eiotifiedcyrillic = 1124, t.Elcyrillic = 1051, t.Elevenroman = 8554, t.Emacron = 274, t.Emacronacute = 7702, t.Emacrongrave = 7700, t.Emcyrillic = 1052, t.Emonospace = 65317, t.Encyrillic = 1053, t.Endescendercyrillic = 1186, t.Eng = 330, t.Enghecyrillic = 1188, t.Enhookcyrillic = 1223, t.Eogonek = 280, t.Eopen = 400, t.Epsilon = 917, t.Epsilontonos = 904, t.Ercyrillic = 1056, t.Ereversed = 398, t.Ereversedcyrillic = 1069, t.Escyrillic = 1057, t.Esdescendercyrillic = 1194, t.Esh = 425, t.Esmall = 63333, t.Eta = 919, t.Etarmenian = 1336, t.Etatonos = 905, t.Eth = 208, t.Ethsmall = 63472, t.Etilde = 7868, t.Etildebelow = 7706, t.Euro = 8364, t.Ezh = 439, t.Ezhcaron = 494, t.Ezhreversed = 440, t.F = 70, t.Fcircle = 9403, t.Fdotaccent = 7710, t.Feharmenian = 1366, t.Feicoptic = 996, t.Fhook = 401, t.Fitacyrillic = 1138, t.Fiveroman = 8548, t.Fmonospace = 65318, t.Fourroman = 8547, t.Fsmall = 63334, t.G = 71, t.GBsquare = 13191, t.Gacute = 500, t.Gamma = 915, t.Gammaafrican = 404, t.Gangiacoptic = 1002, t.Gbreve = 286, t.Gcaron = 486, t.Gcedilla = 290, t.Gcircle = 9404, t.Gcircumflex = 284, t.Gcommaaccent = 290, t.Gdot = 288, t.Gdotaccent = 288, t.Gecyrillic = 1043, t.Ghadarmenian = 1346, t.Ghemiddlehookcyrillic = 1172, t.Ghestrokecyrillic = 1170, t.Gheupturncyrillic = 1168, t.Ghook = 403, t.Gimarmenian = 1331, t.Gjecyrillic = 1027, t.Gmacron = 7712, t.Gmonospace = 65319, t.Grave = 63182, t.Gravesmall = 63328, t.Gsmall = 63335, t.Gsmallhook = 667, t.Gstroke = 484, t.H = 72, t.H18533 = 9679, t.H18543 = 9642, t.H18551 = 9643, t.H22073 = 9633, t.HPsquare = 13259, t.Haabkhasiancyrillic = 1192, t.Hadescendercyrillic = 1202, t.Hardsigncyrillic = 1066, t.Hbar = 294, t.Hbrevebelow = 7722, t.Hcedilla = 7720, t.Hcircle = 9405, t.Hcircumflex = 292, t.Hdieresis = 7718, t.Hdotaccent = 7714, t.Hdotbelow = 7716, t.Hmonospace = 65320, t.Hoarmenian = 1344, t.Horicoptic = 1e3, t.Hsmall = 63336, t.Hungarumlaut = 63183, t.Hungarumlautsmall = 63224, t.Hzsquare = 13200, t.I = 73, t.IAcyrillic = 1071, t.IJ = 306, t.IUcyrillic = 1070, t.Iacute = 205, t.Iacutesmall = 63469, t.Ibreve = 300, t.Icaron = 463, t.Icircle = 9406, t.Icircumflex = 206, t.Icircumflexsmall = 63470, t.Icyrillic = 1030, t.Idblgrave = 520, t.Idieresis = 207, t.Idieresisacute = 7726, t.Idieresiscyrillic = 1252, t.Idieresissmall = 63471, t.Idot = 304, t.Idotaccent = 304, t.Idotbelow = 7882, t.Iebrevecyrillic = 1238, t.Iecyrillic = 1045, t.Ifraktur = 8465, t.Igrave = 204, t.Igravesmall = 63468, t.Ihookabove = 7880, t.Iicyrillic = 1048, t.Iinvertedbreve = 522, t.Iishortcyrillic = 1049, t.Imacron = 298, t.Imacroncyrillic = 1250, t.Imonospace = 65321, t.Iniarmenian = 1339, t.Iocyrillic = 1025, t.Iogonek = 302, t.Iota = 921, t.Iotaafrican = 406, t.Iotadieresis = 938, t.Iotatonos = 906, t.Ismall = 63337, t.Istroke = 407, t.Itilde = 296, t.Itildebelow = 7724, t.Izhitsacyrillic = 1140, t.Izhitsadblgravecyrillic = 1142, t.J = 74, t.Jaarmenian = 1345, t.Jcircle = 9407, t.Jcircumflex = 308, t.Jecyrillic = 1032, t.Jheharmenian = 1355, t.Jmonospace = 65322, t.Jsmall = 63338, t.K = 75, t.KBsquare = 13189, t.KKsquare = 13261, t.Kabashkircyrillic = 1184, t.Kacute = 7728, t.Kacyrillic = 1050, t.Kadescendercyrillic = 1178, t.Kahookcyrillic = 1219, t.Kappa = 922, t.Kastrokecyrillic = 1182, t.Kaverticalstrokecyrillic = 1180, t.Kcaron = 488, t.Kcedilla = 310, t.Kcircle = 9408, t.Kcommaaccent = 310, t.Kdotbelow = 7730, t.Keharmenian = 1364, t.Kenarmenian = 1343, t.Khacyrillic = 1061, t.Kheicoptic = 998, t.Khook = 408, t.Kjecyrillic = 1036, t.Klinebelow = 7732, t.Kmonospace = 65323, t.Koppacyrillic = 1152, t.Koppagreek = 990, t.Ksicyrillic = 1134, t.Ksmall = 63339, t.L = 76, t.LJ = 455, t.LL = 63167, t.Lacute = 313, t.Lambda = 923, t.Lcaron = 317, t.Lcedilla = 315, t.Lcircle = 9409, t.Lcircumflexbelow = 7740, t.Lcommaaccent = 315, t.Ldot = 319, t.Ldotaccent = 319, t.Ldotbelow = 7734, t.Ldotbelowmacron = 7736, t.Liwnarmenian = 1340, t.Lj = 456, t.Ljecyrillic = 1033, t.Llinebelow = 7738, t.Lmonospace = 65324, t.Lslash = 321, t.Lslashsmall = 63225, t.Lsmall = 63340, t.M = 77, t.MBsquare = 13190, t.Macron = 63184, t.Macronsmall = 63407, t.Macute = 7742, t.Mcircle = 9410, t.Mdotaccent = 7744, t.Mdotbelow = 7746, t.Menarmenian = 1348, t.Mmonospace = 65325, t.Msmall = 63341, t.Mturned = 412, t.Mu = 924, t.N = 78, t.NJ = 458, t.Nacute = 323, t.Ncaron = 327, t.Ncedilla = 325, t.Ncircle = 9411, t.Ncircumflexbelow = 7754, t.Ncommaaccent = 325, t.Ndotaccent = 7748, t.Ndotbelow = 7750, t.Nhookleft = 413, t.Nineroman = 8552, t.Nj = 459, t.Njecyrillic = 1034, t.Nlinebelow = 7752, t.Nmonospace = 65326, t.Nowarmenian = 1350, t.Nsmall = 63342, t.Ntilde = 209, t.Ntildesmall = 63473, t.Nu = 925, t.O = 79, t.OE = 338, t.OEsmall = 63226, t.Oacute = 211, t.Oacutesmall = 63475, t.Obarredcyrillic = 1256, t.Obarreddieresiscyrillic = 1258, t.Obreve = 334, t.Ocaron = 465, t.Ocenteredtilde = 415, t.Ocircle = 9412, t.Ocircumflex = 212, t.Ocircumflexacute = 7888, t.Ocircumflexdotbelow = 7896, t.Ocircumflexgrave = 7890, t.Ocircumflexhookabove = 7892, t.Ocircumflexsmall = 63476, t.Ocircumflextilde = 7894, t.Ocyrillic = 1054, t.Odblacute = 336, t.Odblgrave = 524, t.Odieresis = 214, t.Odieresiscyrillic = 1254, t.Odieresissmall = 63478, t.Odotbelow = 7884, t.Ogoneksmall = 63227, t.Ograve = 210, t.Ogravesmall = 63474, t.Oharmenian = 1365, t.Ohm = 8486, t.Ohookabove = 7886, t.Ohorn = 416, t.Ohornacute = 7898, t.Ohorndotbelow = 7906, t.Ohorngrave = 7900, t.Ohornhookabove = 7902, t.Ohorntilde = 7904, t.Ohungarumlaut = 336, t.Oi = 418, t.Oinvertedbreve = 526, t.Omacron = 332, t.Omacronacute = 7762, t.Omacrongrave = 7760, t.Omega = 8486, t.Omegacyrillic = 1120, t.Omegagreek = 937, t.Omegaroundcyrillic = 1146, t.Omegatitlocyrillic = 1148, t.Omegatonos = 911, t.Omicron = 927, t.Omicrontonos = 908, t.Omonospace = 65327, t.Oneroman = 8544, t.Oogonek = 490, t.Oogonekmacron = 492, t.Oopen = 390, t.Oslash = 216, t.Oslashacute = 510, t.Oslashsmall = 63480, t.Osmall = 63343, t.Ostrokeacute = 510, t.Otcyrillic = 1150, t.Otilde = 213, t.Otildeacute = 7756, t.Otildedieresis = 7758, t.Otildesmall = 63477, t.P = 80, t.Pacute = 7764, t.Pcircle = 9413, t.Pdotaccent = 7766, t.Pecyrillic = 1055, t.Peharmenian = 1354, t.Pemiddlehookcyrillic = 1190, t.Phi = 934, t.Phook = 420, t.Pi = 928, t.Piwrarmenian = 1363, t.Pmonospace = 65328, t.Psi = 936, t.Psicyrillic = 1136, t.Psmall = 63344, t.Q = 81, t.Qcircle = 9414, t.Qmonospace = 65329, t.Qsmall = 63345, t.R = 82, t.Raarmenian = 1356, t.Racute = 340, t.Rcaron = 344, t.Rcedilla = 342, t.Rcircle = 9415, t.Rcommaaccent = 342, t.Rdblgrave = 528, t.Rdotaccent = 7768, t.Rdotbelow = 7770, t.Rdotbelowmacron = 7772, t.Reharmenian = 1360, t.Rfraktur = 8476, t.Rho = 929, t.Ringsmall = 63228, t.Rinvertedbreve = 530, t.Rlinebelow = 7774, t.Rmonospace = 65330, t.Rsmall = 63346, t.Rsmallinverted = 641, t.Rsmallinvertedsuperior = 694, t.S = 83, t.SF010000 = 9484, t.SF020000 = 9492, t.SF030000 = 9488, t.SF040000 = 9496, t.SF050000 = 9532, t.SF060000 = 9516, t.SF070000 = 9524, t.SF080000 = 9500, t.SF090000 = 9508, t.SF100000 = 9472, t.SF110000 = 9474, t.SF190000 = 9569, t.SF200000 = 9570, t.SF210000 = 9558, t.SF220000 = 9557, t.SF230000 = 9571, t.SF240000 = 9553, t.SF250000 = 9559, t.SF260000 = 9565, t.SF270000 = 9564, t.SF280000 = 9563, t.SF360000 = 9566, t.SF370000 = 9567, t.SF380000 = 9562, t.SF390000 = 9556, t.SF400000 = 9577, t.SF410000 = 9574, t.SF420000 = 9568, t.SF430000 = 9552, t.SF440000 = 9580, t.SF450000 = 9575, t.SF460000 = 9576, t.SF470000 = 9572, t.SF480000 = 9573, t.SF490000 = 9561, t.SF500000 = 9560, t.SF510000 = 9554, t.SF520000 = 9555, t.SF530000 = 9579, t.SF540000 = 9578, t.Sacute = 346, t.Sacutedotaccent = 7780, t.Sampigreek = 992, t.Scaron = 352, t.Scarondotaccent = 7782, t.Scaronsmall = 63229, t.Scedilla = 350, t.Schwa = 399, t.Schwacyrillic = 1240, t.Schwadieresiscyrillic = 1242, t.Scircle = 9416, t.Scircumflex = 348, t.Scommaaccent = 536, t.Sdotaccent = 7776, t.Sdotbelow = 7778, t.Sdotbelowdotaccent = 7784, t.Seharmenian = 1357, t.Sevenroman = 8550, t.Shaarmenian = 1351, t.Shacyrillic = 1064, t.Shchacyrillic = 1065, t.Sheicoptic = 994, t.Shhacyrillic = 1210, t.Shimacoptic = 1004, t.Sigma = 931, t.Sixroman = 8549, t.Smonospace = 65331, t.Softsigncyrillic = 1068, t.Ssmall = 63347, t.Stigmagreek = 986, t.T = 84, t.Tau = 932, t.Tbar = 358, t.Tcaron = 356, t.Tcedilla = 354, t.Tcircle = 9417, t.Tcircumflexbelow = 7792, t.Tcommaaccent = 354, t.Tdotaccent = 7786, t.Tdotbelow = 7788, t.Tecyrillic = 1058, t.Tedescendercyrillic = 1196, t.Tenroman = 8553, t.Tetsecyrillic = 1204, t.Theta = 920, t.Thook = 428, t.Thorn = 222, t.Thornsmall = 63486, t.Threeroman = 8546, t.Tildesmall = 63230, t.Tiwnarmenian = 1359, t.Tlinebelow = 7790, t.Tmonospace = 65332, t.Toarmenian = 1337, t.Tonefive = 444, t.Tonesix = 388, t.Tonetwo = 423, t.Tretroflexhook = 430, t.Tsecyrillic = 1062, t.Tshecyrillic = 1035, t.Tsmall = 63348, t.Twelveroman = 8555, t.Tworoman = 8545, t.U = 85, t.Uacute = 218, t.Uacutesmall = 63482, t.Ubreve = 364, t.Ucaron = 467, t.Ucircle = 9418, t.Ucircumflex = 219, t.Ucircumflexbelow = 7798, t.Ucircumflexsmall = 63483, t.Ucyrillic = 1059, t.Udblacute = 368, t.Udblgrave = 532, t.Udieresis = 220, t.Udieresisacute = 471, t.Udieresisbelow = 7794, t.Udieresiscaron = 473, t.Udieresiscyrillic = 1264, t.Udieresisgrave = 475, t.Udieresismacron = 469, t.Udieresissmall = 63484, t.Udotbelow = 7908, t.Ugrave = 217, t.Ugravesmall = 63481, t.Uhookabove = 7910, t.Uhorn = 431, t.Uhornacute = 7912, t.Uhorndotbelow = 7920, t.Uhorngrave = 7914, t.Uhornhookabove = 7916, t.Uhorntilde = 7918, t.Uhungarumlaut = 368, t.Uhungarumlautcyrillic = 1266, t.Uinvertedbreve = 534, t.Ukcyrillic = 1144, t.Umacron = 362, t.Umacroncyrillic = 1262, t.Umacrondieresis = 7802, t.Umonospace = 65333, t.Uogonek = 370, t.Upsilon = 933, t.Upsilon1 = 978, t.Upsilonacutehooksymbolgreek = 979, t.Upsilonafrican = 433, t.Upsilondieresis = 939, t.Upsilondieresishooksymbolgreek = 980, t.Upsilonhooksymbol = 978, t.Upsilontonos = 910, t.Uring = 366, t.Ushortcyrillic = 1038, t.Usmall = 63349, t.Ustraightcyrillic = 1198, t.Ustraightstrokecyrillic = 1200, t.Utilde = 360, t.Utildeacute = 7800, t.Utildebelow = 7796, t.V = 86, t.Vcircle = 9419, t.Vdotbelow = 7806, t.Vecyrillic = 1042, t.Vewarmenian = 1358, t.Vhook = 434, t.Vmonospace = 65334, t.Voarmenian = 1352, t.Vsmall = 63350, t.Vtilde = 7804, t.W = 87, t.Wacute = 7810, t.Wcircle = 9420, t.Wcircumflex = 372, t.Wdieresis = 7812, t.Wdotaccent = 7814, t.Wdotbelow = 7816, t.Wgrave = 7808, t.Wmonospace = 65335, t.Wsmall = 63351, t.X = 88, t.Xcircle = 9421, t.Xdieresis = 7820, t.Xdotaccent = 7818, t.Xeharmenian = 1341, t.Xi = 926, t.Xmonospace = 65336, t.Xsmall = 63352, t.Y = 89, t.Yacute = 221, t.Yacutesmall = 63485, t.Yatcyrillic = 1122, t.Ycircle = 9422, t.Ycircumflex = 374, t.Ydieresis = 376, t.Ydieresissmall = 63487, t.Ydotaccent = 7822, t.Ydotbelow = 7924, t.Yericyrillic = 1067, t.Yerudieresiscyrillic = 1272, t.Ygrave = 7922, t.Yhook = 435, t.Yhookabove = 7926, t.Yiarmenian = 1349, t.Yicyrillic = 1031, t.Yiwnarmenian = 1362, t.Ymonospace = 65337, t.Ysmall = 63353, t.Ytilde = 7928, t.Yusbigcyrillic = 1130, t.Yusbigiotifiedcyrillic = 1132, t.Yuslittlecyrillic = 1126, t.Yuslittleiotifiedcyrillic = 1128, t.Z = 90, t.Zaarmenian = 1334, t.Zacute = 377, t.Zcaron = 381, t.Zcaronsmall = 63231, t.Zcircle = 9423, t.Zcircumflex = 7824, t.Zdot = 379, t.Zdotaccent = 379, t.Zdotbelow = 7826, t.Zecyrillic = 1047, t.Zedescendercyrillic = 1176, t.Zedieresiscyrillic = 1246, t.Zeta = 918, t.Zhearmenian = 1338, t.Zhebrevecyrillic = 1217, t.Zhecyrillic = 1046, t.Zhedescendercyrillic = 1174, t.Zhedieresiscyrillic = 1244, t.Zlinebelow = 7828, t.Zmonospace = 65338, t.Zsmall = 63354, t.Zstroke = 437, t.a = 97, t.aabengali = 2438, t.aacute = 225, t.aadeva = 2310, t.aagujarati = 2694, t.aagurmukhi = 2566, t.aamatragurmukhi = 2622, t.aarusquare = 13059, t.aavowelsignbengali = 2494, t.aavowelsigndeva = 2366, t.aavowelsigngujarati = 2750, t.abbreviationmarkarmenian = 1375, t.abbreviationsigndeva = 2416, t.abengali = 2437, t.abopomofo = 12570, t.abreve = 259, t.abreveacute = 7855, t.abrevecyrillic = 1233, t.abrevedotbelow = 7863, t.abrevegrave = 7857, t.abrevehookabove = 7859, t.abrevetilde = 7861, t.acaron = 462, t.acircle = 9424, t.acircumflex = 226, t.acircumflexacute = 7845, t.acircumflexdotbelow = 7853, t.acircumflexgrave = 7847, t.acircumflexhookabove = 7849, t.acircumflextilde = 7851, t.acute = 180, t.acutebelowcmb = 791, t.acutecmb = 769, t.acutecomb = 769, t.acutedeva = 2388, t.acutelowmod = 719, t.acutetonecmb = 833, t.acyrillic = 1072, t.adblgrave = 513, t.addakgurmukhi = 2673, t.adeva = 2309, t.adieresis = 228, t.adieresiscyrillic = 1235, t.adieresismacron = 479, t.adotbelow = 7841, t.adotmacron = 481, t.ae = 230, t.aeacute = 509, t.aekorean = 12624, t.aemacron = 483, t.afii00208 = 8213, t.afii08941 = 8356, t.afii10017 = 1040, t.afii10018 = 1041, t.afii10019 = 1042, t.afii10020 = 1043, t.afii10021 = 1044, t.afii10022 = 1045, t.afii10023 = 1025, t.afii10024 = 1046, t.afii10025 = 1047, t.afii10026 = 1048, t.afii10027 = 1049, t.afii10028 = 1050, t.afii10029 = 1051, t.afii10030 = 1052, t.afii10031 = 1053, t.afii10032 = 1054, t.afii10033 = 1055, t.afii10034 = 1056, t.afii10035 = 1057, t.afii10036 = 1058, t.afii10037 = 1059, t.afii10038 = 1060, t.afii10039 = 1061, t.afii10040 = 1062, t.afii10041 = 1063, t.afii10042 = 1064, t.afii10043 = 1065, t.afii10044 = 1066, t.afii10045 = 1067, t.afii10046 = 1068, t.afii10047 = 1069, t.afii10048 = 1070, t.afii10049 = 1071, t.afii10050 = 1168, t.afii10051 = 1026, t.afii10052 = 1027, t.afii10053 = 1028, t.afii10054 = 1029, t.afii10055 = 1030, t.afii10056 = 1031, t.afii10057 = 1032, t.afii10058 = 1033, t.afii10059 = 1034, t.afii10060 = 1035, t.afii10061 = 1036, t.afii10062 = 1038, t.afii10063 = 63172, t.afii10064 = 63173, t.afii10065 = 1072, t.afii10066 = 1073, t.afii10067 = 1074, t.afii10068 = 1075, t.afii10069 = 1076, t.afii10070 = 1077, t.afii10071 = 1105, t.afii10072 = 1078, t.afii10073 = 1079, t.afii10074 = 1080, t.afii10075 = 1081, t.afii10076 = 1082, t.afii10077 = 1083, t.afii10078 = 1084, t.afii10079 = 1085, t.afii10080 = 1086, t.afii10081 = 1087, t.afii10082 = 1088, t.afii10083 = 1089, t.afii10084 = 1090, t.afii10085 = 1091, t.afii10086 = 1092, t.afii10087 = 1093, t.afii10088 = 1094, t.afii10089 = 1095, t.afii10090 = 1096, t.afii10091 = 1097, t.afii10092 = 1098, t.afii10093 = 1099, t.afii10094 = 1100, t.afii10095 = 1101, t.afii10096 = 1102, t.afii10097 = 1103, t.afii10098 = 1169, t.afii10099 = 1106, t.afii10100 = 1107, t.afii10101 = 1108, t.afii10102 = 1109, t.afii10103 = 1110, t.afii10104 = 1111, t.afii10105 = 1112, t.afii10106 = 1113, t.afii10107 = 1114, t.afii10108 = 1115, t.afii10109 = 1116, t.afii10110 = 1118, t.afii10145 = 1039, t.afii10146 = 1122, t.afii10147 = 1138, t.afii10148 = 1140, t.afii10192 = 63174, t.afii10193 = 1119, t.afii10194 = 1123, t.afii10195 = 1139, t.afii10196 = 1141, t.afii10831 = 63175, t.afii10832 = 63176, t.afii10846 = 1241, t.afii299 = 8206, t.afii300 = 8207, t.afii301 = 8205, t.afii57381 = 1642, t.afii57388 = 1548, t.afii57392 = 1632, t.afii57393 = 1633, t.afii57394 = 1634, t.afii57395 = 1635, t.afii57396 = 1636, t.afii57397 = 1637, t.afii57398 = 1638, t.afii57399 = 1639, t.afii57400 = 1640, t.afii57401 = 1641, t.afii57403 = 1563, t.afii57407 = 1567, t.afii57409 = 1569, t.afii57410 = 1570, t.afii57411 = 1571, t.afii57412 = 1572, t.afii57413 = 1573, t.afii57414 = 1574, t.afii57415 = 1575, t.afii57416 = 1576, t.afii57417 = 1577, t.afii57418 = 1578, t.afii57419 = 1579, t.afii57420 = 1580, t.afii57421 = 1581, t.afii57422 = 1582, t.afii57423 = 1583, t.afii57424 = 1584, t.afii57425 = 1585, t.afii57426 = 1586, t.afii57427 = 1587, t.afii57428 = 1588, t.afii57429 = 1589, t.afii57430 = 1590, t.afii57431 = 1591, t.afii57432 = 1592, t.afii57433 = 1593, t.afii57434 = 1594, t.afii57440 = 1600, t.afii57441 = 1601, t.afii57442 = 1602, t.afii57443 = 1603, t.afii57444 = 1604, t.afii57445 = 1605, t.afii57446 = 1606, t.afii57448 = 1608, t.afii57449 = 1609, t.afii57450 = 1610, t.afii57451 = 1611, t.afii57452 = 1612, t.afii57453 = 1613, t.afii57454 = 1614, t.afii57455 = 1615, t.afii57456 = 1616, t.afii57457 = 1617, t.afii57458 = 1618, t.afii57470 = 1607, t.afii57505 = 1700, t.afii57506 = 1662, t.afii57507 = 1670, t.afii57508 = 1688, t.afii57509 = 1711, t.afii57511 = 1657, t.afii57512 = 1672, t.afii57513 = 1681, t.afii57514 = 1722, t.afii57519 = 1746, t.afii57534 = 1749, t.afii57636 = 8362, t.afii57645 = 1470, t.afii57658 = 1475, t.afii57664 = 1488, t.afii57665 = 1489, t.afii57666 = 1490, t.afii57667 = 1491, t.afii57668 = 1492, t.afii57669 = 1493, t.afii57670 = 1494, t.afii57671 = 1495, t.afii57672 = 1496, t.afii57673 = 1497, t.afii57674 = 1498, t.afii57675 = 1499, t.afii57676 = 1500, t.afii57677 = 1501, t.afii57678 = 1502, t.afii57679 = 1503, t.afii57680 = 1504, t.afii57681 = 1505, t.afii57682 = 1506, t.afii57683 = 1507, t.afii57684 = 1508, t.afii57685 = 1509, t.afii57686 = 1510, t.afii57687 = 1511, t.afii57688 = 1512, t.afii57689 = 1513, t.afii57690 = 1514, t.afii57694 = 64298, t.afii57695 = 64299, t.afii57700 = 64331, t.afii57705 = 64287, t.afii57716 = 1520, t.afii57717 = 1521, t.afii57718 = 1522, t.afii57723 = 64309, t.afii57793 = 1460, t.afii57794 = 1461, t.afii57795 = 1462, t.afii57796 = 1467, t.afii57797 = 1464, t.afii57798 = 1463, t.afii57799 = 1456, t.afii57800 = 1458, t.afii57801 = 1457, t.afii57802 = 1459, t.afii57803 = 1474, t.afii57804 = 1473, t.afii57806 = 1465, t.afii57807 = 1468, t.afii57839 = 1469, t.afii57841 = 1471, t.afii57842 = 1472, t.afii57929 = 700, t.afii61248 = 8453, t.afii61289 = 8467, t.afii61352 = 8470, t.afii61573 = 8236, t.afii61574 = 8237, t.afii61575 = 8238, t.afii61664 = 8204, t.afii63167 = 1645, t.afii64937 = 701, t.agrave = 224, t.agujarati = 2693, t.agurmukhi = 2565, t.ahiragana = 12354, t.ahookabove = 7843, t.aibengali = 2448, t.aibopomofo = 12574, t.aideva = 2320, t.aiecyrillic = 1237, t.aigujarati = 2704, t.aigurmukhi = 2576, t.aimatragurmukhi = 2632, t.ainarabic = 1593, t.ainfinalarabic = 65226, t.aininitialarabic = 65227, t.ainmedialarabic = 65228, t.ainvertedbreve = 515, t.aivowelsignbengali = 2504, t.aivowelsigndeva = 2376, t.aivowelsigngujarati = 2760, t.akatakana = 12450, t.akatakanahalfwidth = 65393, t.akorean = 12623, t.alef = 1488, t.alefarabic = 1575, t.alefdageshhebrew = 64304, t.aleffinalarabic = 65166, t.alefhamzaabovearabic = 1571, t.alefhamzaabovefinalarabic = 65156, t.alefhamzabelowarabic = 1573, t.alefhamzabelowfinalarabic = 65160, t.alefhebrew = 1488, t.aleflamedhebrew = 64335, t.alefmaddaabovearabic = 1570, t.alefmaddaabovefinalarabic = 65154, t.alefmaksuraarabic = 1609, t.alefmaksurafinalarabic = 65264, t.alefmaksurainitialarabic = 65267, t.alefmaksuramedialarabic = 65268, t.alefpatahhebrew = 64302, t.alefqamatshebrew = 64303, t.aleph = 8501, t.allequal = 8780, t.alpha = 945, t.alphatonos = 940, t.amacron = 257, t.amonospace = 65345, t.ampersand = 38, t.ampersandmonospace = 65286, t.ampersandsmall = 63270, t.amsquare = 13250, t.anbopomofo = 12578, t.angbopomofo = 12580, t.angbracketleft = 12296, t.angbracketright = 12297, t.angkhankhuthai = 3674, t.angle = 8736, t.anglebracketleft = 12296, t.anglebracketleftvertical = 65087, t.anglebracketright = 12297, t.anglebracketrightvertical = 65088, t.angleleft = 9001, t.angleright = 9002, t.angstrom = 8491, t.anoteleia = 903, t.anudattadeva = 2386, t.anusvarabengali = 2434, t.anusvaradeva = 2306, t.anusvaragujarati = 2690, t.aogonek = 261, t.apaatosquare = 13056, t.aparen = 9372, t.apostrophearmenian = 1370, t.apostrophemod = 700, t.apple = 63743, t.approaches = 8784, t.approxequal = 8776, t.approxequalorimage = 8786, t.approximatelyequal = 8773, t.araeaekorean = 12686, t.araeakorean = 12685, t.arc = 8978, t.arighthalfring = 7834, t.aring = 229, t.aringacute = 507, t.aringbelow = 7681, t.arrowboth = 8596, t.arrowdashdown = 8675, t.arrowdashleft = 8672, t.arrowdashright = 8674, t.arrowdashup = 8673, t.arrowdblboth = 8660, t.arrowdbldown = 8659, t.arrowdblleft = 8656, t.arrowdblright = 8658, t.arrowdblup = 8657, t.arrowdown = 8595, t.arrowdownleft = 8601, t.arrowdownright = 8600, t.arrowdownwhite = 8681, t.arrowheaddownmod = 709, t.arrowheadleftmod = 706, t.arrowheadrightmod = 707, t.arrowheadupmod = 708, t.arrowhorizex = 63719, t.arrowleft = 8592, t.arrowleftdbl = 8656, t.arrowleftdblstroke = 8653, t.arrowleftoverright = 8646, t.arrowleftwhite = 8678, t.arrowright = 8594, t.arrowrightdblstroke = 8655, t.arrowrightheavy = 10142, t.arrowrightoverleft = 8644, t.arrowrightwhite = 8680, t.arrowtableft = 8676, t.arrowtabright = 8677, t.arrowup = 8593, t.arrowupdn = 8597, t.arrowupdnbse = 8616, t.arrowupdownbase = 8616, t.arrowupleft = 8598, t.arrowupleftofdown = 8645, t.arrowupright = 8599, t.arrowupwhite = 8679, t.arrowvertex = 63718, t.asciicircum = 94, t.asciicircummonospace = 65342, t.asciitilde = 126, t.asciitildemonospace = 65374, t.ascript = 593, t.ascriptturned = 594, t.asmallhiragana = 12353, t.asmallkatakana = 12449, t.asmallkatakanahalfwidth = 65383, t.asterisk = 42, t.asteriskaltonearabic = 1645, t.asteriskarabic = 1645, t.asteriskmath = 8727, t.asteriskmonospace = 65290, t.asterisksmall = 65121, t.asterism = 8258, t.asuperior = 63209, t.asymptoticallyequal = 8771, t.at = 64, t.atilde = 227, t.atmonospace = 65312, t.atsmall = 65131, t.aturned = 592, t.aubengali = 2452, t.aubopomofo = 12576, t.audeva = 2324, t.augujarati = 2708, t.augurmukhi = 2580, t.aulengthmarkbengali = 2519, t.aumatragurmukhi = 2636, t.auvowelsignbengali = 2508, t.auvowelsigndeva = 2380, t.auvowelsigngujarati = 2764, t.avagrahadeva = 2365, t.aybarmenian = 1377, t.ayin = 1506, t.ayinaltonehebrew = 64288, t.ayinhebrew = 1506, t.b = 98, t.babengali = 2476, t.backslash = 92, t.backslashmonospace = 65340, t.badeva = 2348, t.bagujarati = 2732, t.bagurmukhi = 2604, t.bahiragana = 12400, t.bahtthai = 3647, t.bakatakana = 12496, t.bar = 124, t.barmonospace = 65372, t.bbopomofo = 12549, t.bcircle = 9425, t.bdotaccent = 7683, t.bdotbelow = 7685, t.beamedsixteenthnotes = 9836, t.because = 8757, t.becyrillic = 1073, t.beharabic = 1576, t.behfinalarabic = 65168, t.behinitialarabic = 65169, t.behiragana = 12409, t.behmedialarabic = 65170, t.behmeeminitialarabic = 64671, t.behmeemisolatedarabic = 64520, t.behnoonfinalarabic = 64621, t.bekatakana = 12505, t.benarmenian = 1378, t.bet = 1489, t.beta = 946, t.betasymbolgreek = 976, t.betdagesh = 64305, t.betdageshhebrew = 64305, t.bethebrew = 1489, t.betrafehebrew = 64332, t.bhabengali = 2477, t.bhadeva = 2349, t.bhagujarati = 2733, t.bhagurmukhi = 2605, t.bhook = 595, t.bihiragana = 12403, t.bikatakana = 12499, t.bilabialclick = 664, t.bindigurmukhi = 2562, t.birusquare = 13105, t.blackcircle = 9679, t.blackdiamond = 9670, t.blackdownpointingtriangle = 9660, t.blackleftpointingpointer = 9668, t.blackleftpointingtriangle = 9664, t.blacklenticularbracketleft = 12304, t.blacklenticularbracketleftvertical = 65083, t.blacklenticularbracketright = 12305, t.blacklenticularbracketrightvertical = 65084, t.blacklowerlefttriangle = 9699, t.blacklowerrighttriangle = 9698, t.blackrectangle = 9644, t.blackrightpointingpointer = 9658, t.blackrightpointingtriangle = 9654, t.blacksmallsquare = 9642, t.blacksmilingface = 9787, t.blacksquare = 9632, t.blackstar = 9733, t.blackupperlefttriangle = 9700, t.blackupperrighttriangle = 9701, t.blackuppointingsmalltriangle = 9652, t.blackuppointingtriangle = 9650, t.blank = 9251, t.blinebelow = 7687, t.block = 9608, t.bmonospace = 65346, t.bobaimaithai = 3610, t.bohiragana = 12412, t.bokatakana = 12508, t.bparen = 9373, t.bqsquare = 13251, t.braceex = 63732, t.braceleft = 123, t.braceleftbt = 63731, t.braceleftmid = 63730, t.braceleftmonospace = 65371, t.braceleftsmall = 65115, t.bracelefttp = 63729, t.braceleftvertical = 65079, t.braceright = 125, t.bracerightbt = 63742, t.bracerightmid = 63741, t.bracerightmonospace = 65373, t.bracerightsmall = 65116, t.bracerighttp = 63740, t.bracerightvertical = 65080, t.bracketleft = 91, t.bracketleftbt = 63728, t.bracketleftex = 63727, t.bracketleftmonospace = 65339, t.bracketlefttp = 63726, t.bracketright = 93, t.bracketrightbt = 63739, t.bracketrightex = 63738, t.bracketrightmonospace = 65341, t.bracketrighttp = 63737, t.breve = 728, t.brevebelowcmb = 814, t.brevecmb = 774, t.breveinvertedbelowcmb = 815, t.breveinvertedcmb = 785, t.breveinverteddoublecmb = 865, t.bridgebelowcmb = 810, t.bridgeinvertedbelowcmb = 826, t.brokenbar = 166, t.bstroke = 384, t.bsuperior = 63210, t.btopbar = 387, t.buhiragana = 12406, t.bukatakana = 12502, t.bullet = 8226, t.bulletinverse = 9688, t.bulletoperator = 8729, t.bullseye = 9678, t.c = 99, t.caarmenian = 1390, t.cabengali = 2458, t.cacute = 263, t.cadeva = 2330, t.cagujarati = 2714, t.cagurmukhi = 2586, t.calsquare = 13192, t.candrabindubengali = 2433, t.candrabinducmb = 784, t.candrabindudeva = 2305, t.candrabindugujarati = 2689, t.capslock = 8682, t.careof = 8453, t.caron = 711, t.caronbelowcmb = 812, t.caroncmb = 780, t.carriagereturn = 8629, t.cbopomofo = 12568, t.ccaron = 269, t.ccedilla = 231, t.ccedillaacute = 7689, t.ccircle = 9426, t.ccircumflex = 265, t.ccurl = 597, t.cdot = 267, t.cdotaccent = 267, t.cdsquare = 13253, t.cedilla = 184, t.cedillacmb = 807, t.cent = 162, t.centigrade = 8451, t.centinferior = 63199, t.centmonospace = 65504, t.centoldstyle = 63394, t.centsuperior = 63200, t.chaarmenian = 1401, t.chabengali = 2459, t.chadeva = 2331, t.chagujarati = 2715, t.chagurmukhi = 2587, t.chbopomofo = 12564, t.cheabkhasiancyrillic = 1213, t.checkmark = 10003, t.checyrillic = 1095, t.chedescenderabkhasiancyrillic = 1215, t.chedescendercyrillic = 1207, t.chedieresiscyrillic = 1269, t.cheharmenian = 1395, t.chekhakassiancyrillic = 1228, t.cheverticalstrokecyrillic = 1209, t.chi = 967, t.chieuchacirclekorean = 12919, t.chieuchaparenkorean = 12823, t.chieuchcirclekorean = 12905, t.chieuchkorean = 12618, t.chieuchparenkorean = 12809, t.chochangthai = 3594, t.chochanthai = 3592, t.chochingthai = 3593, t.chochoethai = 3596, t.chook = 392, t.cieucacirclekorean = 12918, t.cieucaparenkorean = 12822, t.cieuccirclekorean = 12904, t.cieuckorean = 12616, t.cieucparenkorean = 12808, t.cieucuparenkorean = 12828, t.circle = 9675, t.circlecopyrt = 169, t.circlemultiply = 8855, t.circleot = 8857, t.circleplus = 8853, t.circlepostalmark = 12342, t.circlewithlefthalfblack = 9680, t.circlewithrighthalfblack = 9681, t.circumflex = 710, t.circumflexbelowcmb = 813, t.circumflexcmb = 770, t.clear = 8999, t.clickalveolar = 450, t.clickdental = 448, t.clicklateral = 449, t.clickretroflex = 451, t.club = 9827, t.clubsuitblack = 9827, t.clubsuitwhite = 9831, t.cmcubedsquare = 13220, t.cmonospace = 65347, t.cmsquaredsquare = 13216, t.coarmenian = 1409, t.colon = 58, t.colonmonetary = 8353, t.colonmonospace = 65306, t.colonsign = 8353, t.colonsmall = 65109, t.colontriangularhalfmod = 721, t.colontriangularmod = 720, t.comma = 44, t.commaabovecmb = 787, t.commaaboverightcmb = 789, t.commaaccent = 63171, t.commaarabic = 1548, t.commaarmenian = 1373, t.commainferior = 63201, t.commamonospace = 65292, t.commareversedabovecmb = 788, t.commareversedmod = 701, t.commasmall = 65104, t.commasuperior = 63202, t.commaturnedabovecmb = 786, t.commaturnedmod = 699, t.compass = 9788, t.congruent = 8773, t.contourintegral = 8750, t.control = 8963, t.controlACK = 6, t.controlBEL = 7, t.controlBS = 8, t.controlCAN = 24, t.controlCR = 13, t.controlDC1 = 17, t.controlDC2 = 18, t.controlDC3 = 19, t.controlDC4 = 20, t.controlDEL = 127, t.controlDLE = 16, t.controlEM = 25, t.controlENQ = 5, t.controlEOT = 4, t.controlESC = 27, t.controlETB = 23, t.controlETX = 3, t.controlFF = 12, t.controlFS = 28, t.controlGS = 29, t.controlHT = 9, t.controlLF = 10, t.controlNAK = 21, t.controlNULL = 0, t.controlRS = 30, t.controlSI = 15, t.controlSO = 14, t.controlSOT = 2, t.controlSTX = 1, t.controlSUB = 26, t.controlSYN = 22, t.controlUS = 31, t.controlVT = 11, t.copyright = 169, t.copyrightsans = 63721, t.copyrightserif = 63193, t.cornerbracketleft = 12300, t.cornerbracketlefthalfwidth = 65378, t.cornerbracketleftvertical = 65089, t.cornerbracketright = 12301, t.cornerbracketrighthalfwidth = 65379, t.cornerbracketrightvertical = 65090, t.corporationsquare = 13183, t.cosquare = 13255, t.coverkgsquare = 13254, t.cparen = 9374, t.cruzeiro = 8354, t.cstretched = 663, t.curlyand = 8911, t.curlyor = 8910, t.currency = 164, t.cyrBreve = 63185, t.cyrFlex = 63186, t.cyrbreve = 63188, t.cyrflex = 63189, t.d = 100, t.daarmenian = 1380, t.dabengali = 2470, t.dadarabic = 1590, t.dadeva = 2342, t.dadfinalarabic = 65214, t.dadinitialarabic = 65215, t.dadmedialarabic = 65216, t.dagesh = 1468, t.dageshhebrew = 1468, t.dagger = 8224, t.daggerdbl = 8225, t.dagujarati = 2726, t.dagurmukhi = 2598, t.dahiragana = 12384, t.dakatakana = 12480, t.dalarabic = 1583, t.dalet = 1491, t.daletdagesh = 64307, t.daletdageshhebrew = 64307, t.dalethebrew = 1491, t.dalfinalarabic = 65194, t.dammaarabic = 1615, t.dammalowarabic = 1615, t.dammatanaltonearabic = 1612, t.dammatanarabic = 1612, t.danda = 2404, t.dargahebrew = 1447, t.dargalefthebrew = 1447, t.dasiapneumatacyrilliccmb = 1157, t.dblGrave = 63187, t.dblanglebracketleft = 12298, t.dblanglebracketleftvertical = 65085, t.dblanglebracketright = 12299, t.dblanglebracketrightvertical = 65086, t.dblarchinvertedbelowcmb = 811, t.dblarrowleft = 8660, t.dblarrowright = 8658, t.dbldanda = 2405, t.dblgrave = 63190, t.dblgravecmb = 783, t.dblintegral = 8748, t.dbllowline = 8215, t.dbllowlinecmb = 819, t.dbloverlinecmb = 831, t.dblprimemod = 698, t.dblverticalbar = 8214, t.dblverticallineabovecmb = 782, t.dbopomofo = 12553, t.dbsquare = 13256, t.dcaron = 271, t.dcedilla = 7697, t.dcircle = 9427, t.dcircumflexbelow = 7699, t.dcroat = 273, t.ddabengali = 2465, t.ddadeva = 2337, t.ddagujarati = 2721, t.ddagurmukhi = 2593, t.ddalarabic = 1672, t.ddalfinalarabic = 64393, t.dddhadeva = 2396, t.ddhabengali = 2466, t.ddhadeva = 2338, t.ddhagujarati = 2722, t.ddhagurmukhi = 2594, t.ddotaccent = 7691, t.ddotbelow = 7693, t.decimalseparatorarabic = 1643, t.decimalseparatorpersian = 1643, t.decyrillic = 1076, t.degree = 176, t.dehihebrew = 1453, t.dehiragana = 12391, t.deicoptic = 1007, t.dekatakana = 12487, t.deleteleft = 9003, t.deleteright = 8998, t.delta = 948, t.deltaturned = 397, t.denominatorminusonenumeratorbengali = 2552, t.dezh = 676, t.dhabengali = 2471, t.dhadeva = 2343, t.dhagujarati = 2727, t.dhagurmukhi = 2599, t.dhook = 599, t.dialytikatonos = 901, t.dialytikatonoscmb = 836, t.diamond = 9830, t.diamondsuitwhite = 9826, t.dieresis = 168, t.dieresisacute = 63191, t.dieresisbelowcmb = 804, t.dieresiscmb = 776, t.dieresisgrave = 63192, t.dieresistonos = 901, t.dihiragana = 12386, t.dikatakana = 12482, t.dittomark = 12291, t.divide = 247, t.divides = 8739, t.divisionslash = 8725, t.djecyrillic = 1106, t.dkshade = 9619, t.dlinebelow = 7695, t.dlsquare = 13207, t.dmacron = 273, t.dmonospace = 65348, t.dnblock = 9604, t.dochadathai = 3598, t.dodekthai = 3604, t.dohiragana = 12393, t.dokatakana = 12489, t.dollar = 36, t.dollarinferior = 63203, t.dollarmonospace = 65284, t.dollaroldstyle = 63268, t.dollarsmall = 65129, t.dollarsuperior = 63204, t.dong = 8363, t.dorusquare = 13094, t.dotaccent = 729, t.dotaccentcmb = 775, t.dotbelowcmb = 803, t.dotbelowcomb = 803, t.dotkatakana = 12539, t.dotlessi = 305, t.dotlessj = 63166, t.dotlessjstrokehook = 644, t.dotmath = 8901, t.dottedcircle = 9676, t.doubleyodpatah = 64287, t.doubleyodpatahhebrew = 64287, t.downtackbelowcmb = 798, t.downtackmod = 725, t.dparen = 9375, t.dsuperior = 63211, t.dtail = 598, t.dtopbar = 396, t.duhiragana = 12389, t.dukatakana = 12485, t.dz = 499, t.dzaltone = 675, t.dzcaron = 454, t.dzcurl = 677, t.dzeabkhasiancyrillic = 1249, t.dzecyrillic = 1109, t.dzhecyrillic = 1119, t.e = 101, t.eacute = 233, t.earth = 9793, t.ebengali = 2447, t.ebopomofo = 12572, t.ebreve = 277, t.ecandradeva = 2317, t.ecandragujarati = 2701, t.ecandravowelsigndeva = 2373, t.ecandravowelsigngujarati = 2757, t.ecaron = 283, t.ecedillabreve = 7709, t.echarmenian = 1381, t.echyiwnarmenian = 1415, t.ecircle = 9428, t.ecircumflex = 234, t.ecircumflexacute = 7871, t.ecircumflexbelow = 7705, t.ecircumflexdotbelow = 7879, t.ecircumflexgrave = 7873, t.ecircumflexhookabove = 7875, t.ecircumflextilde = 7877, t.ecyrillic = 1108, t.edblgrave = 517, t.edeva = 2319, t.edieresis = 235, t.edot = 279, t.edotaccent = 279, t.edotbelow = 7865, t.eegurmukhi = 2575, t.eematragurmukhi = 2631, t.efcyrillic = 1092, t.egrave = 232, t.egujarati = 2703, t.eharmenian = 1383, t.ehbopomofo = 12573, t.ehiragana = 12360, t.ehookabove = 7867, t.eibopomofo = 12575, t.eight = 56, t.eightarabic = 1640, t.eightbengali = 2542, t.eightcircle = 9319, t.eightcircleinversesansserif = 10129, t.eightdeva = 2414, t.eighteencircle = 9329, t.eighteenparen = 9349, t.eighteenperiod = 9369, t.eightgujarati = 2798, t.eightgurmukhi = 2670, t.eighthackarabic = 1640, t.eighthangzhou = 12328, t.eighthnotebeamed = 9835, t.eightideographicparen = 12839, t.eightinferior = 8328, t.eightmonospace = 65304, t.eightoldstyle = 63288, t.eightparen = 9339, t.eightperiod = 9359, t.eightpersian = 1784, t.eightroman = 8567, t.eightsuperior = 8312, t.eightthai = 3672, t.einvertedbreve = 519, t.eiotifiedcyrillic = 1125, t.ekatakana = 12456, t.ekatakanahalfwidth = 65396, t.ekonkargurmukhi = 2676, t.ekorean = 12628, t.elcyrillic = 1083, t.element = 8712, t.elevencircle = 9322, t.elevenparen = 9342, t.elevenperiod = 9362, t.elevenroman = 8570, t.ellipsis = 8230, t.ellipsisvertical = 8942, t.emacron = 275, t.emacronacute = 7703, t.emacrongrave = 7701, t.emcyrillic = 1084, t.emdash = 8212, t.emdashvertical = 65073, t.emonospace = 65349, t.emphasismarkarmenian = 1371, t.emptyset = 8709, t.enbopomofo = 12579, t.encyrillic = 1085, t.endash = 8211, t.endashvertical = 65074, t.endescendercyrillic = 1187, t.eng = 331, t.engbopomofo = 12581, t.enghecyrillic = 1189, t.enhookcyrillic = 1224, t.enspace = 8194, t.eogonek = 281, t.eokorean = 12627, t.eopen = 603, t.eopenclosed = 666, t.eopenreversed = 604, t.eopenreversedclosed = 606, t.eopenreversedhook = 605, t.eparen = 9376, t.epsilon = 949, t.epsilontonos = 941, t.equal = 61, t.equalmonospace = 65309, t.equalsmall = 65126, t.equalsuperior = 8316, t.equivalence = 8801, t.erbopomofo = 12582, t.ercyrillic = 1088, t.ereversed = 600, t.ereversedcyrillic = 1101, t.escyrillic = 1089, t.esdescendercyrillic = 1195, t.esh = 643, t.eshcurl = 646, t.eshortdeva = 2318, t.eshortvowelsigndeva = 2374, t.eshreversedloop = 426, t.eshsquatreversed = 645, t.esmallhiragana = 12359, t.esmallkatakana = 12455, t.esmallkatakanahalfwidth = 65386, t.estimated = 8494, t.esuperior = 63212, t.eta = 951, t.etarmenian = 1384, t.etatonos = 942, t.eth = 240, t.etilde = 7869, t.etildebelow = 7707, t.etnahtafoukhhebrew = 1425, t.etnahtafoukhlefthebrew = 1425, t.etnahtahebrew = 1425, t.etnahtalefthebrew = 1425, t.eturned = 477, t.eukorean = 12641, t.euro = 8364, t.evowelsignbengali = 2503, t.evowelsigndeva = 2375, t.evowelsigngujarati = 2759, t.exclam = 33, t.exclamarmenian = 1372, t.exclamdbl = 8252, t.exclamdown = 161, t.exclamdownsmall = 63393, t.exclammonospace = 65281, t.exclamsmall = 63265, t.existential = 8707, t.ezh = 658, t.ezhcaron = 495, t.ezhcurl = 659, t.ezhreversed = 441, t.ezhtail = 442, t.f = 102, t.fadeva = 2398, t.fagurmukhi = 2654, t.fahrenheit = 8457, t.fathaarabic = 1614, t.fathalowarabic = 1614, t.fathatanarabic = 1611, t.fbopomofo = 12552, t.fcircle = 9429, t.fdotaccent = 7711, t.feharabic = 1601, t.feharmenian = 1414, t.fehfinalarabic = 65234, t.fehinitialarabic = 65235, t.fehmedialarabic = 65236, t.feicoptic = 997, t.female = 9792, t.ff = 64256, t.f_f = 64256, t.ffi = 64259, t.f_f_i = 64259, t.ffl = 64260, t.f_f_l = 64260, t.fi = 64257, t.f_i = 64257, t.fifteencircle = 9326, t.fifteenparen = 9346, t.fifteenperiod = 9366, t.figuredash = 8210, t.filledbox = 9632, t.filledrect = 9644, t.finalkaf = 1498, t.finalkafdagesh = 64314, t.finalkafdageshhebrew = 64314, t.finalkafhebrew = 1498, t.finalmem = 1501, t.finalmemhebrew = 1501, t.finalnun = 1503, t.finalnunhebrew = 1503, t.finalpe = 1507, t.finalpehebrew = 1507, t.finaltsadi = 1509, t.finaltsadihebrew = 1509, t.firsttonechinese = 713, t.fisheye = 9673, t.fitacyrillic = 1139, t.five = 53, t.fivearabic = 1637, t.fivebengali = 2539, t.fivecircle = 9316, t.fivecircleinversesansserif = 10126, t.fivedeva = 2411, t.fiveeighths = 8541, t.fivegujarati = 2795, t.fivegurmukhi = 2667, t.fivehackarabic = 1637, t.fivehangzhou = 12325, t.fiveideographicparen = 12836, t.fiveinferior = 8325, t.fivemonospace = 65301, t.fiveoldstyle = 63285, t.fiveparen = 9336, t.fiveperiod = 9356, t.fivepersian = 1781, t.fiveroman = 8564, t.fivesuperior = 8309, t.fivethai = 3669, t.fl = 64258, t.f_l = 64258, t.florin = 402, t.fmonospace = 65350, t.fmsquare = 13209, t.fofanthai = 3615, t.fofathai = 3613, t.fongmanthai = 3663, t.forall = 8704, t.four = 52, t.fourarabic = 1636, t.fourbengali = 2538, t.fourcircle = 9315, t.fourcircleinversesansserif = 10125, t.fourdeva = 2410, t.fourgujarati = 2794, t.fourgurmukhi = 2666, t.fourhackarabic = 1636, t.fourhangzhou = 12324, t.fourideographicparen = 12835, t.fourinferior = 8324, t.fourmonospace = 65300, t.fournumeratorbengali = 2551, t.fouroldstyle = 63284, t.fourparen = 9335, t.fourperiod = 9355, t.fourpersian = 1780, t.fourroman = 8563, t.foursuperior = 8308, t.fourteencircle = 9325, t.fourteenparen = 9345, t.fourteenperiod = 9365, t.fourthai = 3668, t.fourthtonechinese = 715, t.fparen = 9377, t.fraction = 8260, t.franc = 8355, t.g = 103, t.gabengali = 2455, t.gacute = 501, t.gadeva = 2327, t.gafarabic = 1711, t.gaffinalarabic = 64403, t.gafinitialarabic = 64404, t.gafmedialarabic = 64405, t.gagujarati = 2711, t.gagurmukhi = 2583, t.gahiragana = 12364, t.gakatakana = 12460, t.gamma = 947, t.gammalatinsmall = 611, t.gammasuperior = 736, t.gangiacoptic = 1003, t.gbopomofo = 12557, t.gbreve = 287, t.gcaron = 487, t.gcedilla = 291, t.gcircle = 9430, t.gcircumflex = 285, t.gcommaaccent = 291, t.gdot = 289, t.gdotaccent = 289, t.gecyrillic = 1075, t.gehiragana = 12370, t.gekatakana = 12466, t.geometricallyequal = 8785, t.gereshaccenthebrew = 1436, t.gereshhebrew = 1523, t.gereshmuqdamhebrew = 1437, t.germandbls = 223, t.gershayimaccenthebrew = 1438, t.gershayimhebrew = 1524, t.getamark = 12307, t.ghabengali = 2456, t.ghadarmenian = 1394, t.ghadeva = 2328, t.ghagujarati = 2712, t.ghagurmukhi = 2584, t.ghainarabic = 1594, t.ghainfinalarabic = 65230, t.ghaininitialarabic = 65231, t.ghainmedialarabic = 65232, t.ghemiddlehookcyrillic = 1173, t.ghestrokecyrillic = 1171, t.gheupturncyrillic = 1169, t.ghhadeva = 2394, t.ghhagurmukhi = 2650, t.ghook = 608, t.ghzsquare = 13203, t.gihiragana = 12366, t.gikatakana = 12462, t.gimarmenian = 1379, t.gimel = 1490, t.gimeldagesh = 64306, t.gimeldageshhebrew = 64306, t.gimelhebrew = 1490, t.gjecyrillic = 1107, t.glottalinvertedstroke = 446, t.glottalstop = 660, t.glottalstopinverted = 662, t.glottalstopmod = 704, t.glottalstopreversed = 661, t.glottalstopreversedmod = 705, t.glottalstopreversedsuperior = 740, t.glottalstopstroke = 673, t.glottalstopstrokereversed = 674, t.gmacron = 7713, t.gmonospace = 65351, t.gohiragana = 12372, t.gokatakana = 12468, t.gparen = 9378, t.gpasquare = 13228, t.gradient = 8711, t.grave = 96, t.gravebelowcmb = 790, t.gravecmb = 768, t.gravecomb = 768, t.gravedeva = 2387, t.gravelowmod = 718, t.gravemonospace = 65344, t.gravetonecmb = 832, t.greater = 62, t.greaterequal = 8805, t.greaterequalorless = 8923, t.greatermonospace = 65310, t.greaterorequivalent = 8819, t.greaterorless = 8823, t.greateroverequal = 8807, t.greatersmall = 65125, t.gscript = 609, t.gstroke = 485, t.guhiragana = 12368, t.guillemotleft = 171, t.guillemotright = 187, t.guilsinglleft = 8249, t.guilsinglright = 8250, t.gukatakana = 12464, t.guramusquare = 13080, t.gysquare = 13257, t.h = 104, t.haabkhasiancyrillic = 1193, t.haaltonearabic = 1729, t.habengali = 2489, t.hadescendercyrillic = 1203, t.hadeva = 2361, t.hagujarati = 2745, t.hagurmukhi = 2617, t.haharabic = 1581, t.hahfinalarabic = 65186, t.hahinitialarabic = 65187, t.hahiragana = 12399, t.hahmedialarabic = 65188, t.haitusquare = 13098, t.hakatakana = 12495, t.hakatakanahalfwidth = 65418, t.halantgurmukhi = 2637, t.hamzaarabic = 1569, t.hamzalowarabic = 1569, t.hangulfiller = 12644, t.hardsigncyrillic = 1098, t.harpoonleftbarbup = 8636, t.harpoonrightbarbup = 8640, t.hasquare = 13258, t.hatafpatah = 1458, t.hatafpatah16 = 1458, t.hatafpatah23 = 1458, t.hatafpatah2f = 1458, t.hatafpatahhebrew = 1458, t.hatafpatahnarrowhebrew = 1458, t.hatafpatahquarterhebrew = 1458, t.hatafpatahwidehebrew = 1458, t.hatafqamats = 1459, t.hatafqamats1b = 1459, t.hatafqamats28 = 1459, t.hatafqamats34 = 1459, t.hatafqamatshebrew = 1459, t.hatafqamatsnarrowhebrew = 1459, t.hatafqamatsquarterhebrew = 1459, t.hatafqamatswidehebrew = 1459, t.hatafsegol = 1457, t.hatafsegol17 = 1457, t.hatafsegol24 = 1457, t.hatafsegol30 = 1457, t.hatafsegolhebrew = 1457, t.hatafsegolnarrowhebrew = 1457, t.hatafsegolquarterhebrew = 1457, t.hatafsegolwidehebrew = 1457, t.hbar = 295, t.hbopomofo = 12559, t.hbrevebelow = 7723, t.hcedilla = 7721, t.hcircle = 9431, t.hcircumflex = 293, t.hdieresis = 7719, t.hdotaccent = 7715, t.hdotbelow = 7717, t.he = 1492, t.heart = 9829, t.heartsuitblack = 9829, t.heartsuitwhite = 9825, t.hedagesh = 64308, t.hedageshhebrew = 64308, t.hehaltonearabic = 1729, t.heharabic = 1607, t.hehebrew = 1492, t.hehfinalaltonearabic = 64423, t.hehfinalalttwoarabic = 65258, t.hehfinalarabic = 65258, t.hehhamzaabovefinalarabic = 64421, t.hehhamzaaboveisolatedarabic = 64420, t.hehinitialaltonearabic = 64424, t.hehinitialarabic = 65259, t.hehiragana = 12408, t.hehmedialaltonearabic = 64425, t.hehmedialarabic = 65260, t.heiseierasquare = 13179, t.hekatakana = 12504, t.hekatakanahalfwidth = 65421, t.hekutaarusquare = 13110, t.henghook = 615, t.herutusquare = 13113, t.het = 1495, t.hethebrew = 1495, t.hhook = 614, t.hhooksuperior = 689, t.hieuhacirclekorean = 12923, t.hieuhaparenkorean = 12827, t.hieuhcirclekorean = 12909, t.hieuhkorean = 12622, t.hieuhparenkorean = 12813, t.hihiragana = 12402, t.hikatakana = 12498, t.hikatakanahalfwidth = 65419, t.hiriq = 1460, t.hiriq14 = 1460, t.hiriq21 = 1460, t.hiriq2d = 1460, t.hiriqhebrew = 1460, t.hiriqnarrowhebrew = 1460, t.hiriqquarterhebrew = 1460, t.hiriqwidehebrew = 1460, t.hlinebelow = 7830, t.hmonospace = 65352, t.hoarmenian = 1392, t.hohipthai = 3627, t.hohiragana = 12411, t.hokatakana = 12507, t.hokatakanahalfwidth = 65422, t.holam = 1465, t.holam19 = 1465, t.holam26 = 1465, t.holam32 = 1465, t.holamhebrew = 1465, t.holamnarrowhebrew = 1465, t.holamquarterhebrew = 1465, t.holamwidehebrew = 1465, t.honokhukthai = 3630, t.hookabovecomb = 777, t.hookcmb = 777, t.hookpalatalizedbelowcmb = 801, t.hookretroflexbelowcmb = 802, t.hoonsquare = 13122, t.horicoptic = 1001, t.horizontalbar = 8213, t.horncmb = 795, t.hotsprings = 9832, t.house = 8962, t.hparen = 9379, t.hsuperior = 688, t.hturned = 613, t.huhiragana = 12405, t.huiitosquare = 13107, t.hukatakana = 12501, t.hukatakanahalfwidth = 65420, t.hungarumlaut = 733, t.hungarumlautcmb = 779, t.hv = 405, t.hyphen = 45, t.hypheninferior = 63205, t.hyphenmonospace = 65293, t.hyphensmall = 65123, t.hyphensuperior = 63206, t.hyphentwo = 8208, t.i = 105, t.iacute = 237, t.iacyrillic = 1103, t.ibengali = 2439, t.ibopomofo = 12583, t.ibreve = 301, t.icaron = 464, t.icircle = 9432, t.icircumflex = 238, t.icyrillic = 1110, t.idblgrave = 521, t.ideographearthcircle = 12943, t.ideographfirecircle = 12939, t.ideographicallianceparen = 12863, t.ideographiccallparen = 12858, t.ideographiccentrecircle = 12965, t.ideographicclose = 12294, t.ideographiccomma = 12289, t.ideographiccommaleft = 65380, t.ideographiccongratulationparen = 12855, t.ideographiccorrectcircle = 12963, t.ideographicearthparen = 12847, t.ideographicenterpriseparen = 12861, t.ideographicexcellentcircle = 12957, t.ideographicfestivalparen = 12864, t.ideographicfinancialcircle = 12950, t.ideographicfinancialparen = 12854, t.ideographicfireparen = 12843, t.ideographichaveparen = 12850, t.ideographichighcircle = 12964, t.ideographiciterationmark = 12293, t.ideographiclaborcircle = 12952, t.ideographiclaborparen = 12856, t.ideographicleftcircle = 12967, t.ideographiclowcircle = 12966, t.ideographicmedicinecircle = 12969, t.ideographicmetalparen = 12846, t.ideographicmoonparen = 12842, t.ideographicnameparen = 12852, t.ideographicperiod = 12290, t.ideographicprintcircle = 12958, t.ideographicreachparen = 12867, t.ideographicrepresentparen = 12857, t.ideographicresourceparen = 12862, t.ideographicrightcircle = 12968, t.ideographicsecretcircle = 12953, t.ideographicselfparen = 12866, t.ideographicsocietyparen = 12851, t.ideographicspace = 12288, t.ideographicspecialparen = 12853, t.ideographicstockparen = 12849, t.ideographicstudyparen = 12859, t.ideographicsunparen = 12848, t.ideographicsuperviseparen = 12860, t.ideographicwaterparen = 12844, t.ideographicwoodparen = 12845, t.ideographiczero = 12295, t.ideographmetalcircle = 12942, t.ideographmooncircle = 12938, t.ideographnamecircle = 12948, t.ideographsuncircle = 12944, t.ideographwatercircle = 12940, t.ideographwoodcircle = 12941, t.ideva = 2311, t.idieresis = 239, t.idieresisacute = 7727, t.idieresiscyrillic = 1253, t.idotbelow = 7883, t.iebrevecyrillic = 1239, t.iecyrillic = 1077, t.ieungacirclekorean = 12917, t.ieungaparenkorean = 12821, t.ieungcirclekorean = 12903, t.ieungkorean = 12615, t.ieungparenkorean = 12807, t.igrave = 236, t.igujarati = 2695, t.igurmukhi = 2567, t.ihiragana = 12356, t.ihookabove = 7881, t.iibengali = 2440, t.iicyrillic = 1080, t.iideva = 2312, t.iigujarati = 2696, t.iigurmukhi = 2568, t.iimatragurmukhi = 2624, t.iinvertedbreve = 523, t.iishortcyrillic = 1081, t.iivowelsignbengali = 2496, t.iivowelsigndeva = 2368, t.iivowelsigngujarati = 2752, t.ij = 307, t.ikatakana = 12452, t.ikatakanahalfwidth = 65394, t.ikorean = 12643, t.ilde = 732, t.iluyhebrew = 1452, t.imacron = 299, t.imacroncyrillic = 1251, t.imageorapproximatelyequal = 8787, t.imatragurmukhi = 2623, t.imonospace = 65353, t.increment = 8710, t.infinity = 8734, t.iniarmenian = 1387, t.integral = 8747, t.integralbottom = 8993, t.integralbt = 8993, t.integralex = 63733, t.integraltop = 8992, t.integraltp = 8992, t.intersection = 8745, t.intisquare = 13061, t.invbullet = 9688, t.invcircle = 9689, t.invsmileface = 9787, t.iocyrillic = 1105, t.iogonek = 303, t.iota = 953, t.iotadieresis = 970, t.iotadieresistonos = 912, t.iotalatin = 617, t.iotatonos = 943, t.iparen = 9380, t.irigurmukhi = 2674, t.ismallhiragana = 12355, t.ismallkatakana = 12451, t.ismallkatakanahalfwidth = 65384, t.issharbengali = 2554, t.istroke = 616, t.isuperior = 63213, t.iterationhiragana = 12445, t.iterationkatakana = 12541, t.itilde = 297, t.itildebelow = 7725, t.iubopomofo = 12585, t.iucyrillic = 1102, t.ivowelsignbengali = 2495, t.ivowelsigndeva = 2367, t.ivowelsigngujarati = 2751, t.izhitsacyrillic = 1141, t.izhitsadblgravecyrillic = 1143, t.j = 106, t.jaarmenian = 1393, t.jabengali = 2460, t.jadeva = 2332, t.jagujarati = 2716, t.jagurmukhi = 2588, t.jbopomofo = 12560, t.jcaron = 496, t.jcircle = 9433, t.jcircumflex = 309, t.jcrossedtail = 669, t.jdotlessstroke = 607, t.jecyrillic = 1112, t.jeemarabic = 1580, t.jeemfinalarabic = 65182, t.jeeminitialarabic = 65183, t.jeemmedialarabic = 65184, t.jeharabic = 1688, t.jehfinalarabic = 64395, t.jhabengali = 2461, t.jhadeva = 2333, t.jhagujarati = 2717, t.jhagurmukhi = 2589, t.jheharmenian = 1403, t.jis = 12292, t.jmonospace = 65354, t.jparen = 9381, t.jsuperior = 690, t.k = 107, t.kabashkircyrillic = 1185, t.kabengali = 2453, t.kacute = 7729, t.kacyrillic = 1082, t.kadescendercyrillic = 1179, t.kadeva = 2325, t.kaf = 1499, t.kafarabic = 1603, t.kafdagesh = 64315, t.kafdageshhebrew = 64315, t.kaffinalarabic = 65242, t.kafhebrew = 1499, t.kafinitialarabic = 65243, t.kafmedialarabic = 65244, t.kafrafehebrew = 64333, t.kagujarati = 2709, t.kagurmukhi = 2581, t.kahiragana = 12363, t.kahookcyrillic = 1220, t.kakatakana = 12459, t.kakatakanahalfwidth = 65398, t.kappa = 954, t.kappasymbolgreek = 1008, t.kapyeounmieumkorean = 12657, t.kapyeounphieuphkorean = 12676, t.kapyeounpieupkorean = 12664, t.kapyeounssangpieupkorean = 12665, t.karoriisquare = 13069, t.kashidaautoarabic = 1600, t.kashidaautonosidebearingarabic = 1600, t.kasmallkatakana = 12533, t.kasquare = 13188, t.kasraarabic = 1616, t.kasratanarabic = 1613, t.kastrokecyrillic = 1183, t.katahiraprolongmarkhalfwidth = 65392, t.kaverticalstrokecyrillic = 1181, t.kbopomofo = 12558, t.kcalsquare = 13193, t.kcaron = 489, t.kcedilla = 311, t.kcircle = 9434, t.kcommaaccent = 311, t.kdotbelow = 7731, t.keharmenian = 1412, t.kehiragana = 12369, t.kekatakana = 12465, t.kekatakanahalfwidth = 65401, t.kenarmenian = 1391, t.kesmallkatakana = 12534, t.kgreenlandic = 312, t.khabengali = 2454, t.khacyrillic = 1093, t.khadeva = 2326, t.khagujarati = 2710, t.khagurmukhi = 2582, t.khaharabic = 1582, t.khahfinalarabic = 65190, t.khahinitialarabic = 65191, t.khahmedialarabic = 65192, t.kheicoptic = 999, t.khhadeva = 2393, t.khhagurmukhi = 2649, t.khieukhacirclekorean = 12920, t.khieukhaparenkorean = 12824, t.khieukhcirclekorean = 12906, t.khieukhkorean = 12619, t.khieukhparenkorean = 12810, t.khokhaithai = 3586, t.khokhonthai = 3589, t.khokhuatthai = 3587, t.khokhwaithai = 3588, t.khomutthai = 3675, t.khook = 409, t.khorakhangthai = 3590, t.khzsquare = 13201, t.kihiragana = 12365, t.kikatakana = 12461, t.kikatakanahalfwidth = 65399, t.kiroguramusquare = 13077, t.kiromeetorusquare = 13078, t.kirosquare = 13076, t.kiyeokacirclekorean = 12910, t.kiyeokaparenkorean = 12814, t.kiyeokcirclekorean = 12896, t.kiyeokkorean = 12593, t.kiyeokparenkorean = 12800, t.kiyeoksioskorean = 12595, t.kjecyrillic = 1116, t.klinebelow = 7733, t.klsquare = 13208, t.kmcubedsquare = 13222, t.kmonospace = 65355, t.kmsquaredsquare = 13218, t.kohiragana = 12371, t.kohmsquare = 13248, t.kokaithai = 3585, t.kokatakana = 12467, t.kokatakanahalfwidth = 65402, t.kooposquare = 13086, t.koppacyrillic = 1153, t.koreanstandardsymbol = 12927, t.koroniscmb = 835, t.kparen = 9382, t.kpasquare = 13226, t.ksicyrillic = 1135, t.ktsquare = 13263, t.kturned = 670, t.kuhiragana = 12367, t.kukatakana = 12463, t.kukatakanahalfwidth = 65400, t.kvsquare = 13240, t.kwsquare = 13246, t.l = 108, t.labengali = 2482, t.lacute = 314, t.ladeva = 2354, t.lagujarati = 2738, t.lagurmukhi = 2610, t.lakkhangyaothai = 3653, t.lamaleffinalarabic = 65276, t.lamalefhamzaabovefinalarabic = 65272, t.lamalefhamzaaboveisolatedarabic = 65271, t.lamalefhamzabelowfinalarabic = 65274, t.lamalefhamzabelowisolatedarabic = 65273, t.lamalefisolatedarabic = 65275, t.lamalefmaddaabovefinalarabic = 65270, t.lamalefmaddaaboveisolatedarabic = 65269, t.lamarabic = 1604, t.lambda = 955, t.lambdastroke = 411, t.lamed = 1500, t.lameddagesh = 64316, t.lameddageshhebrew = 64316, t.lamedhebrew = 1500, t.lamfinalarabic = 65246, t.lamhahinitialarabic = 64714, t.laminitialarabic = 65247, t.lamjeeminitialarabic = 64713, t.lamkhahinitialarabic = 64715, t.lamlamhehisolatedarabic = 65010, t.lammedialarabic = 65248, t.lammeemhahinitialarabic = 64904, t.lammeeminitialarabic = 64716, t.largecircle = 9711, t.lbar = 410, t.lbelt = 620, t.lbopomofo = 12556, t.lcaron = 318, t.lcedilla = 316, t.lcircle = 9435, t.lcircumflexbelow = 7741, t.lcommaaccent = 316, t.ldot = 320, t.ldotaccent = 320, t.ldotbelow = 7735, t.ldotbelowmacron = 7737, t.leftangleabovecmb = 794, t.lefttackbelowcmb = 792, t.less = 60, t.lessequal = 8804, t.lessequalorgreater = 8922, t.lessmonospace = 65308, t.lessorequivalent = 8818, t.lessorgreater = 8822, t.lessoverequal = 8806, t.lesssmall = 65124, t.lezh = 622, t.lfblock = 9612, t.lhookretroflex = 621, t.lira = 8356, t.liwnarmenian = 1388, t.lj = 457, t.ljecyrillic = 1113, t.ll = 63168, t.lladeva = 2355, t.llagujarati = 2739, t.llinebelow = 7739, t.llladeva = 2356, t.llvocalicbengali = 2529, t.llvocalicdeva = 2401, t.llvocalicvowelsignbengali = 2531, t.llvocalicvowelsigndeva = 2403, t.lmiddletilde = 619, t.lmonospace = 65356, t.lmsquare = 13264, t.lochulathai = 3628, t.logicaland = 8743, t.logicalnot = 172, t.logicalnotreversed = 8976, t.logicalor = 8744, t.lolingthai = 3621, t.longs = 383, t.lowlinecenterline = 65102, t.lowlinecmb = 818, t.lowlinedashed = 65101, t.lozenge = 9674, t.lparen = 9383, t.lslash = 322, t.lsquare = 8467, t.lsuperior = 63214, t.ltshade = 9617, t.luthai = 3622, t.lvocalicbengali = 2444, t.lvocalicdeva = 2316, t.lvocalicvowelsignbengali = 2530, t.lvocalicvowelsigndeva = 2402, t.lxsquare = 13267, t.m = 109, t.mabengali = 2478, t.macron = 175, t.macronbelowcmb = 817, t.macroncmb = 772, t.macronlowmod = 717, t.macronmonospace = 65507, t.macute = 7743, t.madeva = 2350, t.magujarati = 2734, t.magurmukhi = 2606, t.mahapakhhebrew = 1444, t.mahapakhlefthebrew = 1444, t.mahiragana = 12414, t.maichattawalowleftthai = 63637, t.maichattawalowrightthai = 63636, t.maichattawathai = 3659, t.maichattawaupperleftthai = 63635, t.maieklowleftthai = 63628, t.maieklowrightthai = 63627, t.maiekthai = 3656, t.maiekupperleftthai = 63626, t.maihanakatleftthai = 63620, t.maihanakatthai = 3633, t.maitaikhuleftthai = 63625, t.maitaikhuthai = 3655, t.maitholowleftthai = 63631, t.maitholowrightthai = 63630, t.maithothai = 3657, t.maithoupperleftthai = 63629, t.maitrilowleftthai = 63634, t.maitrilowrightthai = 63633, t.maitrithai = 3658, t.maitriupperleftthai = 63632, t.maiyamokthai = 3654, t.makatakana = 12510, t.makatakanahalfwidth = 65423, t.male = 9794, t.mansyonsquare = 13127, t.maqafhebrew = 1470, t.mars = 9794, t.masoracirclehebrew = 1455, t.masquare = 13187, t.mbopomofo = 12551, t.mbsquare = 13268, t.mcircle = 9436, t.mcubedsquare = 13221, t.mdotaccent = 7745, t.mdotbelow = 7747, t.meemarabic = 1605, t.meemfinalarabic = 65250, t.meeminitialarabic = 65251, t.meemmedialarabic = 65252, t.meemmeeminitialarabic = 64721, t.meemmeemisolatedarabic = 64584, t.meetorusquare = 13133, t.mehiragana = 12417, t.meizierasquare = 13182, t.mekatakana = 12513, t.mekatakanahalfwidth = 65426, t.mem = 1502, t.memdagesh = 64318, t.memdageshhebrew = 64318, t.memhebrew = 1502, t.menarmenian = 1396, t.merkhahebrew = 1445, t.merkhakefulahebrew = 1446, t.merkhakefulalefthebrew = 1446, t.merkhalefthebrew = 1445, t.mhook = 625, t.mhzsquare = 13202, t.middledotkatakanahalfwidth = 65381, t.middot = 183, t.mieumacirclekorean = 12914, t.mieumaparenkorean = 12818, t.mieumcirclekorean = 12900, t.mieumkorean = 12609, t.mieumpansioskorean = 12656, t.mieumparenkorean = 12804, t.mieumpieupkorean = 12654, t.mieumsioskorean = 12655, t.mihiragana = 12415, t.mikatakana = 12511, t.mikatakanahalfwidth = 65424, t.minus = 8722, t.minusbelowcmb = 800, t.minuscircle = 8854, t.minusmod = 727, t.minusplus = 8723, t.minute = 8242, t.miribaarusquare = 13130, t.mirisquare = 13129, t.mlonglegturned = 624, t.mlsquare = 13206, t.mmcubedsquare = 13219, t.mmonospace = 65357, t.mmsquaredsquare = 13215, t.mohiragana = 12418, t.mohmsquare = 13249, t.mokatakana = 12514, t.mokatakanahalfwidth = 65427, t.molsquare = 13270, t.momathai = 3617, t.moverssquare = 13223, t.moverssquaredsquare = 13224, t.mparen = 9384, t.mpasquare = 13227, t.mssquare = 13235, t.msuperior = 63215, t.mturned = 623, t.mu = 181, t.mu1 = 181, t.muasquare = 13186, t.muchgreater = 8811, t.muchless = 8810, t.mufsquare = 13196, t.mugreek = 956, t.mugsquare = 13197, t.muhiragana = 12416, t.mukatakana = 12512, t.mukatakanahalfwidth = 65425, t.mulsquare = 13205, t.multiply = 215, t.mumsquare = 13211, t.munahhebrew = 1443, t.munahlefthebrew = 1443, t.musicalnote = 9834, t.musicalnotedbl = 9835, t.musicflatsign = 9837, t.musicsharpsign = 9839, t.mussquare = 13234, t.muvsquare = 13238, t.muwsquare = 13244, t.mvmegasquare = 13241, t.mvsquare = 13239, t.mwmegasquare = 13247, t.mwsquare = 13245, t.n = 110, t.nabengali = 2472, t.nabla = 8711, t.nacute = 324, t.nadeva = 2344, t.nagujarati = 2728, t.nagurmukhi = 2600, t.nahiragana = 12394, t.nakatakana = 12490, t.nakatakanahalfwidth = 65413, t.napostrophe = 329, t.nasquare = 13185, t.nbopomofo = 12555, t.nbspace = 160, t.ncaron = 328, t.ncedilla = 326, t.ncircle = 9437, t.ncircumflexbelow = 7755, t.ncommaaccent = 326, t.ndotaccent = 7749, t.ndotbelow = 7751, t.nehiragana = 12397, t.nekatakana = 12493, t.nekatakanahalfwidth = 65416, t.newsheqelsign = 8362, t.nfsquare = 13195, t.ngabengali = 2457, t.ngadeva = 2329, t.ngagujarati = 2713, t.ngagurmukhi = 2585, t.ngonguthai = 3591, t.nhiragana = 12435, t.nhookleft = 626, t.nhookretroflex = 627, t.nieunacirclekorean = 12911, t.nieunaparenkorean = 12815, t.nieuncieuckorean = 12597, t.nieuncirclekorean = 12897, t.nieunhieuhkorean = 12598, t.nieunkorean = 12596, t.nieunpansioskorean = 12648, t.nieunparenkorean = 12801, t.nieunsioskorean = 12647, t.nieuntikeutkorean = 12646, t.nihiragana = 12395, t.nikatakana = 12491, t.nikatakanahalfwidth = 65414, t.nikhahitleftthai = 63641, t.nikhahitthai = 3661, t.nine = 57, t.ninearabic = 1641, t.ninebengali = 2543, t.ninecircle = 9320, t.ninecircleinversesansserif = 10130, t.ninedeva = 2415, t.ninegujarati = 2799, t.ninegurmukhi = 2671, t.ninehackarabic = 1641, t.ninehangzhou = 12329, t.nineideographicparen = 12840, t.nineinferior = 8329, t.ninemonospace = 65305, t.nineoldstyle = 63289, t.nineparen = 9340, t.nineperiod = 9360, t.ninepersian = 1785, t.nineroman = 8568, t.ninesuperior = 8313, t.nineteencircle = 9330, t.nineteenparen = 9350, t.nineteenperiod = 9370, t.ninethai = 3673, t.nj = 460, t.njecyrillic = 1114, t.nkatakana = 12531, t.nkatakanahalfwidth = 65437, t.nlegrightlong = 414, t.nlinebelow = 7753, t.nmonospace = 65358, t.nmsquare = 13210, t.nnabengali = 2467, t.nnadeva = 2339, t.nnagujarati = 2723, t.nnagurmukhi = 2595, t.nnnadeva = 2345, t.nohiragana = 12398, t.nokatakana = 12494, t.nokatakanahalfwidth = 65417, t.nonbreakingspace = 160, t.nonenthai = 3603, t.nonuthai = 3609, t.noonarabic = 1606, t.noonfinalarabic = 65254, t.noonghunnaarabic = 1722, t.noonghunnafinalarabic = 64415, t.nooninitialarabic = 65255, t.noonjeeminitialarabic = 64722, t.noonjeemisolatedarabic = 64587, t.noonmedialarabic = 65256, t.noonmeeminitialarabic = 64725, t.noonmeemisolatedarabic = 64590, t.noonnoonfinalarabic = 64653, t.notcontains = 8716, t.notelement = 8713, t.notelementof = 8713, t.notequal = 8800, t.notgreater = 8815, t.notgreaternorequal = 8817, t.notgreaternorless = 8825, t.notidentical = 8802, t.notless = 8814, t.notlessnorequal = 8816, t.notparallel = 8742, t.notprecedes = 8832, t.notsubset = 8836, t.notsucceeds = 8833, t.notsuperset = 8837, t.nowarmenian = 1398, t.nparen = 9385, t.nssquare = 13233, t.nsuperior = 8319, t.ntilde = 241, t.nu = 957, t.nuhiragana = 12396, t.nukatakana = 12492, t.nukatakanahalfwidth = 65415, t.nuktabengali = 2492, t.nuktadeva = 2364, t.nuktagujarati = 2748, t.nuktagurmukhi = 2620, t.numbersign = 35, t.numbersignmonospace = 65283, t.numbersignsmall = 65119, t.numeralsigngreek = 884, t.numeralsignlowergreek = 885, t.numero = 8470, t.nun = 1504, t.nundagesh = 64320, t.nundageshhebrew = 64320, t.nunhebrew = 1504, t.nvsquare = 13237, t.nwsquare = 13243, t.nyabengali = 2462, t.nyadeva = 2334, t.nyagujarati = 2718, t.nyagurmukhi = 2590, t.o = 111, t.oacute = 243, t.oangthai = 3629, t.obarred = 629, t.obarredcyrillic = 1257, t.obarreddieresiscyrillic = 1259, t.obengali = 2451, t.obopomofo = 12571, t.obreve = 335, t.ocandradeva = 2321, t.ocandragujarati = 2705, t.ocandravowelsigndeva = 2377, t.ocandravowelsigngujarati = 2761, t.ocaron = 466, t.ocircle = 9438, t.ocircumflex = 244, t.ocircumflexacute = 7889, t.ocircumflexdotbelow = 7897, t.ocircumflexgrave = 7891, t.ocircumflexhookabove = 7893, t.ocircumflextilde = 7895, t.ocyrillic = 1086, t.odblacute = 337, t.odblgrave = 525, t.odeva = 2323, t.odieresis = 246, t.odieresiscyrillic = 1255, t.odotbelow = 7885, t.oe = 339, t.oekorean = 12634, t.ogonek = 731, t.ogonekcmb = 808, t.ograve = 242, t.ogujarati = 2707, t.oharmenian = 1413, t.ohiragana = 12362, t.ohookabove = 7887, t.ohorn = 417, t.ohornacute = 7899, t.ohorndotbelow = 7907, t.ohorngrave = 7901, t.ohornhookabove = 7903, t.ohorntilde = 7905, t.ohungarumlaut = 337, t.oi = 419, t.oinvertedbreve = 527, t.okatakana = 12458, t.okatakanahalfwidth = 65397, t.okorean = 12631, t.olehebrew = 1451, t.omacron = 333, t.omacronacute = 7763, t.omacrongrave = 7761, t.omdeva = 2384, t.omega = 969, t.omega1 = 982, t.omegacyrillic = 1121, t.omegalatinclosed = 631, t.omegaroundcyrillic = 1147, t.omegatitlocyrillic = 1149, t.omegatonos = 974, t.omgujarati = 2768, t.omicron = 959, t.omicrontonos = 972, t.omonospace = 65359, t.one = 49, t.onearabic = 1633, t.onebengali = 2535, t.onecircle = 9312, t.onecircleinversesansserif = 10122, t.onedeva = 2407, t.onedotenleader = 8228, t.oneeighth = 8539, t.onefitted = 63196, t.onegujarati = 2791, t.onegurmukhi = 2663, t.onehackarabic = 1633, t.onehalf = 189, t.onehangzhou = 12321, t.oneideographicparen = 12832, t.oneinferior = 8321, t.onemonospace = 65297, t.onenumeratorbengali = 2548, t.oneoldstyle = 63281, t.oneparen = 9332, t.oneperiod = 9352, t.onepersian = 1777, t.onequarter = 188, t.oneroman = 8560, t.onesuperior = 185, t.onethai = 3665, t.onethird = 8531, t.oogonek = 491, t.oogonekmacron = 493, t.oogurmukhi = 2579, t.oomatragurmukhi = 2635, t.oopen = 596, t.oparen = 9386, t.openbullet = 9702, t.option = 8997, t.ordfeminine = 170, t.ordmasculine = 186, t.orthogonal = 8735, t.oshortdeva = 2322, t.oshortvowelsigndeva = 2378, t.oslash = 248, t.oslashacute = 511, t.osmallhiragana = 12361, t.osmallkatakana = 12457, t.osmallkatakanahalfwidth = 65387, t.ostrokeacute = 511, t.osuperior = 63216, t.otcyrillic = 1151, t.otilde = 245, t.otildeacute = 7757, t.otildedieresis = 7759, t.oubopomofo = 12577, t.overline = 8254, t.overlinecenterline = 65098, t.overlinecmb = 773, t.overlinedashed = 65097, t.overlinedblwavy = 65100, t.overlinewavy = 65099, t.overscore = 175, t.ovowelsignbengali = 2507, t.ovowelsigndeva = 2379, t.ovowelsigngujarati = 2763, t.p = 112, t.paampssquare = 13184, t.paasentosquare = 13099, t.pabengali = 2474, t.pacute = 7765, t.padeva = 2346, t.pagedown = 8671, t.pageup = 8670, t.pagujarati = 2730, t.pagurmukhi = 2602, t.pahiragana = 12401, t.paiyannoithai = 3631, t.pakatakana = 12497, t.palatalizationcyrilliccmb = 1156, t.palochkacyrillic = 1216, t.pansioskorean = 12671, t.paragraph = 182, t.parallel = 8741, t.parenleft = 40, t.parenleftaltonearabic = 64830, t.parenleftbt = 63725, t.parenleftex = 63724, t.parenleftinferior = 8333, t.parenleftmonospace = 65288, t.parenleftsmall = 65113, t.parenleftsuperior = 8317, t.parenlefttp = 63723, t.parenleftvertical = 65077, t.parenright = 41, t.parenrightaltonearabic = 64831, t.parenrightbt = 63736, t.parenrightex = 63735, t.parenrightinferior = 8334, t.parenrightmonospace = 65289, t.parenrightsmall = 65114, t.parenrightsuperior = 8318, t.parenrighttp = 63734, t.parenrightvertical = 65078, t.partialdiff = 8706, t.paseqhebrew = 1472, t.pashtahebrew = 1433, t.pasquare = 13225, t.patah = 1463, t.patah11 = 1463, t.patah1d = 1463, t.patah2a = 1463, t.patahhebrew = 1463, t.patahnarrowhebrew = 1463, t.patahquarterhebrew = 1463, t.patahwidehebrew = 1463, t.pazerhebrew = 1441, t.pbopomofo = 12550, t.pcircle = 9439, t.pdotaccent = 7767, t.pe = 1508, t.pecyrillic = 1087, t.pedagesh = 64324, t.pedageshhebrew = 64324, t.peezisquare = 13115, t.pefinaldageshhebrew = 64323, t.peharabic = 1662, t.peharmenian = 1402, t.pehebrew = 1508, t.pehfinalarabic = 64343, t.pehinitialarabic = 64344, t.pehiragana = 12410, t.pehmedialarabic = 64345, t.pekatakana = 12506, t.pemiddlehookcyrillic = 1191, t.perafehebrew = 64334, t.percent = 37, t.percentarabic = 1642, t.percentmonospace = 65285, t.percentsmall = 65130, t.period = 46, t.periodarmenian = 1417, t.periodcentered = 183, t.periodhalfwidth = 65377, t.periodinferior = 63207, t.periodmonospace = 65294, t.periodsmall = 65106, t.periodsuperior = 63208, t.perispomenigreekcmb = 834, t.perpendicular = 8869, t.perthousand = 8240, t.peseta = 8359, t.pfsquare = 13194, t.phabengali = 2475, t.phadeva = 2347, t.phagujarati = 2731, t.phagurmukhi = 2603, t.phi = 966, t.phi1 = 981, t.phieuphacirclekorean = 12922, t.phieuphaparenkorean = 12826, t.phieuphcirclekorean = 12908, t.phieuphkorean = 12621, t.phieuphparenkorean = 12812, t.philatin = 632, t.phinthuthai = 3642, t.phisymbolgreek = 981, t.phook = 421, t.phophanthai = 3614, t.phophungthai = 3612, t.phosamphaothai = 3616, t.pi = 960, t.pieupacirclekorean = 12915, t.pieupaparenkorean = 12819, t.pieupcieuckorean = 12662, t.pieupcirclekorean = 12901, t.pieupkiyeokkorean = 12658, t.pieupkorean = 12610, t.pieupparenkorean = 12805, t.pieupsioskiyeokkorean = 12660, t.pieupsioskorean = 12612, t.pieupsiostikeutkorean = 12661, t.pieupthieuthkorean = 12663, t.pieuptikeutkorean = 12659, t.pihiragana = 12404, t.pikatakana = 12500, t.pisymbolgreek = 982, t.piwrarmenian = 1411, t.planckover2pi = 8463, t.planckover2pi1 = 8463, t.plus = 43, t.plusbelowcmb = 799, t.pluscircle = 8853, t.plusminus = 177, t.plusmod = 726, t.plusmonospace = 65291, t.plussmall = 65122, t.plussuperior = 8314, t.pmonospace = 65360, t.pmsquare = 13272, t.pohiragana = 12413, t.pointingindexdownwhite = 9759, t.pointingindexleftwhite = 9756, t.pointingindexrightwhite = 9758, t.pointingindexupwhite = 9757, t.pokatakana = 12509, t.poplathai = 3611, t.postalmark = 12306, t.postalmarkface = 12320, t.pparen = 9387, t.precedes = 8826, t.prescription = 8478, t.primemod = 697, t.primereversed = 8245, t.product = 8719, t.projective = 8965, t.prolongedkana = 12540, t.propellor = 8984, t.propersubset = 8834, t.propersuperset = 8835, t.proportion = 8759, t.proportional = 8733, t.psi = 968, t.psicyrillic = 1137, t.psilipneumatacyrilliccmb = 1158, t.pssquare = 13232, t.puhiragana = 12407, t.pukatakana = 12503, t.pvsquare = 13236, t.pwsquare = 13242, t.q = 113, t.qadeva = 2392, t.qadmahebrew = 1448, t.qafarabic = 1602, t.qaffinalarabic = 65238, t.qafinitialarabic = 65239, t.qafmedialarabic = 65240, t.qamats = 1464, t.qamats10 = 1464, t.qamats1a = 1464, t.qamats1c = 1464, t.qamats27 = 1464, t.qamats29 = 1464, t.qamats33 = 1464, t.qamatsde = 1464, t.qamatshebrew = 1464, t.qamatsnarrowhebrew = 1464, t.qamatsqatanhebrew = 1464, t.qamatsqatannarrowhebrew = 1464, t.qamatsqatanquarterhebrew = 1464, t.qamatsqatanwidehebrew = 1464, t.qamatsquarterhebrew = 1464, t.qamatswidehebrew = 1464, t.qarneyparahebrew = 1439, t.qbopomofo = 12561, t.qcircle = 9440, t.qhook = 672, t.qmonospace = 65361, t.qof = 1511, t.qofdagesh = 64327, t.qofdageshhebrew = 64327, t.qofhebrew = 1511, t.qparen = 9388, t.quarternote = 9833, t.qubuts = 1467, t.qubuts18 = 1467, t.qubuts25 = 1467, t.qubuts31 = 1467, t.qubutshebrew = 1467, t.qubutsnarrowhebrew = 1467, t.qubutsquarterhebrew = 1467, t.qubutswidehebrew = 1467, t.question = 63, t.questionarabic = 1567, t.questionarmenian = 1374, t.questiondown = 191, t.questiondownsmall = 63423, t.questiongreek = 894, t.questionmonospace = 65311, t.questionsmall = 63295, t.quotedbl = 34, t.quotedblbase = 8222, t.quotedblleft = 8220, t.quotedblmonospace = 65282, t.quotedblprime = 12318, t.quotedblprimereversed = 12317, t.quotedblright = 8221, t.quoteleft = 8216, t.quoteleftreversed = 8219, t.quotereversed = 8219, t.quoteright = 8217, t.quoterightn = 329, t.quotesinglbase = 8218, t.quotesingle = 39, t.quotesinglemonospace = 65287, t.r = 114, t.raarmenian = 1404, t.rabengali = 2480, t.racute = 341, t.radeva = 2352, t.radical = 8730, t.radicalex = 63717, t.radoverssquare = 13230, t.radoverssquaredsquare = 13231, t.radsquare = 13229, t.rafe = 1471, t.rafehebrew = 1471, t.ragujarati = 2736, t.ragurmukhi = 2608, t.rahiragana = 12425, t.rakatakana = 12521, t.rakatakanahalfwidth = 65431, t.ralowerdiagonalbengali = 2545, t.ramiddlediagonalbengali = 2544, t.ramshorn = 612, t.ratio = 8758, t.rbopomofo = 12566, t.rcaron = 345, t.rcedilla = 343, t.rcircle = 9441, t.rcommaaccent = 343, t.rdblgrave = 529, t.rdotaccent = 7769, t.rdotbelow = 7771, t.rdotbelowmacron = 7773, t.referencemark = 8251, t.reflexsubset = 8838, t.reflexsuperset = 8839, t.registered = 174, t.registersans = 63720, t.registerserif = 63194, t.reharabic = 1585, t.reharmenian = 1408, t.rehfinalarabic = 65198, t.rehiragana = 12428, t.rekatakana = 12524, t.rekatakanahalfwidth = 65434, t.resh = 1512, t.reshdageshhebrew = 64328, t.reshhebrew = 1512, t.reversedtilde = 8765, t.reviahebrew = 1431, t.reviamugrashhebrew = 1431, t.revlogicalnot = 8976, t.rfishhook = 638, t.rfishhookreversed = 639, t.rhabengali = 2525, t.rhadeva = 2397, t.rho = 961, t.rhook = 637, t.rhookturned = 635, t.rhookturnedsuperior = 693, t.rhosymbolgreek = 1009, t.rhotichookmod = 734, t.rieulacirclekorean = 12913, t.rieulaparenkorean = 12817, t.rieulcirclekorean = 12899, t.rieulhieuhkorean = 12608, t.rieulkiyeokkorean = 12602, t.rieulkiyeoksioskorean = 12649, t.rieulkorean = 12601, t.rieulmieumkorean = 12603, t.rieulpansioskorean = 12652, t.rieulparenkorean = 12803, t.rieulphieuphkorean = 12607, t.rieulpieupkorean = 12604, t.rieulpieupsioskorean = 12651, t.rieulsioskorean = 12605, t.rieulthieuthkorean = 12606, t.rieultikeutkorean = 12650, t.rieulyeorinhieuhkorean = 12653, t.rightangle = 8735, t.righttackbelowcmb = 793, t.righttriangle = 8895, t.rihiragana = 12426, t.rikatakana = 12522, t.rikatakanahalfwidth = 65432, t.ring = 730, t.ringbelowcmb = 805, t.ringcmb = 778, t.ringhalfleft = 703, t.ringhalfleftarmenian = 1369, t.ringhalfleftbelowcmb = 796, t.ringhalfleftcentered = 723, t.ringhalfright = 702, t.ringhalfrightbelowcmb = 825, t.ringhalfrightcentered = 722, t.rinvertedbreve = 531, t.rittorusquare = 13137, t.rlinebelow = 7775, t.rlongleg = 636, t.rlonglegturned = 634, t.rmonospace = 65362, t.rohiragana = 12429, t.rokatakana = 12525, t.rokatakanahalfwidth = 65435, t.roruathai = 3619, t.rparen = 9389, t.rrabengali = 2524, t.rradeva = 2353, t.rragurmukhi = 2652, t.rreharabic = 1681, t.rrehfinalarabic = 64397, t.rrvocalicbengali = 2528, t.rrvocalicdeva = 2400, t.rrvocalicgujarati = 2784, t.rrvocalicvowelsignbengali = 2500, t.rrvocalicvowelsigndeva = 2372, t.rrvocalicvowelsigngujarati = 2756, t.rsuperior = 63217, t.rtblock = 9616, t.rturned = 633, t.rturnedsuperior = 692, t.ruhiragana = 12427, t.rukatakana = 12523, t.rukatakanahalfwidth = 65433, t.rupeemarkbengali = 2546, t.rupeesignbengali = 2547, t.rupiah = 63197, t.ruthai = 3620, t.rvocalicbengali = 2443, t.rvocalicdeva = 2315, t.rvocalicgujarati = 2699, t.rvocalicvowelsignbengali = 2499, t.rvocalicvowelsigndeva = 2371, t.rvocalicvowelsigngujarati = 2755, t.s = 115, t.sabengali = 2488, t.sacute = 347, t.sacutedotaccent = 7781, t.sadarabic = 1589, t.sadeva = 2360, t.sadfinalarabic = 65210, t.sadinitialarabic = 65211, t.sadmedialarabic = 65212, t.sagujarati = 2744, t.sagurmukhi = 2616, t.sahiragana = 12373, t.sakatakana = 12469, t.sakatakanahalfwidth = 65403, t.sallallahoualayhewasallamarabic = 65018, t.samekh = 1505, t.samekhdagesh = 64321, t.samekhdageshhebrew = 64321, t.samekhhebrew = 1505, t.saraaathai = 3634, t.saraaethai = 3649, t.saraaimaimalaithai = 3652, t.saraaimaimuanthai = 3651, t.saraamthai = 3635, t.saraathai = 3632, t.saraethai = 3648, t.saraiileftthai = 63622, t.saraiithai = 3637, t.saraileftthai = 63621, t.saraithai = 3636, t.saraothai = 3650, t.saraueeleftthai = 63624, t.saraueethai = 3639, t.saraueleftthai = 63623, t.sarauethai = 3638, t.sarauthai = 3640, t.sarauuthai = 3641, t.sbopomofo = 12569, t.scaron = 353, t.scarondotaccent = 7783, t.scedilla = 351, t.schwa = 601, t.schwacyrillic = 1241, t.schwadieresiscyrillic = 1243, t.schwahook = 602, t.scircle = 9442, t.scircumflex = 349, t.scommaaccent = 537, t.sdotaccent = 7777, t.sdotbelow = 7779, t.sdotbelowdotaccent = 7785, t.seagullbelowcmb = 828, t.second = 8243, t.secondtonechinese = 714, t.section = 167, t.seenarabic = 1587, t.seenfinalarabic = 65202, t.seeninitialarabic = 65203, t.seenmedialarabic = 65204, t.segol = 1462, t.segol13 = 1462, t.segol1f = 1462, t.segol2c = 1462, t.segolhebrew = 1462, t.segolnarrowhebrew = 1462, t.segolquarterhebrew = 1462, t.segoltahebrew = 1426, t.segolwidehebrew = 1462, t.seharmenian = 1405, t.sehiragana = 12379, t.sekatakana = 12475, t.sekatakanahalfwidth = 65406, t.semicolon = 59, t.semicolonarabic = 1563, t.semicolonmonospace = 65307, t.semicolonsmall = 65108, t.semivoicedmarkkana = 12444, t.semivoicedmarkkanahalfwidth = 65439, t.sentisquare = 13090, t.sentosquare = 13091, t.seven = 55, t.sevenarabic = 1639, t.sevenbengali = 2541, t.sevencircle = 9318, t.sevencircleinversesansserif = 10128, t.sevendeva = 2413, t.seveneighths = 8542, t.sevengujarati = 2797, t.sevengurmukhi = 2669, t.sevenhackarabic = 1639, t.sevenhangzhou = 12327, t.sevenideographicparen = 12838, t.seveninferior = 8327, t.sevenmonospace = 65303, t.sevenoldstyle = 63287, t.sevenparen = 9338, t.sevenperiod = 9358, t.sevenpersian = 1783, t.sevenroman = 8566, t.sevensuperior = 8311, t.seventeencircle = 9328, t.seventeenparen = 9348, t.seventeenperiod = 9368, t.seventhai = 3671, t.sfthyphen = 173, t.shaarmenian = 1399, t.shabengali = 2486, t.shacyrillic = 1096, t.shaddaarabic = 1617, t.shaddadammaarabic = 64609, t.shaddadammatanarabic = 64606, t.shaddafathaarabic = 64608, t.shaddakasraarabic = 64610, t.shaddakasratanarabic = 64607, t.shade = 9618, t.shadedark = 9619, t.shadelight = 9617, t.shademedium = 9618, t.shadeva = 2358, t.shagujarati = 2742, t.shagurmukhi = 2614, t.shalshelethebrew = 1427, t.shbopomofo = 12565, t.shchacyrillic = 1097, t.sheenarabic = 1588, t.sheenfinalarabic = 65206, t.sheeninitialarabic = 65207, t.sheenmedialarabic = 65208, t.sheicoptic = 995, t.sheqel = 8362, t.sheqelhebrew = 8362, t.sheva = 1456, t.sheva115 = 1456, t.sheva15 = 1456, t.sheva22 = 1456, t.sheva2e = 1456, t.shevahebrew = 1456, t.shevanarrowhebrew = 1456, t.shevaquarterhebrew = 1456, t.shevawidehebrew = 1456, t.shhacyrillic = 1211, t.shimacoptic = 1005, t.shin = 1513, t.shindagesh = 64329, t.shindageshhebrew = 64329, t.shindageshshindot = 64300, t.shindageshshindothebrew = 64300, t.shindageshsindot = 64301, t.shindageshsindothebrew = 64301, t.shindothebrew = 1473, t.shinhebrew = 1513, t.shinshindot = 64298, t.shinshindothebrew = 64298, t.shinsindot = 64299, t.shinsindothebrew = 64299, t.shook = 642, t.sigma = 963, t.sigma1 = 962, t.sigmafinal = 962, t.sigmalunatesymbolgreek = 1010, t.sihiragana = 12375, t.sikatakana = 12471, t.sikatakanahalfwidth = 65404, t.siluqhebrew = 1469, t.siluqlefthebrew = 1469, t.similar = 8764, t.sindothebrew = 1474, t.siosacirclekorean = 12916, t.siosaparenkorean = 12820, t.sioscieuckorean = 12670, t.sioscirclekorean = 12902, t.sioskiyeokkorean = 12666, t.sioskorean = 12613, t.siosnieunkorean = 12667, t.siosparenkorean = 12806, t.siospieupkorean = 12669, t.siostikeutkorean = 12668, t.six = 54, t.sixarabic = 1638, t.sixbengali = 2540, t.sixcircle = 9317, t.sixcircleinversesansserif = 10127, t.sixdeva = 2412, t.sixgujarati = 2796, t.sixgurmukhi = 2668, t.sixhackarabic = 1638, t.sixhangzhou = 12326, t.sixideographicparen = 12837, t.sixinferior = 8326, t.sixmonospace = 65302, t.sixoldstyle = 63286, t.sixparen = 9337, t.sixperiod = 9357, t.sixpersian = 1782, t.sixroman = 8565, t.sixsuperior = 8310, t.sixteencircle = 9327, t.sixteencurrencydenominatorbengali = 2553, t.sixteenparen = 9347, t.sixteenperiod = 9367, t.sixthai = 3670, t.slash = 47, t.slashmonospace = 65295, t.slong = 383, t.slongdotaccent = 7835, t.smileface = 9786, t.smonospace = 65363, t.sofpasuqhebrew = 1475, t.softhyphen = 173, t.softsigncyrillic = 1100, t.sohiragana = 12381, t.sokatakana = 12477, t.sokatakanahalfwidth = 65407, t.soliduslongoverlaycmb = 824, t.solidusshortoverlaycmb = 823, t.sorusithai = 3625, t.sosalathai = 3624, t.sosothai = 3595, t.sosuathai = 3626, t.space = 32, t.spacehackarabic = 32, t.spade = 9824, t.spadesuitblack = 9824, t.spadesuitwhite = 9828, t.sparen = 9390, t.squarebelowcmb = 827, t.squarecc = 13252, t.squarecm = 13213, t.squarediagonalcrosshatchfill = 9641, t.squarehorizontalfill = 9636, t.squarekg = 13199, t.squarekm = 13214, t.squarekmcapital = 13262, t.squareln = 13265, t.squarelog = 13266, t.squaremg = 13198, t.squaremil = 13269, t.squaremm = 13212, t.squaremsquared = 13217, t.squareorthogonalcrosshatchfill = 9638, t.squareupperlefttolowerrightfill = 9639, t.squareupperrighttolowerleftfill = 9640, t.squareverticalfill = 9637, t.squarewhitewithsmallblack = 9635, t.srsquare = 13275, t.ssabengali = 2487, t.ssadeva = 2359, t.ssagujarati = 2743, t.ssangcieuckorean = 12617, t.ssanghieuhkorean = 12677, t.ssangieungkorean = 12672, t.ssangkiyeokkorean = 12594, t.ssangnieunkorean = 12645, t.ssangpieupkorean = 12611, t.ssangsioskorean = 12614, t.ssangtikeutkorean = 12600, t.ssuperior = 63218, t.sterling = 163, t.sterlingmonospace = 65505, t.strokelongoverlaycmb = 822, t.strokeshortoverlaycmb = 821, t.subset = 8834, t.subsetnotequal = 8842, t.subsetorequal = 8838, t.succeeds = 8827, t.suchthat = 8715, t.suhiragana = 12377, t.sukatakana = 12473, t.sukatakanahalfwidth = 65405, t.sukunarabic = 1618, t.summation = 8721, t.sun = 9788, t.superset = 8835, t.supersetnotequal = 8843, t.supersetorequal = 8839, t.svsquare = 13276, t.syouwaerasquare = 13180, t.t = 116, t.tabengali = 2468, t.tackdown = 8868, t.tackleft = 8867, t.tadeva = 2340, t.tagujarati = 2724, t.tagurmukhi = 2596, t.taharabic = 1591, t.tahfinalarabic = 65218, t.tahinitialarabic = 65219, t.tahiragana = 12383, t.tahmedialarabic = 65220, t.taisyouerasquare = 13181, t.takatakana = 12479, t.takatakanahalfwidth = 65408, t.tatweelarabic = 1600, t.tau = 964, t.tav = 1514, t.tavdages = 64330, t.tavdagesh = 64330, t.tavdageshhebrew = 64330, t.tavhebrew = 1514, t.tbar = 359, t.tbopomofo = 12554, t.tcaron = 357, t.tccurl = 680, t.tcedilla = 355, t.tcheharabic = 1670, t.tchehfinalarabic = 64379, t.tchehinitialarabic = 64380, t.tchehmedialarabic = 64381, t.tcircle = 9443, t.tcircumflexbelow = 7793, t.tcommaaccent = 355, t.tdieresis = 7831, t.tdotaccent = 7787, t.tdotbelow = 7789, t.tecyrillic = 1090, t.tedescendercyrillic = 1197, t.teharabic = 1578, t.tehfinalarabic = 65174, t.tehhahinitialarabic = 64674, t.tehhahisolatedarabic = 64524, t.tehinitialarabic = 65175, t.tehiragana = 12390, t.tehjeeminitialarabic = 64673, t.tehjeemisolatedarabic = 64523, t.tehmarbutaarabic = 1577, t.tehmarbutafinalarabic = 65172, t.tehmedialarabic = 65176, t.tehmeeminitialarabic = 64676, t.tehmeemisolatedarabic = 64526, t.tehnoonfinalarabic = 64627, t.tekatakana = 12486, t.tekatakanahalfwidth = 65411, t.telephone = 8481, t.telephoneblack = 9742, t.telishagedolahebrew = 1440, t.telishaqetanahebrew = 1449, t.tencircle = 9321, t.tenideographicparen = 12841, t.tenparen = 9341, t.tenperiod = 9361, t.tenroman = 8569, t.tesh = 679, t.tet = 1496, t.tetdagesh = 64312, t.tetdageshhebrew = 64312, t.tethebrew = 1496, t.tetsecyrillic = 1205, t.tevirhebrew = 1435, t.tevirlefthebrew = 1435, t.thabengali = 2469, t.thadeva = 2341, t.thagujarati = 2725, t.thagurmukhi = 2597, t.thalarabic = 1584, t.thalfinalarabic = 65196, t.thanthakhatlowleftthai = 63640, t.thanthakhatlowrightthai = 63639, t.thanthakhatthai = 3660, t.thanthakhatupperleftthai = 63638, t.theharabic = 1579, t.thehfinalarabic = 65178, t.thehinitialarabic = 65179, t.thehmedialarabic = 65180, t.thereexists = 8707, t.therefore = 8756, t.theta = 952, t.theta1 = 977, t.thetasymbolgreek = 977, t.thieuthacirclekorean = 12921, t.thieuthaparenkorean = 12825, t.thieuthcirclekorean = 12907, t.thieuthkorean = 12620, t.thieuthparenkorean = 12811, t.thirteencircle = 9324, t.thirteenparen = 9344, t.thirteenperiod = 9364, t.thonangmonthothai = 3601, t.thook = 429, t.thophuthaothai = 3602, t.thorn = 254, t.thothahanthai = 3607, t.thothanthai = 3600, t.thothongthai = 3608, t.thothungthai = 3606, t.thousandcyrillic = 1154, t.thousandsseparatorarabic = 1644, t.thousandsseparatorpersian = 1644, t.three = 51, t.threearabic = 1635, t.threebengali = 2537, t.threecircle = 9314, t.threecircleinversesansserif = 10124, t.threedeva = 2409, t.threeeighths = 8540, t.threegujarati = 2793, t.threegurmukhi = 2665, t.threehackarabic = 1635, t.threehangzhou = 12323, t.threeideographicparen = 12834, t.threeinferior = 8323, t.threemonospace = 65299, t.threenumeratorbengali = 2550, t.threeoldstyle = 63283, t.threeparen = 9334, t.threeperiod = 9354, t.threepersian = 1779, t.threequarters = 190, t.threequartersemdash = 63198, t.threeroman = 8562, t.threesuperior = 179, t.threethai = 3667, t.thzsquare = 13204, t.tihiragana = 12385, t.tikatakana = 12481, t.tikatakanahalfwidth = 65409, t.tikeutacirclekorean = 12912, t.tikeutaparenkorean = 12816, t.tikeutcirclekorean = 12898, t.tikeutkorean = 12599, t.tikeutparenkorean = 12802, t.tilde = 732, t.tildebelowcmb = 816, t.tildecmb = 771, t.tildecomb = 771, t.tildedoublecmb = 864, t.tildeoperator = 8764, t.tildeoverlaycmb = 820, t.tildeverticalcmb = 830, t.timescircle = 8855, t.tipehahebrew = 1430, t.tipehalefthebrew = 1430, t.tippigurmukhi = 2672, t.titlocyrilliccmb = 1155, t.tiwnarmenian = 1407, t.tlinebelow = 7791, t.tmonospace = 65364, t.toarmenian = 1385, t.tohiragana = 12392, t.tokatakana = 12488, t.tokatakanahalfwidth = 65412, t.tonebarextrahighmod = 741, t.tonebarextralowmod = 745, t.tonebarhighmod = 742, t.tonebarlowmod = 744, t.tonebarmidmod = 743, t.tonefive = 445, t.tonesix = 389, t.tonetwo = 424, t.tonos = 900, t.tonsquare = 13095, t.topatakthai = 3599, t.tortoiseshellbracketleft = 12308, t.tortoiseshellbracketleftsmall = 65117, t.tortoiseshellbracketleftvertical = 65081, t.tortoiseshellbracketright = 12309, t.tortoiseshellbracketrightsmall = 65118, t.tortoiseshellbracketrightvertical = 65082, t.totaothai = 3605, t.tpalatalhook = 427, t.tparen = 9391, t.trademark = 8482, t.trademarksans = 63722, t.trademarkserif = 63195, t.tretroflexhook = 648, t.triagdn = 9660, t.triaglf = 9668, t.triagrt = 9658, t.triagup = 9650, t.ts = 678, t.tsadi = 1510, t.tsadidagesh = 64326, t.tsadidageshhebrew = 64326, t.tsadihebrew = 1510, t.tsecyrillic = 1094, t.tsere = 1461, t.tsere12 = 1461, t.tsere1e = 1461, t.tsere2b = 1461, t.tserehebrew = 1461, t.tserenarrowhebrew = 1461, t.tserequarterhebrew = 1461, t.tserewidehebrew = 1461, t.tshecyrillic = 1115, t.tsuperior = 63219, t.ttabengali = 2463, t.ttadeva = 2335, t.ttagujarati = 2719, t.ttagurmukhi = 2591, t.tteharabic = 1657, t.ttehfinalarabic = 64359, t.ttehinitialarabic = 64360, t.ttehmedialarabic = 64361, t.tthabengali = 2464, t.tthadeva = 2336, t.tthagujarati = 2720, t.tthagurmukhi = 2592, t.tturned = 647, t.tuhiragana = 12388, t.tukatakana = 12484, t.tukatakanahalfwidth = 65410, t.tusmallhiragana = 12387, t.tusmallkatakana = 12483, t.tusmallkatakanahalfwidth = 65391, t.twelvecircle = 9323, t.twelveparen = 9343, t.twelveperiod = 9363, t.twelveroman = 8571, t.twentycircle = 9331, t.twentyhangzhou = 21316, t.twentyparen = 9351, t.twentyperiod = 9371, t.two = 50, t.twoarabic = 1634, t.twobengali = 2536, t.twocircle = 9313, t.twocircleinversesansserif = 10123, t.twodeva = 2408, t.twodotenleader = 8229, t.twodotleader = 8229, t.twodotleadervertical = 65072, t.twogujarati = 2792, t.twogurmukhi = 2664, t.twohackarabic = 1634, t.twohangzhou = 12322, t.twoideographicparen = 12833, t.twoinferior = 8322, t.twomonospace = 65298, t.twonumeratorbengali = 2549, t.twooldstyle = 63282, t.twoparen = 9333, t.twoperiod = 9353, t.twopersian = 1778, t.tworoman = 8561, t.twostroke = 443, t.twosuperior = 178, t.twothai = 3666, t.twothirds = 8532, t.u = 117, t.uacute = 250, t.ubar = 649, t.ubengali = 2441, t.ubopomofo = 12584, t.ubreve = 365, t.ucaron = 468, t.ucircle = 9444, t.ucircumflex = 251, t.ucircumflexbelow = 7799, t.ucyrillic = 1091, t.udattadeva = 2385, t.udblacute = 369, t.udblgrave = 533, t.udeva = 2313, t.udieresis = 252, t.udieresisacute = 472, t.udieresisbelow = 7795, t.udieresiscaron = 474, t.udieresiscyrillic = 1265, t.udieresisgrave = 476, t.udieresismacron = 470, t.udotbelow = 7909, t.ugrave = 249, t.ugujarati = 2697, t.ugurmukhi = 2569, t.uhiragana = 12358, t.uhookabove = 7911, t.uhorn = 432, t.uhornacute = 7913, t.uhorndotbelow = 7921, t.uhorngrave = 7915, t.uhornhookabove = 7917, t.uhorntilde = 7919, t.uhungarumlaut = 369, t.uhungarumlautcyrillic = 1267, t.uinvertedbreve = 535, t.ukatakana = 12454, t.ukatakanahalfwidth = 65395, t.ukcyrillic = 1145, t.ukorean = 12636, t.umacron = 363, t.umacroncyrillic = 1263, t.umacrondieresis = 7803, t.umatragurmukhi = 2625, t.umonospace = 65365, t.underscore = 95, t.underscoredbl = 8215, t.underscoremonospace = 65343, t.underscorevertical = 65075, t.underscorewavy = 65103, t.union = 8746, t.universal = 8704, t.uogonek = 371, t.uparen = 9392, t.upblock = 9600, t.upperdothebrew = 1476, t.upsilon = 965, t.upsilondieresis = 971, t.upsilondieresistonos = 944, t.upsilonlatin = 650, t.upsilontonos = 973, t.uptackbelowcmb = 797, t.uptackmod = 724, t.uragurmukhi = 2675, t.uring = 367, t.ushortcyrillic = 1118, t.usmallhiragana = 12357, t.usmallkatakana = 12453, t.usmallkatakanahalfwidth = 65385, t.ustraightcyrillic = 1199, t.ustraightstrokecyrillic = 1201, t.utilde = 361, t.utildeacute = 7801, t.utildebelow = 7797, t.uubengali = 2442, t.uudeva = 2314, t.uugujarati = 2698, t.uugurmukhi = 2570, t.uumatragurmukhi = 2626, t.uuvowelsignbengali = 2498, t.uuvowelsigndeva = 2370, t.uuvowelsigngujarati = 2754, t.uvowelsignbengali = 2497, t.uvowelsigndeva = 2369, t.uvowelsigngujarati = 2753, t.v = 118, t.vadeva = 2357, t.vagujarati = 2741, t.vagurmukhi = 2613, t.vakatakana = 12535, t.vav = 1493, t.vavdagesh = 64309, t.vavdagesh65 = 64309, t.vavdageshhebrew = 64309, t.vavhebrew = 1493, t.vavholam = 64331, t.vavholamhebrew = 64331, t.vavvavhebrew = 1520, t.vavyodhebrew = 1521, t.vcircle = 9445, t.vdotbelow = 7807, t.vecyrillic = 1074, t.veharabic = 1700, t.vehfinalarabic = 64363, t.vehinitialarabic = 64364, t.vehmedialarabic = 64365, t.vekatakana = 12537, t.venus = 9792, t.verticalbar = 124, t.verticallineabovecmb = 781, t.verticallinebelowcmb = 809, t.verticallinelowmod = 716, t.verticallinemod = 712, t.vewarmenian = 1406, t.vhook = 651, t.vikatakana = 12536, t.viramabengali = 2509, t.viramadeva = 2381, t.viramagujarati = 2765, t.visargabengali = 2435, t.visargadeva = 2307, t.visargagujarati = 2691, t.vmonospace = 65366, t.voarmenian = 1400, t.voicediterationhiragana = 12446, t.voicediterationkatakana = 12542, t.voicedmarkkana = 12443, t.voicedmarkkanahalfwidth = 65438, t.vokatakana = 12538, t.vparen = 9393, t.vtilde = 7805, t.vturned = 652, t.vuhiragana = 12436, t.vukatakana = 12532, t.w = 119, t.wacute = 7811, t.waekorean = 12633, t.wahiragana = 12431, t.wakatakana = 12527, t.wakatakanahalfwidth = 65436, t.wakorean = 12632, t.wasmallhiragana = 12430, t.wasmallkatakana = 12526, t.wattosquare = 13143, t.wavedash = 12316, t.wavyunderscorevertical = 65076, t.wawarabic = 1608, t.wawfinalarabic = 65262, t.wawhamzaabovearabic = 1572, t.wawhamzaabovefinalarabic = 65158, t.wbsquare = 13277, t.wcircle = 9446, t.wcircumflex = 373, t.wdieresis = 7813, t.wdotaccent = 7815, t.wdotbelow = 7817, t.wehiragana = 12433, t.weierstrass = 8472, t.wekatakana = 12529, t.wekorean = 12638, t.weokorean = 12637, t.wgrave = 7809, t.whitebullet = 9702, t.whitecircle = 9675, t.whitecircleinverse = 9689, t.whitecornerbracketleft = 12302, t.whitecornerbracketleftvertical = 65091, t.whitecornerbracketright = 12303, t.whitecornerbracketrightvertical = 65092, t.whitediamond = 9671, t.whitediamondcontainingblacksmalldiamond = 9672, t.whitedownpointingsmalltriangle = 9663, t.whitedownpointingtriangle = 9661, t.whiteleftpointingsmalltriangle = 9667, t.whiteleftpointingtriangle = 9665, t.whitelenticularbracketleft = 12310, t.whitelenticularbracketright = 12311, t.whiterightpointingsmalltriangle = 9657, t.whiterightpointingtriangle = 9655, t.whitesmallsquare = 9643, t.whitesmilingface = 9786, t.whitesquare = 9633, t.whitestar = 9734, t.whitetelephone = 9743, t.whitetortoiseshellbracketleft = 12312, t.whitetortoiseshellbracketright = 12313, t.whiteuppointingsmalltriangle = 9653, t.whiteuppointingtriangle = 9651, t.wihiragana = 12432, t.wikatakana = 12528, t.wikorean = 12639, t.wmonospace = 65367, t.wohiragana = 12434, t.wokatakana = 12530, t.wokatakanahalfwidth = 65382, t.won = 8361, t.wonmonospace = 65510, t.wowaenthai = 3623, t.wparen = 9394, t.wring = 7832, t.wsuperior = 695, t.wturned = 653, t.wynn = 447, t.x = 120, t.xabovecmb = 829, t.xbopomofo = 12562, t.xcircle = 9447, t.xdieresis = 7821, t.xdotaccent = 7819, t.xeharmenian = 1389, t.xi = 958, t.xmonospace = 65368, t.xparen = 9395, t.xsuperior = 739, t.y = 121, t.yaadosquare = 13134, t.yabengali = 2479, t.yacute = 253, t.yadeva = 2351, t.yaekorean = 12626, t.yagujarati = 2735, t.yagurmukhi = 2607, t.yahiragana = 12420, t.yakatakana = 12516, t.yakatakanahalfwidth = 65428, t.yakorean = 12625, t.yamakkanthai = 3662, t.yasmallhiragana = 12419, t.yasmallkatakana = 12515, t.yasmallkatakanahalfwidth = 65388, t.yatcyrillic = 1123, t.ycircle = 9448, t.ycircumflex = 375, t.ydieresis = 255, t.ydotaccent = 7823, t.ydotbelow = 7925, t.yeharabic = 1610, t.yehbarreearabic = 1746, t.yehbarreefinalarabic = 64431, t.yehfinalarabic = 65266, t.yehhamzaabovearabic = 1574, t.yehhamzaabovefinalarabic = 65162, t.yehhamzaaboveinitialarabic = 65163, t.yehhamzaabovemedialarabic = 65164, t.yehinitialarabic = 65267, t.yehmedialarabic = 65268, t.yehmeeminitialarabic = 64733, t.yehmeemisolatedarabic = 64600, t.yehnoonfinalarabic = 64660, t.yehthreedotsbelowarabic = 1745, t.yekorean = 12630, t.yen = 165, t.yenmonospace = 65509, t.yeokorean = 12629, t.yeorinhieuhkorean = 12678, t.yerahbenyomohebrew = 1450, t.yerahbenyomolefthebrew = 1450, t.yericyrillic = 1099, t.yerudieresiscyrillic = 1273, t.yesieungkorean = 12673, t.yesieungpansioskorean = 12675, t.yesieungsioskorean = 12674, t.yetivhebrew = 1434, t.ygrave = 7923, t.yhook = 436, t.yhookabove = 7927, t.yiarmenian = 1397, t.yicyrillic = 1111, t.yikorean = 12642, t.yinyang = 9775, t.yiwnarmenian = 1410, t.ymonospace = 65369, t.yod = 1497, t.yoddagesh = 64313, t.yoddageshhebrew = 64313, t.yodhebrew = 1497, t.yodyodhebrew = 1522, t.yodyodpatahhebrew = 64287, t.yohiragana = 12424, t.yoikorean = 12681, t.yokatakana = 12520, t.yokatakanahalfwidth = 65430, t.yokorean = 12635, t.yosmallhiragana = 12423, t.yosmallkatakana = 12519, t.yosmallkatakanahalfwidth = 65390, t.yotgreek = 1011, t.yoyaekorean = 12680, t.yoyakorean = 12679, t.yoyakthai = 3618, t.yoyingthai = 3597, t.yparen = 9396, t.ypogegrammeni = 890, t.ypogegrammenigreekcmb = 837, t.yr = 422, t.yring = 7833, t.ysuperior = 696, t.ytilde = 7929, t.yturned = 654, t.yuhiragana = 12422, t.yuikorean = 12684, t.yukatakana = 12518, t.yukatakanahalfwidth = 65429, t.yukorean = 12640, t.yusbigcyrillic = 1131, t.yusbigiotifiedcyrillic = 1133, t.yuslittlecyrillic = 1127, t.yuslittleiotifiedcyrillic = 1129, t.yusmallhiragana = 12421, t.yusmallkatakana = 12517, t.yusmallkatakanahalfwidth = 65389, t.yuyekorean = 12683, t.yuyeokorean = 12682, t.yyabengali = 2527, t.yyadeva = 2399, t.z = 122, t.zaarmenian = 1382, t.zacute = 378, t.zadeva = 2395, t.zagurmukhi = 2651, t.zaharabic = 1592, t.zahfinalarabic = 65222, t.zahinitialarabic = 65223, t.zahiragana = 12374, t.zahmedialarabic = 65224, t.zainarabic = 1586, t.zainfinalarabic = 65200, t.zakatakana = 12470, t.zaqefgadolhebrew = 1429, t.zaqefqatanhebrew = 1428, t.zarqahebrew = 1432, t.zayin = 1494, t.zayindagesh = 64310, t.zayindageshhebrew = 64310, t.zayinhebrew = 1494, t.zbopomofo = 12567, t.zcaron = 382, t.zcircle = 9449, t.zcircumflex = 7825, t.zcurl = 657, t.zdot = 380, t.zdotaccent = 380, t.zdotbelow = 7827, t.zecyrillic = 1079, t.zedescendercyrillic = 1177, t.zedieresiscyrillic = 1247, t.zehiragana = 12380, t.zekatakana = 12476, t.zero = 48, t.zeroarabic = 1632, t.zerobengali = 2534, t.zerodeva = 2406, t.zerogujarati = 2790, t.zerogurmukhi = 2662, t.zerohackarabic = 1632, t.zeroinferior = 8320, t.zeromonospace = 65296, t.zerooldstyle = 63280, t.zeropersian = 1776, t.zerosuperior = 8304, t.zerothai = 3664, t.zerowidthjoiner = 65279, t.zerowidthnonjoiner = 8204, t.zerowidthspace = 8203, t.zeta = 950, t.zhbopomofo = 12563, t.zhearmenian = 1386, t.zhebrevecyrillic = 1218, t.zhecyrillic = 1078, t.zhedescendercyrillic = 1175, t.zhedieresiscyrillic = 1245, t.zihiragana = 12376, t.zikatakana = 12472, t.zinorhebrew = 1454, t.zlinebelow = 7829, t.zmonospace = 65370, t.zohiragana = 12382, t.zokatakana = 12478, t.zparen = 9397, t.zretroflexhook = 656, t.zstroke = 438, t.zuhiragana = 12378, t.zukatakana = 12474, t[".notdef"] = 0, t.angbracketleftbig = 9001, t.angbracketleftBig = 9001, t.angbracketleftbigg = 9001, t.angbracketleftBigg = 9001, t.angbracketrightBig = 9002, t.angbracketrightbig = 9002, t.angbracketrightBigg = 9002, t.angbracketrightbigg = 9002, t.arrowhookleft = 8618, t.arrowhookright = 8617, t.arrowlefttophalf = 8636, t.arrowleftbothalf = 8637, t.arrownortheast = 8599, t.arrownorthwest = 8598, t.arrowrighttophalf = 8640, t.arrowrightbothalf = 8641, t.arrowsoutheast = 8600, t.arrowsouthwest = 8601, t.backslashbig = 8726, t.backslashBig = 8726, t.backslashBigg = 8726, t.backslashbigg = 8726, t.bardbl = 8214, t.bracehtipdownleft = 65079, t.bracehtipdownright = 65079, t.bracehtipupleft = 65080, t.bracehtipupright = 65080, t.braceleftBig = 123, t.braceleftbig = 123, t.braceleftbigg = 123, t.braceleftBigg = 123, t.bracerightBig = 125, t.bracerightbig = 125, t.bracerightbigg = 125, t.bracerightBigg = 125, t.bracketleftbig = 91, t.bracketleftBig = 91, t.bracketleftbigg = 91, t.bracketleftBigg = 91, t.bracketrightBig = 93, t.bracketrightbig = 93, t.bracketrightbigg = 93, t.bracketrightBigg = 93, t.ceilingleftbig = 8968, t.ceilingleftBig = 8968, t.ceilingleftBigg = 8968, t.ceilingleftbigg = 8968, t.ceilingrightbig = 8969, t.ceilingrightBig = 8969, t.ceilingrightbigg = 8969, t.ceilingrightBigg = 8969, t.circledotdisplay = 8857, t.circledottext = 8857, t.circlemultiplydisplay = 8855, t.circlemultiplytext = 8855, t.circleplusdisplay = 8853, t.circleplustext = 8853, t.contintegraldisplay = 8750, t.contintegraltext = 8750, t.coproductdisplay = 8720, t.coproducttext = 8720, t.floorleftBig = 8970, t.floorleftbig = 8970, t.floorleftbigg = 8970, t.floorleftBigg = 8970, t.floorrightbig = 8971, t.floorrightBig = 8971, t.floorrightBigg = 8971, t.floorrightbigg = 8971, t.hatwide = 770, t.hatwider = 770, t.hatwidest = 770, t.intercal = 7488, t.integraldisplay = 8747, t.integraltext = 8747, t.intersectiondisplay = 8898, t.intersectiontext = 8898, t.logicalanddisplay = 8743, t.logicalandtext = 8743, t.logicalordisplay = 8744, t.logicalortext = 8744, t.parenleftBig = 40, t.parenleftbig = 40, t.parenleftBigg = 40, t.parenleftbigg = 40, t.parenrightBig = 41, t.parenrightbig = 41, t.parenrightBigg = 41, t.parenrightbigg = 41, t.prime = 8242, t.productdisplay = 8719, t.producttext = 8719, t.radicalbig = 8730, t.radicalBig = 8730, t.radicalBigg = 8730, t.radicalbigg = 8730, t.radicalbt = 8730, t.radicaltp = 8730, t.radicalvertex = 8730, t.slashbig = 47, t.slashBig = 47, t.slashBigg = 47, t.slashbigg = 47, t.summationdisplay = 8721, t.summationtext = 8721, t.tildewide = 732, t.tildewider = 732, t.tildewidest = 732, t.uniondisplay = 8899, t.unionmultidisplay = 8846, t.unionmultitext = 8846, t.unionsqdisplay = 8852, t.unionsqtext = 8852, t.uniontext = 8899, t.vextenddouble = 8741, t.vextendsingle = 8739;
      });
      Rb = Dt(function(t) {
        t.space = 32, t.a1 = 9985, t.a2 = 9986, t.a202 = 9987, t.a3 = 9988, t.a4 = 9742, t.a5 = 9990, t.a119 = 9991, t.a118 = 9992, t.a117 = 9993, t.a11 = 9755, t.a12 = 9758, t.a13 = 9996, t.a14 = 9997, t.a15 = 9998, t.a16 = 9999, t.a105 = 1e4, t.a17 = 10001, t.a18 = 10002, t.a19 = 10003, t.a20 = 10004, t.a21 = 10005, t.a22 = 10006, t.a23 = 10007, t.a24 = 10008, t.a25 = 10009, t.a26 = 10010, t.a27 = 10011, t.a28 = 10012, t.a6 = 10013, t.a7 = 10014, t.a8 = 10015, t.a9 = 10016, t.a10 = 10017, t.a29 = 10018, t.a30 = 10019, t.a31 = 10020, t.a32 = 10021, t.a33 = 10022, t.a34 = 10023, t.a35 = 9733, t.a36 = 10025, t.a37 = 10026, t.a38 = 10027, t.a39 = 10028, t.a40 = 10029, t.a41 = 10030, t.a42 = 10031, t.a43 = 10032, t.a44 = 10033, t.a45 = 10034, t.a46 = 10035, t.a47 = 10036, t.a48 = 10037, t.a49 = 10038, t.a50 = 10039, t.a51 = 10040, t.a52 = 10041, t.a53 = 10042, t.a54 = 10043, t.a55 = 10044, t.a56 = 10045, t.a57 = 10046, t.a58 = 10047, t.a59 = 10048, t.a60 = 10049, t.a61 = 10050, t.a62 = 10051, t.a63 = 10052, t.a64 = 10053, t.a65 = 10054, t.a66 = 10055, t.a67 = 10056, t.a68 = 10057, t.a69 = 10058, t.a70 = 10059, t.a71 = 9679, t.a72 = 10061, t.a73 = 9632, t.a74 = 10063, t.a203 = 10064, t.a75 = 10065, t.a204 = 10066, t.a76 = 9650, t.a77 = 9660, t.a78 = 9670, t.a79 = 10070, t.a81 = 9687, t.a82 = 10072, t.a83 = 10073, t.a84 = 10074, t.a97 = 10075, t.a98 = 10076, t.a99 = 10077, t.a100 = 10078, t.a101 = 10081, t.a102 = 10082, t.a103 = 10083, t.a104 = 10084, t.a106 = 10085, t.a107 = 10086, t.a108 = 10087, t.a112 = 9827, t.a111 = 9830, t.a110 = 9829, t.a109 = 9824, t.a120 = 9312, t.a121 = 9313, t.a122 = 9314, t.a123 = 9315, t.a124 = 9316, t.a125 = 9317, t.a126 = 9318, t.a127 = 9319, t.a128 = 9320, t.a129 = 9321, t.a130 = 10102, t.a131 = 10103, t.a132 = 10104, t.a133 = 10105, t.a134 = 10106, t.a135 = 10107, t.a136 = 10108, t.a137 = 10109, t.a138 = 10110, t.a139 = 10111, t.a140 = 10112, t.a141 = 10113, t.a142 = 10114, t.a143 = 10115, t.a144 = 10116, t.a145 = 10117, t.a146 = 10118, t.a147 = 10119, t.a148 = 10120, t.a149 = 10121, t.a150 = 10122, t.a151 = 10123, t.a152 = 10124, t.a153 = 10125, t.a154 = 10126, t.a155 = 10127, t.a156 = 10128, t.a157 = 10129, t.a158 = 10130, t.a159 = 10131, t.a160 = 10132, t.a161 = 8594, t.a163 = 8596, t.a164 = 8597, t.a196 = 10136, t.a165 = 10137, t.a192 = 10138, t.a166 = 10139, t.a167 = 10140, t.a168 = 10141, t.a169 = 10142, t.a170 = 10143, t.a171 = 10144, t.a172 = 10145, t.a173 = 10146, t.a162 = 10147, t.a174 = 10148, t.a175 = 10149, t.a176 = 10150, t.a177 = 10151, t.a178 = 10152, t.a179 = 10153, t.a193 = 10154, t.a180 = 10155, t.a199 = 10156, t.a181 = 10157, t.a200 = 10158, t.a182 = 10159, t.a201 = 10161, t.a183 = 10162, t.a184 = 10163, t.a197 = 10164, t.a185 = 10165, t.a194 = 10166, t.a198 = 10167, t.a186 = 10168, t.a195 = 10169, t.a187 = 10170, t.a188 = 10171, t.a189 = 10172, t.a190 = 10173, t.a191 = 10174, t.a89 = 10088, t.a90 = 10089, t.a93 = 10090, t.a94 = 10091, t.a91 = 10092, t.a92 = 10093, t.a205 = 10094, t.a85 = 10095, t.a206 = 10096, t.a86 = 10097, t.a87 = 10098, t.a88 = 10099, t.a95 = 10100, t.a96 = 10101, t[".notdef"] = 0;
      });
      _b = Dt(function(t) {
        t[63721] = 169, t[63193] = 169, t[63720] = 174, t[63194] = 174, t[63722] = 8482, t[63195] = 8482, t[63729] = 9127, t[63730] = 9128, t[63731] = 9129, t[63740] = 9131, t[63741] = 9132, t[63742] = 9133, t[63726] = 9121, t[63727] = 9122, t[63728] = 9123, t[63737] = 9124, t[63738] = 9125, t[63739] = 9126, t[63723] = 9115, t[63724] = 9116, t[63725] = 9117, t[63734] = 9118, t[63735] = 9119, t[63736] = 9120;
      });
      p(Pb, "mapSpecialUnicodeValues");
      p(Va, "getUnicodeForGlyph");
      _f = [[0, 127], [128, 255], [256, 383], [384, 591], [592, 687, 7424, 7551, 7552, 7615], [688, 767, 42752, 42783], [768, 879, 7616, 7679], [880, 1023], [11392, 11519], [1024, 1279, 1280, 1327, 11744, 11775, 42560, 42655], [1328, 1423], [1424, 1535], [42240, 42559], [1536, 1791, 1872, 1919], [1984, 2047], [2304, 2431], [2432, 2559], [2560, 2687], [2688, 2815], [2816, 2943], [2944, 3071], [3072, 3199], [3200, 3327], [3328, 3455], [3584, 3711], [3712, 3839], [4256, 4351, 11520, 11567], [6912, 7039], [4352, 4607], [7680, 7935, 11360, 11391, 42784, 43007], [7936, 8191], [8192, 8303, 11776, 11903], [8304, 8351], [8352, 8399], [8400, 8447], [8448, 8527], [8528, 8591], [8592, 8703, 10224, 10239, 10496, 10623, 11008, 11263], [8704, 8959, 10752, 11007, 10176, 10223, 10624, 10751], [8960, 9215], [9216, 9279], [9280, 9311], [9312, 9471], [9472, 9599], [9600, 9631], [9632, 9727], [9728, 9983], [9984, 10175], [12288, 12351], [12352, 12447], [12448, 12543, 12784, 12799], [12544, 12591, 12704, 12735], [12592, 12687], [43072, 43135], [12800, 13055], [13056, 13311], [44032, 55215], [55296, 57343], [67840, 67871], [19968, 40959, 11904, 12031, 12032, 12255, 12272, 12287, 13312, 19903, 131072, 173791, 12688, 12703], [57344, 63743], [12736, 12783, 63744, 64255, 194560, 195103], [64256, 64335], [64336, 65023], [65056, 65071], [65040, 65055], [65104, 65135], [65136, 65279], [65280, 65519], [65520, 65535], [3840, 4095], [1792, 1871], [1920, 1983], [3456, 3583], [4096, 4255], [4608, 4991, 4992, 5023, 11648, 11743], [5024, 5119], [5120, 5759], [5760, 5791], [5792, 5887], [6016, 6143], [6144, 6319], [10240, 10495], [40960, 42127], [5888, 5919, 5920, 5951, 5952, 5983, 5984, 6015], [66304, 66351], [66352, 66383], [66560, 66639], [118784, 119039, 119040, 119295, 119296, 119375], [119808, 120831], [1044480, 1048573], [65024, 65039, 917760, 917999], [917504, 917631], [6400, 6479], [6480, 6527], [6528, 6623], [6656, 6687], [11264, 11359], [11568, 11647], [19904, 19967], [43008, 43055], [65536, 65663, 65664, 65791, 65792, 65855], [65856, 65935], [66432, 66463], [66464, 66527], [66640, 66687], [66688, 66735], [67584, 67647], [68096, 68191], [119552, 119647], [73728, 74751, 74752, 74879], [119648, 119679], [7040, 7103], [7168, 7247], [7248, 7295], [43136, 43231], [43264, 43311], [43312, 43359], [43520, 43615], [65936, 65999], [66e3, 66047], [66208, 66271, 66176, 66207, 67872, 67903], [127024, 127135, 126976, 127023]];
      p(Db, "getUnicodeRangeFor");
      Mb = new RegExp("^(\\s)|(\\p{Mn})|(\\p{Cf})$", "u");
      Pf = /* @__PURE__ */ new Map();
      p(Hb, "getCharUnicodeCategory");
      p(Ob, "clearUnicodeCaches");
      Ka = true;
      Ds = { FixedPitch: 1, Serif: 2, Symbolic: 4, Nonsymbolic: 32 };
      Nu = [".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"];
      p(zu, "recoverGlyphName");
      p(Uu, "type1FontGlyphMapping");
      p(Hi, "normalizeFontName");
      Lb = Dt((t) => {
        t[8211] = 65074, t[8212] = 65073, t[8229] = 65072, t[8230] = 65049, t[12289] = 65041, t[12290] = 65042, t[12296] = 65087, t[12297] = 65088, t[12298] = 65085, t[12299] = 65086, t[12300] = 65089, t[12301] = 65090, t[12302] = 65091, t[12303] = 65092, t[12304] = 65083, t[12305] = 65084, t[12308] = 65081, t[12309] = 65082, t[12310] = 65047, t[12311] = 65048, t[65103] = 65076, t[65281] = 65045, t[65288] = 65077, t[65289] = 65078, t[65292] = 65040, t[65306] = 65043, t[65307] = 65044, t[65311] = 65046, t[65339] = 65095, t[65341] = 65096, t[65343] = 65075, t[65371] = 65079, t[65373] = 65080;
      });
      Gu = 1e3;
      p(Nb, "compileType3Glyph");
      zb = [".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"];
      Ub = [".notdef", "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"];
      Gb = [".notdef", "space", "dollaroldstyle", "dollarsuperior", "parenleftsuperior", "parenrightsuperior", "twodotenleader", "onedotenleader", "comma", "hyphen", "period", "fraction", "zerooldstyle", "oneoldstyle", "twooldstyle", "threeoldstyle", "fouroldstyle", "fiveoldstyle", "sixoldstyle", "sevenoldstyle", "eightoldstyle", "nineoldstyle", "colon", "semicolon", "commasuperior", "threequartersemdash", "periodsuperior", "asuperior", "bsuperior", "centsuperior", "dsuperior", "esuperior", "isuperior", "lsuperior", "msuperior", "nsuperior", "osuperior", "rsuperior", "ssuperior", "tsuperior", "ff", "fi", "fl", "ffi", "ffl", "parenleftinferior", "parenrightinferior", "hyphensuperior", "colonmonetary", "onefitted", "rupiah", "centoldstyle", "figuredash", "hypheninferior", "onequarter", "onehalf", "threequarters", "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"];
      Wb = 10;
      _l = [".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", "twodotenleader", "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"];
      Pl = 391;
      Xa = [null, { id: "hstem", min: 2, stackClearing: true, stem: true }, null, { id: "vstem", min: 2, stackClearing: true, stem: true }, { id: "vmoveto", min: 1, stackClearing: true }, { id: "rlineto", min: 2, resetStack: true }, { id: "hlineto", min: 1, resetStack: true }, { id: "vlineto", min: 1, resetStack: true }, { id: "rrcurveto", min: 6, resetStack: true }, null, { id: "callsubr", min: 1 }, { id: "return", min: 0 }, null, null, { id: "endchar", min: 0, stackClearing: true }, null, null, null, { id: "hstemhm", min: 2, stackClearing: true, stem: true }, { id: "hintmask", min: 0, stackClearing: true }, { id: "cntrmask", min: 0, stackClearing: true }, { id: "rmoveto", min: 2, stackClearing: true }, { id: "hmoveto", min: 1, stackClearing: true }, { id: "vstemhm", min: 2, stackClearing: true, stem: true }, { id: "rcurveline", min: 8, resetStack: true }, { id: "rlinecurve", min: 8, resetStack: true }, { id: "vvcurveto", min: 4, resetStack: true }, { id: "hhcurveto", min: 4, resetStack: true }, null, { id: "callgsubr", min: 1 }, { id: "vhcurveto", min: 4, resetStack: true }, { id: "hvcurveto", min: 4, resetStack: true }];
      $b = [null, null, null, { id: "and", min: 2, stackDelta: -1 }, { id: "or", min: 2, stackDelta: -1 }, { id: "not", min: 1, stackDelta: 0 }, null, null, null, { id: "abs", min: 1, stackDelta: 0 }, { id: "add", min: 2, stackDelta: -1, stackFn(t, e) {
        t[e - 2] = t[e - 2] + t[e - 1];
      } }, { id: "sub", min: 2, stackDelta: -1, stackFn(t, e) {
        t[e - 2] = t[e - 2] - t[e - 1];
      } }, { id: "div", min: 2, stackDelta: -1, stackFn(t, e) {
        t[e - 2] = t[e - 2] / t[e - 1];
      } }, null, { id: "neg", min: 1, stackDelta: 0, stackFn(t, e) {
        t[e - 1] = -t[e - 1];
      } }, { id: "eq", min: 2, stackDelta: -1 }, null, null, { id: "drop", min: 1, stackDelta: -1 }, null, { id: "put", min: 2, stackDelta: -2 }, { id: "get", min: 1, stackDelta: 0 }, { id: "ifelse", min: 4, stackDelta: -3 }, { id: "random", min: 0, stackDelta: 1 }, { id: "mul", min: 2, stackDelta: -1, stackFn(t, e) {
        t[e - 2] = t[e - 2] * t[e - 1];
      } }, null, { id: "sqrt", min: 1, stackDelta: 0 }, { id: "dup", min: 1, stackDelta: 1 }, { id: "exch", min: 2, stackDelta: 0 }, { id: "index", min: 2, stackDelta: 0 }, { id: "roll", min: 3, stackDelta: -2 }, null, null, null, { id: "hflex", min: 7, resetStack: true }, { id: "flex", min: 13, resetStack: true }, { id: "hflex1", min: 9, resetStack: true }, { id: "flex1", min: 11, resetStack: true }];
      Df = class {
        static {
          p(this, "CFFParser");
        }
        constructor(e, n, s) {
          this.bytes = e.getBytes(), this.properties = n, this.seacAnalysisEnabled = !!s;
        }
        parse() {
          const e = this.properties, n = new Wu();
          this.cff = n;
          const s = this.parseHeader(), i = this.parseIndex(s.endPos), a = this.parseIndex(i.endPos), r = this.parseIndex(a.endPos), o = this.parseIndex(r.endPos), l = this.parseDict(a.obj.get(0)), f = this.createDict(Go, l, n.strings);
          n.header = s.obj, n.names = this.parseNameIndex(i.obj), n.strings = this.parseStringIndex(r.obj), n.topDict = f, n.globalSubrIndex = o.obj, this.parsePrivateDict(n.topDict), n.isCIDFont = f.hasName("ROS");
          const c = f.getByName("CharStrings"), h = this.parseIndex(c).obj;
          n.charStringCount = h.count;
          const u = f.getByName("FontMatrix");
          u && (e.fontMatrix = u);
          const d = f.getByName("FontBBox");
          d && (e.ascent = Math.max(d[3], d[1]), e.descent = Math.min(d[1], d[3]), e.ascentScaled = true);
          let m, g;
          if (n.isCIDFont) {
            const w = this.parseIndex(f.getByName("FDArray")).obj;
            for (let x = 0, y = w.count; x < y; ++x) {
              const j = w.get(x), v = this.createDict(Go, this.parseDict(j), n.strings);
              this.parsePrivateDict(v), n.fdArray.push(v);
            }
            g = null, m = this.parseCharsets(f.getByName("charset"), h.count, n.strings, true), n.fdSelect = this.parseFDSelect(f.getByName("FDSelect"), h.count);
          } else m = this.parseCharsets(f.getByName("charset"), h.count, n.strings, false), g = this.parseEncoding(f.getByName("Encoding"), e, n.strings, m.charset);
          n.charset = m, n.encoding = g;
          const b = this.parseCharStrings({ charStrings: h, localSubrIndex: f.privateDict.subrsIndex, globalSubrIndex: o.obj, fdSelect: n.fdSelect, fdArray: n.fdArray, privateDict: f.privateDict });
          return n.charStrings = b.charStrings, n.seacs = b.seacs, n.widths = b.widths, n;
        }
        parseHeader() {
          let e = this.bytes;
          const n = e.length;
          let s = 0;
          for (; s < n && e[s] !== 1; ) ++s;
          if (s >= n) throw new Q("Invalid CFF header");
          s !== 0 && (Ke("cff data is shifted"), e = e.subarray(s), this.bytes = e);
          const i = e[0], a = e[1], r = e[2], o = e[3];
          return { obj: new $u(i, a, r, o), endPos: r };
        }
        parseDict(e) {
          let n = 0;
          function s() {
            let l = e[n++];
            return l === 30 ? i() : l === 28 ? (l = ui(e, n), n += 2, l) : l === 29 ? (l = e[n++], l = l << 8 | e[n++], l = l << 8 | e[n++], l = l << 8 | e[n++], l) : l >= 32 && l <= 246 ? l - 139 : l >= 247 && l <= 250 ? (l - 247) * 256 + e[n++] + 108 : l >= 251 && l <= 254 ? -((l - 251) * 256) - e[n++] - 108 : (F('CFFParser_parseDict: "' + l + '" is a reserved command.'), NaN);
          }
          p(s, "parseOperand");
          function i() {
            let l = "";
            const c = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ".", "E", "E-", null, "-"], h = e.length;
            for (; n < h; ) {
              const u = e[n++], d = u >> 4, m = u & 15;
              if (d === 15 || (l += c[d], m === 15)) break;
              l += c[m];
            }
            return parseFloat(l);
          }
          p(i, "parseFloatOperand");
          let a = [];
          const r = [];
          n = 0;
          const o = e.length;
          for (; n < o; ) {
            let l = e[n];
            l <= 21 ? (l === 12 && (l = l << 8 | e[++n]), r.push([l, a]), a = [], ++n) : a.push(s());
          }
          return r;
        }
        parseIndex(e) {
          const n = new Oi(), s = this.bytes, i = s[e++] << 8 | s[e++], a = [];
          let r = e, o, l;
          if (i !== 0) {
            const f = s[e++], c = e + (i + 1) * f - 1;
            for (o = 0, l = i + 1; o < l; ++o) {
              let h = 0;
              for (let u = 0; u < f; ++u) h <<= 8, h += s[e++];
              a.push(c + h);
            }
            r = a[i];
          }
          for (o = 0, l = a.length - 1; o < l; ++o) {
            const f = a[o], c = a[o + 1];
            n.add(s.subarray(f, c));
          }
          return { obj: n, endPos: r };
        }
        parseNameIndex(e) {
          const n = [];
          for (let s = 0, i = e.count; s < i; ++s) {
            const a = e.get(s);
            n.push(Vn(a));
          }
          return n;
        }
        parseStringIndex(e) {
          const n = new Mf();
          for (let s = 0, i = e.count; s < i; ++s) {
            const a = e.get(s);
            n.add(Vn(a));
          }
          return n;
        }
        createDict(e, n, s) {
          const i = new e(s);
          for (const [a, r] of n) i.setByKey(a, r);
          return i;
        }
        parseCharString(e, n, s, i) {
          if (!n || e.callDepth > Wb) return false;
          let a = e.stackSize;
          const r = e.stack;
          let o = n.length;
          for (let l = 0; l < o; ) {
            const f = n[l++];
            let c = null;
            if (f === 12) {
              const h = n[l++];
              h === 0 ? (n[l - 2] = 139, n[l - 1] = 22, a = 0) : c = $b[h];
            } else if (f === 28) r[a] = ui(n, l), l += 2, a++;
            else if (f === 14) {
              if (a >= 4 && (a -= 4, this.seacAnalysisEnabled)) return e.seac = r.slice(a, a + 4), false;
              c = Xa[f];
            } else if (f >= 32 && f <= 246) r[a] = f - 139, a++;
            else if (f >= 247 && f <= 254) r[a] = f < 251 ? (f - 247 << 8) + n[l] + 108 : -(f - 251 << 8) - n[l] - 108, l++, a++;
            else if (f === 255) r[a] = (n[l] << 24 | n[l + 1] << 16 | n[l + 2] << 8 | n[l + 3]) / 65536, l += 4, a++;
            else if (f === 19 || f === 20) {
              if (e.hints += a >> 1, e.hints === 0) {
                n.copyWithin(l - 1, l, -1), l -= 1, o -= 1;
                continue;
              }
              l += e.hints + 7 >> 3, a %= 2, c = Xa[f];
            } else if (f === 10 || f === 29) {
              const h = f === 10 ? s : i;
              if (!h) return c = Xa[f], F("Missing subrsIndex for " + c.id), false;
              let u = 32768;
              h.count < 1240 ? u = 107 : h.count < 33900 && (u = 1131);
              const d = r[--a] + u;
              if (d < 0 || d >= h.count || isNaN(d)) return c = Xa[f], F("Out of bounds subrIndex for " + c.id), false;
              if (e.stackSize = a, e.callDepth++, !this.parseCharString(e, h.get(d), s, i)) return false;
              e.callDepth--, a = e.stackSize;
              continue;
            } else {
              if (f === 11) return e.stackSize = a, true;
              if (f === 0 && l === n.length) n[l - 1] = 14, c = Xa[14];
              else if (f === 9) {
                n.copyWithin(l - 1, l, -1), l -= 1, o -= 1;
                continue;
              } else c = Xa[f];
            }
            if (c) {
              if (c.stem && (e.hints += a >> 1, f === 3 || f === 23 ? e.hasVStems = true : e.hasVStems && (f === 1 || f === 18) && (F("CFF stem hints are in wrong order"), n[l - 1] = f === 1 ? 3 : 23)), a < c.min) return F("Not enough parameters for " + c.id + "; actual: " + a + ", expected: " + c.min), a === 0 ? (n[l - 1] = 14, true) : false;
              e.firstStackClearing && c.stackClearing && (e.firstStackClearing = false, a -= c.min, a >= 2 && c.stem ? a %= 2 : a > 1 && F("Found too many parameters for stack-clearing command"), a > 0 && (e.width = r[a - 1])), "stackDelta" in c ? ("stackFn" in c && c.stackFn(r, a), a += c.stackDelta) : (c.stackClearing || c.resetStack) && (a = 0);
            }
          }
          return o < n.length && n.fill(14, o), e.stackSize = a, true;
        }
        parseCharStrings({ charStrings: e, localSubrIndex: n, globalSubrIndex: s, fdSelect: i, fdArray: a, privateDict: r }) {
          const o = [], l = [], f = e.count;
          for (let c = 0; c < f; c++) {
            const h = e.get(c), u = { callDepth: 0, stackSize: 0, stack: [], hints: 0, firstStackClearing: true, seac: null, width: null, hasVStems: false };
            let d = true, m = null, g = r;
            if (i && a.length) {
              const b = i.getFDIndex(c);
              b === -1 && (F("Glyph index is not in fd select."), d = false), b >= a.length && (F("Invalid fd index for glyph index."), d = false), d && (g = a[b].privateDict, m = g.subrsIndex);
            } else n && (m = n);
            if (d && (d = this.parseCharString(u, h, m, s)), u.width !== null) {
              const b = g.getByName("nominalWidthX");
              l[c] = b + u.width;
            } else {
              const b = g.getByName("defaultWidthX");
              l[c] = b;
            }
            u.seac !== null && (o[c] = u.seac), d || e.set(c, new Uint8Array([14]));
          }
          return { charStrings: e, seacs: o, widths: l };
        }
        emptyPrivateDictionary(e) {
          const n = this.createDict(Wo, [], e.strings);
          e.setByKey(18, [0, 0]), e.privateDict = n;
        }
        parsePrivateDict(e) {
          if (!e.hasName("Private")) {
            this.emptyPrivateDictionary(e);
            return;
          }
          const n = e.getByName("Private");
          if (!Array.isArray(n) || n.length !== 2) {
            e.removeByName("Private");
            return;
          }
          const s = n[0], i = n[1];
          if (s === 0 || i >= this.bytes.length) {
            this.emptyPrivateDictionary(e);
            return;
          }
          const a = i + s, r = this.bytes.subarray(i, a), o = this.parseDict(r), l = this.createDict(Wo, o, e.strings);
          if (e.privateDict = l, l.getByName("ExpansionFactor") === 0 && l.setByName("ExpansionFactor", 0.06), !l.getByName("Subrs")) return;
          const f = l.getByName("Subrs"), c = i + f;
          if (f === 0 || c >= this.bytes.length) {
            this.emptyPrivateDictionary(e);
            return;
          }
          const h = this.parseIndex(c);
          l.subrsIndex = h.obj;
        }
        parseCharsets(e, n, s, i) {
          if (e === 0) return new Gr(true, Hf.ISO_ADOBE, zb);
          if (e === 1) return new Gr(true, Hf.EXPERT, Ub);
          if (e === 2) return new Gr(true, Hf.EXPERT_SUBSET, Gb);
          const a = this.bytes, r = e, o = a[e++], l = [i ? 0 : ".notdef"];
          let f, c, h;
          switch (n -= 1, o) {
            case 0:
              for (h = 0; h < n; h++) f = a[e++] << 8 | a[e++], l.push(i ? f : s.get(f));
              break;
            case 1:
              for (; l.length <= n; ) for (f = a[e++] << 8 | a[e++], c = a[e++], h = 0; h <= c; h++) l.push(i ? f++ : s.get(f++));
              break;
            case 2:
              for (; l.length <= n; ) for (f = a[e++] << 8 | a[e++], c = a[e++] << 8 | a[e++], h = 0; h <= c; h++) l.push(i ? f++ : s.get(f++));
              break;
            default:
              throw new Q("Unknown charset format");
          }
          const u = e, d = a.subarray(r, u);
          return new Gr(false, o, l, d);
        }
        parseEncoding(e, n, s, i) {
          const a = /* @__PURE__ */ Object.create(null), r = this.bytes;
          let o = false, l, f, c, h = null;
          function u() {
            const d = r[e++];
            for (f = 0; f < d; f++) {
              const m = r[e++], g = (r[e++] << 8) + (r[e++] & 255);
              a[m] = i.indexOf(s.get(g));
            }
          }
          if (p(u, "readSupplement"), e === 0 || e === 1) {
            o = true, l = e;
            const d = e ? Lu : gi;
            for (f = 0, c = i.length; f < c; f++) {
              const m = d.indexOf(i[f]);
              m !== -1 && (a[m] = f);
            }
          } else {
            const d = e;
            switch (l = r[e++], l & 127) {
              case 0:
                const g = r[e++];
                for (f = 1; f <= g; f++) a[r[e++]] = f;
                break;
              case 1:
                const b = r[e++];
                let w = 1;
                for (f = 0; f < b; f++) {
                  const x = r[e++], y = r[e++];
                  for (let j = x; j <= x + y; j++) a[j] = w++;
                }
                break;
              default:
                throw new Q(`Unknown encoding format: ${l} in CFF`);
            }
            const m = e;
            l & 128 && (r[d] &= 127, u()), h = r.subarray(d, m);
          }
          return l &= 127, new Xb(o, l, a, h);
        }
        parseFDSelect(e, n) {
          const s = this.bytes, i = s[e++], a = [];
          let r;
          switch (i) {
            case 0:
              for (r = 0; r < n; ++r) {
                const l = s[e++];
                a.push(l);
              }
              break;
            case 3:
              const o = s[e++] << 8 | s[e++];
              for (r = 0; r < o; ++r) {
                let l = s[e++] << 8 | s[e++];
                r === 0 && l !== 0 && (F("parseFDSelect: The first range must have a first GID of 0 -- trying to recover."), l = 0);
                const f = s[e++], c = s[e] << 8 | s[e + 1];
                for (let h = l; h < c; ++h) a.push(f);
              }
              e += 2;
              break;
            default:
              throw new Q(`parseFDSelect: Unknown format "${i}".`);
          }
          if (a.length !== n) throw new Q("parseFDSelect: Invalid font data.");
          return new Yb(i, a);
        }
      };
      Wu = class {
        static {
          p(this, "CFF");
        }
        header = null;
        names = [];
        topDict = null;
        strings = new Mf();
        globalSubrIndex = null;
        encoding = null;
        charset = null;
        charStrings = null;
        fdArray = [];
        fdSelect = null;
        isCIDFont = false;
        charStringCount = 0;
        duplicateFirstGlyph() {
          if (this.charStrings.count >= 65535) {
            F("Not enough space in charstrings to duplicate first glyph.");
            return;
          }
          const e = this.charStrings.get(0);
          this.charStrings.add(e), this.isCIDFont && this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0]);
        }
        hasGlyphId(e) {
          return e < 0 || e >= this.charStrings.count ? false : this.charStrings.get(e).length > 0;
        }
      };
      $u = class {
        static {
          p(this, "CFFHeader");
        }
        constructor(e, n, s, i) {
          this.major = e, this.minor = n, this.hdrSize = s, this.offSize = i;
        }
      };
      Mf = class {
        static {
          p(this, "CFFStrings");
        }
        strings = [];
        get(e) {
          return e >= 0 && e <= Pl - 1 ? _l[e] : e - Pl <= this.strings.length ? this.strings[e - Pl] : _l[0];
        }
        getSID(e) {
          let n = _l.indexOf(e);
          return n !== -1 ? n : (n = this.strings.indexOf(e), n !== -1 ? n + Pl : -1);
        }
        add(e) {
          this.strings.push(e);
        }
        get count() {
          return this.strings.length;
        }
      };
      Oi = class {
        static {
          p(this, "CFFIndex");
        }
        objects = [];
        length = 0;
        add(e) {
          this.length += e.length, this.objects.push(e);
        }
        set(e, n) {
          this.length += n.length - this.objects[e].length, this.objects[e] = n;
        }
        get(e) {
          return this.objects[e];
        }
        get count() {
          return this.objects.length;
        }
      };
      Vu = class {
        static {
          p(this, "CFFDict");
        }
        constructor(e, n) {
          this.keyToNameMap = e.keyToNameMap, this.nameToKeyMap = e.nameToKeyMap, this.defaults = e.defaults, this.types = e.types, this.opcodes = e.opcodes, this.order = e.order, this.strings = n, this.values = /* @__PURE__ */ Object.create(null);
        }
        setByKey(e, n) {
          if (!(e in this.keyToNameMap)) return false;
          if (n.length === 0) return true;
          for (const i of n) if (isNaN(i)) return F(`Invalid CFFDict value: "${n}" for key "${e}".`), true;
          const s = this.types[e];
          return (s === "num" || s === "sid" || s === "offset") && (n = n[0]), this.values[e] = n, true;
        }
        setByName(e, n) {
          if (!(e in this.nameToKeyMap)) throw new Q(`Invalid dictionary name "${e}"`);
          this.values[this.nameToKeyMap[e]] = n;
        }
        hasName(e) {
          return this.nameToKeyMap[e] in this.values;
        }
        getByName(e) {
          if (!(e in this.nameToKeyMap)) throw new Q(`Invalid dictionary name ${e}"`);
          const n = this.nameToKeyMap[e];
          return n in this.values ? this.values[n] : this.defaults[n];
        }
        removeByName(e) {
          delete this.values[this.nameToKeyMap[e]];
        }
        static createTables(e) {
          const n = { keyToNameMap: {}, nameToKeyMap: {}, defaults: {}, types: {}, opcodes: {}, order: [] };
          for (const s of e) {
            const i = Array.isArray(s[0]) ? (s[0][0] << 8) + s[0][1] : s[0];
            n.keyToNameMap[i] = s[1], n.nameToKeyMap[s[1]] = i, n.types[i] = s[2], n.defaults[i] = s[3], n.opcodes[i] = Array.isArray(s[0]) ? s[0] : [s[0]], n.order.push(i);
          }
          return n;
        }
      };
      Vb = [[[12, 30], "ROS", ["sid", "sid", "num"], null], [[12, 20], "SyntheticBase", "num", null], [0, "version", "sid", null], [1, "Notice", "sid", null], [[12, 0], "Copyright", "sid", null], [2, "FullName", "sid", null], [3, "FamilyName", "sid", null], [4, "Weight", "sid", null], [[12, 1], "isFixedPitch", "num", 0], [[12, 2], "ItalicAngle", "num", 0], [[12, 3], "UnderlinePosition", "num", -100], [[12, 4], "UnderlineThickness", "num", 50], [[12, 5], "PaintType", "num", 0], [[12, 6], "CharstringType", "num", 2], [[12, 7], "FontMatrix", ["num", "num", "num", "num", "num", "num"], [1e-3, 0, 0, 1e-3, 0, 0]], [13, "UniqueID", "num", null], [5, "FontBBox", ["num", "num", "num", "num"], [0, 0, 0, 0]], [[12, 8], "StrokeWidth", "num", 0], [14, "XUID", "array", null], [15, "charset", "offset", 0], [16, "Encoding", "offset", 0], [17, "CharStrings", "offset", 0], [18, "Private", ["offset", "offset"], null], [[12, 21], "PostScript", "sid", null], [[12, 22], "BaseFontName", "sid", null], [[12, 23], "BaseFontBlend", "delta", null], [[12, 31], "CIDFontVersion", "num", 0], [[12, 32], "CIDFontRevision", "num", 0], [[12, 33], "CIDFontType", "num", 0], [[12, 34], "CIDCount", "num", 8720], [[12, 35], "UIDBase", "num", null], [[12, 37], "FDSelect", "offset", null], [[12, 36], "FDArray", "offset", null], [[12, 38], "FontName", "sid", null]];
      Go = class _Go extends Vu {
        static {
          p(this, "CFFTopDict");
        }
        static get tables() {
          return fe(this, "tables", this.createTables(Vb));
        }
        constructor(e) {
          super(_Go.tables, e), this.privateDict = null;
        }
      };
      Kb = [[6, "BlueValues", "delta", null], [7, "OtherBlues", "delta", null], [8, "FamilyBlues", "delta", null], [9, "FamilyOtherBlues", "delta", null], [[12, 9], "BlueScale", "num", 0.039625], [[12, 10], "BlueShift", "num", 7], [[12, 11], "BlueFuzz", "num", 1], [10, "StdHW", "num", null], [11, "StdVW", "num", null], [[12, 12], "StemSnapH", "delta", null], [[12, 13], "StemSnapV", "delta", null], [[12, 14], "ForceBold", "num", 0], [[12, 17], "LanguageGroup", "num", 0], [[12, 18], "ExpansionFactor", "num", 0.06], [[12, 19], "initialRandomSeed", "num", 0], [20, "defaultWidthX", "num", 0], [21, "nominalWidthX", "num", 0], [19, "Subrs", "offset", null]];
      Wo = class _Wo extends Vu {
        static {
          p(this, "CFFPrivateDict");
        }
        static get tables() {
          return fe(this, "tables", this.createTables(Kb));
        }
        constructor(e) {
          super(_Wo.tables, e), this.subrsIndex = null;
        }
      };
      Hf = { ISO_ADOBE: 0, EXPERT: 1, EXPERT_SUBSET: 2 };
      Gr = class {
        static {
          p(this, "CFFCharset");
        }
        constructor(e, n, s, i) {
          this.predefined = e, this.format = n, this.charset = s, this.raw = i;
        }
      };
      Xb = class {
        static {
          p(this, "CFFEncoding");
        }
        constructor(e, n, s, i) {
          this.predefined = e, this.format = n, this.encoding = s, this.raw = i;
        }
      };
      Yb = class {
        static {
          p(this, "CFFFDSelect");
        }
        constructor(e, n) {
          this.format = e, this.fdSelect = n;
        }
        getFDIndex(e) {
          return e < 0 || e >= this.fdSelect.length ? -1 : this.fdSelect[e];
        }
      };
      Ku = class {
        static {
          p(this, "CFFOffsetTracker");
        }
        offsets = /* @__PURE__ */ Object.create(null);
        isTracking(e) {
          return e in this.offsets;
        }
        track(e, n) {
          if (e in this.offsets) throw new Q(`Already tracking location of ${e}`);
          this.offsets[e] = n;
        }
        offset(e) {
          for (const n in this.offsets) this.offsets[n] += e;
        }
        setEntryLocation(e, n, s) {
          if (!(e in this.offsets)) throw new Q(`Not tracking location of ${e}`);
          const i = s.data, a = this.offsets[e], r = 5;
          for (let o = 0, l = n.length; o < l; ++o) {
            const f = o * r + a, c = f + 1, h = f + 2, u = f + 3, d = f + 4;
            if (i[f] !== 29 || i[c] !== 0 || i[h] !== 0 || i[u] !== 0 || i[d] !== 0) throw new Q("writing to an offset that is not empty");
            const m = n[o];
            i[f] = 29, i[c] = m >> 24 & 255, i[h] = m >> 16 & 255, i[u] = m >> 8 & 255, i[d] = m & 255;
          }
        }
      };
      $o = class _$o {
        static {
          p(this, "CFFCompiler");
        }
        constructor(e) {
          this.cff = e;
        }
        compile() {
          const e = this.cff, n = { data: [], length: 0, add(u) {
            try {
              this.data.push(...u);
            } catch {
              this.data = this.data.concat(u);
            }
            this.length = this.data.length;
          } }, s = this.compileHeader(e.header);
          n.add(s);
          const i = this.compileNameIndex(e.names);
          if (n.add(i), e.isCIDFont && e.topDict.hasName("FontMatrix")) {
            const u = e.topDict.getByName("FontMatrix");
            e.topDict.removeByName("FontMatrix");
            for (const d of e.fdArray) {
              let m = u.slice(0);
              d.hasName("FontMatrix") && (m = pt.transform(m, d.getByName("FontMatrix"))), d.setByName("FontMatrix", m);
            }
          }
          e.topDict.getByName("XUID")?.length > 16 && e.topDict.removeByName("XUID"), e.topDict.setByName("charset", 0);
          let r = this.compileTopDicts([e.topDict], n.length, e.isCIDFont);
          n.add(r.output);
          const o = r.trackers[0], l = this.compileStringIndex(e.strings.strings);
          n.add(l);
          const f = this.compileIndex(e.globalSubrIndex);
          if (n.add(f), e.encoding && e.topDict.hasName("Encoding")) if (e.encoding.predefined) o.setEntryLocation("Encoding", [e.encoding.format], n);
          else {
            const u = this.compileEncoding(e.encoding);
            o.setEntryLocation("Encoding", [n.length], n), n.add(u);
          }
          const c = this.compileCharset(e.charset, e.charStrings.count, e.strings, e.isCIDFont);
          o.setEntryLocation("charset", [n.length], n), n.add(c);
          const h = this.compileCharStrings(e.charStrings);
          if (o.setEntryLocation("CharStrings", [n.length], n), n.add(h), e.isCIDFont) {
            o.setEntryLocation("FDSelect", [n.length], n);
            const u = this.compileFDSelect(e.fdSelect);
            n.add(u), r = this.compileTopDicts(e.fdArray, n.length, true), o.setEntryLocation("FDArray", [n.length], n), n.add(r.output);
            const d = r.trackers;
            this.compilePrivateDicts(e.fdArray, d, n);
          }
          return this.compilePrivateDicts([e.topDict], [o], n), n.add([0]), n.data;
        }
        encodeNumber(e) {
          return Number.isInteger(e) ? this.encodeInteger(e) : this.encodeFloat(e);
        }
        static get EncodeFloatRegExp() {
          return fe(this, "EncodeFloatRegExp", /\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/);
        }
        encodeFloat(e) {
          let n = e.toString();
          const s = _$o.EncodeFloatRegExp.exec(n);
          if (s) {
            const l = parseFloat("1e" + ((s[2] ? +s[2] : 0) + s[1].length));
            n = (Math.round(e * l) / l).toString();
          }
          let i = "", a, r;
          for (a = 0, r = n.length; a < r; ++a) {
            const l = n[a];
            l === "e" ? i += n[++a] === "-" ? "c" : "b" : l === "." ? i += "a" : l === "-" ? i += "e" : i += l;
          }
          i += i.length & 1 ? "f" : "ff";
          const o = [30];
          for (a = 0, r = i.length; a < r; a += 2) o.push(parseInt(i.substring(a, a + 2), 16));
          return o;
        }
        encodeInteger(e) {
          let n;
          return e >= -107 && e <= 107 ? n = [e + 139] : e >= 108 && e <= 1131 ? (e -= 108, n = [(e >> 8) + 247, e & 255]) : e >= -1131 && e <= -108 ? (e = -e - 108, n = [(e >> 8) + 251, e & 255]) : e >= -32768 && e <= 32767 ? n = [28, e >> 8 & 255, e & 255] : n = [29, e >> 24 & 255, e >> 16 & 255, e >> 8 & 255, e & 255], n;
        }
        compileHeader(e) {
          return [e.major, e.minor, 4, e.offSize];
        }
        compileNameIndex(e) {
          const n = new Oi();
          for (const s of e) {
            const i = Math.min(s.length, 127);
            let a = new Array(i);
            for (let r = 0; r < i; r++) {
              let o = s[r];
              (o < "!" || o > "~" || o === "[" || o === "]" || o === "(" || o === ")" || o === "{" || o === "}" || o === "<" || o === ">" || o === "/" || o === "%") && (o = "_"), a[r] = o;
            }
            a = a.join(""), a === "" && (a = "Bad_Font_Name"), n.add(Bn(a));
          }
          return this.compileIndex(n);
        }
        compileTopDicts(e, n, s) {
          const i = [];
          let a = new Oi();
          for (const r of e) {
            s && (r.removeByName("CIDFontVersion"), r.removeByName("CIDFontRevision"), r.removeByName("CIDFontType"), r.removeByName("CIDCount"), r.removeByName("UIDBase"));
            const o = new Ku(), l = this.compileDict(r, o);
            i.push(o), a.add(l), o.offset(n);
          }
          return a = this.compileIndex(a, i), { trackers: i, output: a };
        }
        compilePrivateDicts(e, n, s) {
          for (let i = 0, a = e.length; i < a; ++i) {
            const r = e[i], o = r.privateDict;
            if (!o || !r.hasName("Private")) throw new Q("There must be a private dictionary.");
            const l = new Ku(), f = this.compileDict(o, l);
            let c = s.length;
            if (l.offset(c), f.length || (c = 0), n[i].setEntryLocation("Private", [f.length, c], s), s.add(f), o.subrsIndex && o.hasName("Subrs")) {
              const h = this.compileIndex(o.subrsIndex);
              l.setEntryLocation("Subrs", [f.length], s), s.add(h);
            }
          }
        }
        compileDict(e, n) {
          const s = [];
          for (const i of e.order) {
            if (!(i in e.values)) continue;
            let a = e.values[i], r = e.types[i];
            if (Array.isArray(r) || (r = [r]), Array.isArray(a) || (a = [a]), a.length !== 0) {
              for (let o = 0, l = r.length; o < l; ++o) {
                const f = r[o], c = a[o];
                switch (f) {
                  case "num":
                  case "sid":
                    s.push(...this.encodeNumber(c));
                    break;
                  case "offset":
                    const h = e.keyToNameMap[i];
                    n.isTracking(h) || n.track(h, s.length), s.push(29, 0, 0, 0, 0);
                    break;
                  case "array":
                  case "delta":
                    s.push(...this.encodeNumber(c));
                    for (let u = 1, d = a.length; u < d; ++u) s.push(...this.encodeNumber(a[u]));
                    break;
                  default:
                    throw new Q(`Unknown data type of ${f}`);
                }
              }
              s.push(...e.opcodes[i]);
            }
          }
          return s;
        }
        compileStringIndex(e) {
          const n = new Oi();
          for (const s of e) n.add(Bn(s));
          return this.compileIndex(n);
        }
        compileCharStrings(e) {
          const n = new Oi();
          for (let s = 0; s < e.count; s++) {
            const i = e.get(s);
            if (i.length === 0) {
              n.add(new Uint8Array([139, 14]));
              continue;
            }
            n.add(i);
          }
          return this.compileIndex(n);
        }
        compileCharset(e, n, s, i) {
          let a;
          const r = n - 1;
          if (i) {
            const o = r - 1;
            a = new Uint8Array([2, 0, 1, o >> 8 & 255, o & 255]);
          } else {
            const o = 1 + r * 2;
            a = new Uint8Array(o), a[0] = 0;
            let l = 0;
            const f = e.charset.length;
            let c = false;
            for (let h = 1; h < a.length; h += 2) {
              let u = 0;
              if (l < f) {
                const d = e.charset[l++];
                u = s.getSID(d), u === -1 && (u = 0, c || (c = true, F(`Couldn't find ${d} in CFF strings`)));
              }
              a[h] = u >> 8 & 255, a[h + 1] = u & 255;
            }
          }
          return this.compileTypedArray(a);
        }
        compileEncoding(e) {
          return this.compileTypedArray(e.raw);
        }
        compileFDSelect(e) {
          const n = e.format;
          let s, i;
          switch (n) {
            case 0:
              for (s = new Uint8Array(1 + e.fdSelect.length), s[0] = n, i = 0; i < e.fdSelect.length; i++) s[i + 1] = e.fdSelect[i];
              break;
            case 3:
              const a = 0;
              let r = e.fdSelect[0];
              const o = [n, 0, 0, a >> 8 & 255, a & 255, r];
              for (i = 1; i < e.fdSelect.length; i++) {
                const f = e.fdSelect[i];
                f !== r && (o.push(i >> 8 & 255, i & 255, f), r = f);
              }
              const l = (o.length - 3) / 3;
              o[1] = l >> 8 & 255, o[2] = l & 255, o.push(i >> 8 & 255, i & 255), s = new Uint8Array(o);
              break;
          }
          return this.compileTypedArray(s);
        }
        compileTypedArray(e) {
          return Array.from(e);
        }
        compileIndex(e, n = []) {
          const s = e.objects, i = s.length;
          if (i === 0) return [0, 0];
          const a = [i >> 8 & 255, i & 255];
          let r = 1, o;
          for (o = 0; o < i; ++o) r += s[o].length;
          let l;
          r < 256 ? l = 1 : r < 65536 ? l = 2 : r < 16777216 ? l = 3 : l = 4, a.push(l);
          let f = 1;
          for (o = 0; o < i + 1; o++) l === 1 ? a.push(f & 255) : l === 2 ? a.push(f >> 8 & 255, f & 255) : l === 3 ? a.push(f >> 16 & 255, f >> 8 & 255, f & 255) : a.push(f >>> 24 & 255, f >> 16 & 255, f >> 8 & 255, f & 255), s[o] && (f += s[o].length);
          for (o = 0; o < i; o++) n[o] && n[o].offset(a.length), a.push(...s[o]);
          return a;
        }
      };
      Wr = Dt(function(t) {
        t["Times-Roman"] = "Times-Roman", t.Helvetica = "Helvetica", t.Courier = "Courier", t.Symbol = "Symbol", t["Times-Bold"] = "Times-Bold", t["Helvetica-Bold"] = "Helvetica-Bold", t["Courier-Bold"] = "Courier-Bold", t.ZapfDingbats = "ZapfDingbats", t["Times-Italic"] = "Times-Italic", t["Helvetica-Oblique"] = "Helvetica-Oblique", t["Courier-Oblique"] = "Courier-Oblique", t["Times-BoldItalic"] = "Times-BoldItalic", t["Helvetica-BoldOblique"] = "Helvetica-BoldOblique", t["Courier-BoldOblique"] = "Courier-BoldOblique", t.ArialNarrow = "Helvetica", t["ArialNarrow-Bold"] = "Helvetica-Bold", t["ArialNarrow-BoldItalic"] = "Helvetica-BoldOblique", t["ArialNarrow-Italic"] = "Helvetica-Oblique", t.ArialBlack = "Helvetica", t["ArialBlack-Bold"] = "Helvetica-Bold", t["ArialBlack-BoldItalic"] = "Helvetica-BoldOblique", t["ArialBlack-Italic"] = "Helvetica-Oblique", t["Arial-Black"] = "Helvetica", t["Arial-Black-Bold"] = "Helvetica-Bold", t["Arial-Black-BoldItalic"] = "Helvetica-BoldOblique", t["Arial-Black-Italic"] = "Helvetica-Oblique", t.Arial = "Helvetica", t["Arial-Bold"] = "Helvetica-Bold", t["Arial-BoldItalic"] = "Helvetica-BoldOblique", t["Arial-Italic"] = "Helvetica-Oblique", t.ArialMT = "Helvetica", t["Arial-BoldItalicMT"] = "Helvetica-BoldOblique", t["Arial-BoldMT"] = "Helvetica-Bold", t["Arial-ItalicMT"] = "Helvetica-Oblique", t["Arial-BoldItalicMT-BoldItalic"] = "Helvetica-BoldOblique", t["Arial-BoldMT-Bold"] = "Helvetica-Bold", t["Arial-ItalicMT-Italic"] = "Helvetica-Oblique", t.ArialUnicodeMS = "Helvetica", t["ArialUnicodeMS-Bold"] = "Helvetica-Bold", t["ArialUnicodeMS-BoldItalic"] = "Helvetica-BoldOblique", t["ArialUnicodeMS-Italic"] = "Helvetica-Oblique", t["Courier-BoldItalic"] = "Courier-BoldOblique", t["Courier-Italic"] = "Courier-Oblique", t.CourierNew = "Courier", t["CourierNew-Bold"] = "Courier-Bold", t["CourierNew-BoldItalic"] = "Courier-BoldOblique", t["CourierNew-Italic"] = "Courier-Oblique", t["CourierNewPS-BoldItalicMT"] = "Courier-BoldOblique", t["CourierNewPS-BoldMT"] = "Courier-Bold", t["CourierNewPS-ItalicMT"] = "Courier-Oblique", t.CourierNewPSMT = "Courier", t["Helvetica-BoldItalic"] = "Helvetica-BoldOblique", t["Helvetica-Italic"] = "Helvetica-Oblique", t["HelveticaLTStd-Bold"] = "Helvetica-Bold", t["Symbol-Bold"] = "Symbol", t["Symbol-BoldItalic"] = "Symbol", t["Symbol-Italic"] = "Symbol", t.TimesNewRoman = "Times-Roman", t["TimesNewRoman-Bold"] = "Times-Bold", t["TimesNewRoman-BoldItalic"] = "Times-BoldItalic", t["TimesNewRoman-Italic"] = "Times-Italic", t.TimesNewRomanPS = "Times-Roman", t["TimesNewRomanPS-Bold"] = "Times-Bold", t["TimesNewRomanPS-BoldItalic"] = "Times-BoldItalic", t["TimesNewRomanPS-BoldItalicMT"] = "Times-BoldItalic", t["TimesNewRomanPS-BoldMT"] = "Times-Bold", t["TimesNewRomanPS-Italic"] = "Times-Italic", t["TimesNewRomanPS-ItalicMT"] = "Times-Italic", t.TimesNewRomanPSMT = "Times-Roman", t["TimesNewRomanPSMT-Bold"] = "Times-Bold", t["TimesNewRomanPSMT-BoldItalic"] = "Times-BoldItalic", t["TimesNewRomanPSMT-Italic"] = "Times-Italic";
      });
      Qb = Dt(function(t) {
        t.Courier = "FoxitFixed.pfb", t["Courier-Bold"] = "FoxitFixedBold.pfb", t["Courier-BoldOblique"] = "FoxitFixedBoldItalic.pfb", t["Courier-Oblique"] = "FoxitFixedItalic.pfb", t.Helvetica = "LiberationSans-Regular.ttf", t["Helvetica-Bold"] = "LiberationSans-Bold.ttf", t["Helvetica-BoldOblique"] = "LiberationSans-BoldItalic.ttf", t["Helvetica-Oblique"] = "LiberationSans-Italic.ttf", t["Times-Roman"] = "FoxitSerif.pfb", t["Times-Bold"] = "FoxitSerifBold.pfb", t["Times-BoldItalic"] = "FoxitSerifBoldItalic.pfb", t["Times-Italic"] = "FoxitSerifItalic.pfb", t.Symbol = "FoxitSymbol.pfb", t.ZapfDingbats = "FoxitDingbats.pfb", t["LiberationSans-Regular"] = "LiberationSans-Regular.ttf", t["LiberationSans-Bold"] = "LiberationSans-Bold.ttf", t["LiberationSans-Italic"] = "LiberationSans-Italic.ttf", t["LiberationSans-BoldItalic"] = "LiberationSans-BoldItalic.ttf";
      });
      Of = Dt(function(t) {
        t.Calibri = "Helvetica", t["Calibri-Bold"] = "Helvetica-Bold", t["Calibri-BoldItalic"] = "Helvetica-BoldOblique", t["Calibri-Italic"] = "Helvetica-Oblique", t.CenturyGothic = "Helvetica", t["CenturyGothic-Bold"] = "Helvetica-Bold", t["CenturyGothic-BoldItalic"] = "Helvetica-BoldOblique", t["CenturyGothic-Italic"] = "Helvetica-Oblique", t.ComicSansMS = "Comic Sans MS", t["ComicSansMS-Bold"] = "Comic Sans MS-Bold", t["ComicSansMS-BoldItalic"] = "Comic Sans MS-BoldItalic", t["ComicSansMS-Italic"] = "Comic Sans MS-Italic", t.GillSansMT = "Helvetica", t["GillSansMT-Bold"] = "Helvetica-Bold", t["GillSansMT-BoldItalic"] = "Helvetica-BoldOblique", t["GillSansMT-Italic"] = "Helvetica-Oblique", t.Impact = "Helvetica", t["ItcSymbol-Bold"] = "Helvetica-Bold", t["ItcSymbol-BoldItalic"] = "Helvetica-BoldOblique", t["ItcSymbol-Book"] = "Helvetica", t["ItcSymbol-BookItalic"] = "Helvetica-Oblique", t["ItcSymbol-Medium"] = "Helvetica", t["ItcSymbol-MediumItalic"] = "Helvetica-Oblique", t.LucidaConsole = "Courier", t["LucidaConsole-Bold"] = "Courier-Bold", t["LucidaConsole-BoldItalic"] = "Courier-BoldOblique", t["LucidaConsole-Italic"] = "Courier-Oblique", t["LucidaSans-Demi"] = "Helvetica-Bold", t["MS-Gothic"] = "MS Gothic", t["MS-Gothic-Bold"] = "MS Gothic-Bold", t["MS-Gothic-BoldItalic"] = "MS Gothic-BoldItalic", t["MS-Gothic-Italic"] = "MS Gothic-Italic", t["MS-Mincho"] = "MS Mincho", t["MS-Mincho-Bold"] = "MS Mincho-Bold", t["MS-Mincho-BoldItalic"] = "MS Mincho-BoldItalic", t["MS-Mincho-Italic"] = "MS Mincho-Italic", t["MS-PGothic"] = "MS PGothic", t["MS-PGothic-Bold"] = "MS PGothic-Bold", t["MS-PGothic-BoldItalic"] = "MS PGothic-BoldItalic", t["MS-PGothic-Italic"] = "MS PGothic-Italic", t["MS-PMincho"] = "MS PMincho", t["MS-PMincho-Bold"] = "MS PMincho-Bold", t["MS-PMincho-BoldItalic"] = "MS PMincho-BoldItalic", t["MS-PMincho-Italic"] = "MS PMincho-Italic", t.NuptialScript = "Times-Italic", t.SegoeUISymbol = "Helvetica";
      });
      Lf = Dt(function(t) {
        t["Adobe Jenson"] = true, t["Adobe Text"] = true, t.Albertus = true, t.Aldus = true, t.Alexandria = true, t.Algerian = true, t["American Typewriter"] = true, t.Antiqua = true, t.Apex = true, t.Arno = true, t.Aster = true, t.Aurora = true, t.Baskerville = true, t.Bell = true, t.Bembo = true, t["Bembo Schoolbook"] = true, t.Benguiat = true, t["Berkeley Old Style"] = true, t["Bernhard Modern"] = true, t["Berthold City"] = true, t.Bodoni = true, t["Bauer Bodoni"] = true, t["Book Antiqua"] = true, t.Bookman = true, t["Bordeaux Roman"] = true, t["Californian FB"] = true, t.Calisto = true, t.Calvert = true, t.Capitals = true, t.Cambria = true, t.Cartier = true, t.Caslon = true, t.Catull = true, t.Centaur = true, t["Century Old Style"] = true, t["Century Schoolbook"] = true, t.Chaparral = true, t["Charis SIL"] = true, t.Cheltenham = true, t["Cholla Slab"] = true, t.Clarendon = true, t.Clearface = true, t.Cochin = true, t.Colonna = true, t["Computer Modern"] = true, t["Concrete Roman"] = true, t.Constantia = true, t["Cooper Black"] = true, t.Corona = true, t.Ecotype = true, t.Egyptienne = true, t.Elephant = true, t.Excelsior = true, t.Fairfield = true, t["FF Scala"] = true, t.Folkard = true, t.Footlight = true, t.FreeSerif = true, t["Friz Quadrata"] = true, t.Garamond = true, t.Gentium = true, t.Georgia = true, t.Gloucester = true, t["Goudy Old Style"] = true, t["Goudy Schoolbook"] = true, t["Goudy Pro Font"] = true, t.Granjon = true, t["Guardian Egyptian"] = true, t.Heather = true, t.Hercules = true, t["High Tower Text"] = true, t.Hiroshige = true, t["Hoefler Text"] = true, t["Humana Serif"] = true, t.Imprint = true, t["Ionic No. 5"] = true, t.Janson = true, t.Joanna = true, t.Korinna = true, t.Lexicon = true, t.LiberationSerif = true, t["Liberation Serif"] = true, t["Linux Libertine"] = true, t.Literaturnaya = true, t.Lucida = true, t["Lucida Bright"] = true, t.Melior = true, t.Memphis = true, t.Miller = true, t.Minion = true, t.Modern = true, t["Mona Lisa"] = true, t["Mrs Eaves"] = true, t["MS Serif"] = true, t["Museo Slab"] = true, t["New York"] = true, t["Nimbus Roman"] = true, t["NPS Rawlinson Roadway"] = true, t.NuptialScript = true, t.Palatino = true, t.Perpetua = true, t.Plantin = true, t["Plantin Schoolbook"] = true, t.Playbill = true, t["Poor Richard"] = true, t["Rawlinson Roadway"] = true, t.Renault = true, t.Requiem = true, t.Rockwell = true, t.Roman = true, t["Rotis Serif"] = true, t.Sabon = true, t.Scala = true, t.Seagull = true, t.Sistina = true, t.Souvenir = true, t.STIX = true, t["Stone Informal"] = true, t["Stone Serif"] = true, t.Sylfaen = true, t.Times = true, t.Trajan = true, t.Trinit\u00E9 = true, t["Trump Mediaeval"] = true, t.Utopia = true, t["Vale Type"] = true, t["Bitstream Vera"] = true, t["Vera Serif"] = true, t.Versailles = true, t.Wanted = true, t.Weiss = true, t["Wide Latin"] = true, t.Windsor = true, t.XITS = true;
      });
      Nf = Dt(function(t) {
        t.Dingbats = true, t.Symbol = true, t.ZapfDingbats = true, t.Wingdings = true, t["Wingdings-Bold"] = true, t["Wingdings-Regular"] = true;
      });
      Xu = Dt(function(t) {
        t[2] = 10, t[3] = 32, t[4] = 33, t[5] = 34, t[6] = 35, t[7] = 36, t[8] = 37, t[9] = 38, t[10] = 39, t[11] = 40, t[12] = 41, t[13] = 42, t[14] = 43, t[15] = 44, t[16] = 45, t[17] = 46, t[18] = 47, t[19] = 48, t[20] = 49, t[21] = 50, t[22] = 51, t[23] = 52, t[24] = 53, t[25] = 54, t[26] = 55, t[27] = 56, t[28] = 57, t[29] = 58, t[30] = 894, t[31] = 60, t[32] = 61, t[33] = 62, t[34] = 63, t[35] = 64, t[36] = 65, t[37] = 66, t[38] = 67, t[39] = 68, t[40] = 69, t[41] = 70, t[42] = 71, t[43] = 72, t[44] = 73, t[45] = 74, t[46] = 75, t[47] = 76, t[48] = 77, t[49] = 78, t[50] = 79, t[51] = 80, t[52] = 81, t[53] = 82, t[54] = 83, t[55] = 84, t[56] = 85, t[57] = 86, t[58] = 87, t[59] = 88, t[60] = 89, t[61] = 90, t[62] = 91, t[63] = 92, t[64] = 93, t[65] = 94, t[66] = 95, t[67] = 96, t[68] = 97, t[69] = 98, t[70] = 99, t[71] = 100, t[72] = 101, t[73] = 102, t[74] = 103, t[75] = 104, t[76] = 105, t[77] = 106, t[78] = 107, t[79] = 108, t[80] = 109, t[81] = 110, t[82] = 111, t[83] = 112, t[84] = 113, t[85] = 114, t[86] = 115, t[87] = 116, t[88] = 117, t[89] = 118, t[90] = 119, t[91] = 120, t[92] = 121, t[93] = 122, t[94] = 123, t[95] = 124, t[96] = 125, t[97] = 126, t[98] = 196, t[99] = 197, t[100] = 199, t[101] = 201, t[102] = 209, t[103] = 214, t[104] = 220, t[105] = 225, t[106] = 224, t[107] = 226, t[108] = 228, t[109] = 227, t[110] = 229, t[111] = 231, t[112] = 233, t[113] = 232, t[114] = 234, t[115] = 235, t[116] = 237, t[117] = 236, t[118] = 238, t[119] = 239, t[120] = 241, t[121] = 243, t[122] = 242, t[123] = 244, t[124] = 246, t[125] = 245, t[126] = 250, t[127] = 249, t[128] = 251, t[129] = 252, t[130] = 8224, t[131] = 176, t[132] = 162, t[133] = 163, t[134] = 167, t[135] = 8226, t[136] = 182, t[137] = 223, t[138] = 174, t[139] = 169, t[140] = 8482, t[141] = 180, t[142] = 168, t[143] = 8800, t[144] = 198, t[145] = 216, t[146] = 8734, t[147] = 177, t[148] = 8804, t[149] = 8805, t[150] = 165, t[151] = 181, t[152] = 8706, t[153] = 8721, t[154] = 8719, t[156] = 8747, t[157] = 170, t[158] = 186, t[159] = 8486, t[160] = 230, t[161] = 248, t[162] = 191, t[163] = 161, t[164] = 172, t[165] = 8730, t[166] = 402, t[167] = 8776, t[168] = 8710, t[169] = 171, t[170] = 187, t[171] = 8230, t[179] = 8220, t[180] = 8221, t[181] = 8216, t[182] = 8217, t[200] = 193, t[203] = 205, t[207] = 211, t[210] = 218, t[223] = 711, t[224] = 321, t[225] = 322, t[226] = 352, t[227] = 353, t[228] = 381, t[229] = 382, t[233] = 221, t[234] = 253, t[252] = 263, t[253] = 268, t[254] = 269, t[258] = 258, t[260] = 260, t[261] = 261, t[265] = 280, t[266] = 281, t[267] = 282, t[268] = 283, t[269] = 313, t[275] = 323, t[276] = 324, t[278] = 328, t[283] = 344, t[284] = 345, t[285] = 346, t[286] = 347, t[292] = 367, t[295] = 377, t[296] = 378, t[298] = 380, t[305] = 963, t[306] = 964, t[307] = 966, t[308] = 8215, t[309] = 8252, t[310] = 8319, t[311] = 8359, t[312] = 8592, t[313] = 8593, t[337] = 9552, t[493] = 1039, t[494] = 1040, t[570] = 1040, t[571] = 1041, t[572] = 1042, t[573] = 1043, t[574] = 1044, t[575] = 1045, t[576] = 1046, t[577] = 1047, t[578] = 1048, t[579] = 1049, t[580] = 1050, t[581] = 1051, t[582] = 1052, t[583] = 1053, t[584] = 1054, t[585] = 1055, t[586] = 1056, t[587] = 1057, t[588] = 1058, t[589] = 1059, t[590] = 1060, t[591] = 1061, t[592] = 1062, t[593] = 1063, t[594] = 1064, t[595] = 1065, t[596] = 1066, t[597] = 1067, t[598] = 1068, t[599] = 1069, t[600] = 1070, t[601] = 1071, t[602] = 1072, t[603] = 1073, t[604] = 1074, t[605] = 1075, t[606] = 1076, t[607] = 1077, t[608] = 1078, t[609] = 1079, t[610] = 1080, t[611] = 1081, t[612] = 1082, t[613] = 1083, t[614] = 1084, t[615] = 1085, t[616] = 1086, t[617] = 1087, t[618] = 1088, t[619] = 1089, t[620] = 1090, t[621] = 1091, t[622] = 1092, t[623] = 1093, t[624] = 1094, t[625] = 1095, t[626] = 1096, t[627] = 1097, t[628] = 1098, t[629] = 1099, t[630] = 1100, t[631] = 1101, t[632] = 1102, t[633] = 1103, t[672] = 1488, t[673] = 1489, t[674] = 1490, t[675] = 1491, t[676] = 1492, t[677] = 1493, t[678] = 1494, t[679] = 1495, t[680] = 1496, t[681] = 1497, t[682] = 1498, t[683] = 1499, t[684] = 1500, t[685] = 1501, t[686] = 1502, t[687] = 1503, t[688] = 1504, t[689] = 1505, t[690] = 1506, t[691] = 1507, t[692] = 1508, t[693] = 1509, t[694] = 1510, t[695] = 1511, t[696] = 1512, t[697] = 1513, t[698] = 1514, t[705] = 1524, t[706] = 8362, t[710] = 64288, t[711] = 64298, t[759] = 1617, t[761] = 1776, t[763] = 1778, t[775] = 1652, t[777] = 1764, t[778] = 1780, t[779] = 1781, t[780] = 1782, t[782] = 771, t[783] = 64726, t[786] = 8363, t[788] = 8532, t[790] = 768, t[791] = 769, t[792] = 768, t[795] = 803, t[797] = 64336, t[798] = 64337, t[799] = 64342, t[800] = 64343, t[801] = 64344, t[802] = 64345, t[803] = 64362, t[804] = 64363, t[805] = 64364, t[2424] = 7821, t[2425] = 7822, t[2426] = 7823, t[2427] = 7824, t[2428] = 7825, t[2429] = 7826, t[2430] = 7827, t[2433] = 7682, t[2678] = 8045, t[2679] = 8046, t[2830] = 1552, t[2838] = 686, t[2840] = 751, t[2842] = 753, t[2843] = 754, t[2844] = 755, t[2846] = 757, t[2856] = 767, t[2857] = 848, t[2858] = 849, t[2862] = 853, t[2863] = 854, t[2864] = 855, t[2865] = 861, t[2866] = 862, t[2906] = 7460, t[2908] = 7462, t[2909] = 7463, t[2910] = 7464, t[2912] = 7466, t[2913] = 7467, t[2914] = 7468, t[2916] = 7470, t[2917] = 7471, t[2918] = 7472, t[2920] = 7474, t[2921] = 7475, t[2922] = 7476, t[2924] = 7478, t[2925] = 7479, t[2926] = 7480, t[2928] = 7482, t[2929] = 7483, t[2930] = 7484, t[2932] = 7486, t[2933] = 7487, t[2934] = 7488, t[2936] = 7490, t[2937] = 7491, t[2938] = 7492, t[2940] = 7494, t[2941] = 7495, t[2942] = 7496, t[2944] = 7498, t[2946] = 7500, t[2948] = 7502, t[2950] = 7504, t[2951] = 7505, t[2952] = 7506, t[2954] = 7508, t[2955] = 7509, t[2956] = 7510, t[2958] = 7512, t[2959] = 7513, t[2960] = 7514, t[2962] = 7516, t[2963] = 7517, t[2964] = 7518, t[2966] = 7520, t[2967] = 7521, t[2968] = 7522, t[2970] = 7524, t[2971] = 7525, t[2972] = 7526, t[2974] = 7528, t[2975] = 7529, t[2976] = 7530, t[2978] = 1537, t[2979] = 1538, t[2980] = 1539, t[2982] = 1549, t[2983] = 1551, t[2984] = 1552, t[2986] = 1554, t[2987] = 1555, t[2988] = 1556, t[2990] = 1623, t[2991] = 1624, t[2995] = 1775, t[2999] = 1791, t[3002] = 64290, t[3003] = 64291, t[3004] = 64292, t[3006] = 64294, t[3007] = 64295, t[3008] = 64296, t[3011] = 1900, t[3014] = 8223, t[3015] = 8244, t[3017] = 7532, t[3018] = 7533, t[3019] = 7534, t[3075] = 7590, t[3076] = 7591, t[3079] = 7594, t[3080] = 7595, t[3083] = 7598, t[3084] = 7599, t[3087] = 7602, t[3088] = 7603, t[3091] = 7606, t[3092] = 7607, t[3095] = 7610, t[3096] = 7611, t[3099] = 7614, t[3100] = 7615, t[3103] = 7618, t[3104] = 7619, t[3107] = 8337, t[3108] = 8338, t[3116] = 1884, t[3119] = 1885, t[3120] = 1885, t[3123] = 1886, t[3124] = 1886, t[3127] = 1887, t[3128] = 1887, t[3131] = 1888, t[3132] = 1888, t[3135] = 1889, t[3136] = 1889, t[3139] = 1890, t[3140] = 1890, t[3143] = 1891, t[3144] = 1891, t[3147] = 1892, t[3148] = 1892, t[3153] = 580, t[3154] = 581, t[3157] = 584, t[3158] = 585, t[3161] = 588, t[3162] = 589, t[3165] = 891, t[3166] = 892, t[3169] = 1274, t[3170] = 1275, t[3173] = 1278, t[3174] = 1279, t[3181] = 7622, t[3182] = 7623, t[3282] = 11799, t[3316] = 578, t[3379] = 42785, t[3393] = 1159, t[3416] = 8377;
      });
      Jb = Dt(function(t) {
        t[227] = 322, t[264] = 261, t[291] = 346;
      });
      Zb = Dt(function(t) {
        t[1] = 32, t[4] = 65, t[5] = 192, t[6] = 193, t[9] = 196, t[17] = 66, t[18] = 67, t[21] = 268, t[24] = 68, t[28] = 69, t[29] = 200, t[30] = 201, t[32] = 282, t[38] = 70, t[39] = 71, t[44] = 72, t[47] = 73, t[48] = 204, t[49] = 205, t[58] = 74, t[60] = 75, t[62] = 76, t[68] = 77, t[69] = 78, t[75] = 79, t[76] = 210, t[80] = 214, t[87] = 80, t[89] = 81, t[90] = 82, t[92] = 344, t[94] = 83, t[97] = 352, t[100] = 84, t[104] = 85, t[109] = 220, t[115] = 86, t[116] = 87, t[121] = 88, t[122] = 89, t[124] = 221, t[127] = 90, t[129] = 381, t[258] = 97, t[259] = 224, t[260] = 225, t[263] = 228, t[268] = 261, t[271] = 98, t[272] = 99, t[273] = 263, t[275] = 269, t[282] = 100, t[286] = 101, t[287] = 232, t[288] = 233, t[290] = 283, t[295] = 281, t[296] = 102, t[336] = 103, t[346] = 104, t[349] = 105, t[350] = 236, t[351] = 237, t[361] = 106, t[364] = 107, t[367] = 108, t[371] = 322, t[373] = 109, t[374] = 110, t[381] = 111, t[382] = 242, t[383] = 243, t[386] = 246, t[393] = 112, t[395] = 113, t[396] = 114, t[398] = 345, t[400] = 115, t[401] = 347, t[403] = 353, t[410] = 116, t[437] = 117, t[442] = 252, t[448] = 118, t[449] = 119, t[454] = 120, t[455] = 121, t[457] = 253, t[460] = 122, t[462] = 382, t[463] = 380, t[853] = 44, t[855] = 58, t[856] = 46, t[876] = 47, t[878] = 45, t[882] = 45, t[894] = 40, t[895] = 41, t[896] = 91, t[897] = 93, t[923] = 64, t[940] = 163, t[1004] = 48, t[1005] = 49, t[1006] = 50, t[1007] = 51, t[1008] = 52, t[1009] = 53, t[1010] = 54, t[1011] = 55, t[1012] = 56, t[1013] = 57, t[1081] = 37, t[1085] = 43, t[1086] = 45;
      });
      p(Yu, "getStandardFontName");
      p(Qu, "isKnownFontName");
      $r = class {
        static {
          p(this, "ToUnicodeMap");
        }
        constructor(e = []) {
          this._map = e;
        }
        get length() {
          return this._map.length;
        }
        forEach(e) {
          for (const n in this._map) e(n, this._map[n].codePointAt(0));
        }
        has(e) {
          return this._map[e] !== void 0;
        }
        get(e) {
          return this._map[e];
        }
        charCodeOf(e) {
          const n = this._map;
          if (n.length <= 65536) return n.indexOf(e);
          for (const s in n) if (n[s] === e) return s | 0;
          return -1;
        }
        amend(e) {
          for (const n in e) this._map[n] = e[n];
        }
      };
      ys = class {
        static {
          p(this, "IdentityToUnicodeMap");
        }
        constructor(e, n) {
          this.firstChar = e, this.lastChar = n;
        }
        get length() {
          return this.lastChar + 1 - this.firstChar;
        }
        forEach(e) {
          for (let n = this.firstChar, s = this.lastChar; n <= s; n++) e(n, n);
        }
        has(e) {
          return this.firstChar <= e && e <= this.lastChar;
        }
        get(e) {
          if (this.firstChar <= e && e <= this.lastChar) return String.fromCharCode(e);
        }
        charCodeOf(e) {
          return Number.isInteger(e) && e >= this.firstChar && e <= this.lastChar ? e : -1;
        }
        amend(e) {
          Ye("Should not call amend()");
        }
      };
      zf = class {
        static {
          p(this, "CFFFont");
        }
        constructor(e, n) {
          this.properties = n;
          const s = new Df(e, n, Ka);
          this.cff = s.parse(), this.cff.duplicateFirstGlyph();
          const i = new $o(this.cff);
          this.seacs = this.cff.seacs;
          try {
            this.data = i.compile();
          } catch {
            F("Failed to compile font " + n.loadedName), this.data = e;
          }
          this._createBuiltInEncoding();
        }
        get numGlyphs() {
          return this.cff.charStrings.count;
        }
        getCharset() {
          return this.cff.charset.charset;
        }
        getGlyphMapping() {
          const e = this.cff, n = this.properties, { cidToGidMap: s, cMap: i } = n, a = e.charset.charset;
          let r, o;
          if (n.composite) {
            let f;
            if (s?.length > 0) {
              f = /* @__PURE__ */ Object.create(null);
              for (let h = 0, u = s.length; h < u; h++) {
                const d = s[h];
                d !== void 0 && (f[d] = h);
              }
            }
            r = /* @__PURE__ */ Object.create(null);
            let c;
            if (e.isCIDFont) for (o = 0; o < a.length; o++) {
              const h = a[o];
              c = i.charCodeOf(h), f?.[c] !== void 0 && (c = f[c]), r[c] = o;
            }
            else for (o = 0; o < e.charStrings.count; o++) c = i.charCodeOf(o), r[c] = o;
            return r;
          }
          let l = e.encoding ? e.encoding.encoding : null;
          return n.isInternalFont && (l = n.defaultEncoding), r = Uu(n, l, a), r;
        }
        hasGlyphId(e) {
          return this.cff.hasGlyphId(e);
        }
        _createBuiltInEncoding() {
          const { charset: e, encoding: n } = this.cff;
          if (!e || !n) return;
          const s = e.charset, i = n.encoding, a = [];
          for (const r in i) {
            const o = i[r];
            if (o >= 0) {
              const l = s[o];
              l && (a[r] = l);
            }
          }
          a.length > 0 && (this.properties.builtInEncoding = a);
        }
      };
      p(la, "getFloat214");
      p(Uf, "getSubroutineBias");
      p(ew, "parseCmap");
      p(tw, "parseCff");
      p(nw, "parseGlyfTable");
      p(Dl, "lookupCmap");
      p(Ju, "compileGlyf");
      p(Gf, "compileCharString");
      sw = class {
        static {
          p(this, "Commands");
        }
        cmds = [];
        transformStack = [];
        currentTransform = [1, 0, 0, 1, 0, 0];
        add(e, n) {
          if (n) {
            const { currentTransform: s } = this;
            for (let i = 0, a = n.length; i < a; i += 2) pt.applyTransform(n, s, i);
            this.cmds.push(e, ...n);
          } else this.cmds.push(e);
        }
        transform(e) {
          this.currentTransform = pt.transform(this.currentTransform, e);
        }
        translate(e, n) {
          this.transform([1, 0, 0, 1, e, n]);
        }
        save() {
          this.transformStack.push(this.currentTransform.slice());
        }
        restore() {
          this.currentTransform = this.transformStack.pop() || [1, 0, 0, 1, 0, 0];
        }
        getPath() {
          return qn.isFloat16ArraySupported ? new Float16Array(this.cmds) : new Float32Array(this.cmds);
        }
      };
      el = class _el {
        static {
          p(this, "CompiledFont");
        }
        constructor(e) {
          this.fontMatrix = e, this.compiledGlyphs = /* @__PURE__ */ Object.create(null), this.compiledCharCodeToGlyphId = /* @__PURE__ */ Object.create(null);
        }
        static get NOOP() {
          return fe(this, "NOOP", qn.isFloat16ArraySupported ? new Float16Array(0) : new Float32Array(0));
        }
        getPathJs(e) {
          const { charCode: n, glyphId: s } = Dl(this.cmap, e);
          let i = this.compiledGlyphs[s], a;
          if (i === void 0) {
            try {
              i = this.compileGlyph(this.glyphs[s], s);
            } catch (r) {
              i = _el.NOOP, a = r;
            }
            this.compiledGlyphs[s] = i;
          }
          if (this.compiledCharCodeToGlyphId[n] ??= s, a) throw a;
          return i;
        }
        compileGlyph(e, n) {
          if (!e?.length || e[0] === 14) return _el.NOOP;
          let s = this.fontMatrix;
          if (this.isCFFCIDFont) {
            const a = this.fdSelect.getFDIndex(n);
            a >= 0 && a < this.fdArray.length ? s = this.fdArray[a].getByName("FontMatrix") || na : F("Invalid fd index for glyph index.");
          }
          Bt(Nn(s, 6), "Expected a valid fontMatrix.");
          const i = new sw();
          return i.transform(s.slice()), this.compileGlyphImpl(e, i, n), i.add(Et.closePath), i.getPath();
        }
        compileGlyphImpl() {
          Ye("Children classes should implement this.");
        }
        hasBuiltPath(e) {
          const { charCode: n, glyphId: s } = Dl(this.cmap, e);
          return this.compiledGlyphs[s] !== void 0 && this.compiledCharCodeToGlyphId[n] !== void 0;
        }
      };
      iw = class extends el {
        static {
          p(this, "TrueTypeCompiled");
        }
        constructor(e, n, s) {
          super(s || [488e-6, 0, 0, 488e-6, 0, 0]), this.glyphs = e, this.cmap = n;
        }
        compileGlyphImpl(e, n) {
          Ju(e, n, this);
        }
      };
      aw = class extends el {
        static {
          p(this, "Type2Compiled");
        }
        constructor(e, n, s) {
          super(s || [1e-3, 0, 0, 1e-3, 0, 0]), this.glyphs = e.glyphs, this.gsubrs = e.gsubrs || [], this.subrs = e.subrs || [], this.cmap = n, this.glyphNameMap = Ks(), this.gsubrsBias = Uf(this.gsubrs), this.subrsBias = Uf(this.subrs), this.isCFFCIDFont = e.isCFFCIDFont, this.fdSelect = e.fdSelect, this.fdArray = e.fdArray;
        }
        compileGlyphImpl(e, n, s) {
          Gf(e, n, this, s);
        }
      };
      rw = class {
        static {
          p(this, "FontRendererFactory");
        }
        static create(e, n) {
          const s = new Uint8Array(e.data);
          let i, a, r, o, l, f;
          const c = nt(s, 4);
          for (let h = 0, u = 12; h < c; h++, u += 16) {
            const d = Vn(s.subarray(u, u + 4)), m = yt(s, u + 8), g = yt(s, u + 12);
            switch (d) {
              case "cmap":
                i = ew(s, m);
                break;
              case "glyf":
                a = s.subarray(m, m + g);
                break;
              case "loca":
                r = s.subarray(m, m + g);
                break;
              case "head":
                f = nt(s, m + 18), l = nt(s, m + 50);
                break;
              case "CFF ":
                o = tw(s, m, m + g, n);
                break;
            }
          }
          if (a) {
            const h = f ? [1 / f, 0, 0, 1 / f, 0, 0] : e.fontMatrix;
            return new iw(nw(a, r, l), i, h);
          }
          return new aw(o, i, e.fontMatrix);
        }
      };
      ow = Dt(function(t) {
        t.Courier = 600, t["Courier-Bold"] = 600, t["Courier-BoldOblique"] = 600, t["Courier-Oblique"] = 600, t.Helvetica = Dt(function(e) {
          e.space = 278, e.exclam = 278, e.quotedbl = 355, e.numbersign = 556, e.dollar = 556, e.percent = 889, e.ampersand = 667, e.quoteright = 222, e.parenleft = 333, e.parenright = 333, e.asterisk = 389, e.plus = 584, e.comma = 278, e.hyphen = 333, e.period = 278, e.slash = 278, e.zero = 556, e.one = 556, e.two = 556, e.three = 556, e.four = 556, e.five = 556, e.six = 556, e.seven = 556, e.eight = 556, e.nine = 556, e.colon = 278, e.semicolon = 278, e.less = 584, e.equal = 584, e.greater = 584, e.question = 556, e.at = 1015, e.A = 667, e.B = 667, e.C = 722, e.D = 722, e.E = 667, e.F = 611, e.G = 778, e.H = 722, e.I = 278, e.J = 500, e.K = 667, e.L = 556, e.M = 833, e.N = 722, e.O = 778, e.P = 667, e.Q = 778, e.R = 722, e.S = 667, e.T = 611, e.U = 722, e.V = 667, e.W = 944, e.X = 667, e.Y = 667, e.Z = 611, e.bracketleft = 278, e.backslash = 278, e.bracketright = 278, e.asciicircum = 469, e.underscore = 556, e.quoteleft = 222, e.a = 556, e.b = 556, e.c = 500, e.d = 556, e.e = 556, e.f = 278, e.g = 556, e.h = 556, e.i = 222, e.j = 222, e.k = 500, e.l = 222, e.m = 833, e.n = 556, e.o = 556, e.p = 556, e.q = 556, e.r = 333, e.s = 500, e.t = 278, e.u = 556, e.v = 500, e.w = 722, e.x = 500, e.y = 500, e.z = 500, e.braceleft = 334, e.bar = 260, e.braceright = 334, e.asciitilde = 584, e.exclamdown = 333, e.cent = 556, e.sterling = 556, e.fraction = 167, e.yen = 556, e.florin = 556, e.section = 556, e.currency = 556, e.quotesingle = 191, e.quotedblleft = 333, e.guillemotleft = 556, e.guilsinglleft = 333, e.guilsinglright = 333, e.fi = 500, e.fl = 500, e.endash = 556, e.dagger = 556, e.daggerdbl = 556, e.periodcentered = 278, e.paragraph = 537, e.bullet = 350, e.quotesinglbase = 222, e.quotedblbase = 333, e.quotedblright = 333, e.guillemotright = 556, e.ellipsis = 1e3, e.perthousand = 1e3, e.questiondown = 611, e.grave = 333, e.acute = 333, e.circumflex = 333, e.tilde = 333, e.macron = 333, e.breve = 333, e.dotaccent = 333, e.dieresis = 333, e.ring = 333, e.cedilla = 333, e.hungarumlaut = 333, e.ogonek = 333, e.caron = 333, e.emdash = 1e3, e.AE = 1e3, e.ordfeminine = 370, e.Lslash = 556, e.Oslash = 778, e.OE = 1e3, e.ordmasculine = 365, e.ae = 889, e.dotlessi = 278, e.lslash = 222, e.oslash = 611, e.oe = 944, e.germandbls = 611, e.Idieresis = 278, e.eacute = 556, e.abreve = 556, e.uhungarumlaut = 556, e.ecaron = 556, e.Ydieresis = 667, e.divide = 584, e.Yacute = 667, e.Acircumflex = 667, e.aacute = 556, e.Ucircumflex = 722, e.yacute = 500, e.scommaaccent = 500, e.ecircumflex = 556, e.Uring = 722, e.Udieresis = 722, e.aogonek = 556, e.Uacute = 722, e.uogonek = 556, e.Edieresis = 667, e.Dcroat = 722, e.commaaccent = 250, e.copyright = 737, e.Emacron = 667, e.ccaron = 500, e.aring = 556, e.Ncommaaccent = 722, e.lacute = 222, e.agrave = 556, e.Tcommaaccent = 611, e.Cacute = 722, e.atilde = 556, e.Edotaccent = 667, e.scaron = 500, e.scedilla = 500, e.iacute = 278, e.lozenge = 471, e.Rcaron = 722, e.Gcommaaccent = 778, e.ucircumflex = 556, e.acircumflex = 556, e.Amacron = 667, e.rcaron = 333, e.ccedilla = 500, e.Zdotaccent = 611, e.Thorn = 667, e.Omacron = 778, e.Racute = 722, e.Sacute = 667, e.dcaron = 643, e.Umacron = 722, e.uring = 556, e.threesuperior = 333, e.Ograve = 778, e.Agrave = 667, e.Abreve = 667, e.multiply = 584, e.uacute = 556, e.Tcaron = 611, e.partialdiff = 476, e.ydieresis = 500, e.Nacute = 722, e.icircumflex = 278, e.Ecircumflex = 667, e.adieresis = 556, e.edieresis = 556, e.cacute = 500, e.nacute = 556, e.umacron = 556, e.Ncaron = 722, e.Iacute = 278, e.plusminus = 584, e.brokenbar = 260, e.registered = 737, e.Gbreve = 778, e.Idotaccent = 278, e.summation = 600, e.Egrave = 667, e.racute = 333, e.omacron = 556, e.Zacute = 611, e.Zcaron = 611, e.greaterequal = 549, e.Eth = 722, e.Ccedilla = 722, e.lcommaaccent = 222, e.tcaron = 317, e.eogonek = 556, e.Uogonek = 722, e.Aacute = 667, e.Adieresis = 667, e.egrave = 556, e.zacute = 500, e.iogonek = 222, e.Oacute = 778, e.oacute = 556, e.amacron = 556, e.sacute = 500, e.idieresis = 278, e.Ocircumflex = 778, e.Ugrave = 722, e.Delta = 612, e.thorn = 556, e.twosuperior = 333, e.Odieresis = 778, e.mu = 556, e.igrave = 278, e.ohungarumlaut = 556, e.Eogonek = 667, e.dcroat = 556, e.threequarters = 834, e.Scedilla = 667, e.lcaron = 299, e.Kcommaaccent = 667, e.Lacute = 556, e.trademark = 1e3, e.edotaccent = 556, e.Igrave = 278, e.Imacron = 278, e.Lcaron = 556, e.onehalf = 834, e.lessequal = 549, e.ocircumflex = 556, e.ntilde = 556, e.Uhungarumlaut = 722, e.Eacute = 667, e.emacron = 556, e.gbreve = 556, e.onequarter = 834, e.Scaron = 667, e.Scommaaccent = 667, e.Ohungarumlaut = 778, e.degree = 400, e.ograve = 556, e.Ccaron = 722, e.ugrave = 556, e.radical = 453, e.Dcaron = 722, e.rcommaaccent = 333, e.Ntilde = 722, e.otilde = 556, e.Rcommaaccent = 722, e.Lcommaaccent = 556, e.Atilde = 667, e.Aogonek = 667, e.Aring = 667, e.Otilde = 778, e.zdotaccent = 500, e.Ecaron = 667, e.Iogonek = 278, e.kcommaaccent = 500, e.minus = 584, e.Icircumflex = 278, e.ncaron = 556, e.tcommaaccent = 278, e.logicalnot = 584, e.odieresis = 556, e.udieresis = 556, e.notequal = 549, e.gcommaaccent = 556, e.eth = 556, e.zcaron = 500, e.ncommaaccent = 556, e.onesuperior = 333, e.imacron = 278, e.Euro = 556;
        }), t["Helvetica-Bold"] = Dt(function(e) {
          e.space = 278, e.exclam = 333, e.quotedbl = 474, e.numbersign = 556, e.dollar = 556, e.percent = 889, e.ampersand = 722, e.quoteright = 278, e.parenleft = 333, e.parenright = 333, e.asterisk = 389, e.plus = 584, e.comma = 278, e.hyphen = 333, e.period = 278, e.slash = 278, e.zero = 556, e.one = 556, e.two = 556, e.three = 556, e.four = 556, e.five = 556, e.six = 556, e.seven = 556, e.eight = 556, e.nine = 556, e.colon = 333, e.semicolon = 333, e.less = 584, e.equal = 584, e.greater = 584, e.question = 611, e.at = 975, e.A = 722, e.B = 722, e.C = 722, e.D = 722, e.E = 667, e.F = 611, e.G = 778, e.H = 722, e.I = 278, e.J = 556, e.K = 722, e.L = 611, e.M = 833, e.N = 722, e.O = 778, e.P = 667, e.Q = 778, e.R = 722, e.S = 667, e.T = 611, e.U = 722, e.V = 667, e.W = 944, e.X = 667, e.Y = 667, e.Z = 611, e.bracketleft = 333, e.backslash = 278, e.bracketright = 333, e.asciicircum = 584, e.underscore = 556, e.quoteleft = 278, e.a = 556, e.b = 611, e.c = 556, e.d = 611, e.e = 556, e.f = 333, e.g = 611, e.h = 611, e.i = 278, e.j = 278, e.k = 556, e.l = 278, e.m = 889, e.n = 611, e.o = 611, e.p = 611, e.q = 611, e.r = 389, e.s = 556, e.t = 333, e.u = 611, e.v = 556, e.w = 778, e.x = 556, e.y = 556, e.z = 500, e.braceleft = 389, e.bar = 280, e.braceright = 389, e.asciitilde = 584, e.exclamdown = 333, e.cent = 556, e.sterling = 556, e.fraction = 167, e.yen = 556, e.florin = 556, e.section = 556, e.currency = 556, e.quotesingle = 238, e.quotedblleft = 500, e.guillemotleft = 556, e.guilsinglleft = 333, e.guilsinglright = 333, e.fi = 611, e.fl = 611, e.endash = 556, e.dagger = 556, e.daggerdbl = 556, e.periodcentered = 278, e.paragraph = 556, e.bullet = 350, e.quotesinglbase = 278, e.quotedblbase = 500, e.quotedblright = 500, e.guillemotright = 556, e.ellipsis = 1e3, e.perthousand = 1e3, e.questiondown = 611, e.grave = 333, e.acute = 333, e.circumflex = 333, e.tilde = 333, e.macron = 333, e.breve = 333, e.dotaccent = 333, e.dieresis = 333, e.ring = 333, e.cedilla = 333, e.hungarumlaut = 333, e.ogonek = 333, e.caron = 333, e.emdash = 1e3, e.AE = 1e3, e.ordfeminine = 370, e.Lslash = 611, e.Oslash = 778, e.OE = 1e3, e.ordmasculine = 365, e.ae = 889, e.dotlessi = 278, e.lslash = 278, e.oslash = 611, e.oe = 944, e.germandbls = 611, e.Idieresis = 278, e.eacute = 556, e.abreve = 556, e.uhungarumlaut = 611, e.ecaron = 556, e.Ydieresis = 667, e.divide = 584, e.Yacute = 667, e.Acircumflex = 722, e.aacute = 556, e.Ucircumflex = 722, e.yacute = 556, e.scommaaccent = 556, e.ecircumflex = 556, e.Uring = 722, e.Udieresis = 722, e.aogonek = 556, e.Uacute = 722, e.uogonek = 611, e.Edieresis = 667, e.Dcroat = 722, e.commaaccent = 250, e.copyright = 737, e.Emacron = 667, e.ccaron = 556, e.aring = 556, e.Ncommaaccent = 722, e.lacute = 278, e.agrave = 556, e.Tcommaaccent = 611, e.Cacute = 722, e.atilde = 556, e.Edotaccent = 667, e.scaron = 556, e.scedilla = 556, e.iacute = 278, e.lozenge = 494, e.Rcaron = 722, e.Gcommaaccent = 778, e.ucircumflex = 611, e.acircumflex = 556, e.Amacron = 722, e.rcaron = 389, e.ccedilla = 556, e.Zdotaccent = 611, e.Thorn = 667, e.Omacron = 778, e.Racute = 722, e.Sacute = 667, e.dcaron = 743, e.Umacron = 722, e.uring = 611, e.threesuperior = 333, e.Ograve = 778, e.Agrave = 722, e.Abreve = 722, e.multiply = 584, e.uacute = 611, e.Tcaron = 611, e.partialdiff = 494, e.ydieresis = 556, e.Nacute = 722, e.icircumflex = 278, e.Ecircumflex = 667, e.adieresis = 556, e.edieresis = 556, e.cacute = 556, e.nacute = 611, e.umacron = 611, e.Ncaron = 722, e.Iacute = 278, e.plusminus = 584, e.brokenbar = 280, e.registered = 737, e.Gbreve = 778, e.Idotaccent = 278, e.summation = 600, e.Egrave = 667, e.racute = 389, e.omacron = 611, e.Zacute = 611, e.Zcaron = 611, e.greaterequal = 549, e.Eth = 722, e.Ccedilla = 722, e.lcommaaccent = 278, e.tcaron = 389, e.eogonek = 556, e.Uogonek = 722, e.Aacute = 722, e.Adieresis = 722, e.egrave = 556, e.zacute = 500, e.iogonek = 278, e.Oacute = 778, e.oacute = 611, e.amacron = 556, e.sacute = 556, e.idieresis = 278, e.Ocircumflex = 778, e.Ugrave = 722, e.Delta = 612, e.thorn = 611, e.twosuperior = 333, e.Odieresis = 778, e.mu = 611, e.igrave = 278, e.ohungarumlaut = 611, e.Eogonek = 667, e.dcroat = 611, e.threequarters = 834, e.Scedilla = 667, e.lcaron = 400, e.Kcommaaccent = 722, e.Lacute = 611, e.trademark = 1e3, e.edotaccent = 556, e.Igrave = 278, e.Imacron = 278, e.Lcaron = 611, e.onehalf = 834, e.lessequal = 549, e.ocircumflex = 611, e.ntilde = 611, e.Uhungarumlaut = 722, e.Eacute = 667, e.emacron = 556, e.gbreve = 611, e.onequarter = 834, e.Scaron = 667, e.Scommaaccent = 667, e.Ohungarumlaut = 778, e.degree = 400, e.ograve = 611, e.Ccaron = 722, e.ugrave = 611, e.radical = 549, e.Dcaron = 722, e.rcommaaccent = 389, e.Ntilde = 722, e.otilde = 611, e.Rcommaaccent = 722, e.Lcommaaccent = 611, e.Atilde = 722, e.Aogonek = 722, e.Aring = 722, e.Otilde = 778, e.zdotaccent = 500, e.Ecaron = 667, e.Iogonek = 278, e.kcommaaccent = 556, e.minus = 584, e.Icircumflex = 278, e.ncaron = 611, e.tcommaaccent = 333, e.logicalnot = 584, e.odieresis = 611, e.udieresis = 611, e.notequal = 549, e.gcommaaccent = 611, e.eth = 611, e.zcaron = 500, e.ncommaaccent = 611, e.onesuperior = 333, e.imacron = 278, e.Euro = 556;
        }), t["Helvetica-BoldOblique"] = Dt(function(e) {
          e.space = 278, e.exclam = 333, e.quotedbl = 474, e.numbersign = 556, e.dollar = 556, e.percent = 889, e.ampersand = 722, e.quoteright = 278, e.parenleft = 333, e.parenright = 333, e.asterisk = 389, e.plus = 584, e.comma = 278, e.hyphen = 333, e.period = 278, e.slash = 278, e.zero = 556, e.one = 556, e.two = 556, e.three = 556, e.four = 556, e.five = 556, e.six = 556, e.seven = 556, e.eight = 556, e.nine = 556, e.colon = 333, e.semicolon = 333, e.less = 584, e.equal = 584, e.greater = 584, e.question = 611, e.at = 975, e.A = 722, e.B = 722, e.C = 722, e.D = 722, e.E = 667, e.F = 611, e.G = 778, e.H = 722, e.I = 278, e.J = 556, e.K = 722, e.L = 611, e.M = 833, e.N = 722, e.O = 778, e.P = 667, e.Q = 778, e.R = 722, e.S = 667, e.T = 611, e.U = 722, e.V = 667, e.W = 944, e.X = 667, e.Y = 667, e.Z = 611, e.bracketleft = 333, e.backslash = 278, e.bracketright = 333, e.asciicircum = 584, e.underscore = 556, e.quoteleft = 278, e.a = 556, e.b = 611, e.c = 556, e.d = 611, e.e = 556, e.f = 333, e.g = 611, e.h = 611, e.i = 278, e.j = 278, e.k = 556, e.l = 278, e.m = 889, e.n = 611, e.o = 611, e.p = 611, e.q = 611, e.r = 389, e.s = 556, e.t = 333, e.u = 611, e.v = 556, e.w = 778, e.x = 556, e.y = 556, e.z = 500, e.braceleft = 389, e.bar = 280, e.braceright = 389, e.asciitilde = 584, e.exclamdown = 333, e.cent = 556, e.sterling = 556, e.fraction = 167, e.yen = 556, e.florin = 556, e.section = 556, e.currency = 556, e.quotesingle = 238, e.quotedblleft = 500, e.guillemotleft = 556, e.guilsinglleft = 333, e.guilsinglright = 333, e.fi = 611, e.fl = 611, e.endash = 556, e.dagger = 556, e.daggerdbl = 556, e.periodcentered = 278, e.paragraph = 556, e.bullet = 350, e.quotesinglbase = 278, e.quotedblbase = 500, e.quotedblright = 500, e.guillemotright = 556, e.ellipsis = 1e3, e.perthousand = 1e3, e.questiondown = 611, e.grave = 333, e.acute = 333, e.circumflex = 333, e.tilde = 333, e.macron = 333, e.breve = 333, e.dotaccent = 333, e.dieresis = 333, e.ring = 333, e.cedilla = 333, e.hungarumlaut = 333, e.ogonek = 333, e.caron = 333, e.emdash = 1e3, e.AE = 1e3, e.ordfeminine = 370, e.Lslash = 611, e.Oslash = 778, e.OE = 1e3, e.ordmasculine = 365, e.ae = 889, e.dotlessi = 278, e.lslash = 278, e.oslash = 611, e.oe = 944, e.germandbls = 611, e.Idieresis = 278, e.eacute = 556, e.abreve = 556, e.uhungarumlaut = 611, e.ecaron = 556, e.Ydieresis = 667, e.divide = 584, e.Yacute = 667, e.Acircumflex = 722, e.aacute = 556, e.Ucircumflex = 722, e.yacute = 556, e.scommaaccent = 556, e.ecircumflex = 556, e.Uring = 722, e.Udieresis = 722, e.aogonek = 556, e.Uacute = 722, e.uogonek = 611, e.Edieresis = 667, e.Dcroat = 722, e.commaaccent = 250, e.copyright = 737, e.Emacron = 667, e.ccaron = 556, e.aring = 556, e.Ncommaaccent = 722, e.lacute = 278, e.agrave = 556, e.Tcommaaccent = 611, e.Cacute = 722, e.atilde = 556, e.Edotaccent = 667, e.scaron = 556, e.scedilla = 556, e.iacute = 278, e.lozenge = 494, e.Rcaron = 722, e.Gcommaaccent = 778, e.ucircumflex = 611, e.acircumflex = 556, e.Amacron = 722, e.rcaron = 389, e.ccedilla = 556, e.Zdotaccent = 611, e.Thorn = 667, e.Omacron = 778, e.Racute = 722, e.Sacute = 667, e.dcaron = 743, e.Umacron = 722, e.uring = 611, e.threesuperior = 333, e.Ograve = 778, e.Agrave = 722, e.Abreve = 722, e.multiply = 584, e.uacute = 611, e.Tcaron = 611, e.partialdiff = 494, e.ydieresis = 556, e.Nacute = 722, e.icircumflex = 278, e.Ecircumflex = 667, e.adieresis = 556, e.edieresis = 556, e.cacute = 556, e.nacute = 611, e.umacron = 611, e.Ncaron = 722, e.Iacute = 278, e.plusminus = 584, e.brokenbar = 280, e.registered = 737, e.Gbreve = 778, e.Idotaccent = 278, e.summation = 600, e.Egrave = 667, e.racute = 389, e.omacron = 611, e.Zacute = 611, e.Zcaron = 611, e.greaterequal = 549, e.Eth = 722, e.Ccedilla = 722, e.lcommaaccent = 278, e.tcaron = 389, e.eogonek = 556, e.Uogonek = 722, e.Aacute = 722, e.Adieresis = 722, e.egrave = 556, e.zacute = 500, e.iogonek = 278, e.Oacute = 778, e.oacute = 611, e.amacron = 556, e.sacute = 556, e.idieresis = 278, e.Ocircumflex = 778, e.Ugrave = 722, e.Delta = 612, e.thorn = 611, e.twosuperior = 333, e.Odieresis = 778, e.mu = 611, e.igrave = 278, e.ohungarumlaut = 611, e.Eogonek = 667, e.dcroat = 611, e.threequarters = 834, e.Scedilla = 667, e.lcaron = 400, e.Kcommaaccent = 722, e.Lacute = 611, e.trademark = 1e3, e.edotaccent = 556, e.Igrave = 278, e.Imacron = 278, e.Lcaron = 611, e.onehalf = 834, e.lessequal = 549, e.ocircumflex = 611, e.ntilde = 611, e.Uhungarumlaut = 722, e.Eacute = 667, e.emacron = 556, e.gbreve = 611, e.onequarter = 834, e.Scaron = 667, e.Scommaaccent = 667, e.Ohungarumlaut = 778, e.degree = 400, e.ograve = 611, e.Ccaron = 722, e.ugrave = 611, e.radical = 549, e.Dcaron = 722, e.rcommaaccent = 389, e.Ntilde = 722, e.otilde = 611, e.Rcommaaccent = 722, e.Lcommaaccent = 611, e.Atilde = 722, e.Aogonek = 722, e.Aring = 722, e.Otilde = 778, e.zdotaccent = 500, e.Ecaron = 667, e.Iogonek = 278, e.kcommaaccent = 556, e.minus = 584, e.Icircumflex = 278, e.ncaron = 611, e.tcommaaccent = 333, e.logicalnot = 584, e.odieresis = 611, e.udieresis = 611, e.notequal = 549, e.gcommaaccent = 611, e.eth = 611, e.zcaron = 500, e.ncommaaccent = 611, e.onesuperior = 333, e.imacron = 278, e.Euro = 556;
        }), t["Helvetica-Oblique"] = Dt(function(e) {
          e.space = 278, e.exclam = 278, e.quotedbl = 355, e.numbersign = 556, e.dollar = 556, e.percent = 889, e.ampersand = 667, e.quoteright = 222, e.parenleft = 333, e.parenright = 333, e.asterisk = 389, e.plus = 584, e.comma = 278, e.hyphen = 333, e.period = 278, e.slash = 278, e.zero = 556, e.one = 556, e.two = 556, e.three = 556, e.four = 556, e.five = 556, e.six = 556, e.seven = 556, e.eight = 556, e.nine = 556, e.colon = 278, e.semicolon = 278, e.less = 584, e.equal = 584, e.greater = 584, e.question = 556, e.at = 1015, e.A = 667, e.B = 667, e.C = 722, e.D = 722, e.E = 667, e.F = 611, e.G = 778, e.H = 722, e.I = 278, e.J = 500, e.K = 667, e.L = 556, e.M = 833, e.N = 722, e.O = 778, e.P = 667, e.Q = 778, e.R = 722, e.S = 667, e.T = 611, e.U = 722, e.V = 667, e.W = 944, e.X = 667, e.Y = 667, e.Z = 611, e.bracketleft = 278, e.backslash = 278, e.bracketright = 278, e.asciicircum = 469, e.underscore = 556, e.quoteleft = 222, e.a = 556, e.b = 556, e.c = 500, e.d = 556, e.e = 556, e.f = 278, e.g = 556, e.h = 556, e.i = 222, e.j = 222, e.k = 500, e.l = 222, e.m = 833, e.n = 556, e.o = 556, e.p = 556, e.q = 556, e.r = 333, e.s = 500, e.t = 278, e.u = 556, e.v = 500, e.w = 722, e.x = 500, e.y = 500, e.z = 500, e.braceleft = 334, e.bar = 260, e.braceright = 334, e.asciitilde = 584, e.exclamdown = 333, e.cent = 556, e.sterling = 556, e.fraction = 167, e.yen = 556, e.florin = 556, e.section = 556, e.currency = 556, e.quotesingle = 191, e.quotedblleft = 333, e.guillemotleft = 556, e.guilsinglleft = 333, e.guilsinglright = 333, e.fi = 500, e.fl = 500, e.endash = 556, e.dagger = 556, e.daggerdbl = 556, e.periodcentered = 278, e.paragraph = 537, e.bullet = 350, e.quotesinglbase = 222, e.quotedblbase = 333, e.quotedblright = 333, e.guillemotright = 556, e.ellipsis = 1e3, e.perthousand = 1e3, e.questiondown = 611, e.grave = 333, e.acute = 333, e.circumflex = 333, e.tilde = 333, e.macron = 333, e.breve = 333, e.dotaccent = 333, e.dieresis = 333, e.ring = 333, e.cedilla = 333, e.hungarumlaut = 333, e.ogonek = 333, e.caron = 333, e.emdash = 1e3, e.AE = 1e3, e.ordfeminine = 370, e.Lslash = 556, e.Oslash = 778, e.OE = 1e3, e.ordmasculine = 365, e.ae = 889, e.dotlessi = 278, e.lslash = 222, e.oslash = 611, e.oe = 944, e.germandbls = 611, e.Idieresis = 278, e.eacute = 556, e.abreve = 556, e.uhungarumlaut = 556, e.ecaron = 556, e.Ydieresis = 667, e.divide = 584, e.Yacute = 667, e.Acircumflex = 667, e.aacute = 556, e.Ucircumflex = 722, e.yacute = 500, e.scommaaccent = 500, e.ecircumflex = 556, e.Uring = 722, e.Udieresis = 722, e.aogonek = 556, e.Uacute = 722, e.uogonek = 556, e.Edieresis = 667, e.Dcroat = 722, e.commaaccent = 250, e.copyright = 737, e.Emacron = 667, e.ccaron = 500, e.aring = 556, e.Ncommaaccent = 722, e.lacute = 222, e.agrave = 556, e.Tcommaaccent = 611, e.Cacute = 722, e.atilde = 556, e.Edotaccent = 667, e.scaron = 500, e.scedilla = 500, e.iacute = 278, e.lozenge = 471, e.Rcaron = 722, e.Gcommaaccent = 778, e.ucircumflex = 556, e.acircumflex = 556, e.Amacron = 667, e.rcaron = 333, e.ccedilla = 500, e.Zdotaccent = 611, e.Thorn = 667, e.Omacron = 778, e.Racute = 722, e.Sacute = 667, e.dcaron = 643, e.Umacron = 722, e.uring = 556, e.threesuperior = 333, e.Ograve = 778, e.Agrave = 667, e.Abreve = 667, e.multiply = 584, e.uacute = 556, e.Tcaron = 611, e.partialdiff = 476, e.ydieresis = 500, e.Nacute = 722, e.icircumflex = 278, e.Ecircumflex = 667, e.adieresis = 556, e.edieresis = 556, e.cacute = 500, e.nacute = 556, e.umacron = 556, e.Ncaron = 722, e.Iacute = 278, e.plusminus = 584, e.brokenbar = 260, e.registered = 737, e.Gbreve = 778, e.Idotaccent = 278, e.summation = 600, e.Egrave = 667, e.racute = 333, e.omacron = 556, e.Zacute = 611, e.Zcaron = 611, e.greaterequal = 549, e.Eth = 722, e.Ccedilla = 722, e.lcommaaccent = 222, e.tcaron = 317, e.eogonek = 556, e.Uogonek = 722, e.Aacute = 667, e.Adieresis = 667, e.egrave = 556, e.zacute = 500, e.iogonek = 222, e.Oacute = 778, e.oacute = 556, e.amacron = 556, e.sacute = 500, e.idieresis = 278, e.Ocircumflex = 778, e.Ugrave = 722, e.Delta = 612, e.thorn = 556, e.twosuperior = 333, e.Odieresis = 778, e.mu = 556, e.igrave = 278, e.ohungarumlaut = 556, e.Eogonek = 667, e.dcroat = 556, e.threequarters = 834, e.Scedilla = 667, e.lcaron = 299, e.Kcommaaccent = 667, e.Lacute = 556, e.trademark = 1e3, e.edotaccent = 556, e.Igrave = 278, e.Imacron = 278, e.Lcaron = 556, e.onehalf = 834, e.lessequal = 549, e.ocircumflex = 556, e.ntilde = 556, e.Uhungarumlaut = 722, e.Eacute = 667, e.emacron = 556, e.gbreve = 556, e.onequarter = 834, e.Scaron = 667, e.Scommaaccent = 667, e.Ohungarumlaut = 778, e.degree = 400, e.ograve = 556, e.Ccaron = 722, e.ugrave = 556, e.radical = 453, e.Dcaron = 722, e.rcommaaccent = 333, e.Ntilde = 722, e.otilde = 556, e.Rcommaaccent = 722, e.Lcommaaccent = 556, e.Atilde = 667, e.Aogonek = 667, e.Aring = 667, e.Otilde = 778, e.zdotaccent = 500, e.Ecaron = 667, e.Iogonek = 278, e.kcommaaccent = 500, e.minus = 584, e.Icircumflex = 278, e.ncaron = 556, e.tcommaaccent = 278, e.logicalnot = 584, e.odieresis = 556, e.udieresis = 556, e.notequal = 549, e.gcommaaccent = 556, e.eth = 556, e.zcaron = 500, e.ncommaaccent = 556, e.onesuperior = 333, e.imacron = 278, e.Euro = 556;
        }), t.Symbol = Dt(function(e) {
          e.space = 250, e.exclam = 333, e.universal = 713, e.numbersign = 500, e.existential = 549, e.percent = 833, e.ampersand = 778, e.suchthat = 439, e.parenleft = 333, e.parenright = 333, e.asteriskmath = 500, e.plus = 549, e.comma = 250, e.minus = 549, e.period = 250, e.slash = 278, e.zero = 500, e.one = 500, e.two = 500, e.three = 500, e.four = 500, e.five = 500, e.six = 500, e.seven = 500, e.eight = 500, e.nine = 500, e.colon = 278, e.semicolon = 278, e.less = 549, e.equal = 549, e.greater = 549, e.question = 444, e.congruent = 549, e.Alpha = 722, e.Beta = 667, e.Chi = 722, e.Delta = 612, e.Epsilon = 611, e.Phi = 763, e.Gamma = 603, e.Eta = 722, e.Iota = 333, e.theta1 = 631, e.Kappa = 722, e.Lambda = 686, e.Mu = 889, e.Nu = 722, e.Omicron = 722, e.Pi = 768, e.Theta = 741, e.Rho = 556, e.Sigma = 592, e.Tau = 611, e.Upsilon = 690, e.sigma1 = 439, e.Omega = 768, e.Xi = 645, e.Psi = 795, e.Zeta = 611, e.bracketleft = 333, e.therefore = 863, e.bracketright = 333, e.perpendicular = 658, e.underscore = 500, e.radicalex = 500, e.alpha = 631, e.beta = 549, e.chi = 549, e.delta = 494, e.epsilon = 439, e.phi = 521, e.gamma = 411, e.eta = 603, e.iota = 329, e.phi1 = 603, e.kappa = 549, e.lambda = 549, e.mu = 576, e.nu = 521, e.omicron = 549, e.pi = 549, e.theta = 521, e.rho = 549, e.sigma = 603, e.tau = 439, e.upsilon = 576, e.omega1 = 713, e.omega = 686, e.xi = 493, e.psi = 686, e.zeta = 494, e.braceleft = 480, e.bar = 200, e.braceright = 480, e.similar = 549, e.Euro = 750, e.Upsilon1 = 620, e.minute = 247, e.lessequal = 549, e.fraction = 167, e.infinity = 713, e.florin = 500, e.club = 753, e.diamond = 753, e.heart = 753, e.spade = 753, e.arrowboth = 1042, e.arrowleft = 987, e.arrowup = 603, e.arrowright = 987, e.arrowdown = 603, e.degree = 400, e.plusminus = 549, e.second = 411, e.greaterequal = 549, e.multiply = 549, e.proportional = 713, e.partialdiff = 494, e.bullet = 460, e.divide = 549, e.notequal = 549, e.equivalence = 549, e.approxequal = 549, e.ellipsis = 1e3, e.arrowvertex = 603, e.arrowhorizex = 1e3, e.carriagereturn = 658, e.aleph = 823, e.Ifraktur = 686, e.Rfraktur = 795, e.weierstrass = 987, e.circlemultiply = 768, e.circleplus = 768, e.emptyset = 823, e.intersection = 768, e.union = 768, e.propersuperset = 713, e.reflexsuperset = 713, e.notsubset = 713, e.propersubset = 713, e.reflexsubset = 713, e.element = 713, e.notelement = 713, e.angle = 768, e.gradient = 713, e.registerserif = 790, e.copyrightserif = 790, e.trademarkserif = 890, e.product = 823, e.radical = 549, e.dotmath = 250, e.logicalnot = 713, e.logicaland = 603, e.logicalor = 603, e.arrowdblboth = 1042, e.arrowdblleft = 987, e.arrowdblup = 603, e.arrowdblright = 987, e.arrowdbldown = 603, e.lozenge = 494, e.angleleft = 329, e.registersans = 790, e.copyrightsans = 790, e.trademarksans = 786, e.summation = 713, e.parenlefttp = 384, e.parenleftex = 384, e.parenleftbt = 384, e.bracketlefttp = 384, e.bracketleftex = 384, e.bracketleftbt = 384, e.bracelefttp = 494, e.braceleftmid = 494, e.braceleftbt = 494, e.braceex = 494, e.angleright = 329, e.integral = 274, e.integraltp = 686, e.integralex = 686, e.integralbt = 686, e.parenrighttp = 384, e.parenrightex = 384, e.parenrightbt = 384, e.bracketrighttp = 384, e.bracketrightex = 384, e.bracketrightbt = 384, e.bracerighttp = 494, e.bracerightmid = 494, e.bracerightbt = 494, e.apple = 790;
        }), t["Times-Roman"] = Dt(function(e) {
          e.space = 250, e.exclam = 333, e.quotedbl = 408, e.numbersign = 500, e.dollar = 500, e.percent = 833, e.ampersand = 778, e.quoteright = 333, e.parenleft = 333, e.parenright = 333, e.asterisk = 500, e.plus = 564, e.comma = 250, e.hyphen = 333, e.period = 250, e.slash = 278, e.zero = 500, e.one = 500, e.two = 500, e.three = 500, e.four = 500, e.five = 500, e.six = 500, e.seven = 500, e.eight = 500, e.nine = 500, e.colon = 278, e.semicolon = 278, e.less = 564, e.equal = 564, e.greater = 564, e.question = 444, e.at = 921, e.A = 722, e.B = 667, e.C = 667, e.D = 722, e.E = 611, e.F = 556, e.G = 722, e.H = 722, e.I = 333, e.J = 389, e.K = 722, e.L = 611, e.M = 889, e.N = 722, e.O = 722, e.P = 556, e.Q = 722, e.R = 667, e.S = 556, e.T = 611, e.U = 722, e.V = 722, e.W = 944, e.X = 722, e.Y = 722, e.Z = 611, e.bracketleft = 333, e.backslash = 278, e.bracketright = 333, e.asciicircum = 469, e.underscore = 500, e.quoteleft = 333, e.a = 444, e.b = 500, e.c = 444, e.d = 500, e.e = 444, e.f = 333, e.g = 500, e.h = 500, e.i = 278, e.j = 278, e.k = 500, e.l = 278, e.m = 778, e.n = 500, e.o = 500, e.p = 500, e.q = 500, e.r = 333, e.s = 389, e.t = 278, e.u = 500, e.v = 500, e.w = 722, e.x = 500, e.y = 500, e.z = 444, e.braceleft = 480, e.bar = 200, e.braceright = 480, e.asciitilde = 541, e.exclamdown = 333, e.cent = 500, e.sterling = 500, e.fraction = 167, e.yen = 500, e.florin = 500, e.section = 500, e.currency = 500, e.quotesingle = 180, e.quotedblleft = 444, e.guillemotleft = 500, e.guilsinglleft = 333, e.guilsinglright = 333, e.fi = 556, e.fl = 556, e.endash = 500, e.dagger = 500, e.daggerdbl = 500, e.periodcentered = 250, e.paragraph = 453, e.bullet = 350, e.quotesinglbase = 333, e.quotedblbase = 444, e.quotedblright = 444, e.guillemotright = 500, e.ellipsis = 1e3, e.perthousand = 1e3, e.questiondown = 444, e.grave = 333, e.acute = 333, e.circumflex = 333, e.tilde = 333, e.macron = 333, e.breve = 333, e.dotaccent = 333, e.dieresis = 333, e.ring = 333, e.cedilla = 333, e.hungarumlaut = 333, e.ogonek = 333, e.caron = 333, e.emdash = 1e3, e.AE = 889, e.ordfeminine = 276, e.Lslash = 611, e.Oslash = 722, e.OE = 889, e.ordmasculine = 310, e.ae = 667, e.dotlessi = 278, e.lslash = 278, e.oslash = 500, e.oe = 722, e.germandbls = 500, e.Idieresis = 333, e.eacute = 444, e.abreve = 444, e.uhungarumlaut = 500, e.ecaron = 444, e.Ydieresis = 722, e.divide = 564, e.Yacute = 722, e.Acircumflex = 722, e.aacute = 444, e.Ucircumflex = 722, e.yacute = 500, e.scommaaccent = 389, e.ecircumflex = 444, e.Uring = 722, e.Udieresis = 722, e.aogonek = 444, e.Uacute = 722, e.uogonek = 500, e.Edieresis = 611, e.Dcroat = 722, e.commaaccent = 250, e.copyright = 760, e.Emacron = 611, e.ccaron = 444, e.aring = 444, e.Ncommaaccent = 722, e.lacute = 278, e.agrave = 444, e.Tcommaaccent = 611, e.Cacute = 667, e.atilde = 444, e.Edotaccent = 611, e.scaron = 389, e.scedilla = 389, e.iacute = 278, e.lozenge = 471, e.Rcaron = 667, e.Gcommaaccent = 722, e.ucircumflex = 500, e.acircumflex = 444, e.Amacron = 722, e.rcaron = 333, e.ccedilla = 444, e.Zdotaccent = 611, e.Thorn = 556, e.Omacron = 722, e.Racute = 667, e.Sacute = 556, e.dcaron = 588, e.Umacron = 722, e.uring = 500, e.threesuperior = 300, e.Ograve = 722, e.Agrave = 722, e.Abreve = 722, e.multiply = 564, e.uacute = 500, e.Tcaron = 611, e.partialdiff = 476, e.ydieresis = 500, e.Nacute = 722, e.icircumflex = 278, e.Ecircumflex = 611, e.adieresis = 444, e.edieresis = 444, e.cacute = 444, e.nacute = 500, e.umacron = 500, e.Ncaron = 722, e.Iacute = 333, e.plusminus = 564, e.brokenbar = 200, e.registered = 760, e.Gbreve = 722, e.Idotaccent = 333, e.summation = 600, e.Egrave = 611, e.racute = 333, e.omacron = 500, e.Zacute = 611, e.Zcaron = 611, e.greaterequal = 549, e.Eth = 722, e.Ccedilla = 667, e.lcommaaccent = 278, e.tcaron = 326, e.eogonek = 444, e.Uogonek = 722, e.Aacute = 722, e.Adieresis = 722, e.egrave = 444, e.zacute = 444, e.iogonek = 278, e.Oacute = 722, e.oacute = 500, e.amacron = 444, e.sacute = 389, e.idieresis = 278, e.Ocircumflex = 722, e.Ugrave = 722, e.Delta = 612, e.thorn = 500, e.twosuperior = 300, e.Odieresis = 722, e.mu = 500, e.igrave = 278, e.ohungarumlaut = 500, e.Eogonek = 611, e.dcroat = 500, e.threequarters = 750, e.Scedilla = 556, e.lcaron = 344, e.Kcommaaccent = 722, e.Lacute = 611, e.trademark = 980, e.edotaccent = 444, e.Igrave = 333, e.Imacron = 333, e.Lcaron = 611, e.onehalf = 750, e.lessequal = 549, e.ocircumflex = 500, e.ntilde = 500, e.Uhungarumlaut = 722, e.Eacute = 611, e.emacron = 444, e.gbreve = 500, e.onequarter = 750, e.Scaron = 556, e.Scommaaccent = 556, e.Ohungarumlaut = 722, e.degree = 400, e.ograve = 500, e.Ccaron = 667, e.ugrave = 500, e.radical = 453, e.Dcaron = 722, e.rcommaaccent = 333, e.Ntilde = 722, e.otilde = 500, e.Rcommaaccent = 667, e.Lcommaaccent = 611, e.Atilde = 722, e.Aogonek = 722, e.Aring = 722, e.Otilde = 722, e.zdotaccent = 444, e.Ecaron = 611, e.Iogonek = 333, e.kcommaaccent = 500, e.minus = 564, e.Icircumflex = 333, e.ncaron = 500, e.tcommaaccent = 278, e.logicalnot = 564, e.odieresis = 500, e.udieresis = 500, e.notequal = 549, e.gcommaaccent = 500, e.eth = 500, e.zcaron = 444, e.ncommaaccent = 500, e.onesuperior = 300, e.imacron = 278, e.Euro = 500;
        }), t["Times-Bold"] = Dt(function(e) {
          e.space = 250, e.exclam = 333, e.quotedbl = 555, e.numbersign = 500, e.dollar = 500, e.percent = 1e3, e.ampersand = 833, e.quoteright = 333, e.parenleft = 333, e.parenright = 333, e.asterisk = 500, e.plus = 570, e.comma = 250, e.hyphen = 333, e.period = 250, e.slash = 278, e.zero = 500, e.one = 500, e.two = 500, e.three = 500, e.four = 500, e.five = 500, e.six = 500, e.seven = 500, e.eight = 500, e.nine = 500, e.colon = 333, e.semicolon = 333, e.less = 570, e.equal = 570, e.greater = 570, e.question = 500, e.at = 930, e.A = 722, e.B = 667, e.C = 722, e.D = 722, e.E = 667, e.F = 611, e.G = 778, e.H = 778, e.I = 389, e.J = 500, e.K = 778, e.L = 667, e.M = 944, e.N = 722, e.O = 778, e.P = 611, e.Q = 778, e.R = 722, e.S = 556, e.T = 667, e.U = 722, e.V = 722, e.W = 1e3, e.X = 722, e.Y = 722, e.Z = 667, e.bracketleft = 333, e.backslash = 278, e.bracketright = 333, e.asciicircum = 581, e.underscore = 500, e.quoteleft = 333, e.a = 500, e.b = 556, e.c = 444, e.d = 556, e.e = 444, e.f = 333, e.g = 500, e.h = 556, e.i = 278, e.j = 333, e.k = 556, e.l = 278, e.m = 833, e.n = 556, e.o = 500, e.p = 556, e.q = 556, e.r = 444, e.s = 389, e.t = 333, e.u = 556, e.v = 500, e.w = 722, e.x = 500, e.y = 500, e.z = 444, e.braceleft = 394, e.bar = 220, e.braceright = 394, e.asciitilde = 520, e.exclamdown = 333, e.cent = 500, e.sterling = 500, e.fraction = 167, e.yen = 500, e.florin = 500, e.section = 500, e.currency = 500, e.quotesingle = 278, e.quotedblleft = 500, e.guillemotleft = 500, e.guilsinglleft = 333, e.guilsinglright = 333, e.fi = 556, e.fl = 556, e.endash = 500, e.dagger = 500, e.daggerdbl = 500, e.periodcentered = 250, e.paragraph = 540, e.bullet = 350, e.quotesinglbase = 333, e.quotedblbase = 500, e.quotedblright = 500, e.guillemotright = 500, e.ellipsis = 1e3, e.perthousand = 1e3, e.questiondown = 500, e.grave = 333, e.acute = 333, e.circumflex = 333, e.tilde = 333, e.macron = 333, e.breve = 333, e.dotaccent = 333, e.dieresis = 333, e.ring = 333, e.cedilla = 333, e.hungarumlaut = 333, e.ogonek = 333, e.caron = 333, e.emdash = 1e3, e.AE = 1e3, e.ordfeminine = 300, e.Lslash = 667, e.Oslash = 778, e.OE = 1e3, e.ordmasculine = 330, e.ae = 722, e.dotlessi = 278, e.lslash = 278, e.oslash = 500, e.oe = 722, e.germandbls = 556, e.Idieresis = 389, e.eacute = 444, e.abreve = 500, e.uhungarumlaut = 556, e.ecaron = 444, e.Ydieresis = 722, e.divide = 570, e.Yacute = 722, e.Acircumflex = 722, e.aacute = 500, e.Ucircumflex = 722, e.yacute = 500, e.scommaaccent = 389, e.ecircumflex = 444, e.Uring = 722, e.Udieresis = 722, e.aogonek = 500, e.Uacute = 722, e.uogonek = 556, e.Edieresis = 667, e.Dcroat = 722, e.commaaccent = 250, e.copyright = 747, e.Emacron = 667, e.ccaron = 444, e.aring = 500, e.Ncommaaccent = 722, e.lacute = 278, e.agrave = 500, e.Tcommaaccent = 667, e.Cacute = 722, e.atilde = 500, e.Edotaccent = 667, e.scaron = 389, e.scedilla = 389, e.iacute = 278, e.lozenge = 494, e.Rcaron = 722, e.Gcommaaccent = 778, e.ucircumflex = 556, e.acircumflex = 500, e.Amacron = 722, e.rcaron = 444, e.ccedilla = 444, e.Zdotaccent = 667, e.Thorn = 611, e.Omacron = 778, e.Racute = 722, e.Sacute = 556, e.dcaron = 672, e.Umacron = 722, e.uring = 556, e.threesuperior = 300, e.Ograve = 778, e.Agrave = 722, e.Abreve = 722, e.multiply = 570, e.uacute = 556, e.Tcaron = 667, e.partialdiff = 494, e.ydieresis = 500, e.Nacute = 722, e.icircumflex = 278, e.Ecircumflex = 667, e.adieresis = 500, e.edieresis = 444, e.cacute = 444, e.nacute = 556, e.umacron = 556, e.Ncaron = 722, e.Iacute = 389, e.plusminus = 570, e.brokenbar = 220, e.registered = 747, e.Gbreve = 778, e.Idotaccent = 389, e.summation = 600, e.Egrave = 667, e.racute = 444, e.omacron = 500, e.Zacute = 667, e.Zcaron = 667, e.greaterequal = 549, e.Eth = 722, e.Ccedilla = 722, e.lcommaaccent = 278, e.tcaron = 416, e.eogonek = 444, e.Uogonek = 722, e.Aacute = 722, e.Adieresis = 722, e.egrave = 444, e.zacute = 444, e.iogonek = 278, e.Oacute = 778, e.oacute = 500, e.amacron = 500, e.sacute = 389, e.idieresis = 278, e.Ocircumflex = 778, e.Ugrave = 722, e.Delta = 612, e.thorn = 556, e.twosuperior = 300, e.Odieresis = 778, e.mu = 556, e.igrave = 278, e.ohungarumlaut = 500, e.Eogonek = 667, e.dcroat = 556, e.threequarters = 750, e.Scedilla = 556, e.lcaron = 394, e.Kcommaaccent = 778, e.Lacute = 667, e.trademark = 1e3, e.edotaccent = 444, e.Igrave = 389, e.Imacron = 389, e.Lcaron = 667, e.onehalf = 750, e.lessequal = 549, e.ocircumflex = 500, e.ntilde = 556, e.Uhungarumlaut = 722, e.Eacute = 667, e.emacron = 444, e.gbreve = 500, e.onequarter = 750, e.Scaron = 556, e.Scommaaccent = 556, e.Ohungarumlaut = 778, e.degree = 400, e.ograve = 500, e.Ccaron = 722, e.ugrave = 556, e.radical = 549, e.Dcaron = 722, e.rcommaaccent = 444, e.Ntilde = 722, e.otilde = 500, e.Rcommaaccent = 722, e.Lcommaaccent = 667, e.Atilde = 722, e.Aogonek = 722, e.Aring = 722, e.Otilde = 778, e.zdotaccent = 444, e.Ecaron = 667, e.Iogonek = 389, e.kcommaaccent = 556, e.minus = 570, e.Icircumflex = 389, e.ncaron = 556, e.tcommaaccent = 333, e.logicalnot = 570, e.odieresis = 500, e.udieresis = 556, e.notequal = 549, e.gcommaaccent = 500, e.eth = 500, e.zcaron = 444, e.ncommaaccent = 556, e.onesuperior = 300, e.imacron = 278, e.Euro = 500;
        }), t["Times-BoldItalic"] = Dt(function(e) {
          e.space = 250, e.exclam = 389, e.quotedbl = 555, e.numbersign = 500, e.dollar = 500, e.percent = 833, e.ampersand = 778, e.quoteright = 333, e.parenleft = 333, e.parenright = 333, e.asterisk = 500, e.plus = 570, e.comma = 250, e.hyphen = 333, e.period = 250, e.slash = 278, e.zero = 500, e.one = 500, e.two = 500, e.three = 500, e.four = 500, e.five = 500, e.six = 500, e.seven = 500, e.eight = 500, e.nine = 500, e.colon = 333, e.semicolon = 333, e.less = 570, e.equal = 570, e.greater = 570, e.question = 500, e.at = 832, e.A = 667, e.B = 667, e.C = 667, e.D = 722, e.E = 667, e.F = 667, e.G = 722, e.H = 778, e.I = 389, e.J = 500, e.K = 667, e.L = 611, e.M = 889, e.N = 722, e.O = 722, e.P = 611, e.Q = 722, e.R = 667, e.S = 556, e.T = 611, e.U = 722, e.V = 667, e.W = 889, e.X = 667, e.Y = 611, e.Z = 611, e.bracketleft = 333, e.backslash = 278, e.bracketright = 333, e.asciicircum = 570, e.underscore = 500, e.quoteleft = 333, e.a = 500, e.b = 500, e.c = 444, e.d = 500, e.e = 444, e.f = 333, e.g = 500, e.h = 556, e.i = 278, e.j = 278, e.k = 500, e.l = 278, e.m = 778, e.n = 556, e.o = 500, e.p = 500, e.q = 500, e.r = 389, e.s = 389, e.t = 278, e.u = 556, e.v = 444, e.w = 667, e.x = 500, e.y = 444, e.z = 389, e.braceleft = 348, e.bar = 220, e.braceright = 348, e.asciitilde = 570, e.exclamdown = 389, e.cent = 500, e.sterling = 500, e.fraction = 167, e.yen = 500, e.florin = 500, e.section = 500, e.currency = 500, e.quotesingle = 278, e.quotedblleft = 500, e.guillemotleft = 500, e.guilsinglleft = 333, e.guilsinglright = 333, e.fi = 556, e.fl = 556, e.endash = 500, e.dagger = 500, e.daggerdbl = 500, e.periodcentered = 250, e.paragraph = 500, e.bullet = 350, e.quotesinglbase = 333, e.quotedblbase = 500, e.quotedblright = 500, e.guillemotright = 500, e.ellipsis = 1e3, e.perthousand = 1e3, e.questiondown = 500, e.grave = 333, e.acute = 333, e.circumflex = 333, e.tilde = 333, e.macron = 333, e.breve = 333, e.dotaccent = 333, e.dieresis = 333, e.ring = 333, e.cedilla = 333, e.hungarumlaut = 333, e.ogonek = 333, e.caron = 333, e.emdash = 1e3, e.AE = 944, e.ordfeminine = 266, e.Lslash = 611, e.Oslash = 722, e.OE = 944, e.ordmasculine = 300, e.ae = 722, e.dotlessi = 278, e.lslash = 278, e.oslash = 500, e.oe = 722, e.germandbls = 500, e.Idieresis = 389, e.eacute = 444, e.abreve = 500, e.uhungarumlaut = 556, e.ecaron = 444, e.Ydieresis = 611, e.divide = 570, e.Yacute = 611, e.Acircumflex = 667, e.aacute = 500, e.Ucircumflex = 722, e.yacute = 444, e.scommaaccent = 389, e.ecircumflex = 444, e.Uring = 722, e.Udieresis = 722, e.aogonek = 500, e.Uacute = 722, e.uogonek = 556, e.Edieresis = 667, e.Dcroat = 722, e.commaaccent = 250, e.copyright = 747, e.Emacron = 667, e.ccaron = 444, e.aring = 500, e.Ncommaaccent = 722, e.lacute = 278, e.agrave = 500, e.Tcommaaccent = 611, e.Cacute = 667, e.atilde = 500, e.Edotaccent = 667, e.scaron = 389, e.scedilla = 389, e.iacute = 278, e.lozenge = 494, e.Rcaron = 667, e.Gcommaaccent = 722, e.ucircumflex = 556, e.acircumflex = 500, e.Amacron = 667, e.rcaron = 389, e.ccedilla = 444, e.Zdotaccent = 611, e.Thorn = 611, e.Omacron = 722, e.Racute = 667, e.Sacute = 556, e.dcaron = 608, e.Umacron = 722, e.uring = 556, e.threesuperior = 300, e.Ograve = 722, e.Agrave = 667, e.Abreve = 667, e.multiply = 570, e.uacute = 556, e.Tcaron = 611, e.partialdiff = 494, e.ydieresis = 444, e.Nacute = 722, e.icircumflex = 278, e.Ecircumflex = 667, e.adieresis = 500, e.edieresis = 444, e.cacute = 444, e.nacute = 556, e.umacron = 556, e.Ncaron = 722, e.Iacute = 389, e.plusminus = 570, e.brokenbar = 220, e.registered = 747, e.Gbreve = 722, e.Idotaccent = 389, e.summation = 600, e.Egrave = 667, e.racute = 389, e.omacron = 500, e.Zacute = 611, e.Zcaron = 611, e.greaterequal = 549, e.Eth = 722, e.Ccedilla = 667, e.lcommaaccent = 278, e.tcaron = 366, e.eogonek = 444, e.Uogonek = 722, e.Aacute = 667, e.Adieresis = 667, e.egrave = 444, e.zacute = 389, e.iogonek = 278, e.Oacute = 722, e.oacute = 500, e.amacron = 500, e.sacute = 389, e.idieresis = 278, e.Ocircumflex = 722, e.Ugrave = 722, e.Delta = 612, e.thorn = 500, e.twosuperior = 300, e.Odieresis = 722, e.mu = 576, e.igrave = 278, e.ohungarumlaut = 500, e.Eogonek = 667, e.dcroat = 500, e.threequarters = 750, e.Scedilla = 556, e.lcaron = 382, e.Kcommaaccent = 667, e.Lacute = 611, e.trademark = 1e3, e.edotaccent = 444, e.Igrave = 389, e.Imacron = 389, e.Lcaron = 611, e.onehalf = 750, e.lessequal = 549, e.ocircumflex = 500, e.ntilde = 556, e.Uhungarumlaut = 722, e.Eacute = 667, e.emacron = 444, e.gbreve = 500, e.onequarter = 750, e.Scaron = 556, e.Scommaaccent = 556, e.Ohungarumlaut = 722, e.degree = 400, e.ograve = 500, e.Ccaron = 667, e.ugrave = 556, e.radical = 549, e.Dcaron = 722, e.rcommaaccent = 389, e.Ntilde = 722, e.otilde = 500, e.Rcommaaccent = 667, e.Lcommaaccent = 611, e.Atilde = 667, e.Aogonek = 667, e.Aring = 667, e.Otilde = 722, e.zdotaccent = 389, e.Ecaron = 667, e.Iogonek = 389, e.kcommaaccent = 500, e.minus = 606, e.Icircumflex = 389, e.ncaron = 556, e.tcommaaccent = 278, e.logicalnot = 606, e.odieresis = 500, e.udieresis = 556, e.notequal = 549, e.gcommaaccent = 500, e.eth = 500, e.zcaron = 389, e.ncommaaccent = 556, e.onesuperior = 300, e.imacron = 278, e.Euro = 500;
        }), t["Times-Italic"] = Dt(function(e) {
          e.space = 250, e.exclam = 333, e.quotedbl = 420, e.numbersign = 500, e.dollar = 500, e.percent = 833, e.ampersand = 778, e.quoteright = 333, e.parenleft = 333, e.parenright = 333, e.asterisk = 500, e.plus = 675, e.comma = 250, e.hyphen = 333, e.period = 250, e.slash = 278, e.zero = 500, e.one = 500, e.two = 500, e.three = 500, e.four = 500, e.five = 500, e.six = 500, e.seven = 500, e.eight = 500, e.nine = 500, e.colon = 333, e.semicolon = 333, e.less = 675, e.equal = 675, e.greater = 675, e.question = 500, e.at = 920, e.A = 611, e.B = 611, e.C = 667, e.D = 722, e.E = 611, e.F = 611, e.G = 722, e.H = 722, e.I = 333, e.J = 444, e.K = 667, e.L = 556, e.M = 833, e.N = 667, e.O = 722, e.P = 611, e.Q = 722, e.R = 611, e.S = 500, e.T = 556, e.U = 722, e.V = 611, e.W = 833, e.X = 611, e.Y = 556, e.Z = 556, e.bracketleft = 389, e.backslash = 278, e.bracketright = 389, e.asciicircum = 422, e.underscore = 500, e.quoteleft = 333, e.a = 500, e.b = 500, e.c = 444, e.d = 500, e.e = 444, e.f = 278, e.g = 500, e.h = 500, e.i = 278, e.j = 278, e.k = 444, e.l = 278, e.m = 722, e.n = 500, e.o = 500, e.p = 500, e.q = 500, e.r = 389, e.s = 389, e.t = 278, e.u = 500, e.v = 444, e.w = 667, e.x = 444, e.y = 444, e.z = 389, e.braceleft = 400, e.bar = 275, e.braceright = 400, e.asciitilde = 541, e.exclamdown = 389, e.cent = 500, e.sterling = 500, e.fraction = 167, e.yen = 500, e.florin = 500, e.section = 500, e.currency = 500, e.quotesingle = 214, e.quotedblleft = 556, e.guillemotleft = 500, e.guilsinglleft = 333, e.guilsinglright = 333, e.fi = 500, e.fl = 500, e.endash = 500, e.dagger = 500, e.daggerdbl = 500, e.periodcentered = 250, e.paragraph = 523, e.bullet = 350, e.quotesinglbase = 333, e.quotedblbase = 556, e.quotedblright = 556, e.guillemotright = 500, e.ellipsis = 889, e.perthousand = 1e3, e.questiondown = 500, e.grave = 333, e.acute = 333, e.circumflex = 333, e.tilde = 333, e.macron = 333, e.breve = 333, e.dotaccent = 333, e.dieresis = 333, e.ring = 333, e.cedilla = 333, e.hungarumlaut = 333, e.ogonek = 333, e.caron = 333, e.emdash = 889, e.AE = 889, e.ordfeminine = 276, e.Lslash = 556, e.Oslash = 722, e.OE = 944, e.ordmasculine = 310, e.ae = 667, e.dotlessi = 278, e.lslash = 278, e.oslash = 500, e.oe = 667, e.germandbls = 500, e.Idieresis = 333, e.eacute = 444, e.abreve = 500, e.uhungarumlaut = 500, e.ecaron = 444, e.Ydieresis = 556, e.divide = 675, e.Yacute = 556, e.Acircumflex = 611, e.aacute = 500, e.Ucircumflex = 722, e.yacute = 444, e.scommaaccent = 389, e.ecircumflex = 444, e.Uring = 722, e.Udieresis = 722, e.aogonek = 500, e.Uacute = 722, e.uogonek = 500, e.Edieresis = 611, e.Dcroat = 722, e.commaaccent = 250, e.copyright = 760, e.Emacron = 611, e.ccaron = 444, e.aring = 500, e.Ncommaaccent = 667, e.lacute = 278, e.agrave = 500, e.Tcommaaccent = 556, e.Cacute = 667, e.atilde = 500, e.Edotaccent = 611, e.scaron = 389, e.scedilla = 389, e.iacute = 278, e.lozenge = 471, e.Rcaron = 611, e.Gcommaaccent = 722, e.ucircumflex = 500, e.acircumflex = 500, e.Amacron = 611, e.rcaron = 389, e.ccedilla = 444, e.Zdotaccent = 556, e.Thorn = 611, e.Omacron = 722, e.Racute = 611, e.Sacute = 500, e.dcaron = 544, e.Umacron = 722, e.uring = 500, e.threesuperior = 300, e.Ograve = 722, e.Agrave = 611, e.Abreve = 611, e.multiply = 675, e.uacute = 500, e.Tcaron = 556, e.partialdiff = 476, e.ydieresis = 444, e.Nacute = 667, e.icircumflex = 278, e.Ecircumflex = 611, e.adieresis = 500, e.edieresis = 444, e.cacute = 444, e.nacute = 500, e.umacron = 500, e.Ncaron = 667, e.Iacute = 333, e.plusminus = 675, e.brokenbar = 275, e.registered = 760, e.Gbreve = 722, e.Idotaccent = 333, e.summation = 600, e.Egrave = 611, e.racute = 389, e.omacron = 500, e.Zacute = 556, e.Zcaron = 556, e.greaterequal = 549, e.Eth = 722, e.Ccedilla = 667, e.lcommaaccent = 278, e.tcaron = 300, e.eogonek = 444, e.Uogonek = 722, e.Aacute = 611, e.Adieresis = 611, e.egrave = 444, e.zacute = 389, e.iogonek = 278, e.Oacute = 722, e.oacute = 500, e.amacron = 500, e.sacute = 389, e.idieresis = 278, e.Ocircumflex = 722, e.Ugrave = 722, e.Delta = 612, e.thorn = 500, e.twosuperior = 300, e.Odieresis = 722, e.mu = 500, e.igrave = 278, e.ohungarumlaut = 500, e.Eogonek = 611, e.dcroat = 500, e.threequarters = 750, e.Scedilla = 500, e.lcaron = 300, e.Kcommaaccent = 667, e.Lacute = 556, e.trademark = 980, e.edotaccent = 444, e.Igrave = 333, e.Imacron = 333, e.Lcaron = 611, e.onehalf = 750, e.lessequal = 549, e.ocircumflex = 500, e.ntilde = 500, e.Uhungarumlaut = 722, e.Eacute = 611, e.emacron = 444, e.gbreve = 500, e.onequarter = 750, e.Scaron = 500, e.Scommaaccent = 500, e.Ohungarumlaut = 722, e.degree = 400, e.ograve = 500, e.Ccaron = 667, e.ugrave = 500, e.radical = 453, e.Dcaron = 722, e.rcommaaccent = 389, e.Ntilde = 667, e.otilde = 500, e.Rcommaaccent = 611, e.Lcommaaccent = 556, e.Atilde = 611, e.Aogonek = 611, e.Aring = 611, e.Otilde = 722, e.zdotaccent = 389, e.Ecaron = 611, e.Iogonek = 333, e.kcommaaccent = 444, e.minus = 675, e.Icircumflex = 333, e.ncaron = 500, e.tcommaaccent = 278, e.logicalnot = 675, e.odieresis = 500, e.udieresis = 500, e.notequal = 549, e.gcommaaccent = 500, e.eth = 500, e.zcaron = 389, e.ncommaaccent = 500, e.onesuperior = 300, e.imacron = 278, e.Euro = 500;
        }), t.ZapfDingbats = Dt(function(e) {
          e.space = 278, e.a1 = 974, e.a2 = 961, e.a202 = 974, e.a3 = 980, e.a4 = 719, e.a5 = 789, e.a119 = 790, e.a118 = 791, e.a117 = 690, e.a11 = 960, e.a12 = 939, e.a13 = 549, e.a14 = 855, e.a15 = 911, e.a16 = 933, e.a105 = 911, e.a17 = 945, e.a18 = 974, e.a19 = 755, e.a20 = 846, e.a21 = 762, e.a22 = 761, e.a23 = 571, e.a24 = 677, e.a25 = 763, e.a26 = 760, e.a27 = 759, e.a28 = 754, e.a6 = 494, e.a7 = 552, e.a8 = 537, e.a9 = 577, e.a10 = 692, e.a29 = 786, e.a30 = 788, e.a31 = 788, e.a32 = 790, e.a33 = 793, e.a34 = 794, e.a35 = 816, e.a36 = 823, e.a37 = 789, e.a38 = 841, e.a39 = 823, e.a40 = 833, e.a41 = 816, e.a42 = 831, e.a43 = 923, e.a44 = 744, e.a45 = 723, e.a46 = 749, e.a47 = 790, e.a48 = 792, e.a49 = 695, e.a50 = 776, e.a51 = 768, e.a52 = 792, e.a53 = 759, e.a54 = 707, e.a55 = 708, e.a56 = 682, e.a57 = 701, e.a58 = 826, e.a59 = 815, e.a60 = 789, e.a61 = 789, e.a62 = 707, e.a63 = 687, e.a64 = 696, e.a65 = 689, e.a66 = 786, e.a67 = 787, e.a68 = 713, e.a69 = 791, e.a70 = 785, e.a71 = 791, e.a72 = 873, e.a73 = 761, e.a74 = 762, e.a203 = 762, e.a75 = 759, e.a204 = 759, e.a76 = 892, e.a77 = 892, e.a78 = 788, e.a79 = 784, e.a81 = 438, e.a82 = 138, e.a83 = 277, e.a84 = 415, e.a97 = 392, e.a98 = 392, e.a99 = 668, e.a100 = 668, e.a89 = 390, e.a90 = 390, e.a93 = 317, e.a94 = 317, e.a91 = 276, e.a92 = 276, e.a205 = 509, e.a85 = 509, e.a206 = 410, e.a86 = 410, e.a87 = 234, e.a88 = 234, e.a95 = 334, e.a96 = 334, e.a101 = 732, e.a102 = 544, e.a103 = 544, e.a104 = 910, e.a106 = 667, e.a107 = 760, e.a108 = 760, e.a112 = 776, e.a111 = 595, e.a110 = 694, e.a109 = 626, e.a120 = 788, e.a121 = 788, e.a122 = 788, e.a123 = 788, e.a124 = 788, e.a125 = 788, e.a126 = 788, e.a127 = 788, e.a128 = 788, e.a129 = 788, e.a130 = 788, e.a131 = 788, e.a132 = 788, e.a133 = 788, e.a134 = 788, e.a135 = 788, e.a136 = 788, e.a137 = 788, e.a138 = 788, e.a139 = 788, e.a140 = 788, e.a141 = 788, e.a142 = 788, e.a143 = 788, e.a144 = 788, e.a145 = 788, e.a146 = 788, e.a147 = 788, e.a148 = 788, e.a149 = 788, e.a150 = 788, e.a151 = 788, e.a152 = 788, e.a153 = 788, e.a154 = 788, e.a155 = 788, e.a156 = 788, e.a157 = 788, e.a158 = 788, e.a159 = 788, e.a160 = 894, e.a161 = 838, e.a163 = 1016, e.a164 = 458, e.a196 = 748, e.a165 = 924, e.a192 = 748, e.a166 = 918, e.a167 = 927, e.a168 = 928, e.a169 = 928, e.a170 = 834, e.a171 = 873, e.a172 = 828, e.a173 = 924, e.a162 = 924, e.a174 = 917, e.a175 = 930, e.a176 = 931, e.a177 = 463, e.a178 = 883, e.a179 = 836, e.a193 = 836, e.a180 = 867, e.a199 = 867, e.a181 = 696, e.a200 = 696, e.a182 = 874, e.a201 = 874, e.a183 = 760, e.a184 = 946, e.a197 = 771, e.a185 = 865, e.a194 = 771, e.a198 = 888, e.a186 = 967, e.a195 = 888, e.a187 = 831, e.a188 = 873, e.a189 = 927, e.a190 = 970, e.a191 = 918;
        });
      });
      lw = Dt(function(t) {
        t.Courier = { ascent: 629, descent: -157, capHeight: 562, xHeight: -426 }, t["Courier-Bold"] = { ascent: 629, descent: -157, capHeight: 562, xHeight: 439 }, t["Courier-Oblique"] = { ascent: 629, descent: -157, capHeight: 562, xHeight: 426 }, t["Courier-BoldOblique"] = { ascent: 629, descent: -157, capHeight: 562, xHeight: 426 }, t.Helvetica = { ascent: 718, descent: -207, capHeight: 718, xHeight: 523 }, t["Helvetica-Bold"] = { ascent: 718, descent: -207, capHeight: 718, xHeight: 532 }, t["Helvetica-Oblique"] = { ascent: 718, descent: -207, capHeight: 718, xHeight: 523 }, t["Helvetica-BoldOblique"] = { ascent: 718, descent: -207, capHeight: 718, xHeight: 532 }, t["Times-Roman"] = { ascent: 683, descent: -217, capHeight: 662, xHeight: 450 }, t["Times-Bold"] = { ascent: 683, descent: -217, capHeight: 676, xHeight: 461 }, t["Times-Italic"] = { ascent: 683, descent: -217, capHeight: 653, xHeight: 441 }, t["Times-BoldItalic"] = { ascent: 683, descent: -217, capHeight: 669, xHeight: 462 }, t.Symbol = { ascent: Math.NaN, descent: Math.NaN, capHeight: Math.NaN, xHeight: Math.NaN }, t.ZapfDingbats = { ascent: Math.NaN, descent: Math.NaN, capHeight: Math.NaN, xHeight: Math.NaN };
      });
      fw = 1;
      Ml = 2;
      Hl = 4;
      Zu = 8;
      Vr = 16;
      Kr = 32;
      cw = 64;
      Xr = 1;
      Ol = 2;
      hw = 8;
      uw = 32;
      dw = 64;
      pw = 128;
      Wf = 256;
      mw = class {
        static {
          p(this, "GlyfTable");
        }
        constructor({ glyfTable: e, isGlyphLocationsLong: n, locaTable: s, numGlyphs: i }) {
          this.glyphs = [];
          const a = new DataView(s.buffer, s.byteOffset, s.byteLength), r = new DataView(e.buffer, e.byteOffset, e.byteLength), o = n ? 4 : 2;
          let l = n ? a.getUint32(0) : 2 * a.getUint16(0), f = 0;
          for (let c = 0; c < i; c++) {
            f += o;
            const h = n ? a.getUint32(f) : 2 * a.getUint16(f);
            if (h === l) {
              this.glyphs.push(new tl({}));
              continue;
            }
            const u = tl.parse(l, r);
            this.glyphs.push(u), l = h;
          }
        }
        getSize() {
          return Math.sumPrecise(this.glyphs.map((e) => e.getSize() + 3 & -4));
        }
        write() {
          const e = this.getSize(), n = new DataView(new ArrayBuffer(e)), s = e > 131070, i = s ? 4 : 2, a = new DataView(new ArrayBuffer((this.glyphs.length + 1) * i));
          s ? a.setUint32(0, 0) : a.setUint16(0, 0);
          let r = 0, o = 0;
          for (const l of this.glyphs) r += l.write(r, n), r = r + 3 & -4, o += i, s ? a.setUint32(o, r) : a.setUint16(o, r >> 1);
          return { isLocationLong: s, loca: new Uint8Array(a.buffer), glyf: new Uint8Array(n.buffer) };
        }
        scale(e) {
          for (let n = 0, s = this.glyphs.length; n < s; n++) this.glyphs[n].scale(e[n]);
        }
      };
      tl = class _tl {
        static {
          p(this, "Glyph");
        }
        constructor({ header: e = null, simple: n = null, composites: s = null }) {
          this.header = e, this.simple = n, this.composites = s;
        }
        static parse(e, n) {
          const [s, i] = yh.parse(e, n);
          if (e += s, i.numberOfContours < 0) {
            const r = [];
            for (; ; ) {
              const [o, l] = vh.parse(e, n);
              if (e += o, r.push(l), !(l.flags & uw)) break;
            }
            return new _tl({ header: i, composites: r });
          }
          const a = jh.parse(e, n, i.numberOfContours);
          return new _tl({ header: i, simple: a });
        }
        getSize() {
          if (!this.header) return 0;
          const e = this.simple ? this.simple.getSize() : Math.sumPrecise(this.composites.map((n) => n.getSize()));
          return this.header.getSize() + e;
        }
        write(e, n) {
          if (!this.header) return 0;
          const s = e;
          if (e += this.header.write(e, n), this.simple) e += this.simple.write(e, n);
          else for (const i of this.composites) e += i.write(e, n);
          return e - s;
        }
        scale(e) {
          if (!this.header) return;
          const n = (this.header.xMin + this.header.xMax) / 2;
          if (this.header.scale(n, e), this.simple) this.simple.scale(n, e);
          else for (const s of this.composites) s.scale(n, e);
        }
      };
      yh = class _yh {
        static {
          p(this, "GlyphHeader");
        }
        constructor({ numberOfContours: e, xMin: n, yMin: s, xMax: i, yMax: a }) {
          this.numberOfContours = e, this.xMin = n, this.yMin = s, this.xMax = i, this.yMax = a;
        }
        static parse(e, n) {
          return [10, new _yh({ numberOfContours: n.getInt16(e), xMin: n.getInt16(e + 2), yMin: n.getInt16(e + 4), xMax: n.getInt16(e + 6), yMax: n.getInt16(e + 8) })];
        }
        getSize() {
          return 10;
        }
        write(e, n) {
          return n.setInt16(e, this.numberOfContours), n.setInt16(e + 2, this.xMin), n.setInt16(e + 4, this.yMin), n.setInt16(e + 6, this.xMax), n.setInt16(e + 8, this.yMax), 10;
        }
        scale(e, n) {
          this.xMin = Math.round(e + (this.xMin - e) * n), this.xMax = Math.round(e + (this.xMax - e) * n);
        }
      };
      gw = class {
        static {
          p(this, "Contour");
        }
        constructor({ flags: e, xCoordinates: n, yCoordinates: s }) {
          this.xCoordinates = n, this.yCoordinates = s, this.flags = e;
        }
      };
      jh = class _jh {
        static {
          p(this, "SimpleGlyph");
        }
        constructor({ contours: e, instructions: n }) {
          this.contours = e, this.instructions = n;
        }
        static parse(e, n, s) {
          const i = [];
          for (let b = 0; b < s; b++) {
            const w = n.getUint16(e);
            e += 2, i.push(w);
          }
          const a = i[s - 1] + 1, r = n.getUint16(e);
          e += 2;
          const o = new Uint8Array(n).slice(e, e + r);
          e += r;
          const l = [];
          for (let b = 0; b < a; e++, b++) {
            let w = n.getUint8(e);
            if (l.push(w), w & Zu) {
              const x = n.getUint8(++e);
              w ^= Zu;
              for (let y = 0; y < x; y++) l.push(w);
              b += x;
            }
          }
          const f = [];
          let c = [], h = [], u = [];
          const d = [];
          let m = 0, g = 0;
          for (let b = 0; b < a; b++) {
            const w = l[b];
            if (w & Ml) {
              const x = n.getUint8(e++);
              g += w & Vr ? x : -x, c.push(g);
            } else w & Vr || (g += n.getInt16(e), e += 2), c.push(g);
            i[m] === b && (m++, f.push(c), c = []);
          }
          g = 0, m = 0;
          for (let b = 0; b < a; b++) {
            const w = l[b];
            if (w & Hl) {
              const x = n.getUint8(e++);
              g += w & Kr ? x : -x, h.push(g);
            } else w & Kr || (g += n.getInt16(e), e += 2), h.push(g);
            u.push(w & fw | w & cw), i[m] === b && (c = f[m], m++, d.push(new gw({ flags: u, xCoordinates: c, yCoordinates: h })), h = [], u = []);
          }
          return new _jh({ contours: d, instructions: o });
        }
        getSize() {
          let e = this.contours.length * 2 + 2 + this.instructions.length, n = 0, s = 0;
          for (const i of this.contours) {
            e += i.flags.length;
            for (let a = 0, r = i.xCoordinates.length; a < r; a++) {
              const o = i.xCoordinates[a], l = i.yCoordinates[a];
              let f = Math.abs(o - n);
              f > 255 ? e += 2 : f > 0 && (e += 1), n = o, f = Math.abs(l - s), f > 255 ? e += 2 : f > 0 && (e += 1), s = l;
            }
          }
          return e;
        }
        write(e, n) {
          const s = e, i = [], a = [], r = [];
          let o = 0, l = 0;
          for (const f of this.contours) {
            for (let c = 0, h = f.xCoordinates.length; c < h; c++) {
              let u = f.flags[c];
              const d = f.xCoordinates[c];
              let m = d - o;
              if (m === 0) u |= Vr, i.push(0);
              else {
                const b = Math.abs(m);
                b <= 255 ? (u |= m >= 0 ? Ml | Vr : Ml, i.push(b)) : i.push(m);
              }
              o = d;
              const g = f.yCoordinates[c];
              if (m = g - l, m === 0) u |= Kr, a.push(0);
              else {
                const b = Math.abs(m);
                b <= 255 ? (u |= m >= 0 ? Hl | Kr : Hl, a.push(b)) : a.push(m);
              }
              l = g, r.push(u);
            }
            n.setUint16(e, i.length - 1), e += 2;
          }
          n.setUint16(e, this.instructions.length), e += 2, this.instructions.length && (new Uint8Array(n.buffer, 0, n.buffer.byteLength).set(this.instructions, e), e += this.instructions.length);
          for (const f of r) n.setUint8(e++, f);
          for (let f = 0, c = i.length; f < c; f++) {
            const h = i[f], u = r[f];
            u & Ml ? n.setUint8(e++, h) : u & Vr || (n.setInt16(e, h), e += 2);
          }
          for (let f = 0, c = a.length; f < c; f++) {
            const h = a[f], u = r[f];
            u & Hl ? n.setUint8(e++, h) : u & Kr || (n.setInt16(e, h), e += 2);
          }
          return e - s;
        }
        scale(e, n) {
          for (const s of this.contours) if (s.xCoordinates.length !== 0) for (let i = 0, a = s.xCoordinates.length; i < a; i++) s.xCoordinates[i] = Math.round(e + (s.xCoordinates[i] - e) * n);
        }
      };
      vh = class _vh {
        static {
          p(this, "CompositeGlyph");
        }
        constructor({ flags: e, glyphIndex: n, argument1: s, argument2: i, transf: a, instructions: r }) {
          this.flags = e, this.glyphIndex = n, this.argument1 = s, this.argument2 = i, this.transf = a, this.instructions = r;
        }
        static parse(e, n) {
          const s = e, i = [];
          let a = n.getUint16(e);
          const r = n.getUint16(e + 2);
          e += 4;
          let o, l;
          a & Xr ? (a & Ol ? (o = n.getInt16(e), l = n.getInt16(e + 2)) : (o = n.getUint16(e), l = n.getUint16(e + 2)), e += 4, a ^= Xr) : (a & Ol ? (o = n.getInt8(e), l = n.getInt8(e + 1)) : (o = n.getUint8(e), l = n.getUint8(e + 1)), e += 2), a & hw ? (i.push(n.getUint16(e)), e += 2) : a & dw ? (i.push(n.getUint16(e), n.getUint16(e + 2)), e += 4) : a & pw && (i.push(n.getUint16(e), n.getUint16(e + 2), n.getUint16(e + 4), n.getUint16(e + 6)), e += 8);
          let f = null;
          if (a & Wf) {
            const c = n.getUint16(e);
            e += 2, f = new Uint8Array(n).slice(e, e + c), e += c;
          }
          return [e - s, new _vh({ flags: a, glyphIndex: r, argument1: o, argument2: l, transf: i, instructions: f })];
        }
        getSize() {
          let e = 4 + this.transf.length * 2;
          return this.flags & Wf && (e += 2 + this.instructions.length), e += 2, this.flags & 2 ? this.argument1 >= -128 && this.argument1 <= 127 && this.argument2 >= -128 && this.argument2 <= 127 || (e += 2) : this.argument1 >= 0 && this.argument1 <= 255 && this.argument2 >= 0 && this.argument2 <= 255 || (e += 2), e;
        }
        write(e, n) {
          const s = e;
          return this.flags & Ol ? this.argument1 >= -128 && this.argument1 <= 127 && this.argument2 >= -128 && this.argument2 <= 127 || (this.flags |= Xr) : this.argument1 >= 0 && this.argument1 <= 255 && this.argument2 >= 0 && this.argument2 <= 255 || (this.flags |= Xr), n.setUint16(e, this.flags), n.setUint16(e + 2, this.glyphIndex), e += 4, this.flags & Xr ? (this.flags & Ol ? (n.setInt16(e, this.argument1), n.setInt16(e + 2, this.argument2)) : (n.setUint16(e, this.argument1), n.setUint16(e + 2, this.argument2)), e += 4) : (n.setUint8(e, this.argument1), n.setUint8(e + 1, this.argument2), e += 2), this.flags & Wf && (n.setUint16(e, this.instructions.length), e += 2, this.instructions.length && (new Uint8Array(n.buffer, 0, n.buffer.byteLength).set(this.instructions, e), e += this.instructions.length)), e - s;
        }
        scale(e, n) {
        }
      };
      p(Ll, "writeInt16");
      p($f, "writeInt32");
      p(bw, "writeData");
      ed = 12;
      td = 16;
      Vo = class _Vo {
        static {
          p(this, "OpenTypeFileBuilder");
        }
        constructor(e) {
          this.sfnt = e, this.tables = /* @__PURE__ */ Object.create(null);
        }
        static getSearchParams(e, n) {
          let s = 1, i = 0;
          for (; (s ^ e) > s; ) s <<= 1, i++;
          const a = s * n;
          return { range: a, entry: i, rangeShift: n * e - a };
        }
        toArray() {
          let e = this.sfnt;
          const n = this.tables, s = Object.keys(n);
          s.sort();
          const i = s.length;
          let a, r, o, l, f, c = ed + i * td;
          const h = [c];
          for (a = 0; a < i; a++) {
            l = n[s[a]];
            const m = (l.length + 3 & -4) >>> 0;
            c += m, h.push(c);
          }
          const u = new Uint8Array(c);
          for (a = 0; a < i; a++) l = n[s[a]], bw(u, h[a], l);
          e === "true" && (e = vn(65536)), u[0] = e.charCodeAt(0) & 255, u[1] = e.charCodeAt(1) & 255, u[2] = e.charCodeAt(2) & 255, u[3] = e.charCodeAt(3) & 255, Ll(u, 4, i);
          const d = _Vo.getSearchParams(i, 16);
          for (Ll(u, 6, d.range), Ll(u, 8, d.entry), Ll(u, 10, d.rangeShift), c = ed, a = 0; a < i; a++) {
            f = s[a], u[c] = f.charCodeAt(0) & 255, u[c + 1] = f.charCodeAt(1) & 255, u[c + 2] = f.charCodeAt(2) & 255, u[c + 3] = f.charCodeAt(3) & 255;
            let m = 0;
            for (r = h[a], o = h[a + 1]; r < o; r += 4) {
              const g = yt(u, r);
              m = m + g >>> 0;
            }
            $f(u, c + 4, m), $f(u, c + 8, h[a]), $f(u, c + 12, n[f].length), c += td;
          }
          return u;
        }
        addTable(e, n) {
          if (e in this.tables) throw new Error("Table " + e + " already exists");
          this.tables[e] = n;
        }
      };
      Gn = { vmoveto: [4], rlineto: [5], hlineto: [6], vlineto: [7], rrcurveto: [8], flex: [12, 35], endchar: [14], rmoveto: [21], hmoveto: [22], vhcurveto: [30], hvcurveto: [31] };
      xw = class {
        static {
          p(this, "Type1CharString");
        }
        width = 0;
        lsb = 0;
        flexing = false;
        output = [];
        stack = [];
        convert(e, n, s) {
          const i = e.length;
          let a = false, r, o, l;
          for (let f = 0; f < i; f++) {
            let c = e[f];
            if (c < 32) {
              switch (c === 12 && (c = (c << 8) + e[++f]), c) {
                case 1: {
                  this.stack = [];
                  break;
                }
                case 3: {
                  this.stack = [];
                  break;
                }
                case 4:
                  if (this.flexing) {
                    if (this.stack.length < 1) {
                      a = true;
                      break;
                    }
                    const g = this.stack.pop();
                    this.stack.push(0, g);
                    break;
                  }
                  a = this.executeCommand(1, Gn.vmoveto);
                  break;
                case 5:
                  a = this.executeCommand(2, Gn.rlineto);
                  break;
                case 6:
                  a = this.executeCommand(1, Gn.hlineto);
                  break;
                case 7:
                  a = this.executeCommand(1, Gn.vlineto);
                  break;
                case 8:
                  a = this.executeCommand(6, Gn.rrcurveto);
                  break;
                case 9:
                  this.stack = [];
                  break;
                case 10:
                  if (this.stack.length < 1) {
                    a = true;
                    break;
                  }
                  if (l = this.stack.pop(), !n[l]) {
                    a = true;
                    break;
                  }
                  a = this.convert(n[l], n, s);
                  break;
                case 11:
                  return a;
                case 13:
                  if (this.stack.length < 2) {
                    a = true;
                    break;
                  }
                  r = this.stack.pop(), o = this.stack.pop(), this.lsb = o, this.width = r, this.stack.push(r, o), a = this.executeCommand(2, Gn.hmoveto);
                  break;
                case 14:
                  this.output.push(Gn.endchar[0]);
                  break;
                case 21:
                  if (this.flexing) break;
                  a = this.executeCommand(2, Gn.rmoveto);
                  break;
                case 22:
                  if (this.flexing) {
                    this.stack.push(0);
                    break;
                  }
                  a = this.executeCommand(1, Gn.hmoveto);
                  break;
                case 30:
                  a = this.executeCommand(4, Gn.vhcurveto);
                  break;
                case 31:
                  a = this.executeCommand(4, Gn.hvcurveto);
                  break;
                case 3072:
                  this.stack = [];
                  break;
                case 3073: {
                  this.stack = [];
                  break;
                }
                case 3074: {
                  this.stack = [];
                  break;
                }
                case 3078:
                  if (s) {
                    const g = this.stack.at(-5);
                    this.seac = this.stack.splice(-4, 4), this.seac[0] += this.lsb - g, a = this.executeCommand(0, Gn.endchar);
                  } else a = this.executeCommand(4, Gn.endchar);
                  break;
                case 3079:
                  if (this.stack.length < 4) {
                    a = true;
                    break;
                  }
                  this.stack.pop(), r = this.stack.pop();
                  const h = this.stack.pop();
                  o = this.stack.pop(), this.lsb = o, this.width = r, this.stack.push(r, o, h), a = this.executeCommand(3, Gn.rmoveto);
                  break;
                case 3084:
                  if (this.stack.length < 2) {
                    a = true;
                    break;
                  }
                  const u = this.stack.pop(), d = this.stack.pop();
                  this.stack.push(d / u);
                  break;
                case 3088:
                  if (this.stack.length < 2) {
                    a = true;
                    break;
                  }
                  l = this.stack.pop();
                  const m = this.stack.pop();
                  if (l === 0 && m === 3) {
                    const g = this.stack.splice(-17, 17);
                    this.stack.push(g[2] + g[0], g[3] + g[1], g[4], g[5], g[6], g[7], g[8], g[9], g[10], g[11], g[12], g[13], g[14]), a = this.executeCommand(13, Gn.flex, true), this.flexing = false, this.stack.push(g[15], g[16]);
                  } else l === 1 && m === 0 && (this.flexing = true);
                  break;
                case 3089:
                  break;
                case 3105:
                  this.stack = [];
                  break;
                default:
                  F('Unknown type 1 charstring command of "' + c + '"');
                  break;
              }
              if (a) break;
              continue;
            } else c <= 246 ? c -= 139 : c <= 250 ? c = (c - 247) * 256 + e[++f] + 108 : c <= 254 ? c = -((c - 251) * 256) - e[++f] - 108 : c = (e[++f] & 255) << 24 | (e[++f] & 255) << 16 | (e[++f] & 255) << 8 | (e[++f] & 255) << 0;
            this.stack.push(c);
          }
          return a;
        }
        executeCommand(e, n, s) {
          const i = this.stack.length;
          if (e > i) return true;
          const a = i - e;
          for (let r = a; r < i; r++) {
            let o = this.stack[r];
            Number.isInteger(o) ? this.output.push(28, o >> 8 & 255, o & 255) : (o = 65536 * o | 0, this.output.push(255, o >> 24 & 255, o >> 16 & 255, o >> 8 & 255, o & 255));
          }
          return this.output.push(...n), s ? this.stack.splice(a, e) : this.stack.length = 0, false;
        }
      };
      nd = 55665;
      kw = 4330;
      p(Xs, "isHexDigit");
      p(sd, "decrypt");
      p(yw, "decryptAscii");
      p(id, "isSpecial");
      ad = class {
        static {
          p(this, "Type1Parser");
        }
        constructor(e, n, s) {
          if (n) {
            const i = e.getBytes(), a = !((Xs(i[0]) || ls(i[0])) && Xs(i[1]) && Xs(i[2]) && Xs(i[3]) && Xs(i[4]) && Xs(i[5]) && Xs(i[6]) && Xs(i[7]));
            e = new jt(a ? sd(i, nd, 4) : yw(i, nd, 4));
          }
          this.seacAnalysisEnabled = !!s, this.stream = e, this.nextChar();
        }
        readNumberArray() {
          this.getToken();
          const e = [];
          for (; ; ) {
            const n = this.getToken();
            if (n === null || n === "]" || n === "}") break;
            e.push(parseFloat(n || 0));
          }
          return e;
        }
        readNumber() {
          const e = this.getToken();
          return parseFloat(e || 0);
        }
        readInt() {
          const e = this.getToken();
          return parseInt(e || 0, 10) | 0;
        }
        readBoolean() {
          return this.getToken() === "true" ? 1 : 0;
        }
        nextChar() {
          return this.currentChar = this.stream.getByte();
        }
        prevChar() {
          return this.stream.skip(-2), this.currentChar = this.stream.getByte();
        }
        getToken() {
          let e = false, n = this.currentChar;
          for (; ; ) {
            if (n === -1) return null;
            if (e) (n === 10 || n === 13) && (e = false);
            else if (n === 37) e = true;
            else if (!ls(n)) break;
            n = this.nextChar();
          }
          if (id(n)) return this.nextChar(), String.fromCharCode(n);
          let s = "";
          do
            s += String.fromCharCode(n), n = this.nextChar();
          while (n >= 0 && !ls(n) && !id(n));
          return s;
        }
        readCharStrings(e, n) {
          return n === -1 ? e : sd(e, kw, n);
        }
        extractFontProgram(e) {
          const n = this.stream, s = [], i = [], a = /* @__PURE__ */ Object.create(null);
          a.lenIV = 4;
          const r = { subrs: [], charstrings: [], properties: { privateData: a } };
          let o, l, f, c;
          for (; (o = this.getToken()) !== null; ) if (o === "/") switch (o = this.getToken(), o) {
            case "CharStrings":
              for (this.getToken(), this.getToken(), this.getToken(), this.getToken(); o = this.getToken(), !(o === null || o === "end"); ) {
                if (o !== "/") continue;
                const u = this.getToken();
                l = this.readInt(), this.getToken(), f = l > 0 ? n.getBytes(l) : new Uint8Array(0), c = r.properties.privateData.lenIV;
                const d = this.readCharStrings(f, c);
                this.nextChar(), o = this.getToken(), o === "noaccess" ? this.getToken() : o === "/" && this.prevChar(), i.push({ glyph: u, encoded: d });
              }
              break;
            case "Subrs":
              for (this.readInt(), this.getToken(); this.getToken() === "dup"; ) {
                const u = this.readInt();
                l = this.readInt(), this.getToken(), f = l > 0 ? n.getBytes(l) : new Uint8Array(0), c = r.properties.privateData.lenIV;
                const d = this.readCharStrings(f, c);
                this.nextChar(), o = this.getToken(), o === "noaccess" && this.getToken(), s[u] = d;
              }
              break;
            case "BlueValues":
            case "OtherBlues":
            case "FamilyBlues":
            case "FamilyOtherBlues":
              const h = this.readNumberArray();
              h.length > 0 && h.length % 2;
              break;
            case "StemSnapH":
            case "StemSnapV":
              r.properties.privateData[o] = this.readNumberArray();
              break;
            case "StdHW":
            case "StdVW":
              r.properties.privateData[o] = this.readNumberArray()[0];
              break;
            case "BlueShift":
            case "lenIV":
            case "BlueFuzz":
            case "BlueScale":
            case "LanguageGroup":
              r.properties.privateData[o] = this.readNumber();
              break;
            case "ExpansionFactor":
              r.properties.privateData[o] = this.readNumber() || 0.06;
              break;
            case "ForceBold":
              r.properties.privateData[o] = this.readBoolean();
              break;
          }
          for (const { encoded: h, glyph: u } of i) {
            const d = new xw(), m = d.convert(h, s, this.seacAnalysisEnabled);
            let g = d.output;
            m && (g = [14]);
            const b = { glyphName: u, charstring: g, width: d.width, lsb: d.lsb, seac: d.seac };
            if (u === ".notdef" ? r.charstrings.unshift(b) : r.charstrings.push(b), e.builtInEncoding) {
              const w = e.builtInEncoding.indexOf(u);
              w > -1 && e.widths[w] === void 0 && w >= e.firstChar && w <= e.lastChar && (e.widths[w] = d.width);
            }
          }
          return r;
        }
        extractFontHeader(e) {
          let n;
          for (; (n = this.getToken()) !== null; ) if (n === "/") switch (n = this.getToken(), n) {
            case "FontMatrix":
              const s = this.readNumberArray();
              e.fontMatrix = s;
              break;
            case "Encoding":
              const i = this.getToken();
              let a;
              if (!/^\d+$/.test(i)) a = Ur(i);
              else {
                a = [];
                const o = parseInt(i, 10) | 0;
                this.getToken();
                for (let l = 0; l < o; l++) {
                  for (n = this.getToken(); n !== "dup" && n !== "def"; ) if (n = this.getToken(), n === null) return;
                  if (n === "def") break;
                  const f = this.readInt();
                  this.getToken();
                  const c = this.getToken();
                  a[f] = c, this.getToken();
                }
              }
              e.builtInEncoding = a;
              break;
            case "FontBBox":
              const r = this.readNumberArray();
              e.ascent = Math.max(r[3], r[1]), e.descent = Math.min(r[1], r[3]), e.ascentScaled = true;
              break;
          }
        }
      };
      p(rd, "findBlock");
      p(jw, "getHeaderBlock");
      p(vw, "getEexecBlock");
      qw = class {
        static {
          p(this, "Type1Font");
        }
        constructor(e, n, s) {
          let a = s.length1;
          s.length2;
          let r = n.peekBytes(6);
          const o = r[0] === 128 && r[1] === 1;
          o && (n.skip(6), a = r[5] << 24 | r[4] << 16 | r[3] << 8 | r[2]);
          const l = jw(n, a);
          new ad(l.stream, false, Ka).extractFontHeader(s), o && (r = n.getBytes(6), r[5] << 24 | r[4] << 16 | r[3] << 8 | r[2]);
          const c = vw(n), u = new ad(c.stream, true, Ka).extractFontProgram(s);
          for (const b in u.properties) s[b] = u.properties[b];
          const d = u.charstrings, m = this.getType2Charstrings(d), g = this.getType2Subrs(u.subrs);
          this.charstrings = d, this.data = this.wrap(e, m, this.charstrings, g, s), this.seacs = this.getSeacs(u.charstrings);
        }
        get numGlyphs() {
          return this.charstrings.length + 1;
        }
        getCharset() {
          const e = [".notdef"];
          for (const { glyphName: n } of this.charstrings) e.push(n);
          return e;
        }
        getGlyphMapping(e) {
          const n = this.charstrings;
          if (e.composite) {
            const o = /* @__PURE__ */ Object.create(null);
            for (let l = 0, f = n.length; l < f; l++) {
              const c = e.cMap.charCodeOf(l);
              o[c] = l + 1;
            }
            return o;
          }
          const s = [".notdef"];
          let i, a;
          for (a = 0; a < n.length; a++) s.push(n[a].glyphName);
          const r = e.builtInEncoding;
          if (r) {
            i = /* @__PURE__ */ Object.create(null);
            for (const o in r) a = s.indexOf(r[o]), a >= 0 && (i[o] = a);
          }
          return Uu(e, i, s);
        }
        hasGlyphId(e) {
          return e < 0 || e >= this.numGlyphs ? false : e === 0 ? true : this.charstrings[e - 1].charstring.length > 0;
        }
        getSeacs(e) {
          const n = [];
          for (let s = 0, i = e.length; s < i; s++) {
            const a = e[s];
            a.seac && (n[s + 1] = a.seac);
          }
          return n;
        }
        getType2Charstrings(e) {
          const n = [];
          for (const s of e) n.push(s.charstring);
          return n;
        }
        getType2Subrs(e) {
          let n = 0;
          const s = e.length;
          s < 1133 ? n = 107 : s < 33769 ? n = 1131 : n = 32768;
          const i = [];
          let a;
          for (a = 0; a < n; a++) i.push([11]);
          for (a = 0; a < s; a++) i.push(e[a]);
          return i;
        }
        wrap(e, n, s, i, a) {
          const r = new Wu();
          r.header = new $u(1, 0, 4, 4), r.names = [e];
          const o = new Go();
          o.setByName("version", 391), o.setByName("Notice", 392), o.setByName("FullName", 393), o.setByName("FamilyName", 394), o.setByName("Weight", 395), o.setByName("Encoding", null), o.setByName("FontMatrix", a.fontMatrix), o.setByName("FontBBox", a.bbox), o.setByName("charset", null), o.setByName("CharStrings", null), o.setByName("Private", null), r.topDict = o;
          const l = new Mf();
          l.add("Version 0.11"), l.add("See original notice"), l.add(e), l.add(e), l.add("Medium"), r.strings = l, r.globalSubrIndex = new Oi();
          const f = n.length, c = [".notdef"];
          let h, u;
          for (h = 0; h < f; h++) {
            const x = s[h].glyphName;
            _l.indexOf(x) === -1 && l.add(x), c.push(x);
          }
          r.charset = new Gr(false, 0, c);
          const d = new Oi();
          for (d.add([139, 14]), h = 0; h < f; h++) d.add(n[h]);
          r.charStrings = d;
          const m = new Wo();
          m.setByName("Subrs", null);
          const g = ["BlueValues", "OtherBlues", "FamilyBlues", "FamilyOtherBlues", "StemSnapH", "StemSnapV", "BlueShift", "BlueFuzz", "BlueScale", "LanguageGroup", "ExpansionFactor", "ForceBold", "StdHW", "StdVW"];
          for (h = 0, u = g.length; h < u; h++) {
            const x = g[h];
            if (!(x in a.privateData)) continue;
            const y = a.privateData[x];
            if (Array.isArray(y)) for (let j = y.length - 1; j > 0; j--) y[j] -= y[j - 1];
            m.setByName(x, y);
          }
          r.topDict.privateDict = m;
          const b = new Oi();
          for (h = 0, u = i.length; h < u; h++) b.add(i[h]);
          return m.subrsIndex = b, new $o(r).compile();
        }
      };
      bi = [[57344, 63743], [1048576, 1114109]];
      fa = 1e3;
      Aw = ["ascent", "bbox", "black", "bold", "cssFontInfo", "data", "defaultVMetrics", "defaultWidth", "descent", "disableFontFace", "fallbackName", "fontExtraProperties", "fontMatrix", "isInvalidPDFjsFont", "isType3Font", "italic", "loadedName", "mimetype", "missingFile", "name", "remeasure", "systemFontInfo", "vertical"];
      Sw = ["cMap", "composite", "defaultEncoding", "differences", "isMonospace", "isSerifFont", "isSymbolicFont", "seacMap", "subtype", "toFontChar", "toUnicode", "type", "vmetrics", "widths"];
      p(od, "adjustWidths");
      p(Cw, "adjustTrueTypeToUnicode");
      p(Iw, "adjustType1ToUnicode");
      p(ld, "amendFallbackToUnicode");
      Tw = class {
        static {
          p(this, "fonts_Glyph");
        }
        constructor(e, n, s, i, a, r, o, l, f) {
          this.originalCharCode = e, this.fontChar = n, this.unicode = s, this.accent = i, this.width = a, this.vmetric = r, this.operatorListId = o, this.isSpace = l, this.isInFont = f;
        }
        get category() {
          return fe(this, "category", Hb(this.unicode), true);
        }
      };
      p(Ya, "int16");
      p(Yr, "writeSignedInt16");
      p(fs, "signedInt16");
      p(Ew, "writeUint32");
      p(Fw, "int32");
      p(wt, "string16");
      p(ca, "safeString16");
      p(Bw, "isTrueTypeFile");
      p(fd, "isTrueTypeCollectionFile");
      p(Rw, "isOpenTypeFile");
      p(_w, "isType1File");
      p(Pw, "isCFFFile");
      p(Dw, "getFontFileType");
      p(Nl, "applyStandardFontGlyphMap");
      p(Vf, "buildToFontChar");
      p(Mw, "isMacNameRecord");
      p(cd, "isWinNameRecord");
      p(Kf, "convertCidString");
      p(hd, "adjustMapping");
      p(Hw, "getRanges");
      p(ud, "createCmapTable");
      p(Ow, "validateOS2Table");
      p(dd, "createOS2Table");
      p(pd, "createPostTable");
      p(Lw, "createPostscriptName");
      p(Xf, "createNameTable");
      md = class {
        static {
          p(this, "Font");
        }
        #e = /* @__PURE__ */ new Map();
        #t = /* @__PURE__ */ new Map();
        charProcOperatorList;
        constructor(e, n, s, i) {
          this.name = e, this.psName = null, this.mimetype = null, this.disableFontFace = i.disableFontFace, this.fontExtraProperties = i.fontExtraProperties, this.loadedName = s.loadedName, this.isType3Font = s.isType3Font, this.missingFile = false, this.cssFontInfo = s.cssFontInfo;
          let a = !!(s.flags & Ds.Serif);
          if (!a && !s.isSimulatedFlags) {
            const c = Wr(), h = Of(), u = Lf();
            for (const d of e.split("+")) {
              let m = Hi(d);
              if (m = c[m] || h[m] || m, m = m.split("-", 1)[0], u[m]) {
                a = true;
                break;
              }
            }
          }
          this.isSerifFont = a, this.isSymbolicFont = !!(s.flags & Ds.Symbolic), this.isMonospace = !!(s.flags & Ds.FixedPitch);
          let { type: r, subtype: o } = s;
          this.type = r, this.subtype = o, this.systemFontInfo = s.systemFontInfo;
          const l = e.match(/^InvalidPDFjsFont_(.*)_\d+$/);
          if (this.isInvalidPDFjsFont = !!l, this.isInvalidPDFjsFont ? this.fallbackName = l[1] : this.isMonospace ? this.fallbackName = "monospace" : this.isSerifFont ? this.fallbackName = "serif" : this.fallbackName = "sans-serif", this.systemFontInfo?.guessFallback && (this.systemFontInfo.guessFallback = false, this.systemFontInfo.css += `,${this.fallbackName}`), this.differences = s.differences, this.widths = s.widths, this.defaultWidth = s.defaultWidth, this.composite = s.composite, this.cMap = s.cMap, this.capHeight = s.capHeight / fa, this.ascent = s.ascent / fa, this.descent = s.descent / fa, this.lineHeight = this.ascent - this.descent, this.fontMatrix = s.fontMatrix, this.bbox = s.bbox, this.defaultEncoding = s.defaultEncoding, this.toUnicode = s.toUnicode, this.toFontChar = [], s.type === "Type3") {
            for (let c = 0; c < 256; c++) this.toFontChar[c] = this.differences[c] || s.defaultEncoding[c];
            return;
          }
          if (this.cidEncoding = s.cidEncoding || "", this.vertical = !!s.vertical, this.vertical && (this.vmetrics = s.vmetrics, this.defaultVMetrics = s.defaultVMetrics), !n || n.isEmpty) {
            n && F('Font file is empty in "' + e + '" (' + this.loadedName + ")"), this.fallbackToSystemFont(s);
            return;
          }
          [r, o] = Dw(n, s), (r !== this.type || o !== this.subtype) && Ke(`Inconsistent font file Type/SubType, expected: ${this.type}/${this.subtype} but found: ${r}/${o}.`);
          let f;
          try {
            switch (r) {
              case "MMType1":
                Ke("MMType1 font (" + e + "), falling back to Type1.");
              case "Type1":
              case "CIDFontType0":
                this.mimetype = "font/opentype";
                const c = o === "Type1C" || o === "CIDFontType0C" ? new zf(n, s) : new qw(e, n, s);
                od(s), f = this.convert(e, c, s);
                break;
              case "OpenType":
              case "TrueType":
              case "CIDFontType2":
                this.mimetype = "font/opentype", f = this.checkAndRepair(e, n, s), od(s), this.isOpenType && (r = "OpenType");
                break;
              default:
                throw new Q(`Font ${r} is not supported`);
            }
          } catch (c) {
            F(c), this.fallbackToSystemFont(s);
            return;
          }
          ld(s), this.data = f, this.type = r, this.subtype = o, this.fontMatrix = s.fontMatrix, this.widths = s.widths, this.defaultWidth = s.defaultWidth, this.toUnicode = s.toUnicode, this.seacMap = s.seacMap;
        }
        get renderer() {
          const e = rw.create(this, Ka);
          return fe(this, "renderer", e);
        }
        #n(e) {
          const n = /* @__PURE__ */ Object.create(null);
          for (const s of e) {
            const i = this[s];
            i !== void 0 && (n[s] = i);
          }
          return n;
        }
        exportData() {
          return { buffer: Tb(this.#n(Aw)), charProcOperatorList: this.charProcOperatorList, extra: this.fontExtraProperties ? this.#n(Sw) : void 0 };
        }
        fallbackToSystemFont(e) {
          this.missingFile = true;
          const { name: n, type: s } = this;
          let i = Hi(n);
          const a = Wr(), r = Of(), o = !!a[i], l = !!(r[i] && a[r[i]]);
          i = a[i] || r[i] || i;
          const c = lw()[i];
          c && (isNaN(this.ascent) && (this.ascent = c.ascent / fa), isNaN(this.descent) && (this.descent = c.descent / fa), isNaN(this.capHeight) && (this.capHeight = c.capHeight / fa)), this.bold = /bold/gi.test(i), this.italic = /oblique|italic/gi.test(i), this.black = /Black/g.test(n);
          const h = /Narrow/g.test(n);
          if (this.remeasure = (!o || h) && Object.keys(this.widths).length > 0, (o || l) && s === "CIDFontType2" && this.cidEncoding.startsWith("Identity-")) {
            const u = e.cidToGidMap, d = [];
            if (Nl(d, Xu()), /Arial-?Black/i.test(n) ? Nl(d, Jb()) : /Calibri/i.test(n) && Nl(d, Zb()), u) {
              for (const m in d) {
                const g = d[m];
                u[g] !== void 0 && (d[+m] = u[g]);
              }
              u.length !== this.toUnicode.length && e.hasIncludedToUnicodeMap && this.toUnicode instanceof ys && this.toUnicode.forEach(function(m, g) {
                const b = d[m];
                u[b] === void 0 && (d[+m] = g);
              });
            }
            this.toUnicode instanceof ys || this.toUnicode.forEach(function(m, g) {
              d[+m] = g;
            }), this.toFontChar = d, this.toUnicode = new $r(d);
          } else if (/Symbol/i.test(i)) this.toFontChar = Vf(Bf, Ks(), this.differences);
          else if (/Dingbats/i.test(i)) this.toFontChar = Vf(Rf, Rb(), this.differences);
          else if (o || l) {
            const u = Vf(this.defaultEncoding, Ks(), this.differences);
            s === "CIDFontType2" && !this.cidEncoding.startsWith("Identity-") && !(this.toUnicode instanceof ys) && this.toUnicode.forEach(function(d, m) {
              u[+d] = m;
            }), this.toFontChar = u;
          } else {
            const u = Ks(), d = [];
            this.toUnicode.forEach((m, g) => {
              if (!this.composite) {
                const b = this.differences[m] || this.defaultEncoding[m], w = Va(b, u);
                w !== -1 && (g = w);
              }
              d[+m] = g;
            }), this.composite && this.toUnicode instanceof ys && /Tahoma|Verdana/i.test(n) && Nl(d, Xu()), this.toFontChar = d;
          }
          ld(e), this.loadedName = i.split("-", 1)[0];
        }
        checkAndRepair(e, n, s) {
          const i = ["OS/2", "cmap", "head", "hhea", "hmtx", "maxp", "name", "post", "loca", "glyf", "fpgm", "prep", "cvt ", "CFF "];
          function a(W, K) {
            const M = /* @__PURE__ */ Object.create(null);
            M["OS/2"] = null, M.cmap = null, M.head = null, M.hhea = null, M.hmtx = null, M.maxp = null, M.name = null, M.post = null;
            for (let L = 0; L < K; L++) {
              const J = r(W);
              i.includes(J.tag) && J.length !== 0 && (M[J.tag] = J);
            }
            return M;
          }
          p(a, "readTables");
          function r(W) {
            const K = W.getString(4), M = W.getInt32() >>> 0, L = W.getInt32() >>> 0, J = W.getInt32() >>> 0, ce = W.pos;
            W.pos = W.start || 0, W.skip(L);
            const le = W.getBytes(J);
            return W.pos = ce, K === "head" && (le[8] = le[9] = le[10] = le[11] = 0, le[17] |= 32), { tag: K, checksum: M, length: J, offset: L, data: le };
          }
          p(r, "readTableEntry");
          function o(W) {
            return { version: W.getString(4), numTables: W.getUint16(), searchRange: W.getUint16(), entrySelector: W.getUint16(), rangeShift: W.getUint16() };
          }
          p(o, "readOpenTypeHeader");
          function l(W) {
            const K = W.getString(4);
            Bt(K === "ttcf", "Must be a TrueType Collection font.");
            const M = W.getUint16(), L = W.getUint16(), J = W.getInt32() >>> 0, ce = [];
            for (let se = 0; se < J; se++) ce.push(W.getInt32() >>> 0);
            const le = { ttcTag: K, majorVersion: M, minorVersion: L, numFonts: J, offsetTable: ce };
            switch (M) {
              case 1:
                return le;
              case 2:
                return le.dsigTag = W.getInt32() >>> 0, le.dsigLength = W.getInt32() >>> 0, le.dsigOffset = W.getInt32() >>> 0, le;
            }
            throw new Q(`Invalid TrueType Collection majorVersion: ${M}.`);
          }
          p(l, "readTrueTypeCollectionHeader");
          function f(W, K) {
            const { numFonts: M, offsetTable: L } = l(W), J = K.split("+");
            let ce;
            for (let le = 0; le < M; le++) {
              W.pos = (W.start || 0) + L[le];
              const se = o(W), Te = a(W, se.numTables);
              if (!Te.name) throw new Q('TrueType Collection font must contain a "name" table.');
              const [_e] = b(Te.name);
              for (let Fe = 0, Ne = _e.length; Fe < Ne; Fe++) for (let Le = 0, ue = _e[Fe].length; Le < ue; Le++) {
                const Ae = _e[Fe][Le]?.replaceAll(/\s/g, "");
                if (Ae) {
                  if (Ae === K) return { header: se, tables: Te };
                  if (!(J.length < 2)) for (const xe of J) Ae === xe && (ce = { name: xe, header: se, tables: Te });
                }
              }
            }
            if (ce) return F(`TrueType Collection does not contain "${K}" font, falling back to "${ce.name}" font instead.`), { header: ce.header, tables: ce.tables };
            throw new Q(`TrueType Collection does not contain "${K}" font.`);
          }
          p(f, "readTrueTypeCollectionData");
          function c(W, K, M, L) {
            if (!W) return F("No cmap table available."), { platformId: -1, encodingId: -1, mappings: [], hasShortCmap: false };
            let J, ce = (K.start || 0) + W.offset;
            K.pos = ce, K.skip(2);
            const le = K.getUint16();
            let se, Te = false;
            for (let ge = 0; ge < le; ge++) {
              const be = K.getUint16(), Ce = K.getUint16(), we = K.getInt32() >>> 0;
              let Se = false;
              if (!(se?.platformId === be && se?.encodingId === Ce)) {
                if (be === 0 && (Ce === 0 || Ce === 1 || Ce === 3)) Se = true;
                else if (be === 1 && Ce === 0) Se = true;
                else if (be === 3 && Ce === 1 && (L || !se)) Se = true, M || (Te = true);
                else if (M && be === 3 && Ce === 0) {
                  Se = true;
                  let me = true;
                  if (ge < le - 1) {
                    const Ge = K.peekBytes(2);
                    Ya(Ge[0], Ge[1]) < be && (me = false);
                  }
                  me && (Te = true);
                }
                if (Se && (se = { platformId: be, encodingId: Ce, offset: we }), Te) break;
              }
            }
            if (se && (K.pos = ce + se.offset), !se || K.peekByte() === -1) return F("Could not find a preferred cmap table."), { platformId: -1, encodingId: -1, mappings: [], hasShortCmap: false };
            const _e = K.getUint16();
            let Fe = false;
            const Ne = [];
            let Le, ue;
            if (_e === 0) {
              for (K.skip(4), Le = 0; Le < 256; Le++) {
                const ge = K.getByte();
                ge && Ne.push({ charCode: Le, glyphId: ge });
              }
              Fe = true;
            } else if (_e === 2) {
              K.skip(4);
              const ge = [];
              let be = 0;
              for (let we = 0; we < 256; we++) {
                const Se = K.getUint16() >> 3;
                ge.push(Se), be = Math.max(Se, be);
              }
              const Ce = [];
              for (let we = 0; we <= be; we++) Ce.push({ firstCode: K.getUint16(), entryCount: K.getUint16(), idDelta: fs(K.getByte(), K.getByte()), idRangePos: K.pos + K.getUint16() });
              for (let we = 0; we < 256; we++) if (ge[we] === 0) K.pos = Ce[0].idRangePos + 2 * we, ue = K.getUint16(), Ne.push({ charCode: we, glyphId: ue });
              else {
                const Se = Ce[ge[we]];
                for (Le = 0; Le < Se.entryCount; Le++) {
                  const me = (we << 8) + Le + Se.firstCode;
                  K.pos = Se.idRangePos + 2 * Le, ue = K.getUint16(), ue !== 0 && (ue = (ue + Se.idDelta) % 65536), Ne.push({ charCode: me, glyphId: ue });
                }
              }
            } else if (_e === 4) {
              K.skip(4);
              const ge = K.getUint16() >> 1;
              K.skip(6);
              const be = [];
              let Ce;
              for (Ce = 0; Ce < ge; Ce++) be.push({ end: K.getUint16() });
              for (K.skip(2), Ce = 0; Ce < ge; Ce++) be[Ce].start = K.getUint16();
              for (Ce = 0; Ce < ge; Ce++) be[Ce].delta = K.getUint16();
              let we = 0, Se;
              for (Ce = 0; Ce < ge; Ce++) {
                J = be[Ce];
                const Ge = K.getUint16();
                if (!Ge) {
                  J.offsetIndex = -1;
                  continue;
                }
                Se = (Ge >> 1) - (ge - Ce), J.offsetIndex = Se, we = Math.max(we, Se + J.end - J.start + 1);
              }
              const me = [];
              for (Le = 0; Le < we; Le++) me.push(K.getUint16());
              for (Ce = 0; Ce < ge; Ce++) {
                J = be[Ce], ce = J.start;
                const Ge = J.end, tt = J.delta;
                for (Se = J.offsetIndex, Le = ce; Le <= Ge; Le++) Le !== 65535 && (ue = Se < 0 ? Le : me[Se + Le - ce], ue = ue + tt & 65535, Ne.push({ charCode: Le, glyphId: ue }));
              }
            } else if (_e === 6) {
              K.skip(4);
              const ge = K.getUint16(), be = K.getUint16();
              for (Le = 0; Le < be; Le++) {
                ue = K.getUint16();
                const Ce = ge + Le;
                Ne.push({ charCode: Ce, glyphId: ue });
              }
            } else if (_e === 12) {
              K.skip(10);
              const ge = K.getInt32() >>> 0;
              for (Le = 0; Le < ge; Le++) {
                const be = K.getInt32() >>> 0, Ce = K.getInt32() >>> 0;
                let we = K.getInt32() >>> 0;
                for (let Se = be; Se <= Ce; Se++) Ne.push({ charCode: Se, glyphId: we++ });
              }
            } else return F("cmap table has unsupported format: " + _e), { platformId: -1, encodingId: -1, mappings: [], hasShortCmap: false };
            Ne.sort((ge, be) => ge.charCode - be.charCode);
            const Ae = [], xe = /* @__PURE__ */ new Set();
            for (const ge of Ne) {
              const { charCode: be } = ge;
              xe.has(be) || (xe.add(be), Ae.push(ge));
            }
            return { platformId: se.platformId, encodingId: se.encodingId, mappings: Ae, hasShortCmap: Fe };
          }
          p(c, "readCmapTable");
          function h(W, K, M, L, J, ce) {
            if (!K) {
              M && (M.data = null);
              return;
            }
            W.pos = (W.start || 0) + K.offset, W.pos += 4, W.pos += 2, W.pos += 2, W.pos += 2, W.pos += 2, W.pos += 2, W.pos += 2, W.pos += 2, W.pos += 2, W.pos += 2;
            const le = W.getUint16();
            W.pos += 8, W.pos += 2;
            let se = W.getUint16();
            le !== 0 && (Ya(L.data[44], L.data[45]) & 2 || (K.data[22] = 0, K.data[23] = 0)), se > J && (Ke(`The numOfMetrics (${se}) should not be greater than the numGlyphs (${J}).`), se = J, K.data[34] = (se & 65280) >> 8, K.data[35] = se & 255);
            const _e = J - se - (M.length - se * 4 >> 1);
            if (_e > 0) {
              const Fe = new Uint8Array(M.length + _e * 2);
              Fe.set(M.data), ce && (Fe[M.length] = M.data[2], Fe[M.length + 1] = M.data[3]), M.data = Fe;
            }
          }
          p(h, "sanitizeMetrics");
          function u(W, K, M, L, J, ce) {
            const le = { length: 0, sizeOfInstructions: 0 };
            if (K < 0 || K >= W.length || M > W.length || M - K <= 12) return le;
            const se = W.subarray(K, M), Te = fs(se[2], se[3]), _e = fs(se[4], se[5]), Fe = fs(se[6], se[7]), Ne = fs(se[8], se[9]);
            Te > Fe && (Yr(se, 2, Fe), Yr(se, 6, Te)), _e > Ne && (Yr(se, 4, Ne), Yr(se, 8, _e));
            const Le = fs(se[0], se[1]);
            if (Le < 0) return Le < -1 || (L.set(se, J), le.length = se.length), le;
            let ue, Ae = 10, xe = 0;
            for (ue = 0; ue < Le; ue++) xe = (se[Ae] << 8 | se[Ae + 1]) + 1, Ae += 2;
            const ge = Ae, be = se[Ae] << 8 | se[Ae + 1];
            le.sizeOfInstructions = be, Ae += 2 + be;
            const Ce = Ae;
            let we = 0;
            for (ue = 0; ue < xe; ue++) {
              const me = se[Ae++];
              me & 192 && (se[Ae - 1] = me & 63);
              let Ge = 2;
              me & 2 ? Ge = 1 : me & 16 && (Ge = 0);
              let tt = 2;
              me & 4 ? tt = 1 : me & 32 && (tt = 0);
              const ct = Ge + tt;
              if (we += ct, me & 8) {
                const Ct = se[Ae++];
                Ct === 0 && (se[Ae - 1] ^= 8), ue += Ct, we += Ct * ct;
              }
            }
            if (we === 0) return le;
            let Se = Ae + we;
            return Se > se.length ? le : !ce && be > 0 ? (L.set(se.subarray(0, ge), J), L.set([0, 0], J + ge), L.set(se.subarray(Ce, Se), J + ge + 2), Se -= be, se.length - Se > 3 && (Se = Se + 3 & -4), le.length = Se, le) : se.length - Se > 3 ? (Se = Se + 3 & -4, L.set(se.subarray(0, Se), J), le.length = Se, le) : (L.set(se, J), le.length = se.length, le);
          }
          p(u, "sanitizeGlyph");
          function d(W, K, M) {
            const L = W.data, J = Fw(L[0], L[1], L[2], L[3]);
            J >> 16 !== 1 && (Ke("Attempting to fix invalid version in head table: " + J), L[0] = 0, L[1] = 1, L[2] = 0, L[3] = 0);
            const ce = Ya(L[50], L[51]);
            if (ce < 0 || ce > 1) {
              Ke("Attempting to fix invalid indexToLocFormat in head table: " + ce);
              const le = K + 1;
              if (M === le << 1) L[50] = 0, L[51] = 0;
              else if (M === le << 2) L[50] = 0, L[51] = 1;
              else throw new Q("Could not fix indexToLocFormat: " + ce);
            }
          }
          p(d, "sanitizeHead");
          function m(W, K, M, L, J, ce, le) {
            let se, Te, _e;
            L ? (se = 4, Te = p(function(tt, ct) {
              return tt[ct] << 24 | tt[ct + 1] << 16 | tt[ct + 2] << 8 | tt[ct + 3];
            }, "fontItemDecodeLong"), _e = p(function(tt, ct, Ct) {
              tt[ct] = Ct >>> 24 & 255, tt[ct + 1] = Ct >> 16 & 255, tt[ct + 2] = Ct >> 8 & 255, tt[ct + 3] = Ct & 255;
            }, "fontItemEncodeLong")) : (se = 2, Te = p(function(tt, ct) {
              return tt[ct] << 9 | tt[ct + 1] << 1;
            }, "fontItemDecode"), _e = p(function(tt, ct, Ct) {
              tt[ct] = Ct >> 9 & 255, tt[ct + 1] = Ct >> 1 & 255;
            }, "fontItemEncode"));
            const Fe = ce ? M + 1 : M, Ne = se * (1 + Fe), Le = new Uint8Array(Ne);
            Le.set(W.data.subarray(0, Ne)), W.data = Le;
            const ue = K.data, Ae = ue.length, xe = new Uint8Array(Ae);
            let ge, be;
            const Ce = [];
            for (ge = 0, be = 0; ge < M + 1; ge++, be += se) {
              let Ge = Te(Le, be);
              Ge > Ae && (Ge = Ae), Ce.push({ index: ge, offset: Ge, endOffset: 0 });
            }
            for (Ce.sort((Ge, tt) => Ge.offset - tt.offset), ge = 0; ge < M; ge++) Ce[ge].endOffset = Ce[ge + 1].offset;
            for (Ce.sort((Ge, tt) => Ge.index - tt.index), ge = 0; ge < M; ge++) {
              const { offset: Ge, endOffset: tt } = Ce[ge];
              if (Ge !== 0 || tt !== 0) break;
              const ct = Ce[ge + 1].offset;
              if (ct !== 0) {
                Ce[ge].endOffset = ct;
                break;
              }
            }
            const we = Ce.at(-2);
            we.offset !== 0 && we.endOffset === 0 && (we.endOffset = Ae);
            const Se = /* @__PURE__ */ Object.create(null);
            let me = 0;
            for (_e(Le, 0, me), ge = 0, be = se; ge < M; ge++, be += se) {
              const Ge = u(ue, Ce[ge].offset, Ce[ge].endOffset, xe, me, J), tt = Ge.length;
              tt === 0 && (Se[ge] = true), Ge.sizeOfInstructions > le && (le = Ge.sizeOfInstructions), me += tt, _e(Le, be, me);
            }
            if (me === 0) {
              const Ge = new Uint8Array([0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0]);
              for (ge = 0, be = se; ge < Fe; ge++, be += se) _e(Le, be, Ge.length);
              K.data = Ge;
            } else if (ce) {
              const Ge = Te(Le, se);
              xe.length > Ge + me ? K.data = xe.subarray(0, Ge + me) : (K.data = new Uint8Array(Ge + me), K.data.set(xe.subarray(0, me))), K.data.set(xe.subarray(0, Ge), me), _e(W.data, Le.length - se, me + Ge);
            } else K.data = xe.subarray(0, me);
            return { missingGlyphs: Se, maxSizeOfInstructions: le };
          }
          p(m, "sanitizeGlyphLocations");
          function g(W, K, M) {
            const L = (n.start || 0) + W.offset;
            n.pos = L;
            const J = W.length, ce = L + J, le = n.getInt32();
            n.skip(28);
            let se, Te = true, _e;
            switch (le) {
              case 65536:
                se = Nu;
                break;
              case 131072:
                const Fe = n.getUint16();
                if (Fe !== M) {
                  Te = false;
                  break;
                }
                const Ne = [];
                for (_e = 0; _e < Fe; ++_e) {
                  const ue = n.getUint16();
                  if (ue >= 32768) {
                    Te = false;
                    break;
                  }
                  Ne.push(ue);
                }
                if (!Te) break;
                const Le = [];
                for (; n.pos < ce; ) {
                  const ue = n.getByte(), Ae = n.getString(ue);
                  Le.push(Ae);
                }
                for (se = [], _e = 0; _e < Fe; ++_e) {
                  const ue = Ne[_e];
                  if (ue < 258) {
                    se.push(Nu[ue]);
                    continue;
                  }
                  se.push(Le[ue - 258]);
                }
                break;
              case 196608:
                break;
              default:
                F("Unknown/unsupported post table version " + le), Te = false, K.defaultEncoding && (se = K.defaultEncoding);
                break;
            }
            return K.glyphNames = se, Te;
          }
          p(g, "readPostScriptTable");
          function b(W) {
            const K = (n.start || 0) + W.offset;
            n.pos = K;
            const M = [[], []], L = [], J = W.length, ce = K + J;
            if (n.getUint16() !== 0 || J < 6) return [M, L];
            const Te = n.getUint16(), _e = n.getUint16(), Fe = 12;
            let Ne, Le;
            for (Ne = 0; Ne < Te && n.pos + Fe <= ce; Ne++) {
              const ue = { platform: n.getUint16(), encoding: n.getUint16(), language: n.getUint16(), name: n.getUint16(), length: n.getUint16(), offset: n.getUint16() };
              (Mw(ue) || cd(ue)) && L.push(ue);
            }
            for (Ne = 0, Le = L.length; Ne < Le; Ne++) {
              const ue = L[Ne];
              if (ue.length <= 0) continue;
              const Ae = K + _e + ue.offset;
              if (Ae + ue.length > ce) continue;
              n.pos = Ae;
              const xe = ue.name;
              if (ue.encoding) {
                let ge = "";
                for (let be = 0, Ce = ue.length; be < Ce; be += 2) ge += String.fromCharCode(n.getUint16());
                M[1][xe] = ge;
              } else M[0][xe] = n.getString(ue.length);
            }
            return [M, L];
          }
          p(b, "readNameTable");
          const w = [0, 0, 0, 0, 0, 0, 0, 0, -2, -2, -2, -2, 0, 0, -2, -5, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, -1, -1, 1, -1, -999, 0, 1, 0, -1, -2, 0, -1, -2, -1, -1, 0, -1, -1, 0, 0, -999, -999, -1, -1, -1, -1, -2, -999, -2, -2, -999, 0, -2, -2, 0, 0, -2, 0, -2, 0, 0, 0, -2, -1, -1, 1, 1, 0, 0, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, 0, -999, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -999, -999, -999, -999, -999, -1, -1, -2, -2, 0, 0, 0, 0, -1, -1, -999, -2, -2, 0, 0, -1, -2, -2, 0, 0, 0, -1, -1, -1, -2];
          function x(W, K) {
            let M = W.data, L = 0, J, ce, le, se, Te, _e = 0, Fe = 0;
            const Ne = [], Le = [], ue = [];
            let Ae = K.tooComplexToFollowFunctions, xe = false, ge = 0, be = 0;
            for (let we = M.length; L < we; ) {
              const Se = M[L++];
              if (Se === 64) if (ce = M[L++], xe || be) L += ce;
              else for (J = 0; J < ce; J++) Ne.push(M[L++]);
              else if (Se === 65) if (ce = M[L++], xe || be) L += ce * 2;
              else for (J = 0; J < ce; J++) le = M[L++], Ne.push(le << 8 | M[L++]);
              else if ((Se & 248) === 176) if (ce = Se - 176 + 1, xe || be) L += ce;
              else for (J = 0; J < ce; J++) Ne.push(M[L++]);
              else if ((Se & 248) === 184) if (ce = Se - 184 + 1, xe || be) L += ce * 2;
              else for (J = 0; J < ce; J++) le = M[L++], Ne.push(fs(le, M[L++]));
              else if (Se === 43 && !Ae) {
                if (!xe && !be) {
                  if (se = Ne.at(-1), isNaN(se)) Ke("TT: CALL empty stack (or invalid entry).");
                  else if (K.functionsUsed[se] = true, se in K.functionsStackDeltas) {
                    const me = Ne.length + K.functionsStackDeltas[se];
                    if (me < 0) {
                      F("TT: CALL invalid functions stack delta."), K.hintsValid = false;
                      return;
                    }
                    Ne.length = me;
                  } else if (se in K.functionsDefined && !ue.includes(se)) {
                    if (Le.push({ data: M, i: L, stackTop: Ne.length - 1 }), ue.push(se), Te = K.functionsDefined[se], !Te) {
                      F("TT: CALL non-existent function"), K.hintsValid = false;
                      return;
                    }
                    M = Te.data, L = Te.i;
                  }
                }
              } else if (Se === 44 && !Ae) (xe || be) && (F("TT: nested FDEFs not allowed"), Ae = true), xe = true, Fe = L, se = Ne.pop(), K.functionsDefined[se] = { data: M, i: L };
              else if (Se === 45) if (xe) xe = false, _e = L;
              else {
                if (Te = Le.pop(), !Te) {
                  F("TT: ENDF bad stack"), K.hintsValid = false;
                  return;
                }
                se = ue.pop(), M = Te.data, L = Te.i, K.functionsStackDeltas[se] = Ne.length - Te.stackTop;
              }
              else if (Se === 137) (xe || be) && (F("TT: nested IDEFs not allowed"), Ae = true), xe = true, Fe = L;
              else if (Se === 88) ++ge;
              else if (Se === 27) be = ge;
              else if (Se === 89) be === ge && (be = 0), --ge;
              else if (Se === 28 && !xe && !be) {
                const me = Ne.at(-1);
                me > 0 && (L += me - 1);
              }
              if (!xe && !be) {
                let me = 0;
                for (Se <= 142 ? me = w[Se] : Se >= 192 && Se <= 223 ? me = -1 : Se >= 224 && (me = -2), Se >= 113 && Se <= 117 && (ce = Ne.pop(), isNaN(ce) || (me = -ce * 2)); me < 0 && Ne.length > 0; ) Ne.pop(), me++;
                for (; me > 0; ) Ne.push(NaN), me--;
              }
            }
            K.tooComplexToFollowFunctions = Ae;
            const Ce = [M];
            L > M.length && Ce.push(new Uint8Array(L - M.length)), Fe > _e && (F("TT: complementing a missing function tail"), Ce.push(new Uint8Array([34, 45]))), j(W, Ce);
          }
          p(x, "sanitizeTTProgram");
          function y(W, K) {
            if (!W.tooComplexToFollowFunctions) {
              if (W.functionsDefined.length > K) {
                F("TT: more functions defined than expected"), W.hintsValid = false;
                return;
              }
              for (let M = 0, L = W.functionsUsed.length; M < L; M++) {
                if (M > K) {
                  F("TT: invalid function id: " + M), W.hintsValid = false;
                  return;
                }
                if (W.functionsUsed[M] && !W.functionsDefined[M]) {
                  F("TT: undefined function: " + M), W.hintsValid = false;
                  return;
                }
              }
            }
          }
          p(y, "checkInvalidFunctions");
          function j(W, K) {
            if (K.length > 1) {
              let M = 0, L, J;
              for (L = 0, J = K.length; L < J; L++) M += K[L].length;
              M = M + 3 & -4;
              const ce = new Uint8Array(M);
              let le = 0;
              for (L = 0, J = K.length; L < J; L++) ce.set(K[L], le), le += K[L].length;
              W.data = ce, W.length = M;
            }
          }
          p(j, "foldTTTable");
          function v(W, K, M, L) {
            const J = { functionsDefined: [], functionsUsed: [], functionsStackDeltas: [], tooComplexToFollowFunctions: false, hintsValid: true };
            if (W && x(W, J), K && x(K, J), W && y(J, L), M && M.length & 1) {
              const ce = new Uint8Array(M.length + 1);
              ce.set(M.data), M.data = ce;
            }
            return J.hintsValid;
          }
          p(v, "sanitizeTTPrograms"), n = new jt(new Uint8Array(n.getBytes()));
          let q, A;
          if (fd(n)) {
            const W = f(n, this.name);
            q = W.header, A = W.tables;
          } else q = o(n), A = a(n, q.numTables);
          const C = !A["CFF "];
          if (C) {
            if (!A.loca) throw new Q('Required "loca" table is not found');
            A.glyf || (F('Required "glyf" table is not found -- trying to recover.'), A.glyf = { tag: "glyf", data: new Uint8Array(0) }), this.isOpenType = false;
          } else {
            if (q.version === "OTTO" && !s.composite || !A.head || !A.hhea || !A.maxp || !A.post) return this.convert(e, new zf(new jt(A["CFF "].data), s), s);
            delete A.glyf, delete A.loca, delete A.fpgm, delete A.prep, delete A["cvt "], this.isOpenType = true;
          }
          if (!A.maxp) throw new Q('Required "maxp" table is not found');
          let S;
          if (!C) try {
            const K = new Df(new jt(A["CFF "].data), s, Ka).parse();
            K.duplicateFirstGlyph();
            const M = new $o(K);
            A["CFF "].data = M.compile(), S = K.charStringCount;
          } catch {
            F("Failed to compile font " + s.loadedName);
          }
          n.pos = (n.start || 0) + A.maxp.offset;
          let I = n.getInt32();
          const T = S ?? n.getUint16();
          if (I === 20480 && A.maxp.length !== 6 && (A.maxp.data = A.maxp.data.subarray(0, 6), A.maxp.length = 6), I !== 65536 && I !== 20480) {
            if (A.maxp.length === 6) I = 20480;
            else if (A.maxp.length >= 32) I = 65536;
            else throw new Q('"maxp" table has a wrong version number');
            Ew(A.maxp.data, 0, I);
          }
          let P = Ya(A.head.data[50], A.head.data[51]);
          if (A.loca) {
            const W = P ? (T + 1) * 4 : (T + 1) * 2;
            if (A.loca.length !== W) {
              F("Incorrect 'loca' table length -- attempting to fix it.");
              const K = Object.values(A).filter(Boolean).sort((J, ce) => J.offset - ce.offset), M = K.indexOf(A.loca), L = K[M + 1] || null;
              if (L && A.loca.offset + W < L.offset) {
                const J = n.pos;
                n.pos = n.start || 0, n.skip(A.loca.offset), A.loca.data = n.getBytes(W), A.loca.length = W, n.pos = J;
              }
            }
          }
          if (s.scaleFactors?.length === T && C) {
            const { scaleFactors: W } = s, K = new mw({ glyfTable: A.glyf.data, isGlyphLocationsLong: P, locaTable: A.loca.data, numGlyphs: T });
            K.scale(W);
            const { glyf: M, loca: L, isLocationLong: J } = K.write();
            A.glyf.data = M, A.loca.data = L, J !== !!P && (A.head.data[50] = 0, P = A.head.data[51] = J ? 1 : 0);
            const ce = A.hmtx.data;
            for (let le = 0; le < T; le++) {
              const se = 4 * le, Te = Math.round(W[le] * Ya(ce[se], ce[se + 1]));
              ce[se] = Te >> 8 & 255, ce[se + 1] = Te & 255;
              const _e = Math.round(W[le] * fs(ce[se + 2], ce[se + 3]));
              Yr(ce, se + 2, _e);
            }
          }
          let H = T + 1, G = true;
          H > 65535 && (G = false, H = T, F("Not enough space in glyfs to duplicate first glyph."));
          let Z = 0, z = 0;
          I >= 65536 && A.maxp.length >= 32 && (n.pos += 8, n.getUint16() > 2 && (A.maxp.data[14] = 0, A.maxp.data[15] = 2), n.pos += 4, Z = n.getUint16(), n.pos += 4, z = n.getUint16()), A.maxp.data[4] = H >> 8, A.maxp.data[5] = H & 255;
          const O = v(A.fpgm, A.prep, A["cvt "], Z);
          if (O || (delete A.fpgm, delete A.prep, delete A["cvt "]), h(n, A.hhea, A.hmtx, A.head, H, G), !A.head) throw new Q('Required "head" table is not found');
          d(A.head, T, C ? A.loca.length : 0);
          let N = /* @__PURE__ */ Object.create(null);
          if (C) {
            const W = m(A.loca, A.glyf, T, P, O, G, z);
            N = W.missingGlyphs, I >= 65536 && A.maxp.length >= 32 && (A.maxp.data[26] = W.maxSizeOfInstructions >> 8, A.maxp.data[27] = W.maxSizeOfInstructions & 255);
          }
          if (!A.hhea) throw new Q('Required "hhea" table is not found');
          A.hhea.data[10] === 0 && A.hhea.data[11] === 0 && (A.hhea.data[10] = 255, A.hhea.data[11] = 255);
          const oe = { unitsPerEm: Ya(A.head.data[18], A.head.data[19]), yMax: fs(A.head.data[42], A.head.data[43]), yMin: fs(A.head.data[38], A.head.data[39]), ascent: fs(A.hhea.data[4], A.hhea.data[5]), descent: fs(A.hhea.data[6], A.hhea.data[7]), lineGap: fs(A.hhea.data[8], A.hhea.data[9]) };
          this.ascent = oe.ascent / oe.unitsPerEm, this.descent = oe.descent / oe.unitsPerEm, this.lineGap = oe.lineGap / oe.unitsPerEm, this.cssFontInfo?.lineHeight ? (this.lineHeight = this.cssFontInfo.metrics.lineHeight, this.lineGap = this.cssFontInfo.metrics.lineGap) : this.lineHeight = this.ascent - this.descent + this.lineGap, A.post && g(A.post, s, T), A.post = { tag: "post", data: pd(s) };
          const je = /* @__PURE__ */ Object.create(null);
          function Y(W) {
            return !N[W];
          }
          if (p(Y, "hasGlyph"), s.composite) {
            const W = s.cidToGidMap || [], K = W.length === 0;
            s.cMap.forEach(function(M, L) {
              if (typeof L == "string" && (L = Kf(M, L, true)), L > 65535) throw new Q("Max size of CID is 65,535");
              let J = -1;
              K ? J = L : W[L] !== void 0 && (J = W[L]), J >= 0 && J < T && Y(J) && (je[M] = J);
            });
          } else {
            const W = c(A.cmap, n, this.isSymbolicFont, s.hasEncoding), K = W.platformId, M = W.encodingId, L = W.mappings;
            let J = [], ce = false;
            if (s.hasEncoding && (s.baseEncodingName === "MacRomanEncoding" || s.baseEncodingName === "WinAnsiEncoding") && (J = Ur(s.baseEncodingName)), s.hasEncoding && !this.isSymbolicFont && (K === 3 && M === 1 || K === 1 && M === 0)) {
              const le = Ks();
              for (let se = 0; se < 256; se++) {
                let Te;
                if (this.differences[se] !== void 0 ? Te = this.differences[se] : J.length && J[se] !== "" ? Te = J[se] : Te = gi[se], !Te) continue;
                const _e = zu(Te, le);
                let Fe;
                if (K === 3 && M === 1 ? Fe = le[_e] : K === 1 && M === 0 && (Fe = Ff.indexOf(_e)), Fe === void 0) {
                  if (!s.glyphNames && s.hasIncludedToUnicodeMap && !(this.toUnicode instanceof ys)) {
                    const Ne = this.toUnicode.get(se);
                    Ne && (Fe = Ne.codePointAt(0));
                  }
                  if (Fe === void 0) continue;
                }
                for (const Ne of L) if (Ne.charCode === Fe) {
                  je[se] = Ne.glyphId;
                  break;
                }
              }
            } else if (K === 0) {
              for (const le of L) je[le.charCode] = le.glyphId;
              ce = true;
            } else if (K === 3 && M === 0) for (const le of L) {
              let se = le.charCode;
              se >= 61440 && se <= 61695 && (se &= 255), je[se] = le.glyphId;
            }
            else for (const le of L) je[le.charCode] = le.glyphId;
            if (s.glyphNames && (J.length || this.differences.length)) for (let le = 0; le < 256; ++le) {
              if (!ce && je[le] !== void 0) continue;
              const se = this.differences[le] || J[le];
              if (!se) continue;
              const Te = s.glyphNames.indexOf(se);
              Te > 0 && Y(Te) && (je[le] = Te);
            }
          }
          je.length === 0 && (je[0] = 0);
          let ye = H - 1;
          if (G || (ye = 0), !s.cssFontInfo) {
            const W = hd(je, Y, ye, this.toUnicode);
            this.toFontChar = W.toFontChar, A.cmap = { tag: "cmap", data: ud(W.charCodeToGlyphId, W.toUnicodeExtraMap, H) }, (!A["OS/2"] || !Ow(A["OS/2"], n)) && (A["OS/2"] = { tag: "OS/2", data: dd(s, W.charCodeToGlyphId, oe) });
          }
          if (!A.name) A.name = { tag: "name", data: Xf(this.name) };
          else {
            const [W, K] = b(A.name);
            A.name.data = Xf(e, W), this.psName = W[0][6] || null, s.composite || Cw(s, this.isSymbolicFont, K);
          }
          const qe = new Vo(q.version);
          for (const W in A) qe.addTable(W, A[W].data);
          return qe.toArray();
        }
        convert(e, n, s) {
          s.fixedPitch = false, s.builtInEncoding && Iw(s, s.builtInEncoding);
          let i = 1;
          n instanceof zf && (i = n.numGlyphs - 1);
          const a = n.getGlyphMapping(s);
          let r = null, o = a, l = null;
          s.cssFontInfo || (r = hd(a, n.hasGlyphId.bind(n), i, this.toUnicode), this.toFontChar = r.toFontChar, o = r.charCodeToGlyphId, l = r.toUnicodeExtraMap);
          const f = n.numGlyphs;
          function c(g, b) {
            let w = null;
            for (const x in g) b === g[x] && (w ||= []).push(x | 0);
            return w;
          }
          p(c, "getCharCodes");
          function h(g, b) {
            for (const w in g) if (b === g[w]) return w | 0;
            return r.charCodeToGlyphId[r.nextAvailableFontCharCode] = b, r.nextAvailableFontCharCode++;
          }
          p(h, "createCharCode");
          const u = n.seacs;
          if (r && Ka && u?.length) {
            const g = s.fontMatrix || na, b = n.getCharset(), w = /* @__PURE__ */ Object.create(null);
            for (let x in u) {
              x |= 0;
              const y = u[x], j = gi[y[2]], v = gi[y[3]], q = b.indexOf(j), A = b.indexOf(v);
              if (q < 0 || A < 0) continue;
              const C = { x: y[0] * g[0] + y[1] * g[2] + g[4], y: y[0] * g[1] + y[1] * g[3] + g[5] }, S = c(a, x);
              if (S) for (const I of S) {
                const T = r.charCodeToGlyphId, P = h(T, q), H = h(T, A);
                w[I] = { baseFontCharCode: P, accentFontCharCode: H, accentOffset: C };
              }
            }
            s.seacMap = w;
          }
          const d = s.fontMatrix ? 1 / Math.max(...s.fontMatrix.slice(0, 4).map(Math.abs)) : 1e3, m = new Vo("OTTO");
          return m.addTable("CFF ", n.data), m.addTable("OS/2", dd(s, o)), m.addTable("cmap", ud(o, l, f)), m.addTable("head", "\0\0\0\0\0\0\0\0\0\0_<\xF5\0\0" + ca(d) + "\0\0\0\0\x9E\v~'\0\0\0\0\x9E\v~'\0\0" + ca(s.descent) + "\xFF" + ca(s.ascent) + wt(s.italicAngle ? 2 : 0) + "\0\0\0\0\0\0\0"), m.addTable("hhea", "\0\0\0" + ca(s.ascent) + ca(s.descent) + "\0\0\xFF\xFF\0\0\0\0\0\0" + ca(s.capHeight) + ca(Math.tan(s.italicAngle) * s.xHeight) + "\0\0\0\0\0\0\0\0\0\0\0\0" + wt(f)), m.addTable("hmtx", p(function() {
            const b = n.charstrings, w = n.cff ? n.cff.widths : null;
            let x = "\0\0\0\0";
            for (let y = 1, j = f; y < j; y++) {
              let v = 0;
              if (b) {
                const q = b[y - 1];
                v = "width" in q ? q.width : 0;
              } else w && (v = Math.ceil(w[y] || 0));
              x += wt(v) + wt(0);
            }
            return x;
          }, "fontFieldsHmtx")()), m.addTable("maxp", "\0\0P\0" + wt(f)), m.addTable("name", Xf(e)), m.addTable("post", pd(s)), m.toArray();
        }
        get _spaceWidth() {
          const e = ["space", "minus", "one", "i", "I"];
          let n;
          for (const s of e) {
            if (s in this.widths) {
              n = this.widths[s];
              break;
            }
            const a = Ks()[s];
            let r = 0;
            if (this.composite && this.cMap.contains(a) && (r = this.cMap.lookup(a), typeof r == "string" && (r = Kf(a, r))), !r && this.toUnicode && (r = this.toUnicode.charCodeOf(a)), r <= 0 && (r = a), n = this.widths[r], n) break;
          }
          return fe(this, "_spaceWidth", n || this.defaultWidth);
        }
        _charToGlyph(e, n = false) {
          let s = this.#t.get(e);
          if (s?.isSpace === n) return s;
          let i, a, r, o = e;
          this.cMap?.contains(e) && (o = this.cMap.lookup(e), typeof o == "string" && (o = Kf(e, o))), a = this.widths[o], typeof a != "number" && (a = this.defaultWidth);
          const l = this.vmetrics?.[o] || this.defaultVMetrics;
          let f = this.toUnicode.get(e) || e;
          typeof f == "number" && (f = String.fromCharCode(f));
          let c = this.toFontChar[e] !== void 0;
          if (i = this.toFontChar[e] || e, this.missingFile) {
            const d = this.differences[e] || this.defaultEncoding[e];
            (d === ".notdef" || d === "") && this.type === "Type1" && (i = 32, d === "" && (a ||= this._spaceWidth, f = String.fromCharCode(i))), i = Pb(i);
          }
          this.isType3Font && (r = i);
          let h = null;
          if (this.seacMap?.[e]) {
            c = true;
            const d = this.seacMap[e];
            i = d.baseFontCharCode, h = { fontChar: String.fromCodePoint(d.accentFontCharCode), offset: d.accentOffset };
          }
          let u = "";
          if (typeof i == "number" && (i <= 1114111 ? u = String.fromCodePoint(i) : F(`charToGlyph - invalid fontCharCode: ${i}`)), this.missingFile && this.vertical && u.length === 1) {
            const d = Lb()[u.charCodeAt(0)];
            d && (u = f = String.fromCharCode(d));
          }
          return s = new Tw(e, u, f, h, a, l, r, n, c), this.#t.set(e, s), s;
        }
        charsToGlyphs(e) {
          let n = this.#e.get(e);
          if (n) return n;
          if (n = [], this.cMap) {
            const s = /* @__PURE__ */ Object.create(null), i = e.length;
            let a = 0;
            for (; a < i; ) {
              this.cMap.readCharCode(e, a, s);
              const { charcode: r, length: o } = s;
              a += o;
              const l = this._charToGlyph(r, o === 1 && e.charCodeAt(a - 1) === 32);
              n.push(l);
            }
          } else for (let s = 0, i = e.length; s < i; ++s) {
            const a = e.charCodeAt(s), r = this._charToGlyph(a, a === 32);
            n.push(r);
          }
          return this.#e.set(e, n), n;
        }
        getCharPositions(e) {
          const n = [];
          if (this.cMap) {
            const s = /* @__PURE__ */ Object.create(null);
            let i = 0;
            for (; i < e.length; ) {
              this.cMap.readCharCode(e, i, s);
              const a = s.length;
              n.push([i, i + a]), i += a;
            }
          } else for (let s = 0, i = e.length; s < i; ++s) n.push([s, s + 1]);
          return n;
        }
        get glyphCacheValues() {
          return this.#t.values();
        }
        encodeString(e) {
          const n = [], s = [], i = p(() => n.length % 2 === 1, "hasCurrentBufErrors"), a = this.toUnicode instanceof ys ? (r) => this.toUnicode.charCodeOf(r) : (r) => this.toUnicode.charCodeOf(String.fromCodePoint(r));
          for (let r = 0, o = e.length; r < o; r++) {
            const l = e.codePointAt(r);
            if (l > 55295 && (l < 57344 || l > 65533) && r++, this.toUnicode) {
              const f = a(l);
              if (f !== -1) {
                i() && (n.push(s.join("")), s.length = 0);
                const c = this.cMap ? this.cMap.getCharCodeLength(f) : 1;
                for (let h = c - 1; h >= 0; h--) s.push(String.fromCharCode(f >> 8 * h & 255));
                continue;
              }
            }
            i() || (n.push(s.join("")), s.length = 0), s.push(String.fromCodePoint(l));
          }
          return n.push(s.join("")), n;
        }
      };
      gd = class {
        static {
          p(this, "ErrorFont");
        }
        constructor(e) {
          this.error = e, this.loadedName = "g_font_error", this.missingFile = true;
        }
        charsToGlyphs() {
          return [];
        }
        encodeString(e) {
          return [e];
        }
        exportData() {
          return { error: this.error };
        }
      };
      Xn = { FUNCTION_BASED: 1, AXIAL: 2, RADIAL: 3, FREE_FORM_MESH: 4, LATTICE_FORM_MESH: 5, COONS_PATCH_MESH: 6, TENSOR_PATCH_MESH: 7 };
      Nw = class {
        static {
          p(this, "Pattern");
        }
        constructor() {
          Ye("Cannot initialize Pattern.");
        }
        static parseShading(e, n, s, i, a, r, o = null) {
          const l = e instanceof ze ? e.dict : e, f = l.get("ShadingType");
          try {
            switch (f) {
              case Xn.AXIAL:
              case Xn.RADIAL:
                return new zw(l, n, s, i, a, r);
              case Xn.FREE_FORM_MESH:
              case Xn.LATTICE_FORM_MESH:
              case Xn.COONS_PATCH_MESH:
              case Xn.TENSOR_PATCH_MESH:
                return o?.(), new Yi(e, n, s, i, a, r);
              default:
                throw new Q("Unsupported ShadingType: " + f);
            }
          } catch (c) {
            if (c instanceof Ft) throw c;
            return F(c), new $w();
          }
        }
      };
      Qr = class {
        static {
          p(this, "BaseShading");
        }
        static SMALL_NUMBER = 1e-6;
        getIR() {
          Ye("Abstract method `getIR` called.");
        }
      };
      zw = class extends Qr {
        static {
          p(this, "RadialAxialShading");
        }
        constructor(e, n, s, i, a, r) {
          super(), this.shadingType = e.get("ShadingType");
          let o = 0;
          if (this.shadingType === Xn.AXIAL ? o = 4 : this.shadingType === Xn.RADIAL && (o = 6), this.coordsArr = e.getArray("Coords"), !Nn(this.coordsArr, o)) throw new Q("RadialAxialShading: Invalid /Coords array.");
          const l = ut.parse({ cs: e.getRaw("CS") || e.getRaw("ColorSpace"), xref: n, resources: s, pdfFunctionFactory: i, globalColorSpaceCache: a, localColorSpaceCache: r });
          this.bbox = di(e.getArray("BBox"), null);
          let f = 0, c = 1;
          const h = e.getArray("Domain");
          Nn(h, 2) && ([f, c] = h);
          let u = false, d = false;
          const m = e.getArray("Extend");
          Gm(m, 2) && ([u, d] = m), this.extendStart = u, this.extendEnd = d;
          const g = e.getRaw("Function"), b = i.create(g, true), w = 840, x = (c - f) / w, y = this.colorStops = [];
          if (f >= c || x <= 0) {
            Ke("Bad shading domain.");
            return;
          }
          const j = new Float32Array(l.numComps), v = new Float32Array(1);
          let q = 0;
          v[0] = f, b(v, 0, j, 0);
          const A = new Uint8ClampedArray(3);
          l.getRgb(j, 0, A);
          let [C, S, I] = A;
          y.push([0, pt.makeHexColor(C, S, I)]);
          let T = 1;
          v[0] = f + x, b(v, 0, j, 0), l.getRgb(j, 0, A);
          let [P, H, G] = A, Z = P - C + 1, z = H - S + 1, O = G - I + 1, N = P - C - 1, oe = H - S - 1, je = G - I - 1;
          for (let ye = 2; ye < w; ye++) {
            v[0] = f + ye * x, b(v, 0, j, 0), l.getRgb(j, 0, A);
            const [qe, W, K] = A, M = ye - q;
            if (Z = Math.min(Z, (qe - C + 1) / M), z = Math.min(z, (W - S + 1) / M), O = Math.min(O, (K - I + 1) / M), N = Math.max(N, (qe - C - 1) / M), oe = Math.max(oe, (W - S - 1) / M), je = Math.max(je, (K - I - 1) / M), !(N <= Z && oe <= z && je <= O)) {
              const J = pt.makeHexColor(P, H, G);
              y.push([T / w, J]), Z = qe - P + 1, z = W - H + 1, O = K - G + 1, N = qe - P - 1, oe = W - H - 1, je = K - G - 1, q = T, C = P, S = H, I = G;
            }
            T = ye, P = qe, H = W, G = K;
          }
          y.push([1, pt.makeHexColor(P, H, G)]);
          let Y = "transparent";
          e.has("Background") && (Y = l.getRgbHex(e.get("Background"), 0)), u || (y.unshift([0, Y]), y[1][0] += Qr.SMALL_NUMBER), d || (y.at(-1)[0] -= Qr.SMALL_NUMBER, y.push([1, Y])), this.colorStops = y;
        }
        getIR() {
          const { coordsArr: e, shadingType: n } = this;
          let s, i, a, r, o;
          return n === Xn.AXIAL ? (i = [e[0], e[1]], a = [e[2], e[3]], r = null, o = null, s = "axial") : n === Xn.RADIAL ? (i = [e[0], e[1]], a = [e[3], e[4]], r = e[2], o = e[5], s = "radial") : Ye(`getPattern type unknown: ${n}`), ["RadialAxial", s, this.bbox, this.colorStops, i, a, r, o];
        }
      };
      Uw = class {
        static {
          p(this, "MeshStreamReader");
        }
        constructor(e, n) {
          this.stream = e, this.context = n, this.buffer = 0, this.bufferLength = 0;
          const s = n.numComps;
          this.tmpCompsBuf = new Float32Array(s);
          const i = n.colorSpace.numComps;
          this.tmpCsCompsBuf = n.colorFn ? new Float32Array(i) : this.tmpCompsBuf;
        }
        get hasData() {
          if (this.stream.end) return this.stream.pos < this.stream.end;
          if (this.bufferLength > 0) return true;
          const e = this.stream.getByte();
          return e < 0 ? false : (this.buffer = e, this.bufferLength = 8, true);
        }
        readBits(e) {
          const { stream: n } = this;
          let { buffer: s, bufferLength: i } = this;
          if (e === 32) {
            if (i === 0) return n.getInt32() >>> 0;
            s = s << 24 | n.getByte() << 16 | n.getByte() << 8 | n.getByte();
            const a = n.getByte();
            return this.buffer = a & (1 << i) - 1, (s << 8 - i | (a & 255) >> i) >>> 0;
          }
          if (e === 8 && i === 0) return n.getByte();
          for (; i < e; ) s = s << 8 | n.getByte(), i += 8;
          return i -= e, this.bufferLength = i, this.buffer = s & (1 << i) - 1, s >> i;
        }
        align() {
          this.buffer = 0, this.bufferLength = 0;
        }
        readFlag() {
          return this.readBits(this.context.bitsPerFlag);
        }
        readCoordinate() {
          const { bitsPerCoordinate: e, decode: n } = this.context, s = this.readBits(e), i = this.readBits(e), a = e < 32 ? 1 / ((1 << e) - 1) : 23283064365386963e-26;
          return [s * a * (n[1] - n[0]) + n[0], i * a * (n[3] - n[2]) + n[2]];
        }
        readComponents() {
          const { bitsPerComponent: e, colorFn: n, colorSpace: s, decode: i, numComps: a } = this.context, r = e < 32 ? 1 / ((1 << e) - 1) : 23283064365386963e-26, o = this.tmpCompsBuf;
          for (let f = 0, c = 4; f < a; f++, c += 2) {
            const h = this.readBits(e);
            o[f] = h * r * (i[c + 1] - i[c]) + i[c];
          }
          const l = this.tmpCsCompsBuf;
          return n?.(o, 0, l, 0), s.getRgb(l, 0);
        }
      };
      bd = /* @__PURE__ */ Object.create(null);
      p(Gw, "buildB");
      p(wd, "getB");
      p(Ww, "clearPatternCaches");
      Yi = class _Yi extends Qr {
        static {
          p(this, "MeshShading");
        }
        static MIN_SPLIT_PATCH_CHUNKS_AMOUNT = 3;
        static MAX_SPLIT_PATCH_CHUNKS_AMOUNT = 20;
        static TRIANGLE_DENSITY = 20;
        constructor(e, n, s, i, a, r) {
          if (super(), !(e instanceof ze)) throw new Q("Mesh data is not a stream");
          const o = e.dict;
          this.shadingType = o.get("ShadingType"), this.bbox = di(o.getArray("BBox"), null);
          const l = ut.parse({ cs: o.getRaw("CS") || o.getRaw("ColorSpace"), xref: n, resources: s, pdfFunctionFactory: i, globalColorSpaceCache: a, localColorSpaceCache: r });
          this.background = o.has("Background") ? l.getRgb(o.get("Background"), 0) : null;
          const f = o.getRaw("Function"), c = f ? i.create(f, true) : null;
          this.coords = [], this.colors = [], this.figures = [];
          const h = { bitsPerCoordinate: o.get("BitsPerCoordinate"), bitsPerComponent: o.get("BitsPerComponent"), bitsPerFlag: o.get("BitsPerFlag"), decode: o.getArray("Decode"), colorFn: c, colorSpace: l, numComps: c ? 1 : l.numComps }, u = new Uw(e, h);
          let d = false;
          switch (this.shadingType) {
            case Xn.FREE_FORM_MESH:
              this._decodeType4Shading(u);
              break;
            case Xn.LATTICE_FORM_MESH:
              const m = o.get("VerticesPerRow") | 0;
              if (m < 2) throw new Q("Invalid VerticesPerRow");
              this._decodeType5Shading(u, m);
              break;
            case Xn.COONS_PATCH_MESH:
              this._decodeType6Shading(u), d = true;
              break;
            case Xn.TENSOR_PATCH_MESH:
              this._decodeType7Shading(u), d = true;
              break;
            default:
              Ye("Unsupported mesh type.");
              break;
          }
          if (d) {
            this._updateBounds();
            for (let m = 0, g = this.figures.length; m < g; m++) this._buildFigureFromPatch(m);
          }
          this._updateBounds(), this._packData();
        }
        _decodeType4Shading(e) {
          const n = this.coords, s = this.colors, i = [];
          let a = 0;
          for (; e.hasData; ) {
            const r = e.readFlag(), o = e.readCoordinate(), l = e.readComponents();
            if (a === 0) {
              if (!(0 <= r && r <= 2)) throw new Q("Unknown type4 flag");
              switch (r) {
                case 0:
                  a = 3;
                  break;
                case 1:
                  i.push(i.at(-2), i.at(-1)), a = 1;
                  break;
                case 2:
                  i.push(i.at(-3), i.at(-1)), a = 1;
                  break;
              }
            }
            i.push(n.length), n.push(o), s.push(l), a--, e.align();
          }
          this.figures.push({ type: Ha.TRIANGLES, coords: new Int32Array(i), colors: new Int32Array(i) });
        }
        _decodeType5Shading(e, n) {
          const s = this.coords, i = this.colors, a = [];
          for (; e.hasData; ) {
            const r = e.readCoordinate(), o = e.readComponents();
            a.push(s.length), s.push(r), i.push(o);
          }
          this.figures.push({ type: Ha.LATTICE, coords: new Int32Array(a), colors: new Int32Array(a), verticesPerRow: n });
        }
        _decodeType6Shading(e) {
          const n = this.coords, s = this.colors, i = new Int32Array(16), a = new Int32Array(4);
          for (; e.hasData; ) {
            const r = e.readFlag();
            if (!(0 <= r && r <= 3)) throw new Q("Unknown type6 flag");
            const o = n.length;
            for (let d = 0, m = r !== 0 ? 8 : 12; d < m; d++) n.push(e.readCoordinate());
            const l = s.length;
            for (let d = 0, m = r !== 0 ? 2 : 4; d < m; d++) s.push(e.readComponents());
            let f, c, h, u;
            switch (r) {
              case 0:
                i[12] = o + 3, i[13] = o + 4, i[14] = o + 5, i[15] = o + 6, i[8] = o + 2, i[11] = o + 7, i[4] = o + 1, i[7] = o + 8, i[0] = o, i[1] = o + 11, i[2] = o + 10, i[3] = o + 9, a[2] = l + 1, a[3] = l + 2, a[0] = l, a[1] = l + 3;
                break;
              case 1:
                f = i[12], c = i[13], h = i[14], u = i[15], i[12] = u, i[13] = o + 0, i[14] = o + 1, i[15] = o + 2, i[8] = h, i[11] = o + 3, i[4] = c, i[7] = o + 4, i[0] = f, i[1] = o + 7, i[2] = o + 6, i[3] = o + 5, f = a[2], c = a[3], a[2] = c, a[3] = l, a[0] = f, a[1] = l + 1;
                break;
              case 2:
                f = i[15], c = i[11], i[12] = i[3], i[13] = o + 0, i[14] = o + 1, i[15] = o + 2, i[8] = i[7], i[11] = o + 3, i[4] = c, i[7] = o + 4, i[0] = f, i[1] = o + 7, i[2] = o + 6, i[3] = o + 5, f = a[3], a[2] = a[1], a[3] = l, a[0] = f, a[1] = l + 1;
                break;
              case 3:
                i[12] = i[0], i[13] = o + 0, i[14] = o + 1, i[15] = o + 2, i[8] = i[1], i[11] = o + 3, i[4] = i[2], i[7] = o + 4, i[0] = i[3], i[1] = o + 7, i[2] = o + 6, i[3] = o + 5, a[2] = a[0], a[3] = l, a[0] = a[1], a[1] = l + 1;
                break;
            }
            i[5] = n.length, n.push([(-4 * n[i[0]][0] - n[i[15]][0] + 6 * (n[i[4]][0] + n[i[1]][0]) - 2 * (n[i[12]][0] + n[i[3]][0]) + 3 * (n[i[13]][0] + n[i[7]][0])) / 9, (-4 * n[i[0]][1] - n[i[15]][1] + 6 * (n[i[4]][1] + n[i[1]][1]) - 2 * (n[i[12]][1] + n[i[3]][1]) + 3 * (n[i[13]][1] + n[i[7]][1])) / 9]), i[6] = n.length, n.push([(-4 * n[i[3]][0] - n[i[12]][0] + 6 * (n[i[2]][0] + n[i[7]][0]) - 2 * (n[i[0]][0] + n[i[15]][0]) + 3 * (n[i[4]][0] + n[i[14]][0])) / 9, (-4 * n[i[3]][1] - n[i[12]][1] + 6 * (n[i[2]][1] + n[i[7]][1]) - 2 * (n[i[0]][1] + n[i[15]][1]) + 3 * (n[i[4]][1] + n[i[14]][1])) / 9]), i[9] = n.length, n.push([(-4 * n[i[12]][0] - n[i[3]][0] + 6 * (n[i[8]][0] + n[i[13]][0]) - 2 * (n[i[0]][0] + n[i[15]][0]) + 3 * (n[i[11]][0] + n[i[1]][0])) / 9, (-4 * n[i[12]][1] - n[i[3]][1] + 6 * (n[i[8]][1] + n[i[13]][1]) - 2 * (n[i[0]][1] + n[i[15]][1]) + 3 * (n[i[11]][1] + n[i[1]][1])) / 9]), i[10] = n.length, n.push([(-4 * n[i[15]][0] - n[i[0]][0] + 6 * (n[i[11]][0] + n[i[14]][0]) - 2 * (n[i[12]][0] + n[i[3]][0]) + 3 * (n[i[2]][0] + n[i[8]][0])) / 9, (-4 * n[i[15]][1] - n[i[0]][1] + 6 * (n[i[11]][1] + n[i[14]][1]) - 2 * (n[i[12]][1] + n[i[3]][1]) + 3 * (n[i[2]][1] + n[i[8]][1])) / 9]), this.figures.push({ type: Ha.PATCH, coords: new Int32Array(i), colors: new Int32Array(a) });
          }
        }
        _decodeType7Shading(e) {
          const n = this.coords, s = this.colors, i = new Int32Array(16), a = new Int32Array(4);
          for (; e.hasData; ) {
            const r = e.readFlag();
            if (!(0 <= r && r <= 3)) throw new Q("Unknown type7 flag");
            const o = n.length;
            for (let d = 0, m = r !== 0 ? 12 : 16; d < m; d++) n.push(e.readCoordinate());
            const l = s.length;
            for (let d = 0, m = r !== 0 ? 2 : 4; d < m; d++) s.push(e.readComponents());
            let f, c, h, u;
            switch (r) {
              case 0:
                i[12] = o + 3, i[13] = o + 4, i[14] = o + 5, i[15] = o + 6, i[8] = o + 2, i[9] = o + 13, i[10] = o + 14, i[11] = o + 7, i[4] = o + 1, i[5] = o + 12, i[6] = o + 15, i[7] = o + 8, i[0] = o, i[1] = o + 11, i[2] = o + 10, i[3] = o + 9, a[2] = l + 1, a[3] = l + 2, a[0] = l, a[1] = l + 3;
                break;
              case 1:
                f = i[12], c = i[13], h = i[14], u = i[15], i[12] = u, i[13] = o + 0, i[14] = o + 1, i[15] = o + 2, i[8] = h, i[9] = o + 9, i[10] = o + 10, i[11] = o + 3, i[4] = c, i[5] = o + 8, i[6] = o + 11, i[7] = o + 4, i[0] = f, i[1] = o + 7, i[2] = o + 6, i[3] = o + 5, f = a[2], c = a[3], a[2] = c, a[3] = l, a[0] = f, a[1] = l + 1;
                break;
              case 2:
                f = i[15], c = i[11], i[12] = i[3], i[13] = o + 0, i[14] = o + 1, i[15] = o + 2, i[8] = i[7], i[9] = o + 9, i[10] = o + 10, i[11] = o + 3, i[4] = c, i[5] = o + 8, i[6] = o + 11, i[7] = o + 4, i[0] = f, i[1] = o + 7, i[2] = o + 6, i[3] = o + 5, f = a[3], a[2] = a[1], a[3] = l, a[0] = f, a[1] = l + 1;
                break;
              case 3:
                i[12] = i[0], i[13] = o + 0, i[14] = o + 1, i[15] = o + 2, i[8] = i[1], i[9] = o + 9, i[10] = o + 10, i[11] = o + 3, i[4] = i[2], i[5] = o + 8, i[6] = o + 11, i[7] = o + 4, i[0] = i[3], i[1] = o + 7, i[2] = o + 6, i[3] = o + 5, a[2] = a[0], a[3] = l, a[0] = a[1], a[1] = l + 1;
                break;
            }
            this.figures.push({ type: Ha.PATCH, coords: new Int32Array(i), colors: new Int32Array(a) });
          }
        }
        _buildFigureFromPatch(e) {
          const n = this.figures[e];
          Bt(n.type === Ha.PATCH, "Unexpected patch mesh figure");
          const s = this.coords, i = this.colors, a = n.coords, r = n.colors, o = Math.min(s[a[0]][0], s[a[3]][0], s[a[12]][0], s[a[15]][0]), l = Math.min(s[a[0]][1], s[a[3]][1], s[a[12]][1], s[a[15]][1]), f = Math.max(s[a[0]][0], s[a[3]][0], s[a[12]][0], s[a[15]][0]), c = Math.max(s[a[0]][1], s[a[3]][1], s[a[12]][1], s[a[15]][1]);
          let h = Math.ceil((f - o) * _Yi.TRIANGLE_DENSITY / (this.bounds[2] - this.bounds[0]));
          h = en(h, _Yi.MIN_SPLIT_PATCH_CHUNKS_AMOUNT, _Yi.MAX_SPLIT_PATCH_CHUNKS_AMOUNT);
          let u = Math.ceil((c - l) * _Yi.TRIANGLE_DENSITY / (this.bounds[3] - this.bounds[1]));
          u = en(u, _Yi.MIN_SPLIT_PATCH_CHUNKS_AMOUNT, _Yi.MAX_SPLIT_PATCH_CHUNKS_AMOUNT);
          const d = h + 1, m = new Int32Array((u + 1) * d), g = new Int32Array((u + 1) * d);
          let b = 0;
          const w = new Uint8Array(3), x = new Uint8Array(3), y = i[r[0]], j = i[r[1]], v = i[r[2]], q = i[r[3]], A = wd(u), C = wd(h);
          for (let S = 0; S <= u; S++) {
            w[0] = (y[0] * (u - S) + v[0] * S) / u | 0, w[1] = (y[1] * (u - S) + v[1] * S) / u | 0, w[2] = (y[2] * (u - S) + v[2] * S) / u | 0, x[0] = (j[0] * (u - S) + q[0] * S) / u | 0, x[1] = (j[1] * (u - S) + q[1] * S) / u | 0, x[2] = (j[2] * (u - S) + q[2] * S) / u | 0;
            for (let I = 0; I <= h; I++, b++) {
              if ((S === 0 || S === u) && (I === 0 || I === h)) continue;
              let T = 0, P = 0, H = 0;
              for (let Z = 0; Z <= 3; Z++) for (let z = 0; z <= 3; z++, H++) {
                const O = A[S][Z] * C[I][z];
                T += s[a[H]][0] * O, P += s[a[H]][1] * O;
              }
              m[b] = s.length, s.push([T, P]), g[b] = i.length;
              const G = new Uint8Array(3);
              G[0] = (w[0] * (h - I) + x[0] * I) / h | 0, G[1] = (w[1] * (h - I) + x[1] * I) / h | 0, G[2] = (w[2] * (h - I) + x[2] * I) / h | 0, i.push(G);
            }
          }
          m[0] = a[0], g[0] = r[0], m[h] = a[3], g[h] = r[1], m[d * u] = a[12], g[d * u] = r[2], m[d * u + h] = a[15], g[d * u + h] = r[3], this.figures[e] = { type: Ha.LATTICE, coords: m, colors: g, verticesPerRow: d };
        }
        _updateBounds() {
          let e = this.coords[0][0], n = this.coords[0][1], s = e, i = n;
          for (let a = 1, r = this.coords.length; a < r; a++) {
            const o = this.coords[a][0], l = this.coords[a][1];
            e = e > o ? o : e, n = n > l ? l : n, s = s < o ? o : s, i = i < l ? l : i;
          }
          this.bounds = [e, n, s, i];
        }
        _packData() {
          let e, n, s;
          const i = this.coords, a = new Float32Array(i.length * 2);
          for (e = 0, s = 0, n = i.length; e < n; e++) {
            const f = i[e];
            a[s++] = f[0], a[s++] = f[1];
          }
          this.coords = a;
          const r = this.colors, o = new Uint8Array(r.length * 4);
          for (e = 0, s = 0, n = r.length; e < n; e++) {
            const f = r[e];
            o[s++] = f[0], o[s++] = f[1], o[s++] = f[2], s++;
          }
          this.colors = o;
          const l = this.figures;
          for (e = 0, n = l.length; e < n; e++) {
            const f = l[e];
            f.coords = new Uint32Array(f.coords), f.colors = new Uint32Array(f.colors);
          }
        }
        getIR() {
          return ["Mesh", this.shadingType, this.coords, this.colors, this.figures, this.bounds, this.bbox, this.background];
        }
      };
      $w = class extends Qr {
        static {
          p(this, "DummyShading");
        }
        getIR() {
          return ["Dummy"];
        }
      };
      p(xd, "getTilingPatternIR");
      Vw = [1.3877, 1, 1, 1, 0.97801, 0.92482, 0.89552, 0.91133, 0.81988, 0.97566, 0.98152, 0.93548, 0.93548, 1.2798, 0.85284, 0.92794, 1, 0.96134, 1.54657, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.82845, 0.82845, 0.85284, 0.85284, 0.85284, 0.75859, 0.92138, 0.83908, 0.7762, 0.73293, 0.87289, 0.73133, 0.7514, 0.81921, 0.87356, 0.95958, 0.59526, 0.75727, 0.69225, 1.04924, 0.9121, 0.86943, 0.79795, 0.88198, 0.77958, 0.70864, 0.81055, 0.90399, 0.88653, 0.96017, 0.82577, 0.77892, 0.78257, 0.97507, 1.54657, 0.97507, 0.85284, 0.89552, 0.90176, 0.88762, 0.8785, 0.75241, 0.8785, 0.90518, 0.95015, 0.77618, 0.8785, 0.88401, 0.91916, 0.86304, 0.88401, 0.91488, 0.8785, 0.8801, 0.8785, 0.8785, 0.91343, 0.7173, 1.04106, 0.8785, 0.85075, 0.95794, 0.82616, 0.85162, 0.79492, 0.88331, 1.69808, 0.88331, 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133, 1.7801, 0.89552, 1.24487, 1.13254, 1.12401, 0.96839, 0.85284, 0.68787, 0.70645, 0.85592, 0.90747, 1.01466, 1.0088, 0.90323, 1, 1.07463, 1, 0.91056, 0.75806, 1.19118, 0.96839, 0.78864, 0.82845, 0.84133, 0.75859, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.77539, 0.73293, 0.73133, 0.73133, 0.73133, 0.73133, 0.95958, 0.95958, 0.95958, 0.95958, 0.88506, 0.9121, 0.86943, 0.86943, 0.86943, 0.86943, 0.86943, 0.85284, 0.87508, 0.90399, 0.90399, 0.90399, 0.90399, 0.77892, 0.79795, 0.90807, 0.88762, 0.88762, 0.88762, 0.88762, 0.88762, 0.88762, 0.8715, 0.75241, 0.90518, 0.90518, 0.90518, 0.90518, 0.88401, 0.88401, 0.88401, 0.88401, 0.8785, 0.8785, 0.8801, 0.8801, 0.8801, 0.8801, 0.8801, 0.90747, 0.89049, 0.8785, 0.8785, 0.8785, 0.8785, 0.85162, 0.8785, 0.85162, 0.83908, 0.88762, 0.83908, 0.88762, 0.83908, 0.88762, 0.73293, 0.75241, 0.73293, 0.75241, 0.73293, 0.75241, 0.73293, 0.75241, 0.87289, 0.83016, 0.88506, 0.93125, 0.73133, 0.90518, 0.73133, 0.90518, 0.73133, 0.90518, 0.73133, 0.90518, 0.73133, 0.90518, 0.81921, 0.77618, 0.81921, 0.77618, 0.81921, 0.77618, 1, 1, 0.87356, 0.8785, 0.91075, 0.89608, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.76229, 0.90167, 0.59526, 0.91916, 1, 1, 0.86304, 0.69225, 0.88401, 1, 1, 0.70424, 0.79468, 0.91926, 0.88175, 0.70823, 0.94903, 0.9121, 0.8785, 1, 1, 0.9121, 0.8785, 0.87802, 0.88656, 0.8785, 0.86943, 0.8801, 0.86943, 0.8801, 0.86943, 0.8801, 0.87402, 0.89291, 0.77958, 0.91343, 1, 1, 0.77958, 0.91343, 0.70864, 0.7173, 0.70864, 0.7173, 0.70864, 0.7173, 0.70864, 0.7173, 1, 1, 0.81055, 0.75841, 0.81055, 1.06452, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.96017, 0.95794, 0.77892, 0.85162, 0.77892, 0.78257, 0.79492, 0.78257, 0.79492, 0.78257, 0.79492, 0.9297, 0.56892, 0.83908, 0.88762, 0.77539, 0.8715, 0.87508, 0.89049, 1, 1, 0.81055, 1.04106, 1.20528, 1.20528, 1, 1.15543, 0.70674, 0.98387, 0.94721, 1.33431, 1.45894, 0.95161, 1.06303, 0.83908, 0.80352, 0.57184, 0.6965, 0.56289, 0.82001, 0.56029, 0.81235, 1.02988, 0.83908, 0.7762, 0.68156, 0.80367, 0.73133, 0.78257, 0.87356, 0.86943, 0.95958, 0.75727, 0.89019, 1.04924, 0.9121, 0.7648, 0.86943, 0.87356, 0.79795, 0.78275, 0.81055, 0.77892, 0.9762, 0.82577, 0.99819, 0.84896, 0.95958, 0.77892, 0.96108, 1.01407, 0.89049, 1.02988, 0.94211, 0.96108, 0.8936, 0.84021, 0.87842, 0.96399, 0.79109, 0.89049, 1.00813, 1.02988, 0.86077, 0.87445, 0.92099, 0.84723, 0.86513, 0.8801, 0.75638, 0.85714, 0.78216, 0.79586, 0.87965, 0.94211, 0.97747, 0.78287, 0.97926, 0.84971, 1.02988, 0.94211, 0.8801, 0.94211, 0.84971, 0.73133, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90264, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90518, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90548, 1, 1, 1, 1, 1, 1, 0.96017, 0.95794, 0.96017, 0.95794, 0.96017, 0.95794, 0.77892, 0.85162, 1, 1, 0.89552, 0.90527, 1, 0.90363, 0.92794, 0.92794, 0.92794, 0.92794, 0.87012, 0.87012, 0.87012, 0.89552, 0.89552, 1.42259, 0.71143, 1.06152, 1, 1, 1.03372, 1.03372, 0.97171, 1.4956, 2.2807, 0.93835, 0.83406, 0.91133, 0.84107, 0.91133, 1, 1, 1, 0.72021, 1, 1.23108, 0.83489, 0.88525, 0.88525, 0.81499, 0.90527, 1.81055, 0.90527, 1.81055, 1.31006, 1.53711, 0.94434, 1.08696, 1, 0.95018, 0.77192, 0.85284, 0.90747, 1.17534, 0.69825, 0.9716, 1.37077, 0.90747, 0.90747, 0.85356, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.08004, 0.91027, 1, 1, 1, 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90727, 0.90727, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
      Kw = { lineHeight: 1.2207, lineGap: 0.2207 };
      Xw = [1.3877, 1, 1, 1, 0.97801, 0.92482, 0.89552, 0.91133, 0.81988, 0.97566, 0.98152, 0.93548, 0.93548, 1.2798, 0.85284, 0.92794, 1, 0.96134, 1.56239, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.82845, 0.82845, 0.85284, 0.85284, 0.85284, 0.75859, 0.92138, 0.83908, 0.7762, 0.71805, 0.87289, 0.73133, 0.7514, 0.81921, 0.87356, 0.95958, 0.59526, 0.75727, 0.69225, 1.04924, 0.90872, 0.85938, 0.79795, 0.87068, 0.77958, 0.69766, 0.81055, 0.90399, 0.88653, 0.96068, 0.82577, 0.77892, 0.78257, 0.97507, 1.529, 0.97507, 0.85284, 0.89552, 0.90176, 0.94908, 0.86411, 0.74012, 0.86411, 0.88323, 0.95015, 0.86411, 0.86331, 0.88401, 0.91916, 0.86304, 0.88401, 0.9039, 0.86331, 0.86331, 0.86411, 0.86411, 0.90464, 0.70852, 1.04106, 0.86331, 0.84372, 0.95794, 0.82616, 0.84548, 0.79492, 0.88331, 1.69808, 0.88331, 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133, 1.7801, 0.89552, 1.24487, 1.13254, 1.19129, 0.96839, 0.85284, 0.68787, 0.70645, 0.85592, 0.90747, 1.01466, 1.0088, 0.90323, 1, 1.07463, 1, 0.91056, 0.75806, 1.19118, 0.96839, 0.78864, 0.82845, 0.84133, 0.75859, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.77539, 0.71805, 0.73133, 0.73133, 0.73133, 0.73133, 0.95958, 0.95958, 0.95958, 0.95958, 0.88506, 0.90872, 0.85938, 0.85938, 0.85938, 0.85938, 0.85938, 0.85284, 0.87068, 0.90399, 0.90399, 0.90399, 0.90399, 0.77892, 0.79795, 0.90807, 0.94908, 0.94908, 0.94908, 0.94908, 0.94908, 0.94908, 0.85887, 0.74012, 0.88323, 0.88323, 0.88323, 0.88323, 0.88401, 0.88401, 0.88401, 0.88401, 0.8785, 0.86331, 0.86331, 0.86331, 0.86331, 0.86331, 0.86331, 0.90747, 0.89049, 0.86331, 0.86331, 0.86331, 0.86331, 0.84548, 0.86411, 0.84548, 0.83908, 0.94908, 0.83908, 0.94908, 0.83908, 0.94908, 0.71805, 0.74012, 0.71805, 0.74012, 0.71805, 0.74012, 0.71805, 0.74012, 0.87289, 0.79538, 0.88506, 0.92726, 0.73133, 0.88323, 0.73133, 0.88323, 0.73133, 0.88323, 0.73133, 0.88323, 0.73133, 0.88323, 0.81921, 0.86411, 0.81921, 0.86411, 0.81921, 0.86411, 1, 1, 0.87356, 0.86331, 0.91075, 0.8777, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.76467, 0.90167, 0.59526, 0.91916, 1, 1, 0.86304, 0.69225, 0.88401, 1, 1, 0.70424, 0.77312, 0.91926, 0.88175, 0.70823, 0.94903, 0.90872, 0.86331, 1, 1, 0.90872, 0.86331, 0.86906, 0.88116, 0.86331, 0.85938, 0.86331, 0.85938, 0.86331, 0.85938, 0.86331, 0.87402, 0.86549, 0.77958, 0.90464, 1, 1, 0.77958, 0.90464, 0.69766, 0.70852, 0.69766, 0.70852, 0.69766, 0.70852, 0.69766, 0.70852, 1, 1, 0.81055, 0.75841, 0.81055, 1.06452, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.96068, 0.95794, 0.77892, 0.84548, 0.77892, 0.78257, 0.79492, 0.78257, 0.79492, 0.78257, 0.79492, 0.9297, 0.56892, 0.83908, 0.94908, 0.77539, 0.85887, 0.87068, 0.89049, 1, 1, 0.81055, 1.04106, 1.20528, 1.20528, 1, 1.15543, 0.70088, 0.98387, 0.94721, 1.33431, 1.45894, 0.95161, 1.48387, 0.83908, 0.80352, 0.57118, 0.6965, 0.56347, 0.79179, 0.55853, 0.80346, 1.02988, 0.83908, 0.7762, 0.67174, 0.86036, 0.73133, 0.78257, 0.87356, 0.86441, 0.95958, 0.75727, 0.89019, 1.04924, 0.90872, 0.74889, 0.85938, 0.87891, 0.79795, 0.7957, 0.81055, 0.77892, 0.97447, 0.82577, 0.97466, 0.87179, 0.95958, 0.77892, 0.94252, 0.95612, 0.8753, 1.02988, 0.92733, 0.94252, 0.87411, 0.84021, 0.8728, 0.95612, 0.74081, 0.8753, 1.02189, 1.02988, 0.84814, 0.87445, 0.91822, 0.84723, 0.85668, 0.86331, 0.81344, 0.87581, 0.76422, 0.82046, 0.96057, 0.92733, 0.99375, 0.78022, 0.95452, 0.86015, 1.02988, 0.92733, 0.86331, 0.92733, 0.86015, 0.73133, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90631, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.88323, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.85174, 1, 1, 1, 1, 1, 1, 0.96068, 0.95794, 0.96068, 0.95794, 0.96068, 0.95794, 0.77892, 0.84548, 1, 1, 0.89552, 0.90527, 1, 0.90363, 0.92794, 0.92794, 0.92794, 0.89807, 0.87012, 0.87012, 0.87012, 0.89552, 0.89552, 1.42259, 0.71094, 1.06152, 1, 1, 1.03372, 1.03372, 0.97171, 1.4956, 2.2807, 0.92972, 0.83406, 0.91133, 0.83326, 0.91133, 1, 1, 1, 0.72021, 1, 1.23108, 0.83489, 0.88525, 0.88525, 0.81499, 0.90616, 1.81055, 0.90527, 1.81055, 1.3107, 1.53711, 0.94434, 1.08696, 1, 0.95018, 0.77192, 0.85284, 0.90747, 1.17534, 0.69825, 0.9716, 1.37077, 0.90747, 0.90747, 0.85356, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.08004, 0.91027, 1, 1, 1, 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90727, 0.90727, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
      Yw = { lineHeight: 1.2207, lineGap: 0.2207 };
      Qw = [1.3877, 1, 1, 1, 1.17223, 1.1293, 0.89552, 0.91133, 0.80395, 1.02269, 1.15601, 0.91056, 0.91056, 1.2798, 0.85284, 0.89807, 1, 0.90861, 1.39543, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.96309, 0.96309, 0.85284, 0.85284, 0.85284, 0.83319, 0.88071, 0.8675, 0.81552, 0.72346, 0.85193, 0.73206, 0.7522, 0.81105, 0.86275, 0.90685, 0.6377, 0.77892, 0.75593, 1.02638, 0.89249, 0.84118, 0.77452, 0.85374, 0.75186, 0.67789, 0.79776, 0.88844, 0.85066, 0.94309, 0.77818, 0.7306, 0.76659, 1.10369, 1.38313, 1.10369, 1.06139, 0.89552, 0.8739, 0.9245, 0.9245, 0.83203, 0.9245, 0.85865, 1.09842, 0.9245, 0.9245, 1.03297, 1.07692, 0.90918, 1.03297, 0.94959, 0.9245, 0.92274, 0.9245, 0.9245, 1.02933, 0.77832, 1.20562, 0.9245, 0.8916, 0.98986, 0.86621, 0.89453, 0.79004, 0.94152, 1.77256, 0.94152, 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133, 1.91729, 0.89552, 1.17889, 1.13254, 1.16359, 0.92098, 0.85284, 0.68787, 0.71353, 0.84737, 0.90747, 1.0088, 1.0044, 0.87683, 1, 1.09091, 1, 0.92229, 0.739, 1.15642, 0.92098, 0.76288, 0.80504, 0.80972, 0.75859, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.76318, 0.72346, 0.73206, 0.73206, 0.73206, 0.73206, 0.90685, 0.90685, 0.90685, 0.90685, 0.86477, 0.89249, 0.84118, 0.84118, 0.84118, 0.84118, 0.84118, 0.85284, 0.84557, 0.88844, 0.88844, 0.88844, 0.88844, 0.7306, 0.77452, 0.86331, 0.9245, 0.9245, 0.9245, 0.9245, 0.9245, 0.9245, 0.84843, 0.83203, 0.85865, 0.85865, 0.85865, 0.85865, 0.82601, 0.82601, 0.82601, 0.82601, 0.94469, 0.9245, 0.92274, 0.92274, 0.92274, 0.92274, 0.92274, 0.90747, 0.86651, 0.9245, 0.9245, 0.9245, 0.9245, 0.89453, 0.9245, 0.89453, 0.8675, 0.9245, 0.8675, 0.9245, 0.8675, 0.9245, 0.72346, 0.83203, 0.72346, 0.83203, 0.72346, 0.83203, 0.72346, 0.83203, 0.85193, 0.8875, 0.86477, 0.99034, 0.73206, 0.85865, 0.73206, 0.85865, 0.73206, 0.85865, 0.73206, 0.85865, 0.73206, 0.85865, 0.81105, 0.9245, 0.81105, 0.9245, 0.81105, 0.9245, 1, 1, 0.86275, 0.9245, 0.90872, 0.93591, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685, 1.03297, 0.90685, 0.82601, 0.77896, 1.05611, 0.6377, 1.07692, 1, 1, 0.90918, 0.75593, 1.03297, 1, 1, 0.76032, 0.9375, 0.98156, 0.93407, 0.77261, 1.11429, 0.89249, 0.9245, 1, 1, 0.89249, 0.9245, 0.92534, 0.86698, 0.9245, 0.84118, 0.92274, 0.84118, 0.92274, 0.84118, 0.92274, 0.8667, 0.86291, 0.75186, 1.02933, 1, 1, 0.75186, 1.02933, 0.67789, 0.77832, 0.67789, 0.77832, 0.67789, 0.77832, 0.67789, 0.77832, 1, 1, 0.79776, 0.97655, 0.79776, 1.23023, 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245, 0.94309, 0.98986, 0.7306, 0.89453, 0.7306, 0.76659, 0.79004, 0.76659, 0.79004, 0.76659, 0.79004, 1.09231, 0.54873, 0.8675, 0.9245, 0.76318, 0.84843, 0.84557, 0.86651, 1, 1, 0.79776, 1.20562, 1.18622, 1.18622, 1, 1.1437, 0.67009, 0.96334, 0.93695, 1.35191, 1.40909, 0.95161, 1.48387, 0.8675, 0.90861, 0.6192, 0.7363, 0.64824, 0.82411, 0.56321, 0.85696, 1.23516, 0.8675, 0.81552, 0.7286, 0.84134, 0.73206, 0.76659, 0.86275, 0.84369, 0.90685, 0.77892, 0.85871, 1.02638, 0.89249, 0.75828, 0.84118, 0.85984, 0.77452, 0.76466, 0.79776, 0.7306, 0.90782, 0.77818, 0.903, 0.87291, 0.90685, 0.7306, 0.99058, 1.03667, 0.94635, 1.23516, 0.9849, 0.99058, 0.92393, 0.8916, 0.942, 1.03667, 0.75026, 0.94635, 1.0297, 1.23516, 0.90918, 0.94048, 0.98217, 0.89746, 0.84153, 0.92274, 0.82507, 0.88832, 0.84438, 0.88178, 1.03525, 0.9849, 1.00225, 0.78086, 0.97248, 0.89404, 1.23516, 0.9849, 0.92274, 0.9849, 0.89404, 0.73206, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.89693, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.85865, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90933, 1, 1, 1, 1, 1, 1, 0.94309, 0.98986, 0.94309, 0.98986, 0.94309, 0.98986, 0.7306, 0.89453, 1, 1, 0.89552, 0.90527, 1, 0.90186, 1.12308, 1.12308, 1.12308, 1.12308, 1.2566, 1.2566, 1.2566, 0.89552, 0.89552, 1.42259, 0.68994, 1.03809, 1, 1, 1.0176, 1.0176, 1.11523, 1.4956, 2.01462, 0.97858, 0.82616, 0.91133, 0.83437, 0.91133, 1, 1, 1, 0.70508, 1, 1.23108, 0.79801, 0.84426, 0.84426, 0.774, 0.90572, 1.81055, 0.90749, 1.81055, 1.28809, 1.55469, 0.94434, 1.07806, 1, 0.97094, 0.7589, 0.85284, 0.90747, 1.19658, 0.69825, 0.97622, 1.33512, 0.90747, 0.90747, 0.85284, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.0336, 0.91027, 1, 1, 1, 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05859, 1.05859, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
      Jw = { lineHeight: 1.2207, lineGap: 0.2207 };
      Zw = [1.3877, 1, 1, 1, 1.17223, 1.1293, 0.89552, 0.91133, 0.80395, 1.02269, 1.15601, 0.91056, 0.91056, 1.2798, 0.85284, 0.89807, 1, 0.90861, 1.39016, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.96309, 0.96309, 0.85284, 0.85284, 0.85284, 0.83319, 0.88071, 0.8675, 0.81552, 0.73834, 0.85193, 0.73206, 0.7522, 0.81105, 0.86275, 0.90685, 0.6377, 0.77892, 0.75593, 1.02638, 0.89385, 0.85122, 0.77452, 0.86503, 0.75186, 0.68887, 0.79776, 0.88844, 0.85066, 0.94258, 0.77818, 0.7306, 0.76659, 1.10369, 1.39016, 1.10369, 1.06139, 0.89552, 0.8739, 0.86128, 0.94469, 0.8457, 0.94469, 0.89464, 1.09842, 0.84636, 0.94469, 1.03297, 1.07692, 0.90918, 1.03297, 0.95897, 0.94469, 0.9482, 0.94469, 0.94469, 1.04692, 0.78223, 1.20562, 0.94469, 0.90332, 0.98986, 0.86621, 0.90527, 0.79004, 0.94152, 1.77256, 0.94152, 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133, 1.91729, 0.89552, 1.17889, 1.13254, 1.08707, 0.92098, 0.85284, 0.68787, 0.71353, 0.84737, 0.90747, 1.0088, 1.0044, 0.87683, 1, 1.09091, 1, 0.92229, 0.739, 1.15642, 0.92098, 0.76288, 0.80504, 0.80972, 0.75859, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.76318, 0.73834, 0.73206, 0.73206, 0.73206, 0.73206, 0.90685, 0.90685, 0.90685, 0.90685, 0.86477, 0.89385, 0.85122, 0.85122, 0.85122, 0.85122, 0.85122, 0.85284, 0.85311, 0.88844, 0.88844, 0.88844, 0.88844, 0.7306, 0.77452, 0.86331, 0.86128, 0.86128, 0.86128, 0.86128, 0.86128, 0.86128, 0.8693, 0.8457, 0.89464, 0.89464, 0.89464, 0.89464, 0.82601, 0.82601, 0.82601, 0.82601, 0.94469, 0.94469, 0.9482, 0.9482, 0.9482, 0.9482, 0.9482, 0.90747, 0.86651, 0.94469, 0.94469, 0.94469, 0.94469, 0.90527, 0.94469, 0.90527, 0.8675, 0.86128, 0.8675, 0.86128, 0.8675, 0.86128, 0.73834, 0.8457, 0.73834, 0.8457, 0.73834, 0.8457, 0.73834, 0.8457, 0.85193, 0.92454, 0.86477, 0.9921, 0.73206, 0.89464, 0.73206, 0.89464, 0.73206, 0.89464, 0.73206, 0.89464, 0.73206, 0.89464, 0.81105, 0.84636, 0.81105, 0.84636, 0.81105, 0.84636, 1, 1, 0.86275, 0.94469, 0.90872, 0.95786, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685, 1.03297, 0.90685, 0.82601, 0.77741, 1.05611, 0.6377, 1.07692, 1, 1, 0.90918, 0.75593, 1.03297, 1, 1, 0.76032, 0.90452, 0.98156, 1.11842, 0.77261, 1.11429, 0.89385, 0.94469, 1, 1, 0.89385, 0.94469, 0.95877, 0.86901, 0.94469, 0.85122, 0.9482, 0.85122, 0.9482, 0.85122, 0.9482, 0.8667, 0.90016, 0.75186, 1.04692, 1, 1, 0.75186, 1.04692, 0.68887, 0.78223, 0.68887, 0.78223, 0.68887, 0.78223, 0.68887, 0.78223, 1, 1, 0.79776, 0.92188, 0.79776, 1.23023, 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469, 0.94258, 0.98986, 0.7306, 0.90527, 0.7306, 0.76659, 0.79004, 0.76659, 0.79004, 0.76659, 0.79004, 1.09231, 0.54873, 0.8675, 0.86128, 0.76318, 0.8693, 0.85311, 0.86651, 1, 1, 0.79776, 1.20562, 1.18622, 1.18622, 1, 1.1437, 0.67742, 0.96334, 0.93695, 1.35191, 1.40909, 0.95161, 1.48387, 0.86686, 0.90861, 0.62267, 0.74359, 0.65649, 0.85498, 0.56963, 0.88254, 1.23516, 0.8675, 0.81552, 0.75443, 0.84503, 0.73206, 0.76659, 0.86275, 0.85122, 0.90685, 0.77892, 0.85746, 1.02638, 0.89385, 0.75657, 0.85122, 0.86275, 0.77452, 0.74171, 0.79776, 0.7306, 0.95165, 0.77818, 0.89772, 0.88831, 0.90685, 0.7306, 0.98142, 1.02191, 0.96576, 1.23516, 0.99018, 0.98142, 0.9236, 0.89258, 0.94035, 1.02191, 0.78848, 0.96576, 0.9561, 1.23516, 0.90918, 0.92578, 0.95424, 0.89746, 0.83969, 0.9482, 0.80113, 0.89442, 0.85208, 0.86155, 0.98022, 0.99018, 1.00452, 0.81209, 0.99247, 0.89181, 1.23516, 0.99018, 0.9482, 0.99018, 0.89181, 0.73206, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.88844, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.89464, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.96766, 1, 1, 1, 1, 1, 1, 0.94258, 0.98986, 0.94258, 0.98986, 0.94258, 0.98986, 0.7306, 0.90527, 1, 1, 0.89552, 0.90527, 1, 0.90186, 1.12308, 1.12308, 1.12308, 1.12308, 1.2566, 1.2566, 1.2566, 0.89552, 0.89552, 1.42259, 0.69043, 1.03809, 1, 1, 1.0176, 1.0176, 1.11523, 1.4956, 2.01462, 0.99331, 0.82616, 0.91133, 0.84286, 0.91133, 1, 1, 1, 0.70508, 1, 1.23108, 0.79801, 0.84426, 0.84426, 0.774, 0.90527, 1.81055, 0.90527, 1.81055, 1.28809, 1.55469, 0.94434, 1.07806, 1, 0.97094, 0.7589, 0.85284, 0.90747, 1.19658, 0.69825, 0.97622, 1.33512, 0.90747, 0.90747, 0.85356, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.0336, 0.91027, 1, 1, 1, 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05859, 1.05859, 1, 1, 1, 1.07185, 0.99413, 0.96334, 1.08065, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
      ex = { lineHeight: 1.2207, lineGap: 0.2207 };
      tx = [0.76116, 1, 1, 1.0006, 0.99998, 0.99974, 0.99973, 0.99973, 0.99982, 0.99977, 1.00087, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.00003, 1.00003, 1.00003, 1.00026, 0.9999, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977, 1.0006, 0.99973, 0.99977, 1.00026, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001, 1.00026, 0.99998, 1.0006, 0.99998, 1.00003, 0.99973, 0.99998, 0.99973, 1.00026, 0.99973, 1.00026, 0.99973, 0.99998, 1.00026, 1.00026, 1.0006, 1.0006, 0.99973, 1.0006, 0.99982, 1.00026, 1.00026, 1.00026, 1.00026, 0.99959, 0.99973, 0.99998, 1.00026, 0.99973, 1.00022, 0.99973, 0.99973, 1, 0.99959, 1.00077, 0.99959, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973, 0.99973, 1.00077, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.99973, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 1, 0.99977, 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.06409, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 0.99973, 1.00026, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 1.03374, 0.99977, 1.00026, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.00042, 0.99973, 0.99973, 1.0006, 0.99977, 0.99973, 0.99973, 1.00026, 1.0006, 1.00026, 1.0006, 1.00026, 1.03828, 1.00026, 0.99999, 1.00026, 1.0006, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.9993, 0.9998, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1, 1.00016, 0.99977, 0.99959, 0.99977, 0.99959, 0.99977, 0.99959, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00026, 0.99998, 1.00026, 0.8121, 1.00026, 0.99998, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 1.00016, 1.00022, 1.00001, 0.99973, 1.00001, 1.00026, 1, 1.00026, 1, 1.00026, 1, 1.0006, 0.99973, 0.99977, 0.99973, 1, 0.99982, 1.00022, 1.00026, 1.00001, 0.99973, 1.00026, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 1.00034, 0.99977, 1, 0.99997, 1.00026, 1.00078, 1.00036, 0.99973, 1.00013, 1.0006, 0.99977, 0.99977, 0.99988, 0.85148, 1.00001, 1.00026, 0.99977, 1.00022, 1.0006, 0.99977, 1.00001, 0.99999, 0.99977, 1.00069, 1.00022, 0.99977, 1.00001, 0.99984, 1.00026, 1.00001, 1.00024, 1.00001, 0.9999, 1, 1.0006, 1.00001, 1.00041, 0.99962, 1.00026, 1.0006, 0.99995, 1.00041, 0.99942, 0.99973, 0.99927, 1.00082, 0.99902, 1.00026, 1.00087, 1.0006, 1.00069, 0.99973, 0.99867, 0.99973, 0.9993, 1.00026, 1.00049, 1.00056, 1, 0.99988, 0.99935, 0.99995, 0.99954, 1.00055, 0.99945, 1.00032, 1.0006, 0.99995, 1.00026, 0.99995, 1.00032, 1.00001, 1.00008, 0.99971, 1.00019, 0.9994, 1.00001, 1.0006, 1.00044, 0.99973, 1.00023, 1.00047, 1, 0.99942, 0.99561, 0.99989, 1.00035, 0.99977, 1.00035, 0.99977, 1.00019, 0.99944, 1.00001, 1.00021, 0.99926, 1.00035, 1.00035, 0.99942, 1.00048, 0.99999, 0.99977, 1.00022, 1.00035, 1.00001, 0.99977, 1.00026, 0.99989, 1.00057, 1.00001, 0.99936, 1.00052, 1.00012, 0.99996, 1.00043, 1, 1.00035, 0.9994, 0.99976, 1.00035, 0.99973, 1.00052, 1.00041, 1.00119, 1.00037, 0.99973, 1.00002, 0.99986, 1.00041, 1.00041, 0.99902, 0.9996, 1.00034, 0.99999, 1.00026, 0.99999, 1.00026, 0.99973, 1.00052, 0.99973, 1, 0.99973, 1.00041, 1.00075, 0.9994, 1.0003, 0.99999, 1, 1.00041, 0.99955, 1, 0.99915, 0.99973, 0.99973, 1.00026, 1.00119, 0.99955, 0.99973, 1.0006, 0.99911, 1.0006, 1.00026, 0.99972, 1.00026, 0.99902, 1.00041, 0.99973, 0.99999, 1, 1, 1.00038, 1.0005, 1.00016, 1.00022, 1.00016, 1.00022, 1.00016, 1.00022, 1.00001, 0.99973, 1, 1, 0.99973, 1, 1, 0.99955, 1.0006, 1.0006, 1.0006, 1.0006, 1, 1, 1, 0.99973, 0.99973, 0.99972, 1, 1, 1.00106, 0.99999, 0.99998, 0.99998, 0.99999, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1.00023, 0.99973, 0.99971, 1.00047, 1.00023, 1, 0.99991, 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1, 1, 1, 1, 1, 1, 1, 0.99972, 1, 1.20985, 1.39713, 1.00003, 1.00031, 1.00015, 1, 0.99561, 1.00027, 1.00031, 1.00031, 0.99915, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.99972, 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998, 0.99998, 0.99998, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
      nx = { lineHeight: 1.2, lineGap: 0.2 };
      sx = [0.76116, 1, 1, 1.0006, 0.99998, 0.99974, 0.99973, 0.99973, 0.99982, 0.99977, 1.00087, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.00003, 1.00003, 1.00003, 1.00026, 0.9999, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977, 1.0006, 0.99973, 0.99977, 1.00026, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001, 1.00026, 0.99998, 1.0006, 0.99998, 1.00003, 0.99973, 0.99998, 0.99973, 1.00026, 0.99973, 1.00026, 0.99973, 0.99998, 1.00026, 1.00026, 1.0006, 1.0006, 0.99973, 1.0006, 0.99982, 1.00026, 1.00026, 1.00026, 1.00026, 0.99959, 0.99973, 0.99998, 1.00026, 0.99973, 1.00022, 0.99973, 0.99973, 1, 0.99959, 1.00077, 0.99959, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973, 0.99973, 1.00077, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.99973, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 1, 0.99977, 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.06409, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 0.99973, 1.00026, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 1.0044, 0.99977, 1.00026, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99971, 0.99973, 0.99973, 1.0006, 0.99977, 0.99973, 0.99973, 1.00026, 1.0006, 1.00026, 1.0006, 1.00026, 1.01011, 1.00026, 0.99999, 1.00026, 1.0006, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.9993, 0.9998, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1, 1.00016, 0.99977, 0.99959, 0.99977, 0.99959, 0.99977, 0.99959, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00026, 0.99998, 1.00026, 0.8121, 1.00026, 0.99998, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 1.00016, 1.00022, 1.00001, 0.99973, 1.00001, 1.00026, 1, 1.00026, 1, 1.00026, 1, 1.0006, 0.99973, 0.99977, 0.99973, 1, 0.99982, 1.00022, 1.00026, 1.00001, 0.99973, 1.00026, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99977, 1, 1, 1.00026, 0.99969, 0.99972, 0.99981, 0.9998, 1.0006, 0.99977, 0.99977, 1.00022, 0.91155, 1.00001, 1.00026, 0.99977, 1.00022, 1.0006, 0.99977, 1.00001, 0.99999, 0.99977, 0.99966, 1.00022, 1.00032, 1.00001, 0.99944, 1.00026, 1.00001, 0.99968, 1.00001, 1.00047, 1, 1.0006, 1.00001, 0.99981, 1.00101, 1.00026, 1.0006, 0.99948, 0.99981, 1.00064, 0.99973, 0.99942, 1.00101, 1.00061, 1.00026, 1.00069, 1.0006, 1.00014, 0.99973, 1.01322, 0.99973, 1.00065, 1.00026, 1.00012, 0.99923, 1, 1.00064, 1.00076, 0.99948, 1.00055, 1.00063, 1.00007, 0.99943, 1.0006, 0.99948, 1.00026, 0.99948, 0.99943, 1.00001, 1.00001, 1.00029, 1.00038, 1.00035, 1.00001, 1.0006, 1.0006, 0.99973, 0.99978, 1.00001, 1.00057, 0.99989, 0.99967, 0.99964, 0.99967, 0.99977, 0.99999, 0.99977, 1.00038, 0.99977, 1.00001, 0.99973, 1.00066, 0.99967, 0.99967, 1.00041, 0.99998, 0.99999, 0.99977, 1.00022, 0.99967, 1.00001, 0.99977, 1.00026, 0.99964, 1.00031, 1.00001, 0.99999, 0.99999, 1, 1.00023, 1, 1, 0.99999, 1.00035, 1.00001, 0.99999, 0.99973, 0.99977, 0.99999, 1.00058, 0.99973, 0.99973, 0.99955, 0.9995, 1.00026, 1.00026, 1.00032, 0.99989, 1.00034, 0.99999, 1.00026, 1.00026, 1.00026, 0.99973, 0.45998, 0.99973, 1.00026, 0.99973, 1.00001, 0.99999, 0.99982, 0.99994, 0.99996, 1, 1.00042, 1.00044, 1.00029, 1.00023, 0.99973, 0.99973, 1.00026, 0.99949, 1.00002, 0.99973, 1.0006, 1.0006, 1.0006, 0.99975, 1.00026, 1.00026, 1.00032, 0.98685, 0.99973, 1.00026, 1, 1, 0.99966, 1.00044, 1.00016, 1.00022, 1.00016, 1.00022, 1.00016, 1.00022, 1.00001, 0.99973, 1, 1, 0.99973, 1, 1, 0.99955, 1.0006, 1.0006, 1.0006, 1.0006, 1, 1, 1, 0.99973, 0.99973, 0.99972, 1, 1, 1.00106, 0.99999, 0.99998, 0.99998, 0.99999, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1, 0.99973, 0.99971, 0.99978, 1, 1, 0.99991, 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1.00098, 1, 1, 1, 1.00049, 1, 1, 0.99972, 1, 1.20985, 1.39713, 1.00003, 1.00031, 1.00015, 1, 0.99561, 1.00027, 1.00031, 1.00031, 0.99915, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.99972, 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998, 0.99998, 0.99998, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
      ix = { lineHeight: 1.35, lineGap: 0.2 };
      ax = [0.76116, 1, 1, 1.0006, 1.0006, 1.00006, 0.99973, 0.99973, 0.99982, 1.00001, 1.00043, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1, 1.00003, 1.00003, 1.00003, 0.99973, 0.99987, 1.00001, 1.00001, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977, 1.0006, 1, 1.00001, 0.99973, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001, 1.00026, 1.0006, 1.0006, 1.0006, 0.99949, 0.99973, 0.99998, 0.99973, 0.99973, 1, 0.99973, 0.99973, 1.0006, 0.99973, 0.99973, 0.99924, 0.99924, 1, 0.99924, 0.99999, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.0006, 0.99973, 1, 0.99977, 1, 1, 1, 1.00005, 1.0009, 1.00005, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973, 0.99973, 1.0009, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.9998, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1, 0.99977, 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 1, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.06409, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 1, 0.99973, 1, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1.0288, 0.99977, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99924, 1.0006, 1.0006, 0.99946, 1.00034, 1, 0.99924, 1.00001, 1, 1, 0.99973, 0.99924, 0.99973, 0.99924, 0.99973, 1.06311, 0.99973, 1.00024, 0.99973, 0.99924, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.00041, 0.9998, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1, 1.00016, 0.99977, 0.99998, 0.99977, 0.99998, 0.99977, 0.99998, 1.00001, 1, 1.00001, 1, 1.00001, 1, 1.00001, 1, 1.00026, 1.0006, 1.00026, 0.89547, 1.00026, 1.0006, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.00016, 0.99977, 1.00001, 1, 1.00001, 1.00026, 1, 1.00026, 1, 1.00026, 1, 0.99924, 0.99973, 1.00001, 0.99973, 1, 0.99982, 1.00022, 1.00026, 1.00001, 1, 1.00026, 1.0006, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 1.00001, 1, 1.00054, 0.99977, 1.00084, 1.00007, 0.99973, 1.00013, 0.99924, 1.00001, 1.00001, 0.99945, 0.91221, 1.00001, 1.00026, 0.99977, 1.00022, 1.0006, 1.00001, 1.00001, 0.99999, 0.99977, 0.99933, 1.00022, 1.00054, 1.00001, 1.00065, 1.00026, 1.00001, 1.0001, 1.00001, 1.00052, 1, 1.0006, 1.00001, 0.99945, 0.99897, 0.99968, 0.99924, 1.00036, 0.99945, 0.99949, 1, 1.0006, 0.99897, 0.99918, 0.99968, 0.99911, 0.99924, 1, 0.99962, 1.01487, 1, 1.0005, 0.99973, 1.00012, 1.00043, 1, 0.99995, 0.99994, 1.00036, 0.99947, 1.00019, 1.00063, 1.00025, 0.99924, 1.00036, 0.99973, 1.00036, 1.00025, 1.00001, 1.00001, 1.00027, 1.0001, 1.00068, 1.00001, 1.0006, 1.0006, 1, 1.00008, 0.99957, 0.99972, 0.9994, 0.99954, 0.99975, 1.00051, 1.00001, 1.00019, 1.00001, 1.0001, 0.99986, 1.00001, 1.00001, 1.00038, 0.99954, 0.99954, 0.9994, 1.00066, 0.99999, 0.99977, 1.00022, 1.00054, 1.00001, 0.99977, 1.00026, 0.99975, 1.0001, 1.00001, 0.99993, 0.9995, 0.99955, 1.00016, 0.99978, 0.99974, 1.00019, 1.00022, 0.99955, 1.00053, 0.99973, 1.00089, 1.00005, 0.99967, 1.00048, 0.99973, 1.00002, 1.00034, 0.99973, 0.99973, 0.99964, 1.00006, 1.00066, 0.99947, 0.99973, 0.98894, 0.99973, 1, 0.44898, 1, 0.99946, 1, 1.00039, 1.00082, 0.99991, 0.99991, 0.99985, 1.00022, 1.00023, 1.00061, 1.00006, 0.99966, 0.99973, 0.99973, 0.99973, 1.00019, 1.0008, 1, 0.99924, 0.99924, 0.99924, 0.99983, 1.00044, 0.99973, 0.99964, 0.98332, 1, 0.99973, 1, 1, 0.99962, 0.99895, 1.00016, 0.99977, 1.00016, 0.99977, 1.00016, 0.99977, 1.00001, 1, 1, 1, 0.99973, 1, 1, 0.99955, 0.99924, 0.99924, 0.99924, 0.99924, 0.99998, 0.99998, 0.99998, 0.99973, 0.99973, 0.99972, 1, 1, 1.00267, 0.99999, 0.99998, 0.99998, 1, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1.00023, 0.99973, 1.00423, 0.99925, 0.99999, 1, 0.99991, 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1.00049, 1, 1.00245, 1, 1, 1, 1, 0.96329, 1, 1.20985, 1.39713, 1.00003, 0.8254, 1.00015, 1, 1.00035, 1.00027, 1.00031, 1.00031, 1.00003, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.95317, 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998, 0.99998, 0.99998, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
      rx = { lineHeight: 1.35, lineGap: 0.2 };
      ox = [0.76116, 1, 1, 1.0006, 1.0006, 1.00006, 0.99973, 0.99973, 0.99982, 1.00001, 1.00043, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1, 1.00003, 1.00003, 1.00003, 0.99973, 0.99987, 1.00001, 1.00001, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977, 1.0006, 1, 1.00001, 0.99973, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001, 1.00026, 1.0006, 1.0006, 1.0006, 0.99949, 0.99973, 0.99998, 0.99973, 0.99973, 1, 0.99973, 0.99973, 1.0006, 0.99973, 0.99973, 0.99924, 0.99924, 1, 0.99924, 0.99999, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.0006, 0.99973, 1, 0.99977, 1, 1, 1, 1.00005, 1.0009, 1.00005, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973, 0.99973, 1.0009, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.9998, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1, 0.99977, 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 1, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.06409, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 1, 0.99973, 1, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1.04596, 0.99977, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99924, 1.0006, 1.0006, 1.00019, 1.00034, 1, 0.99924, 1.00001, 1, 1, 0.99973, 0.99924, 0.99973, 0.99924, 0.99973, 1.02572, 0.99973, 1.00005, 0.99973, 0.99924, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99999, 0.9998, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1, 1.00016, 0.99977, 0.99998, 0.99977, 0.99998, 0.99977, 0.99998, 1.00001, 1, 1.00001, 1, 1.00001, 1, 1.00001, 1, 1.00026, 1.0006, 1.00026, 0.84533, 1.00026, 1.0006, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.00016, 0.99977, 1.00001, 1, 1.00001, 1.00026, 1, 1.00026, 1, 1.00026, 1, 0.99924, 0.99973, 1.00001, 0.99973, 1, 0.99982, 1.00022, 1.00026, 1.00001, 1, 1.00026, 1.0006, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99928, 1, 0.99977, 1.00013, 1.00055, 0.99947, 0.99945, 0.99941, 0.99924, 1.00001, 1.00001, 1.0004, 0.91621, 1.00001, 1.00026, 0.99977, 1.00022, 1.0006, 1.00001, 1.00005, 0.99999, 0.99977, 1.00015, 1.00022, 0.99977, 1.00001, 0.99973, 1.00026, 1.00001, 1.00019, 1.00001, 0.99946, 1, 1.0006, 1.00001, 0.99978, 1.00045, 0.99973, 0.99924, 1.00023, 0.99978, 0.99966, 1, 1.00065, 1.00045, 1.00019, 0.99973, 0.99973, 0.99924, 1, 1, 0.96499, 1, 1.00055, 0.99973, 1.00008, 1.00027, 1, 0.9997, 0.99995, 1.00023, 0.99933, 1.00019, 1.00015, 1.00031, 0.99924, 1.00023, 0.99973, 1.00023, 1.00031, 1.00001, 0.99928, 1.00029, 1.00092, 1.00035, 1.00001, 1.0006, 1.0006, 1, 0.99988, 0.99975, 1, 1.00082, 0.99561, 0.9996, 1.00035, 1.00001, 0.99962, 1.00001, 1.00092, 0.99964, 1.00001, 0.99963, 0.99999, 1.00035, 1.00035, 1.00082, 0.99962, 0.99999, 0.99977, 1.00022, 1.00035, 1.00001, 0.99977, 1.00026, 0.9996, 0.99967, 1.00001, 1.00034, 1.00074, 1.00054, 1.00053, 1.00063, 0.99971, 0.99962, 1.00035, 0.99975, 0.99977, 0.99973, 1.00043, 0.99953, 1.0007, 0.99915, 0.99973, 1.00008, 0.99892, 1.00073, 1.00073, 1.00114, 0.99915, 1.00073, 0.99955, 0.99973, 1.00092, 0.99973, 1, 0.99998, 1, 1.0003, 1, 1.00043, 1.00001, 0.99969, 1.0003, 1, 1.00035, 1.00001, 0.9995, 1, 1.00092, 0.99973, 0.99973, 0.99973, 1.0007, 0.9995, 1, 0.99924, 1.0006, 0.99924, 0.99972, 1.00062, 0.99973, 1.00114, 1.00073, 1, 0.99955, 1, 1, 1.00047, 0.99968, 1.00016, 0.99977, 1.00016, 0.99977, 1.00016, 0.99977, 1.00001, 1, 1, 1, 0.99973, 1, 1, 0.99955, 0.99924, 0.99924, 0.99924, 0.99924, 0.99998, 0.99998, 0.99998, 0.99973, 0.99973, 0.99972, 1, 1, 1.00267, 0.99999, 0.99998, 0.99998, 1, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1.00023, 0.99973, 0.99971, 0.99925, 1.00023, 1, 0.99991, 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1, 1, 1, 1, 1, 1, 1, 0.96329, 1, 1.20985, 1.39713, 1.00003, 0.8254, 1.00015, 1, 1.00035, 1.00027, 1.00031, 1.00031, 0.99915, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.95317, 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
      lx = { lineHeight: 1.2, lineGap: 0.2 };
      Jr = [365, 0, 333, 278, 333, 474, 556, 556, 889, 722, 238, 333, 333, 389, 584, 278, 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 333, 333, 584, 584, 584, 611, 975, 722, 722, 722, 722, 667, 611, 778, 722, 278, 556, 722, 611, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 333, 278, 333, 584, 556, 333, 556, 611, 556, 611, 556, 333, 611, 611, 278, 278, 556, 278, 889, 611, 611, 611, 611, 389, 556, 333, 611, 556, 778, 556, 556, 500, 389, 280, 389, 584, 333, 556, 556, 556, 556, 280, 556, 333, 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 556, 278, 333, 333, 365, 556, 834, 834, 834, 611, 722, 722, 722, 722, 722, 722, 1e3, 722, 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 556, 556, 556, 556, 556, 278, 278, 278, 278, 611, 611, 611, 611, 611, 611, 611, 549, 611, 611, 611, 611, 611, 556, 611, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 719, 722, 611, 667, 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 611, 778, 611, 778, 611, 778, 611, 722, 611, 722, 611, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 785, 556, 556, 278, 722, 556, 556, 611, 278, 611, 278, 611, 385, 611, 479, 611, 278, 722, 611, 722, 611, 722, 611, 708, 723, 611, 778, 611, 778, 611, 778, 611, 1e3, 944, 722, 389, 722, 389, 722, 389, 667, 556, 667, 556, 667, 556, 667, 556, 611, 333, 611, 479, 611, 333, 722, 611, 722, 611, 722, 611, 722, 611, 722, 611, 722, 611, 944, 778, 667, 556, 667, 611, 500, 611, 500, 611, 500, 278, 556, 722, 556, 1e3, 889, 778, 611, 667, 556, 611, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 465, 722, 333, 853, 906, 474, 825, 927, 838, 278, 722, 722, 601, 719, 667, 611, 722, 778, 278, 722, 667, 833, 722, 644, 778, 722, 667, 600, 611, 667, 821, 667, 809, 802, 278, 667, 615, 451, 611, 278, 582, 615, 610, 556, 606, 475, 460, 611, 541, 278, 558, 556, 612, 556, 445, 611, 766, 619, 520, 684, 446, 582, 715, 576, 753, 845, 278, 582, 611, 582, 845, 667, 669, 885, 567, 711, 667, 278, 276, 556, 1094, 1062, 875, 610, 722, 622, 719, 722, 719, 722, 567, 712, 667, 904, 626, 719, 719, 610, 702, 833, 722, 778, 719, 667, 722, 611, 622, 854, 667, 730, 703, 1005, 1019, 870, 979, 719, 711, 1031, 719, 556, 618, 615, 417, 635, 556, 709, 497, 615, 615, 500, 635, 740, 604, 611, 604, 611, 556, 490, 556, 875, 556, 615, 581, 833, 844, 729, 854, 615, 552, 854, 583, 556, 556, 611, 417, 552, 556, 278, 281, 278, 969, 906, 611, 500, 615, 556, 604, 778, 611, 487, 447, 944, 778, 944, 778, 944, 778, 667, 556, 333, 333, 556, 1e3, 1e3, 552, 278, 278, 278, 278, 500, 500, 500, 556, 556, 350, 1e3, 1e3, 240, 479, 333, 333, 604, 333, 167, 396, 556, 556, 1094, 556, 885, 489, 1115, 1e3, 768, 600, 834, 834, 834, 834, 1e3, 500, 1e3, 500, 1e3, 500, 500, 494, 612, 823, 713, 584, 549, 713, 979, 722, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604, 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 729, 604, 604, 354, 354, 1e3, 990, 990, 990, 990, 494, 604, 604, 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750, 611, 611, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 333, 333, 333, 333, 333, 333, 333, 333];
      Zr = [-1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538, 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139, 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211, 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226, 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359, 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593, 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735, 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474, 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600, 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650, 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792, 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1];
      eo = [365, 0, 333, 278, 333, 474, 556, 556, 889, 722, 238, 333, 333, 389, 584, 278, 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 333, 333, 584, 584, 584, 611, 975, 722, 722, 722, 722, 667, 611, 778, 722, 278, 556, 722, 611, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 333, 278, 333, 584, 556, 333, 556, 611, 556, 611, 556, 333, 611, 611, 278, 278, 556, 278, 889, 611, 611, 611, 611, 389, 556, 333, 611, 556, 778, 556, 556, 500, 389, 280, 389, 584, 333, 556, 556, 556, 556, 280, 556, 333, 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 556, 278, 333, 333, 365, 556, 834, 834, 834, 611, 722, 722, 722, 722, 722, 722, 1e3, 722, 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 556, 556, 556, 556, 556, 278, 278, 278, 278, 611, 611, 611, 611, 611, 611, 611, 549, 611, 611, 611, 611, 611, 556, 611, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 740, 722, 611, 667, 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 611, 778, 611, 778, 611, 778, 611, 722, 611, 722, 611, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 782, 556, 556, 278, 722, 556, 556, 611, 278, 611, 278, 611, 396, 611, 479, 611, 278, 722, 611, 722, 611, 722, 611, 708, 723, 611, 778, 611, 778, 611, 778, 611, 1e3, 944, 722, 389, 722, 389, 722, 389, 667, 556, 667, 556, 667, 556, 667, 556, 611, 333, 611, 479, 611, 333, 722, 611, 722, 611, 722, 611, 722, 611, 722, 611, 722, 611, 944, 778, 667, 556, 667, 611, 500, 611, 500, 611, 500, 278, 556, 722, 556, 1e3, 889, 778, 611, 667, 556, 611, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 722, 333, 854, 906, 473, 844, 930, 847, 278, 722, 722, 610, 671, 667, 611, 722, 778, 278, 722, 667, 833, 722, 657, 778, 718, 667, 590, 611, 667, 822, 667, 829, 781, 278, 667, 620, 479, 611, 278, 591, 620, 621, 556, 610, 479, 492, 611, 558, 278, 566, 556, 603, 556, 450, 611, 712, 605, 532, 664, 409, 591, 704, 578, 773, 834, 278, 591, 611, 591, 834, 667, 667, 886, 614, 719, 667, 278, 278, 556, 1094, 1042, 854, 622, 719, 677, 719, 722, 708, 722, 614, 722, 667, 927, 643, 719, 719, 615, 687, 833, 722, 778, 719, 667, 722, 611, 677, 781, 667, 729, 708, 979, 989, 854, 1e3, 708, 719, 1042, 729, 556, 619, 604, 534, 618, 556, 736, 510, 611, 611, 507, 622, 740, 604, 611, 611, 611, 556, 889, 556, 885, 556, 646, 583, 889, 935, 707, 854, 594, 552, 865, 589, 556, 556, 611, 469, 563, 556, 278, 278, 278, 969, 906, 611, 507, 619, 556, 611, 778, 611, 575, 467, 944, 778, 944, 778, 944, 778, 667, 556, 333, 333, 556, 1e3, 1e3, 552, 278, 278, 278, 278, 500, 500, 500, 556, 556, 350, 1e3, 1e3, 240, 479, 333, 333, 604, 333, 167, 396, 556, 556, 1104, 556, 885, 516, 1146, 1e3, 768, 600, 834, 834, 834, 834, 999, 500, 1e3, 500, 1e3, 500, 500, 494, 612, 823, 713, 584, 549, 713, 979, 722, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604, 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 729, 604, 604, 354, 354, 1e3, 990, 990, 990, 990, 494, 604, 604, 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750, 611, 611, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 333, 333, 333, 333, 333, 333, 333, 333];
      to = [-1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538, 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139, 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211, 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226, 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359, 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593, 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735, 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474, 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600, 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650, 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792, 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1];
      no = [365, 0, 333, 278, 278, 355, 556, 556, 889, 667, 191, 333, 333, 389, 584, 278, 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 278, 278, 584, 584, 584, 556, 1015, 667, 667, 722, 722, 667, 611, 778, 722, 278, 500, 667, 556, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 278, 278, 278, 469, 556, 333, 556, 556, 500, 556, 556, 278, 556, 556, 222, 222, 500, 222, 833, 556, 556, 556, 556, 333, 500, 278, 556, 500, 722, 500, 500, 500, 334, 260, 334, 584, 333, 556, 556, 556, 556, 260, 556, 333, 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 537, 278, 333, 333, 365, 556, 834, 834, 834, 611, 667, 667, 667, 667, 667, 667, 1e3, 722, 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 500, 556, 556, 556, 556, 278, 278, 278, 278, 556, 556, 556, 556, 556, 556, 556, 549, 611, 556, 556, 556, 556, 500, 556, 500, 667, 556, 667, 556, 667, 556, 722, 500, 722, 500, 722, 500, 722, 500, 722, 625, 722, 556, 667, 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 556, 778, 556, 778, 556, 778, 556, 722, 556, 722, 556, 278, 278, 278, 278, 278, 278, 278, 222, 278, 278, 733, 444, 500, 222, 667, 500, 500, 556, 222, 556, 222, 556, 281, 556, 400, 556, 222, 722, 556, 722, 556, 722, 556, 615, 723, 556, 778, 556, 778, 556, 778, 556, 1e3, 944, 722, 333, 722, 333, 722, 333, 667, 500, 667, 500, 667, 500, 667, 500, 611, 278, 611, 354, 611, 278, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 944, 722, 667, 500, 667, 611, 500, 611, 500, 611, 500, 222, 556, 667, 556, 1e3, 889, 778, 611, 667, 500, 611, 278, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 667, 278, 789, 846, 389, 794, 865, 775, 222, 667, 667, 570, 671, 667, 611, 722, 778, 278, 667, 667, 833, 722, 648, 778, 725, 667, 600, 611, 667, 837, 667, 831, 761, 278, 667, 570, 439, 555, 222, 550, 570, 571, 500, 556, 439, 463, 555, 542, 222, 500, 492, 548, 500, 447, 556, 670, 573, 486, 603, 374, 550, 652, 546, 728, 779, 222, 550, 556, 550, 779, 667, 667, 843, 544, 708, 667, 278, 278, 500, 1066, 982, 844, 589, 715, 639, 724, 667, 651, 667, 544, 704, 667, 917, 614, 715, 715, 589, 686, 833, 722, 778, 725, 667, 722, 611, 639, 795, 667, 727, 673, 920, 923, 805, 886, 651, 694, 1022, 682, 556, 562, 522, 493, 553, 556, 688, 465, 556, 556, 472, 564, 686, 550, 556, 556, 556, 500, 833, 500, 835, 500, 572, 518, 830, 851, 621, 736, 526, 492, 752, 534, 556, 556, 556, 378, 496, 500, 222, 222, 222, 910, 828, 556, 472, 565, 500, 556, 778, 556, 492, 339, 944, 722, 944, 722, 944, 722, 667, 500, 333, 333, 556, 1e3, 1e3, 552, 222, 222, 222, 222, 333, 333, 333, 556, 556, 350, 1e3, 1e3, 188, 354, 333, 333, 500, 333, 167, 365, 556, 556, 1094, 556, 885, 323, 1083, 1e3, 768, 600, 834, 834, 834, 834, 1e3, 500, 998, 500, 1e3, 500, 500, 494, 612, 823, 713, 584, 549, 713, 979, 719, 274, 549, 549, 584, 549, 549, 604, 584, 604, 604, 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 729, 604, 604, 354, 354, 1e3, 990, 990, 990, 990, 494, 604, 604, 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750, 500, 500, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 294, 294, 324, 324, 316, 328, 398, 285];
      so = [-1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538, 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139, 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211, 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226, 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359, 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593, 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735, 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474, 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600, 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650, 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792, 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1];
      io = [365, 0, 333, 278, 278, 355, 556, 556, 889, 667, 191, 333, 333, 389, 584, 278, 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 278, 278, 584, 584, 584, 556, 1015, 667, 667, 722, 722, 667, 611, 778, 722, 278, 500, 667, 556, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 278, 278, 278, 469, 556, 333, 556, 556, 500, 556, 556, 278, 556, 556, 222, 222, 500, 222, 833, 556, 556, 556, 556, 333, 500, 278, 556, 500, 722, 500, 500, 500, 334, 260, 334, 584, 333, 556, 556, 556, 556, 260, 556, 333, 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 537, 278, 333, 333, 365, 556, 834, 834, 834, 611, 667, 667, 667, 667, 667, 667, 1e3, 722, 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 500, 556, 556, 556, 556, 278, 278, 278, 278, 556, 556, 556, 556, 556, 556, 556, 549, 611, 556, 556, 556, 556, 500, 556, 500, 667, 556, 667, 556, 667, 556, 722, 500, 722, 500, 722, 500, 722, 500, 722, 615, 722, 556, 667, 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 556, 778, 556, 778, 556, 778, 556, 722, 556, 722, 556, 278, 278, 278, 278, 278, 278, 278, 222, 278, 278, 735, 444, 500, 222, 667, 500, 500, 556, 222, 556, 222, 556, 292, 556, 334, 556, 222, 722, 556, 722, 556, 722, 556, 604, 723, 556, 778, 556, 778, 556, 778, 556, 1e3, 944, 722, 333, 722, 333, 722, 333, 667, 500, 667, 500, 667, 500, 667, 500, 611, 278, 611, 375, 611, 278, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 944, 722, 667, 500, 667, 611, 500, 611, 500, 611, 500, 222, 556, 667, 556, 1e3, 889, 778, 611, 667, 500, 611, 278, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 667, 278, 784, 838, 384, 774, 855, 752, 222, 667, 667, 551, 668, 667, 611, 722, 778, 278, 667, 668, 833, 722, 650, 778, 722, 667, 618, 611, 667, 798, 667, 835, 748, 278, 667, 578, 446, 556, 222, 547, 578, 575, 500, 557, 446, 441, 556, 556, 222, 500, 500, 576, 500, 448, 556, 690, 569, 482, 617, 395, 547, 648, 525, 713, 781, 222, 547, 556, 547, 781, 667, 667, 865, 542, 719, 667, 278, 278, 500, 1057, 1010, 854, 583, 722, 635, 719, 667, 656, 667, 542, 677, 667, 923, 604, 719, 719, 583, 656, 833, 722, 778, 719, 667, 722, 611, 635, 760, 667, 740, 667, 917, 938, 792, 885, 656, 719, 1010, 722, 556, 573, 531, 365, 583, 556, 669, 458, 559, 559, 438, 583, 688, 552, 556, 542, 556, 500, 458, 500, 823, 500, 573, 521, 802, 823, 625, 719, 521, 510, 750, 542, 556, 556, 556, 365, 510, 500, 222, 278, 222, 906, 812, 556, 438, 559, 500, 552, 778, 556, 489, 411, 944, 722, 944, 722, 944, 722, 667, 500, 333, 333, 556, 1e3, 1e3, 552, 222, 222, 222, 222, 333, 333, 333, 556, 556, 350, 1e3, 1e3, 188, 354, 333, 333, 500, 333, 167, 365, 556, 556, 1094, 556, 885, 323, 1073, 1e3, 768, 600, 834, 834, 834, 834, 1e3, 500, 1e3, 500, 1e3, 500, 500, 494, 612, 823, 713, 584, 549, 713, 979, 719, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604, 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 729, 604, 604, 354, 354, 1e3, 990, 990, 990, 990, 494, 604, 604, 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750, 500, 500, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 294, 294, 324, 324, 316, 328, 398, 285];
      ao = [-1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538, 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139, 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211, 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226, 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359, 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593, 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735, 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474, 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600, 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650, 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792, 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1];
      fx = [1.36898, 1, 1, 0.72706, 0.80479, 0.83734, 0.98894, 0.99793, 0.9897, 0.93884, 0.86209, 0.94292, 0.94292, 1.16661, 1.02058, 0.93582, 0.96694, 0.93582, 1.19137, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.78076, 0.78076, 1.02058, 1.02058, 1.02058, 0.72851, 0.78966, 0.90838, 0.83637, 0.82391, 0.96376, 0.80061, 0.86275, 0.8768, 0.95407, 1.0258, 0.73901, 0.85022, 0.83655, 1.0156, 0.95546, 0.92179, 0.87107, 0.92179, 0.82114, 0.8096, 0.89713, 0.94438, 0.95353, 0.94083, 0.91905, 0.90406, 0.9446, 0.94292, 1.18777, 0.94292, 1.02058, 0.89903, 0.90088, 0.94938, 0.97898, 0.81093, 0.97571, 0.94938, 1.024, 0.9577, 0.95933, 0.98621, 1.0474, 0.97455, 0.98981, 0.9672, 0.95933, 0.9446, 0.97898, 0.97407, 0.97646, 0.78036, 1.10208, 0.95442, 0.95298, 0.97579, 0.9332, 0.94039, 0.938, 0.80687, 1.01149, 0.80687, 1.02058, 0.80479, 0.99793, 0.99793, 0.99793, 0.99793, 1.01149, 1.00872, 0.90088, 0.91882, 1.0213, 0.8361, 1.02058, 0.62295, 0.54324, 0.89022, 1.08595, 1, 1, 0.90088, 1, 0.97455, 0.93582, 0.90088, 1, 1.05686, 0.8361, 0.99642, 0.99642, 0.99642, 0.72851, 0.90838, 0.90838, 0.90838, 0.90838, 0.90838, 0.90838, 0.868, 0.82391, 0.80061, 0.80061, 0.80061, 0.80061, 1.0258, 1.0258, 1.0258, 1.0258, 0.97484, 0.95546, 0.92179, 0.92179, 0.92179, 0.92179, 0.92179, 1.02058, 0.92179, 0.94438, 0.94438, 0.94438, 0.94438, 0.90406, 0.86958, 0.98225, 0.94938, 0.94938, 0.94938, 0.94938, 0.94938, 0.94938, 0.9031, 0.81093, 0.94938, 0.94938, 0.94938, 0.94938, 0.98621, 0.98621, 0.98621, 0.98621, 0.93969, 0.95933, 0.9446, 0.9446, 0.9446, 0.9446, 0.9446, 1.08595, 0.9446, 0.95442, 0.95442, 0.95442, 0.95442, 0.94039, 0.97898, 0.94039, 0.90838, 0.94938, 0.90838, 0.94938, 0.90838, 0.94938, 0.82391, 0.81093, 0.82391, 0.81093, 0.82391, 0.81093, 0.82391, 0.81093, 0.96376, 0.84313, 0.97484, 0.97571, 0.80061, 0.94938, 0.80061, 0.94938, 0.80061, 0.94938, 0.80061, 0.94938, 0.80061, 0.94938, 0.8768, 0.9577, 0.8768, 0.9577, 0.8768, 0.9577, 1, 1, 0.95407, 0.95933, 0.97069, 0.95933, 1.0258, 0.98621, 1.0258, 0.98621, 1.0258, 0.98621, 1.0258, 0.98621, 1.0258, 0.98621, 0.887, 1.01591, 0.73901, 1.0474, 1, 1, 0.97455, 0.83655, 0.98981, 1, 1, 0.83655, 0.73977, 0.83655, 0.73903, 0.84638, 1.033, 0.95546, 0.95933, 1, 1, 0.95546, 0.95933, 0.8271, 0.95417, 0.95933, 0.92179, 0.9446, 0.92179, 0.9446, 0.92179, 0.9446, 0.936, 0.91964, 0.82114, 0.97646, 1, 1, 0.82114, 0.97646, 0.8096, 0.78036, 0.8096, 0.78036, 1, 1, 0.8096, 0.78036, 1, 1, 0.89713, 0.77452, 0.89713, 1.10208, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94083, 0.97579, 0.90406, 0.94039, 0.90406, 0.9446, 0.938, 0.9446, 0.938, 0.9446, 0.938, 1, 0.99793, 0.90838, 0.94938, 0.868, 0.9031, 0.92179, 0.9446, 1, 1, 0.89713, 1.10208, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90989, 0.9358, 0.91945, 0.83181, 0.75261, 0.87992, 0.82976, 0.96034, 0.83689, 0.97268, 1.0078, 0.90838, 0.83637, 0.8019, 0.90157, 0.80061, 0.9446, 0.95407, 0.92436, 1.0258, 0.85022, 0.97153, 1.0156, 0.95546, 0.89192, 0.92179, 0.92361, 0.87107, 0.96318, 0.89713, 0.93704, 0.95638, 0.91905, 0.91709, 0.92796, 1.0258, 0.93704, 0.94836, 1.0373, 0.95933, 1.0078, 0.95871, 0.94836, 0.96174, 0.92601, 0.9498, 0.98607, 0.95776, 0.95933, 1.05453, 1.0078, 0.98275, 0.9314, 0.95617, 0.91701, 1.05993, 0.9446, 0.78367, 0.9553, 1, 0.86832, 1.0128, 0.95871, 0.99394, 0.87548, 0.96361, 0.86774, 1.0078, 0.95871, 0.9446, 0.95871, 0.86774, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.94083, 0.97579, 0.94083, 0.97579, 0.94083, 0.97579, 0.90406, 0.94039, 0.96694, 1, 0.89903, 1, 1, 1, 0.93582, 0.93582, 0.93582, 1, 0.908, 0.908, 0.918, 0.94219, 0.94219, 0.96544, 1, 1.285, 1, 1, 0.81079, 0.81079, 1, 1, 0.74854, 1, 1, 1, 1, 0.99793, 1, 1, 1, 0.65, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.17173, 1, 0.80535, 0.76169, 1.02058, 1.0732, 1.05486, 1, 1, 1.30692, 1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.16161, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
      cx = { lineHeight: 1.2, lineGap: 0.2 };
      hx = [1.36898, 1, 1, 0.66227, 0.80779, 0.81625, 0.97276, 0.97276, 0.97733, 0.92222, 0.83266, 0.94292, 0.94292, 1.16148, 1.02058, 0.93582, 0.96694, 0.93582, 1.17337, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.78076, 0.78076, 1.02058, 1.02058, 1.02058, 0.71541, 0.76813, 0.85576, 0.80591, 0.80729, 0.94299, 0.77512, 0.83655, 0.86523, 0.92222, 0.98621, 0.71743, 0.81698, 0.79726, 0.98558, 0.92222, 0.90637, 0.83809, 0.90637, 0.80729, 0.76463, 0.86275, 0.90699, 0.91605, 0.9154, 0.85308, 0.85458, 0.90531, 0.94292, 1.21296, 0.94292, 1.02058, 0.89903, 1.18616, 0.99613, 0.91677, 0.78216, 0.91677, 0.90083, 0.98796, 0.9135, 0.92168, 0.95381, 0.98981, 0.95298, 0.95381, 0.93459, 0.92168, 0.91513, 0.92004, 0.91677, 0.95077, 0.748, 1.04502, 0.91677, 0.92061, 0.94236, 0.89544, 0.89364, 0.9, 0.80687, 0.8578, 0.80687, 1.02058, 0.80779, 0.97276, 0.97276, 0.97276, 0.97276, 0.8578, 0.99973, 1.18616, 0.91339, 1.08074, 0.82891, 1.02058, 0.55509, 0.71526, 0.89022, 1.08595, 1, 1, 1.18616, 1, 0.96736, 0.93582, 1.18616, 1, 1.04864, 0.82711, 0.99043, 0.99043, 0.99043, 0.71541, 0.85576, 0.85576, 0.85576, 0.85576, 0.85576, 0.85576, 0.845, 0.80729, 0.77512, 0.77512, 0.77512, 0.77512, 0.98621, 0.98621, 0.98621, 0.98621, 0.95961, 0.92222, 0.90637, 0.90637, 0.90637, 0.90637, 0.90637, 1.02058, 0.90251, 0.90699, 0.90699, 0.90699, 0.90699, 0.85458, 0.83659, 0.94951, 0.99613, 0.99613, 0.99613, 0.99613, 0.99613, 0.99613, 0.85811, 0.78216, 0.90083, 0.90083, 0.90083, 0.90083, 0.95381, 0.95381, 0.95381, 0.95381, 0.9135, 0.92168, 0.91513, 0.91513, 0.91513, 0.91513, 0.91513, 1.08595, 0.91677, 0.91677, 0.91677, 0.91677, 0.91677, 0.89364, 0.92332, 0.89364, 0.85576, 0.99613, 0.85576, 0.99613, 0.85576, 0.99613, 0.80729, 0.78216, 0.80729, 0.78216, 0.80729, 0.78216, 0.80729, 0.78216, 0.94299, 0.76783, 0.95961, 0.91677, 0.77512, 0.90083, 0.77512, 0.90083, 0.77512, 0.90083, 0.77512, 0.90083, 0.77512, 0.90083, 0.86523, 0.9135, 0.86523, 0.9135, 0.86523, 0.9135, 1, 1, 0.92222, 0.92168, 0.92222, 0.92168, 0.98621, 0.95381, 0.98621, 0.95381, 0.98621, 0.95381, 0.98621, 0.95381, 0.98621, 0.95381, 0.86036, 0.97096, 0.71743, 0.98981, 1, 1, 0.95298, 0.79726, 0.95381, 1, 1, 0.79726, 0.6894, 0.79726, 0.74321, 0.81691, 1.0006, 0.92222, 0.92168, 1, 1, 0.92222, 0.92168, 0.79464, 0.92098, 0.92168, 0.90637, 0.91513, 0.90637, 0.91513, 0.90637, 0.91513, 0.909, 0.87514, 0.80729, 0.95077, 1, 1, 0.80729, 0.95077, 0.76463, 0.748, 0.76463, 0.748, 1, 1, 0.76463, 0.748, 1, 1, 0.86275, 0.72651, 0.86275, 1.04502, 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677, 0.9154, 0.94236, 0.85458, 0.89364, 0.85458, 0.90531, 0.9, 0.90531, 0.9, 0.90531, 0.9, 1, 0.97276, 0.85576, 0.99613, 0.845, 0.85811, 0.90251, 0.91677, 1, 1, 0.86275, 1.04502, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.00899, 1.30628, 0.85576, 0.80178, 0.66862, 0.7927, 0.69323, 0.88127, 0.72459, 0.89711, 0.95381, 0.85576, 0.80591, 0.7805, 0.94729, 0.77512, 0.90531, 0.92222, 0.90637, 0.98621, 0.81698, 0.92655, 0.98558, 0.92222, 0.85359, 0.90637, 0.90976, 0.83809, 0.94523, 0.86275, 0.83509, 0.93157, 0.85308, 0.83392, 0.92346, 0.98621, 0.83509, 0.92886, 0.91324, 0.92168, 0.95381, 0.90646, 0.92886, 0.90557, 0.86847, 0.90276, 0.91324, 0.86842, 0.92168, 0.99531, 0.95381, 0.9224, 0.85408, 0.92699, 0.86847, 1.0051, 0.91513, 0.80487, 0.93481, 1, 0.88159, 1.05214, 0.90646, 0.97355, 0.81539, 0.89398, 0.85923, 0.95381, 0.90646, 0.91513, 0.90646, 0.85923, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.9154, 0.94236, 0.9154, 0.94236, 0.9154, 0.94236, 0.85458, 0.89364, 0.96694, 1, 0.89903, 1, 1, 1, 0.91782, 0.91782, 0.91782, 1, 0.896, 0.896, 0.896, 0.9332, 0.9332, 0.95973, 1, 1.26, 1, 1, 0.80479, 0.80178, 1, 1, 0.85633, 1, 1, 1, 1, 0.97276, 1, 1, 1, 0.698, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.14542, 1, 0.79199, 0.78694, 1.02058, 1.03493, 1.05486, 1, 1, 1.23026, 1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.20006, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
      ux = { lineHeight: 1.2, lineGap: 0.2 };
      dx = [1.36898, 1, 1, 0.65507, 0.84943, 0.85639, 0.88465, 0.88465, 0.86936, 0.88307, 0.86948, 0.85283, 0.85283, 1.06383, 1.02058, 0.75945, 0.9219, 0.75945, 1.17337, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.75945, 0.75945, 1.02058, 1.02058, 1.02058, 0.69046, 0.70926, 0.85158, 0.77812, 0.76852, 0.89591, 0.70466, 0.76125, 0.80094, 0.86822, 0.83864, 0.728, 0.77212, 0.79475, 0.93637, 0.87514, 0.8588, 0.76013, 0.8588, 0.72421, 0.69866, 0.77598, 0.85991, 0.80811, 0.87832, 0.78112, 0.77512, 0.8562, 1.0222, 1.18417, 1.0222, 1.27014, 0.89903, 1.15012, 0.93859, 0.94399, 0.846, 0.94399, 0.81453, 1.0186, 0.94219, 0.96017, 1.03075, 1.02175, 0.912, 1.03075, 0.96998, 0.96017, 0.93859, 0.94399, 0.94399, 0.95493, 0.746, 1.12658, 0.94578, 0.91, 0.979, 0.882, 0.882, 0.83, 0.85034, 0.83537, 0.85034, 1.02058, 0.70869, 0.88465, 0.88465, 0.88465, 0.88465, 0.83537, 0.90083, 1.15012, 0.9161, 0.94565, 0.73541, 1.02058, 0.53609, 0.69353, 0.79519, 1.08595, 1, 1, 1.15012, 1, 0.91974, 0.75945, 1.15012, 1, 0.9446, 0.73361, 0.9005, 0.9005, 0.9005, 0.62864, 0.85158, 0.85158, 0.85158, 0.85158, 0.85158, 0.85158, 0.773, 0.76852, 0.70466, 0.70466, 0.70466, 0.70466, 0.83864, 0.83864, 0.83864, 0.83864, 0.90561, 0.87514, 0.8588, 0.8588, 0.8588, 0.8588, 0.8588, 1.02058, 0.85751, 0.85991, 0.85991, 0.85991, 0.85991, 0.77512, 0.76013, 0.88075, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859, 0.8075, 0.846, 0.81453, 0.81453, 0.81453, 0.81453, 0.82424, 0.82424, 0.82424, 0.82424, 0.9278, 0.96017, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859, 1.08595, 0.8562, 0.94578, 0.94578, 0.94578, 0.94578, 0.882, 0.94578, 0.882, 0.85158, 0.93859, 0.85158, 0.93859, 0.85158, 0.93859, 0.76852, 0.846, 0.76852, 0.846, 0.76852, 0.846, 0.76852, 0.846, 0.89591, 0.8544, 0.90561, 0.94399, 0.70466, 0.81453, 0.70466, 0.81453, 0.70466, 0.81453, 0.70466, 0.81453, 0.70466, 0.81453, 0.80094, 0.94219, 0.80094, 0.94219, 0.80094, 0.94219, 1, 1, 0.86822, 0.96017, 0.86822, 0.96017, 0.83864, 0.82424, 0.83864, 0.82424, 0.83864, 0.82424, 0.83864, 1.03075, 0.83864, 0.82424, 0.81402, 1.02738, 0.728, 1.02175, 1, 1, 0.912, 0.79475, 1.03075, 1, 1, 0.79475, 0.83911, 0.79475, 0.66266, 0.80553, 1.06676, 0.87514, 0.96017, 1, 1, 0.87514, 0.96017, 0.86865, 0.87396, 0.96017, 0.8588, 0.93859, 0.8588, 0.93859, 0.8588, 0.93859, 0.867, 0.84759, 0.72421, 0.95493, 1, 1, 0.72421, 0.95493, 0.69866, 0.746, 0.69866, 0.746, 1, 1, 0.69866, 0.746, 1, 1, 0.77598, 0.88417, 0.77598, 1.12658, 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578, 0.87832, 0.979, 0.77512, 0.882, 0.77512, 0.8562, 0.83, 0.8562, 0.83, 0.8562, 0.83, 1, 0.88465, 0.85158, 0.93859, 0.773, 0.8075, 0.85751, 0.8562, 1, 1, 0.77598, 1.12658, 1.15012, 1.15012, 1.15012, 1.15012, 1.15012, 1.15313, 1.15012, 1.15012, 1.15012, 1.08106, 1.03901, 0.85158, 0.77025, 0.62264, 0.7646, 0.65351, 0.86026, 0.69461, 0.89947, 1.03075, 0.85158, 0.77812, 0.76449, 0.88836, 0.70466, 0.8562, 0.86822, 0.8588, 0.83864, 0.77212, 0.85308, 0.93637, 0.87514, 0.82352, 0.8588, 0.85701, 0.76013, 0.89058, 0.77598, 0.8156, 0.82565, 0.78112, 0.77899, 0.89386, 0.83864, 0.8156, 0.9486, 0.92388, 0.96186, 1.03075, 0.91123, 0.9486, 0.93298, 0.878, 0.93942, 0.92388, 0.84596, 0.96186, 0.95119, 1.03075, 0.922, 0.88787, 0.95829, 0.88, 0.93559, 0.93859, 0.78815, 0.93758, 1, 0.89217, 1.03737, 0.91123, 0.93969, 0.77487, 0.85769, 0.86799, 1.03075, 0.91123, 0.93859, 0.91123, 0.86799, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.87832, 0.979, 0.87832, 0.979, 0.87832, 0.979, 0.77512, 0.882, 0.9219, 1, 0.89903, 1, 1, 1, 0.87321, 0.87321, 0.87321, 1, 1.027, 1.027, 1.027, 0.86847, 0.86847, 0.79121, 1, 1.124, 1, 1, 0.73572, 0.73572, 1, 1, 0.85034, 1, 1, 1, 1, 0.88465, 1, 1, 1, 0.669, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.04828, 1, 0.74948, 0.75187, 1.02058, 0.98391, 1.02119, 1, 1, 1.06233, 1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05233, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
      px = { lineHeight: 1.2, lineGap: 0.2 };
      mx = [1.36898, 1, 1, 0.76305, 0.82784, 0.94935, 0.89364, 0.92241, 0.89073, 0.90706, 0.98472, 0.85283, 0.85283, 1.0664, 1.02058, 0.74505, 0.9219, 0.74505, 1.23456, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.74505, 0.74505, 1.02058, 1.02058, 1.02058, 0.73002, 0.72601, 0.91755, 0.8126, 0.80314, 0.92222, 0.73764, 0.79726, 0.83051, 0.90284, 0.86023, 0.74, 0.8126, 0.84869, 0.96518, 0.91115, 0.8858, 0.79761, 0.8858, 0.74498, 0.73914, 0.81363, 0.89591, 0.83659, 0.89633, 0.85608, 0.8111, 0.90531, 1.0222, 1.22736, 1.0222, 1.27014, 0.89903, 0.90088, 0.86667, 1.0231, 0.896, 1.01411, 0.90083, 1.05099, 1.00512, 0.99793, 1.05326, 1.09377, 0.938, 1.06226, 1.00119, 0.99793, 0.98714, 1.0231, 1.01231, 0.98196, 0.792, 1.19137, 0.99074, 0.962, 1.01915, 0.926, 0.942, 0.856, 0.85034, 0.92006, 0.85034, 1.02058, 0.69067, 0.92241, 0.92241, 0.92241, 0.92241, 0.92006, 0.9332, 0.90088, 0.91882, 0.93484, 0.75339, 1.02058, 0.56866, 0.54324, 0.79519, 1.08595, 1, 1, 0.90088, 1, 0.95325, 0.74505, 0.90088, 1, 0.97198, 0.75339, 0.91009, 0.91009, 0.91009, 0.66466, 0.91755, 0.91755, 0.91755, 0.91755, 0.91755, 0.91755, 0.788, 0.80314, 0.73764, 0.73764, 0.73764, 0.73764, 0.86023, 0.86023, 0.86023, 0.86023, 0.92915, 0.91115, 0.8858, 0.8858, 0.8858, 0.8858, 0.8858, 1.02058, 0.8858, 0.89591, 0.89591, 0.89591, 0.89591, 0.8111, 0.79611, 0.89713, 0.86667, 0.86667, 0.86667, 0.86667, 0.86667, 0.86667, 0.86936, 0.896, 0.90083, 0.90083, 0.90083, 0.90083, 0.84224, 0.84224, 0.84224, 0.84224, 0.97276, 0.99793, 0.98714, 0.98714, 0.98714, 0.98714, 0.98714, 1.08595, 0.89876, 0.99074, 0.99074, 0.99074, 0.99074, 0.942, 1.0231, 0.942, 0.91755, 0.86667, 0.91755, 0.86667, 0.91755, 0.86667, 0.80314, 0.896, 0.80314, 0.896, 0.80314, 0.896, 0.80314, 0.896, 0.92222, 0.93372, 0.92915, 1.01411, 0.73764, 0.90083, 0.73764, 0.90083, 0.73764, 0.90083, 0.73764, 0.90083, 0.73764, 0.90083, 0.83051, 1.00512, 0.83051, 1.00512, 0.83051, 1.00512, 1, 1, 0.90284, 0.99793, 0.90976, 0.99793, 0.86023, 0.84224, 0.86023, 0.84224, 0.86023, 0.84224, 0.86023, 1.05326, 0.86023, 0.84224, 0.82873, 1.07469, 0.74, 1.09377, 1, 1, 0.938, 0.84869, 1.06226, 1, 1, 0.84869, 0.83704, 0.84869, 0.81441, 0.85588, 1.08927, 0.91115, 0.99793, 1, 1, 0.91115, 0.99793, 0.91887, 0.90991, 0.99793, 0.8858, 0.98714, 0.8858, 0.98714, 0.8858, 0.98714, 0.894, 0.91434, 0.74498, 0.98196, 1, 1, 0.74498, 0.98196, 0.73914, 0.792, 0.73914, 0.792, 1, 1, 0.73914, 0.792, 1, 1, 0.81363, 0.904, 0.81363, 1.19137, 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074, 0.89633, 1.01915, 0.8111, 0.942, 0.8111, 0.90531, 0.856, 0.90531, 0.856, 0.90531, 0.856, 1, 0.92241, 0.91755, 0.86667, 0.788, 0.86936, 0.8858, 0.89876, 1, 1, 0.81363, 1.19137, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90388, 1.03901, 0.92138, 0.78105, 0.7154, 0.86169, 0.80513, 0.94007, 0.82528, 0.98612, 1.06226, 0.91755, 0.8126, 0.81884, 0.92819, 0.73764, 0.90531, 0.90284, 0.8858, 0.86023, 0.8126, 0.91172, 0.96518, 0.91115, 0.83089, 0.8858, 0.87791, 0.79761, 0.89297, 0.81363, 0.88157, 0.89992, 0.85608, 0.81992, 0.94307, 0.86023, 0.88157, 0.95308, 0.98699, 0.99793, 1.06226, 0.95817, 0.95308, 0.97358, 0.928, 0.98088, 0.98699, 0.92761, 0.99793, 0.96017, 1.06226, 0.986, 0.944, 0.95978, 0.938, 0.96705, 0.98714, 0.80442, 0.98972, 1, 0.89762, 1.04552, 0.95817, 0.99007, 0.87064, 0.91879, 0.88888, 1.06226, 0.95817, 0.98714, 0.95817, 0.88888, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.89633, 1.01915, 0.89633, 1.01915, 0.89633, 1.01915, 0.8111, 0.942, 0.9219, 1, 0.89903, 1, 1, 1, 0.93173, 0.93173, 0.93173, 1, 1.06304, 1.06304, 1.06904, 0.89903, 0.89903, 0.80549, 1, 1.156, 1, 1, 0.76575, 0.76575, 1, 1, 0.72458, 1, 1, 1, 1, 0.92241, 1, 1, 1, 0.619, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.07257, 1, 0.74705, 0.71119, 1.02058, 1.024, 1.02119, 1, 1, 1.1536, 1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05638, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
      gx = { lineHeight: 1.2, lineGap: 0.2 };
      bx = [1.76738, 1, 1, 0.99297, 0.9824, 1.04016, 1.06497, 1.03424, 0.97529, 1.17647, 1.23203, 1.1085, 1.1085, 1.16939, 1.2107, 0.9754, 1.21408, 0.9754, 1.59578, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 0.81378, 0.81378, 1.2107, 1.2107, 1.2107, 0.71703, 0.97847, 0.97363, 0.88776, 0.8641, 1.02096, 0.79795, 0.85132, 0.914, 1.06085, 1.1406, 0.8007, 0.89858, 0.83693, 1.14889, 1.09398, 0.97489, 0.92094, 0.97489, 0.90399, 0.84041, 0.95923, 1.00135, 1, 1.06467, 0.98243, 0.90996, 0.99361, 1.1085, 1.56942, 1.1085, 1.2107, 0.74627, 0.94282, 0.96752, 1.01519, 0.86304, 1.01359, 0.97278, 1.15103, 1.01359, 0.98561, 1.02285, 1.02285, 1.00527, 1.02285, 1.0302, 0.99041, 1.0008, 1.01519, 1.01359, 1.02258, 0.79104, 1.16862, 0.99041, 0.97454, 1.02511, 0.99298, 0.96752, 0.95801, 0.94856, 1.16579, 0.94856, 1.2107, 0.9824, 1.03424, 1.03424, 1, 1.03424, 1.16579, 0.8727, 1.3871, 1.18622, 1.10818, 1.04478, 1.2107, 1.18622, 0.75155, 0.94994, 1.28826, 1.21408, 1.21408, 0.91056, 1, 0.91572, 0.9754, 0.64663, 1.18328, 1.24866, 1.04478, 1.14169, 1.15749, 1.17389, 0.71703, 0.97363, 0.97363, 0.97363, 0.97363, 0.97363, 0.97363, 0.93506, 0.8641, 0.79795, 0.79795, 0.79795, 0.79795, 1.1406, 1.1406, 1.1406, 1.1406, 1.02096, 1.09398, 0.97426, 0.97426, 0.97426, 0.97426, 0.97426, 1.2107, 0.97489, 1.00135, 1.00135, 1.00135, 1.00135, 0.90996, 0.92094, 1.02798, 0.96752, 0.96752, 0.96752, 0.96752, 0.96752, 0.96752, 0.93136, 0.86304, 0.97278, 0.97278, 0.97278, 0.97278, 1.02285, 1.02285, 1.02285, 1.02285, 0.97122, 0.99041, 1, 1, 1, 1, 1, 1.28826, 1.0008, 0.99041, 0.99041, 0.99041, 0.99041, 0.96752, 1.01519, 0.96752, 0.97363, 0.96752, 0.97363, 0.96752, 0.97363, 0.96752, 0.8641, 0.86304, 0.8641, 0.86304, 0.8641, 0.86304, 0.8641, 0.86304, 1.02096, 1.03057, 1.02096, 1.03517, 0.79795, 0.97278, 0.79795, 0.97278, 0.79795, 0.97278, 0.79795, 0.97278, 0.79795, 0.97278, 0.914, 1.01359, 0.914, 1.01359, 0.914, 1.01359, 1, 1, 1.06085, 0.98561, 1.06085, 1.00879, 1.1406, 1.02285, 1.1406, 1.02285, 1.1406, 1.02285, 1.1406, 1.02285, 1.1406, 1.02285, 0.97138, 1.08692, 0.8007, 1.02285, 1, 1, 1.00527, 0.83693, 1.02285, 1, 1, 0.83693, 0.9455, 0.83693, 0.90418, 0.83693, 1.13005, 1.09398, 0.99041, 1, 1, 1.09398, 0.99041, 0.96692, 1.09251, 0.99041, 0.97489, 1.0008, 0.97489, 1.0008, 0.97489, 1.0008, 0.93994, 0.97931, 0.90399, 1.02258, 1, 1, 0.90399, 1.02258, 0.84041, 0.79104, 0.84041, 0.79104, 0.84041, 0.79104, 0.84041, 0.79104, 1, 1, 0.95923, 1.07034, 0.95923, 1.16862, 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041, 1.06467, 1.02511, 0.90996, 0.96752, 0.90996, 0.99361, 0.95801, 0.99361, 0.95801, 0.99361, 0.95801, 1.07733, 1.03424, 0.97363, 0.96752, 0.93506, 0.93136, 0.97489, 1.0008, 1, 1, 0.95923, 1.16862, 1.15103, 1.15103, 1.01173, 1.03959, 0.75953, 0.81378, 0.79912, 1.15103, 1.21994, 0.95161, 0.87815, 1.01149, 0.81525, 0.7676, 0.98167, 1.01134, 1.02546, 0.84097, 1.03089, 1.18102, 0.97363, 0.88776, 0.85134, 0.97826, 0.79795, 0.99361, 1.06085, 0.97489, 1.1406, 0.89858, 1.0388, 1.14889, 1.09398, 0.86039, 0.97489, 1.0595, 0.92094, 0.94793, 0.95923, 0.90996, 0.99346, 0.98243, 1.02112, 0.95493, 1.1406, 0.90996, 1.03574, 1.02597, 1.0008, 1.18102, 1.06628, 1.03574, 1.0192, 1.01932, 1.00886, 0.97531, 1.0106, 1.0008, 1.13189, 1.18102, 1.02277, 0.98683, 1.0016, 0.99561, 1.07237, 1.0008, 0.90434, 0.99921, 0.93803, 0.8965, 1.23085, 1.06628, 1.04983, 0.96268, 1.0499, 0.98439, 1.18102, 1.06628, 1.0008, 1.06628, 0.98439, 0.79795, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.09466, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.97278, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.02065, 1, 1, 1, 1, 1, 1, 1.06467, 1.02511, 1.06467, 1.02511, 1.06467, 1.02511, 0.90996, 0.96752, 1, 1.21408, 0.89903, 1, 1, 0.75155, 1.04394, 1.04394, 1.04394, 1.04394, 0.98633, 0.98633, 0.98633, 0.73047, 0.73047, 1.20642, 0.91211, 1.25635, 1.222, 1.02956, 1.03372, 1.03372, 0.96039, 1.24633, 1, 1.12454, 0.93503, 1.03424, 1.19687, 1.03424, 1, 1, 1, 0.771, 1, 1, 1.15749, 1.15749, 1.15749, 1.10948, 0.86279, 0.94434, 0.86279, 0.94434, 0.86182, 1, 1, 1.16897, 1, 0.96085, 0.90137, 1.2107, 1.18416, 1.13973, 0.69825, 0.9716, 2.10339, 1.29004, 1.29004, 1.21172, 1.29004, 1.29004, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025, 1.18874, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.09193, 1.09193, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
      wx = { lineHeight: 1.33008, lineGap: 0 };
      xx = [1.76738, 1, 1, 0.98946, 1.03959, 1.04016, 1.02809, 1.036, 0.97639, 1.10953, 1.23203, 1.11144, 1.11144, 1.16939, 1.21237, 0.9754, 1.21261, 0.9754, 1.59754, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 0.81378, 0.81378, 1.21237, 1.21237, 1.21237, 0.73541, 0.97847, 0.97363, 0.89723, 0.87897, 1.0426, 0.79429, 0.85292, 0.91149, 1.05815, 1.1406, 0.79631, 0.90128, 0.83853, 1.04396, 1.10615, 0.97552, 0.94436, 0.97552, 0.88641, 0.80527, 0.96083, 1.00135, 1, 1.06777, 0.9817, 0.91142, 0.99361, 1.11144, 1.57293, 1.11144, 1.21237, 0.74627, 1.31818, 1.06585, 0.97042, 0.83055, 0.97042, 0.93503, 1.1261, 0.97042, 0.97922, 1.14236, 0.94552, 1.01054, 1.14236, 1.02471, 0.97922, 0.94165, 0.97042, 0.97042, 1.0276, 0.78929, 1.1261, 0.97922, 0.95874, 1.02197, 0.98507, 0.96752, 0.97168, 0.95107, 1.16579, 0.95107, 1.21237, 1.03959, 1.036, 1.036, 1, 1.036, 1.16579, 0.87357, 1.31818, 1.18754, 1.26781, 1.05356, 1.21237, 1.18622, 0.79487, 0.94994, 1.29004, 1.24047, 1.24047, 1.31818, 1, 0.91484, 0.9754, 1.31818, 1.1349, 1.24866, 1.05356, 1.13934, 1.15574, 1.17389, 0.73541, 0.97363, 0.97363, 0.97363, 0.97363, 0.97363, 0.97363, 0.94385, 0.87897, 0.79429, 0.79429, 0.79429, 0.79429, 1.1406, 1.1406, 1.1406, 1.1406, 1.0426, 1.10615, 0.97552, 0.97552, 0.97552, 0.97552, 0.97552, 1.21237, 0.97552, 1.00135, 1.00135, 1.00135, 1.00135, 0.91142, 0.94436, 0.98721, 1.06585, 1.06585, 1.06585, 1.06585, 1.06585, 1.06585, 0.96705, 0.83055, 0.93503, 0.93503, 0.93503, 0.93503, 1.14236, 1.14236, 1.14236, 1.14236, 0.93125, 0.97922, 0.94165, 0.94165, 0.94165, 0.94165, 0.94165, 1.29004, 0.94165, 0.97922, 0.97922, 0.97922, 0.97922, 0.96752, 0.97042, 0.96752, 0.97363, 1.06585, 0.97363, 1.06585, 0.97363, 1.06585, 0.87897, 0.83055, 0.87897, 0.83055, 0.87897, 0.83055, 0.87897, 0.83055, 1.0426, 1.0033, 1.0426, 0.97042, 0.79429, 0.93503, 0.79429, 0.93503, 0.79429, 0.93503, 0.79429, 0.93503, 0.79429, 0.93503, 0.91149, 0.97042, 0.91149, 0.97042, 0.91149, 0.97042, 1, 1, 1.05815, 0.97922, 1.05815, 0.97922, 1.1406, 1.14236, 1.1406, 1.14236, 1.1406, 1.14236, 1.1406, 1.14236, 1.1406, 1.14236, 0.97441, 1.04302, 0.79631, 1.01582, 1, 1, 1.01054, 0.83853, 1.14236, 1, 1, 0.83853, 1.09125, 0.83853, 0.90418, 0.83853, 1.19508, 1.10615, 0.97922, 1, 1, 1.10615, 0.97922, 1.01034, 1.10466, 0.97922, 0.97552, 0.94165, 0.97552, 0.94165, 0.97552, 0.94165, 0.91602, 0.91981, 0.88641, 1.0276, 1, 1, 0.88641, 1.0276, 0.80527, 0.78929, 0.80527, 0.78929, 0.80527, 0.78929, 0.80527, 0.78929, 1, 1, 0.96083, 1.05403, 0.95923, 1.16862, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.06777, 1.02197, 0.91142, 0.96752, 0.91142, 0.99361, 0.97168, 0.99361, 0.97168, 0.99361, 0.97168, 1.23199, 1.036, 0.97363, 1.06585, 0.94385, 0.96705, 0.97552, 0.94165, 1, 1, 0.96083, 1.1261, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 0.95161, 1.27126, 1.00811, 0.83284, 0.77702, 0.99137, 0.95253, 1.0347, 0.86142, 1.07205, 1.14236, 0.97363, 0.89723, 0.86869, 1.09818, 0.79429, 0.99361, 1.05815, 0.97552, 1.1406, 0.90128, 1.06662, 1.04396, 1.10615, 0.84918, 0.97552, 1.04694, 0.94436, 0.98015, 0.96083, 0.91142, 1.00356, 0.9817, 1.01945, 0.98999, 1.1406, 0.91142, 1.04961, 0.9898, 1.00639, 1.14236, 1.07514, 1.04961, 0.99607, 1.02897, 1.008, 0.9898, 0.95134, 1.00639, 1.11121, 1.14236, 1.00518, 0.97981, 1.02186, 1, 1.08578, 0.94165, 0.99314, 0.98387, 0.93028, 0.93377, 1.35125, 1.07514, 1.10687, 0.93491, 1.04232, 1.00351, 1.14236, 1.07514, 0.94165, 1.07514, 1.00351, 0.79429, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.09097, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.93503, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.96609, 1, 1, 1, 1, 1, 1, 1.06777, 1.02197, 1.06777, 1.02197, 1.06777, 1.02197, 0.91142, 0.96752, 1, 1.21261, 0.89903, 1, 1, 0.75155, 1.04745, 1.04745, 1.04745, 1.04394, 0.98633, 0.98633, 0.98633, 0.72959, 0.72959, 1.20502, 0.91406, 1.26514, 1.222, 1.02956, 1.03372, 1.03372, 0.96039, 1.24633, 1, 1.09125, 0.93327, 1.03336, 1.16541, 1.036, 1, 1, 1, 0.771, 1, 1, 1.15574, 1.15574, 1.15574, 1.15574, 0.86364, 0.94434, 0.86279, 0.94434, 0.86224, 1, 1, 1.16798, 1, 0.96085, 0.90068, 1.21237, 1.18416, 1.13904, 0.69825, 0.9716, 2.10339, 1.29004, 1.29004, 1.21339, 1.29004, 1.29004, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025, 1.18775, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.13269, 1.13269, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
      kx = { lineHeight: 1.33008, lineGap: 0 };
      yx = [1.76738, 1, 1, 0.98946, 1.14763, 1.05365, 1.06234, 0.96927, 0.92586, 1.15373, 1.18414, 0.91349, 0.91349, 1.07403, 1.17308, 0.78383, 1.20088, 0.78383, 1.42531, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.78383, 0.78383, 1.17308, 1.17308, 1.17308, 0.77349, 0.94565, 0.94729, 0.85944, 0.88506, 0.9858, 0.74817, 0.80016, 0.88449, 0.98039, 0.95782, 0.69238, 0.89898, 0.83231, 0.98183, 1.03989, 0.96924, 0.86237, 0.96924, 0.80595, 0.74524, 0.86091, 0.95402, 0.94143, 0.98448, 0.8858, 0.83089, 0.93285, 1.0949, 1.39016, 1.0949, 1.45994, 0.74627, 1.04839, 0.97454, 0.97454, 0.87207, 0.97454, 0.87533, 1.06151, 0.97454, 1.00176, 1.16484, 1.08132, 0.98047, 1.16484, 1.02989, 1.01054, 0.96225, 0.97454, 0.97454, 1.06598, 0.79004, 1.16344, 1.00351, 0.94629, 0.9973, 0.91016, 0.96777, 0.9043, 0.91082, 0.92481, 0.91082, 1.17308, 0.95748, 0.96927, 0.96927, 1, 0.96927, 0.92481, 0.80597, 1.04839, 1.23393, 1.1781, 0.9245, 1.17308, 1.20808, 0.63218, 0.94261, 1.24822, 1.09971, 1.09971, 1.04839, 1, 0.85273, 0.78032, 1.04839, 1.09971, 1.22326, 0.9245, 1.09836, 1.13525, 1.15222, 0.70424, 0.94729, 0.94729, 0.94729, 0.94729, 0.94729, 0.94729, 0.85498, 0.88506, 0.74817, 0.74817, 0.74817, 0.74817, 0.95782, 0.95782, 0.95782, 0.95782, 0.9858, 1.03989, 0.96924, 0.96924, 0.96924, 0.96924, 0.96924, 1.17308, 0.96924, 0.95402, 0.95402, 0.95402, 0.95402, 0.83089, 0.86237, 0.88409, 0.97454, 0.97454, 0.97454, 0.97454, 0.97454, 0.97454, 0.92916, 0.87207, 0.87533, 0.87533, 0.87533, 0.87533, 0.93146, 0.93146, 0.93146, 0.93146, 0.93854, 1.01054, 0.96225, 0.96225, 0.96225, 0.96225, 0.96225, 1.24822, 0.8761, 1.00351, 1.00351, 1.00351, 1.00351, 0.96777, 0.97454, 0.96777, 0.94729, 0.97454, 0.94729, 0.97454, 0.94729, 0.97454, 0.88506, 0.87207, 0.88506, 0.87207, 0.88506, 0.87207, 0.88506, 0.87207, 0.9858, 0.95391, 0.9858, 0.97454, 0.74817, 0.87533, 0.74817, 0.87533, 0.74817, 0.87533, 0.74817, 0.87533, 0.74817, 0.87533, 0.88449, 0.97454, 0.88449, 0.97454, 0.88449, 0.97454, 1, 1, 0.98039, 1.00176, 0.98039, 1.00176, 0.95782, 0.93146, 0.95782, 0.93146, 0.95782, 0.93146, 0.95782, 1.16484, 0.95782, 0.93146, 0.84421, 1.12761, 0.69238, 1.08132, 1, 1, 0.98047, 0.83231, 1.16484, 1, 1, 0.84723, 1.04861, 0.84723, 0.78755, 0.83231, 1.23736, 1.03989, 1.01054, 1, 1, 1.03989, 1.01054, 0.9857, 1.03849, 1.01054, 0.96924, 0.96225, 0.96924, 0.96225, 0.96924, 0.96225, 0.92383, 0.90171, 0.80595, 1.06598, 1, 1, 0.80595, 1.06598, 0.74524, 0.79004, 0.74524, 0.79004, 0.74524, 0.79004, 0.74524, 0.79004, 1, 1, 0.86091, 1.02759, 0.85771, 1.16344, 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351, 0.98448, 0.9973, 0.83089, 0.96777, 0.83089, 0.93285, 0.9043, 0.93285, 0.9043, 0.93285, 0.9043, 1.31868, 0.96927, 0.94729, 0.97454, 0.85498, 0.92916, 0.96924, 0.8761, 1, 1, 0.86091, 1.16344, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 0.81965, 0.81965, 0.94729, 0.78032, 0.71022, 0.90883, 0.84171, 0.99877, 0.77596, 1.05734, 1.2, 0.94729, 0.85944, 0.82791, 0.9607, 0.74817, 0.93285, 0.98039, 0.96924, 0.95782, 0.89898, 0.98316, 0.98183, 1.03989, 0.78614, 0.96924, 0.97642, 0.86237, 0.86075, 0.86091, 0.83089, 0.90082, 0.8858, 0.97296, 1.01284, 0.95782, 0.83089, 1.0976, 1.04, 1.03342, 1.2, 1.0675, 1.0976, 0.98205, 1.03809, 1.05097, 1.04, 0.95364, 1.03342, 1.05401, 1.2, 1.02148, 1.0119, 1.04724, 1.0127, 1.02732, 0.96225, 0.8965, 0.97783, 0.93574, 0.94818, 1.30679, 1.0675, 1.11826, 0.99821, 1.0557, 1.0326, 1.2, 1.0675, 0.96225, 1.0675, 1.0326, 0.74817, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.03754, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.87533, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.98705, 1, 1, 1, 1, 1, 1, 0.98448, 0.9973, 0.98448, 0.9973, 0.98448, 0.9973, 0.83089, 0.96777, 1, 1.20088, 0.89903, 1, 1, 0.75155, 0.94945, 0.94945, 0.94945, 0.94945, 1.12317, 1.12317, 1.12317, 0.67603, 0.67603, 1.15621, 0.73584, 1.21191, 1.22135, 1.06483, 0.94868, 0.94868, 0.95996, 1.24633, 1, 1.07497, 0.87709, 0.96927, 1.01473, 0.96927, 1, 1, 1, 0.77295, 1, 1, 1.09836, 1.09836, 1.09836, 1.01522, 0.86321, 0.94434, 0.8649, 0.94434, 0.86182, 1, 1, 1.083, 1, 0.91578, 0.86438, 1.17308, 1.18416, 1.14589, 0.69825, 0.97622, 1.96791, 1.24822, 1.24822, 1.17308, 1.24822, 1.24822, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025, 1.17984, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.10742, 1.10742, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
      jx = { lineHeight: 1.33008, lineGap: 0 };
      vx = [1.76738, 1, 1, 0.98594, 1.02285, 1.10454, 1.06234, 0.96927, 0.92037, 1.19985, 1.2046, 0.90616, 0.90616, 1.07152, 1.1714, 0.78032, 1.20088, 0.78032, 1.40246, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.78032, 0.78032, 1.1714, 1.1714, 1.1714, 0.80597, 0.94084, 0.96706, 0.85944, 0.85734, 0.97093, 0.75842, 0.79936, 0.88198, 0.9831, 0.95782, 0.71387, 0.86969, 0.84636, 1.07796, 1.03584, 0.96924, 0.83968, 0.96924, 0.82826, 0.79649, 0.85771, 0.95132, 0.93119, 0.98965, 0.88433, 0.8287, 0.93365, 1.08612, 1.3638, 1.08612, 1.45786, 0.74627, 0.80499, 0.91484, 1.05707, 0.92383, 1.05882, 0.9403, 1.12654, 1.05882, 1.01756, 1.09011, 1.09011, 0.99414, 1.09011, 1.034, 1.01756, 1.05356, 1.05707, 1.05882, 1.04399, 0.84863, 1.21968, 1.01756, 0.95801, 1.00068, 0.91797, 0.96777, 0.9043, 0.90351, 0.92105, 0.90351, 1.1714, 0.85337, 0.96927, 0.96927, 0.99912, 0.96927, 0.92105, 0.80597, 1.2434, 1.20808, 1.05937, 0.90957, 1.1714, 1.20808, 0.75155, 0.94261, 1.24644, 1.09971, 1.09971, 0.84751, 1, 0.85273, 0.78032, 0.61584, 1.05425, 1.17914, 0.90957, 1.08665, 1.11593, 1.14169, 0.73381, 0.96706, 0.96706, 0.96706, 0.96706, 0.96706, 0.96706, 0.86035, 0.85734, 0.75842, 0.75842, 0.75842, 0.75842, 0.95782, 0.95782, 0.95782, 0.95782, 0.97093, 1.03584, 0.96924, 0.96924, 0.96924, 0.96924, 0.96924, 1.1714, 0.96924, 0.95132, 0.95132, 0.95132, 0.95132, 0.8287, 0.83968, 0.89049, 0.91484, 0.91484, 0.91484, 0.91484, 0.91484, 0.91484, 0.93575, 0.92383, 0.9403, 0.9403, 0.9403, 0.9403, 0.8717, 0.8717, 0.8717, 0.8717, 1.00527, 1.01756, 1.05356, 1.05356, 1.05356, 1.05356, 1.05356, 1.24644, 0.95923, 1.01756, 1.01756, 1.01756, 1.01756, 0.96777, 1.05707, 0.96777, 0.96706, 0.91484, 0.96706, 0.91484, 0.96706, 0.91484, 0.85734, 0.92383, 0.85734, 0.92383, 0.85734, 0.92383, 0.85734, 0.92383, 0.97093, 1.0969, 0.97093, 1.05882, 0.75842, 0.9403, 0.75842, 0.9403, 0.75842, 0.9403, 0.75842, 0.9403, 0.75842, 0.9403, 0.88198, 1.05882, 0.88198, 1.05882, 0.88198, 1.05882, 1, 1, 0.9831, 1.01756, 0.9831, 1.01756, 0.95782, 0.8717, 0.95782, 0.8717, 0.95782, 0.8717, 0.95782, 1.09011, 0.95782, 0.8717, 0.84784, 1.11551, 0.71387, 1.09011, 1, 1, 0.99414, 0.84636, 1.09011, 1, 1, 0.84636, 1.0536, 0.84636, 0.94298, 0.84636, 1.23297, 1.03584, 1.01756, 1, 1, 1.03584, 1.01756, 1.00323, 1.03444, 1.01756, 0.96924, 1.05356, 0.96924, 1.05356, 0.96924, 1.05356, 0.93066, 0.98293, 0.82826, 1.04399, 1, 1, 0.82826, 1.04399, 0.79649, 0.84863, 0.79649, 0.84863, 0.79649, 0.84863, 0.79649, 0.84863, 1, 1, 0.85771, 1.17318, 0.85771, 1.21968, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.98965, 1.00068, 0.8287, 0.96777, 0.8287, 0.93365, 0.9043, 0.93365, 0.9043, 0.93365, 0.9043, 1.08571, 0.96927, 0.96706, 0.91484, 0.86035, 0.93575, 0.96924, 0.95923, 1, 1, 0.85771, 1.21968, 1.11437, 1.11437, 0.93109, 0.91202, 0.60411, 0.84164, 0.55572, 1.01173, 0.97361, 0.81818, 0.81818, 0.96635, 0.78032, 0.72727, 0.92366, 0.98601, 1.03405, 0.77968, 1.09799, 1.2, 0.96706, 0.85944, 0.85638, 0.96491, 0.75842, 0.93365, 0.9831, 0.96924, 0.95782, 0.86969, 0.94152, 1.07796, 1.03584, 0.78437, 0.96924, 0.98715, 0.83968, 0.83491, 0.85771, 0.8287, 0.94492, 0.88433, 0.9287, 1.0098, 0.95782, 0.8287, 1.0625, 0.98248, 1.03424, 1.2, 1.01071, 1.0625, 0.95246, 1.03809, 1.04912, 0.98248, 1.00221, 1.03424, 1.05443, 1.2, 1.04785, 0.99609, 1.00169, 1.05176, 0.99346, 1.05356, 0.9087, 1.03004, 0.95542, 0.93117, 1.23362, 1.01071, 1.07831, 1.02512, 1.05205, 1.03502, 1.2, 1.01071, 1.05356, 1.01071, 1.03502, 0.75842, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.03719, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.9403, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.04021, 1, 1, 1, 1, 1, 1, 0.98965, 1.00068, 0.98965, 1.00068, 0.98965, 1.00068, 0.8287, 0.96777, 1, 1.20088, 0.89903, 1, 1, 0.75155, 1.03077, 1.03077, 1.03077, 1.03077, 1.13196, 1.13196, 1.13196, 0.67428, 0.67428, 1.16039, 0.73291, 1.20996, 1.22135, 1.06483, 0.94868, 0.94868, 0.95996, 1.24633, 1, 1.07497, 0.87796, 0.96927, 1.01518, 0.96927, 1, 1, 1, 0.77295, 1, 1, 1.10539, 1.10539, 1.11358, 1.06967, 0.86279, 0.94434, 0.86279, 0.94434, 0.86182, 1, 1, 1.083, 1, 0.91578, 0.86507, 1.1714, 1.18416, 1.14589, 0.69825, 0.97622, 1.9697, 1.24822, 1.24822, 1.17238, 1.24822, 1.24822, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025, 1.18083, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.10938, 1.10938, 1, 1, 1, 1.05425, 1.09971, 1.09971, 1.09971, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
      qx = { lineHeight: 1.33008, lineGap: 0 };
      Ax = Dt(function(t) {
        t["MyriadPro-Regular"] = t["PdfJS-Fallback-Regular"] = { name: "LiberationSans-Regular", factors: mx, baseWidths: io, baseMapping: ao, metrics: gx }, t["MyriadPro-Bold"] = t["PdfJS-Fallback-Bold"] = { name: "LiberationSans-Bold", factors: fx, baseWidths: Jr, baseMapping: Zr, metrics: cx }, t["MyriadPro-It"] = t["MyriadPro-Italic"] = t["PdfJS-Fallback-Italic"] = { name: "LiberationSans-Italic", factors: dx, baseWidths: no, baseMapping: so, metrics: px }, t["MyriadPro-BoldIt"] = t["MyriadPro-BoldItalic"] = t["PdfJS-Fallback-BoldItalic"] = { name: "LiberationSans-BoldItalic", factors: hx, baseWidths: eo, baseMapping: to, metrics: ux }, t.ArialMT = t.Arial = t["Arial-Regular"] = { name: "LiberationSans-Regular", baseWidths: io, baseMapping: ao }, t["Arial-BoldMT"] = t["Arial-Bold"] = { name: "LiberationSans-Bold", baseWidths: Jr, baseMapping: Zr }, t["Arial-ItalicMT"] = t["Arial-Italic"] = { name: "LiberationSans-Italic", baseWidths: no, baseMapping: so }, t["Arial-BoldItalicMT"] = t["Arial-BoldItalic"] = { name: "LiberationSans-BoldItalic", baseWidths: eo, baseMapping: to }, t["Calibri-Regular"] = { name: "LiberationSans-Regular", factors: Zw, baseWidths: io, baseMapping: ao, metrics: ex }, t["Calibri-Bold"] = { name: "LiberationSans-Bold", factors: Vw, baseWidths: Jr, baseMapping: Zr, metrics: Kw }, t["Calibri-Italic"] = { name: "LiberationSans-Italic", factors: Qw, baseWidths: no, baseMapping: so, metrics: Jw }, t["Calibri-BoldItalic"] = { name: "LiberationSans-BoldItalic", factors: Xw, baseWidths: eo, baseMapping: to, metrics: Yw }, t["Segoeui-Regular"] = { name: "LiberationSans-Regular", factors: vx, baseWidths: io, baseMapping: ao, metrics: qx }, t["Segoeui-Bold"] = { name: "LiberationSans-Bold", factors: bx, baseWidths: Jr, baseMapping: Zr, metrics: wx }, t["Segoeui-Italic"] = { name: "LiberationSans-Italic", factors: yx, baseWidths: no, baseMapping: so, metrics: jx }, t["Segoeui-BoldItalic"] = { name: "LiberationSans-BoldItalic", factors: xx, baseWidths: eo, baseMapping: to, metrics: kx }, t["Helvetica-Regular"] = t.Helvetica = { name: "LiberationSans-Regular", factors: ox, baseWidths: io, baseMapping: ao, metrics: lx }, t["Helvetica-Bold"] = { name: "LiberationSans-Bold", factors: tx, baseWidths: Jr, baseMapping: Zr, metrics: nx }, t["Helvetica-Italic"] = { name: "LiberationSans-Italic", factors: ax, baseWidths: no, baseMapping: so, metrics: rx }, t["Helvetica-BoldItalic"] = { name: "LiberationSans-BoldItalic", factors: sx, baseWidths: eo, baseMapping: to, metrics: ix };
      });
      p(Yf, "getXfaFontName");
      p(Sx, "getXfaFontWidths");
      p(kd, "getXfaFontDict");
      Cx = class {
        static {
          p(this, "PostScriptParser");
        }
        constructor(e) {
          this.lexer = e, this.operators = [], this.token = null, this.prev = null;
        }
        nextToken() {
          this.prev = this.token, this.token = this.lexer.getToken();
        }
        accept(e) {
          return this.token.type === e ? (this.nextToken(), true) : false;
        }
        expect(e) {
          if (this.accept(e)) return true;
          throw new Q(`Unexpected symbol: found ${this.token.type} expected ${e}.`);
        }
        parse() {
          return this.nextToken(), this.expect(Mn.LBRACE), this.parseBlock(), this.expect(Mn.RBRACE), this.operators;
        }
        parseBlock() {
          for (; ; ) if (this.accept(Mn.NUMBER)) this.operators.push(this.prev.value);
          else if (this.accept(Mn.OPERATOR)) this.operators.push(this.prev.value);
          else if (this.accept(Mn.LBRACE)) this.parseCondition();
          else return;
        }
        parseCondition() {
          const e = this.operators.length;
          if (this.operators.push(null, null), this.parseBlock(), this.expect(Mn.RBRACE), this.accept(Mn.IF)) this.operators[e] = this.operators.length, this.operators[e + 1] = "jz";
          else if (this.accept(Mn.LBRACE)) {
            const n = this.operators.length;
            this.operators.push(null, null);
            const s = this.operators.length;
            this.parseBlock(), this.expect(Mn.RBRACE), this.expect(Mn.IFELSE), this.operators[n] = this.operators.length, this.operators[n + 1] = "j", this.operators[e] = s, this.operators[e + 1] = "jz";
          } else throw new Q("PS Function: error parsing conditional.");
        }
      };
      Mn = { LBRACE: 0, RBRACE: 1, NUMBER: 2, OPERATOR: 3, IF: 4, IFELSE: 5 };
      ws = class _ws {
        static {
          p(this, "PostScriptToken");
        }
        static get opCache() {
          return fe(this, "opCache", /* @__PURE__ */ Object.create(null));
        }
        constructor(e, n) {
          this.type = e, this.value = n;
        }
        static getOperator(e) {
          return _ws.opCache[e] ||= new _ws(Mn.OPERATOR, e);
        }
        static get LBRACE() {
          return fe(this, "LBRACE", new _ws(Mn.LBRACE, "{"));
        }
        static get RBRACE() {
          return fe(this, "RBRACE", new _ws(Mn.RBRACE, "}"));
        }
        static get IF() {
          return fe(this, "IF", new _ws(Mn.IF, "IF"));
        }
        static get IFELSE() {
          return fe(this, "IFELSE", new _ws(Mn.IFELSE, "IFELSE"));
        }
      };
      Ix = class {
        static {
          p(this, "PostScriptLexer");
        }
        constructor(e) {
          this.stream = e, this.nextChar(), this.strBuf = [];
        }
        nextChar() {
          return this.currentChar = this.stream.getByte();
        }
        getToken() {
          let e = false, n = this.currentChar;
          for (; ; ) {
            if (n < 0) return pn;
            if (e) (n === 10 || n === 13) && (e = false);
            else if (n === 37) e = true;
            else if (!ls(n)) break;
            n = this.nextChar();
          }
          switch (n | 0) {
            case 48:
            case 49:
            case 50:
            case 51:
            case 52:
            case 53:
            case 54:
            case 55:
            case 56:
            case 57:
            case 43:
            case 45:
            case 46:
              return new ws(Mn.NUMBER, this.getNumber());
            case 123:
              return this.nextChar(), ws.LBRACE;
            case 125:
              return this.nextChar(), ws.RBRACE;
          }
          const s = this.strBuf;
          for (s.length = 0, s[0] = String.fromCharCode(n); (n = this.nextChar()) >= 0 && (n >= 65 && n <= 90 || n >= 97 && n <= 122); ) s.push(String.fromCharCode(n));
          const i = s.join("");
          switch (i.toLowerCase()) {
            case "if":
              return ws.IF;
            case "ifelse":
              return ws.IFELSE;
            default:
              return ws.getOperator(i);
          }
        }
        getNumber() {
          let e = this.currentChar;
          const n = this.strBuf;
          for (n.length = 0, n[0] = String.fromCharCode(e); (e = this.nextChar()) >= 0 && (e >= 48 && e <= 57 || e === 45 || e === 46); ) n.push(String.fromCharCode(e));
          const s = parseFloat(n.join(""));
          if (isNaN(s)) throw new Q(`Invalid floating point number: ${s}`);
          return s;
        }
      };
      ha = class {
        static {
          p(this, "BaseLocalCache");
        }
        constructor(e) {
          this._onlyRefs = e?.onlyRefs === true, this._onlyRefs || (this._nameRefMap = /* @__PURE__ */ new Map(), this._imageMap = /* @__PURE__ */ new Map()), this._imageCache = new tn();
        }
        getByName(e) {
          this._onlyRefs && Ye("Should not call `getByName` method.");
          const n = this._nameRefMap.get(e);
          return n ? this.getByRef(n) : this._imageMap.get(e) || null;
        }
        getByRef(e) {
          return this._imageCache.get(e) || null;
        }
        set(e, n, s) {
          Ye("Abstract method `set` called.");
        }
      };
      yd = class extends ha {
        static {
          p(this, "LocalImageCache");
        }
        set(e, n = null, s) {
          if (typeof e != "string") throw new Error('LocalImageCache.set - expected "name" argument.');
          if (n) {
            if (this._imageCache.has(n)) return;
            this._nameRefMap.set(e, n), this._imageCache.put(n, s);
            return;
          }
          this._imageMap.has(e) || this._imageMap.set(e, s);
        }
      };
      jd = class extends ha {
        static {
          p(this, "LocalColorSpaceCache");
        }
        set(e = null, n = null, s) {
          if (typeof e != "string" && !n) throw new Error('LocalColorSpaceCache.set - expected "name" and/or "ref" argument.');
          if (n) {
            if (this._imageCache.has(n)) return;
            e !== null && this._nameRefMap.set(e, n), this._imageCache.put(n, s);
            return;
          }
          this._imageMap.has(e) || this._imageMap.set(e, s);
        }
      };
      Tx = class extends ha {
        static {
          p(this, "LocalFunctionCache");
        }
        constructor(e) {
          super({ onlyRefs: true });
        }
        set(e = null, n, s) {
          if (!n) throw new Error('LocalFunctionCache.set - expected "ref" argument.');
          this._imageCache.has(n) || this._imageCache.put(n, s);
        }
      };
      vd = class extends ha {
        static {
          p(this, "LocalGStateCache");
        }
        set(e, n = null, s) {
          if (typeof e != "string") throw new Error('LocalGStateCache.set - expected "name" argument.');
          if (n) {
            if (this._imageCache.has(n)) return;
            this._nameRefMap.set(e, n), this._imageCache.put(n, s);
            return;
          }
          this._imageMap.has(e) || this._imageMap.set(e, s);
        }
      };
      Ex = class extends ha {
        static {
          p(this, "LocalTilingPatternCache");
        }
        constructor(e) {
          super({ onlyRefs: true });
        }
        set(e = null, n, s) {
          if (!n) throw new Error('LocalTilingPatternCache.set - expected "ref" argument.');
          this._imageCache.has(n) || this._imageCache.put(n, s);
        }
      };
      Fx = class extends ha {
        static {
          p(this, "RegionalImageCache");
        }
        constructor(e) {
          super({ onlyRefs: true });
        }
        set(e = null, n, s) {
          if (!n) throw new Error('RegionalImageCache.set - expected "ref" argument.');
          this._imageCache.has(n) || this._imageCache.put(n, s);
        }
      };
      Bx = class extends ha {
        static {
          p(this, "GlobalColorSpaceCache");
        }
        constructor(e) {
          super({ onlyRefs: true });
        }
        set(e = null, n, s) {
          if (!n) throw new Error('GlobalColorSpaceCache.set - expected "ref" argument.');
          this._imageCache.has(n) || this._imageCache.put(n, s);
        }
        clear() {
          this._imageCache.clear();
        }
      };
      xr = class _xr {
        static {
          p(this, "GlobalImageCache");
        }
        static NUM_PAGES_THRESHOLD = 2;
        static MIN_IMAGES_TO_CACHE = 10;
        static MAX_BYTE_SIZE = 5e7;
        #e = new Rt();
        constructor() {
          this._refCache = new tn(), this._imageCache = new tn();
        }
        get #t() {
          let e = 0;
          for (const n of this._imageCache) e += n.byteSize;
          return e;
        }
        get #n() {
          return !(this._imageCache.size < _xr.MIN_IMAGES_TO_CACHE || this.#t < _xr.MAX_BYTE_SIZE);
        }
        shouldCache(e, n) {
          let s = this._refCache.get(e);
          return s || (s = /* @__PURE__ */ new Set(), this._refCache.put(e, s)), s.add(n), !(s.size < _xr.NUM_PAGES_THRESHOLD || !this._imageCache.has(e) && this.#n);
        }
        addDecodeFailed(e) {
          this.#e.put(e);
        }
        hasDecodeFailed(e) {
          return this.#e.has(e);
        }
        addByteSize(e, n) {
          const s = this._imageCache.get(e);
          s && (s.byteSize || (s.byteSize = n));
        }
        getData(e, n) {
          const s = this._refCache.get(e);
          if (!s || s.size < _xr.NUM_PAGES_THRESHOLD) return null;
          const i = this._imageCache.get(e);
          return i ? (s.add(n), i) : null;
        }
        setData(e, n) {
          if (!this._refCache.has(e)) throw new Error('GlobalImageCache.setData - expected "shouldCache" to have been called.');
          if (!this._imageCache.has(e)) {
            if (this.#n) {
              F("GlobalImageCache.setData - cache limit reached.");
              return;
            }
            this._imageCache.put(e, n);
          }
        }
        clear(e = false) {
          e || (this.#e.clear(), this._refCache.clear()), this._imageCache.clear();
        }
      };
      qd = class {
        static {
          p(this, "PDFFunctionFactory");
        }
        constructor({ xref: e, isEvalSupported: n = true }) {
          this.xref = e, this.isEvalSupported = n !== false;
        }
        create(e, n = false) {
          let s, i;
          if (e instanceof ae ? s = e : e instanceof _ ? s = e.objId : e instanceof ze && (s = e.dict?.objId), s) {
            const r = this._localFunctionCache.getByRef(s);
            if (r) return r;
          }
          const a = this.xref.fetchIfRef(e);
          if (Array.isArray(a)) {
            if (!n) throw new Error('PDFFunctionFactory.create - expected "parseArray" argument.');
            i = Ad.parseArray(this, a);
          } else i = Ad.parse(this, a);
          return s && this._localFunctionCache.set(null, s, i), i;
        }
        get _localFunctionCache() {
          return fe(this, "_localFunctionCache", new Tx());
        }
      };
      p(js, "toNumberArray");
      Ad = class {
        static {
          p(this, "PDFFunction");
        }
        static getSampleArray(e, n, s, i) {
          let a = n;
          for (const u of e) a *= u;
          const r = new Array(a);
          let o = 0, l = 0;
          const f = 1 / (2 ** s - 1), c = i.getBytes((a * s + 7) / 8);
          let h = 0;
          for (let u = 0; u < a; u++) {
            for (; o < s; ) l <<= 8, l |= c[h++], o += 8;
            o -= s, r[u] = (l >> o) * f, l &= (1 << o) - 1;
          }
          return r;
        }
        static parse(e, n) {
          const s = n.dict || n;
          switch (s.get("FunctionType")) {
            case 0:
              return this.constructSampled(e, n, s);
            case 1:
              break;
            case 2:
              return this.constructInterpolated(e, s);
            case 3:
              return this.constructStiched(e, s);
            case 4:
              return this.constructPostScript(e, n, s);
          }
          throw new Q("Unknown type of function");
        }
        static parseArray(e, n) {
          const { xref: s } = e, i = [];
          for (const a of n) i.push(this.parse(e, s.fetchIfRef(a)));
          return function(a, r, o, l) {
            for (let f = 0, c = i.length; f < c; f++) i[f](a, r, o, l + f);
          };
        }
        static constructSampled(e, n, s) {
          function i(b) {
            const w = b.length, x = [];
            let y = 0;
            for (let j = 0; j < w; j += 2) x[y++] = [b[j], b[j + 1]];
            return x;
          }
          p(i, "toMultiArray");
          function a(b, w, x, y, j) {
            return y + (b - w) * ((j - y) / (x - w));
          }
          p(a, "interpolate");
          let r = js(s.getArray("Domain")), o = js(s.getArray("Range"));
          if (!r || !o) throw new Q("No domain or range");
          const l = r.length / 2, f = o.length / 2;
          r = i(r), o = i(o);
          const c = js(s.getArray("Size")), h = s.get("BitsPerSample"), u = s.get("Order") || 1;
          u !== 1 && Ke("No support for cubic spline interpolation: " + u);
          let d = js(s.getArray("Encode"));
          if (d) d = i(d);
          else {
            d = [];
            for (let b = 0; b < l; ++b) d.push([0, c[b] - 1]);
          }
          let m = js(s.getArray("Decode"));
          m = m ? i(m) : o;
          const g = this.getSampleArray(c, f, h, n);
          return p(function(w, x, y, j) {
            const v = 1 << l, q = new Float64Array(v).fill(1), A = new Uint32Array(v);
            let C, S, I = f, T = 1;
            for (C = 0; C < l; ++C) {
              const P = r[C][0], H = r[C][1], G = en(w[x + C], P, H);
              let Z = a(G, P, H, d[C][0], d[C][1]);
              const z = c[C];
              Z = en(Z, 0, z - 1);
              const O = Z < z - 1 ? Math.floor(Z) : Z - 1, N = O + 1 - Z, oe = Z - O, je = O * I, Y = je + I;
              for (S = 0; S < v; S++) S & T ? (q[S] *= oe, A[S] += Y) : (q[S] *= N, A[S] += je);
              I *= z, T <<= 1;
            }
            for (S = 0; S < f; ++S) {
              let P = 0;
              for (C = 0; C < v; C++) P += g[A[C] + S] * q[C];
              P = a(P, 0, 1, m[S][0], m[S][1]), y[j + S] = en(P, o[S][0], o[S][1]);
            }
          }, "constructSampledFn");
        }
        static constructInterpolated(e, n) {
          const s = js(n.getArray("C0")) || [0], i = js(n.getArray("C1")) || [1], a = n.get("N"), r = [];
          for (let l = 0, f = s.length; l < f; ++l) r.push(i[l] - s[l]);
          const o = r.length;
          return p(function(f, c, h, u) {
            const d = a === 1 ? f[c] : f[c] ** a;
            for (let m = 0; m < o; ++m) h[u + m] = s[m] + d * r[m];
          }, "constructInterpolatedFn");
        }
        static constructStiched(e, n) {
          const s = js(n.getArray("Domain"));
          if (!s) throw new Q("No domain");
          if (s.length / 2 !== 1) throw new Q("Bad domain for stiched function");
          const { xref: a } = e, r = [];
          for (const c of n.get("Functions")) r.push(this.parse(e, a.fetchIfRef(c)));
          const o = js(n.getArray("Bounds")), l = js(n.getArray("Encode")), f = new Float32Array(1);
          return p(function(h, u, d, m) {
            const g = en(h[u], s[0], s[1]), b = o.length;
            let w;
            for (w = 0; w < b && !(g < o[w]); ++w) ;
            const x = w > 0 ? o[w - 1] : s[0], y = w < b ? o[w] : s[1], j = l[2 * w], v = l[2 * w + 1];
            f[0] = x === y ? j : j + (g - x) * (v - j) / (y - x), r[w](f, 0, d, m);
          }, "constructStichedFn");
        }
        static constructPostScript(e, n, s) {
          const i = js(s.getArray("Domain")), a = js(s.getArray("Range"));
          if (!i) throw new Q("No domain.");
          if (!a) throw new Q("No range.");
          const r = new Ix(n), l = new Cx(r).parse();
          if (e.isEvalSupported && qn.isEvalSupported) {
            const b = new Lx().compile(l, i, a);
            if (b) return new Function("src", "srcOffset", "dest", "destOffset", b);
          }
          Ke("Unable to compile PS function");
          const f = a.length >> 1, c = i.length >> 1, h = new Rx(l), u = /* @__PURE__ */ Object.create(null);
          let m = 2048 * 4;
          const g = new Float32Array(c);
          return p(function(w, x, y, j) {
            let v, q, A = "";
            const C = g;
            for (v = 0; v < c; v++) q = w[x + v], C[v] = q, A += q + "_";
            const S = u[A];
            if (S !== void 0) {
              y.set(S, j);
              return;
            }
            const I = new Float32Array(f), T = h.execute(C), P = T.length - f;
            for (v = 0; v < f; v++) I[v] = en(T[P + v], a[v * 2], a[v * 2 + 1]);
            m > 0 && (m--, u[A] = I), y.set(I, j);
          }, "constructPostScriptFn");
        }
      };
      p(Qf, "isPDFFunction");
      N0 = class _N0 {
        static {
          p(this, "PostScriptStack");
        }
        static MAX_STACK_SIZE = 100;
        constructor(e) {
          this.stack = e ? Array.from(e) : [];
        }
        push(e) {
          if (this.stack.length >= _N0.MAX_STACK_SIZE) throw new Error("PostScript function stack overflow.");
          this.stack.push(e);
        }
        pop() {
          if (this.stack.length <= 0) throw new Error("PostScript function stack underflow.");
          return this.stack.pop();
        }
        copy(e) {
          if (this.stack.length + e >= _N0.MAX_STACK_SIZE) throw new Error("PostScript function stack overflow.");
          const n = this.stack;
          for (let s = n.length - e, i = e - 1; i >= 0; i--, s++) n.push(n[s]);
        }
        index(e) {
          this.push(this.stack[this.stack.length - e - 1]);
        }
        roll(e, n) {
          const s = this.stack, i = s.length - e, a = s.length - 1, r = i + (n - Math.floor(n / e) * e);
          for (let o = i, l = a; o < l; o++, l--) {
            const f = s[o];
            s[o] = s[l], s[l] = f;
          }
          for (let o = i, l = r - 1; o < l; o++, l--) {
            const f = s[o];
            s[o] = s[l], s[l] = f;
          }
          for (let o = r, l = a; o < l; o++, l--) {
            const f = s[o];
            s[o] = s[l], s[l] = f;
          }
        }
      };
      Rx = class {
        static {
          p(this, "PostScriptEvaluator");
        }
        constructor(e) {
          this.operators = e;
        }
        execute(e) {
          const n = new N0(e);
          let s = 0;
          const i = this.operators, a = i.length;
          let r, o, l;
          for (; s < a; ) {
            if (r = i[s++], typeof r == "number") {
              n.push(r);
              continue;
            }
            switch (r) {
              case "jz":
                l = n.pop(), o = n.pop(), o || (s = l);
                break;
              case "j":
                o = n.pop(), s = o;
                break;
              case "abs":
                o = n.pop(), n.push(Math.abs(o));
                break;
              case "add":
                l = n.pop(), o = n.pop(), n.push(o + l);
                break;
              case "and":
                l = n.pop(), o = n.pop(), typeof o == "boolean" && typeof l == "boolean" ? n.push(o && l) : n.push(o & l);
                break;
              case "atan":
                l = n.pop(), o = n.pop(), o = Math.atan2(o, l) / Math.PI * 180, o < 0 && (o += 360), n.push(o);
                break;
              case "bitshift":
                l = n.pop(), o = n.pop(), o > 0 ? n.push(o << l) : n.push(o >> l);
                break;
              case "ceiling":
                o = n.pop(), n.push(Math.ceil(o));
                break;
              case "copy":
                o = n.pop(), n.copy(o);
                break;
              case "cos":
                o = n.pop(), n.push(Math.cos(o % 360 / 180 * Math.PI));
                break;
              case "cvi":
                o = n.pop() | 0, n.push(o);
                break;
              case "cvr":
                break;
              case "div":
                l = n.pop(), o = n.pop(), n.push(o / l);
                break;
              case "dup":
                n.copy(1);
                break;
              case "eq":
                l = n.pop(), o = n.pop(), n.push(o === l);
                break;
              case "exch":
                n.roll(2, 1);
                break;
              case "exp":
                l = n.pop(), o = n.pop(), n.push(o ** l);
                break;
              case "false":
                n.push(false);
                break;
              case "floor":
                o = n.pop(), n.push(Math.floor(o));
                break;
              case "ge":
                l = n.pop(), o = n.pop(), n.push(o >= l);
                break;
              case "gt":
                l = n.pop(), o = n.pop(), n.push(o > l);
                break;
              case "idiv":
                l = n.pop(), o = n.pop(), n.push(o / l | 0);
                break;
              case "index":
                o = n.pop(), n.index(o);
                break;
              case "le":
                l = n.pop(), o = n.pop(), n.push(o <= l);
                break;
              case "ln":
                o = n.pop(), n.push(Math.log(o));
                break;
              case "log":
                o = n.pop(), n.push(Math.log10(o));
                break;
              case "lt":
                l = n.pop(), o = n.pop(), n.push(o < l);
                break;
              case "mod":
                l = n.pop(), o = n.pop(), n.push(o % l);
                break;
              case "mul":
                l = n.pop(), o = n.pop(), n.push(o * l);
                break;
              case "ne":
                l = n.pop(), o = n.pop(), n.push(o !== l);
                break;
              case "neg":
                o = n.pop(), n.push(-o);
                break;
              case "not":
                o = n.pop(), typeof o == "boolean" ? n.push(!o) : n.push(~o);
                break;
              case "or":
                l = n.pop(), o = n.pop(), typeof o == "boolean" && typeof l == "boolean" ? n.push(o || l) : n.push(o | l);
                break;
              case "pop":
                n.pop();
                break;
              case "roll":
                l = n.pop(), o = n.pop(), n.roll(o, l);
                break;
              case "round":
                o = n.pop(), n.push(Math.round(o));
                break;
              case "sin":
                o = n.pop(), n.push(Math.sin(o % 360 / 180 * Math.PI));
                break;
              case "sqrt":
                o = n.pop(), n.push(Math.sqrt(o));
                break;
              case "sub":
                l = n.pop(), o = n.pop(), n.push(o - l);
                break;
              case "true":
                n.push(true);
                break;
              case "truncate":
                o = n.pop(), o = o < 0 ? Math.ceil(o) : Math.floor(o), n.push(o);
                break;
              case "xor":
                l = n.pop(), o = n.pop(), typeof o == "boolean" && typeof l == "boolean" ? n.push(o !== l) : n.push(o ^ l);
                break;
              default:
                throw new Q(`Unknown operator ${r}`);
            }
          }
          return n.stack;
        }
      };
      Qa = class {
        static {
          p(this, "AstNode");
        }
        constructor(e) {
          this.type = e;
        }
        visit(e) {
          Ye("abstract method");
        }
      };
      _x = class extends Qa {
        static {
          p(this, "AstArgument");
        }
        constructor(e, n, s) {
          super("args"), this.index = e, this.min = n, this.max = s;
        }
        visit(e) {
          e.visitArgument(this);
        }
      };
      ua = class extends Qa {
        static {
          p(this, "AstLiteral");
        }
        constructor(e) {
          super("literal"), this.number = e, this.min = e, this.max = e;
        }
        visit(e) {
          e.visitLiteral(this);
        }
      };
      Jf = class extends Qa {
        static {
          p(this, "AstBinaryOperation");
        }
        constructor(e, n, s, i, a) {
          super("binary"), this.op = e, this.arg1 = n, this.arg2 = s, this.min = i, this.max = a;
        }
        visit(e) {
          e.visitBinaryOperation(this);
        }
      };
      Px = class extends Qa {
        static {
          p(this, "AstMin");
        }
        constructor(e, n) {
          super("max"), this.arg = e, this.min = e.min, this.max = n;
        }
        visit(e) {
          e.visitMin(this);
        }
      };
      Sd = class extends Qa {
        static {
          p(this, "AstVariable");
        }
        constructor(e, n, s) {
          super("var"), this.index = e, this.min = n, this.max = s;
        }
        visit(e) {
          e.visitVariable(this);
        }
      };
      Cd = class extends Qa {
        static {
          p(this, "AstVariableDefinition");
        }
        constructor(e, n) {
          super("definition"), this.variable = e, this.arg = n;
        }
        visit(e) {
          e.visitVariableDefinition(this);
        }
      };
      Id = class {
        static {
          p(this, "ExpressionBuilderVisitor");
        }
        parts = [];
        visitArgument(e) {
          this.parts.push("Math.max(", e.min, ", Math.min(", e.max, ", src[srcOffset + ", e.index, "]))");
        }
        visitVariable(e) {
          this.parts.push("v", e.index);
        }
        visitLiteral(e) {
          this.parts.push(e.number);
        }
        visitBinaryOperation(e) {
          this.parts.push("("), e.arg1.visit(this), this.parts.push(" ", e.op, " "), e.arg2.visit(this), this.parts.push(")");
        }
        visitVariableDefinition(e) {
          this.parts.push("var "), e.variable.visit(this), this.parts.push(" = "), e.arg.visit(this), this.parts.push(";");
        }
        visitMin(e) {
          this.parts.push("Math.min("), e.arg.visit(this), this.parts.push(", ", e.max, ")");
        }
        toString() {
          return this.parts.join("");
        }
      };
      p(Dx, "buildAddOperation");
      p(Mx, "buildMulOperation");
      p(Hx, "buildSubOperation");
      p(Ox, "buildMinOperation");
      Lx = class {
        static {
          p(this, "PostScriptCompiler");
        }
        compile(e, n, s) {
          const i = [], a = [], r = n.length >> 1, o = s.length >> 1;
          let l = 0, f, c, h, u, d, m, g, b;
          for (let x = 0; x < r; x++) i.push(new _x(x, n[x * 2], n[x * 2 + 1]));
          for (let x = 0, y = e.length; x < y; x++) {
            if (b = e[x], typeof b == "number") {
              i.push(new ua(b));
              continue;
            }
            switch (b) {
              case "add":
                if (i.length < 2) return null;
                u = i.pop(), h = i.pop(), i.push(Dx(h, u));
                break;
              case "cvr":
                if (i.length < 1) return null;
                break;
              case "mul":
                if (i.length < 2) return null;
                u = i.pop(), h = i.pop(), i.push(Mx(h, u));
                break;
              case "sub":
                if (i.length < 2) return null;
                u = i.pop(), h = i.pop(), i.push(Hx(h, u));
                break;
              case "exch":
                if (i.length < 2) return null;
                d = i.pop(), m = i.pop(), i.push(d, m);
                break;
              case "pop":
                if (i.length < 1) return null;
                i.pop();
                break;
              case "index":
                if (i.length < 1 || (h = i.pop(), h.type !== "literal") || (f = h.number, f < 0 || !Number.isInteger(f) || i.length < f)) return null;
                if (d = i[i.length - f - 1], d.type === "literal" || d.type === "var") {
                  i.push(d);
                  break;
                }
                g = new Sd(l++, d.min, d.max), i[i.length - f - 1] = g, i.push(g), a.push(new Cd(g, d));
                break;
              case "dup":
                if (i.length < 1) return null;
                if (typeof e[x + 1] == "number" && e[x + 2] === "gt" && e[x + 3] === x + 7 && e[x + 4] === "jz" && e[x + 5] === "pop" && e[x + 6] === e[x + 1]) {
                  h = i.pop(), i.push(Ox(h, e[x + 1])), x += 6;
                  break;
                }
                if (d = i.at(-1), d.type === "literal" || d.type === "var") {
                  i.push(d);
                  break;
                }
                g = new Sd(l++, d.min, d.max), i[i.length - 1] = g, i.push(g), a.push(new Cd(g, d));
                break;
              case "roll":
                if (i.length < 2 || (u = i.pop(), h = i.pop(), u.type !== "literal" || h.type !== "literal") || (c = u.number, f = h.number, f <= 0 || !Number.isInteger(f) || !Number.isInteger(c) || i.length < f)) return null;
                if (c = (c % f + f) % f, c === 0) break;
                i.push(...i.splice(i.length - f, f - c));
                break;
              default:
                return null;
            }
          }
          if (i.length !== o) return null;
          const w = [];
          for (const x of a) {
            const y = new Id();
            x.visit(y), w.push(y.toString());
          }
          for (let x = 0, y = i.length; x < y; x++) {
            const j = i[x], v = new Id();
            j.visit(v);
            const q = s[x * 2], A = s[x * 2 + 1], C = [v.toString()];
            q > j.min && (C.unshift("Math.max(", q, ", "), C.push(")")), A < j.max && (C.unshift("Math.min(", A, ", "), C.push(")")), C.unshift("dest[destOffset + ", x, "] = "), C.push(";"), w.push(C.join(""));
          }
          return w.join(`
`);
        }
      };
      Nx = ["BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "S", "B", "S", "WS", "B", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "B", "B", "B", "S", "WS", "ON", "ON", "ET", "ET", "ET", "ON", "ON", "ON", "ON", "ON", "ES", "CS", "ES", "CS", "CS", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "CS", "ON", "ON", "ON", "ON", "ON", "ON", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "ON", "ON", "ON", "ON", "ON", "ON", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "ON", "ON", "ON", "ON", "BN", "BN", "BN", "BN", "BN", "BN", "B", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "CS", "ON", "ET", "ET", "ET", "ET", "ON", "ON", "ON", "ON", "L", "ON", "ON", "BN", "ON", "ON", "ET", "ET", "EN", "EN", "ON", "L", "ON", "ON", "ON", "EN", "L", "ON", "ON", "ON", "ON", "ON", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "ON", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "ON", "L", "L", "L", "L", "L", "L", "L", "L"];
      zx = ["AN", "AN", "AN", "AN", "AN", "AN", "ON", "ON", "AL", "ET", "ET", "AL", "CS", "AL", "ON", "ON", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AL", "AL", "", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AN", "AN", "AN", "AN", "AN", "AN", "AN", "AN", "AN", "AN", "ET", "AN", "AN", "AL", "AL", "AL", "NSM", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AN", "ON", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AL", "AL", "NSM", "NSM", "ON", "NSM", "NSM", "NSM", "NSM", "AL", "AL", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "AL", "AL", "AL", "AL", "AL", "AL"];
      p(Td, "isOdd");
      p(Ux, "isEven");
      p(Gx, "findUnequal");
      p(Ed, "reverseValues");
      p(Zf, "createBidiText");
      Li = [];
      mt = [];
      p(Fd, "bidi");
      vs = { style: "normal", weight: "normal" };
      da = { style: "normal", weight: "bold" };
      pa = { style: "italic", weight: "normal" };
      ma = { style: "italic", weight: "bold" };
      ro = /* @__PURE__ */ new Map([["Times-Roman", { local: ["Times New Roman", "Times-Roman", "Times", "Liberation Serif", "Nimbus Roman", "Nimbus Roman L", "Tinos", "Thorndale", "TeX Gyre Termes", "FreeSerif", "Linux Libertine O", "Libertinus Serif", "PT Astra Serif", "DejaVu Serif", "Bitstream Vera Serif", "Ubuntu"], style: vs, ultimate: "serif" }], ["Times-Bold", { alias: "Times-Roman", style: da, ultimate: "serif" }], ["Times-Italic", { alias: "Times-Roman", style: pa, ultimate: "serif" }], ["Times-BoldItalic", { alias: "Times-Roman", style: ma, ultimate: "serif" }], ["Helvetica", { local: ["Helvetica", "Helvetica Neue", "Arial", "Arial Nova", "Liberation Sans", "Arimo", "Nimbus Sans", "Nimbus Sans L", "A030", "TeX Gyre Heros", "FreeSans", "DejaVu Sans", "Albany", "Bitstream Vera Sans", "Arial Unicode MS", "Microsoft Sans Serif", "Apple Symbols", "Cantarell"], path: "LiberationSans-Regular.ttf", style: vs, ultimate: "sans-serif" }], ["Helvetica-Bold", { alias: "Helvetica", path: "LiberationSans-Bold.ttf", style: da, ultimate: "sans-serif" }], ["Helvetica-Oblique", { alias: "Helvetica", path: "LiberationSans-Italic.ttf", style: pa, ultimate: "sans-serif" }], ["Helvetica-BoldOblique", { alias: "Helvetica", path: "LiberationSans-BoldItalic.ttf", style: ma, ultimate: "sans-serif" }], ["Courier", { local: ["Courier", "Courier New", "Liberation Mono", "Nimbus Mono", "Nimbus Mono L", "Cousine", "Cumberland", "TeX Gyre Cursor", "FreeMono", "Linux Libertine Mono O", "Libertinus Mono"], style: vs, ultimate: "monospace" }], ["Courier-Bold", { alias: "Courier", style: da, ultimate: "monospace" }], ["Courier-Oblique", { alias: "Courier", style: pa, ultimate: "monospace" }], ["Courier-BoldOblique", { alias: "Courier", style: ma, ultimate: "monospace" }], ["ArialBlack", { local: ["Arial Black"], style: { style: "normal", weight: "900" }, fallback: "Helvetica-Bold" }], ["ArialBlack-Bold", { alias: "ArialBlack" }], ["ArialBlack-Italic", { alias: "ArialBlack", style: { style: "italic", weight: "900" }, fallback: "Helvetica-BoldOblique" }], ["ArialBlack-BoldItalic", { alias: "ArialBlack-Italic" }], ["ArialNarrow", { local: ["Arial Narrow", "Liberation Sans Narrow", "Helvetica Condensed", "Nimbus Sans Narrow", "TeX Gyre Heros Cn"], style: vs, fallback: "Helvetica" }], ["ArialNarrow-Bold", { alias: "ArialNarrow", style: da, fallback: "Helvetica-Bold" }], ["ArialNarrow-Italic", { alias: "ArialNarrow", style: pa, fallback: "Helvetica-Oblique" }], ["ArialNarrow-BoldItalic", { alias: "ArialNarrow", style: ma, fallback: "Helvetica-BoldOblique" }], ["Calibri", { local: ["Calibri", "Carlito"], style: vs, fallback: "Helvetica" }], ["Calibri-Bold", { alias: "Calibri", style: da, fallback: "Helvetica-Bold" }], ["Calibri-Italic", { alias: "Calibri", style: pa, fallback: "Helvetica-Oblique" }], ["Calibri-BoldItalic", { alias: "Calibri", style: ma, fallback: "Helvetica-BoldOblique" }], ["Wingdings", { local: ["Wingdings", "URW Dingbats"], style: vs }], ["Wingdings-Regular", { alias: "Wingdings" }], ["Wingdings-Bold", { alias: "Wingdings" }], ["\xCB\xCE\xCC\xE5", { local: ["SimSun", "SimSun Regular", "NSimSun"], style: vs, ultimate: "serif" }], ["\xBA\xDA\xCC\xE5", { local: ["SimHei", "SimHei Regular"], style: vs, ultimate: "sans-serif" }], ["\xBF\xAC\xCC\xE5", { local: ["KaiTi", "SimKai", "SimKai Regular"], style: vs, ultimate: "sans-serif" }], ["\xB7\xC2\xCB\xCE", { local: ["FangSong", "SimFang", "SimFang Regular"], style: vs, ultimate: "serif" }], ["\xBF\xAC\xCC\xE5_GB2312", { alias: "\xBF\xAC\xCC\xE5" }], ["\xB7\xC2\xCB\xCE_GB2312", { alias: "\xB7\xC2\xCB\xCE" }], ["\xC1\xA5\xCA\xE9", { local: ["SimLi", "SimLi Regular"], style: vs, ultimate: "serif" }], ["\xD0\xC2\xCB\xCE", { alias: "\xCB\xCE\xCC\xE5" }]]);
      Wx = /* @__PURE__ */ new Map([["Arial-Black", "ArialBlack"]]);
      p($x, "getStyleToAppend");
      p(Bd, "getFamilyName");
      p(ec, "generateFont");
      p(Rd, "getFontSubstitution");
      _d = 3285377520;
      qs = 4294901760;
      Ys = 65535;
      Vx = class {
        static {
          p(this, "MurmurHash3_64");
        }
        constructor(e) {
          this.h1 = e ? e & 4294967295 : _d, this.h2 = e ? e & 4294967295 : _d;
        }
        update(e) {
          let n, s;
          if (typeof e == "string") {
            n = new Uint8Array(e.length * 2), s = 0;
            for (let g = 0, b = e.length; g < b; g++) {
              const w = e.charCodeAt(g);
              w <= 255 ? n[s++] = w : (n[s++] = w >>> 8, n[s++] = w & 255);
            }
          } else if (ArrayBuffer.isView(e)) n = e.slice(), s = n.byteLength;
          else throw new Error("Invalid data format, must be a string or TypedArray.");
          const i = s >> 2, a = s - i * 4, r = new Uint32Array(n.buffer, 0, i);
          let o = 0, l = 0, f = this.h1, c = this.h2;
          const h = 3432918353, u = 461845907, d = h & Ys, m = u & Ys;
          for (let g = 0; g < i; g++) g & 1 ? (o = r[g], o = o * h & qs | o * d & Ys, o = o << 15 | o >>> 17, o = o * u & qs | o * m & Ys, f ^= o, f = f << 13 | f >>> 19, f = f * 5 + 3864292196) : (l = r[g], l = l * h & qs | l * d & Ys, l = l << 15 | l >>> 17, l = l * u & qs | l * m & Ys, c ^= l, c = c << 13 | c >>> 19, c = c * 5 + 3864292196);
          switch (o = 0, a) {
            case 3:
              o ^= n[i * 4 + 2] << 16;
            case 2:
              o ^= n[i * 4 + 1] << 8;
            case 1:
              o ^= n[i * 4], o = o * h & qs | o * d & Ys, o = o << 15 | o >>> 17, o = o * u & qs | o * m & Ys, i & 1 ? f ^= o : c ^= o;
          }
          this.h1 = f, this.h2 = c;
        }
        hexdigest() {
          let e = this.h1, n = this.h2;
          return e ^= n >>> 1, e = e * 3981806797 & qs | e * 36045 & Ys, n = n * 4283543511 & qs | ((n << 16 | e >>> 16) * 2950163797 & qs) >>> 16, e ^= n >>> 1, e = e * 444984403 & qs | e * 60499 & Ys, n = n * 3301882366 & qs | ((n << 16 | e >>> 16) * 3120437893 & qs) >>> 16, e ^= n >>> 1, (e >>> 0).toString(16).padStart(8, "0") + (n >>> 0).toString(16).padStart(8, "0");
        }
      };
      Qi = class _Qi {
        static {
          p(this, "PDFImage");
        }
        constructor({ xref: e, res: n, image: s, isInline: i = false, smask: a = null, mask: r = null, isMask: o = false, pdfFunctionFactory: l, globalColorSpaceCache: f, localColorSpaceCache: c }) {
          this.image = s;
          const h = s.dict, u = h.get("F", "Filter");
          let d;
          if (u instanceof te) d = u.name;
          else if (Array.isArray(u)) {
            const w = e.fetchIfRef(u[0]);
            w instanceof te && (d = w.name);
          }
          switch (d) {
            case "JPXDecode":
              ({ width: s.width, height: s.height, componentsCount: s.numComps, bitsPerComponent: s.bitsPerComponent } = Bl.parseImageProperties(s.stream)), s.stream.reset();
              const w = ns.getReducePowerForJPX(s.width, s.height, s.numComps);
              if (this.jpxDecoderOptions = { numComponents: 0, isIndexedColormap: false, smaskInData: h.has("SMaskInData"), reducePower: w }, w) {
                const x = 2 ** w;
                s.width = Math.ceil(s.width / x), s.height = Math.ceil(s.height / x);
              }
              break;
            case "JBIG2Decode":
              s.bitsPerComponent = 1, s.numComps = 1;
              break;
          }
          let m = h.get("W", "Width"), g = h.get("H", "Height");
          if (Number.isInteger(s.width) && s.width > 0 && Number.isInteger(s.height) && s.height > 0 && (s.width !== m || s.height !== g)) F("PDFImage - using the Width/Height of the image data, rather than the image dictionary."), m = s.width, g = s.height;
          else {
            const w = typeof m == "number" && m > 0, x = typeof g == "number" && g > 0;
            if (!w || !x) {
              if (!s.fallbackDims) throw new Q(`Invalid image width: ${m} or height: ${g}`);
              F("PDFImage - using the Width/Height of the parent image, for SMask/Mask data."), w || (m = s.fallbackDims.width), x || (g = s.fallbackDims.height);
            }
          }
          this.width = m, this.height = g, this.interpolate = h.get("I", "Interpolate"), this.imageMask = h.get("IM", "ImageMask") || false, this.matte = h.get("Matte") || false;
          let b = s.bitsPerComponent;
          if (!b && (b = h.get("BPC", "BitsPerComponent"), !b)) if (this.imageMask) b = 1;
          else throw new Q(`Bits per component missing in image: ${this.imageMask}`);
          if (this.bpc = b, this.imageMask) this.numComps = 1;
          else {
            let w = h.getRaw("CS") || h.getRaw("ColorSpace");
            const x = !!w;
            if (x) this.jpxDecoderOptions?.smaskInData && (w = te.get("DeviceRGBA"));
            else if (this.jpxDecoderOptions) w = te.get("DeviceRGBA");
            else switch (s.numComps) {
              case 1:
                w = te.get("DeviceGray");
                break;
              case 3:
                w = te.get("DeviceRGB");
                break;
              case 4:
                w = te.get("DeviceCMYK");
                break;
              default:
                throw new Error(`Images with ${s.numComps} color components not supported.`);
            }
            this.colorSpace = ut.parse({ cs: w, xref: e, resources: i ? n : null, pdfFunctionFactory: l, globalColorSpaceCache: f, localColorSpaceCache: c }), this.numComps = this.colorSpace.numComps, this.jpxDecoderOptions && (this.jpxDecoderOptions.numComponents = x ? this.numComps : 0, this.jpxDecoderOptions.isIndexedColormap = this.colorSpace.name === "Indexed");
          }
          if (this.decode = h.getArray("D", "Decode"), this.needsDecode = false, this.decode && (this.colorSpace && !this.colorSpace.isDefaultDecode(this.decode, b) || o && !wn.isDefaultDecode(this.decode, 1))) {
            this.needsDecode = true;
            const w = (1 << b) - 1;
            this.decodeCoefficients = [], this.decodeAddends = [];
            const x = this.colorSpace?.name === "Indexed";
            for (let y = 0, j = 0; y < this.decode.length; y += 2, ++j) {
              const v = this.decode[y], q = this.decode[y + 1];
              this.decodeCoefficients[j] = x ? (q - v) / w : q - v, this.decodeAddends[j] = x ? v : w * v;
            }
          }
          a ? (a.fallbackDims ??= { width: m, height: g }, this.smask = new _Qi({ xref: e, res: n, image: a, isInline: i, pdfFunctionFactory: l, globalColorSpaceCache: f, localColorSpaceCache: c })) : r && (r instanceof ze ? r.dict.get("IM", "ImageMask") ? (r.fallbackDims ??= { width: m, height: g }, this.mask = new _Qi({ xref: e, res: n, image: r, isInline: i, isMask: true, pdfFunctionFactory: l, globalColorSpaceCache: f, localColorSpaceCache: c })) : F("Ignoring /Mask in image without /ImageMask.") : this.mask = r);
        }
        static async buildImage({ xref: e, res: n, image: s, isInline: i = false, pdfFunctionFactory: a, globalColorSpaceCache: r, localColorSpaceCache: o }) {
          const l = s;
          let f = null, c = null;
          const h = s.dict.get("SMask"), u = s.dict.get("Mask");
          return h ? h instanceof ze ? f = h : F("Unsupported /SMask format.") : u && (u instanceof ze || Array.isArray(u) ? c = u : F("Unsupported /Mask format.")), new _Qi({ xref: e, res: n, image: l, isInline: i, smask: f, mask: c, pdfFunctionFactory: a, globalColorSpaceCache: r, localColorSpaceCache: o });
        }
        static async createMask({ image: e, isOffscreenCanvasSupported: n = false }) {
          const { dict: s } = e, i = s.get("W", "Width"), a = s.get("H", "Height"), r = s.get("I", "Interpolate"), l = s.getArray("D", "Decode")?.[0] > 0, f = (i + 7 >> 3) * a, c = await e.getImageData(f), h = i === 1 && a === 1 && l === (c.length === 0 || !!(c[0] & 128));
          if (h) return { isSingleOpaquePixel: h };
          if (n) {
            if (ns.needsToBeResized(i, a)) {
              const y = new Uint8ClampedArray(i * a * 4);
              return kf({ src: c, dest: y, width: i, height: a, nonBlackColor: 0, inverseDecode: l }), ns.createImage({ kind: dn.RGBA_32BPP, data: y, width: i, height: a, interpolate: r });
            }
            const g = new OffscreenCanvas(i, a), b = g.getContext("2d"), w = b.createImageData(i, a);
            kf({ src: c, dest: w.data, width: i, height: a, nonBlackColor: 0, inverseDecode: l }), b.putImageData(w, 0, 0);
            const x = g.transferToImageBitmap();
            return { data: null, width: i, height: a, interpolate: r, bitmap: x };
          }
          const u = c.byteLength, d = f === u;
          let m;
          if (e instanceof Pn && (!l || d) ? m = c : l ? (m = new Uint8Array(f), m.set(c), m.fill(255, u)) : m = new Uint8Array(c), l) for (let g = 0; g < u; g++) m[g] ^= 255;
          return { data: m, width: i, height: a, interpolate: r };
        }
        get drawWidth() {
          return Math.max(this.width, this.smask?.width || 0, this.mask?.width || 0);
        }
        get drawHeight() {
          return Math.max(this.height, this.smask?.height || 0, this.mask?.height || 0);
        }
        decodeBuffer(e) {
          const n = this.bpc, s = this.numComps, i = this.decodeAddends, a = this.decodeCoefficients, r = (1 << n) - 1;
          let o, l;
          if (n === 1) {
            for (o = 0, l = e.length; o < l; o++) e[o] = +!e[o];
            return;
          }
          let f = 0;
          for (o = 0, l = this.width * this.height; o < l; o++) for (let c = 0; c < s; c++) e[f] = en(i[c] + e[f] * a[c], 0, r), f++;
        }
        getComponents(e) {
          const n = this.bpc;
          if (n === 8) return e;
          const s = this.width, i = this.height, a = this.numComps, r = s * i * a;
          let o = 0, l;
          n <= 8 ? l = new Uint8Array(r) : n <= 16 ? l = new Uint16Array(r) : l = new Uint32Array(r);
          const f = s * a, c = (1 << n) - 1;
          let h = 0, u, d;
          if (n === 1) {
            let m, g, b;
            for (let w = 0; w < i; w++) {
              for (g = h + (f & -8), b = h + f; h < g; ) d = e[o++], l[h] = d >> 7 & 1, l[h + 1] = d >> 6 & 1, l[h + 2] = d >> 5 & 1, l[h + 3] = d >> 4 & 1, l[h + 4] = d >> 3 & 1, l[h + 5] = d >> 2 & 1, l[h + 6] = d >> 1 & 1, l[h + 7] = d & 1, h += 8;
              if (h < b) for (d = e[o++], m = 128; h < b; ) l[h++] = +!!(d & m), m >>= 1;
            }
          } else {
            let m = 0;
            for (d = 0, h = 0, u = r; h < u; ++h) {
              for (h % f === 0 && (d = 0, m = 0); m < n; ) d = d << 8 | e[o++], m += 8;
              const g = m - n;
              let b = d >> g;
              b < 0 ? b = 0 : b > c && (b = c), l[h] = b, d &= (1 << g) - 1, m = g;
            }
          }
          return l;
        }
        async fillOpacity(e, n, s, i, a) {
          let r;
          if (this.smask) r = p((o, l) => this.smask.fillGrayBuffer(o, { ...l, destWidth: n, destHeight: s }), "apply");
          else if (this.mask) if (this.mask instanceof _Qi) r = p((o, l) => this.mask.fillGrayBuffer(o, { ...l, invertOutput: true, destWidth: n, destHeight: s }), "apply");
          else if (Array.isArray(this.mask)) r = p((o, { maxRows: l, offset: f, stride: c }) => {
            for (let h = 0, u = n * l; h < u; ++h) {
              let d = 0;
              const m = h * this.numComps;
              for (let g = 0; g < this.numComps; ++g) {
                const b = a[m + g], w = g * 2;
                if (b < this.mask[w] || b > this.mask[w + 1]) {
                  d = 255;
                  break;
                }
              }
              o[h * c + f] = d;
            }
          }, "apply");
          else throw new Q("Unknown mask format.");
          else r = p((o, { maxRows: l, offset: f, stride: c }) => {
            for (let h = 0, u = n * l; h < u; ++h) o[h * c + f] = 255;
          }, "apply");
          await r(e, { maxRows: i, offset: 3, stride: 4 });
        }
        undoPreblend(e, n, s) {
          const i = this.smask?.matte;
          if (!i) return;
          const a = this.colorSpace.getRgb(i, 0), r = a[0], o = a[1], l = a[2], f = n * s * 4;
          for (let c = 0; c < f; c += 4) {
            const h = e[c + 3];
            if (h === 0) {
              e[c] = 255, e[c + 1] = 255, e[c + 2] = 255;
              continue;
            }
            const u = 255 / h;
            e[c] = (e[c] - r) * u + r, e[c + 1] = (e[c + 1] - o) * u + o, e[c + 2] = (e[c + 2] - l) * u + l;
          }
        }
        async createImageData(e = false, n = false) {
          const s = this.drawWidth, i = this.drawHeight, a = { width: s, height: i, interpolate: this.interpolate, kind: 0, data: null }, r = this.numComps, o = this.width, l = this.height, f = this.bpc, c = o * r * f + 7 >> 3, h = n && ns.needsToBeResized(s, i);
          if (!this.smask && !this.mask && this.colorSpace.name === "DeviceRGBA") {
            a.kind = dn.RGBA_32BPP;
            const v = a.data = await this.getImageBytes(l * o * 4, { internal: n && h });
            return n ? h ? ns.createImage(a, false) : this.createBitmap(dn.RGBA_32BPP, s, i, v) : a;
          }
          if (!e) {
            let v;
            if (this.colorSpace.name === "DeviceGray" && f === 1 ? v = dn.GRAYSCALE_1BPP : this.colorSpace.name === "DeviceRGB" && f === 8 && !this.needsDecode && (v = dn.RGB_24BPP), v && !this.smask && !this.mask && s === o && i === l) {
              const q = await this.#e(o, l);
              if (q) return q;
              const A = await this.getImageBytes(l * c, { internal: n && h });
              if (n) return h ? ns.createImage({ data: A, kind: v, width: s, height: i, interpolate: this.interpolate }, this.needsDecode) : this.createBitmap(v, o, l, A);
              if (a.kind = v, a.data = A, this.needsDecode) {
                Bt(v === dn.GRAYSCALE_1BPP, "PDFImage.createImageData: The image must be grayscale.");
                const C = a.data;
                for (let S = 0, I = C.length; S < I; S++) C[S] ^= 255;
              }
              return a;
            }
            if (this.image instanceof wr && !this.smask && !this.mask && !this.needsDecode) {
              let q = l * c;
              if (n && !h) {
                let A = false;
                switch (this.colorSpace.name) {
                  case "DeviceGray":
                    q *= 4, A = true;
                    break;
                  case "DeviceRGB":
                    q = q / 3 * 4, A = true;
                    break;
                  case "DeviceCMYK":
                    A = true;
                    break;
                }
                if (A) {
                  const C = await this.#e(s, i);
                  if (C) return C;
                  const S = await this.getImageBytes(q, { drawWidth: s, drawHeight: i, forceRGBA: true, internal: true });
                  return this.createBitmap(dn.RGBA_32BPP, s, i, S);
                }
              } else switch (this.colorSpace.name) {
                case "DeviceGray":
                  q *= 3;
                case "DeviceRGB":
                case "DeviceCMYK":
                  return a.kind = dn.RGB_24BPP, a.data = await this.getImageBytes(q, { drawWidth: s, drawHeight: i, forceRGB: true, internal: h }), h ? ns.createImage(a) : a;
              }
            }
          }
          const u = await this.getImageBytes(l * c, { internal: true }), d = 0 | u.length / c * i / l, m = this.getComponents(u);
          let g, b, w, x, y, j;
          if (n && !h && (w = new OffscreenCanvas(s, i), x = w.getContext("2d"), y = x.createImageData(s, i), j = y.data), a.kind = dn.RGBA_32BPP, !e && !this.smask && !this.mask ? (!n || h ? (a.kind = dn.RGB_24BPP, j = new Uint8ClampedArray(s * i * 3), g = 0) : (new Uint32Array(j.buffer).fill(qn.isLittleEndian ? 4278190080 : 255), g = 1), b = false) : ((!n || h) && (j = new Uint8ClampedArray(s * i * 4)), g = 1, b = true, await this.fillOpacity(j, s, i, d, m)), this.needsDecode && this.decodeBuffer(m), this.colorSpace.fillRgb(j, o, l, s, i, d, f, m, g), b && this.undoPreblend(j, s, d), n && !h) {
            x.putImageData(y, 0, 0);
            const v = w.transferToImageBitmap();
            return { data: null, width: s, height: i, bitmap: v, interpolate: this.interpolate };
          }
          return a.data = j, h ? ns.createImage(a) : a;
        }
        async fillGrayBuffer(e, { destWidth: n, destHeight: s, invertOutput: i, maxRows: a, offset: r = 0, stride: o = 1 } = {}) {
          const l = this.numComps;
          if (l !== 1) throw new Q(`Reading gray scale from a color image: ${l}`);
          const f = this.width, c = this.height, h = this.bpc, u = f * l * h + 7 >> 3, d = await this.getImageBytes(c * u, { internal: true }), m = this.getComponents(d), g = n ?? f, b = s ?? c, w = g !== f || b !== c, x = a === void 0 ? b : Math.min(b, a);
          let y = f, j = 0, v = null;
          if (w) {
            y = g, j = c / b;
            const C = f / g;
            v = new Uint32Array(g);
            for (let S = 0; S < g; S++) v[S] = Math.floor(S * C);
          }
          const q = i ? 255 : 0;
          if (h === 1) {
            if (v) {
              const C = v;
              let S = r;
              if (this.needsDecode) for (let I = 0; I < x; I++) {
                const T = Math.floor(I * j) * f;
                for (let P = 0; P < y; P++) e[S] = m[T + C[P]] - 1 & 255 ^ q, S += o;
              }
              else for (let I = 0; I < x; I++) {
                const T = Math.floor(I * j) * f;
                for (let P = 0; P < y; P++) e[S] = -m[T + C[P]] & 255 ^ q, S += o;
              }
            } else {
              const C = y * x;
              if (this.needsDecode) for (let S = 0; S < C; ++S) e[S * o + r] = m[S] - 1 & 255 ^ q;
              else for (let S = 0; S < C; ++S) e[S * o + r] = -m[S] & 255 ^ q;
            }
            return;
          }
          this.needsDecode && this.decodeBuffer(m);
          const A = 255 / ((1 << h) - 1);
          if (v) {
            const C = v;
            let S = r;
            for (let I = 0; I < x; I++) {
              const T = Math.floor(I * j) * f;
              for (let P = 0; P < y; P++) e[S] = A * m[T + C[P]] ^ q, S += o;
            }
          } else {
            const C = y * x;
            for (let S = 0; S < C; ++S) e[S * o + r] = A * m[S] ^ q;
          }
        }
        createBitmap(e, n, s, i) {
          const a = new OffscreenCanvas(n, s), r = a.getContext("2d");
          let o;
          e === dn.RGBA_32BPP ? o = new ImageData(i, n, s) : (o = r.createImageData(n, s), fu({ kind: e, src: i, dest: new Uint32Array(o.data.buffer), width: n, height: s, inverseDecode: this.needsDecode })), r.putImageData(o, 0, 0);
          const l = a.transferToImageBitmap();
          return { data: null, width: n, height: s, bitmap: l, interpolate: this.interpolate };
        }
        async #e(e, n) {
          const s = await this.image.getTransferableImage();
          return s ? { data: null, width: e, height: n, bitmap: s, interpolate: this.interpolate } : null;
        }
        async getImageBytes(e, { drawWidth: n, drawHeight: s, forceRGBA: i = false, forceRGB: a = false, internal: r = false }) {
          this.image.reset(), this.image.drawWidth = n || this.width, this.image.drawHeight = s || this.height, this.image.forceRGBA = !!i, this.image.forceRGB = !!a;
          const o = await this.image.getImageData(e, this.jpxDecoderOptions);
          return r || this.image instanceof Pn ? o : (Bt(o instanceof Uint8Array, 'PDFImage.getImageBytes: Unsupported "imageBytes" type.'), new Uint8Array(o));
        }
      };
      Kx = Object.freeze({ maxImageSize: -1, disableFontFace: false, ignoreErrors: false, isEvalSupported: true, isOffscreenCanvasSupported: false, isImageDecoderSupported: false, canvasMaxAreaInBytes: -1, fontExtraProperties: false, useSystemFonts: true, useWasm: true, useWorkerFetch: true, cMapUrl: null, cMapPacked: true, iccUrl: null, standardFontDataUrl: null, wasmUrl: null, prepareWebGPU: null });
      Pd = { TILING: 1, SHADING: 2 };
      Xx = 10;
      Dd = Promise.resolve();
      p(Md, "normalizeBlendMode");
      p(tc, "addCachedImageOps");
      nl = class _nl {
        static {
          p(this, "TimeSlotManager");
        }
        static TIME_SLOT_DURATION_MS = 20;
        static CHECK_TIME_EVERY = 100;
        constructor() {
          this.reset();
        }
        check() {
          return ++this.checked < _nl.CHECK_TIME_EVERY ? false : (this.checked = 0, this.endTime <= Date.now());
        }
        reset() {
          this.endTime = Date.now() + _nl.TIME_SLOT_DURATION_MS, this.checked = 0;
        }
      };
      qr = class _qr {
        static {
          p(this, "PartialEvaluator");
        }
        constructor({ xref: e, handler: n, pageIndex: s, idFactory: i, fontCache: a, builtInCMapCache: r, standardFontDataCache: o, globalColorSpaceCache: l, globalImageCache: f, systemFontCache: c, options: h = null }) {
          this.xref = e, this.handler = n, this.pageIndex = s, this.idFactory = i, this.fontCache = a, this.builtInCMapCache = r, this.standardFontDataCache = o, this.globalColorSpaceCache = l, this.globalImageCache = f, this.systemFontCache = c, this.options = h || Kx, this.type3FontRefs = null, this._regionalImageCache = new Fx(), this._fetchBuiltInCMapBound = this.fetchBuiltInCMap.bind(this);
        }
        get _pdfFunctionFactory() {
          const e = new qd({ xref: this.xref, isEvalSupported: this.options.isEvalSupported });
          return fe(this, "_pdfFunctionFactory", e);
        }
        get parsingType3Font() {
          return !!this.type3FontRefs;
        }
        clone(e = null) {
          const n = Object.create(this);
          return n.options = Object.assign(/* @__PURE__ */ Object.create(null), this.options, e), n;
        }
        hasBlendModes(e, n) {
          if (!(e instanceof _) || e.objId && n.has(e.objId)) return false;
          const s = new Rt(n);
          e.objId && s.put(e.objId);
          const i = [e], a = this.xref;
          for (; i.length; ) {
            const r = i.shift(), o = r.get("ExtGState");
            if (o instanceof _) for (let f of o.getRawValues()) {
              if (f instanceof ae) {
                if (s.has(f)) continue;
                try {
                  f = a.fetch(f);
                } catch (h) {
                  s.put(f), Ke(`hasBlendModes - ignoring ExtGState: "${h}".`);
                  continue;
                }
              }
              if (!(f instanceof _)) continue;
              f.objId && s.put(f.objId);
              const c = f.get("BM");
              if (c instanceof te) {
                if (c.name !== "Normal") return true;
                continue;
              }
              if (c !== void 0 && Array.isArray(c)) {
                for (const h of c) if (h instanceof te && h.name !== "Normal") return true;
              }
            }
            const l = r.get("XObject");
            if (l instanceof _) for (let f of l.getRawValues()) {
              if (f instanceof ae) {
                if (s.has(f)) continue;
                try {
                  f = a.fetch(f);
                } catch (h) {
                  s.put(f), Ke(`hasBlendModes - ignoring XObject: "${h}".`);
                  continue;
                }
              }
              if (!(f instanceof ze)) continue;
              f.dict.objId && s.put(f.dict.objId);
              const c = f.dict.get("Resources");
              c instanceof _ && (c.objId && s.has(c.objId) || (i.push(c), c.objId && s.put(c.objId)));
            }
          }
          for (const r of s) n.put(r);
          return false;
        }
        async fetchBuiltInCMap(e) {
          const n = this.builtInCMapCache.get(e);
          if (n) return n;
          let s;
          return this.options.useWorkerFetch ? s = { cMapData: await Qh(`${this.options.cMapUrl}${e}.bcmap`), isCompressed: true } : s = { cMapData: await this.handler.sendWithPromise("FetchBinaryData", { kind: "cMapUrl", filename: `${e}${this.options.cMapPacked ? ".bcmap" : ""}` }), isCompressed: this.options.cMapPacked }, this.builtInCMapCache.set(e, s), s;
        }
        async fetchStandardFontData(e) {
          const n = this.standardFontDataCache.get(e);
          if (n) return new jt(n);
          if (this.options.useSystemFonts && e !== "Symbol" && e !== "ZapfDingbats") return null;
          const s = Qb(), i = s[e];
          let a;
          try {
            this.options.useWorkerFetch ? a = await Qh(`${this.options.standardFontDataUrl}${i}`) : a = await this.handler.sendWithPromise("FetchBinaryData", { kind: "standardFontDataUrl", filename: i });
          } catch (r) {
            return F(r), null;
          }
          return this.standardFontDataCache.set(e, a), new jt(a);
        }
        async buildFormXObject(e, n, s, i, a, r, o, l) {
          const { dict: f } = n, c = Bi(f.getArray("Matrix"), null), h = di(f.getArray("BBox"), null);
          let u = h && new Float32Array(h);
          u?.some((y) => !isFinite(y)) && (u = null);
          let d, m;
          f.has("OC") && (d = await this.parseMarkedContentProps(f.get("OC"), e)), d !== void 0 && i.addOp(E.beginMarkedContentProps, ["OC", d]);
          const g = f.get("Group");
          if (g) {
            m = { matrix: c, bbox: u, smask: s, isolated: false, knockout: false };
            const y = g.get("S");
            let j = null;
            if (ot(y, "Transparency") && (m.isolated = g.get("I") || false, m.knockout = g.get("K") || false, g.has("CS"))) {
              const v = this._getColorSpace(g.getRaw("CS"), e, o);
              j = v instanceof wn ? v : await this._handleColorSpace(v);
            }
            s?.backdrop && (j ||= ut.rgb, s.backdrop = j.getRgbHex(s.backdrop, 0)), i.addOp(E.beginGroup, [m]);
          }
          const w = [c && new Float32Array(c), !g && u || null];
          i.addOp(E.paintFormXObjectBegin, w);
          const x = f.get("Resources");
          await this.getOperatorList({ stream: n, task: a, resources: x instanceof _ ? x : e, operatorList: i, initialState: r, prevRefs: l }), i.addOp(E.paintFormXObjectEnd, []), g && i.addOp(E.endGroup, [m]), d !== void 0 && i.addOp(E.endMarkedContent, []);
        }
        _sendImgData(e, n, s = false) {
          const i = n ? [n.bitmap || n.data.buffer] : null;
          return this.parsingType3Font || s ? this.handler.send("commonobj", [e, "Image", n], i) : this.handler.send("obj", [e, this.pageIndex, "Image", n], i);
        }
        async buildPaintImageXObject({ resources: e, image: n, isInline: s = false, operatorList: i, cacheKey: a, localImageCache: r, localColorSpaceCache: o }) {
          const { maxImageSize: l, ignoreErrors: f, isOffscreenCanvasSupported: c } = this.options, { dict: h } = n, u = h.objId, d = h.get("W", "Width"), m = h.get("H", "Height");
          if (!(d && typeof d == "number") || !(m && typeof m == "number")) {
            F("Image dimensions are missing, or not numbers.");
            return;
          }
          if (l !== -1 && d * m > l) {
            const S = "Image exceeded maximum allowed size and was removed.";
            if (!f) throw new Error(S);
            F(S);
            return;
          }
          let g;
          h.has("OC") && (g = await this.parseMarkedContentProps(h.get("OC"), e));
          const b = h.get("IM", "ImageMask") || false;
          let w, x, y;
          if (b) {
            if (w = await Qi.createMask({ image: n, isOffscreenCanvasSupported: c && !this.parsingType3Font }), w.isSingleOpaquePixel) {
              if (x = E.paintSolidColorImageMask, y = [], i.addImageOps(x, y, g), a) {
                const I = { fn: x, args: y, optionalContent: g };
                r.set(a, u, I), u && this._regionalImageCache.set(null, u, I);
              }
              return;
            }
            if (this.parsingType3Font) {
              if (y = Nb(w), y) {
                i.addImageOps(E.constructPath, y, g);
                return;
              }
              F("Cannot compile Type3 glyph."), i.addImageOps(E.paintImageMaskXObject, [w], g);
              return;
            }
            const S = `mask_${this.idFactory.createObjId()}`;
            if (i.addDependency(S), w.dataLen = w.bitmap ? w.width * w.height * 4 : w.data.length, this._sendImgData(S, w), x = E.paintImageMaskXObject, y = [{ data: S, width: w.width, height: w.height, interpolate: w.interpolate, count: 1 }], i.addImageOps(x, y, g), a) {
              const I = { objId: S, fn: x, args: y, optionalContent: g };
              r.set(a, u, I), u && this._regionalImageCache.set(null, u, I);
            }
            return;
          }
          const j = 200, v = h.has("SMask") || h.has("Mask");
          if (s && d + m < j && !v) {
            try {
              w = await new Qi({ xref: this.xref, res: e, image: n, isInline: s, pdfFunctionFactory: this._pdfFunctionFactory, globalColorSpaceCache: this.globalColorSpaceCache, localColorSpaceCache: o }).createImageData(true, false), i.addImageOps(E.paintInlineImageXObject, [w], g);
            } catch (S) {
              const I = `Unable to decode inline image: "${S}".`;
              if (!f) throw new Error(I);
              F(I);
            }
            return;
          }
          let q = `img_${this.idFactory.createObjId()}`, A = false, C = null;
          if (this.parsingType3Font ? q = `${this.idFactory.getDocId()}_type3_${q}` : a && u && (A = this.globalImageCache.shouldCache(u, this.pageIndex), A && (Bt(!s, "Cannot cache an inline image globally."), q = `${this.idFactory.getDocId()}_${q}`)), i.addDependency(q), x = E.paintImageXObject, y = [q, d, m], i.addImageOps(x, y, g, v), A) {
            if (C = { objId: q, fn: x, args: y, optionalContent: g, hasMask: v, byteSize: 0 }, this.globalImageCache.hasDecodeFailed(u)) {
              this.globalImageCache.setData(u, C), this._sendImgData(q, null, A);
              return;
            }
            if (d * m > 25e4 || v) {
              const S = await this.handler.sendWithPromise("commonobj", [q, "CopyLocalImage", { imageRef: u }]);
              if (S) {
                this.globalImageCache.setData(u, C), this.globalImageCache.addByteSize(u, S);
                return;
              }
            }
          }
          if (Qi.buildImage({ xref: this.xref, res: e, image: n, isInline: s, pdfFunctionFactory: this._pdfFunctionFactory, globalColorSpaceCache: this.globalColorSpaceCache, localColorSpaceCache: o }).then(async (S) => (w = await S.createImageData(false, c), w.dataLen = w.bitmap ? w.width * w.height * 4 : w.data.length, w.ref = u, A && this.globalImageCache.addByteSize(u, w.dataLen), this._sendImgData(q, w, A))).catch((S) => (F(`Unable to decode image "${q}": "${S}".`), u && this.globalImageCache.addDecodeFailed(u), this._sendImgData(q, null, A))), a) {
            const S = { objId: q, fn: x, args: y, optionalContent: g, hasMask: v };
            r.set(a, u, S), u && (this._regionalImageCache.set(null, u, S), A && (Bt(C, "The global cache-data must be available."), this.globalImageCache.setData(u, C)));
          }
        }
        handleSMask(e, n, s, i, a, r, o) {
          const l = e.get("G"), f = { subtype: e.get("S").name, backdrop: e.get("BC") }, c = e.get("TR");
          if (Qf(c)) {
            const h = this._pdfFunctionFactory.create(c), u = new Uint8Array(256), d = new Float32Array(1);
            for (let m = 0; m < 256; m++) d[0] = m / 255, h(d, 0, d, 0), u[m] = d[0] * 255 | 0;
            f.transferMap = u;
          }
          return this.buildFormXObject(n, l, f, s, i, a.state.clone({ newPath: true }), r, o);
        }
        handleTransferFunction(e) {
          let n;
          if (Array.isArray(e)) n = e, e.length > 1 && e.every((r) => r === e[0]) && (n = [e[0]]);
          else if (Qf(e)) n = [e];
          else return null;
          const s = [];
          let i = 0, a = 0;
          for (const r of n) {
            const o = this.xref.fetchIfRef(r);
            if (i++, ot(o, "Identity")) {
              s.push(null);
              continue;
            } else if (!Qf(o)) return null;
            const l = this._pdfFunctionFactory.create(o), f = new Uint8Array(256), c = new Float32Array(1);
            for (let h = 0; h < 256; h++) c[0] = h / 255, l(c, 0, c, 0), f[h] = c[0] * 255 | 0;
            s.push(f), a++;
          }
          return !(i === 1 || i === 4) || a === 0 ? null : s;
        }
        handleTilingType(e, n, s, i, a, r, o, l) {
          const f = new kn(), c = _.merge({ xref: this.xref, dictArray: [a.get("Resources"), s] });
          return this.getOperatorList({ stream: i, task: o, resources: c, operatorList: f }).then(function() {
            const h = f.getIR(), u = xd(h, a, n);
            r.addDependencies(f.dependencies), r.addOp(e, u), a.objId && l.set(null, a.objId, { operatorListIR: h, dict: a });
          }).catch((h) => {
            if (!(h instanceof jn)) {
              if (this.options.ignoreErrors) {
                F(`handleTilingType - ignoring pattern: "${h}".`);
                return;
              }
              throw h;
            }
          });
        }
        async handleSetFont(e, n, s, i, a, r, o = null, l = null) {
          const f = n?.[0] instanceof te ? n[0].name : null, c = await this.loadFont(f, s, e, a, o, l);
          return c.font.isType3Font && i.addDependencies(c.type3Dependencies), r.font = c.font, c.send(this.handler), c.loadedName;
        }
        handleText(e, n) {
          const s = n.font, i = s.charsToGlyphs(e);
          return s.data && (n.textRenderingMode & Oh.ADD_TO_PATH_FLAG || n.fillColorSpace.name === "Pattern" || n.strokeColorSpace.name === "Pattern" || s.disableFontFace) && _qr.buildFontPaths(s, i, this.handler, this.options), i;
        }
        ensureStateFont(e) {
          if (e.font) return;
          const n = new Q("Missing setFont (Tf) operator before text rendering operator.");
          if (this.options.ignoreErrors) {
            F(`ensureStateFont: "${n}".`);
            return;
          }
          throw n;
        }
        async setGState({ resources: e, gState: n, operatorList: s, cacheKey: i, task: a, stateManager: r, localGStateCache: o, localColorSpaceCache: l, seenRefs: f }) {
          const c = n.objId;
          let h = true;
          const u = [];
          let d = Promise.resolve();
          for (const [m, g] of n) switch (m) {
            case "Type":
              break;
            case "LW":
              if (typeof g != "number") {
                F(`Invalid LW (line width): ${g}`);
                break;
              }
              u.push([m, Math.abs(g)]);
              break;
            case "LC":
            case "LJ":
            case "ML":
            case "D":
            case "RI":
            case "FL":
            case "CA":
            case "ca":
              u.push([m, g]);
              break;
            case "Font":
              h = false, d = d.then(() => this.handleSetFont(e, null, g[0], s, a, r.state).then(function(w) {
                s.addDependency(w), u.push([m, [w, g[1]]]);
              }));
              break;
            case "BM":
              u.push([m, Md(g)]);
              break;
            case "SMask":
              if (ot(g, "None")) {
                u.push([m, false]);
                break;
              }
              g instanceof _ ? (h = false, d = d.then(() => this.handleSMask(g, e, s, a, r, l, f)), u.push([m, true])) : F("Unsupported SMask type");
              break;
            case "TR":
              const b = this.handleTransferFunction(g);
              u.push([m, b]);
              break;
            case "OP":
            case "op":
            case "OPM":
            case "BG":
            case "BG2":
            case "UCR":
            case "UCR2":
            case "TR2":
            case "HT":
            case "SM":
            case "SA":
            case "AIS":
            case "TK":
              Ke("graphic state operator " + m);
              break;
            default:
              Ke("Unknown graphic state operator " + m);
              break;
          }
          await d, u.length > 0 && s.addOp(E.setGState, [u]), h && o.set(i, c, u);
        }
        loadFont(e, n, s, i, a = null, r = null) {
          const o = p(async () => new nc({ loadedName: "g_font_error", font: new gd(`Font "${e}" is not available.`), dict: n }), "errorFont");
          let l;
          if (n) n instanceof ae && (l = n);
          else {
            const b = s.get("Font");
            b && (l = b.getRaw(e));
          }
          if (l) {
            if (this.type3FontRefs?.has(l)) return o();
            if (this.fontCache.has(l)) return this.fontCache.get(l);
            try {
              n = this.xref.fetchIfRef(l);
            } catch (b) {
              F(`loadFont - lookup failed: "${b}".`);
            }
          }
          if (!(n instanceof _)) {
            if (!this.options.ignoreErrors && !this.parsingType3Font) return F(`Font "${e}" is not available.`), o();
            F(`Font "${e}" is not available -- attempting to fallback to a default font.`), n = a || _qr.fallbackFontDict;
          }
          if (n.cacheKey && this.fontCache.has(n.cacheKey)) return this.fontCache.get(n.cacheKey);
          const { promise: f, resolve: c } = Promise.withResolvers();
          let h;
          try {
            h = this.preEvaluateFont(n), h.cssFontInfo = r;
          } catch (b) {
            return F(`loadFont - preEvaluateFont failed: "${b}".`), o();
          }
          const { descriptor: u, hash: d } = h, m = l instanceof ae;
          let g;
          if (d && u instanceof _) {
            const b = u.fontAliases ||= /* @__PURE__ */ Object.create(null);
            if (b[d]) {
              const w = b[d].aliasRef;
              if (m && w && this.fontCache.has(w)) return this.fontCache.putAlias(l, w), this.fontCache.get(l);
            } else b[d] = { fontID: this.idFactory.createFontId() };
            m && (b[d].aliasRef = l), g = b[d].fontID;
          } else g = this.idFactory.createFontId();
          return Bt(g?.startsWith("f"), 'The "fontID" must be (correctly) defined.'), m ? this.fontCache.put(l, f) : (n.cacheKey = `cacheKey_${g}`, this.fontCache.put(n.cacheKey, f)), n.loadedName = `${this.idFactory.getDocId()}_${g}`, this.translateFont(h).then(async (b) => {
            const w = new nc({ loadedName: n.loadedName, font: b, dict: n });
            if (b.isType3Font) try {
              await w.loadType3Data(this, s, i);
            } catch (x) {
              throw new Error(`Type3 font load error: ${x}`);
            }
            c(w);
          }).catch((b) => {
            F(`loadFont - translateFont failed: "${b}".`), c(new nc({ loadedName: n.loadedName, font: new gd(b?.message), dict: n }));
          }), f;
        }
        buildPath(e, n, s) {
          const { pathMinMax: i, pathBuffer: a } = s;
          switch (e | 0) {
            case E.rectangle: {
              const r = s.currentPointX = n[0], o = s.currentPointY = n[1], l = n[2], f = n[3], c = r + l, h = o + f;
              l === 0 || f === 0 ? a.push(Et.moveTo, r, o, Et.lineTo, c, h, Et.closePath) : a.push(Et.moveTo, r, o, Et.lineTo, c, o, Et.lineTo, c, h, Et.lineTo, r, h, Et.closePath), pt.rectBoundingBox(r, o, c, h, i);
              break;
            }
            case E.moveTo: {
              const r = s.currentPointX = n[0], o = s.currentPointY = n[1];
              a.push(Et.moveTo, r, o), pt.pointBoundingBox(r, o, i);
              break;
            }
            case E.lineTo: {
              const r = s.currentPointX = n[0], o = s.currentPointY = n[1];
              a.push(Et.lineTo, r, o), pt.pointBoundingBox(r, o, i);
              break;
            }
            case E.curveTo: {
              const r = s.currentPointX, o = s.currentPointY, [l, f, c, h, u, d] = n;
              s.currentPointX = u, s.currentPointY = d, a.push(Et.curveTo, l, f, c, h, u, d), pt.bezierBoundingBox(r, o, l, f, c, h, u, d, i);
              break;
            }
            case E.curveTo2: {
              const r = s.currentPointX, o = s.currentPointY, [l, f, c, h] = n;
              s.currentPointX = c, s.currentPointY = h, a.push(Et.curveTo, r, o, l, f, c, h), pt.bezierBoundingBox(r, o, r, o, l, f, c, h, i);
              break;
            }
            case E.curveTo3: {
              const r = s.currentPointX, o = s.currentPointY, [l, f, c, h] = n;
              s.currentPointX = c, s.currentPointY = h, a.push(Et.curveTo, l, f, c, h, c, h), pt.bezierBoundingBox(r, o, l, f, c, h, c, h, i);
              break;
            }
            case E.closePath:
              a.push(Et.closePath);
              break;
          }
        }
        _getColorSpace(e, n, s) {
          return ut.parse({ cs: e, xref: this.xref, resources: n, pdfFunctionFactory: this._pdfFunctionFactory, globalColorSpaceCache: this.globalColorSpaceCache, localColorSpaceCache: s, asyncIfNotCached: true });
        }
        async _handleColorSpace(e) {
          try {
            return await e;
          } catch (n) {
            if (n instanceof jn) return null;
            if (this.options.ignoreErrors) return F(`_handleColorSpace - ignoring ColorSpace: "${n}".`), null;
            throw n;
          }
        }
        parseShading({ shading: e, resources: n, localColorSpaceCache: s, localShadingPatternCache: i }) {
          let a = i.get(e);
          if (a) return a;
          let r;
          try {
            r = Nw.parseShading(e, this.xref, n, this._pdfFunctionFactory, this.globalColorSpaceCache, s, this.options.prepareWebGPU).getIR();
          } catch (o) {
            if (o instanceof jn) return null;
            if (this.options.ignoreErrors) return F(`parseShading - ignoring shading: "${o}".`), i.set(e, null), null;
            throw o;
          }
          if (a = `pattern_${this.idFactory.createObjId()}`, this.parsingType3Font && (a = `${this.idFactory.getDocId()}_type3_${a}`), i.set(e, a), this.parsingType3Font) {
            const o = Eb(r);
            this.handler.send("commonobj", [a, "Pattern", o], [o]);
          } else this.handler.send("obj", [a, this.pageIndex, "Pattern", r]);
          return a;
        }
        handleColorN(e, n, s, i, a, r, o, l, f, c) {
          const h = s.pop();
          if (h instanceof te) {
            const u = a.getRaw(h.name), d = u instanceof ae && f.getByRef(u);
            if (d) try {
              const g = i.base ? i.base.getRgbHex(s, 0) : null, b = xd(d.operatorListIR, d.dict, g);
              e.addOp(n, b);
              return;
            } catch {
            }
            const m = this.xref.fetchIfRef(u);
            if (m) {
              const g = m instanceof ze ? m.dict : m, b = g.get("PatternType");
              if (b === Pd.TILING) {
                const w = i.base ? i.base.getRgbHex(s, 0) : null;
                return this.handleTilingType(n, w, r, m, g, e, o, f);
              } else if (b === Pd.SHADING) {
                const w = g.get("Shading"), x = this.parseShading({ shading: w, resources: r, localColorSpaceCache: l, localShadingPatternCache: c });
                if (x) {
                  const y = Bi(g.getArray("Matrix"), null);
                  e.addOp(n, ["Shading", x, y]);
                }
                return;
              }
              throw new Q(`Unknown PatternType: ${b}`);
            }
          }
          throw new Q(`Unknown PatternName: ${h}`);
        }
        _parseVisibilityExpression(e, n, s) {
          if (++n > 10) {
            F("Visibility expression is too deeply nested");
            return;
          }
          const a = e.length, r = this.xref.fetchIfRef(e[0]);
          if (a < 2 || !(r instanceof te)) {
            F("Invalid visibility expression");
            return;
          }
          switch (r.name) {
            case "And":
            case "Or":
            case "Not":
              s.push(r.name);
              break;
            default:
              F(`Invalid operator ${r.name} in visibility expression`);
              return;
          }
          for (let o = 1; o < a; o++) {
            const l = e[o], f = this.xref.fetchIfRef(l);
            if (Array.isArray(f)) {
              const c = [];
              s.push(c), this._parseVisibilityExpression(f, n, c);
            } else l instanceof ae && s.push(l.toString());
          }
        }
        async parseMarkedContentProps(e, n) {
          let s;
          if (e instanceof te) s = n.get("Properties").get(e.name);
          else if (e instanceof _) s = e;
          else throw new Q("Optional content properties malformed.");
          const i = s.get("Type")?.name;
          if (i === "OCG") return { type: i, id: s.objId };
          if (i === "OCMD") {
            const a = s.get("VE");
            if (Array.isArray(a)) {
              const o = [];
              if (this._parseVisibilityExpression(a, 0, o), o.length > 0) return { type: "OCMD", expression: o };
            }
            const r = s.get("OCGs");
            if (Array.isArray(r) || r instanceof _) {
              const o = [];
              if (Array.isArray(r)) for (const l of r) o.push(l.toString());
              else o.push(r.objId);
              return { type: i, ids: o, policy: s.get("P") instanceof te ? s.get("P").name : null, expression: null };
            } else if (r instanceof ae) return { type: i, id: r.toString() };
          }
          return null;
        }
        async getOperatorList({ stream: e, task: n, resources: s, operatorList: i, initialState: a = null, fallbackFontDict: r = null, prevRefs: o = null }) {
          if (e.isAsync) {
            const A = await e.asyncGetBytes();
            A && (e = new jt(A, 0, A.length, e.dict));
          }
          const l = e.dict?.objId, f = new Rt(o);
          if (l) {
            if (o?.has(l)) throw new Error(`getOperatorList - ignoring circular reference: ${l}`);
            f.put(l);
          }
          if (s ||= _.empty, a ||= new Hd(), !i) throw new Error('getOperatorList: missing "operatorList" parameter');
          const c = this, h = this.xref, u = new yd(), d = new jd(), m = new vd(), g = new Ex(), b = /* @__PURE__ */ new Map(), w = s.get("XObject") || _.empty, x = s.get("Pattern") || _.empty, y = new zl(a), j = new Ji(e, h, y), v = new nl();
          function q(A) {
            for (let C = 0, S = j.savedStatesDepth; C < S; C++) i.addOp(E.restore, []);
          }
          return p(q, "closePendingRestoreOPS"), new Promise(p(function A(C, S) {
            const I = p(function(N) {
              Promise.all([N, i.ready]).then(function() {
                try {
                  A(C, S);
                } catch (oe) {
                  S(oe);
                }
              }, S);
            }, "next");
            n.ensureNotTerminated(), v.reset();
            const T = {};
            let P, H, G, Z, z, O;
            for (; !(P = v.check()) && (T.args = null, !!j.read(T)); ) {
              let N = T.args, oe = T.fn;
              switch (oe | 0) {
                case E.paintXObject:
                  if (O = N[0] instanceof te, z = N[0].name, O) {
                    const M = u.getByName(z);
                    if (M) {
                      tc(i, M), N = null;
                      continue;
                    }
                  }
                  I(new Promise(function(M, L) {
                    if (!O) throw new Q("XObject must be referred to by name.");
                    let J = w.getRaw(z);
                    if (J instanceof ae) {
                      const le = u.getByRef(J) || c._regionalImageCache.getByRef(J) || c.globalImageCache.getData(J, c.pageIndex);
                      if (le) {
                        tc(i, le), M();
                        return;
                      }
                      J = h.fetch(J);
                    }
                    if (!(J instanceof ze)) throw new Q("XObject should be a stream");
                    const ce = J.dict.get("Subtype");
                    if (!(ce instanceof te)) throw new Q("XObject should have a Name subtype");
                    if (ce.name === "Form") {
                      y.save(), c.buildFormXObject(s, J, null, i, n, y.state.clone({ newPath: true }), d, f).then(function() {
                        y.restore(), M();
                      }, L);
                      return;
                    } else if (ce.name === "Image") {
                      c.buildPaintImageXObject({ resources: s, image: J, operatorList: i, cacheKey: z, localImageCache: u, localColorSpaceCache: d }).then(M, L);
                      return;
                    } else if (ce.name === "PS") Ke("Ignored XObject subtype PS");
                    else throw new Q(`Unhandled XObject subtype ${ce.name}`);
                    M();
                  }).catch(function(M) {
                    if (!(M instanceof jn)) {
                      if (c.options.ignoreErrors) {
                        F(`getOperatorList - ignoring XObject: "${M}".`);
                        return;
                      }
                      throw M;
                    }
                  }));
                  return;
                case E.setFont:
                  const je = N[1];
                  I(c.handleSetFont(s, N, null, i, n, y.state, r).then(function(M) {
                    i.addDependency(M), i.addOp(E.setFont, [M, je]);
                  }));
                  return;
                case E.endInlineImage:
                  const Y = N[0].cacheKey;
                  if (Y) {
                    const M = u.getByName(Y);
                    if (M) {
                      tc(i, M), N = null;
                      continue;
                    }
                  }
                  I(c.buildPaintImageXObject({ resources: s, image: N[0], isInline: true, operatorList: i, cacheKey: Y, localImageCache: u, localColorSpaceCache: d }));
                  return;
                case E.showText:
                  if (!y.state.font) {
                    c.ensureStateFont(y.state);
                    continue;
                  }
                  N[0] = c.handleText(N[0], y.state);
                  break;
                case E.showSpacedText:
                  if (!y.state.font) {
                    c.ensureStateFont(y.state);
                    continue;
                  }
                  const ye = [], qe = y.state;
                  for (const M of N[0]) typeof M == "string" ? ye.push(...c.handleText(M, qe)) : typeof M == "number" && ye.push(M);
                  N[0] = ye, oe = E.showText;
                  break;
                case E.nextLineShowText:
                  if (!y.state.font) {
                    c.ensureStateFont(y.state);
                    continue;
                  }
                  i.addOp(E.nextLine), N[0] = c.handleText(N[0], y.state), oe = E.showText;
                  break;
                case E.nextLineSetSpacingShowText:
                  if (!y.state.font) {
                    c.ensureStateFont(y.state);
                    continue;
                  }
                  i.addOp(E.nextLine), i.addOp(E.setWordSpacing, [N.shift()]), i.addOp(E.setCharSpacing, [N.shift()]), N[0] = c.handleText(N[0], y.state), oe = E.showText;
                  break;
                case E.setTextRenderingMode:
                  y.state.textRenderingMode = N[0];
                  break;
                case E.setFillColorSpace: {
                  const M = c._getColorSpace(N[0], s, d);
                  if (M instanceof wn) {
                    y.state.fillColorSpace = M;
                    continue;
                  }
                  I(c._handleColorSpace(M).then((L) => {
                    y.state.fillColorSpace = L || ut.gray;
                  }));
                  return;
                }
                case E.setStrokeColorSpace: {
                  const M = c._getColorSpace(N[0], s, d);
                  if (M instanceof wn) {
                    y.state.strokeColorSpace = M;
                    continue;
                  }
                  I(c._handleColorSpace(M).then((L) => {
                    y.state.strokeColorSpace = L || ut.gray;
                  }));
                  return;
                }
                case E.setFillColor:
                  Z = y.state.fillColorSpace, N = [Z.getRgbHex(N, 0)], oe = E.setFillRGBColor;
                  break;
                case E.setStrokeColor:
                  Z = y.state.strokeColorSpace, N = [Z.getRgbHex(N, 0)], oe = E.setStrokeRGBColor;
                  break;
                case E.setFillGray:
                  y.state.fillColorSpace = ut.gray, N = [ut.gray.getRgbHex(N, 0)], oe = E.setFillRGBColor;
                  break;
                case E.setStrokeGray:
                  y.state.strokeColorSpace = ut.gray, N = [ut.gray.getRgbHex(N, 0)], oe = E.setStrokeRGBColor;
                  break;
                case E.setFillCMYKColor:
                  y.state.fillColorSpace = ut.cmyk, N = [ut.cmyk.getRgbHex(N, 0)], oe = E.setFillRGBColor;
                  break;
                case E.setStrokeCMYKColor:
                  y.state.strokeColorSpace = ut.cmyk, N = [ut.cmyk.getRgbHex(N, 0)], oe = E.setStrokeRGBColor;
                  break;
                case E.setFillRGBColor:
                  y.state.fillColorSpace = ut.rgb, N = [ut.rgb.getRgbHex(N, 0)];
                  break;
                case E.setStrokeRGBColor:
                  y.state.strokeColorSpace = ut.rgb, N = [ut.rgb.getRgbHex(N, 0)];
                  break;
                case E.setFillColorN:
                  if (Z = y.state.patternFillColorSpace, !Z) {
                    if (Nn(N, null)) {
                      N = [ut.gray.getRgbHex(N, 0)], oe = E.setFillRGBColor;
                      break;
                    }
                    N = [], oe = E.setFillTransparent;
                    break;
                  }
                  if (Z.name === "Pattern") {
                    I(c.handleColorN(i, E.setFillColorN, N, Z, x, s, n, d, g, b));
                    return;
                  }
                  N = [Z.getRgbHex(N, 0)], oe = E.setFillRGBColor;
                  break;
                case E.setStrokeColorN:
                  if (Z = y.state.patternStrokeColorSpace, !Z) {
                    if (Nn(N, null)) {
                      N = [ut.gray.getRgbHex(N, 0)], oe = E.setStrokeRGBColor;
                      break;
                    }
                    N = [], oe = E.setStrokeTransparent;
                    break;
                  }
                  if (Z.name === "Pattern") {
                    I(c.handleColorN(i, E.setStrokeColorN, N, Z, x, s, n, d, g, b));
                    return;
                  }
                  N = [Z.getRgbHex(N, 0)], oe = E.setStrokeRGBColor;
                  break;
                case E.shadingFill:
                  let W;
                  try {
                    const M = s.get("Shading");
                    if (!M) throw new Q("No shading resource found");
                    if (W = M.get(N[0].name), !W) throw new Q("No shading object found");
                  } catch (M) {
                    if (M instanceof jn) continue;
                    if (c.options.ignoreErrors) {
                      F(`getOperatorList - ignoring Shading: "${M}".`);
                      continue;
                    }
                    throw M;
                  }
                  const K = c.parseShading({ shading: W, resources: s, localColorSpaceCache: d, localShadingPatternCache: b });
                  if (!K) continue;
                  N = [K], oe = E.shadingFill;
                  break;
                case E.setGState:
                  if (O = N[0] instanceof te, z = N[0].name, O) {
                    const M = m.getByName(z);
                    if (M) {
                      M.length > 0 && i.addOp(E.setGState, [M]), N = null;
                      continue;
                    }
                  }
                  I(new Promise(function(M, L) {
                    if (!O) throw new Q("GState must be referred to by name.");
                    const J = s.get("ExtGState");
                    if (!(J instanceof _)) throw new Q("ExtGState should be a dictionary.");
                    const ce = J.get(z);
                    if (!(ce instanceof _)) throw new Q("GState should be a dictionary.");
                    c.setGState({ resources: s, gState: ce, operatorList: i, cacheKey: z, task: n, stateManager: y, localGStateCache: m, localColorSpaceCache: d, seenRefs: f }).then(M, L);
                  }).catch(function(M) {
                    if (!(M instanceof jn)) {
                      if (c.options.ignoreErrors) {
                        F(`getOperatorList - ignoring ExtGState: "${M}".`);
                        return;
                      }
                      throw M;
                    }
                  }));
                  return;
                case E.setLineWidth: {
                  const [M] = N;
                  if (typeof M != "number") {
                    F(`Invalid setLineWidth: ${M}`);
                    continue;
                  }
                  N[0] = Math.abs(M);
                  break;
                }
                case E.setDash: {
                  const M = N[1];
                  if (typeof M != "number") {
                    F(`Invalid setDash: ${M}`);
                    continue;
                  }
                  const L = N[0];
                  if (!Array.isArray(L)) {
                    F(`Invalid setDash: ${L}`);
                    continue;
                  }
                  L.some((J) => typeof J != "number") && (N[0] = L.filter((J) => typeof J == "number"));
                  break;
                }
                case E.moveTo:
                case E.lineTo:
                case E.curveTo:
                case E.curveTo2:
                case E.curveTo3:
                case E.closePath:
                case E.rectangle:
                  c.buildPath(oe, N, y.state);
                  continue;
                case E.stroke:
                case E.closeStroke:
                case E.fill:
                case E.eoFill:
                case E.fillStroke:
                case E.eoFillStroke:
                case E.closeFillStroke:
                case E.closeEOFillStroke:
                case E.endPath: {
                  const { state: { pathBuffer: M, pathMinMax: L } } = y;
                  (oe === E.closeStroke || oe === E.closeFillStroke || oe === E.closeEOFillStroke) && M.push(Et.closePath), M.length === 0 ? i.addOp(E.constructPath, [oe, [null], null]) : (i.addOp(E.constructPath, [oe, [new Float32Array(M)], L.slice()]), M.length = 0, L.set([1 / 0, 1 / 0, -1 / 0, -1 / 0], 0));
                  continue;
                }
                case E.setTextMatrix:
                  i.addOp(oe, [new Float32Array(N)]);
                  continue;
                case E.markPoint:
                case E.markPointProps:
                case E.beginCompat:
                case E.endCompat:
                  continue;
                case E.beginMarkedContentProps:
                  if (!(N[0] instanceof te)) {
                    F(`Expected name for beginMarkedContentProps arg0=${N[0]}`), i.addOp(E.beginMarkedContentProps, ["OC", null]);
                    continue;
                  }
                  if (N[0].name === "OC") {
                    I(c.parseMarkedContentProps(N[1], s).then((M) => {
                      i.addOp(E.beginMarkedContentProps, ["OC", M]);
                    }).catch((M) => {
                      if (!(M instanceof jn)) {
                        if (c.options.ignoreErrors) {
                          F(`getOperatorList - ignoring beginMarkedContentProps: "${M}".`), i.addOp(E.beginMarkedContentProps, ["OC", null]);
                          return;
                        }
                        throw M;
                      }
                    }));
                    return;
                  }
                  N = [N[0].name, N[1] instanceof _ ? N[1].get("MCID") : null];
                  break;
                case E.beginMarkedContent:
                case E.endMarkedContent:
                default:
                  if (N !== null) {
                    for (H = 0, G = N.length; H < G && !(N[H] instanceof _); H++) ;
                    if (H < G) {
                      F("getOperatorList - ignoring operator: " + oe);
                      continue;
                    }
                  }
              }
              i.addOp(oe, N);
            }
            if (P) {
              I(Dd);
              return;
            }
            q(), C();
          }, "promiseBody")).catch((A) => {
            if (!(A instanceof jn)) {
              if (this.options.ignoreErrors) {
                F(`getOperatorList - ignoring errors during "${n.name}" task: "${A}".`), q();
                return;
              }
              throw A;
            }
          });
        }
        async getTextContent({ stream: e, task: n, resources: s, stateManager: i = null, includeMarkedContent: a = false, sink: r, seenStyles: o = /* @__PURE__ */ new Set(), viewBox: l, lang: f = null, markedContentData: c = null, disableNormalization: h = false, keepWhiteSpace: u = false, prevRefs: d = null, intersector: m = null }) {
          if (e.isAsync) {
            const ue = await e.asyncGetBytes();
            ue && (e = new jt(ue, 0, ue.length, e.dict));
          }
          const g = e.dict?.objId, b = new Rt(d);
          if (g) {
            if (d?.has(g)) throw new Error(`getTextContent - ignoring circular reference: ${g}`);
            b.put(g);
          }
          s ||= _.empty, i ||= new zl(new Yx()), a && (c ||= { level: 0 });
          const w = { items: [], styles: /* @__PURE__ */ Object.create(null), lang: f }, x = { initialized: false, str: [], totalWidth: 0, totalHeight: 0, width: 0, height: 0, vertical: false, prevTransform: null, prevTextRise: 0, textAdvanceScale: 0, spaceInFlowMin: 0, spaceInFlowMax: 0, trackingSpaceMin: 1 / 0, negativeSpaceMax: -1 / 0, notASpace: -1 / 0, transform: null, fontName: null, hasEOL: false }, y = [" ", " "];
          let j = 0;
          function v(ue) {
            const Ae = (j + 1) % 2, xe = y[j] !== " " && y[Ae] === " ";
            return y[j] = ue, j = Ae, !u && xe;
          }
          p(v, "saveLastChar");
          function q() {
            return !u && y[j] !== " " && y[(j + 1) % 2] === " ";
          }
          p(q, "shouldAddWhitepsace");
          function A() {
            y[0] = y[1] = " ", j = 0;
          }
          p(A, "resetLastChars");
          const C = 0.102, S = 0.03, I = -0.2, T = 0.102, P = 0.6, H = 0.25, G = this, Z = this.xref, z = [];
          let O = null;
          const N = new yd(), oe = new vd(), je = new Ji(e, Z, i);
          let Y, ye;
          function qe({ width: ue = 0, height: Ae = 0, transform: xe = x.prevTransform, fontName: ge = x.fontName }) {
            m?.addExtraChar(" "), w.items.push({ str: " ", dir: "ltr", width: ue, height: Ae, transform: xe, fontName: ge, hasEOL: false });
          }
          p(qe, "pushWhitespace");
          function W() {
            const ue = Y.font, Ae = [Y.fontSize * Y.textHScale, 0, 0, Y.fontSize, 0, Y.textRise];
            if (ue.isType3Font && (Y.fontSize <= 1 || ue.isCharBBox) && !_r(Y.fontMatrix, na)) {
              const xe = ue.bbox[3] - ue.bbox[1];
              xe > 0 && (Ae[3] *= xe * Y.fontMatrix[3]);
            }
            return pt.transform(Y.ctm, pt.transform(Y.textMatrix, Ae));
          }
          p(W, "getCurrentTextTransform");
          function K() {
            if (x.initialized) return x;
            const { font: ue, loadedName: Ae } = Y;
            if (!o.has(Ae) && (o.add(Ae), w.styles[Ae] = { fontFamily: ue.fallbackName, ascent: ue.ascent, descent: ue.descent, vertical: ue.vertical }, G.options.fontExtraProperties && ue.systemFontInfo)) {
              const we = w.styles[Ae];
              we.fontSubstitution = ue.systemFontInfo.css, we.fontSubstitutionLoadedName = ue.systemFontInfo.loadedName;
            }
            x.fontName = Ae;
            const xe = x.transform = W();
            ue.vertical ? (x.width = x.totalWidth = Math.hypot(xe[0], xe[1]), x.height = x.totalHeight = 0, x.vertical = true) : (x.width = x.totalWidth = 0, x.height = x.totalHeight = Math.hypot(xe[2], xe[3]), x.vertical = false);
            const ge = Math.hypot(Y.textLineMatrix[0], Y.textLineMatrix[1]), be = Math.hypot(Y.ctm[0], Y.ctm[1]);
            x.textAdvanceScale = be * ge;
            const { fontSize: Ce } = Y;
            return x.trackingSpaceMin = Ce * C, x.notASpace = Ce * S, x.negativeSpaceMax = Ce * I, x.spaceInFlowMin = Ce * T, x.spaceInFlowMax = Ce * P, x.hasEOL = false, x.initialized = true, x;
          }
          p(K, "ensureTextContentItem");
          function M() {
            if (!x.initialized) return;
            const ue = Math.hypot(Y.textLineMatrix[0], Y.textLineMatrix[1]), xe = Math.hypot(Y.ctm[0], Y.ctm[1]) * ue;
            xe !== x.textAdvanceScale && (x.vertical ? (x.totalHeight += x.height * x.textAdvanceScale, x.height = 0) : (x.totalWidth += x.width * x.textAdvanceScale, x.width = 0), x.textAdvanceScale = xe);
          }
          p(M, "updateAdvanceScale");
          function L(ue) {
            let Ae = ue.str.join("");
            h || (Ae = _m(Ae));
            const xe = Fd(Ae, -1, ue.vertical);
            return { str: xe.str, dir: xe.dir, width: Math.abs(ue.totalWidth), height: Math.abs(ue.totalHeight), transform: ue.transform, fontName: ue.fontName, hasEOL: ue.hasEOL };
          }
          p(L, "runBidiTransform");
          async function J(ue, Ae) {
            const xe = await G.loadFont(ue, Ae, s, n);
            Y.loadedName = xe.loadedName, Y.font = xe.font, Y.fontMatrix = xe.font.fontMatrix || na;
          }
          p(J, "handleSetFont");
          function ce(ue, Ae, xe) {
            const ge = Math.hypot(xe[0], xe[1]);
            return [(xe[0] * ue + xe[1] * Ae) / ge, (xe[2] * ue + xe[3] * Ae) / ge];
          }
          p(ce, "applyInverseRotation");
          function le(ue) {
            const Ae = W();
            let xe = Ae[4], ge = Ae[5];
            if (Y.font?.vertical) {
              if (xe < l[0] || xe > l[2] || ge + ue < l[1] || ge > l[3]) return false;
            } else if (xe + ue < l[0] || xe > l[2] || ge < l[1] || ge > l[3]) return false;
            if (!Y.font || !x.prevTransform) return true;
            let be = x.prevTransform[4], Ce = x.prevTransform[5];
            if (be === xe && Ce === ge) return true;
            let we = -1;
            switch (Ae[0] && Ae[1] === 0 && Ae[2] === 0 ? we = Ae[0] > 0 ? 0 : 180 : Ae[1] && Ae[0] === 0 && Ae[3] === 0 && (we = Ae[1] > 0 ? 90 : 270), we) {
              case 0:
                break;
              case 90:
                [xe, ge] = [ge, xe], [be, Ce] = [Ce, be];
                break;
              case 180:
                [xe, ge, be, Ce] = [-xe, -ge, -be, -Ce];
                break;
              case 270:
                [xe, ge] = [-ge, -xe], [be, Ce] = [-Ce, -be];
                break;
              default:
                [xe, ge] = ce(xe, ge, Ae), [be, Ce] = ce(be, Ce, x.prevTransform);
            }
            if (Y.font.vertical) {
              const Ct = (Ce - ge) / x.textAdvanceScale, Pt = xe - be, lt = Math.sign(x.height || x.totalHeight);
              return Ct < lt * x.negativeSpaceMax ? Math.abs(Pt) > 0.5 * x.width ? (Te(), true) : (A(), Fe(), true) : Math.abs(Pt) > x.width ? (Te(), true) : (Ct <= lt * x.notASpace && A(), Ct <= lt * x.trackingSpaceMin ? q() ? (A(), Fe(), qe({ height: Math.abs(Ct) })) : x.height += Ct : _e(Ct, x.prevTransform, lt) || (x.str.length === 0 ? (A(), qe({ height: Math.abs(Ct) })) : x.height += Ct), Math.abs(Pt) > x.width * H && Fe(), true);
            }
            const Se = (xe - be) / x.textAdvanceScale, me = ge - Ce, Ge = Math.sign(x.width || x.totalWidth);
            if (Se < Ge * x.negativeSpaceMax) return Math.abs(me) > 0.5 * x.height ? (Te(), true) : (A(), Fe(), true);
            const tt = Y.textRise - x.prevTextRise, ct = tt === 0 ? me : me - Ae[3] / Y.fontSize * tt;
            return Math.abs(ct) > x.height ? (Te(), true) : (Se <= Ge * x.notASpace && A(), Se <= Ge * x.trackingSpaceMin ? q() ? (A(), Fe(), qe({ width: Math.abs(Se) })) : x.width += Se : _e(Se, x.prevTransform, Ge) || (x.str.length === 0 ? (A(), qe({ width: Math.abs(Se) })) : x.width += Se), Math.abs(me) > x.height * H && Fe(), true);
          }
          p(le, "compareWithLastPosition");
          function se({ chars: ue, extraSpacing: Ae }) {
            ye !== Y && (ye.fontSize !== Y.fontSize || ye.fontName !== Y.fontName && (ye.font.name !== Y.font.name || ye.font.vertical !== Y.font.vertical)) && (Fe(), ye = Y.clone());
            const xe = Y.font, ge = xe.vertical ? -Y.charSpacing : Y.charSpacing;
            if (!ue) {
              const we = ge + Ae;
              we && (xe.vertical ? Y.translateTextMatrix(0, -we) : Y.translateTextMatrix(we * Y.textHScale, 0)), u && le(0);
              return;
            }
            const be = xe.charsToGlyphs(ue), Ce = Y.fontMatrix[0] * Y.fontSize;
            for (let we = 0, Se = be.length; we < Se; we++) {
              const me = be[we], { category: Ge, originalCharCode: tt } = me;
              if (Ge.isInvisibleFormatMark) continue;
              let ct = ge + (we + 1 === Se ? Ae : 0), Ct = me.width;
              xe.vertical && (Ct = me.vmetric ? me.vmetric[0] : -Ct);
              let Pt = Ct * Ce;
              if (tt === 32 && (ct += Y.wordSpacing), !u && Ge.isWhitespace) {
                xe.vertical ? (ct += -Pt, Y.translateTextMatrix(0, -ct)) : (ct += Pt, Y.translateTextMatrix(ct * Y.textHScale, 0)), v(" ");
                continue;
              }
              if (!Ge.isZeroWidthDiacritic && !le(Pt)) {
                xe.vertical ? Y.translateTextMatrix(0, Pt) : Y.translateTextMatrix(Pt * Y.textHScale, 0);
                continue;
              }
              const lt = K();
              Ge.isZeroWidthDiacritic && (Pt = 0), xe.vertical ? (m?.addGlyph(W(), 0, Pt, me.unicode), Y.translateTextMatrix(0, Pt), Pt = Math.abs(Pt), lt.height += Pt) : (Pt *= Y.textHScale, m?.addGlyph(W(), Pt, 0, me.unicode), Y.translateTextMatrix(Pt, 0), lt.width += Pt), Pt && (lt.prevTransform = W(), lt.prevTextRise = Y.textRise);
              const xs = me.unicode;
              v(xs) && (lt.str.push(" "), m?.addExtraChar(" ")), m || lt.str.push(xs), ct && (xe.vertical ? Y.translateTextMatrix(0, -ct) : Y.translateTextMatrix(ct * Y.textHScale, 0));
            }
          }
          p(se, "buildTextContentItem");
          function Te() {
            m?.addExtraChar(`
`), A(), x.initialized ? (x.hasEOL = true, Fe()) : w.items.push({ str: "", dir: "ltr", width: 0, height: 0, transform: W(), fontName: Y.loadedName, hasEOL: true });
          }
          p(Te, "appendEOL");
          function _e(ue, Ae, xe) {
            if (xe * x.spaceInFlowMin <= ue && ue <= xe * x.spaceInFlowMax) return x.initialized && (A(), x.str.push(" "), m?.addExtraChar(" ")), false;
            const ge = x.fontName;
            let be = 0;
            return x.vertical && (be = ue, ue = 0), Fe(), A(), qe({ width: Math.abs(ue), height: Math.abs(be), transform: Ae || W(), fontName: ge }), true;
          }
          p(_e, "addFakeSpaces");
          function Fe() {
            !x.initialized || !x.str || (x.vertical ? x.totalHeight += x.height * x.textAdvanceScale : x.totalWidth += x.width * x.textAdvanceScale, w.items.push(L(x)), x.initialized = false, x.str.length = 0);
          }
          p(Fe, "flushTextContentItem");
          function Ne(ue = false) {
            const Ae = w.items.length;
            Ae !== 0 && (ue && Ae < Xx || (r?.enqueue(w, Ae), w.items = [], w.styles = /* @__PURE__ */ Object.create(null)));
          }
          p(Ne, "enqueueChunk");
          const Le = new nl();
          return new Promise(p(function ue(Ae, xe) {
            const ge = p(function(Ge) {
              Ne(true), Promise.all([Ge, r?.ready]).then(function() {
                try {
                  ue(Ae, xe);
                } catch (tt) {
                  xe(tt);
                }
              }, xe);
            }, "next");
            n.ensureNotTerminated(), Le.reset();
            const be = {};
            let Ce, we, Se, me = [];
            for (; !(Ce = Le.check()) && (me.length = 0, be.args = me, !!je.read(be)); ) {
              Y = i.state, ye ||= Y.clone();
              const Ge = be.fn;
              switch (me = be.args, Ge | 0) {
                case E.setFont:
                  const tt = me[0].name, ct = me[1];
                  if (Y.font && tt === Y.fontName && ct === Y.fontSize) break;
                  Y.fontName = tt, Y.fontSize = ct, ge(J(tt, null));
                  return;
                case E.setTextRise:
                  Y.textRise = me[0];
                  break;
                case E.setHScale:
                  Y.textHScale = me[0] / 100;
                  break;
                case E.setLeading:
                  Y.leading = me[0];
                  break;
                case E.moveText:
                  Y.translateTextLineMatrix(me[0], me[1]), Y.textMatrix = Y.textLineMatrix.slice();
                  break;
                case E.setLeadingMoveText:
                  Y.leading = -me[1], Y.translateTextLineMatrix(me[0], me[1]), Y.textMatrix = Y.textLineMatrix.slice();
                  break;
                case E.nextLine:
                  Y.carriageReturn();
                  break;
                case E.setTextMatrix:
                  Y.setTextMatrix(me[0], me[1], me[2], me[3], me[4], me[5]), Y.setTextLineMatrix(me[0], me[1], me[2], me[3], me[4], me[5]), M();
                  break;
                case E.setCharSpacing:
                  Y.charSpacing = me[0];
                  break;
                case E.setWordSpacing:
                  Y.wordSpacing = me[0];
                  break;
                case E.beginText:
                  Y.textMatrix = _s.slice(), Y.textLineMatrix = _s.slice();
                  break;
                case E.showSpacedText:
                  if (!i.state.font) {
                    G.ensureStateFont(i.state);
                    continue;
                  }
                  const Ct = (Y.font.vertical ? 1 : -1) * Y.fontSize / 1e3, Pt = me[0];
                  for (let lt = 0, xs = Pt.length; lt < xs; lt++) {
                    const ln = Pt[lt];
                    if (typeof ln == "string") z.push(ln);
                    else if (typeof ln == "number" && ln !== 0) {
                      const is = z.join("");
                      z.length = 0, se({ chars: is, extraSpacing: ln * Ct });
                    }
                  }
                  if (z.length > 0) {
                    const lt = z.join("");
                    z.length = 0, se({ chars: lt, extraSpacing: 0 });
                  }
                  break;
                case E.showText:
                  if (!i.state.font) {
                    G.ensureStateFont(i.state);
                    continue;
                  }
                  se({ chars: me[0], extraSpacing: 0 });
                  break;
                case E.nextLineShowText:
                  if (!i.state.font) {
                    G.ensureStateFont(i.state);
                    continue;
                  }
                  Y.carriageReturn(), se({ chars: me[0], extraSpacing: 0 });
                  break;
                case E.nextLineSetSpacingShowText:
                  if (!i.state.font) {
                    G.ensureStateFont(i.state);
                    continue;
                  }
                  Y.wordSpacing = me[0], Y.charSpacing = me[1], Y.carriageReturn(), se({ chars: me[2], extraSpacing: 0 });
                  break;
                case E.paintXObject:
                  if (Fe(), O ??= s.get("XObject") || _.empty, Se = me[0] instanceof te, we = me[0].name, Se && N.getByName(we)) break;
                  ge(new Promise(function(lt, xs) {
                    if (!Se) throw new Q("XObject must be referred to by name.");
                    let ln = O.getRaw(we);
                    if (ln instanceof ae) {
                      if (N.getByRef(ln)) {
                        lt();
                        return;
                      }
                      if (G.globalImageCache.getData(ln, G.pageIndex)) {
                        lt();
                        return;
                      }
                      ln = Z.fetch(ln);
                    }
                    if (!(ln instanceof ze)) throw new Q("XObject should be a stream");
                    const { dict: is } = ln, fi = is.get("Subtype");
                    if (!(fi instanceof te)) throw new Q("XObject should have a Name subtype");
                    if (fi.name !== "Form") {
                      N.set(we, is.objId, true), lt();
                      return;
                    }
                    const al = i.state.clone(), Sr = new zl(al), rl = Bi(is.getArray("Matrix"), null);
                    rl && Sr.transform(rl);
                    const ol = is.get("Resources");
                    Ne();
                    const Cr = { enqueueInvoked: false, enqueue(Ir, Tr) {
                      this.enqueueInvoked = true, r.enqueue(Ir, Tr);
                    }, get desiredSize() {
                      return r.desiredSize ?? 0;
                    }, get ready() {
                      return r.ready;
                    } };
                    G.getTextContent({ stream: ln, task: n, resources: ol instanceof _ ? ol : s, stateManager: Sr, includeMarkedContent: a, sink: r && Cr, seenStyles: o, viewBox: l, lang: f, markedContentData: c, disableNormalization: h, keepWhiteSpace: u, prevRefs: b }).then(function() {
                      Cr.enqueueInvoked || N.set(we, is.objId, true), lt();
                    }, xs);
                  }).catch(function(lt) {
                    if (!(lt instanceof jn)) {
                      if (G.options.ignoreErrors) {
                        F(`getTextContent - ignoring XObject: "${lt}".`);
                        return;
                      }
                      throw lt;
                    }
                  }));
                  return;
                case E.setGState:
                  if (Se = me[0] instanceof te, we = me[0].name, Se && oe.getByName(we)) break;
                  ge(new Promise(function(lt, xs) {
                    if (!Se) throw new Q("GState must be referred to by name.");
                    const ln = s.get("ExtGState");
                    if (!(ln instanceof _)) throw new Q("ExtGState should be a dictionary.");
                    const is = ln.get(we);
                    if (!(is instanceof _)) throw new Q("GState should be a dictionary.");
                    const fi = is.get("Font");
                    if (!fi) {
                      oe.set(we, is.objId, true), lt();
                      return;
                    }
                    Fe(), Y.fontName = null, Y.fontSize = fi[1], J(null, fi[0]).then(lt, xs);
                  }).catch(function(lt) {
                    if (!(lt instanceof jn)) {
                      if (G.options.ignoreErrors) {
                        F(`getTextContent - ignoring ExtGState: "${lt}".`);
                        return;
                      }
                      throw lt;
                    }
                  }));
                  return;
                case E.beginMarkedContent:
                  Fe(), a && (c.level++, w.items.push({ type: "beginMarkedContent", tag: me[0] instanceof te ? me[0].name : null }));
                  break;
                case E.beginMarkedContentProps:
                  if (Fe(), a) {
                    c.level++;
                    let lt = null;
                    me[1] instanceof _ && (lt = me[1].get("MCID")), w.items.push({ type: "beginMarkedContentProps", id: Number.isInteger(lt) ? `${G.idFactory.getPageObjId()}_mc${lt}` : null, tag: me[0] instanceof te ? me[0].name : null });
                  }
                  break;
                case E.endMarkedContent:
                  if (Fe(), a) {
                    if (c.level === 0) break;
                    c.level--, w.items.push({ type: "endMarkedContent" });
                  }
                  break;
              }
              if (w.items.length >= (r?.desiredSize ?? 1)) {
                Ce = true;
                break;
              }
            }
            if (Ce) {
              ge(Dd);
              return;
            }
            Fe(), Ne(), Ae();
          }, "promiseBody")).catch((ue) => {
            if (!(ue instanceof jn)) {
              if (this.options.ignoreErrors) {
                F(`getTextContent - ignoring errors during "${n.name}" task: "${ue}".`), Fe(), Ne();
                return;
              }
              throw ue;
            }
          });
        }
        async extractDataStructures(e, n) {
          const s = this.xref;
          let i;
          const a = this.readToUnicode(n.toUnicode);
          if (n.composite) {
            const u = e.get("CIDSystemInfo");
            u instanceof _ && !n.cidSystemInfo && (n.cidSystemInfo = { registry: Je(u.get("Registry")), ordering: Je(u.get("Ordering")), supplement: u.get("Supplement") });
            try {
              const d = e.get("CIDToGIDMap");
              d instanceof ze && (i = d.getBytes());
            } catch (d) {
              if (!this.options.ignoreErrors) throw d;
              F(`extractDataStructures - ignoring CIDToGIDMap data: "${d}".`);
            }
          }
          const r = [];
          let o = null, l;
          if (e.has("Encoding")) {
            if (l = e.get("Encoding"), l instanceof _) {
              if (o = l.get("BaseEncoding"), o = o instanceof te ? o.name : null, l.has("Differences")) {
                const u = l.get("Differences");
                let d = 0;
                for (const m of u) {
                  const g = s.fetchIfRef(m);
                  if (typeof g == "number") d = g;
                  else if (g instanceof te) r[d++] = g.name;
                  else throw new Q(`Invalid entry in 'Differences' array: ${g}`);
                }
              }
            } else if (l instanceof te) o = l.name;
            else {
              const u = "Encoding is not a Name nor a Dict";
              if (!this.options.ignoreErrors) throw new Q(u);
              F(u);
            }
            o !== "MacRomanEncoding" && o !== "MacExpertEncoding" && o !== "WinAnsiEncoding" && (o = null);
          }
          const f = !n.file || n.isInternalFont, c = Nf()[n.name];
          if (o && f && c && (o = null), o === "WinAnsiEncoding" && f && n.name?.charCodeAt(0) >= 183) {
            const u = n.name;
            if (["\xCB\xCE\xCC\xE5", "\xBA\xDA\xCC\xE5", "\xBF\xAC\xCC\xE5", "\xB7\xC2\xCB\xCE", "\xBF\xAC\xCC\xE5_GB2312", "\xB7\xC2\xCB\xCE_GB2312", "\xC1\xA5\xCA\xE9", "\xD0\xC2\xCB\xCE", "\xB7\xC2\xCB\xCE\xCC\xE5", "\xD0\xA1\xB1\xEA\xCB\xCE"].includes(u)) {
              o = null, n.defaultEncoding = "Adobe-GB1-UCS2", n.composite = true, n.cidEncoding = te.get("GBK-EUC-H");
              const m = await Nr.create({ encoding: n.cidEncoding, fetchBuiltInCMap: this._fetchBuiltInCMapBound, useCMap: null });
              n.cMap = m, n.vertical = n.cMap.vertical, n.cidSystemInfo = { registry: "Adobe", ordering: "GB1", supplement: 0 };
            }
          }
          if (o) n.defaultEncoding = Ur(o);
          else {
            let u = !!(n.flags & Ds.Symbolic);
            const d = !!(n.flags & Ds.Nonsymbolic);
            n.type === "TrueType" && u && d && r.length !== 0 && (n.flags &= -5, u = false), l = gi, n.type === "TrueType" && !d && (l = zr), (u || c) && (l = Ff, f && (/Symbol/i.test(n.name) ? l = Bf : /Dingbats/i.test(n.name) ? l = Rf : /Wingdings/i.test(n.name) && (l = zr))), n.defaultEncoding = l;
          }
          n.differences = r, n.baseEncodingName = o, n.hasEncoding = !!o || r.length > 0, n.dict = e, n.toUnicode = await a;
          const h = await this.buildToUnicode(n);
          return n.toUnicode = h, i && (n.cidToGidMap = this.readCidToGidMap(i, h)), n;
        }
        _simpleFontToUnicode(e, n = false) {
          Bt(!e.composite, "Must be a simple font.");
          const s = [], i = e.defaultEncoding.slice(), a = e.baseEncodingName, r = e.differences;
          for (const l in r) {
            const f = r[l];
            f !== ".notdef" && (i[l] = f);
          }
          const o = Ks();
          for (const l in i) {
            let f = i[l];
            if (f === "") continue;
            let c = o[f];
            if (c !== void 0) {
              s[l] = String.fromCharCode(c);
              continue;
            }
            let h = 0;
            switch (f[0]) {
              case "G":
                f.length === 3 && (h = parseInt(f.substring(1), 16));
                break;
              case "g":
                f.length === 5 && (h = parseInt(f.substring(1), 16));
                break;
              case "C":
              case "c":
                if (f.length >= 3 && f.length <= 4) {
                  const u = f.substring(1);
                  if (n) {
                    h = parseInt(u, 16);
                    break;
                  }
                  if (h = +u, Number.isNaN(h) && Number.isInteger(parseInt(u, 16))) return this._simpleFontToUnicode(e, true);
                }
                break;
              case "u":
                c = Va(f, o), c !== -1 && (h = c);
                break;
              default:
                switch (f) {
                  case "f_h":
                  case "f_t":
                  case "T_h":
                    s[l] = f.replaceAll("_", "");
                    continue;
                }
                break;
            }
            if (h > 0 && h <= 1114111 && Number.isInteger(h)) {
              if (a && h === +l) {
                const u = Ur(a);
                if (u && (f = u[l])) {
                  s[l] = String.fromCharCode(o[f]);
                  continue;
                }
              }
              s[l] = String.fromCodePoint(h);
            }
          }
          return s;
        }
        async buildToUnicode(e) {
          if (e.hasIncludedToUnicodeMap = e.toUnicode?.length > 0, e.hasIncludedToUnicodeMap) return !e.composite && e.hasEncoding && (e.fallbackToUnicode = this._simpleFontToUnicode(e)), e.toUnicode;
          if (!e.composite) return new $r(this._simpleFontToUnicode(e));
          if (e.composite && (e.cMap.builtInCMap && !(e.cMap instanceof Lr) || e.cidSystemInfo?.registry === "Adobe" && (e.cidSystemInfo.ordering === "GB1" || e.cidSystemInfo.ordering === "CNS1" || e.cidSystemInfo.ordering === "Japan1" || e.cidSystemInfo.ordering === "Korea1"))) {
            const { registry: n, ordering: s } = e.cidSystemInfo, i = te.get(`${n}-${s}-UCS2`), a = await Nr.create({ encoding: i, fetchBuiltInCMap: this._fetchBuiltInCMapBound, useCMap: null }), r = [], o = [];
            return e.cMap.forEach(function(l, f) {
              if (f > 65535) throw new Q("Max size of CID is 65,535");
              const c = a.lookup(f);
              if (c) {
                o.length = 0;
                for (let h = 0, u = c.length; h < u; h += 2) o.push((c.charCodeAt(h) << 8) + c.charCodeAt(h + 1));
                r[l] = String.fromCharCode(...o);
              }
            }), new $r(r);
          }
          return new ys(e.firstChar, e.lastChar);
        }
        async readToUnicode(e) {
          if (!e) return null;
          if (e instanceof te) {
            const n = await Nr.create({ encoding: e, fetchBuiltInCMap: this._fetchBuiltInCMapBound, useCMap: null });
            return n instanceof Lr ? new ys(0, 65535) : new $r(n.getMap());
          }
          if (e instanceof ze) try {
            const n = await Nr.create({ encoding: e, fetchBuiltInCMap: this._fetchBuiltInCMapBound, useCMap: null });
            if (n instanceof Lr) return new ys(0, 65535);
            const s = new Array(n.length);
            return n.forEach(function(i, a) {
              if (typeof a == "number") {
                s[i] = String.fromCodePoint(a);
                return;
              }
              a.length % 2 !== 0 && (a = "\0" + a);
              const r = [];
              for (let o = 0; o < a.length; o += 2) {
                const l = a.charCodeAt(o) << 8 | a.charCodeAt(o + 1);
                if ((l & 63488) !== 55296) {
                  r.push(l);
                  continue;
                }
                o += 2;
                const f = a.charCodeAt(o) << 8 | a.charCodeAt(o + 1);
                r.push(((l & 1023) << 10) + (f & 1023) + 65536);
              }
              s[i] = String.fromCodePoint(...r);
            }), new $r(s);
          } catch (n) {
            if (n instanceof jn) return null;
            if (this.options.ignoreErrors) return F(`readToUnicode - ignoring ToUnicode data: "${n}".`), null;
            throw n;
          }
          return null;
        }
        readCidToGidMap(e, n) {
          const s = [];
          for (let i = 0, a = e.length; i < a; i++) {
            const r = e[i++] << 8 | e[i], o = i >> 1;
            r === 0 && !n.has(o) || (s[o] = r);
          }
          return s;
        }
        extractWidths(e, n, s) {
          const i = this.xref;
          let a = [], r = 0;
          const o = [];
          let l;
          if (s.composite) {
            const h = e.get("DW");
            r = typeof h == "number" ? Math.ceil(h) : 1e3;
            const u = e.get("W");
            if (Array.isArray(u)) for (let d = 0, m = u.length; d < m; d++) {
              let g = i.fetchIfRef(u[d++]);
              if (!Number.isInteger(g)) break;
              const b = i.fetchIfRef(u[d]);
              if (Array.isArray(b)) for (const w of b) {
                const x = i.fetchIfRef(w);
                typeof x == "number" && (a[g] = x), g++;
              }
              else if (Number.isInteger(b)) {
                const w = i.fetchIfRef(u[++d]);
                if (typeof w != "number") continue;
                for (let x = g; x <= b; x++) a[x] = w;
              } else break;
            }
            if (s.vertical) {
              const d = e.getArray("DW2");
              let m = Nn(d, 2) ? d : [880, -1e3];
              if (l = [m[1], r * 0.5, m[0]], m = e.get("W2"), Array.isArray(m)) for (let g = 0, b = m.length; g < b; g++) {
                let w = i.fetchIfRef(m[g++]);
                if (!Number.isInteger(w)) break;
                const x = i.fetchIfRef(m[g]);
                if (Array.isArray(x)) for (let y = 0, j = x.length; y < j; y++) {
                  const v = [i.fetchIfRef(x[y++]), i.fetchIfRef(x[y++]), i.fetchIfRef(x[y])];
                  Nn(v, null) && (o[w] = v), w++;
                }
                else if (Number.isInteger(x)) {
                  const y = [i.fetchIfRef(m[++g]), i.fetchIfRef(m[++g]), i.fetchIfRef(m[++g])];
                  if (!Nn(y, null)) continue;
                  for (let j = w; j <= x; j++) o[j] = y;
                } else break;
              }
            }
          } else {
            const h = e.get("Widths");
            if (Array.isArray(h)) {
              let u = s.firstChar;
              for (const m of h) {
                const g = i.fetchIfRef(m);
                typeof g == "number" && (a[u] = g), u++;
              }
              const d = n.get("MissingWidth");
              r = typeof d == "number" ? d : 0;
            } else {
              const u = e.get("BaseFont");
              if (u instanceof te) {
                const d = this.getBaseFontMetrics(u.name);
                a = this.buildCharCodeToWidth(d.widths, s), r = d.defaultWidth;
              }
            }
          }
          let f = true, c = r;
          for (const h in a) {
            const u = a[h];
            if (u) {
              if (!c) {
                c = u;
                continue;
              }
              if (c !== u) {
                f = false;
                break;
              }
            }
          }
          f ? s.flags |= Ds.FixedPitch : s.flags &= -2, s.defaultWidth = r, s.widths = a, s.defaultVMetrics = l, s.vmetrics = o;
        }
        isSerifFont(e) {
          const n = e.split("-", 1)[0];
          return n in Lf() || /serif/gi.test(n);
        }
        getBaseFontMetrics(e) {
          let n = 0, s = /* @__PURE__ */ Object.create(null), i = false, a = Hi(e);
          a = Wr()[a] || a;
          const o = ow(), l = o[a] ?? o[this.isSerifFont(e) ? "Times-Roman" : "Helvetica"];
          return typeof l == "number" ? (n = l, i = true) : s = l(), { defaultWidth: n, monospace: i, widths: s };
        }
        buildCharCodeToWidth(e, n) {
          const s = /* @__PURE__ */ Object.create(null), i = n.differences, a = n.defaultEncoding;
          for (let r = 0; r < 256; r++) {
            if (r in i && e[i[r]]) {
              s[r] = e[i[r]];
              continue;
            }
            if (r in a && e[a[r]]) {
              s[r] = e[a[r]];
              continue;
            }
          }
          return s;
        }
        preEvaluateFont(e) {
          const n = e;
          let s = e.get("Subtype");
          if (!(s instanceof te)) throw new Q("invalid font Subtype");
          let i = false, a;
          if (s.name === "Type0") {
            const c = e.get("DescendantFonts");
            if (!c) throw new Q("Descendant fonts are not specified");
            if (e = Array.isArray(c) ? this.xref.fetchIfRef(c[0]) : c, !(e instanceof _)) throw new Q("Descendant font is not a dictionary.");
            if (s = e.get("Subtype"), !(s instanceof te)) throw new Q("invalid font Subtype");
            i = true;
          }
          let r = e.get("FirstChar");
          Number.isInteger(r) || (r = 0);
          let o = e.get("LastChar");
          Number.isInteger(o) || (o = i ? 65535 : 255);
          const l = e.get("FontDescriptor"), f = e.get("ToUnicode") || n.get("ToUnicode");
          if (l) {
            a = new Vx();
            const c = n.getRaw("Encoding");
            if (c instanceof te) a.update(c.name);
            else if (c instanceof ae) a.update(c.toString());
            else if (c instanceof _) {
              for (const u of c.getRawValues()) if (u instanceof te) a.update(u.name);
              else if (u instanceof ae) a.update(u.toString());
              else if (Array.isArray(u)) {
                const d = u.length, m = new Array(d);
                for (let g = 0; g < d; g++) {
                  const b = u[g];
                  b instanceof te ? m[g] = b.name : (typeof b == "number" || b instanceof ae) && (m[g] = b.toString());
                }
                a.update(m.join());
              }
            }
            if (a.update(`${r}-${o}`), f instanceof ze) {
              const u = f.stream || f, d = u.buffer ? new Uint8Array(u.buffer.buffer, 0, u.bufferLength) : new Uint8Array(u.bytes.buffer, u.start, u.end - u.start);
              a.update(d);
            } else f instanceof te && a.update(f.name);
            const h = e.get("Widths") || n.get("Widths");
            if (Array.isArray(h)) {
              const u = [];
              for (const d of h) (typeof d == "number" || d instanceof ae) && u.push(d.toString());
              a.update(u.join());
            }
            if (i) {
              a.update("compositeFont");
              const u = e.get("W") || n.get("W");
              if (Array.isArray(u)) {
                const m = [];
                for (const g of u) if (typeof g == "number" || g instanceof ae) m.push(g.toString());
                else if (Array.isArray(g)) {
                  const b = [];
                  for (const w of g) (typeof w == "number" || w instanceof ae) && b.push(w.toString());
                  m.push(`[${b.join()}]`);
                }
                a.update(m.join());
              }
              const d = e.getRaw("CIDToGIDMap") || n.getRaw("CIDToGIDMap");
              d instanceof te ? a.update(d.name) : d instanceof ae ? a.update(d.toString()) : d instanceof ze && a.update(d.peekBytes());
            }
          }
          return { descriptor: l, dict: e, baseDict: n, composite: i, type: s.name, firstChar: r, lastChar: o, toUnicode: f, hash: a ? a.hexdigest() : "" };
        }
        async translateFont({ descriptor: e, dict: n, baseDict: s, composite: i, type: a, firstChar: r, lastChar: o, toUnicode: l, cssFontInfo: f }) {
          const c = a === "Type3";
          if (!e) if (c) e = _.empty;
          else {
            let O = n.get("BaseFont");
            if (!(O instanceof te)) throw new Q("Base font is not specified");
            O = Hi(O.name);
            const N = this.getBaseFontMetrics(O), oe = O.split("-", 1)[0], je = (this.isSerifFont(oe) ? Ds.Serif : 0) | (N.monospace ? Ds.FixedPitch : 0) | (Nf()[oe] ? Ds.Symbolic : Ds.Nonsymbolic), Y = { type: a, name: O, loadedName: s.loadedName, systemFontInfo: null, widths: N.widths, defaultWidth: N.defaultWidth, isSimulatedFlags: true, flags: je, firstChar: r, lastChar: o, toUnicode: l, xHeight: 0, capHeight: 0, italicAngle: 0, isType3Font: c }, ye = n.get("Widths"), qe = Yu(O);
            let W = null;
            qe && (W = await this.fetchStandardFontData(qe), Y.isInternalFont = !!W), !Y.isInternalFont && this.options.useSystemFonts && (Y.systemFontInfo = Rd(this.systemFontCache, this.idFactory, this.options.standardFontDataUrl, O, qe, a));
            const K = await this.extractDataStructures(n, Y);
            if (Array.isArray(ye)) {
              const M = [];
              let L = r;
              for (const J of ye) {
                const ce = this.xref.fetchIfRef(J);
                typeof ce == "number" && (M[L] = ce), L++;
              }
              K.widths = M;
            } else K.widths = this.buildCharCodeToWidth(N.widths, K);
            return new md(O, W, K, this.options);
          }
          let h = e.get("FontName"), u = n.get("BaseFont");
          typeof h == "string" && (h = te.get(h)), typeof u == "string" && (u = te.get(u));
          const d = h?.name, m = u?.name;
          if (c ? d || (h = te.get(a)) : d !== m && (Ke(`The FontDescriptor's FontName is "${d}" but should be the same as the Font's BaseFont "${m}".`), d && m && (m.startsWith(d) || !Qu(d) && Qu(m)) && (h = null), h ||= u), !(h instanceof te)) throw new Q("invalid font name");
          let g, b, w, x, y;
          try {
            if (g = e.get("FontFile", "FontFile2", "FontFile3"), g) if (g instanceof ze) {
              if (g.isAsync) {
                const O = await g.asyncGetBytes();
                O && (g = new jt(O, 0, O.length, g.dict));
              }
              if (g.isEmpty) throw new Q("FontFile is empty");
            } else throw new Q("FontFile should be a stream");
          } catch (O) {
            if (!this.options.ignoreErrors) throw O;
            F(`translateFont - fetching "${h.name}" font file: "${O}".`), g = null;
          }
          let j = false, v = null, q = null;
          if (g) {
            if (g.dict) {
              const O = g.dict.get("Subtype");
              O instanceof te && (b = O.name), w = g.dict.get("Length1"), x = g.dict.get("Length2"), y = g.dict.get("Length3");
            }
          } else if (f) {
            const O = Yf(h.name);
            O && (f.fontFamily = `${f.fontFamily}-PdfJS-XFA`, f.metrics = O.metrics || null, v = O.factors || null, g = await this.fetchStandardFontData(O.name), j = !!g, s = n = kd(h.name), i = true);
          } else if (!c) {
            const O = Yu(h.name);
            O && (g = await this.fetchStandardFontData(O), j = !!g), !j && this.options.useSystemFonts && (q = Rd(this.systemFontCache, this.idFactory, this.options.standardFontDataUrl, h.name, O, a));
          }
          const A = Bi(n.getArray("FontMatrix"), na), C = di(e.getArray("FontBBox") || n.getArray("FontBBox"), c ? [0, 0, 0, 0] : void 0);
          let S = e.get("Ascent");
          typeof S != "number" && (S = void 0);
          let I = e.get("Descent");
          typeof I != "number" && (I = void 0);
          let T = e.get("XHeight");
          typeof T != "number" && (T = 0);
          let P = e.get("CapHeight");
          typeof P != "number" && (P = 0);
          let H = e.get("Flags");
          Number.isInteger(H) || (H = 0);
          let G = e.get("ItalicAngle");
          typeof G != "number" && (G = 0);
          const Z = { type: a, name: h.name, subtype: b, file: g, length1: w, length2: x, length3: y, isInternalFont: j, loadedName: s.loadedName, composite: i, fixedPitch: false, fontMatrix: A, firstChar: r, lastChar: o, toUnicode: l, bbox: C, ascent: S, descent: I, xHeight: T, capHeight: P, flags: H, italicAngle: G, isType3Font: c, cssFontInfo: f, scaleFactors: v, systemFontInfo: q };
          if (i) {
            const O = s.get("Encoding");
            O instanceof te && (Z.cidEncoding = O.name);
            const N = await Nr.create({ encoding: O, fetchBuiltInCMap: this._fetchBuiltInCMapBound, useCMap: null });
            Z.cMap = N, Z.vertical = Z.cMap.vertical;
          }
          const z = await this.extractDataStructures(n, Z);
          return this.extractWidths(n, e, z), new md(h.name, g, z, this.options);
        }
        static buildFontPaths(e, n, s, i) {
          function a(r) {
            const o = `${e.loadedName}_path_${r}`;
            try {
              if (e.renderer.hasBuiltPath(r)) return;
              const l = Fb(e.renderer.getPathJs(r));
              s.send("commonobj", [o, "FontPath", l], [l]);
            } catch (l) {
              if (i.ignoreErrors) {
                F(`buildFontPaths - ignoring ${o} glyph: "${l}".`);
                return;
              }
              throw l;
            }
          }
          p(a, "buildPath");
          for (const r of n) {
            a(r.fontChar);
            const o = r.accent;
            o?.fontChar && a(o.fontChar);
          }
        }
        static get fallbackFontDict() {
          const e = new _();
          return e.set("BaseFont", te.get("Helvetica")), e.set("Type", te.get("FallbackType")), e.set("Subtype", te.get("FallbackType")), e.set("Encoding", te.get("WinAnsiEncoding")), fe(this, "fallbackFontDict", e);
        }
      };
      nc = class {
        static {
          p(this, "TranslatedFont");
        }
        #e = false;
        #t = null;
        constructor({ loadedName: e, font: n, dict: s }) {
          this.loadedName = e, this.font = n, this.dict = s, this.type3Dependencies = n.isType3Font ? /* @__PURE__ */ new Set() : null;
        }
        send(e) {
          if (this.#e) return;
          this.#e = true;
          const n = this.font.exportData(), s = n.buffer ? [n.buffer] : null;
          e.send("commonobj", [this.loadedName, "Font", n], s);
        }
        fallback(e, n) {
          this.font.data && (this.font.disableFontFace = true, qr.buildFontPaths(this.font, this.font.glyphCacheValues, e, n));
        }
        loadType3Data(e, n, s) {
          if (this.#t) return this.#t;
          const { font: i, type3Dependencies: a } = this;
          Bt(i.isType3Font, "Must be a Type3 font.");
          const r = e.clone({ ignoreErrors: false }), o = new Rt(e.type3FontRefs);
          this.dict.objId && !o.has(this.dict.objId) && o.put(this.dict.objId), r.type3FontRefs = o;
          let l = Promise.resolve();
          const f = this.dict.get("CharProcs"), c = this.dict.get("Resources") || n, h = /* @__PURE__ */ Object.create(null), [u, d, m, g] = i.bbox, b = m - u, w = g - d, x = Math.hypot(b, w);
          for (const y of f.getKeys()) l = l.then(() => {
            const j = f.get(y), v = new kn();
            return r.getOperatorList({ stream: j, task: s, resources: c, operatorList: v }).then(() => {
              switch (v.fnArray[0]) {
                case E.setCharWidthAndBounds:
                  this.#n(v, x);
                  break;
                case E.setCharWidth:
                  x || this.#s(v);
                  break;
              }
              h[y] = v.getIR();
              for (const q of v.dependencies) a.add(q);
            }).catch(function(q) {
              F(`Type3 font resource "${y}" is not available.`);
              const A = new kn();
              h[y] = A.getIR();
            });
          });
          return this.#t = l.then(() => {
            i.charProcOperatorList = h, this._bbox && (i.isCharBBox = true, i.bbox = this._bbox);
          }), this.#t;
        }
        #n(e, n = NaN) {
          const s = pt.normalizeRect(e.argsArray[0].slice(2)), i = s[2] - s[0], a = s[3] - s[1], r = Math.hypot(i, a);
          i === 0 || a === 0 ? (e.fnArray.splice(0, 1), e.argsArray.splice(0, 1)) : (n === 0 || Math.round(r / n) >= 10) && (this._bbox ??= [1 / 0, 1 / 0, -1 / 0, -1 / 0], pt.rectBoundingBox(...s, this._bbox));
          let o = 0, l = e.length;
          for (; o < l; ) {
            switch (e.fnArray[o]) {
              case E.setCharWidthAndBounds:
                break;
              case E.setStrokeColorSpace:
              case E.setFillColorSpace:
              case E.setStrokeColor:
              case E.setStrokeColorN:
              case E.setFillColor:
              case E.setFillColorN:
              case E.setStrokeGray:
              case E.setFillGray:
              case E.setStrokeRGBColor:
              case E.setFillRGBColor:
              case E.setStrokeCMYKColor:
              case E.setFillCMYKColor:
              case E.shadingFill:
              case E.setRenderingIntent:
                e.fnArray.splice(o, 1), e.argsArray.splice(o, 1), l--;
                continue;
              case E.setGState:
                const [f] = e.argsArray[o];
                let c = 0, h = f.length;
                for (; c < h; ) {
                  const [u] = f[c];
                  switch (u) {
                    case "TR":
                    case "TR2":
                    case "HT":
                    case "BG":
                    case "BG2":
                    case "UCR":
                    case "UCR2":
                      f.splice(c, 1), h--;
                      continue;
                  }
                  c++;
                }
                break;
            }
            o++;
          }
        }
        #s(e) {
          let n = 1;
          const s = e.length;
          for (; n < s; ) {
            if (e.fnArray[n] === E.constructPath) {
              const i = e.argsArray[n][2];
              this._bbox ??= [1 / 0, 1 / 0, -1 / 0, -1 / 0], pt.rectBoundingBox(...i, this._bbox);
            }
            n++;
          }
        }
      };
      zl = class {
        static {
          p(this, "StateManager");
        }
        constructor(e = new Hd()) {
          this.state = e, this.stateStack = [];
        }
        save() {
          const e = this.state;
          this.stateStack.push(this.state), this.state = e.clone();
        }
        restore() {
          const e = this.stateStack.pop();
          e && (this.state = e);
        }
        transform(e) {
          this.state.ctm = pt.transform(this.state.ctm, e);
        }
      };
      Yx = class {
        static {
          p(this, "TextState");
        }
        ctm = new Float32Array(_s);
        fontName = null;
        fontSize = 0;
        loadedName = null;
        font = null;
        fontMatrix = na;
        textMatrix = _s.slice();
        textLineMatrix = _s.slice();
        charSpacing = 0;
        wordSpacing = 0;
        leading = 0;
        textHScale = 1;
        textRise = 0;
        setTextMatrix(e, n, s, i, a, r) {
          const o = this.textMatrix;
          o[0] = e, o[1] = n, o[2] = s, o[3] = i, o[4] = a, o[5] = r;
        }
        setTextLineMatrix(e, n, s, i, a, r) {
          const o = this.textLineMatrix;
          o[0] = e, o[1] = n, o[2] = s, o[3] = i, o[4] = a, o[5] = r;
        }
        translateTextMatrix(e, n) {
          const s = this.textMatrix;
          s[4] = s[0] * e + s[2] * n + s[4], s[5] = s[1] * e + s[3] * n + s[5];
        }
        translateTextLineMatrix(e, n) {
          const s = this.textLineMatrix;
          s[4] = s[0] * e + s[2] * n + s[4], s[5] = s[1] * e + s[3] * n + s[5];
        }
        carriageReturn() {
          this.translateTextLineMatrix(0, -this.leading), this.textMatrix = this.textLineMatrix.slice();
        }
        clone() {
          const e = Object.assign(Object.create(this), this);
          return e.textMatrix = this.textMatrix.slice(), e.textLineMatrix = this.textLineMatrix.slice(), e.fontMatrix = this.fontMatrix.slice(), e;
        }
      };
      Hd = class {
        static {
          p(this, "EvalState");
        }
        ctm = new Float32Array(_s);
        font = null;
        textRenderingMode = Oh.FILL;
        _fillColorSpace = ut.gray;
        _strokeColorSpace = ut.gray;
        patternFillColorSpace = null;
        patternStrokeColorSpace = null;
        currentPointX = 0;
        currentPointY = 0;
        pathMinMax = new Float32Array([1 / 0, 1 / 0, -1 / 0, -1 / 0]);
        pathBuffer = [];
        get fillColorSpace() {
          return this._fillColorSpace;
        }
        set fillColorSpace(e) {
          this._fillColorSpace = this.patternFillColorSpace = e;
        }
        get strokeColorSpace() {
          return this._strokeColorSpace;
        }
        set strokeColorSpace(e) {
          this._strokeColorSpace = this.patternStrokeColorSpace = e;
        }
        clone({ newPath: e = false } = {}) {
          const n = Object.create(this);
          return e && (n.pathBuffer = [], n.pathMinMax = new Float32Array([1 / 0, 1 / 0, -1 / 0, -1 / 0])), n;
        }
      };
      Ji = class _Ji {
        static {
          p(this, "EvaluatorPreprocessor");
        }
        static get opMap() {
          return fe(this, "opMap", Object.assign(/* @__PURE__ */ Object.create(null), { w: { id: E.setLineWidth, numArgs: 1, variableArgs: false }, J: { id: E.setLineCap, numArgs: 1, variableArgs: false }, j: { id: E.setLineJoin, numArgs: 1, variableArgs: false }, M: { id: E.setMiterLimit, numArgs: 1, variableArgs: false }, d: { id: E.setDash, numArgs: 2, variableArgs: false }, ri: { id: E.setRenderingIntent, numArgs: 1, variableArgs: false }, i: { id: E.setFlatness, numArgs: 1, variableArgs: false }, gs: { id: E.setGState, numArgs: 1, variableArgs: false }, q: { id: E.save, numArgs: 0, variableArgs: false }, Q: { id: E.restore, numArgs: 0, variableArgs: false }, cm: { id: E.transform, numArgs: 6, variableArgs: false }, m: { id: E.moveTo, numArgs: 2, variableArgs: false }, l: { id: E.lineTo, numArgs: 2, variableArgs: false }, c: { id: E.curveTo, numArgs: 6, variableArgs: false }, v: { id: E.curveTo2, numArgs: 4, variableArgs: false }, y: { id: E.curveTo3, numArgs: 4, variableArgs: false }, h: { id: E.closePath, numArgs: 0, variableArgs: false }, re: { id: E.rectangle, numArgs: 4, variableArgs: false }, S: { id: E.stroke, numArgs: 0, variableArgs: false }, s: { id: E.closeStroke, numArgs: 0, variableArgs: false }, f: { id: E.fill, numArgs: 0, variableArgs: false }, F: { id: E.fill, numArgs: 0, variableArgs: false }, "f*": { id: E.eoFill, numArgs: 0, variableArgs: false }, B: { id: E.fillStroke, numArgs: 0, variableArgs: false }, "B*": { id: E.eoFillStroke, numArgs: 0, variableArgs: false }, b: { id: E.closeFillStroke, numArgs: 0, variableArgs: false }, "b*": { id: E.closeEOFillStroke, numArgs: 0, variableArgs: false }, n: { id: E.endPath, numArgs: 0, variableArgs: false }, W: { id: E.clip, numArgs: 0, variableArgs: false }, "W*": { id: E.eoClip, numArgs: 0, variableArgs: false }, BT: { id: E.beginText, numArgs: 0, variableArgs: false }, ET: { id: E.endText, numArgs: 0, variableArgs: false }, Tc: { id: E.setCharSpacing, numArgs: 1, variableArgs: false }, Tw: { id: E.setWordSpacing, numArgs: 1, variableArgs: false }, Tz: { id: E.setHScale, numArgs: 1, variableArgs: false }, TL: { id: E.setLeading, numArgs: 1, variableArgs: false }, Tf: { id: E.setFont, numArgs: 2, variableArgs: false }, Tr: { id: E.setTextRenderingMode, numArgs: 1, variableArgs: false }, Ts: { id: E.setTextRise, numArgs: 1, variableArgs: false }, Td: { id: E.moveText, numArgs: 2, variableArgs: false }, TD: { id: E.setLeadingMoveText, numArgs: 2, variableArgs: false }, Tm: { id: E.setTextMatrix, numArgs: 6, variableArgs: false }, "T*": { id: E.nextLine, numArgs: 0, variableArgs: false }, Tj: { id: E.showText, numArgs: 1, variableArgs: false }, TJ: { id: E.showSpacedText, numArgs: 1, variableArgs: false }, "'": { id: E.nextLineShowText, numArgs: 1, variableArgs: false }, '"': { id: E.nextLineSetSpacingShowText, numArgs: 3, variableArgs: false }, d0: { id: E.setCharWidth, numArgs: 2, variableArgs: false }, d1: { id: E.setCharWidthAndBounds, numArgs: 6, variableArgs: false }, CS: { id: E.setStrokeColorSpace, numArgs: 1, variableArgs: false }, cs: { id: E.setFillColorSpace, numArgs: 1, variableArgs: false }, SC: { id: E.setStrokeColor, numArgs: 4, variableArgs: true }, SCN: { id: E.setStrokeColorN, numArgs: 33, variableArgs: true }, sc: { id: E.setFillColor, numArgs: 4, variableArgs: true }, scn: { id: E.setFillColorN, numArgs: 33, variableArgs: true }, G: { id: E.setStrokeGray, numArgs: 1, variableArgs: false }, g: { id: E.setFillGray, numArgs: 1, variableArgs: false }, RG: { id: E.setStrokeRGBColor, numArgs: 3, variableArgs: false }, rg: { id: E.setFillRGBColor, numArgs: 3, variableArgs: false }, K: { id: E.setStrokeCMYKColor, numArgs: 4, variableArgs: false }, k: { id: E.setFillCMYKColor, numArgs: 4, variableArgs: false }, sh: { id: E.shadingFill, numArgs: 1, variableArgs: false }, BI: { id: E.beginInlineImage, numArgs: 0, variableArgs: false }, ID: { id: E.beginImageData, numArgs: 0, variableArgs: false }, EI: { id: E.endInlineImage, numArgs: 1, variableArgs: false }, Do: { id: E.paintXObject, numArgs: 1, variableArgs: false }, MP: { id: E.markPoint, numArgs: 1, variableArgs: false }, DP: { id: E.markPointProps, numArgs: 2, variableArgs: false }, BMC: { id: E.beginMarkedContent, numArgs: 1, variableArgs: false }, BDC: { id: E.beginMarkedContentProps, numArgs: 2, variableArgs: false }, EMC: { id: E.endMarkedContent, numArgs: 0, variableArgs: false }, BX: { id: E.beginCompat, numArgs: 0, variableArgs: false }, EX: { id: E.endCompat, numArgs: 0, variableArgs: false }, BM: null, BD: null, true: null, fa: null, fal: null, fals: null, false: null, nu: null, nul: null, null: null }));
        }
        static MAX_INVALID_PATH_OPS = 10;
        constructor(e, n, s = new zl()) {
          this.parser = new Pi({ lexer: new Ps(e, _Ji.opMap), xref: n }), this.stateManager = s, this.nonProcessedArgs = [], this._isPathOp = false, this._numInvalidPathOPS = 0;
        }
        get savedStatesDepth() {
          return this.stateManager.stateStack.length;
        }
        read(e) {
          let n = e.args;
          for (; ; ) {
            const s = this.parser.getObj();
            if (s instanceof Qt) {
              const i = s.cmd, a = _Ji.opMap[i];
              if (!a) {
                F(`Unknown command "${i}".`);
                continue;
              }
              const r = a.id, o = a.numArgs;
              let l = n !== null ? n.length : 0;
              if (this._isPathOp || (this._numInvalidPathOPS = 0), this._isPathOp = r >= E.moveTo && r <= E.endPath, a.variableArgs) l > o && Ke(`Command ${i}: expected [0, ${o}] args, but received ${l} args.`);
              else {
                if (l !== o) {
                  const f = this.nonProcessedArgs;
                  for (; l > o; ) f.push(n.shift()), l--;
                  for (; l < o && f.length !== 0; ) n === null && (n = []), n.unshift(f.pop()), l++;
                }
                if (l < o) {
                  const f = `command ${i}: expected ${o} args, but received ${l} args.`;
                  if (this._isPathOp && ++this._numInvalidPathOPS > _Ji.MAX_INVALID_PATH_OPS) throw new Q(`Invalid ${f}`);
                  F(`Skipping ${f}`), n !== null && (n.length = 0);
                  continue;
                }
              }
              return this.preprocessCommand(r, n), e.fn = r, e.args = n, true;
            }
            if (s === pn) return false;
            if (s !== null && (n === null && (n = []), n.push(s), n.length > 33)) throw new Q("Too many arguments");
          }
        }
        preprocessCommand(e, n) {
          switch (e | 0) {
            case E.save:
              this.stateManager.save();
              break;
            case E.restore:
              this.stateManager.restore();
              break;
            case E.transform:
              this.stateManager.transform(n);
              break;
          }
        }
      };
      Qx = class extends Ji {
        static {
          p(this, "DefaultAppearanceEvaluator");
        }
        constructor(e) {
          super(new Rn(e));
        }
        parse() {
          const e = { fn: 0, args: [] }, n = { fontSize: 0, fontName: "", fontColor: new Uint8ClampedArray(3) };
          try {
            for (; e.args.length = 0, !!this.read(e); ) {
              if (this.savedStatesDepth !== 0) continue;
              const { fn: s, args: i } = e;
              switch (s | 0) {
                case E.setFont:
                  const [a, r] = i;
                  a instanceof te && (n.fontName = a.name), typeof r == "number" && r > 0 && (n.fontSize = r);
                  break;
                case E.setFillRGBColor:
                  ut.rgb.getRgbItem(i, 0, n.fontColor, 0);
                  break;
                case E.setFillGray:
                  ut.gray.getRgbItem(i, 0, n.fontColor, 0);
                  break;
                case E.setFillCMYKColor:
                  ut.cmyk.getRgbItem(i, 0, n.fontColor, 0);
                  break;
              }
            }
          } catch (s) {
            F(`parseDefaultAppearance - ignoring errors: "${s}".`);
          }
          return n;
        }
      };
      p(sc, "parseDefaultAppearance");
      Jx = class extends Ji {
        static {
          p(this, "AppearanceStreamEvaluator");
        }
        constructor(e, n, s, i) {
          super(e), this.stream = e, this.evaluatorOptions = n, this.xref = s, this.globalColorSpaceCache = i, this.resources = e.dict?.get("Resources");
        }
        parse() {
          const e = { fn: 0, args: [] };
          let n = { scaleFactor: 1, fontSize: 0, fontName: "", fontColor: new Uint8ClampedArray(3), fillColorSpace: ut.gray }, s = false;
          const i = [];
          try {
            for (; e.args.length = 0, !(s || !this.read(e)); ) {
              const { fn: a, args: r } = e;
              switch (a | 0) {
                case E.save:
                  i.push({ scaleFactor: n.scaleFactor, fontSize: n.fontSize, fontName: n.fontName, fontColor: n.fontColor.slice(), fillColorSpace: n.fillColorSpace });
                  break;
                case E.restore:
                  n = i.pop() || n;
                  break;
                case E.setTextMatrix:
                  n.scaleFactor *= Math.hypot(r[0], r[1]);
                  break;
                case E.setFont:
                  const [o, l] = r;
                  o instanceof te && (n.fontName = o.name), typeof l == "number" && l > 0 && (n.fontSize = l * n.scaleFactor);
                  break;
                case E.setFillColorSpace:
                  n.fillColorSpace = ut.parse({ cs: r[0], xref: this.xref, resources: this.resources, pdfFunctionFactory: this._pdfFunctionFactory, globalColorSpaceCache: this.globalColorSpaceCache, localColorSpaceCache: this._localColorSpaceCache });
                  break;
                case E.setFillColor:
                  n.fillColorSpace.getRgbItem(r, 0, n.fontColor, 0);
                  break;
                case E.setFillRGBColor:
                  ut.rgb.getRgbItem(r, 0, n.fontColor, 0);
                  break;
                case E.setFillGray:
                  ut.gray.getRgbItem(r, 0, n.fontColor, 0);
                  break;
                case E.setFillCMYKColor:
                  ut.cmyk.getRgbItem(r, 0, n.fontColor, 0);
                  break;
                case E.showText:
                case E.showSpacedText:
                case E.nextLineShowText:
                case E.nextLineSetSpacingShowText:
                  s = true;
                  break;
              }
            }
          } catch (a) {
            F(`parseAppearanceStream - ignoring errors: "${a}".`);
          }
          return this.stream.reset(), delete n.scaleFactor, delete n.fillColorSpace, n;
        }
        get _localColorSpaceCache() {
          return fe(this, "_localColorSpaceCache", new jd());
        }
        get _pdfFunctionFactory() {
          const e = new qd({ xref: this.xref, isEvalSupported: this.evaluatorOptions.isEvalSupported });
          return fe(this, "_pdfFunctionFactory", e);
        }
      };
      p(Zx, "parseAppearanceStream");
      p(Qs, "getPdfColor");
      p(e2, "createDefaultAppearance");
      Zi = class _Zi {
        static {
          p(this, "FakeUnicodeFont");
        }
        static #e = 1;
        constructor(e, n) {
          this.xref = e, this.widths = null, this.firstChar = 1 / 0, this.lastChar = -1 / 0, this.fontFamily = n;
          const s = new OffscreenCanvas(1, 1);
          this.ctxMeasure = s.getContext("2d", { willReadFrequently: true }), this.fontName = te.get(`InvalidPDFjsFont_${n}_${_Zi.#e++}`);
        }
        get fontDescriptorRef() {
          if (!_Zi._fontDescriptorRef) {
            const e = new _(this.xref);
            e.setIfName("Type", "FontDescriptor"), e.set("FontName", this.fontName), e.set("FontFamily", "MyriadPro Regular"), e.set("FontBBox", [0, 0, 0, 0]), e.setIfName("FontStretch", "Normal"), e.set("FontWeight", 400), e.set("ItalicAngle", 0), _Zi._fontDescriptorRef = this.xref.getNewPersistentRef(e);
          }
          return _Zi._fontDescriptorRef;
        }
        get descendantFontRef() {
          const e = new _(this.xref);
          e.set("BaseFont", this.fontName), e.setIfName("Type", "Font"), e.setIfName("Subtype", "CIDFontType0"), e.setIfName("CIDToGIDMap", "Identity"), e.set("FirstChar", this.firstChar), e.set("LastChar", this.lastChar), e.set("FontDescriptor", this.fontDescriptorRef), e.set("DW", 1e3);
          const n = [], s = [...this.widths].sort();
          let i = null, a = null;
          for (const [o, l] of s) {
            if (!i) {
              i = o, a = [l];
              continue;
            }
            o === i + a.length ? a.push(l) : (n.push(i, a), i = o, a = [l]);
          }
          i && n.push(i, a), e.set("W", n);
          const r = new _(this.xref);
          return r.set("Ordering", "Identity"), r.set("Registry", "Adobe"), r.set("Supplement", 0), e.set("CIDSystemInfo", r), this.xref.getNewPersistentRef(e);
        }
        get baseFontRef() {
          const e = new _(this.xref);
          return e.set("BaseFont", this.fontName), e.setIfName("Type", "Font"), e.setIfName("Subtype", "Type0"), e.setIfName("Encoding", "Identity-H"), e.set("DescendantFonts", [this.descendantFontRef]), e.setIfName("ToUnicode", "Identity-H"), this.xref.getNewPersistentRef(e);
        }
        get resources() {
          const e = new _(this.xref), n = new _(this.xref);
          return n.set(this.fontName.name, this.baseFontRef), e.set("Font", n), e;
        }
        _createContext() {
          return this.widths = /* @__PURE__ */ new Map(), this.ctxMeasure.font = `1000px ${this.fontFamily}`, this.ctxMeasure;
        }
        createFontResources(e) {
          const n = this._createContext();
          for (const s of e.split(/\r\n?|\n/)) for (const i of s.split("")) {
            const a = i.charCodeAt(0);
            if (this.widths.has(a)) continue;
            const r = n.measureText(i), o = Math.ceil(r.width);
            this.widths.set(a, o), this.firstChar = Math.min(a, this.firstChar), this.lastChar = Math.max(a, this.lastChar);
          }
          return this.resources;
        }
        static getFirstPositionInfo(e, n, s) {
          const [i, a, r, o] = e;
          let l = r - i, f = o - a;
          n % 180 !== 0 && ([l, f] = [f, l]);
          const c = hi * s, h = ll * s;
          return { coords: [0, f + h - c], bbox: [0, 0, l, f], matrix: n !== 0 ? bl(n, f, c) : void 0 };
        }
        createAppearance(e, n, s, i, a, r) {
          const o = this._createContext(), l = [];
          let f = -1 / 0;
          for (const H of e.split(/\r\n?|\n/)) {
            l.push(H);
            const G = o.measureText(H).width;
            f = Math.max(f, G);
            for (const Z of $m(H)) {
              const z = String.fromCodePoint(Z);
              let O = this.widths.get(Z);
              if (O === void 0) {
                const N = o.measureText(z);
                O = Math.ceil(N.width), this.widths.set(Z, O), this.firstChar = Math.min(Z, this.firstChar), this.lastChar = Math.max(Z, this.lastChar);
              }
            }
          }
          f *= i / 1e3;
          const [c, h, u, d] = n;
          let m = u - c, g = d - h;
          s % 180 !== 0 && ([m, g] = [g, m]);
          let b = 1;
          f > m && (b = m / f);
          let w = 1;
          const x = hi * i, y = ll * i, j = x * l.length;
          j > g && (w = g / j);
          const v = Math.min(b, w), q = i * v, A = ["q", `0 0 ${it(m)} ${it(g)} re W n`, "BT", `1 0 0 1 0 ${it(g + y)} Tm 0 Tc ${Qs(a, true)}`, `/${this.fontName.name} ${it(q)} Tf`], { resources: C } = this;
          if (r = typeof r == "number" && r >= 0 && r <= 1 ? r : 1, r !== 1) {
            A.push("/R0 gs");
            const H = new _(this.xref), G = new _(this.xref);
            G.set("ca", r), G.set("CA", r), G.setIfName("Type", "ExtGState"), H.set("R0", G), C.set("ExtGState", H);
          }
          const S = it(x);
          for (const H of l) A.push(`0 -${S} Td <${Xm(H)}> Tj`);
          A.push("ET", "Q");
          const I = A.join(`
`), T = new _(this.xref);
          if (T.setIfName("Subtype", "Form"), T.setIfName("Type", "XObject"), T.set("BBox", [0, 0, m, g]), T.set("Length", I.length), T.set("Resources", C), s) {
            const H = bl(s, m, g);
            T.set("Matrix", H);
          }
          const P = new Rn(I);
          return P.dict = T, P;
        }
      };
      t2 = ["m/d", "m/d/yy", "mm/dd/yy", "mm/yy", "d-mmm", "d-mmm-yy", "dd-mmm-yy", "yy-mm-dd", "mmm-yy", "mmmm-yy", "mmm d, yyyy", "mmmm d, yyyy", "m/d/yy h:MM tt", "m/d/yy HH:MM"];
      n2 = ["HH:MM", "h:MM tt", "HH:MM:ss", "h:MM:ss tt"];
      Od = class {
        static {
          p(this, "NameOrNumberTree");
        }
        constructor(e, n, s) {
          this.root = e, this.xref = n, this._type = s;
        }
        getAll(e = false) {
          const n = /* @__PURE__ */ new Map();
          if (!this.root) return n;
          const s = this.xref, i = new Rt();
          this.root instanceof ae && i.put(this.root);
          const a = [this.root];
          for (; a.length > 0; ) {
            const r = s.fetchIfRef(a.shift());
            if (!(r instanceof _)) continue;
            if (r.has("Kids")) {
              const l = r.get("Kids");
              if (!Array.isArray(l)) continue;
              for (const f of l) {
                if (f instanceof ae) {
                  if (i.has(f)) throw new Q(`Duplicate entry in "${this._type}" tree.`);
                  i.put(f);
                }
                a.push(f);
              }
              continue;
            }
            const o = r.get(this._type);
            if (Array.isArray(o)) for (let l = 0, f = o.length; l < f; l += 2) n.set(s.fetchIfRef(o[l]), e ? o[l + 1] : s.fetchIfRef(o[l + 1]));
          }
          return n;
        }
        getRaw(e) {
          if (!this.root) return null;
          const n = this.xref;
          let s = n.fetchIfRef(this.root), i = 0;
          const a = 10;
          for (; s.has("Kids"); ) {
            if (++i > a) return F(`Search depth limit reached for "${this._type}" tree.`), null;
            const o = s.get("Kids");
            if (!Array.isArray(o)) return null;
            let l = 0, f = o.length - 1;
            for (; l <= f; ) {
              const c = l + f >> 1, h = n.fetchIfRef(o[c]), u = h.get("Limits");
              if (e < n.fetchIfRef(u[0])) f = c - 1;
              else if (e > n.fetchIfRef(u[1])) l = c + 1;
              else {
                s = h;
                break;
              }
            }
            if (l > f) return null;
          }
          const r = s.get(this._type);
          if (Array.isArray(r)) {
            let o = 0, l = r.length - 2;
            for (; o <= l; ) {
              const f = o + l >> 1, c = f + (f & 1), h = n.fetchIfRef(r[c]);
              if (e < h) l = c - 2;
              else if (e > h) o = c + 2;
              else return r[c + 1];
            }
          }
          return null;
        }
        get(e) {
          return this.xref.fetchIfRef(this.getRaw(e));
        }
      };
      ga = class extends Od {
        static {
          p(this, "NameTree");
        }
        constructor(e, n) {
          super(e, n, "Names");
        }
      };
      oo = class extends Od {
        static {
          p(this, "NumberTree");
        }
        constructor(e, n) {
          super(e, n, "Nums");
        }
      };
      p(ic, "clearGlobalCaches");
      p(Ld, "pickPlatformItem");
      ac = class {
        static {
          p(this, "FileSpec");
        }
        #e = false;
        constructor(e, n = false) {
          e instanceof _ && (this.root = e, e.has("FS") && (this.fs = e.get("FS")), e.has("RF") && F("Related file specifications are not supported"), n || (e.has("EF") ? this.#e = true : F("Non-embedded file specifications are not supported")));
        }
        get filename() {
          const e = Ld(this.root);
          return e && typeof e == "string" ? Je(e, true).replaceAll("\\\\", "\\").replaceAll("\\/", "/").replaceAll("\\", "/") : "";
        }
        get content() {
          if (!this.#e) return null;
          const e = Ld(this.root?.get("EF"));
          return e instanceof ze ? e.getBytes() : (F("Embedded file specification points to non-existing/invalid content"), null);
        }
        get description() {
          const e = this.root?.get("Desc");
          return e && typeof e == "string" ? Je(e) : "";
        }
        get serializable() {
          const { filename: e, content: n, description: s } = this;
          return { rawFilename: e, filename: Em(e) || "unnamed", content: n, description: s };
        }
      };
      Yn = { NoError: 0, UnterminatedCdat: -2, UnterminatedXmlDeclaration: -3, UnterminatedDoctypeDeclaration: -4, UnterminatedComment: -5, MalformedElement: -6, UnterminatedElement: -9 };
      p(Ja, "isWhitespace");
      p(s2, "isWhitespaceString");
      Nd = class {
        static {
          p(this, "XMLParserBase");
        }
        _resolveEntities(e) {
          return e.replaceAll(/&([^;]+);/g, (n, s) => {
            if (s.substring(0, 2) === "#x") return String.fromCodePoint(parseInt(s.substring(2), 16));
            if (s.substring(0, 1) === "#") return String.fromCodePoint(parseInt(s.substring(1), 10));
            switch (s) {
              case "lt":
                return "<";
              case "gt":
                return ">";
              case "amp":
                return "&";
              case "quot":
                return '"';
              case "apos":
                return "'";
            }
            return this.onResolveEntity(s);
          });
        }
        _parseContent(e, n) {
          const s = [];
          let i = n;
          function a() {
            for (; i < e.length && Ja(e, i); ) ++i;
          }
          for (p(a, "skipWs"); i < e.length && !Ja(e, i) && e[i] !== ">" && e[i] !== "/"; ) ++i;
          const r = e.substring(n, i);
          for (a(); i < e.length && e[i] !== ">" && e[i] !== "/" && e[i] !== "?"; ) {
            a();
            let o = "", l = "";
            for (; i < e.length && !Ja(e, i) && e[i] !== "="; ) o += e[i], ++i;
            if (a(), e[i] !== "=") return null;
            ++i, a();
            const f = e[i];
            if (f !== '"' && f !== "'") return null;
            const c = e.indexOf(f, ++i);
            if (c < 0) return null;
            l = e.substring(i, c), s.push({ name: o, value: this._resolveEntities(l) }), i = c + 1, a();
          }
          return { name: r, attributes: s, parsed: i - n };
        }
        _parseProcessingInstruction(e, n) {
          let s = n;
          function i() {
            for (; s < e.length && Ja(e, s); ) ++s;
          }
          for (p(i, "skipWs"); s < e.length && !Ja(e, s) && e[s] !== ">" && e[s] !== "?" && e[s] !== "/"; ) ++s;
          const a = e.substring(n, s);
          i();
          const r = s;
          for (; s < e.length && (e[s] !== "?" || e[s + 1] !== ">"); ) ++s;
          const o = e.substring(r, s);
          return { name: a, value: o, parsed: s - n };
        }
        parseXml(e) {
          let n = 0;
          for (; n < e.length; ) {
            const s = e[n];
            let i = n;
            if (s === "<") {
              ++i;
              const a = e[i];
              let r;
              switch (a) {
                case "/":
                  if (++i, r = e.indexOf(">", i), r < 0) {
                    this.onError(Yn.UnterminatedElement);
                    return;
                  }
                  this.onEndElement(e.substring(i, r)), i = r + 1;
                  break;
                case "?":
                  ++i;
                  const o = this._parseProcessingInstruction(e, i);
                  if (e.substring(i + o.parsed, i + o.parsed + 2) !== "?>") {
                    this.onError(Yn.UnterminatedXmlDeclaration);
                    return;
                  }
                  this.onPi(o.name, o.value), i += o.parsed + 2;
                  break;
                case "!":
                  if (e.substring(i + 1, i + 3) === "--") {
                    if (r = e.indexOf("-->", i + 3), r < 0) {
                      this.onError(Yn.UnterminatedComment);
                      return;
                    }
                    this.onComment(e.substring(i + 3, r)), i = r + 3;
                  } else if (e.substring(i + 1, i + 8) === "[CDATA[") {
                    if (r = e.indexOf("]]>", i + 8), r < 0) {
                      this.onError(Yn.UnterminatedCdat);
                      return;
                    }
                    this.onCdata(e.substring(i + 8, r)), i = r + 3;
                  } else if (e.substring(i + 1, i + 8) === "DOCTYPE") {
                    const c = e.indexOf("[", i + 8);
                    let h = false;
                    if (r = e.indexOf(">", i + 8), r < 0) {
                      this.onError(Yn.UnterminatedDoctypeDeclaration);
                      return;
                    }
                    if (c > 0 && r > c) {
                      if (r = e.indexOf("]>", i + 8), r < 0) {
                        this.onError(Yn.UnterminatedDoctypeDeclaration);
                        return;
                      }
                      h = true;
                    }
                    const u = e.substring(i + 8, r + (h ? 1 : 0));
                    this.onDoctype(u), i = r + (h ? 2 : 1);
                  } else {
                    this.onError(Yn.MalformedElement);
                    return;
                  }
                  break;
                default:
                  const l = this._parseContent(e, i);
                  if (l === null) {
                    this.onError(Yn.MalformedElement);
                    return;
                  }
                  let f = false;
                  if (e.substring(i + l.parsed, i + l.parsed + 2) === "/>") f = true;
                  else if (e.substring(i + l.parsed, i + l.parsed + 1) !== ">") {
                    this.onError(Yn.UnterminatedElement);
                    return;
                  }
                  this.onBeginElement(l.name, l.attributes, f), i += l.parsed + (f ? 2 : 1);
                  break;
              }
            } else {
              for (; i < e.length && e[i] !== "<"; ) i++;
              const a = e.substring(n, i);
              this.onText(this._resolveEntities(a));
            }
            n = i;
          }
        }
        onResolveEntity(e) {
          return `&${e};`;
        }
        onPi(e, n) {
        }
        onComment(e) {
        }
        onCdata(e) {
        }
        onDoctype(e) {
        }
        onText(e) {
        }
        onBeginElement(e, n, s) {
        }
        onEndElement(e) {
        }
        onError(e) {
        }
      };
      lo = class {
        static {
          p(this, "SimpleDOMNode");
        }
        constructor(e, n) {
          this.nodeName = e, this.nodeValue = n, Object.defineProperty(this, "parentNode", { value: null, writable: true });
        }
        get firstChild() {
          return this.childNodes?.[0];
        }
        get nextSibling() {
          const e = this.parentNode.childNodes;
          if (!e) return;
          const n = e.indexOf(this);
          if (n !== -1) return e[n + 1];
        }
        get textContent() {
          return this.childNodes ? this.childNodes.map((e) => e.textContent).join("") : this.nodeValue || "";
        }
        get children() {
          return this.childNodes || [];
        }
        hasChildNodes() {
          return this.childNodes?.length > 0;
        }
        searchNode(e, n) {
          if (n >= e.length) return this;
          const s = e[n];
          if (s.name.startsWith("#") && n < e.length - 1) return this.searchNode(e, n + 1);
          const i = [];
          let a = this;
          for (; ; ) {
            if (s.name === a.nodeName) if (s.pos === 0) {
              const r = a.searchNode(e, n + 1);
              if (r !== null) return r;
            } else {
              if (i.length === 0) return null;
              {
                const [r] = i.pop();
                let o = 0;
                for (const l of r.childNodes) if (s.name === l.nodeName) {
                  if (o === s.pos) return l.searchNode(e, n + 1);
                  o++;
                }
                return a.searchNode(e, n + 1);
              }
            }
            if (a.childNodes?.length > 0) i.push([a, 0]), a = a.childNodes[0];
            else {
              if (i.length === 0) return null;
              for (; i.length !== 0; ) {
                const [r, o] = i.pop(), l = o + 1;
                if (l < r.childNodes.length) {
                  i.push([r, l]), a = r.childNodes[l];
                  break;
                }
              }
              if (i.length === 0) return null;
            }
          }
        }
        dump(e) {
          if (this.nodeName === "#text") {
            e.push(Ua(this.nodeValue));
            return;
          }
          if (e.push(`<${this.nodeName}`), this.attributes) for (const n of this.attributes) e.push(` ${n.name}="${Ua(n.value)}"`);
          if (this.hasChildNodes()) {
            e.push(">");
            for (const n of this.childNodes) n.dump(e);
            e.push(`</${this.nodeName}>`);
          } else this.nodeValue ? e.push(`>${Ua(this.nodeValue)}</${this.nodeName}>`) : e.push("/>");
        }
      };
      Ul = class extends Nd {
        static {
          p(this, "SimpleXMLParser");
        }
        constructor({ hasAttributes: e = false, lowerCaseName: n = false }) {
          super(), this._currentFragment = null, this._stack = null, this._errorCode = Yn.NoError, this._hasAttributes = e, this._lowerCaseName = n;
        }
        parseFromString(e) {
          if (this._currentFragment = [], this._stack = [], this._errorCode = Yn.NoError, this.parseXml(e), this._errorCode !== Yn.NoError) return;
          const [n] = this._currentFragment;
          if (n) return { documentElement: n };
        }
        onText(e) {
          if (s2(e)) return;
          const n = new lo("#text", e);
          this._currentFragment.push(n);
        }
        onCdata(e) {
          const n = new lo("#text", e);
          this._currentFragment.push(n);
        }
        onBeginElement(e, n, s) {
          this._lowerCaseName && (e = e.toLowerCase());
          const i = new lo(e);
          i.childNodes = [], this._hasAttributes && (i.attributes = n), this._currentFragment.push(i), !s && (this._stack.push(this._currentFragment), this._currentFragment = i.childNodes);
        }
        onEndElement(e) {
          this._currentFragment = this._stack.pop() || [];
          const n = this._currentFragment.at(-1);
          if (!n) return null;
          for (const s of n.childNodes) s.parentNode = n;
          return n;
        }
        onError(e) {
          this._errorCode = e;
        }
      };
      i2 = class {
        static {
          p(this, "MetadataParser");
        }
        constructor(e) {
          e = this._repair(e);
          const s = new Ul({ lowerCaseName: true }).parseFromString(e);
          this._metadataMap = /* @__PURE__ */ new Map(), this._data = e, s && this._parse(s);
        }
        _repair(e) {
          return e.replace(/^[^<]+/, "").replaceAll(/>\\376\\377([^<]+)/g, function(n, s) {
            const i = s.replaceAll(/\\([0-3])([0-7])([0-7])/g, function(r, o, l, f) {
              return String.fromCharCode(o * 64 + l * 8 + f * 1);
            }).replaceAll(/&(amp|apos|gt|lt|quot);/g, function(r, o) {
              switch (o) {
                case "amp":
                  return "&";
                case "apos":
                  return "'";
                case "gt":
                  return ">";
                case "lt":
                  return "<";
                case "quot":
                  return '"';
              }
              throw new Error(`_repair: ${o} isn't defined.`);
            }), a = [">"];
            for (let r = 0, o = i.length; r < o; r += 2) {
              const l = i.charCodeAt(r) * 256 + i.charCodeAt(r + 1);
              l >= 32 && l < 127 && l !== 60 && l !== 62 && l !== 38 ? a.push(String.fromCharCode(l)) : a.push("&#x" + (65536 + l).toString(16).substring(1) + ";");
            }
            return a.join("");
          });
        }
        _getSequence(e) {
          const n = e.nodeName;
          return n !== "rdf:bag" && n !== "rdf:seq" && n !== "rdf:alt" ? null : e.childNodes.filter((s) => s.nodeName === "rdf:li");
        }
        _parseArray(e) {
          if (!e.hasChildNodes()) return;
          const [n] = e.childNodes, s = this._getSequence(n) || [];
          this._metadataMap.set(e.nodeName, s.map((i) => i.textContent.trim()));
        }
        _parse(e) {
          let n = e.documentElement;
          if (n.nodeName !== "rdf:rdf") for (n = n.firstChild; n && n.nodeName !== "rdf:rdf"; ) n = n.nextSibling;
          if (!(!n || n.nodeName !== "rdf:rdf" || !n.hasChildNodes())) {
            for (const s of n.childNodes) if (s.nodeName === "rdf:description") for (const i of s.childNodes) {
              const a = i.nodeName;
              switch (a) {
                case "#text":
                  continue;
                case "dc:creator":
                case "dc:subject":
                  this._parseArray(i);
                  continue;
              }
              this._metadataMap.set(a, i.textContent.trim());
            }
          }
        }
        get serializable() {
          return { parsedData: this._metadataMap, rawData: this._data };
        }
      };
      zd = 40;
      cs = { PAGE_CONTENT: 1, STREAM_CONTENT: 2, OBJECT: 3, ANNOTATION: 4, ELEMENT: 5 };
      ea = class _ea {
        static {
          p(this, "StructTreeRoot");
        }
        constructor(e, n, s) {
          this.xref = e, this.dict = n, this.ref = s instanceof ae ? s : null, this.roleMap = /* @__PURE__ */ new Map(), this.structParentIds = null, this.kidRefToPosition = void 0, this.parentTree = null;
        }
        getKidPosition(e) {
          if (this.kidRefToPosition === void 0) {
            const n = this.dict.get("K");
            if (Array.isArray(n)) {
              const s = this.kidRefToPosition = /* @__PURE__ */ new Map();
              for (let i = 0, a = n.length; i < a; i++) {
                const r = n[i];
                r && s.set(r.toString(), i);
              }
            } else n instanceof _ ? this.kidRefToPosition = /* @__PURE__ */ new Map([[n.objId, 0]]) : n ? this.kidRefToPosition = null : this.kidRefToPosition = /* @__PURE__ */ new Map();
          }
          return this.kidRefToPosition ? this.kidRefToPosition.get(e) ?? NaN : -1;
        }
        init() {
          this.readRoleMap();
          const e = this.dict.get("ParentTree");
          e && (this.parentTree = new oo(e, this.xref));
        }
        #e(e, n, s) {
          if (!(e instanceof ae) || n < 0) return;
          this.structParentIds ||= new tn();
          let i = this.structParentIds.get(e);
          i || (i = [], this.structParentIds.put(e, i)), i.push([n, s]);
        }
        addAnnotationIdToPage(e, n) {
          this.#e(e, n, cs.ANNOTATION);
        }
        readRoleMap() {
          const e = this.dict.get("RoleMap");
          if (e instanceof _) for (const [n, s] of e) s instanceof te && this.roleMap.set(n, s.name);
        }
        static async canCreateStructureTree({ catalogRef: e, pdfManager: n, newAnnotationsByPage: s }) {
          if (!(e instanceof ae)) return F("Cannot save the struct tree: no catalog reference."), false;
          let i = 0, a = true;
          for (const [r, o] of s) {
            const { ref: l } = await n.getPage(r);
            if (!(l instanceof ae)) {
              F(`Cannot save the struct tree: page ${r} has no ref.`), a = true;
              break;
            }
            for (const f of o) f.accessibilityData?.type && (f.parentTreeId = i++, a = false);
          }
          if (a) {
            for (const r of s.values()) for (const o of r) delete o.parentTreeId;
            return false;
          }
          return true;
        }
        static async createStructureTree({ newAnnotationsByPage: e, xref: n, catalogRef: s, pdfManager: i, changes: a }) {
          const r = await i.ensureCatalog("cloneDict"), o = new tn();
          o.put(s, r);
          const l = n.getNewTemporaryRef();
          r.set("StructTreeRoot", l);
          const f = new _(n);
          f.set("Type", te.get("StructTreeRoot"));
          const c = n.getNewTemporaryRef();
          f.set("ParentTree", c);
          const h = [];
          f.set("K", h), o.put(l, f);
          const u = new _(n), d = [];
          u.set("Nums", d);
          const m = await this.#t({ newAnnotationsByPage: e, structTreeRootRef: l, structTreeRoot: null, kids: h, nums: d, xref: n, pdfManager: i, changes: a, cache: o });
          f.set("ParentTreeNextKey", m), o.put(c, u);
          for (const [g, b] of o.items()) a.put(g, { data: b });
        }
        async canUpdateStructTree({ pdfManager: e, newAnnotationsByPage: n }) {
          if (!this.ref) return F("Cannot update the struct tree: no root reference."), false;
          let s = this.dict.get("ParentTreeNextKey");
          if (!Number.isInteger(s) || s < 0) return F("Cannot update the struct tree: invalid next key."), false;
          const i = this.dict.get("ParentTree");
          if (!(i instanceof _)) return F("Cannot update the struct tree: ParentTree isn't a dict."), false;
          const a = i.get("Nums");
          if (!Array.isArray(a)) return F("Cannot update the struct tree: nums isn't an array."), false;
          const r = new oo(i, this.xref);
          for (const l of n.keys()) {
            const { pageDict: f } = await e.getPage(l);
            if (!f.has("StructParents")) continue;
            const c = f.get("StructParents");
            if (!Number.isInteger(c) || !Array.isArray(r.get(c))) return F(`Cannot save the struct tree: page ${l} has a wrong id.`), false;
          }
          let o = true;
          for (const [l, f] of n) {
            const { pageDict: c } = await e.getPage(l);
            _ea.#s({ elements: f, xref: this.xref, pageDict: c, numberTree: r });
            for (const h of f) h.accessibilityData?.type && (h.accessibilityData.structParent >= 0 || (h.parentTreeId = s++), o = false);
          }
          if (o) {
            for (const l of n.values()) for (const f of l) delete f.parentTreeId, delete f.structTreeParent;
            return false;
          }
          return true;
        }
        async updateStructureTree({ newAnnotationsByPage: e, pdfManager: n, changes: s }) {
          const { ref: i, xref: a } = this, r = this.dict.clone(), o = new tn();
          o.put(i, r);
          let l = r.getRaw("ParentTree"), f;
          l instanceof ae ? f = a.fetch(l) : (f = l, l = a.getNewTemporaryRef(), r.set("ParentTree", l)), f = f.clone(), o.put(l, f);
          let c = f.getRaw("Nums"), h = null;
          c instanceof ae && (h = c, c = a.fetch(h)), c = c.slice(), h || f.set("Nums", c);
          const u = await _ea.#t({ newAnnotationsByPage: e, structTreeRootRef: i, structTreeRoot: this, kids: null, nums: c, xref: a, pdfManager: n, changes: s, cache: o });
          if (u !== -1) {
            r.set("ParentTreeNextKey", u), h && o.put(h, c);
            for (const [d, m] of o.items()) s.put(d, { data: m });
          }
        }
        static async #t({ newAnnotationsByPage: e, structTreeRootRef: n, structTreeRoot: s, kids: i, nums: a, xref: r, pdfManager: o, changes: l, cache: f }) {
          const c = te.get("OBJR");
          let h = -1, u;
          for (const [d, m] of e) {
            const g = await o.getPage(d), { ref: b } = g, w = b instanceof ae;
            for (const { accessibilityData: x, ref: y, parentTreeId: j, structTreeParent: v } of m) {
              if (!x?.type) continue;
              const { structParent: q } = x;
              if (s && Number.isInteger(q) && q >= 0) {
                let I = (u ||= /* @__PURE__ */ new Map()).get(d);
                I === void 0 && (I = new Ud(s, g.pageDict).collectObjects(b), u.set(d, I));
                const T = I?.get(q);
                if (T) {
                  const P = r.fetch(T).clone();
                  _ea.#n(P, x), l.put(T, { data: P });
                  continue;
                }
              }
              h = Math.max(h, j);
              const A = r.getNewTemporaryRef(), C = new _(r);
              _ea.#n(C, x), await this.#i({ structTreeParent: v, tagDict: C, newTagRef: A, structTreeRootRef: n, fallbackKids: i, xref: r, cache: f });
              const S = new _(r);
              C.set("K", S), S.set("Type", c), w && S.set("Pg", b), S.set("Obj", y), f.put(A, C), a.push(j, A);
            }
          }
          return h + 1;
        }
        static #n(e, { type: n, title: s, lang: i, alt: a, expanded: r, actualText: o }) {
          e.set("S", te.get(n)), s && e.set("T", An(s)), i && e.set("Lang", An(i)), a && e.set("Alt", An(a)), r && e.set("E", An(r)), o && e.set("ActualText", An(o));
        }
        static #s({ elements: e, xref: n, pageDict: s, numberTree: i }) {
          const a = /* @__PURE__ */ new Map();
          for (const f of e) if (f.structTreeParentId) {
            const c = parseInt(f.structTreeParentId.split("_mc")[1], 10);
            a.getOrInsertComputed(c, hl).push(f);
          }
          const r = s.get("StructParents");
          if (!Number.isInteger(r)) return;
          const o = i.get(r), l = p((f, c, h) => {
            const u = a.get(f);
            if (u) {
              const d = c.getRaw("P"), m = n.fetchIfRef(d);
              if (d instanceof ae && m instanceof _) {
                const g = { ref: h, dict: c };
                for (const b of u) b.structTreeParent = g;
              }
              return true;
            }
            return false;
          }, "updateElement");
          for (const f of o) {
            if (!(f instanceof ae)) continue;
            const c = n.fetch(f), h = c.get("K");
            if (Number.isInteger(h)) {
              l(h, c, f);
              continue;
            }
            if (Array.isArray(h)) for (let u of h) {
              if (u = n.fetchIfRef(u), Number.isInteger(u) && l(u, c, f)) break;
              if (!(u instanceof _)) continue;
              if (!ot(u.get("Type"), "MCR")) break;
              const d = u.get("MCID");
              if (Number.isInteger(d) && l(d, c, f)) break;
            }
          }
        }
        static async #i({ structTreeParent: e, tagDict: n, newTagRef: s, structTreeRootRef: i, fallbackKids: a, xref: r, cache: o }) {
          let l = null, f;
          e ? ({ ref: l } = e, f = e.dict.getRaw("P") || i) : f = i, n.set("P", f);
          const c = r.fetchIfRef(f);
          if (!c) {
            a.push(s);
            return;
          }
          let h = o.get(f);
          h || (h = c.clone(), o.put(f, h));
          const u = h.getRaw("K");
          let d = u instanceof ae ? o.get(u) : null;
          if (!d) {
            d = r.fetchIfRef(u), d = Array.isArray(d) ? d.slice() : [u];
            const g = r.getNewTemporaryRef();
            h.set("K", g), o.put(g, d);
          }
          const m = d.indexOf(l);
          d.splice(m >= 0 ? m + 1 : d.length, 0, s);
        }
      };
      a2 = class {
        static {
          p(this, "StructElementNode");
        }
        constructor(e, n) {
          this.tree = e, this.xref = e.xref, this.dict = n, this.kids = [], this.parseKids();
        }
        get role() {
          const e = this.dict.get("S"), n = e instanceof te ? e.name : "", { root: s } = this.tree;
          return s.roleMap.get(n) ?? n;
        }
        get mathML() {
          let e = this.dict.get("AF") || [];
          Array.isArray(e) || (e = [e]);
          for (let s of e) {
            if (s = this.xref.fetchIfRef(s), !(s instanceof _) || !ot(s.get("Type"), "Filespec") || !ot(s.get("AFRelationship"), "Supplement")) continue;
            const i = s.get("EF");
            if (!(i instanceof _)) continue;
            const a = i.get("UF") || i.get("F");
            if (a instanceof ze && ot(a.dict.get("Type"), "EmbeddedFile") && ot(a.dict.get("Subtype"), "application/mathml+xml")) return Na(a.getString());
          }
          const n = this.dict.get("A");
          if (n instanceof _) {
            const s = n.get("O");
            if (ot(s, "MSFT_Office")) {
              const i = n.get("MSFT_MathML");
              return i ? Je(i) : null;
            }
          }
          return null;
        }
        parseKids() {
          let e = null;
          const n = this.dict.getRaw("Pg");
          n instanceof ae && (e = n.toString());
          const s = this.dict.get("K");
          if (Array.isArray(s)) for (const i of s) {
            const a = this.parseKid(e, this.xref.fetchIfRef(i));
            a && this.kids.push(a);
          }
          else {
            const i = this.parseKid(e, s);
            i && this.kids.push(i);
          }
        }
        parseKid(e, n) {
          if (Number.isInteger(n)) return this.tree.pageDict.objId !== e ? null : new Gl({ type: cs.PAGE_CONTENT, mcid: n, pageObjId: e });
          if (!(n instanceof _)) return null;
          const s = n.getRaw("Pg");
          s instanceof ae && (e = s.toString());
          const i = n.get("Type") instanceof te ? n.get("Type").name : null;
          if (i === "MCR") {
            if (this.tree.pageDict.objId !== e) return null;
            const a = n.getRaw("Stm");
            return new Gl({ type: cs.STREAM_CONTENT, refObjId: a instanceof ae ? a.toString() : null, pageObjId: e, mcid: n.get("MCID") });
          }
          if (i === "OBJR") {
            if (this.tree.pageDict.objId !== e) return null;
            const a = n.getRaw("Obj");
            return new Gl({ type: cs.OBJECT, refObjId: a instanceof ae ? a.toString() : null, pageObjId: e });
          }
          return new Gl({ type: cs.ELEMENT, dict: n });
        }
      };
      Gl = class {
        static {
          p(this, "StructElement");
        }
        constructor({ type: e, dict: n = null, mcid: s = null, pageObjId: i = null, refObjId: a = null }) {
          this.type = e, this.dict = n, this.mcid = s, this.pageObjId = i, this.refObjId = a, this.parentNode = null;
        }
      };
      Ud = class {
        static {
          p(this, "StructTreePage");
        }
        constructor(e, n) {
          this.root = e, this.xref = e?.xref ?? null, this.rootDict = e?.dict ?? null, this.pageDict = n, this.nodes = [];
        }
        collectObjects(e) {
          if (!this.root || !this.rootDict || !(e instanceof ae)) return null;
          const n = this.rootDict.get("ParentTree");
          if (!n) return null;
          const s = this.root.structParentIds?.get(e);
          if (!s) return null;
          const i = /* @__PURE__ */ new Map(), a = new oo(n, this.xref);
          for (const [r] of s) {
            const o = a.getRaw(r);
            o instanceof ae && i.set(r, o);
          }
          return i;
        }
        parse(e) {
          if (!this.root || !this.rootDict || !(e instanceof ae)) return;
          const { parentTree: n } = this.root;
          if (!n) return;
          const s = this.pageDict.get("StructParents"), i = this.root.structParentIds?.get(e);
          if (!Number.isInteger(s) && !i) return;
          const a = /* @__PURE__ */ new Map();
          if (Number.isInteger(s)) {
            const r = n.get(s);
            if (Array.isArray(r)) for (const o of r) o instanceof ae && this.addNode(this.xref.fetch(o), a);
          }
          if (i) for (const [r, o] of i) {
            const l = n.get(r);
            if (l) {
              const f = this.addNode(this.xref.fetchIfRef(l), a);
              f?.kids?.length === 1 && f.kids[0].type === cs.OBJECT && (f.kids[0].type = o);
            }
          }
        }
        addNode(e, n, s = 0) {
          if (s > zd) return F("StructTree MAX_DEPTH reached."), null;
          if (!(e instanceof _)) return null;
          if (n.has(e)) return n.get(e);
          const i = new a2(this, e);
          switch (n.set(e, i), i.role) {
            case "L":
            case "LBody":
            case "LI":
            case "Table":
            case "THead":
            case "TBody":
            case "TFoot":
            case "TR":
              for (const l of i.kids) l.type === cs.ELEMENT && this.addNode(l.dict, n, s - 1);
          }
          const a = e.get("P");
          if (!(a instanceof _) || ot(a.get("Type"), "StructTreeRoot")) return this.addTopLevelNode(e, i) || n.delete(e), i;
          const r = this.addNode(a, n, s + 1);
          if (!r) return i;
          let o = false;
          for (const l of r.kids) l.type === cs.ELEMENT && l.dict === e && (l.parentNode = i, o = true);
          return o || n.delete(e), i;
        }
        addTopLevelNode(e, n) {
          const s = this.root.getKidPosition(e.objId);
          return isNaN(s) ? false : (s !== -1 && (this.nodes[s] = n), true);
        }
        get serializable() {
          function e(s, i, a = 0) {
            if (a > zd) {
              F("StructTree too deep to be fully serialized.");
              return;
            }
            const r = /* @__PURE__ */ Object.create(null);
            r.role = s.role, r.children = [], i.children.push(r);
            let o = s.dict.get("Alt");
            if (typeof o != "string" && (o = s.dict.get("ActualText")), typeof o == "string" && (r.alt = Je(o)), r.role === "Formula") {
              const { mathML: c } = s;
              c && (r.mathML = c);
            }
            const l = s.dict.get("A");
            if (l instanceof _) {
              const c = di(l.getArray("BBox"), null);
              if (c) r.bbox = c;
              else {
                const h = l.get("Width"), u = l.get("Height");
                typeof h == "number" && h > 0 && typeof u == "number" && u > 0 && (r.bbox = [0, 0, h, u]);
              }
            }
            const f = s.dict.get("Lang");
            typeof f == "string" && (r.lang = Je(f));
            for (const c of s.kids) {
              const h = c.type === cs.ELEMENT ? c.parentNode : null;
              if (h) {
                e(h, r, a + 1);
                continue;
              } else c.type === cs.PAGE_CONTENT || c.type === cs.STREAM_CONTENT ? r.children.push({ type: "content", id: `p${c.pageObjId}_mc${c.mcid}` }) : c.type === cs.OBJECT ? r.children.push({ type: "object", id: c.refObjId }) : c.type === cs.ANNOTATION && r.children.push({ type: "annotation", id: `${Pm}${c.refObjId}` });
            }
          }
          p(e, "nodeToSerializable");
          const n = /* @__PURE__ */ Object.create(null);
          n.children = [], n.role = "Root";
          for (const s of this.nodes) s && e(s, n);
          return n;
        }
      };
      r2 = p((t) => t instanceof ae, "isRef");
      Wl = Dm.bind(null, r2, ot);
      p(rc, "fetchDest");
      p(Gd, "fetchRemoteDest");
      Pa = class _Pa {
        static {
          p(this, "Catalog");
        }
        #e = null;
        #t = null;
        builtInCMapCache = /* @__PURE__ */ new Map();
        fontCache = new tn();
        globalColorSpaceCache = new Bx();
        globalImageCache = new xr();
        nonBlendModesSet = new Rt();
        pageDictCache = new tn();
        pageIndexCache = new tn();
        pageKidsCountCache = new tn();
        standardFontDataCache = /* @__PURE__ */ new Map();
        systemFontCache = /* @__PURE__ */ new Map();
        constructor(e, n) {
          if (this.pdfManager = e, this.xref = n, this.#t = n.getCatalogObj(), !(this.#t instanceof _)) throw new Q("Catalog object is not a dictionary.");
          this.toplevelPagesDict;
        }
        cloneDict() {
          return this.#t.clone();
        }
        get version() {
          const e = this.#t.get("Version");
          if (e instanceof te) {
            if (Xh.test(e.name)) return fe(this, "version", e.name);
            F(`Invalid PDF catalog version: ${e.name}`);
          }
          return fe(this, "version", null);
        }
        get lang() {
          const e = this.#t.get("Lang");
          return fe(this, "lang", e && typeof e == "string" ? Je(e) : null);
        }
        get needsRendering() {
          const e = this.#t.get("NeedsRendering");
          return fe(this, "needsRendering", typeof e == "boolean" ? e : false);
        }
        get collection() {
          let e = null;
          try {
            const n = this.#t.get("Collection");
            n instanceof _ && n.size > 0 && (e = n);
          } catch (n) {
            if (n instanceof Ft) throw n;
            Ke("Cannot fetch Collection entry; assuming no collection is present.");
          }
          return fe(this, "collection", e);
        }
        get acroForm() {
          let e = null;
          try {
            const n = this.#t.get("AcroForm");
            n instanceof _ && n.size > 0 && (e = n);
          } catch (n) {
            if (n instanceof Ft) throw n;
            Ke("Cannot fetch AcroForm entry; assuming no forms are present.");
          }
          return fe(this, "acroForm", e);
        }
        get acroFormRef() {
          const e = this.#t.getRaw("AcroForm");
          return fe(this, "acroFormRef", e instanceof ae ? e : null);
        }
        get metadata() {
          const e = this.#t.getRaw("Metadata");
          if (!(e instanceof ae)) return fe(this, "metadata", null);
          let n = null;
          try {
            const s = this.xref.fetch(e, !this.xref.encrypt?.encryptMetadata);
            if (s instanceof ze && s.dict instanceof _) {
              const i = s.dict.get("Type"), a = s.dict.get("Subtype");
              if (ot(i, "Metadata") && ot(a, "XML")) {
                const r = Na(s.getString());
                r && (n = new i2(r).serializable);
              }
            }
          } catch (s) {
            if (s instanceof Ft) throw s;
            Ke(`Skipping invalid Metadata: "${s}".`);
          }
          return fe(this, "metadata", n);
        }
        get markInfo() {
          let e = null;
          try {
            e = this.#n();
          } catch (n) {
            if (n instanceof Ft) throw n;
            F("Unable to read mark info.");
          }
          return fe(this, "markInfo", e);
        }
        #n() {
          const e = this.#t.get("MarkInfo");
          if (!(e instanceof _)) return null;
          const n = { Marked: false, UserProperties: false, Suspects: false };
          for (const s in n) {
            const i = e.get(s);
            typeof i == "boolean" && (n[s] = i);
          }
          return n;
        }
        get hasStructTree() {
          return this.#t.has("StructTreeRoot");
        }
        get structTreeRoot() {
          let e = null;
          try {
            e = this.#s();
          } catch (n) {
            if (n instanceof Ft) throw n;
            F("Unable read to structTreeRoot info.");
          }
          return fe(this, "structTreeRoot", e);
        }
        #s() {
          const e = this.#t.getRaw("StructTreeRoot"), n = this.xref.fetchIfRef(e);
          if (!(n instanceof _)) return null;
          const s = new ea(this.xref, n, e);
          return s.init(), s;
        }
        get toplevelPagesDict() {
          const e = this.#t.get("Pages");
          if (!(e instanceof _)) throw new Q("Invalid top-level pages dictionary.");
          return fe(this, "toplevelPagesDict", e);
        }
        get documentOutline() {
          let e = null;
          try {
            e = this.#i();
          } catch (n) {
            if (n instanceof Ft) throw n;
            F("Unable to read document outline.");
          }
          return fe(this, "documentOutline", e);
        }
        #i(e = {}) {
          let n = this.#t.get("Outlines");
          if (!(n instanceof _) || (n = n.getRaw("First"), !(n instanceof ae))) return null;
          const s = { items: [] }, i = [{ obj: n, parent: s }], a = new Rt();
          a.put(n);
          const r = this.xref, o = new Uint8ClampedArray(3);
          for (; i.length > 0; ) {
            const l = i.shift(), f = r.fetchIfRef(l.obj);
            if (f === null) continue;
            f.has("Title") || F("Invalid outline item encountered.");
            const c = { url: null, dest: null, action: null };
            _Pa.parseDestDictionary({ destDict: f, resultObj: c, docBaseUrl: this.baseUrl, docAttachments: this.attachments });
            const h = f.get("Title"), u = f.get("F") || 0, d = f.getArray("C"), m = f.get("Count");
            let g = o;
            Nn(d, 3) && (d[0] !== 0 || d[1] !== 0 || d[2] !== 0) && (g = ut.rgb.getRgb(d, 0));
            const b = { action: c.action, attachment: c.attachment, dest: c.dest, url: c.url, unsafeUrl: c.unsafeUrl, newWindow: c.newWindow, setOCGState: c.setOCGState, title: typeof h == "string" ? Je(h) : "", color: g, count: Number.isInteger(m) ? m : void 0, bold: !!(u & 2), italic: !!(u & 1), items: [] };
            e.keepRawDict && (b.rawDict = f), l.parent.items.push(b), n = f.getRaw("First"), n instanceof ae && !a.has(n) && (i.push({ obj: n, parent: b }), a.put(n)), n = f.getRaw("Next"), n instanceof ae && !a.has(n) && (i.push({ obj: n, parent: l.parent }), a.put(n));
          }
          return s.items.length > 0 ? s.items : null;
        }
        get documentOutlineForEditor() {
          let e = null;
          try {
            e = this.#i({ keepRawDict: true });
          } catch (n) {
            if (n instanceof Ft) throw n;
            F("Unable to read document outline.");
          }
          return fe(this, "documentOutlineForEditor", e);
        }
        get permissions() {
          let e = null;
          try {
            e = this.#a();
          } catch (n) {
            if (n instanceof Ft) throw n;
            F("Unable to read permissions.");
          }
          return fe(this, "permissions", e);
        }
        #a() {
          const e = this.xref.trailer.get("Encrypt");
          if (!(e instanceof _)) return null;
          let n = e.get("P");
          if (typeof n != "number") return null;
          n += 2 ** 32;
          const s = [];
          for (const i in Hh) {
            const a = Hh[i];
            n & a && s.push(a);
          }
          return s;
        }
        get optionalContentConfig() {
          let e = null;
          try {
            const n = this.#t.get("OCProperties");
            if (!n) return fe(this, "optionalContentConfig", null);
            const s = n.get("D");
            if (!s) return fe(this, "optionalContentConfig", null);
            const i = n.get("OCGs");
            if (!Array.isArray(i)) return fe(this, "optionalContentConfig", null);
            const a = new tn();
            for (const r of i) !(r instanceof ae) || a.has(r) || a.put(r, this.#r(r));
            e = this.#o(s, a);
          } catch (n) {
            if (n instanceof Ft) throw n;
            F(`Unable to read optional content config: ${n}`);
          }
          return fe(this, "optionalContentConfig", e);
        }
        #r(e) {
          const n = this.xref.fetch(e), s = { id: e.toString(), name: null, intent: null, usage: { print: null, view: null }, rbGroups: [] }, i = n.get("Name");
          typeof i == "string" && (s.name = Je(i));
          let a = n.getArray("Intent");
          Array.isArray(a) || (a = [a]), a.every((c) => c instanceof te) && (s.intent = a.map((c) => c.name));
          const r = n.get("Usage");
          if (!(r instanceof _)) return s;
          const o = s.usage, l = r.get("Print");
          if (l instanceof _) {
            const c = l.get("PrintState");
            if (c instanceof te) switch (c.name) {
              case "ON":
              case "OFF":
                o.print = { printState: c.name };
            }
          }
          const f = r.get("View");
          if (f instanceof _) {
            const c = f.get("ViewState");
            if (c instanceof te) switch (c.name) {
              case "ON":
              case "OFF":
                o.view = { viewState: c.name };
            }
          }
          return s;
        }
        #o(e, n) {
          function s(c) {
            const h = [];
            if (Array.isArray(c)) for (const u of c) u instanceof ae && n.has(u) && h.push(u.toString());
            return h;
          }
          p(s, "parseOnOff");
          function i(c, h = 0) {
            if (!Array.isArray(c)) return null;
            const u = [];
            for (const m of c) {
              if (m instanceof ae && n.has(m)) {
                l.put(m), u.push(m.toString());
                continue;
              }
              const g = a(m, h);
              g && u.push(g);
            }
            if (h > 0) return u;
            const d = [];
            for (const [m] of n.items()) l.has(m) || d.push(m.toString());
            return d.length && u.push({ name: null, order: d }), u;
          }
          p(i, "parseOrder");
          function a(c, h) {
            if (++h > f) return F("parseNestedOrder - reached MAX_NESTED_LEVELS."), null;
            const u = o.fetchIfRef(c);
            if (!Array.isArray(u)) return null;
            const d = o.fetchIfRef(u[0]);
            if (typeof d != "string") return null;
            const m = i(u.slice(1), h);
            return m?.length ? { name: Je(d), order: m } : null;
          }
          p(a, "parseNestedOrder");
          function r(c) {
            if (Array.isArray(c)) for (const h of c) {
              const u = o.fetchIfRef(h);
              if (!Array.isArray(u) || !u.length) continue;
              const d = /* @__PURE__ */ new Set();
              for (const m of u) m instanceof ae && n.has(m) && !d.has(m.toString()) && (d.add(m.toString()), n.get(m).rbGroups.push(d));
            }
          }
          p(r, "parseRBGroups");
          const o = this.xref, l = new Rt(), f = 10;
          return r(e.get("RBGroups")), { name: typeof e.get("Name") == "string" ? Je(e.get("Name")) : null, creator: typeof e.get("Creator") == "string" ? Je(e.get("Creator")) : null, baseState: e.get("BaseState") instanceof te ? e.get("BaseState").name : null, on: s(e.get("ON")), off: s(e.get("OFF")), order: i(e.get("Order")), groups: [...n] };
        }
        setActualNumPages(e = null) {
          this.#e = e;
        }
        get hasActualNumPages() {
          return this.#e !== null;
        }
        get _pagesCount() {
          const e = this.toplevelPagesDict.get("Count");
          if (!Number.isInteger(e)) throw new Q("Page count in top-level pages dictionary is not an integer.");
          return fe(this, "_pagesCount", e);
        }
        get numPages() {
          return this.#e ?? this._pagesCount;
        }
        get destinations() {
          const e = this.#l(), n = /* @__PURE__ */ Object.create(null);
          for (const s of e) if (s instanceof ga) for (const [i, a] of s.getAll()) {
            const r = rc(a);
            r && (n[Je(i, true)] = r);
          }
          else if (s instanceof _) for (const [i, a] of s) {
            const r = rc(a);
            r && (n[Je(i, true)] ||= r);
          }
          return fe(this, "destinations", n);
        }
        getDestination(e) {
          if (this.hasOwnProperty("destinations")) return this.destinations[e] ?? null;
          const n = this.#l();
          for (const s of n) if (s instanceof ga || s instanceof _) {
            const i = rc(s.get(e));
            if (i) return i;
          }
          if (n.length) {
            const s = this.destinations[e];
            if (s) return s;
          }
          return null;
        }
        #l() {
          const e = this.#t.get("Names"), n = [];
          return e?.has("Dests") && n.push(new ga(e.getRaw("Dests"), this.xref)), this.#t.has("Dests") && n.push(this.#t.get("Dests")), n;
        }
        get rawPageLabels() {
          const e = this.#t.getRaw("PageLabels");
          return e ? new oo(e, this.xref).getAll() : null;
        }
        get pageLabels() {
          let e = null;
          try {
            e = this.#f();
          } catch (n) {
            if (n instanceof Ft) throw n;
            F("Unable to read page labels.");
          }
          return fe(this, "pageLabels", e);
        }
        #f() {
          const e = this.rawPageLabels;
          if (!e) return null;
          const n = new Array(this.numPages);
          let s = null, i = "", a = "", r = 1;
          for (let o = 0, l = this.numPages; o < l; o++) {
            const f = e.get(o);
            if (f !== void 0) {
              if (!(f instanceof _)) throw new Q("PageLabel is not a dictionary.");
              if (f.has("Type") && !ot(f.get("Type"), "PageLabel")) throw new Q("Invalid type in PageLabel dictionary.");
              if (f.has("S")) {
                const c = f.get("S");
                if (!(c instanceof te)) throw new Q("Invalid style in PageLabel dictionary.");
                s = c.name;
              } else s = null;
              if (f.has("P")) {
                const c = f.get("P");
                if (typeof c != "string") throw new Q("Invalid prefix in PageLabel dictionary.");
                i = Je(c);
              } else i = "";
              if (f.has("St")) {
                const c = f.get("St");
                if (!(Number.isInteger(c) && c >= 1)) throw new Q("Invalid start in PageLabel dictionary.");
                r = c;
              } else r = 1;
            }
            switch (s) {
              case "D":
                a = r;
                break;
              case "R":
              case "r":
                a = Um(r, s === "r");
                break;
              case "A":
              case "a":
                const c = 26, d = s === "a" ? 97 : 65, m = r - 1;
                a = String.fromCharCode(d + m % c).repeat(Math.floor(m / c) + 1);
                break;
              default:
                if (s) throw new Q(`Invalid style "${s}" in PageLabel dictionary.`);
                a = "";
            }
            n[o] = i + a, r++;
          }
          return n;
        }
        get pageLayout() {
          const e = this.#t.get("PageLayout");
          let n = "";
          if (e instanceof te) switch (e.name) {
            case "SinglePage":
            case "OneColumn":
            case "TwoColumnLeft":
            case "TwoColumnRight":
            case "TwoPageLeft":
            case "TwoPageRight":
              n = e.name;
          }
          return fe(this, "pageLayout", n);
        }
        get pageMode() {
          const e = this.#t.get("PageMode");
          let n = "UseNone";
          if (e instanceof te) switch (e.name) {
            case "UseNone":
            case "UseOutlines":
            case "UseThumbs":
            case "FullScreen":
            case "UseOC":
            case "UseAttachments":
              n = e.name;
          }
          return fe(this, "pageMode", n);
        }
        get viewerPreferences() {
          const e = this.#t.get("ViewerPreferences");
          if (!(e instanceof _)) return fe(this, "viewerPreferences", null);
          let n = null;
          for (const [s, i] of e) {
            let a;
            switch (s) {
              case "HideToolbar":
              case "HideMenubar":
              case "HideWindowUI":
              case "FitWindow":
              case "CenterWindow":
              case "DisplayDocTitle":
              case "PickTrayByPDFSize":
                typeof i == "boolean" && (a = i);
                break;
              case "NonFullScreenPageMode":
                if (i instanceof te) switch (i.name) {
                  case "UseNone":
                  case "UseOutlines":
                  case "UseThumbs":
                  case "UseOC":
                    a = i.name;
                    break;
                  default:
                    a = "UseNone";
                }
                break;
              case "Direction":
                if (i instanceof te) switch (i.name) {
                  case "L2R":
                  case "R2L":
                    a = i.name;
                    break;
                  default:
                    a = "L2R";
                }
                break;
              case "ViewArea":
              case "ViewClip":
              case "PrintArea":
              case "PrintClip":
                if (i instanceof te) switch (i.name) {
                  case "MediaBox":
                  case "CropBox":
                  case "BleedBox":
                  case "TrimBox":
                  case "ArtBox":
                    a = i.name;
                    break;
                  default:
                    a = "CropBox";
                }
                break;
              case "PrintScaling":
                if (i instanceof te) switch (i.name) {
                  case "None":
                  case "AppDefault":
                    a = i.name;
                    break;
                  default:
                    a = "AppDefault";
                }
                break;
              case "Duplex":
                if (i instanceof te) switch (i.name) {
                  case "Simplex":
                  case "DuplexFlipShortEdge":
                  case "DuplexFlipLongEdge":
                    a = i.name;
                    break;
                  default:
                    a = "None";
                }
                break;
              case "PrintPageRange":
                Array.isArray(i) && i.length % 2 === 0 && i.every((o, l, f) => Number.isInteger(o) && o > 0 && (l === 0 || o >= f[l - 1]) && o <= this.numPages) && (a = i);
                break;
              case "NumCopies":
                Number.isInteger(i) && i > 0 && (a = i);
                break;
              default:
                F(`Ignoring non-standard key in ViewerPreferences: ${s}.`);
                continue;
            }
            if (a === void 0) {
              F(`Bad value, for key "${s}", in ViewerPreferences: ${i}.`);
              continue;
            }
            n ??= /* @__PURE__ */ Object.create(null), n[s] = a;
          }
          return fe(this, "viewerPreferences", n);
        }
        get openAction() {
          const e = this.#t.get("OpenAction"), n = /* @__PURE__ */ Object.create(null);
          if (e instanceof _) {
            const s = new _(this.xref);
            s.set("A", e);
            const i = { url: null, dest: null, action: null };
            _Pa.parseDestDictionary({ destDict: s, resultObj: i }), Array.isArray(i.dest) ? n.dest = i.dest : i.action && (n.action = i.action);
          } else Wl(e) && (n.dest = e);
          return fe(this, "openAction", sf(n) > 0 ? n : null);
        }
        get attachments() {
          const e = this.#t.get("Names");
          let n = null;
          if (e instanceof _ && e.has("EmbeddedFiles")) {
            const s = new ga(e.getRaw("EmbeddedFiles"), this.xref);
            for (const [i, a] of s.getAll()) {
              const r = new ac(a);
              n ??= /* @__PURE__ */ Object.create(null), n[Je(i, true)] = r.serializable;
            }
          }
          return fe(this, "attachments", n);
        }
        get xfaImages() {
          const e = this.#t.get("Names");
          let n = null;
          if (e instanceof _ && e.has("XFAImages")) {
            const s = new ga(e.getRaw("XFAImages"), this.xref);
            for (const [i, a] of s.getAll()) a instanceof ze && (n ??= /* @__PURE__ */ new Map(), n.set(Je(i, true), a.getBytes()));
          }
          return fe(this, "xfaImages", n);
        }
        #u() {
          const e = this.#t.get("Names");
          let n = null;
          function s(a, r) {
            if (!(r instanceof _) || !ot(r.get("S"), "JavaScript")) return;
            let o = r.get("JS");
            if (o instanceof ze) o = o.getString();
            else if (typeof o != "string") return;
            o = Je(o, true).replaceAll("\0", ""), o && (n ||= /* @__PURE__ */ new Map()).set(a, o);
          }
          if (p(s, "appendIfJavaScriptDict"), e instanceof _ && e.has("JavaScript")) {
            const a = new ga(e.getRaw("JavaScript"), this.xref);
            for (const [r, o] of a.getAll()) s(Je(r, true), o);
          }
          const i = this.#t.get("OpenAction");
          return i && s("OpenAction", i), n;
        }
        get jsActions() {
          const e = this.#u();
          let n = gl(this.xref, this.#t, Am);
          if (e) {
            n ||= /* @__PURE__ */ Object.create(null);
            for (const [s, i] of e) s in n ? n[s].push(i) : n[s] = [i];
          }
          return fe(this, "jsActions", n);
        }
        async cleanup(e = false) {
          ic(), this.globalColorSpaceCache.clear(), this.globalImageCache.clear(e), this.pageKidsCountCache.clear(), this.pageIndexCache.clear(), this.pageDictCache.clear(), this.nonBlendModesSet.clear();
          for (const { dict: n } of await Promise.all(this.fontCache)) delete n.cacheKey;
          this.fontCache.clear(), this.builtInCMapCache.clear(), this.standardFontDataCache.clear(), this.systemFontCache.clear();
        }
        async getPageDict(e) {
          const n = [this.toplevelPagesDict], s = new Rt(), i = this.#t.getRaw("Pages");
          i instanceof ae && s.put(i);
          const a = this.xref, r = this.pageKidsCountCache, o = this.pageIndexCache, l = this.pageDictCache;
          let f = 0;
          for (; n.length; ) {
            const c = n.pop();
            if (c instanceof ae) {
              const m = r.get(c);
              if (m >= 0 && f + m <= e) {
                f += m;
                continue;
              }
              if (s.has(c)) throw new Q("Pages tree contains circular reference.");
              s.put(c);
              const g = await (l.get(c) || a.fetchAsync(c));
              if (g instanceof _) {
                let b = g.getRaw("Type");
                if (b instanceof ae && (b = await a.fetchAsync(b)), ot(b, "Page") || !g.has("Kids")) {
                  if (r.has(c) || r.put(c, 1), o.has(c) || o.put(c, f), f === e) return [g, c];
                  f++;
                  continue;
                }
              }
              n.push(g);
              continue;
            }
            if (!(c instanceof _)) throw new Q("Page dictionary kid reference points to wrong type of object.");
            const { objId: h } = c;
            let u = c.getRaw("Count");
            if (u instanceof ae && (u = await a.fetchAsync(u)), Number.isInteger(u) && u >= 0 && (h && !r.has(h) && r.put(h, u), f + u <= e)) {
              f += u;
              continue;
            }
            let d = c.getRaw("Kids");
            if (d instanceof ae && (d = await a.fetchAsync(d)), !Array.isArray(d)) {
              let m = c.getRaw("Type");
              if (m instanceof ae && (m = await a.fetchAsync(m)), ot(m, "Page") || !c.has("Kids")) {
                if (f === e) return [c, null];
                f++;
                continue;
              }
              throw new Q("Page dictionary kids object is not an array.");
            }
            for (let m = d.length - 1; m >= 0; m--) {
              const g = d[m];
              n.push(g), c === this.toplevelPagesDict && g instanceof ae && !l.has(g) && l.put(g, a.fetchAsync(g));
            }
          }
          throw new Error(`Page index ${e} not found.`);
        }
        async getAllPageDicts(e = false) {
          const { ignoreErrors: n } = this.pdfManager.evaluatorOptions, s = [{ currentNode: this.toplevelPagesDict, posInKids: 0 }], i = new Rt(), a = this.#t.getRaw("Pages");
          a instanceof ae && i.put(a);
          const r = /* @__PURE__ */ new Map(), o = this.xref, l = this.pageIndexCache;
          let f = 0;
          function c(u, d) {
            d && !l.has(d) && l.put(d, f), r.set(f++, [u, d]);
          }
          p(c, "addPageDict");
          function h(u) {
            if (u instanceof Fi && !e) throw u;
            e && n && f === 0 && (F(`getAllPageDicts - Skipping invalid first page: "${u}".`), u = _.empty), r.set(f++, [u, null]);
          }
          for (p(h, "addPageError"); s.length > 0; ) {
            const u = s.at(-1), { currentNode: d, posInKids: m } = u;
            let g = d.getRaw("Kids");
            if (g instanceof ae) try {
              g = await o.fetchAsync(g);
            } catch (y) {
              h(y);
              break;
            }
            if (!Array.isArray(g)) {
              h(new Q("Page dictionary kids object is not an array."));
              break;
            }
            if (m >= g.length) {
              s.pop();
              continue;
            }
            const b = g[m];
            let w;
            if (b instanceof ae) {
              if (i.has(b)) {
                h(new Q("Pages tree contains circular reference."));
                break;
              }
              i.put(b);
              try {
                w = await o.fetchAsync(b);
              } catch (y) {
                h(y);
                break;
              }
            } else w = b;
            if (!(w instanceof _)) {
              h(new Q("Page dictionary kid reference points to wrong type of object."));
              break;
            }
            let x = w.getRaw("Type");
            if (x instanceof ae) try {
              x = await o.fetchAsync(x);
            } catch (y) {
              h(y);
              break;
            }
            ot(x, "Page") || !w.has("Kids") ? c(w, b instanceof ae ? b : null) : s.push({ currentNode: w, posInKids: 0 }), u.posInKids++;
          }
          return r;
        }
        getPageIndex(e) {
          const n = this.pageIndexCache.get(e);
          if (n !== void 0) return Promise.resolve(n);
          const s = this.xref;
          function i(o) {
            let l = 0, f;
            return s.fetchAsync(o).then(function(c) {
              if (dl(o, e) && !Kh(c, "Page") && !(c instanceof _ && !c.has("Type") && c.has("Contents"))) throw new Q("The reference does not point to a /Page dictionary.");
              if (!c) return null;
              if (!(c instanceof _)) throw new Q("Node must be a dictionary.");
              return f = c.getRaw("Parent"), c.getAsync("Parent");
            }).then(function(c) {
              if (!c) return null;
              if (!(c instanceof _)) throw new Q("Parent must be a dictionary.");
              return c.getAsync("Kids");
            }).then(function(c) {
              if (!c) return null;
              const h = [];
              let u = false;
              for (const d of c) {
                if (!(d instanceof ae)) throw new Q("Kid must be a reference.");
                if (dl(d, o)) {
                  u = true;
                  break;
                }
                h.push(s.fetchAsync(d).then(function(m) {
                  if (!(m instanceof _)) throw new Q("Kid node must be a dictionary.");
                  m.has("Count") ? l += m.get("Count") : l++;
                }));
              }
              if (!u) throw new Q("Kid reference not found in parent's kids.");
              return Promise.all(h).then(() => [l, f]);
            });
          }
          p(i, "pagesBeforeRef");
          let a = 0;
          const r = p((o) => i(o).then((l) => {
            if (!l) return this.pageIndexCache.put(e, a), a;
            const [f, c] = l;
            return a += f, r(c);
          }), "next");
          return r(e);
        }
        get baseUrl() {
          const e = this.#t.get("URI");
          if (e instanceof _) {
            const n = e.get("Base");
            if (typeof n == "string") {
              const s = cl(n, null, { tryConvertEncoding: true });
              if (s) return fe(this, "baseUrl", s.href);
            }
          }
          return fe(this, "baseUrl", this.pdfManager.docBaseUrl);
        }
        static #c(e, n) {
          const s = e.fetchIfRef(n);
          if (!(s instanceof _)) return null;
          let i = null;
          const a = s.getRaw("Pg");
          if (a instanceof ae && (i = a), !i) {
            const f = [s];
            for (; f.length > 0 && !i; ) {
              const h = f.shift().get("K");
              let u;
              if (Array.isArray(h)) u = h;
              else if (h) u = [h];
              else continue;
              for (const d of u) {
                const m = e.fetchIfRef(d);
                if (!(m instanceof _)) continue;
                const g = m.getRaw("Pg");
                if (g instanceof ae) {
                  i = g;
                  break;
                }
                f.push(m);
              }
            }
          }
          if (!i) {
            let c = s;
            for (let h = 0; h < 40; h++) {
              const u = c.getRaw("P");
              if (!(u instanceof ae)) break;
              const d = e.fetch(u);
              if (!(d instanceof _) || ot(d.get("Type"), "StructTreeRoot")) break;
              const m = d.getRaw("Pg");
              if (m instanceof ae) {
                i = m;
                break;
              }
              c = d;
            }
          }
          if (!i) return null;
          let r = null, o = null;
          const l = s.get("A");
          if (l instanceof _) {
            const f = pl(l.getArray("BBox"), null);
            f && (r = f[0], o = f[3]);
          }
          return [i, { name: "XYZ" }, r, o, null];
        }
        static parseDestDictionary({ destDict: e, resultObj: n, docBaseUrl: s = null, docAttachments: i = null }) {
          if (!(e instanceof _)) {
            F("parseDestDictionary: `destDict` must be a dictionary.");
            return;
          }
          let a = e.get("A"), r, o;
          if (a instanceof _ || (e.has("Dest") ? a = e.get("Dest") : (a = e.get("AA"), a instanceof _ && (a.has("D") ? a = a.get("D") : a.has("U") && (a = a.get("U"))))), a instanceof _) {
            const l = a.get("S");
            if (!(l instanceof te)) {
              F("parseDestDictionary: Invalid type in Action dictionary.");
              return;
            }
            const f = l.name;
            switch (f) {
              case "ResetForm":
                const c = a.get("Flags"), h = ((typeof c == "number" ? c : 0) & 1) === 0, u = [], d = [];
                for (const I of a.get("Fields") || []) I instanceof ae ? d.push(I.toString()) : typeof I == "string" && u.push(Je(I));
                n.resetForm = { fields: u, refs: d, include: h };
                break;
              case "URI":
                r = a.get("URI"), r instanceof te && (r = "/" + r.name);
                break;
              case "GoTo":
                o = a.get("D");
                break;
              case "Launch":
              case "GoToR":
                const m = a.get("F");
                if (m instanceof _) ({ rawFilename: r } = new ac(m, true).serializable);
                else if (typeof m == "string") r = m;
                else break;
                const g = Gd(a);
                g && (r = r.split("#", 1)[0] + "#" + g);
                const b = a.get("NewWindow");
                typeof b == "boolean" && (n.newWindow = b);
                break;
              case "GoToE":
                const w = a.get("T");
                let x;
                if (i && w instanceof _) {
                  const I = w.get("R"), T = w.get("N");
                  ot(I, "C") && typeof T == "string" && (x = i[Je(T, true)]);
                }
                if (x) {
                  n.attachment = x;
                  const I = Gd(a);
                  I && (n.attachmentDest = I);
                } else F('parseDestDictionary - unimplemented "GoToE" action.');
                break;
              case "Named":
                const y = a.get("N");
                y instanceof te && (n.action = y.name);
                break;
              case "SetOCGState":
                const j = a.get("State"), v = a.get("PreserveRB");
                if (!Array.isArray(j) || j.length === 0) break;
                const q = [];
                for (const I of j) if (I instanceof te) switch (I.name) {
                  case "ON":
                  case "OFF":
                  case "Toggle":
                    q.push(I.name);
                    break;
                }
                else I instanceof ae && q.push(I.toString());
                if (q.length !== j.length) break;
                n.setOCGState = { state: q, preserveRB: typeof v == "boolean" ? v : true };
                break;
              case "JavaScript":
                const A = a.get("JS");
                let C;
                A instanceof ze ? C = A.getString() : typeof A == "string" && (C = A);
                const S = C && Zh(Je(C, true));
                if (S) {
                  r = S.url, n.newWindow = S.newWindow;
                  break;
                }
              default:
                if (f === "JavaScript" || f === "SubmitForm") break;
                F(`parseDestDictionary - unsupported action: "${f}".`);
                break;
            }
          } else e.has("Dest") && (o = e.get("Dest"));
          if (typeof r == "string") {
            const l = cl(r, s, { addDefaultProtocol: true, tryConvertEncoding: true });
            l && (n.url = l.href), n.unsafeUrl = r;
          }
          if (o && (o instanceof te && (o = o.name), typeof o == "string" ? n.dest = Je(o, true) : Wl(o) && (n.dest = o)), !n.dest && !n.url && !n.action && !n.attachment && !n.setOCGState && !n.resetForm) {
            const l = e.getRaw("SE");
            if (l instanceof ae) try {
              const f = _Pa.#c(e.xref, l);
              f && (n.dest = f);
            } catch (f) {
              if (f instanceof Ft) throw f;
              Ke("SE parsing failed.");
            }
          }
        }
      };
      p(o2, "mayHaveChildren");
      p(l2, "addChildren");
      kr = class _kr {
        static {
          p(this, "ObjectLoader");
        }
        refSet = new Rt();
        constructor(e, n, s) {
          this.dict = e, this.keys = n, this.xref = s;
        }
        async load() {
          const { keys: e, dict: n } = this, s = [];
          for (const i of e) {
            const a = n.getRaw(i);
            a !== void 0 && s.push(a);
          }
          await this.#e(s), this.refSet = null;
        }
        async #e(e) {
          const n = [], s = [];
          for (; e.length; ) {
            let i = e.pop();
            if (i instanceof ae) {
              if (this.refSet.has(i)) continue;
              try {
                this.refSet.put(i), i = this.xref.fetch(i);
              } catch (a) {
                if (!(a instanceof Ft)) {
                  F(`ObjectLoader.#walk - requesting all data: "${a}".`), await this.xref.stream.manager.requestAllChunks();
                  return;
                }
                n.push(i), s.push({ begin: a.begin, end: a.end });
              }
            }
            if (i instanceof ze) {
              const a = i.getBaseStreams();
              if (a) {
                let r = false;
                for (const o of a) o.isDataLoaded || (r = true, s.push({ begin: o.start, end: o.end }));
                r && n.push(i);
              }
            }
            l2(i, e);
          }
          if (s.length) {
            await this.xref.stream.manager.requestRanges(s);
            for (const i of n) i instanceof ae && this.refSet.remove(i);
            await this.#e(n);
          }
        }
        static async load(e, n, s) {
          if (s.stream.isDataLoaded) return;
          await new _kr(e, n, s).load();
        }
      };
      $l = /* @__PURE__ */ Symbol();
      ba = /* @__PURE__ */ Symbol();
      Mt = /* @__PURE__ */ Symbol();
      Ni = /* @__PURE__ */ Symbol();
      As = /* @__PURE__ */ Symbol();
      Za = /* @__PURE__ */ Symbol();
      Vl = /* @__PURE__ */ Symbol();
      Ms = /* @__PURE__ */ Symbol();
      Js = /* @__PURE__ */ Symbol();
      ee = /* @__PURE__ */ Symbol("content");
      Ss = /* @__PURE__ */ Symbol("data");
      er = /* @__PURE__ */ Symbol();
      V = /* @__PURE__ */ Symbol("extra");
      vt = /* @__PURE__ */ Symbol();
      fo = /* @__PURE__ */ Symbol();
      oc = /* @__PURE__ */ Symbol();
      Wd = /* @__PURE__ */ Symbol();
      wa = /* @__PURE__ */ Symbol();
      Kl = /* @__PURE__ */ Symbol();
      co = /* @__PURE__ */ Symbol();
      ho = /* @__PURE__ */ Symbol();
      lc = /* @__PURE__ */ Symbol();
      Tn = /* @__PURE__ */ Symbol();
      uo = /* @__PURE__ */ Symbol();
      gn = /* @__PURE__ */ Symbol();
      tr = /* @__PURE__ */ Symbol();
      wi = /* @__PURE__ */ Symbol();
      Wt = /* @__PURE__ */ Symbol();
      Ue = /* @__PURE__ */ Symbol();
      $t = /* @__PURE__ */ Symbol();
      qt = /* @__PURE__ */ Symbol();
      po = /* @__PURE__ */ Symbol();
      nr = /* @__PURE__ */ Symbol();
      fc = /* @__PURE__ */ Symbol();
      Xl = /* @__PURE__ */ Symbol();
      cc = /* @__PURE__ */ Symbol();
      xa = /* @__PURE__ */ Symbol();
      sr = /* @__PURE__ */ Symbol();
      zi = /* @__PURE__ */ Symbol();
      mo = /* @__PURE__ */ Symbol();
      xi = /* @__PURE__ */ Symbol();
      ki = /* @__PURE__ */ Symbol();
      go = /* @__PURE__ */ Symbol();
      bo = /* @__PURE__ */ Symbol();
      f2 = /* @__PURE__ */ Symbol();
      Vt = /* @__PURE__ */ Symbol("namespaceId");
      dt = /* @__PURE__ */ Symbol("nodeName");
      ka = /* @__PURE__ */ Symbol();
      Zs = /* @__PURE__ */ Symbol();
      hc = /* @__PURE__ */ Symbol();
      yi = /* @__PURE__ */ Symbol();
      ei = /* @__PURE__ */ Symbol();
      Qn = /* @__PURE__ */ Symbol();
      ir = /* @__PURE__ */ Symbol();
      Ui = /* @__PURE__ */ Symbol();
      $d = /* @__PURE__ */ Symbol("root");
      wo = /* @__PURE__ */ Symbol();
      ji = /* @__PURE__ */ Symbol();
      uc = /* @__PURE__ */ Symbol();
      Vd = /* @__PURE__ */ Symbol();
      Jn = /* @__PURE__ */ Symbol();
      Hs = /* @__PURE__ */ Symbol();
      nn = /* @__PURE__ */ Symbol();
      Kd = /* @__PURE__ */ Symbol();
      Pe = /* @__PURE__ */ Symbol();
      xo = /* @__PURE__ */ Symbol();
      ft = /* @__PURE__ */ Symbol();
      xt = /* @__PURE__ */ Symbol("uid");
      Os = /* @__PURE__ */ Symbol();
      Kt = { config: { id: 0, check: p((t) => t.startsWith("http://www.xfa.org/schema/xci/"), "check") }, connectionSet: { id: 1, check: p((t) => t.startsWith("http://www.xfa.org/schema/xfa-connection-set/"), "check") }, datasets: { id: 2, check: p((t) => t.startsWith("http://www.xfa.org/schema/xfa-data/"), "check") }, form: { id: 3, check: p((t) => t.startsWith("http://www.xfa.org/schema/xfa-form/"), "check") }, localeSet: { id: 4, check: p((t) => t.startsWith("http://www.xfa.org/schema/xfa-locale-set/"), "check") }, pdf: { id: 5, check: p((t) => t === "http://ns.adobe.com/xdp/pdf/", "check") }, signature: { id: 6, check: p((t) => t === "http://www.w3.org/2000/09/xmldsig#", "check") }, sourceSet: { id: 7, check: p((t) => t.startsWith("http://www.xfa.org/schema/xfa-source-set/"), "check") }, stylesheet: { id: 8, check: p((t) => t === "http://www.w3.org/1999/XSL/Transform", "check") }, template: { id: 9, check: p((t) => t.startsWith("http://www.xfa.org/schema/xfa-template/"), "check") }, xdc: { id: 10, check: p((t) => t.startsWith("http://www.xfa.org/schema/xdc/"), "check") }, xdp: { id: 11, check: p((t) => t === "http://ns.adobe.com/xdp/", "check") }, xfdf: { id: 12, check: p((t) => t === "http://ns.adobe.com/xfdf/", "check") }, xhtml: { id: 13, check: p((t) => t === "http://www.w3.org/1999/xhtml", "check") }, xmpmeta: { id: 14, check: p((t) => t === "http://ns.adobe.com/xmpmeta/", "check") } };
      c2 = { pt: p((t) => t, "pt"), cm: p((t) => t / 2.54 * 72, "cm"), mm: p((t) => t / (10 * 2.54) * 72, "mm"), in: p((t) => t * 72, "in"), px: p((t) => t, "px") };
      h2 = /([+-]?\d+\.?\d*)(.*)/;
      p(Yl, "stripQuotes");
      p(He, "getInteger");
      p(Ql, "getFloat");
      p(Jl, "getKeyword");
      p(ne, "getStringOption");
      p(ve, "getMeasurement");
      p(Xd, "getRatio");
      p(Ls, "getRelevant");
      p(u2, "getColor");
      p(d2, "getBBox");
      Ee = class _Ee {
        static {
          p(this, "HTMLResult");
        }
        static get FAILURE() {
          return fe(this, "FAILURE", new _Ee(false, null, null, null));
        }
        static get EMPTY() {
          return fe(this, "EMPTY", new _Ee(true, null, null, null));
        }
        constructor(e, n, s, i) {
          this.success = e, this.html = n, this.bbox = s, this.breakNode = i;
        }
        isBreak() {
          return !!this.breakNode;
        }
        static breakNode(e) {
          return new _Ee(false, null, null, e);
        }
        static success(e, n = null) {
          return new _Ee(true, e, n, null);
        }
      };
      p2 = class {
        static {
          p(this, "FontFinder");
        }
        constructor(e) {
          this.fonts = /* @__PURE__ */ new Map(), this.cache = /* @__PURE__ */ new Map(), this.warned = /* @__PURE__ */ new Set(), this.defaultFont = null, this.add(e);
        }
        add(e, n = null) {
          for (const i of e) this.addPdfFont(i);
          for (const i of this.fonts.values()) i.regular || (i.regular = i.italic || i.bold || i.bolditalic);
          if (!n || n.size === 0) return;
          const s = this.fonts.get("PdfJS-Fallback-PdfJS-XFA");
          for (const i of n) this.fonts.set(i, s);
        }
        addPdfFont(e) {
          const n = e.cssFontInfo, s = n.fontFamily, i = this.fonts.getOrInsertComputed(s, Hm);
          this.defaultFont ??= i;
          let a = "";
          const r = parseFloat(n.fontWeight);
          parseFloat(n.italicAngle) !== 0 ? a = r >= 700 ? "bolditalic" : "italic" : r >= 700 && (a = "bold"), a || ((e.name.includes("Bold") || e.psName?.includes("Bold")) && (a = "bold"), (e.name.includes("Italic") || e.name.endsWith("It") || e.psName?.includes("Italic") || e.psName?.endsWith("It")) && (a += "italic")), a || (a = "regular"), i[a] = e;
        }
        getDefault() {
          return this.defaultFont;
        }
        find(e, n = true) {
          let s = this.fonts.get(e) || this.cache.get(e);
          if (s) return s;
          const i = /,|-|_| |bolditalic|bold|italic|regular|it/gi;
          let a = e.replaceAll(i, "");
          if (s = this.fonts.get(a), s) return this.cache.set(e, s), s;
          a = a.toLowerCase();
          const r = [];
          for (const [o, l] of this.fonts) o.replaceAll(i, "").toLowerCase().startsWith(a) && r.push(l);
          if (r.length === 0) for (const o of this.fonts.values()) o.regular.name?.replaceAll(i, "").toLowerCase().startsWith(a) && r.push(o);
          if (r.length === 0) {
            a = a.replaceAll(/psmt|mt/gi, "");
            for (const [o, l] of this.fonts) o.replaceAll(i, "").toLowerCase().startsWith(a) && r.push(l);
          }
          if (r.length === 0) for (const o of this.fonts.values()) o.regular.name?.replaceAll(i, "").toLowerCase().startsWith(a) && r.push(o);
          return r.length >= 1 ? (r.length !== 1 && n && F(`XFA - Too many choices to guess the correct font: ${e}`), this.cache.set(e, r[0]), r[0]) : (n && !this.warned.has(e) && (this.warned.add(e), F(`XFA - Cannot find the font: ${e}`)), null);
        }
      };
      p(dc, "selectFont");
      p(m2, "fonts_getMetrics");
      g2 = 1.02;
      Yd = class {
        static {
          p(this, "FontInfo");
        }
        constructor(e, n, s, i) {
          if (this.lineHeight = s, this.paraMargin = n || { top: 0, bottom: 0, left: 0, right: 0 }, !e) {
            [this.pdfFont, this.xfaFont] = this.defaultFont(i);
            return;
          }
          this.xfaFont = { typeface: e.typeface, posture: e.posture, weight: e.weight, size: e.size, letterSpacing: e.letterSpacing };
          const a = i.find(e.typeface);
          if (!a) {
            [this.pdfFont, this.xfaFont] = this.defaultFont(i);
            return;
          }
          this.pdfFont = dc(e, a), this.pdfFont || ([this.pdfFont, this.xfaFont] = this.defaultFont(i));
        }
        defaultFont(e) {
          const n = e.find("Helvetica", false) || e.find("Myriad Pro", false) || e.find("Arial", false) || e.getDefault();
          if (n?.regular) {
            const i = n.regular, r = { typeface: i.cssFontInfo.fontFamily, posture: "normal", weight: "normal", size: 10, letterSpacing: 0 };
            return [i, r];
          }
          return [null, { typeface: "Courier", posture: "normal", weight: "normal", size: 10, letterSpacing: 0 }];
        }
      };
      b2 = class {
        static {
          p(this, "FontSelector");
        }
        constructor(e, n, s, i) {
          this.fontFinder = i, this.stack = [new Yd(e, n, s, i)];
        }
        pushData(e, n, s) {
          const i = this.stack.at(-1);
          for (const r of ["typeface", "posture", "weight", "size", "letterSpacing"]) e[r] ||= i.xfaFont[r];
          for (const r of ["top", "bottom", "left", "right"]) isNaN(n[r]) && (n[r] = i.paraMargin[r]);
          const a = new Yd(e, n, s || i.lineHeight, this.fontFinder);
          a.pdfFont ||= i.pdfFont, this.stack.push(a);
        }
        popFont() {
          this.stack.pop();
        }
        topFont() {
          return this.stack.at(-1);
        }
      };
      w2 = class {
        static {
          p(this, "TextMeasure");
        }
        constructor(e, n, s, i) {
          this.glyphs = [], this.fontSelector = new b2(e, n, s, i), this.extraHeight = 0;
        }
        pushData(e, n, s) {
          this.fontSelector.pushData(e, n, s);
        }
        popFont(e) {
          return this.fontSelector.popFont();
        }
        addPara() {
          const e = this.fontSelector.topFont();
          this.extraHeight += e.paraMargin.top + e.paraMargin.bottom;
        }
        addString(e) {
          if (!e) return;
          const n = this.fontSelector.topFont(), s = n.xfaFont.size;
          if (n.pdfFont) {
            const i = n.xfaFont.letterSpacing, a = n.pdfFont, r = a.lineHeight || 1.2, o = n.lineHeight || Math.max(1.2, r) * s, l = a.lineGap === void 0 ? 0.2 : a.lineGap, f = r - l, c = Math.max(1, f) * s, h = s / 1e3, u = a.defaultWidth || a.charsToGlyphs(" ")[0].width;
            for (const d of e.split(/[\u2029\n]/)) {
              const m = a.encodeString(d).join(""), g = a.charsToGlyphs(m);
              for (const b of g) {
                const w = b.width || u;
                this.glyphs.push([w * h + i, o, c, b.unicode, false]);
              }
              this.glyphs.push([0, 0, 0, `
`, true]);
            }
            this.glyphs.pop();
            return;
          }
          for (const i of e.split(/[\u2029\n]/)) {
            for (const a of i.split("")) this.glyphs.push([s, 1.2 * s, s, a, false]);
            this.glyphs.push([0, 0, 0, `
`, true]);
          }
          this.glyphs.pop();
        }
        compute(e) {
          let n = -1, s = 0, i = 0, a = 0, r = 0, o = 0, l = false, f = true;
          for (let c = 0, h = this.glyphs.length; c < h; c++) {
            const [u, d, m, g, b] = this.glyphs[c], w = g === " ", x = f ? m : d;
            if (b) {
              i = Math.max(i, r), r = 0, a += o, o = x, n = -1, s = 0, f = false;
              continue;
            }
            if (w) {
              r + u > e ? (i = Math.max(i, r), r = 0, a += o, o = x, n = -1, s = 0, l = true, f = false) : (o = Math.max(x, o), s = r, r += u, n = c);
              continue;
            }
            if (r + u > e) {
              a += o, o = x, n !== -1 ? (c = n, i = Math.max(i, s), r = 0, n = -1, s = 0) : (i = Math.max(i, r), r = u), l = true, f = false;
              continue;
            }
            r += u, o = Math.max(x, o);
          }
          return i = Math.max(i, r), a += o + this.extraHeight, { width: g2 * i, height: a, isBroken: l };
        }
      };
      Qd = /^[^.[]+/;
      x2 = /^[^\]]+/;
      hs = { dot: 0, dotDot: 1, dotHash: 2, dotBracket: 3, dotParen: 4 };
      Jd = /* @__PURE__ */ new Map([["$data", (t, e) => t.datasets ? t.datasets.data : t], ["$record", (t, e) => (t.datasets ? t.datasets.data : t)[gn]()[0]], ["$template", (t, e) => t.template], ["$connectionSet", (t, e) => t.connectionSet], ["$form", (t, e) => t.form], ["$layout", (t, e) => t.layout], ["$host", (t, e) => t.host], ["$dataWindow", (t, e) => t.dataWindow], ["$event", (t, e) => t.event], ["!", (t, e) => t.datasets], ["$xfa", (t, e) => t], ["xfa", (t, e) => t], ["$", (t, e) => e]]);
      k2 = /* @__PURE__ */ new WeakMap();
      p(y2, "parseIndex");
      p(Zd, "parseExpression");
      p(Gi, "searchNode");
      p(j2, "createDataNode");
      Zl = /* @__PURE__ */ Symbol();
      ya = /* @__PURE__ */ Symbol();
      ar = /* @__PURE__ */ Symbol();
      Xe = /* @__PURE__ */ Symbol("_children");
      pc = /* @__PURE__ */ Symbol();
      Wi = /* @__PURE__ */ Symbol();
      mc = /* @__PURE__ */ Symbol();
      e1 = /* @__PURE__ */ Symbol();
      gc = /* @__PURE__ */ Symbol();
      t1 = /* @__PURE__ */ Symbol();
      bc = /* @__PURE__ */ Symbol();
      ko = /* @__PURE__ */ Symbol();
      e0 = /* @__PURE__ */ Symbol();
      Cs = /* @__PURE__ */ Symbol("parent");
      yo = /* @__PURE__ */ Symbol();
      jo = /* @__PURE__ */ Symbol();
      wc = /* @__PURE__ */ Symbol();
      xc = 0;
      n1 = Kt.datasets.id;
      X = class _X {
        static {
          p(this, "XFAObject");
        }
        constructor(e, n, s = false) {
          this[Vt] = e, this[dt] = n, this[bc] = s, this[Cs] = null, this[Xe] = [], this[xt] = `${n}${xc++}`, this[qt] = null;
        }
        get isXFAObject() {
          return true;
        }
        get isXFAObjectArray() {
          return false;
        }
        createNodes(e) {
          let n = this, s = null;
          for (const { name: i, index: a } of e) {
            for (let r = 0, o = isFinite(a) ? a : 0; r <= o; r++) {
              const l = n[Vt] === n1 ? -1 : n[Vt];
              s = new ri(l, i), n[Mt](s);
            }
            n = s;
          }
          return s;
        }
        [Zs](e) {
          if (!this[bc] || !this[hc](e)) return false;
          const n = e[dt], s = this[n];
          if (s instanceof R) {
            if (s.push(e)) return this[Mt](e), true;
          } else return s !== null && this[Ui](s), this[n] = e, this[Mt](e), true;
          let i = "";
          return this.id ? i = ` (id: ${this.id})` : this.name && (i = ` (name: ${this.name} ${this.h.value})`), F(`XFA - node "${this[dt]}"${i} has already enough "${n}"!`), false;
        }
        [hc](e) {
          return this.hasOwnProperty(e[dt]) && e[Vt] === this[Vt];
        }
        [mo]() {
          return false;
        }
        [$l]() {
          return false;
        }
        [cc]() {
          return false;
        }
        [xa]() {
          return false;
        }
        [Qn]() {
          this.para && this[$t]()[V].paraStack.pop();
        }
        [ir]() {
          this[$t]()[V].paraStack.push(this.para);
        }
        [uc](e) {
          this.id && this[Vt] === Kt.template.id && e.set(this.id, this);
        }
        [$t]() {
          return this[qt].template;
        }
        [xi]() {
          return false;
        }
        [ki]() {
          return false;
        }
        [Mt](e) {
          e[Cs] = this, this[Xe].push(e), !e[qt] && this[qt] && (e[qt] = this[qt]);
        }
        [Ui](e) {
          const n = this[Xe].indexOf(e);
          this[Xe].splice(n, 1);
        }
        [po]() {
          return this.hasOwnProperty("value");
        }
        [Jn](e) {
        }
        [yi](e) {
        }
        [vt]() {
        }
        [As](e) {
          delete this[bc], this[Vl] && (e.clean(this[Vl]), delete this[Vl]);
        }
        [fc](e) {
          return this[Xe].indexOf(e);
        }
        [Xl](e, n) {
          n[Cs] = this, this[Xe].splice(e, 0, n), !n[qt] && this[qt] && (n[qt] = this[qt]);
        }
        [go]() {
          return !this.name;
        }
        [f2]() {
          return "";
        }
        [nn]() {
          return this[Xe].length === 0 ? this[ee] : this[Xe].map((e) => e[nn]()).join("");
        }
        get [ar]() {
          const e = Object.getPrototypeOf(this);
          if (!e._attributes) {
            const n = e._attributes = /* @__PURE__ */ new Set();
            for (const s of Object.getOwnPropertyNames(this)) {
              if (this[s] === null || this[s] instanceof _X || this[s] instanceof R) break;
              n.add(s);
            }
          }
          return fe(this, ar, e._attributes);
        }
        [zi](e) {
          let n = this;
          for (; n; ) {
            if (n === e) return true;
            n = n[Ue]();
          }
          return false;
        }
        [Ue]() {
          return this[Cs];
        }
        [Wt]() {
          return this[Ue]();
        }
        [gn](e = null) {
          return e ? this[e] : this[Xe];
        }
        [er]() {
          const e = /* @__PURE__ */ Object.create(null);
          this[ee] && (e.$content = this[ee]);
          for (const n of Object.getOwnPropertyNames(this)) {
            const s = this[n];
            s !== null && (s instanceof _X ? e[n] = s[er]() : s instanceof R ? s.isEmpty() || (e[n] = s.dump()) : e[n] = s);
          }
          return e;
        }
        [ft]() {
          return null;
        }
        [Pe]() {
          return Ee.EMPTY;
        }
        *[tr]() {
          for (const e of this[gn]()) yield e;
        }
        *[e1](e, n) {
          for (const s of this[tr]()) if (!e || n === e.has(s[dt])) {
            const i = this[wa](), a = s[Pe](i);
            a.success || (this[V].failingNode = s), yield a;
          }
        }
        [fo]() {
          return null;
        }
        [ba](e, n) {
          this[V].children.push(e);
        }
        [wa]() {
        }
        [Ni]({ filter: e = null, include: n = true }) {
          if (!this[V].generator) this[V].generator = this[e1](e, n);
          else {
            const s = this[wa](), i = this[V].failingNode[Pe](s);
            if (!i.success) return i;
            i.html && this[ba](i.html, i.bbox), delete this[V].failingNode;
          }
          for (; ; ) {
            const s = this[V].generator.next();
            if (s.done) break;
            const i = s.value;
            if (!i.success) return i;
            i.html && this[ba](i.html, i.bbox);
          }
          return this[V].generator = null, Ee.EMPTY;
        }
        [Vd](e) {
          this[jo] = new Set(Object.keys(e));
        }
        [t1](e) {
          const n = this[ar], s = this[jo];
          return [...e].filter((i) => n.has(i) && !s.has(i));
        }
        [wo](e, n = /* @__PURE__ */ new Set()) {
          for (const s of this[Xe]) s[yo](e, n);
        }
        [yo](e, n) {
          const s = this[gc](e, n);
          s ? this[Zl](s, e, n) : this[wo](e, n);
        }
        [gc](e, n) {
          const { use: s, usehref: i } = this;
          if (!s && !i) return null;
          let a = null, r = null, o = null, l = s;
          if (i ? (l = i, i.startsWith("#som(") && i.endsWith(")") ? r = i.slice(5, -1) : i.startsWith(".#som(") && i.endsWith(")") ? r = i.slice(6, -1) : i.startsWith("#") ? o = i.slice(1) : i.startsWith(".#") && (o = i.slice(2))) : s.startsWith("#") ? o = s.slice(1) : r = s, this.use = this.usehref = "", o ? a = e.get(o) : (a = Gi(e.get($d), this, r, true, false), a && (a = a[0])), !a) return F(`XFA - Invalid prototype reference: ${l}.`), null;
          if (a[dt] !== this[dt]) return F(`XFA - Incompatible prototype: ${a[dt]} !== ${this[dt]}.`), null;
          if (n.has(a)) return F("XFA - Cycle detected in prototypes use."), null;
          n.add(a);
          const f = a[gc](e, n);
          return f && a[Zl](f, e, n), a[wo](e, n), n.delete(a), a;
        }
        [Zl](e, n, s) {
          if (s.has(e)) {
            F("XFA - Cycle detected in prototypes use.");
            return;
          }
          !this[ee] && e[ee] && (this[ee] = e[ee]), new Set(s).add(e);
          for (const a of this[t1](e[jo])) this[a] = e[a], this[jo] && this[jo].add(a);
          for (const a of Object.getOwnPropertyNames(this)) {
            if (this[ar].has(a)) continue;
            const r = this[a], o = e[a];
            if (r instanceof R) {
              for (const l of r[Xe]) l[yo](n, s);
              for (let l = r[Xe].length, f = o[Xe].length; l < f; l++) {
                const c = e[Xe][l][Ms]();
                if (r.push(c)) c[Cs] = this, this[Xe].push(c), c[yo](n, s);
                else break;
              }
              continue;
            }
            if (r !== null) {
              r[wo](n, s), o && r[Zl](o, n, s);
              continue;
            }
            if (o !== null) {
              const l = o[Ms]();
              l[Cs] = this, this[a] = l, this[Xe].push(l), l[yo](n, s);
            }
          }
        }
        static [pc](e) {
          return Array.isArray(e) ? e.map((n) => _X[pc](n)) : typeof e == "object" && e !== null ? Object.assign({}, e) : e;
        }
        [Ms]() {
          const e = Object.create(Object.getPrototypeOf(this));
          for (const n of Object.getOwnPropertySymbols(this)) try {
            e[n] = this[n];
          } catch {
            fe(e, n, this[n]);
          }
          e[xt] = `${e[dt]}${xc++}`, e[Xe] = [];
          for (const n of Object.getOwnPropertyNames(this)) {
            if (this[ar].has(n)) {
              e[n] = _X[pc](this[n]);
              continue;
            }
            const s = this[n];
            e[n] = s instanceof R ? new R(s[ko]) : null;
          }
          for (const n of this[Xe]) {
            const s = n[dt], i = n[Ms]();
            e[Xe].push(i), i[Cs] = e, e[s] === null ? e[s] = i : e[s][Xe].push(i);
          }
          return e;
        }
        [gn](e = null) {
          return e ? this[Xe].filter((n) => n[dt] === e) : this[Xe];
        }
        [Kl](e) {
          return this[e];
        }
        [co](e, n, s = true) {
          return Array.from(this[ho](e, n, s));
        }
        *[ho](e, n, s = true) {
          if (e === "parent") {
            yield this[Cs];
            return;
          }
          for (const i of this[Xe]) i[dt] === e && (yield i), i.name === e && (yield i), (n || i[go]()) && (yield* i[ho](e, n, false));
          s && this[ar].has(e) && (yield new kc(this, e, this[e]));
        }
      };
      R = class _R {
        static {
          p(this, "XFAObjectArray");
        }
        constructor(e = 1 / 0) {
          this[ko] = e, this[Xe] = [];
        }
        get isXFAObject() {
          return false;
        }
        get isXFAObjectArray() {
          return true;
        }
        push(e) {
          return this[Xe].length <= this[ko] ? (this[Xe].push(e), true) : (F(`XFA - node "${e[dt]}" accepts no more than ${this[ko]} children`), false);
        }
        isEmpty() {
          return this[Xe].length === 0;
        }
        dump() {
          return this[Xe].length === 1 ? this[Xe][0][er]() : this[Xe].map((e) => e[er]());
        }
        [Ms]() {
          const e = new _R(this[ko]);
          return e[Xe] = this[Xe].map((n) => n[Ms]()), e;
        }
        get children() {
          return this[Xe];
        }
        clear() {
          this[Xe].length = 0;
        }
      };
      kc = class {
        static {
          p(this, "XFAAttribute");
        }
        constructor(e, n, s) {
          this[Cs] = e, this[dt] = n, this[ee] = s, this[Js] = false, this[xt] = `attribute${xc++}`;
        }
        [Ue]() {
          return this[Cs];
        }
        [sr]() {
          return true;
        }
        [lc]() {
          return this[ee].trim();
        }
        [Jn](e) {
          e = e.value || "", this[ee] = e.toString();
        }
        [nn]() {
          return this[ee];
        }
        [zi](e) {
          return this[Cs] === e || this[Cs][zi](e);
        }
      };
      ri = class _ri extends X {
        static {
          p(this, "XmlObject");
        }
        constructor(e, n, s = {}) {
          if (super(e, n), this[ee] = "", this[Wi] = null, n !== "#text") {
            const i = /* @__PURE__ */ new Map();
            this[ya] = i;
            for (const [a, r] of Object.entries(s)) i.set(a, new kc(this, a, r));
            if (s.hasOwnProperty(ka)) {
              const a = s[ka].xfa.dataNode;
              a !== void 0 && (a === "dataGroup" ? this[Wi] = false : a === "dataValue" && (this[Wi] = true));
            }
          }
          this[Js] = false;
        }
        [xo](e) {
          const n = this[dt];
          if (n === "#text") {
            e.push(Ua(this[ee]));
            return;
          }
          const s = af(n), i = this[Vt] === n1 ? "xfa:" : "";
          e.push(`<${i}${s}`);
          for (const [a, r] of this[ya]) {
            const o = af(a);
            e.push(` ${o}="${Ua(r[ee])}"`);
          }
          if (this[Wi] !== null && (this[Wi] ? e.push(' xfa:dataNode="dataValue"') : e.push(' xfa:dataNode="dataGroup"')), !this[ee] && this[Xe].length === 0) {
            e.push("/>");
            return;
          }
          if (e.push(">"), this[ee]) typeof this[ee] == "string" ? e.push(Ua(this[ee])) : this[ee][xo](e);
          else for (const a of this[Xe]) a[xo](e);
          e.push(`</${i}${s}>`);
        }
        [Zs](e) {
          if (this[ee]) {
            const n = new _ri(this[Vt], "#text");
            this[Mt](n), n[ee] = this[ee], this[ee] = "";
          }
          return this[Mt](e), true;
        }
        [yi](e) {
          this[ee] += e;
        }
        [vt]() {
          if (this[ee] && this[Xe].length > 0) {
            const e = new _ri(this[Vt], "#text");
            this[Mt](e), e[ee] = this[ee], delete this[ee];
          }
        }
        [Pe]() {
          return this[dt] === "#text" ? Ee.success({ name: "#text", value: this[ee] }) : Ee.EMPTY;
        }
        [gn](e = null) {
          return e ? this[Xe].filter((n) => n[dt] === e) : this[Xe];
        }
        [Wd]() {
          return this[ya];
        }
        [Kl](e) {
          const n = this[ya].get(e);
          return n !== void 0 ? n : this[gn](e);
        }
        *[ho](e, n) {
          const s = this[ya].get(e);
          s && (yield s);
          for (const i of this[Xe]) i[dt] === e && (yield i), n && (yield* i[ho](e, n));
        }
        *[oc](e, n) {
          const s = this[ya].get(e);
          s && (!n || !s[Js]) && (yield s);
          for (const i of this[Xe]) yield* i[oc](e, n);
        }
        *[uo](e, n, s) {
          for (const i of this[Xe]) i[dt] === e && (!s || !i[Js]) && (yield i), n && (yield* i[uo](e, n, s));
        }
        [sr]() {
          return this[Wi] === null ? this[Xe].length === 0 || this[Xe][0][Vt] === Kt.xhtml.id : this[Wi];
        }
        [lc]() {
          return this[Wi] === null ? this[Xe].length === 0 ? this[ee].trim() : this[Xe][0][Vt] === Kt.xhtml.id ? this[Xe][0][nn]().trim() : null : this[ee].trim();
        }
        [Jn](e) {
          e = e.value || "", this[ee] = e.toString();
        }
        [er](e = false) {
          const n = /* @__PURE__ */ Object.create(null);
          e && (n.$ns = this[Vt]), this[ee] && (n.$content = this[ee]), n.$name = this[dt], n.children = [];
          for (const s of this[Xe]) n.children.push(s[er](e));
          n.attributes = /* @__PURE__ */ Object.create(null);
          for (const [s, i] of this[ya]) n.attributes[s] = i[ee];
          return n;
        }
      };
      Ht = class extends X {
        static {
          p(this, "ContentObject");
        }
        constructor(e, n) {
          super(e, n), this[ee] = "";
        }
        [yi](e) {
          this[ee] += e;
        }
        [vt]() {
        }
      };
      kt = class extends Ht {
        static {
          p(this, "OptionObject");
        }
        constructor(e, n, s) {
          super(e, n), this[e0] = s;
        }
        [vt]() {
          this[ee] = Jl({ data: this[ee], defaultValue: this[e0][0], validate: p((e) => this[e0].includes(e), "validate") });
        }
        [As](e) {
          super[As](e), delete this[e0];
        }
      };
      Ze = class extends Ht {
        static {
          p(this, "StringObject");
        }
        [vt]() {
          this[ee] = this[ee].trim();
        }
      };
      Ns = class extends Ht {
        static {
          p(this, "IntegerObject");
        }
        constructor(e, n, s, i) {
          super(e, n), this[mc] = s, this[wc] = i;
        }
        [vt]() {
          this[ee] = He({ data: this[ee], defaultValue: this[mc], validate: this[wc] });
        }
        [As](e) {
          super[As](e), delete this[mc], delete this[wc];
        }
      };
      sn = class extends Ns {
        static {
          p(this, "Option01");
        }
        constructor(e, n) {
          super(e, n, 0, (s) => s === 1);
        }
      };
      s1 = class extends Ns {
        static {
          p(this, "Option10");
        }
        constructor(e, n) {
          super(e, n, 1, (s) => s === 0);
        }
      };
      p(Oe, "measureToString");
      i1 = { anchorType(t, e) {
        const n = t[Wt]();
        if (!(!n || n.layout && n.layout !== "position")) switch ("transform" in e || (e.transform = ""), t.anchorType) {
          case "bottomCenter":
            e.transform += "translate(-50%, -100%)";
            break;
          case "bottomLeft":
            e.transform += "translate(0,-100%)";
            break;
          case "bottomRight":
            e.transform += "translate(-100%,-100%)";
            break;
          case "middleCenter":
            e.transform += "translate(-50%,-50%)";
            break;
          case "middleLeft":
            e.transform += "translate(0,-50%)";
            break;
          case "middleRight":
            e.transform += "translate(-100%,-50%)";
            break;
          case "topCenter":
            e.transform += "translate(-50%,0)";
            break;
          case "topRight":
            e.transform += "translate(-100%,0)";
            break;
        }
      }, dimensions(t, e) {
        const n = t[Wt]();
        let s = t.w;
        const i = t.h;
        if (n.layout?.includes("row")) {
          const a = n[V], r = t.colSpan;
          let o;
          r === -1 ? (o = Math.sumPrecise(a.columnWidths.slice(a.currentColumn)), a.currentColumn = 0) : (o = Math.sumPrecise(a.columnWidths.slice(a.currentColumn, a.currentColumn + r)), a.currentColumn = (a.currentColumn + t.colSpan) % a.columnWidths.length), isNaN(o) || (s = t.w = o);
        }
        e.width = s !== "" ? Oe(s) : "auto", e.height = i !== "" ? Oe(i) : "auto";
      }, position(t, e) {
        const n = t[Wt]();
        n?.layout && n.layout !== "position" || (e.position = "absolute", e.left = Oe(t.x), e.top = Oe(t.y));
      }, rotate(t, e) {
        t.rotate && ("transform" in e || (e.transform = ""), e.transform += `rotate(-${t.rotate}deg)`, e.transformOrigin = "top left");
      }, presence(t, e) {
        switch (t.presence) {
          case "invisible":
            e.visibility = "hidden";
            break;
          case "hidden":
          case "inactive":
            e.display = "none";
            break;
        }
      }, hAlign(t, e) {
        if (t[dt] === "para") switch (t.hAlign) {
          case "justifyAll":
            e.textAlign = "justify-all";
            break;
          case "radix":
            e.textAlign = "left";
            break;
          default:
            e.textAlign = t.hAlign;
        }
        else switch (t.hAlign) {
          case "left":
            e.alignSelf = "start";
            break;
          case "center":
            e.alignSelf = "center";
            break;
          case "right":
            e.alignSelf = "end";
            break;
        }
      }, margin(t, e) {
        t.margin && (e.margin = t.margin[ft]().margin);
      } };
      p(a1, "setMinMaxDimensions");
      p(r1, "layoutText");
      p(yc, "layoutNode");
      p(o1, "computeBbox");
      p(t0, "fixDimensions");
      p(l1, "layoutClass");
      p(Wn, "toStyle");
      p(ja, "createWrapper");
      p(f1, "fixTextIndent");
      p(jc, "setAccess");
      p(rr, "isPrintOnly");
      p(c1, "getCurrentPara");
      p(h1, "setPara");
      p(u1, "setFontFamily");
      p(d1, "fixURL");
      p(p1, "createLine");
      p(m1, "flushHTML");
      p(g1, "addHTML");
      p(b1, "getAvailableSpace");
      p(v2, "getTransformedBBox");
      p(n0, "checkDimensions");
      he = Kt.template.id;
      va = "http://www.w3.org/2000/svg";
      s0 = 2;
      q2 = 3;
      A2 = 5e3;
      S2 = /^H(\d+)$/;
      C2 = /* @__PURE__ */ new Set(["image/gif", "image/jpeg", "image/jpg", "image/pjpeg", "image/png", "image/apng", "image/x-png", "image/bmp", "image/x-ms-bmp", "image/tiff", "image/tif", "application/octet-stream"]);
      I2 = [[[66, 77], "image/bmp"], [[255, 216, 255], "image/jpeg"], [[73, 73, 42, 0], "image/tiff"], [[77, 77, 0, 42], "image/tiff"], [[71, 73, 70, 56, 57, 97], "image/gif"], [[137, 80, 78, 71, 13, 10, 26, 10], "image/png"]];
      p(w1, "getBorderDims");
      p(vc, "hasMargin");
      p(qc, "_setValue");
      p(Ac, "getContainedChildren");
      p(vo, "isRequired");
      p(i0, "setTabIndex");
      p(a0, "applyAssist");
      p(qa, "ariaLabel");
      p($i, "valueToHtml");
      p(r0, "setFirstUnsplittable");
      p(o0, "unsetFirstUnsplittable");
      p(x1, "handleBreak");
      p(k1, "handleOverflow");
      T2 = class extends Ze {
        static {
          p(this, "AppearanceFilter");
        }
        constructor(e) {
          super(he, "appearanceFilter"), this.id = e.id || "", this.type = ne(e.type, ["optional", "required"]), this.use = e.use || "", this.usehref = e.usehref || "";
        }
      };
      y1 = class extends X {
        static {
          p(this, "Arc");
        }
        constructor(e) {
          super(he, "arc", true), this.circular = He({ data: e.circular, defaultValue: 0, validate: p((n) => n === 1, "validate") }), this.hand = ne(e.hand, ["even", "left", "right"]), this.id = e.id || "", this.startAngle = Ql({ data: e.startAngle, defaultValue: 0, validate: p((n) => true, "validate") }), this.sweepAngle = Ql({ data: e.sweepAngle, defaultValue: 360, validate: p((n) => true, "validate") }), this.use = e.use || "", this.usehref = e.usehref || "", this.edge = null, this.fill = null;
        }
        [Pe]() {
          const e = this.edge || new qo({}), n = e[ft](), s = /* @__PURE__ */ Object.create(null);
          this.fill?.presence === "visible" ? Object.assign(s, this.fill[ft]()) : s.fill = "transparent", s.strokeWidth = Oe(e.presence === "visible" ? e.thickness : 0), s.stroke = n.color;
          let i;
          const a = { xmlns: va, style: { width: "100%", height: "100%", overflow: "visible" } };
          if (this.sweepAngle === 360) i = { name: "ellipse", attributes: { xmlns: va, cx: "50%", cy: "50%", rx: "50%", ry: "50%", style: s } };
          else {
            const l = this.startAngle * Math.PI / 180, f = this.sweepAngle * Math.PI / 180, c = this.sweepAngle > 180 ? 1 : 0, [h, u, d, m] = [50 * (1 + Math.cos(l)), 50 * (1 - Math.sin(l)), 50 * (1 + Math.cos(l + f)), 50 * (1 - Math.sin(l + f))];
            i = { name: "path", attributes: { xmlns: va, d: `M ${h} ${u} A 50 50 0 ${c} 0 ${d} ${m}`, vectorEffect: "non-scaling-stroke", style: s } }, Object.assign(a, { viewBox: "0 0 100 100", preserveAspectRatio: "none" });
          }
          const r = { name: "svg", children: [i], attributes: a }, o = this[Ue]()[Ue]();
          return vc(o) ? Ee.success({ name: "div", attributes: { style: { display: "inline", width: "100%", height: "100%" } }, children: [r] }) : (r.attributes.style.position = "absolute", Ee.success(r));
        }
      };
      E2 = class extends X {
        static {
          p(this, "Area");
        }
        constructor(e) {
          super(he, "area", true), this.colSpan = He({ data: e.colSpan, defaultValue: 1, validate: p((n) => n >= 1 || n === -1, "validate") }), this.id = e.id || "", this.name = e.name || "", this.relevant = Ls(e.relevant), this.use = e.use || "", this.usehref = e.usehref || "", this.x = ve(e.x, "0pt"), this.y = ve(e.y, "0pt"), this.desc = null, this.extras = null, this.area = new R(), this.draw = new R(), this.exObject = new R(), this.exclGroup = new R(), this.field = new R(), this.subform = new R(), this.subformSet = new R();
        }
        *[tr]() {
          yield* Ac(this);
        }
        [go]() {
          return true;
        }
        [xa]() {
          return true;
        }
        [ba](e, n) {
          const [s, i, a, r] = n;
          this[V].width = Math.max(this[V].width, s + a), this[V].height = Math.max(this[V].height, i + r), this[V].children.push(e);
        }
        [wa]() {
          return this[V].availableSpace;
        }
        [Pe](e) {
          const n = Wn(this, "position"), s = { style: n, id: this[xt], class: ["xfaArea"] };
          rr(this) && s.class.push("xfaPrintOnly"), this.name && (s.xfaName = this.name);
          const i = [];
          this[V] = { children: i, width: 0, height: 0, availableSpace: e };
          const a = this[Ni]({ filter: /* @__PURE__ */ new Set(["area", "draw", "field", "exclGroup", "subform", "subformSet"]), include: true });
          if (!a.success) return a.isBreak() ? a : (delete this[V], Ee.FAILURE);
          n.width = Oe(this[V].width), n.height = Oe(this[V].height);
          const r = { name: "div", attributes: s, children: i }, o = [this.x, this.y, this[V].width, this[V].height];
          return delete this[V], Ee.success(r, o);
        }
      };
      F2 = class extends X {
        static {
          p(this, "Assist");
        }
        constructor(e) {
          super(he, "assist", true), this.id = e.id || "", this.role = e.role || "", this.use = e.use || "", this.usehref = e.usehref || "", this.speak = null, this.toolTip = null;
        }
        [Pe]() {
          return this.toolTip?.[ee] || null;
        }
      };
      B2 = class extends X {
        static {
          p(this, "Barcode");
        }
        constructor(e) {
          super(he, "barcode", true), this.charEncoding = Jl({ data: e.charEncoding ? e.charEncoding.toLowerCase() : "", defaultValue: "", validate: p((n) => ["utf-8", "big-five", "fontspecific", "gbk", "gb-18030", "gb-2312", "ksc-5601", "none", "shift-jis", "ucs-2", "utf-16"].includes(n) || n.match(/iso-8859-\d{2}/), "validate") }), this.checksum = ne(e.checksum, ["none", "1mod10", "1mod10_1mod11", "2mod10", "auto"]), this.dataColumnCount = He({ data: e.dataColumnCount, defaultValue: -1, validate: p((n) => n >= 0, "validate") }), this.dataLength = He({ data: e.dataLength, defaultValue: -1, validate: p((n) => n >= 0, "validate") }), this.dataPrep = ne(e.dataPrep, ["none", "flateCompress"]), this.dataRowCount = He({ data: e.dataRowCount, defaultValue: -1, validate: p((n) => n >= 0, "validate") }), this.endChar = e.endChar || "", this.errorCorrectionLevel = He({ data: e.errorCorrectionLevel, defaultValue: -1, validate: p((n) => n >= 0 && n <= 8, "validate") }), this.id = e.id || "", this.moduleHeight = ve(e.moduleHeight, "5mm"), this.moduleWidth = ve(e.moduleWidth, "0.25mm"), this.printCheckDigit = He({ data: e.printCheckDigit, defaultValue: 0, validate: p((n) => n === 1, "validate") }), this.rowColumnRatio = Xd(e.rowColumnRatio), this.startChar = e.startChar || "", this.textLocation = ne(e.textLocation, ["below", "above", "aboveEmbedded", "belowEmbedded", "none"]), this.truncate = He({ data: e.truncate, defaultValue: 0, validate: p((n) => n === 1, "validate") }), this.type = ne(e.type ? e.type.toLowerCase() : "", ["aztec", "codabar", "code2of5industrial", "code2of5interleaved", "code2of5matrix", "code2of5standard", "code3of9", "code3of9extended", "code11", "code49", "code93", "code128", "code128a", "code128b", "code128c", "code128sscc", "datamatrix", "ean8", "ean8add2", "ean8add5", "ean13", "ean13add2", "ean13add5", "ean13pwcd", "fim", "logmars", "maxicode", "msi", "pdf417", "pdf417macro", "plessey", "postauscust2", "postauscust3", "postausreplypaid", "postausstandard", "postukrm4scc", "postusdpbc", "postusimb", "postusstandard", "postus5zip", "qrcode", "rfid", "rss14", "rss14expanded", "rss14limited", "rss14stacked", "rss14stackedomni", "rss14truncated", "telepen", "ucc128", "ucc128random", "ucc128sscc", "upca", "upcaadd2", "upcaadd5", "upcapwcd", "upce", "upceadd2", "upceadd5", "upcean2", "upcean5", "upsmaxicode"]), this.upsMode = ne(e.upsMode, ["usCarrier", "internationalCarrier", "secureSymbol", "standardSymbol"]), this.use = e.use || "", this.usehref = e.usehref || "", this.wideNarrowRatio = Xd(e.wideNarrowRatio), this.encrypt = null, this.extras = null;
        }
      };
      R2 = class extends X {
        static {
          p(this, "Bind");
        }
        constructor(e) {
          super(he, "bind", true), this.match = ne(e.match, ["once", "dataRef", "global", "none"]), this.ref = e.ref || "", this.picture = null;
        }
      };
      Sc = class extends X {
        static {
          p(this, "BindItems");
        }
        constructor(e) {
          super(he, "bindItems"), this.connection = e.connection || "", this.labelRef = e.labelRef || "", this.ref = e.ref || "", this.valueRef = e.valueRef || "";
        }
      };
      _2 = class extends X {
        static {
          p(this, "Bookend");
        }
        constructor(e) {
          super(he, "bookend"), this.id = e.id || "", this.leader = e.leader || "", this.trailer = e.trailer || "", this.use = e.use || "", this.usehref = e.usehref || "";
        }
      };
      P2 = class extends sn {
        static {
          p(this, "BooleanElement");
        }
        constructor(e) {
          super(he, "boolean"), this.id = e.id || "", this.name = e.name || "", this.use = e.use || "", this.usehref = e.usehref || "";
        }
        [Pe](e) {
          return $i(this[ee] === 1 ? "1" : "0");
        }
      };
      j1 = class extends X {
        static {
          p(this, "Border");
        }
        constructor(e) {
          super(he, "border", true), this.break = ne(e.break, ["close", "open"]), this.hand = ne(e.hand, ["even", "left", "right"]), this.id = e.id || "", this.presence = ne(e.presence, ["visible", "hidden", "inactive", "invisible"]), this.relevant = Ls(e.relevant), this.use = e.use || "", this.usehref = e.usehref || "", this.corner = new R(4), this.edge = new R(4), this.extras = null, this.fill = null, this.margin = null;
        }
        [Tn]() {
          if (!this[V]) {
            const e = this.edge.children.slice();
            if (e.length < 4) {
              const i = e.at(-1) || new qo({});
              for (let a = e.length; a < 4; a++) e.push(i);
            }
            const n = e.map((i) => i.thickness), s = [0, 0, 0, 0];
            this.margin && (s[0] = this.margin.topInset, s[1] = this.margin.rightInset, s[2] = this.margin.bottomInset, s[3] = this.margin.leftInset), this[V] = { widths: n, insets: s, edges: e };
          }
          return this[V];
        }
        [ft]() {
          const { edges: e } = this[Tn](), n = e.map((i) => {
            const a = i[ft]();
            return a.color ||= "#000000", a;
          }), s = /* @__PURE__ */ Object.create(null);
          if (this.margin && Object.assign(s, this.margin[ft]()), this.fill?.presence === "visible" && Object.assign(s, this.fill[ft]()), this.corner.children.some((i) => i.radius !== 0)) {
            const i = this.corner.children.map((a) => a[ft]());
            if (i.length === 2 || i.length === 3) {
              const a = i.at(-1);
              for (let r = i.length; r < 4; r++) i.push(a);
            }
            s.borderRadius = i.map((a) => a.radius).join(" ");
          }
          switch (this.presence) {
            case "invisible":
            case "hidden":
              s.borderStyle = "";
              break;
            case "inactive":
              s.borderStyle = "none";
              break;
            default:
              s.borderStyle = n.map((i) => i.style).join(" ");
              break;
          }
          return s.borderWidth = n.map((i) => i.width).join(" "), s.borderColor = n.map((i) => i.color).join(" "), s;
        }
      };
      D2 = class extends X {
        static {
          p(this, "Break");
        }
        constructor(e) {
          super(he, "break", true), this.after = ne(e.after, ["auto", "contentArea", "pageArea", "pageEven", "pageOdd"]), this.afterTarget = e.afterTarget || "", this.before = ne(e.before, ["auto", "contentArea", "pageArea", "pageEven", "pageOdd"]), this.beforeTarget = e.beforeTarget || "", this.bookendLeader = e.bookendLeader || "", this.bookendTrailer = e.bookendTrailer || "", this.id = e.id || "", this.overflowLeader = e.overflowLeader || "", this.overflowTarget = e.overflowTarget || "", this.overflowTrailer = e.overflowTrailer || "", this.startNew = He({ data: e.startNew, defaultValue: 0, validate: p((n) => n === 1, "validate") }), this.use = e.use || "", this.usehref = e.usehref || "", this.extras = null;
        }
      };
      v1 = class extends X {
        static {
          p(this, "BreakAfter");
        }
        constructor(e) {
          super(he, "breakAfter", true), this.id = e.id || "", this.leader = e.leader || "", this.startNew = He({ data: e.startNew, defaultValue: 0, validate: p((n) => n === 1, "validate") }), this.target = e.target || "", this.targetType = ne(e.targetType, ["auto", "contentArea", "pageArea"]), this.trailer = e.trailer || "", this.use = e.use || "", this.usehref = e.usehref || "", this.script = null;
        }
      };
      q1 = class extends X {
        static {
          p(this, "BreakBefore");
        }
        constructor(e) {
          super(he, "breakBefore", true), this.id = e.id || "", this.leader = e.leader || "", this.startNew = He({ data: e.startNew, defaultValue: 0, validate: p((n) => n === 1, "validate") }), this.target = e.target || "", this.targetType = ne(e.targetType, ["auto", "contentArea", "pageArea"]), this.trailer = e.trailer || "", this.use = e.use || "", this.usehref = e.usehref || "", this.script = null;
        }
        [Pe](e) {
          return this[V] = {}, Ee.FAILURE;
        }
      };
      M2 = class extends X {
        static {
          p(this, "Button");
        }
        constructor(e) {
          super(he, "button", true), this.highlight = ne(e.highlight, ["inverted", "none", "outline", "push"]), this.id = e.id || "", this.use = e.use || "", this.usehref = e.usehref || "", this.extras = null;
        }
        [Pe](e) {
          const s = this[Ue]()[Ue](), i = { name: "button", attributes: { id: this[xt], class: ["xfaButton"], style: {} }, children: [] };
          for (const a of s.event.children) {
            if (a.activity !== "click" || !a.script) continue;
            const r = Zh(a.script[ee]);
            if (!r) continue;
            const o = d1(r.url);
            o && i.children.push({ name: "a", attributes: { id: "link" + this[xt], href: o, newWindow: r.newWindow, class: ["xfaLink"], style: {} }, children: [] });
          }
          return Ee.success(i);
        }
      };
      H2 = class extends X {
        static {
          p(this, "Calculate");
        }
        constructor(e) {
          super(he, "calculate", true), this.id = e.id || "", this.override = ne(e.override, ["disabled", "error", "ignore", "warning"]), this.use = e.use || "", this.usehref = e.usehref || "", this.extras = null, this.message = null, this.script = null;
        }
      };
      O2 = class extends X {
        static {
          p(this, "Caption");
        }
        constructor(e) {
          super(he, "caption", true), this.id = e.id || "", this.placement = ne(e.placement, ["left", "bottom", "inline", "right", "top"]), this.presence = ne(e.presence, ["visible", "hidden", "inactive", "invisible"]), this.reserve = Math.ceil(ve(e.reserve)), this.use = e.use || "", this.usehref = e.usehref || "", this.extras = null, this.font = null, this.margin = null, this.para = null, this.value = null;
        }
        [Jn](e) {
          qc(this, e);
        }
        [Tn](e) {
          if (!this[V]) {
            let { width: n, height: s } = e;
            switch (this.placement) {
              case "left":
              case "right":
              case "inline":
                n = this.reserve <= 0 ? n : this.reserve;
                break;
              case "top":
              case "bottom":
                s = this.reserve <= 0 ? s : this.reserve;
                break;
            }
            this[V] = yc(this, { width: n });
          }
          return this[V];
        }
        [Pe](e) {
          if (!this.value) return Ee.EMPTY;
          this[ir]();
          const n = this.value[Pe](e).html;
          if (!n) return this[Qn](), Ee.EMPTY;
          const s = this.reserve;
          if (this.reserve <= 0) {
            const { w: r, h: o } = this[Tn](e);
            switch (this.placement) {
              case "left":
              case "right":
              case "inline":
                this.reserve = r;
                break;
              case "top":
              case "bottom":
                this.reserve = o;
                break;
            }
          }
          const i = [];
          typeof n == "string" ? i.push({ name: "#text", value: n }) : i.push(n);
          const a = Wn(this, "font", "margin", "visibility");
          switch (this.placement) {
            case "left":
            case "right":
              this.reserve > 0 && (a.width = Oe(this.reserve));
              break;
            case "top":
            case "bottom":
              this.reserve > 0 && (a.height = Oe(this.reserve));
              break;
          }
          return h1(this, null, n), this[Qn](), this.reserve = s, Ee.success({ name: "div", attributes: { style: a, class: ["xfaCaption"] }, children: i });
        }
      };
      L2 = class extends Ze {
        static {
          p(this, "Certificate");
        }
        constructor(e) {
          super(he, "certificate"), this.id = e.id || "", this.name = e.name || "", this.use = e.use || "", this.usehref = e.usehref || "";
        }
      };
      N2 = class extends X {
        static {
          p(this, "Certificates");
        }
        constructor(e) {
          super(he, "certificates", true), this.credentialServerPolicy = ne(e.credentialServerPolicy, ["optional", "required"]), this.id = e.id || "", this.url = e.url || "", this.urlPolicy = e.urlPolicy || "", this.use = e.use || "", this.usehref = e.usehref || "", this.encryption = null, this.issuers = null, this.keyUsage = null, this.oids = null, this.signing = null, this.subjectDNs = null;
        }
      };
      A1 = class extends X {
        static {
          p(this, "CheckButton");
        }
        constructor(e) {
          super(he, "checkButton", true), this.id = e.id || "", this.mark = ne(e.mark, ["default", "check", "circle", "cross", "diamond", "square", "star"]), this.shape = ne(e.shape, ["square", "round"]), this.size = ve(e.size, "10pt"), this.use = e.use || "", this.usehref = e.usehref || "", this.border = null, this.extras = null, this.margin = null;
        }
        [Pe](e) {
          const n = Wn(this, "margin"), s = Oe(this.size);
          n.width = n.height = s;
          let i, a, r;
          const o = this[Ue]()[Ue](), l = o.items.children.length && o.items.children[0][Pe]().html || [], f = { on: (l[0] !== void 0 ? l[0] : "on").toString(), off: (l[1] !== void 0 ? l[1] : "off").toString() }, h = (o.value?.[nn]() || "off") === f.on || void 0, u = o[Wt](), d = o[xt];
          let m;
          u instanceof T1 ? (r = u[xt], i = "radio", a = "xfaRadio", m = u[Ss]?.[xt] || u[xt]) : (i = "checkbox", a = "xfaCheckbox", m = o[Ss]?.[xt] || o[xt]);
          const g = { name: "input", attributes: { class: [a], style: n, fieldId: d, dataId: m, type: i, checked: h, xfaOn: f.on, xfaOff: f.off, "aria-label": qa(o), "aria-required": false } };
          return r && (g.attributes.name = r), vo(o) && (g.attributes["aria-required"] = true, g.attributes.required = true), Ee.success({ name: "label", attributes: { class: ["xfaLabel"] }, children: [g] });
        }
      };
      S1 = class extends X {
        static {
          p(this, "ChoiceList");
        }
        constructor(e) {
          super(he, "choiceList", true), this.commitOn = ne(e.commitOn, ["select", "exit"]), this.id = e.id || "", this.open = ne(e.open, ["userControl", "always", "multiSelect", "onEntry"]), this.textEntry = He({ data: e.textEntry, defaultValue: 0, validate: p((n) => n === 1, "validate") }), this.use = e.use || "", this.usehref = e.usehref || "", this.border = null, this.extras = null, this.margin = null;
        }
        [Pe](e) {
          const n = Wn(this, "border", "margin"), i = this[Ue]()[Ue](), r = { fontSize: `calc(${i.font?.size || 10}px * var(--total-scale-factor))` }, o = [];
          if (i.items.children.length > 0) {
            const f = i.items;
            let c = 0, h = 0;
            f.children.length === 2 && (c = f.children[0].save, h = 1 - c);
            const u = f.children[c][Pe]().html, d = f.children[h][Pe]().html;
            let m = false;
            const g = i.value?.[nn]() || "";
            for (let b = 0, w = u.length; b < w; b++) {
              const x = { name: "option", attributes: { value: d[b] || u[b], style: r }, value: u[b] };
              d[b] === g && (x.attributes.selected = m = true), o.push(x);
            }
            m || o.splice(0, 0, { name: "option", attributes: { hidden: true, selected: true }, value: " " });
          }
          const l = { class: ["xfaSelect"], fieldId: i[xt], dataId: i[Ss]?.[xt] || i[xt], style: n, "aria-label": qa(i), "aria-required": false };
          return vo(i) && (l["aria-required"] = true, l.required = true), this.open === "multiSelect" && (l.multiple = true), Ee.success({ name: "label", attributes: { class: ["xfaLabel"] }, children: [{ name: "select", children: o, attributes: l }] });
        }
      };
      z2 = class extends X {
        static {
          p(this, "Color");
        }
        constructor(e) {
          super(he, "color", true), this.cSpace = ne(e.cSpace, ["SRGB"]), this.id = e.id || "", this.use = e.use || "", this.usehref = e.usehref || "", this.value = e.value ? u2(e.value) : "", this.extras = null;
        }
        [po]() {
          return false;
        }
        [ft]() {
          return this.value ? pt.makeHexColor(this.value.r, this.value.g, this.value.b) : null;
        }
      };
      U2 = class extends X {
        static {
          p(this, "Comb");
        }
        constructor(e) {
          super(he, "comb"), this.id = e.id || "", this.numberOfCells = He({ data: e.numberOfCells, defaultValue: 0, validate: p((n) => n >= 0, "validate") }), this.use = e.use || "", this.usehref = e.usehref || "";
        }
      };
      G2 = class extends X {
        static {
          p(this, "Connect");
        }
        constructor(e) {
          super(he, "connect", true), this.connection = e.connection || "", this.id = e.id || "", this.ref = e.ref || "", this.usage = ne(e.usage, ["exportAndImport", "exportOnly", "importOnly"]), this.use = e.use || "", this.usehref = e.usehref || "", this.picture = null;
        }
      };
      Cc = class extends X {
        static {
          p(this, "ContentArea");
        }
        constructor(e) {
          super(he, "contentArea", true), this.h = ve(e.h), this.id = e.id || "", this.name = e.name || "", this.relevant = Ls(e.relevant), this.use = e.use || "", this.usehref = e.usehref || "", this.w = ve(e.w), this.x = ve(e.x, "0pt"), this.y = ve(e.y, "0pt"), this.desc = null, this.extras = null;
        }
        [Pe](e) {
          const n = Oe(this.x), s = Oe(this.y), i = { left: n, top: s, width: Oe(this.w), height: Oe(this.h) }, a = ["xfaContentarea"];
          return rr(this) && a.push("xfaPrintOnly"), Ee.success({ name: "div", children: [], attributes: { style: i, class: a, id: this[xt] } });
        }
      };
      C1 = class extends X {
        static {
          p(this, "Corner");
        }
        constructor(e) {
          super(he, "corner", true), this.id = e.id || "", this.inverted = He({ data: e.inverted, defaultValue: 0, validate: p((n) => n === 1, "validate") }), this.join = ne(e.join, ["square", "round"]), this.presence = ne(e.presence, ["visible", "hidden", "inactive", "invisible"]), this.radius = ve(e.radius), this.stroke = ne(e.stroke, ["solid", "dashDot", "dashDotDot", "dashed", "dotted", "embossed", "etched", "lowered", "raised"]), this.thickness = ve(e.thickness, "0.5pt"), this.use = e.use || "", this.usehref = e.usehref || "", this.color = null, this.extras = null;
        }
        [ft]() {
          const e = Wn(this, "visibility");
          return e.radius = Oe(this.join === "square" ? 0 : this.radius), e;
        }
      };
      W2 = class extends Ht {
        static {
          p(this, "DateElement");
        }
        constructor(e) {
          super(he, "date"), this.id = e.id || "", this.name = e.name || "", this.use = e.use || "", this.usehref = e.usehref || "";
        }
        [vt]() {
          const e = this[ee].trim();
          this[ee] = e ? new Date(e) : null;
        }
        [Pe](e) {
          return $i(this[ee] ? this[ee].toString() : "");
        }
      };
      $2 = class extends Ht {
        static {
          p(this, "DateTime");
        }
        constructor(e) {
          super(he, "dateTime"), this.id = e.id || "", this.name = e.name || "", this.use = e.use || "", this.usehref = e.usehref || "";
        }
        [vt]() {
          const e = this[ee].trim();
          this[ee] = e ? new Date(e) : null;
        }
        [Pe](e) {
          return $i(this[ee] ? this[ee].toString() : "");
        }
      };
      V2 = class extends X {
        static {
          p(this, "DateTimeEdit");
        }
        constructor(e) {
          super(he, "dateTimeEdit", true), this.hScrollPolicy = ne(e.hScrollPolicy, ["auto", "off", "on"]), this.id = e.id || "", this.picker = ne(e.picker, ["host", "none"]), this.use = e.use || "", this.usehref = e.usehref || "", this.border = null, this.comb = null, this.extras = null, this.margin = null;
        }
        [Pe](e) {
          const n = Wn(this, "border", "font", "margin"), s = this[Ue]()[Ue](), i = { name: "input", attributes: { type: "text", fieldId: s[xt], dataId: s[Ss]?.[xt] || s[xt], class: ["xfaTextfield"], style: n, "aria-label": qa(s), "aria-required": false } };
          return vo(s) && (i.attributes["aria-required"] = true, i.attributes.required = true), Ee.success({ name: "label", attributes: { class: ["xfaLabel"] }, children: [i] });
        }
      };
      K2 = class extends Ht {
        static {
          p(this, "Decimal");
        }
        constructor(e) {
          super(he, "decimal"), this.fracDigits = He({ data: e.fracDigits, defaultValue: 2, validate: p((n) => true, "validate") }), this.id = e.id || "", this.leadDigits = He({ data: e.leadDigits, defaultValue: -1, validate: p((n) => true, "validate") }), this.name = e.name || "", this.use = e.use || "", this.usehref = e.usehref || "";
        }
        [vt]() {
          const e = parseFloat(this[ee].trim());
          this[ee] = isNaN(e) ? null : e;
        }
        [Pe](e) {
          return $i(this[ee] !== null ? this[ee].toString() : "");
        }
      };
      X2 = class extends X {
        static {
          p(this, "DefaultUi");
        }
        constructor(e) {
          super(he, "defaultUi", true), this.id = e.id || "", this.use = e.use || "", this.usehref = e.usehref || "", this.extras = null;
        }
      };
      Y2 = class extends X {
        static {
          p(this, "Desc");
        }
        constructor(e) {
          super(he, "desc", true), this.id = e.id || "", this.use = e.use || "", this.usehref = e.usehref || "", this.boolean = new R(), this.date = new R(), this.dateTime = new R(), this.decimal = new R(), this.exData = new R(), this.float = new R(), this.image = new R(), this.integer = new R(), this.text = new R(), this.time = new R();
        }
      };
      Q2 = class extends kt {
        static {
          p(this, "DigestMethod");
        }
        constructor(e) {
          super(he, "digestMethod", ["", "SHA1", "SHA256", "SHA512", "RIPEMD160"]), this.id = e.id || "", this.use = e.use || "", this.usehref = e.usehref || "";
        }
      };
      J2 = class extends X {
        static {
          p(this, "DigestMethods");
        }
        constructor(e) {
          super(he, "digestMethods", true), this.id = e.id || "", this.type = ne(e.type, ["optional", "required"]), this.use = e.use || "", this.usehref = e.usehref || "", this.digestMethod = new R();
        }
      };
      I1 = class extends X {
        static {
          p(this, "Draw");
        }
        constructor(e) {
          super(he, "draw", true), this.anchorType = ne(e.anchorType, ["topLeft", "bottomCenter", "bottomLeft", "bottomRight", "middleCenter", "middleLeft", "middleRight", "topCenter", "topRight"]), this.colSpan = He({ data: e.colSpan, defaultValue: 1, validate: p((n) => n >= 1 || n === -1, "validate") }), this.h = e.h ? ve(e.h) : "", this.hAlign = ne(e.hAlign, ["left", "center", "justify", "justifyAll", "radix", "right"]), this.id = e.id || "", this.locale = e.locale || "", this.maxH = ve(e.maxH, "0pt"), this.maxW = ve(e.maxW, "0pt"), this.minH = ve(e.minH, "0pt"), this.minW = ve(e.minW, "0pt"), this.name = e.name || "", this.presence = ne(e.presence, ["visible", "hidden", "inactive", "invisible"]), this.relevant = Ls(e.relevant), this.rotate = He({ data: e.rotate, defaultValue: 0, validate: p((n) => n % 90 === 0, "validate") }), this.use = e.use || "", this.usehref = e.usehref || "", this.w = e.w ? ve(e.w) : "", this.x = ve(e.x, "0pt"), this.y = ve(e.y, "0pt"), this.assist = null, this.border = null, this.caption = null, this.desc = null, this.extras = null, this.font = null, this.keep = null, this.margin = null, this.para = null, this.traversal = null, this.ui = null, this.value = null, this.setProperty = new R();
        }
        [Jn](e) {
          qc(this, e);
        }
        [Pe](e) {
          if (i0(this), this.presence === "hidden" || this.presence === "inactive") return Ee.EMPTY;
          t0(this), this[ir]();
          const n = this.w, s = this.h, { w: i, h: a, isBroken: r } = yc(this, e);
          if (i && this.w === "") {
            if (r && this[Wt]()[ki]()) return this[Qn](), Ee.FAILURE;
            this.w = i;
          }
          if (a && this.h === "" && (this.h = a), r0(this), !n0(this, e)) return this.w = n, this.h = s, this[Qn](), Ee.FAILURE;
          o0(this);
          const o = Wn(this, "font", "hAlign", "dimensions", "position", "presence", "rotate", "anchorType", "border", "margin");
          a1(this, o), o.margin && (o.padding = o.margin, delete o.margin);
          const l = ["xfaDraw"];
          this.font && l.push("xfaFont"), rr(this) && l.push("xfaPrintOnly");
          const f = { style: o, id: this[xt], class: l };
          this.name && (f.xfaName = this.name);
          const c = { name: "div", attributes: f, children: [] };
          a0(this, f);
          const h = o1(this, c, e), u = this.value ? this.value[Pe](e).html : null;
          return u === null ? (this.w = n, this.h = s, this[Qn](), Ee.success(ja(this, c), h)) : (c.children.push(u), h1(this, o, u), this.w = n, this.h = s, this[Qn](), Ee.success(ja(this, c), h));
        }
      };
      qo = class extends X {
        static {
          p(this, "Edge");
        }
        constructor(e) {
          super(he, "edge", true), this.cap = ne(e.cap, ["square", "butt", "round"]), this.id = e.id || "", this.presence = ne(e.presence, ["visible", "hidden", "inactive", "invisible"]), this.stroke = ne(e.stroke, ["solid", "dashDot", "dashDotDot", "dashed", "dotted", "embossed", "etched", "lowered", "raised"]), this.thickness = ve(e.thickness, "0.5pt"), this.use = e.use || "", this.usehref = e.usehref || "", this.color = null, this.extras = null;
        }
        [ft]() {
          const e = Wn(this, "visibility");
          if (Object.assign(e, { linecap: this.cap, width: Oe(this.thickness), color: this.color ? this.color[ft]() : "#000000", style: "" }), this.presence !== "visible") e.style = "none";
          else switch (this.stroke) {
            case "solid":
              e.style = "solid";
              break;
            case "dashDot":
              e.style = "dashed";
              break;
            case "dashDotDot":
              e.style = "dashed";
              break;
            case "dashed":
              e.style = "dashed";
              break;
            case "dotted":
              e.style = "dotted";
              break;
            case "embossed":
              e.style = "ridge";
              break;
            case "etched":
              e.style = "groove";
              break;
            case "lowered":
              e.style = "inset";
              break;
            case "raised":
              e.style = "outset";
              break;
          }
          return e;
        }
      };
      Z2 = class extends kt {
        static {
          p(this, "Encoding");
        }
        constructor(e) {
          super(he, "encoding", ["adbe.x509.rsa_sha1", "adbe.pkcs7.detached", "adbe.pkcs7.sha1"]), this.id = e.id || "", this.use = e.use || "", this.usehref = e.usehref || "";
        }
      };
      e9 = class extends X {
        static {
          p(this, "Encodings");
        }
        constructor(e) {
          super(he, "encodings", true), this.id = e.id || "", this.type = ne(e.type, ["optional", "required"]), this.use = e.use || "", this.usehref = e.usehref || "", this.encoding = new R();
        }
      };
      t9 = class extends X {
        static {
          p(this, "Encrypt");
        }
        constructor(e) {
          super(he, "encrypt", true), this.id = e.id || "", this.use = e.use || "", this.usehref = e.usehref || "", this.certificate = null;
        }
      };
      n9 = class extends X {
        static {
          p(this, "EncryptData");
        }
        constructor(e) {
          super(he, "encryptData", true), this.id = e.id || "", this.operation = ne(e.operation, ["encrypt", "decrypt"]), this.target = e.target || "", this.use = e.use || "", this.usehref = e.usehref || "", this.filter = null, this.manifest = null;
        }
      };
      s9 = class extends X {
        static {
          p(this, "Encryption");
        }
        constructor(e) {
          super(he, "encryption", true), this.id = e.id || "", this.type = ne(e.type, ["optional", "required"]), this.use = e.use || "", this.usehref = e.usehref || "", this.certificate = new R();
        }
      };
      i9 = class extends kt {
        static {
          p(this, "EncryptionMethod");
        }
        constructor(e) {
          super(he, "encryptionMethod", ["", "AES256-CBC", "TRIPLEDES-CBC", "AES128-CBC", "AES192-CBC"]), this.id = e.id || "", this.use = e.use || "", this.usehref = e.usehref || "";
        }
      };
      a9 = class extends X {
        static {
          p(this, "EncryptionMethods");
        }
        constructor(e) {
          super(he, "encryptionMethods", true), this.id = e.id || "", this.type = ne(e.type, ["optional", "required"]), this.use = e.use || "", this.usehref = e.usehref || "", this.encryptionMethod = new R();
        }
      };
      r9 = class extends X {
        static {
          p(this, "Event");
        }
        constructor(e) {
          super(he, "event", true), this.activity = ne(e.activity, ["click", "change", "docClose", "docReady", "enter", "exit", "full", "indexChange", "initialize", "mouseDown", "mouseEnter", "mouseExit", "mouseUp", "postExecute", "postOpen", "postPrint", "postSave", "postSign", "postSubmit", "preExecute", "preOpen", "prePrint", "preSave", "preSign", "preSubmit", "ready", "validationState"]), this.id = e.id || "", this.listen = ne(e.listen, ["refOnly", "refAndDescendents"]), this.name = e.name || "", this.ref = e.ref || "", this.use = e.use || "", this.usehref = e.usehref || "", this.extras = null, this.encryptData = null, this.execute = null, this.script = null, this.signData = null, this.submit = null;
        }
      };
      o9 = class extends Ht {
        static {
          p(this, "ExData");
        }
        constructor(e) {
          super(he, "exData"), this.contentType = e.contentType || "", this.href = e.href || "", this.id = e.id || "", this.maxLength = He({ data: e.maxLength, defaultValue: -1, validate: p((n) => n >= -1, "validate") }), this.name = e.name || "", this.rid = e.rid || "", this.transferEncoding = ne(e.transferEncoding, ["none", "base64", "package"]), this.use = e.use || "", this.usehref = e.usehref || "";
        }
        [cc]() {
          return this.contentType === "text/html";
        }
        [Zs](e) {
          return this.contentType === "text/html" && e[Vt] === Kt.xhtml.id ? (this[ee] = e, true) : this.contentType === "text/xml" ? (this[ee] = e, true) : false;
        }
        [Pe](e) {
          return this.contentType !== "text/html" || !this[ee] ? Ee.EMPTY : this[ee][Pe](e);
        }
      };
      l9 = class extends X {
        static {
          p(this, "ExObject");
        }
        constructor(e) {
          super(he, "exObject", true), this.archive = e.archive || "", this.classId = e.classId || "", this.codeBase = e.codeBase || "", this.codeType = e.codeType || "", this.id = e.id || "", this.name = e.name || "", this.use = e.use || "", this.usehref = e.usehref || "", this.extras = null, this.boolean = new R(), this.date = new R(), this.dateTime = new R(), this.decimal = new R(), this.exData = new R(), this.exObject = new R(), this.float = new R(), this.image = new R(), this.integer = new R(), this.text = new R(), this.time = new R();
        }
      };
      T1 = class extends X {
        static {
          p(this, "ExclGroup");
        }
        constructor(e) {
          super(he, "exclGroup", true), this.access = ne(e.access, ["open", "nonInteractive", "protected", "readOnly"]), this.accessKey = e.accessKey || "", this.anchorType = ne(e.anchorType, ["topLeft", "bottomCenter", "bottomLeft", "bottomRight", "middleCenter", "middleLeft", "middleRight", "topCenter", "topRight"]), this.colSpan = He({ data: e.colSpan, defaultValue: 1, validate: p((n) => n >= 1 || n === -1, "validate") }), this.h = e.h ? ve(e.h) : "", this.hAlign = ne(e.hAlign, ["left", "center", "justify", "justifyAll", "radix", "right"]), this.id = e.id || "", this.layout = ne(e.layout, ["position", "lr-tb", "rl-row", "rl-tb", "row", "table", "tb"]), this.maxH = ve(e.maxH, "0pt"), this.maxW = ve(e.maxW, "0pt"), this.minH = ve(e.minH, "0pt"), this.minW = ve(e.minW, "0pt"), this.name = e.name || "", this.presence = ne(e.presence, ["visible", "hidden", "inactive", "invisible"]), this.relevant = Ls(e.relevant), this.use = e.use || "", this.usehref = e.usehref || "", this.w = e.w ? ve(e.w) : "", this.x = ve(e.x, "0pt"), this.y = ve(e.y, "0pt"), this.assist = null, this.bind = null, this.border = null, this.calculate = null, this.caption = null, this.desc = null, this.extras = null, this.margin = null, this.para = null, this.traversal = null, this.validate = null, this.connect = new R(), this.event = new R(), this.field = new R(), this.setProperty = new R();
        }
        [xa]() {
          return true;
        }
        [po]() {
          return true;
        }
        [Jn](e) {
          for (const n of this.field.children) {
            if (!n.value) {
              const s = new _c({});
              n[Mt](s), n.value = s;
            }
            n.value[Jn](e);
          }
        }
        [ki]() {
          return this.layout.endsWith("-tb") && this[V].attempt === 0 && this[V].numberInLine > 0 || this[Ue]()[ki]();
        }
        [xi]() {
          const e = this[Wt]();
          return e[xi]() ? this[V]._isSplittable !== void 0 ? this[V]._isSplittable : this.layout === "position" || this.layout.includes("row") ? (this[V]._isSplittable = false, false) : e.layout?.endsWith("-tb") && e[V].numberInLine !== 0 ? false : (this[V]._isSplittable = true, true) : false;
        }
        [fo]() {
          return m1(this);
        }
        [ba](e, n) {
          g1(this, e, n);
        }
        [wa]() {
          return b1(this);
        }
        [Pe](e) {
          if (i0(this), this.presence === "hidden" || this.presence === "inactive" || this.h === 0 || this.w === 0) return Ee.EMPTY;
          t0(this);
          const n = [], s = { id: this[xt], class: [] };
          jc(this, s.class), this[V] ||= /* @__PURE__ */ Object.create(null), Object.assign(this[V], { children: n, attributes: s, attempt: 0, line: null, numberInLine: 0, availableSpace: { width: Math.min(this.w || 1 / 0, e.width), height: Math.min(this.h || 1 / 0, e.height) }, width: 0, height: 0, prevHeight: 0, currentWidth: 0 });
          const i = this[xi]();
          if (i || r0(this), !n0(this, e)) return Ee.FAILURE;
          const a = /* @__PURE__ */ new Set(["field"]);
          if (this.layout.includes("row")) {
            const w = this[Wt]().columnWidths;
            Array.isArray(w) && w.length > 0 && (this[V].columnWidths = w, this[V].currentColumn = 0);
          }
          const r = Wn(this, "anchorType", "dimensions", "position", "presence", "border", "margin", "hAlign"), o = ["xfaExclgroup"], l = l1(this);
          l && o.push(l), rr(this) && o.push("xfaPrintOnly"), s.style = r, s.class = o, this.name && (s.xfaName = this.name), this[ir]();
          const f = this.layout === "lr-tb" || this.layout === "rl-tb", c = f ? s0 : 1;
          for (; this[V].attempt < c; this[V].attempt++) {
            f && this[V].attempt === s0 - 1 && (this[V].numberInLine = 0);
            const w = this[Ni]({ filter: a, include: true });
            if (w.success) break;
            if (w.isBreak()) return this[Qn](), w;
            if (f && this[V].attempt === 0 && this[V].numberInLine === 0 && !this[$t]()[V].noLayoutFailure) {
              this[V].attempt = c;
              break;
            }
          }
          if (this[Qn](), i || o0(this), this[V].attempt === c) return i || delete this[V], Ee.FAILURE;
          let h = 0, u = 0;
          this.margin && (h = this.margin.leftInset + this.margin.rightInset, u = this.margin.topInset + this.margin.bottomInset);
          const d = Math.max(this[V].width + h, this.w || 0), m = Math.max(this[V].height + u, this.h || 0), g = [this.x, this.y, d, m];
          this.w === "" && (r.width = Oe(d)), this.h === "" && (r.height = Oe(m));
          const b = { name: "div", attributes: s, children: n };
          return a0(this, s), delete this[V], Ee.success(ja(this, b), g);
        }
      };
      f9 = class extends X {
        static {
          p(this, "Execute");
        }
        constructor(e) {
          super(he, "execute"), this.connection = e.connection || "", this.executeType = ne(e.executeType, ["import", "remerge"]), this.id = e.id || "", this.runAt = ne(e.runAt, ["client", "both", "server"]), this.use = e.use || "", this.usehref = e.usehref || "";
        }
      };
      c9 = class extends X {
        static {
          p(this, "Extras");
        }
        constructor(e) {
          super(he, "extras", true), this.id = e.id || "", this.name = e.name || "", this.use = e.use || "", this.usehref = e.usehref || "", this.boolean = new R(), this.date = new R(), this.dateTime = new R(), this.decimal = new R(), this.exData = new R(), this.extras = new R(), this.float = new R(), this.image = new R(), this.integer = new R(), this.text = new R(), this.time = new R();
        }
      };
      Ic = class extends X {
        static {
          p(this, "Field");
        }
        constructor(e) {
          super(he, "field", true), this.access = ne(e.access, ["open", "nonInteractive", "protected", "readOnly"]), this.accessKey = e.accessKey || "", this.anchorType = ne(e.anchorType, ["topLeft", "bottomCenter", "bottomLeft", "bottomRight", "middleCenter", "middleLeft", "middleRight", "topCenter", "topRight"]), this.colSpan = He({ data: e.colSpan, defaultValue: 1, validate: p((n) => n >= 1 || n === -1, "validate") }), this.h = e.h ? ve(e.h) : "", this.hAlign = ne(e.hAlign, ["left", "center", "justify", "justifyAll", "radix", "right"]), this.id = e.id || "", this.locale = e.locale || "", this.maxH = ve(e.maxH, "0pt"), this.maxW = ve(e.maxW, "0pt"), this.minH = ve(e.minH, "0pt"), this.minW = ve(e.minW, "0pt"), this.name = e.name || "", this.presence = ne(e.presence, ["visible", "hidden", "inactive", "invisible"]), this.relevant = Ls(e.relevant), this.rotate = He({ data: e.rotate, defaultValue: 0, validate: p((n) => n % 90 === 0, "validate") }), this.use = e.use || "", this.usehref = e.usehref || "", this.w = e.w ? ve(e.w) : "", this.x = ve(e.x, "0pt"), this.y = ve(e.y, "0pt"), this.assist = null, this.bind = null, this.border = null, this.calculate = null, this.caption = null, this.desc = null, this.extras = null, this.font = null, this.format = null, this.items = new R(2), this.keep = null, this.margin = null, this.para = null, this.traversal = null, this.ui = null, this.validate = null, this.value = null, this.bindItems = new R(), this.connect = new R(), this.event = new R(), this.setProperty = new R();
        }
        [xa]() {
          return true;
        }
        [Jn](e) {
          qc(this, e);
        }
        [Pe](e) {
          if (i0(this), !this.ui) {
            this.ui = new Rc({}), this.ui[qt] = this[qt], this[Mt](this.ui);
            let w;
            switch (this.items.children.length) {
              case 0:
                w = new P1({}), this.ui.textEdit = w;
                break;
              case 1:
                w = new A1({}), this.ui.checkButton = w;
                break;
              case 2:
                w = new S1({}), this.ui.choiceList = w;
                break;
            }
            this.ui[Mt](w);
          }
          if (!this.ui || this.presence === "hidden" || this.presence === "inactive" || this.h === 0 || this.w === 0) return Ee.EMPTY;
          this.caption && delete this.caption[V], this[ir]();
          const n = this.caption ? this.caption[Pe](e).html : null, s = this.w, i = this.h;
          let a = 0, r = 0;
          this.margin && (a = this.margin.leftInset + this.margin.rightInset, r = this.margin.topInset + this.margin.bottomInset);
          let o = null;
          if (this.w === "" || this.h === "") {
            let w = null, x = null, y = 0, j = 0;
            if (this.ui.checkButton) y = j = this.ui.checkButton.size;
            else {
              const { w: v, h: q } = yc(this, e);
              v !== null ? (y = v, j = q) : j = m2(this.font, true).lineNoGap;
            }
            if (o = w1(this.ui[Tn]()), y += o.w, j += o.h, this.caption) {
              const { w: v, h: q, isBroken: A } = this.caption[Tn](e);
              if (A && this[Wt]()[ki]()) return this[Qn](), Ee.FAILURE;
              switch (w = v, x = q, this.caption.placement) {
                case "left":
                case "right":
                case "inline":
                  w += y;
                  break;
                case "top":
                case "bottom":
                  x += j;
                  break;
              }
            } else w = y, x = j;
            w && this.w === "" && (w += a, this.w = Math.min(this.maxW <= 0 ? 1 / 0 : this.maxW, this.minW + 1 < w ? w : this.minW)), x && this.h === "" && (x += r, this.h = Math.min(this.maxH <= 0 ? 1 / 0 : this.maxH, this.minH + 1 < x ? x : this.minH));
          }
          if (this[Qn](), t0(this), r0(this), !n0(this, e)) return this.w = s, this.h = i, this[Qn](), Ee.FAILURE;
          o0(this);
          const l = Wn(this, "font", "dimensions", "position", "rotate", "anchorType", "presence", "margin", "hAlign");
          a1(this, l);
          const f = ["xfaField"];
          this.font && f.push("xfaFont"), rr(this) && f.push("xfaPrintOnly");
          const c = { style: l, id: this[xt], class: f };
          l.margin && (l.padding = l.margin, delete l.margin), jc(this, f), this.name && (c.xfaName = this.name);
          const h = [], u = { name: "div", attributes: c, children: h };
          a0(this, c);
          const d = this.border ? this.border[ft]() : null, m = o1(this, u, e), g = this.ui[Pe]().html;
          if (!g) return Object.assign(l, d), Ee.success(ja(this, u), m);
          this[Hs] && (g.children?.[0] ? g.children[0].attributes.tabindex = this[Hs] : g.attributes.tabindex = this[Hs]), g.attributes.style ||= /* @__PURE__ */ Object.create(null);
          let b = null;
          if (this.ui.button ? (g.children.length === 1 && ([b] = g.children.splice(0, 1)), Object.assign(g.attributes.style, d)) : Object.assign(l, d), h.push(g), this.value) {
            if (this.ui.imageEdit) g.children.push(this.value[Pe]().html);
            else if (!this.ui.button) {
              let w = "";
              if (this.value.exData) w = this.value.exData[nn]();
              else if (this.value.text) w = this.value.text[Tn]();
              else {
                const x = this.value[Pe]().html;
                x !== null && (w = x.children[0].value);
              }
              this.ui.textEdit && this.value.text?.maxChars && (g.children[0].attributes.maxLength = this.value.text.maxChars), w && (this.ui.numericEdit && (w = parseFloat(w), w = isNaN(w) ? "" : w.toString()), g.children[0].name === "textarea" ? g.children[0].attributes.textContent = w : g.children[0].attributes.value = w);
            }
          }
          if (!this.ui.imageEdit && g.children?.[0] && this.h) {
            o = o || w1(this.ui[Tn]());
            let w = 0;
            if (this.caption && ["top", "bottom"].includes(this.caption.placement)) {
              w = this.caption.reserve, w <= 0 && (w = this.caption[Tn](e).h);
              const x = this.h - w - r - o.h;
              g.children[0].attributes.style.height = Oe(x);
            } else g.children[0].attributes.style.height = "100%";
          }
          if (b && g.children.push(b), !n) return g.attributes.class && g.attributes.class.push("xfaLeft"), this.w = s, this.h = i, Ee.success(ja(this, u), m);
          if (this.ui.button) return l.padding && delete l.padding, n.name === "div" && (n.name = "span"), g.children.push(n), Ee.success(u, m);
          switch (this.ui.checkButton && (n.attributes.class[0] = "xfaCaptionForCheckButton"), g.attributes.class ||= [], g.children.splice(0, 0, n), this.caption.placement) {
            case "left":
              g.attributes.class.push("xfaLeft");
              break;
            case "right":
              g.attributes.class.push("xfaRight");
              break;
            case "top":
              g.attributes.class.push("xfaTop");
              break;
            case "bottom":
              g.attributes.class.push("xfaBottom");
              break;
            case "inline":
              g.attributes.class.push("xfaLeft");
              break;
          }
          return this.w = s, this.h = i, Ee.success(ja(this, u), m);
        }
      };
      h9 = class extends X {
        static {
          p(this, "Fill");
        }
        constructor(e) {
          super(he, "fill", true), this.id = e.id || "", this.presence = ne(e.presence, ["visible", "hidden", "inactive", "invisible"]), this.use = e.use || "", this.usehref = e.usehref || "", this.color = null, this.extras = null, this.linear = null, this.pattern = null, this.radial = null, this.solid = null, this.stipple = null;
        }
        [ft]() {
          const e = this[Ue](), s = e[Ue]()[Ue](), i = /* @__PURE__ */ Object.create(null);
          let a = "color", r = a;
          e instanceof j1 && (a = "background-color", r = "background", s instanceof Rc && (i.backgroundColor = "white")), (e instanceof B1 || e instanceof y1) && (a = r = "fill", i.fill = "white");
          for (const o of Object.getOwnPropertyNames(this)) {
            if (o === "extras" || o === "color") continue;
            const l = this[o];
            if (!(l instanceof X)) continue;
            const f = l[ft](this.color);
            return f && (i[f.startsWith("#") ? a : r] = f), i;
          }
          if (this.color?.value) {
            const o = this.color[ft]();
            i[o.startsWith("#") ? a : r] = o;
          }
          return i;
        }
      };
      u9 = class extends X {
        static {
          p(this, "Filter");
        }
        constructor(e) {
          super(he, "filter", true), this.addRevocationInfo = ne(e.addRevocationInfo, ["", "required", "optional", "none"]), this.id = e.id || "", this.name = e.name || "", this.use = e.use || "", this.usehref = e.usehref || "", this.version = He({ data: this.version, defaultValue: 5, validate: p((n) => n >= 1 && n <= 5, "validate") }), this.appearanceFilter = null, this.certificates = null, this.digestMethods = null, this.encodings = null, this.encryptionMethods = null, this.handler = null, this.lockDocument = null, this.mdp = null, this.reasons = null, this.timeStamp = null;
        }
      };
      d9 = class extends Ht {
        static {
          p(this, "Float");
        }
        constructor(e) {
          super(he, "float"), this.id = e.id || "", this.name = e.name || "", this.use = e.use || "", this.usehref = e.usehref || "";
        }
        [vt]() {
          const e = parseFloat(this[ee].trim());
          this[ee] = isNaN(e) ? null : e;
        }
        [Pe](e) {
          return $i(this[ee] !== null ? this[ee].toString() : "");
        }
      };
      p9 = class extends X {
        static {
          p(this, "template_Font");
        }
        constructor(e) {
          super(he, "font", true), this.baselineShift = ve(e.baselineShift), this.fontHorizontalScale = Ql({ data: e.fontHorizontalScale, defaultValue: 100, validate: p((n) => n >= 0, "validate") }), this.fontVerticalScale = Ql({ data: e.fontVerticalScale, defaultValue: 100, validate: p((n) => n >= 0, "validate") }), this.id = e.id || "", this.kerningMode = ne(e.kerningMode, ["none", "pair"]), this.letterSpacing = ve(e.letterSpacing, "0"), this.lineThrough = He({ data: e.lineThrough, defaultValue: 0, validate: p((n) => n === 1 || n === 2, "validate") }), this.lineThroughPeriod = ne(e.lineThroughPeriod, ["all", "word"]), this.overline = He({ data: e.overline, defaultValue: 0, validate: p((n) => n === 1 || n === 2, "validate") }), this.overlinePeriod = ne(e.overlinePeriod, ["all", "word"]), this.posture = ne(e.posture, ["normal", "italic"]), this.size = ve(e.size, "10pt"), this.typeface = e.typeface || "Courier", this.underline = He({ data: e.underline, defaultValue: 0, validate: p((n) => n === 1 || n === 2, "validate") }), this.underlinePeriod = ne(e.underlinePeriod, ["all", "word"]), this.use = e.use || "", this.usehref = e.usehref || "", this.weight = ne(e.weight, ["normal", "bold"]), this.extras = null, this.fill = null;
        }
        [As](e) {
          super[As](e), this[qt].usedTypefaces.add(this.typeface);
        }
        [ft]() {
          const e = Wn(this, "fill"), n = e.color;
          return n && (n === "#000000" ? delete e.color : n.startsWith("#") || (e.background = n, e.backgroundClip = "text", e.color = "transparent")), this.baselineShift && (e.verticalAlign = Oe(this.baselineShift)), e.fontKerning = this.kerningMode === "none" ? "none" : "normal", e.letterSpacing = Oe(this.letterSpacing), this.lineThrough !== 0 && (e.textDecoration = "line-through", this.lineThrough === 2 && (e.textDecorationStyle = "double")), this.overline !== 0 && (e.textDecoration = "overline", this.overline === 2 && (e.textDecorationStyle = "double")), e.fontStyle = this.posture, e.fontSize = Oe(0.99 * this.size), u1(this, this, this[qt].fontFinder, e), this.underline !== 0 && (e.textDecoration = "underline", this.underline === 2 && (e.textDecorationStyle = "double")), e.fontWeight = this.weight, e;
        }
      };
      m9 = class extends X {
        static {
          p(this, "Format");
        }
        constructor(e) {
          super(he, "format", true), this.id = e.id || "", this.use = e.use || "", this.usehref = e.usehref || "", this.extras = null, this.picture = null;
        }
      };
      g9 = class extends Ze {
        static {
          p(this, "Handler");
        }
        constructor(e) {
          super(he, "handler"), this.id = e.id || "", this.type = ne(e.type, ["optional", "required"]), this.use = e.use || "", this.usehref = e.usehref || "";
        }
      };
      b9 = class extends X {
        static {
          p(this, "Hyphenation");
        }
        constructor(e) {
          super(he, "hyphenation"), this.excludeAllCaps = He({ data: e.excludeAllCaps, defaultValue: 0, validate: p((n) => n === 1, "validate") }), this.excludeInitialCap = He({ data: e.excludeInitialCap, defaultValue: 0, validate: p((n) => n === 1, "validate") }), this.hyphenate = He({ data: e.hyphenate, defaultValue: 0, validate: p((n) => n === 1, "validate") }), this.id = e.id || "", this.pushCharacterCount = He({ data: e.pushCharacterCount, defaultValue: 3, validate: p((n) => n >= 0, "validate") }), this.remainCharacterCount = He({ data: e.remainCharacterCount, defaultValue: 3, validate: p((n) => n >= 0, "validate") }), this.use = e.use || "", this.usehref = e.usehref || "", this.wordCharacterCount = He({ data: e.wordCharacterCount, defaultValue: 7, validate: p((n) => n >= 0, "validate") });
        }
      };
      E1 = class extends Ze {
        static {
          p(this, "Image");
        }
        constructor(e) {
          super(he, "image"), this.aspect = ne(e.aspect, ["fit", "actual", "height", "none", "width"]), this.contentType = e.contentType || "", this.href = e.href || "", this.id = e.id || "", this.name = e.name || "", this.transferEncoding = ne(e.transferEncoding, ["base64", "none", "package"]), this.use = e.use || "", this.usehref = e.usehref || "";
        }
        [Pe]() {
          if (this.contentType && !C2.has(this.contentType.toLowerCase())) return Ee.EMPTY;
          let e = this[qt].images?.get(this.href);
          if (!e && (this.href || !this[ee]) || (!e && this.transferEncoding === "base64" && (e = Uint8Array.fromBase64(this[ee])), !e)) return Ee.EMPTY;
          if (!this.contentType) {
            for (const [a, r] of I2) if (e.length > a.length && a.every((o, l) => o === e[l])) {
              this.contentType = r;
              break;
            }
            if (!this.contentType) return Ee.EMPTY;
          }
          const n = new Blob([e], { type: this.contentType });
          let s;
          switch (this.aspect) {
            case "fit":
            case "actual":
              break;
            case "height":
              s = { height: "100%", objectFit: "fill" };
              break;
            case "none":
              s = { width: "100%", height: "100%", objectFit: "fill" };
              break;
            case "width":
              s = { width: "100%", objectFit: "fill" };
              break;
          }
          const i = this[Ue]();
          return Ee.success({ name: "img", attributes: { class: ["xfaImage"], style: s, src: URL.createObjectURL(n), alt: i ? qa(i[Ue]()) : null } });
        }
      };
      w9 = class extends X {
        static {
          p(this, "ImageEdit");
        }
        constructor(e) {
          super(he, "imageEdit", true), this.data = ne(e.data, ["link", "embed"]), this.id = e.id || "", this.use = e.use || "", this.usehref = e.usehref || "", this.border = null, this.extras = null, this.margin = null;
        }
        [Pe](e) {
          return this.data === "embed" ? Ee.success({ name: "div", children: [], attributes: {} }) : Ee.EMPTY;
        }
      };
      x9 = class extends Ht {
        static {
          p(this, "Integer");
        }
        constructor(e) {
          super(he, "integer"), this.id = e.id || "", this.name = e.name || "", this.use = e.use || "", this.usehref = e.usehref || "";
        }
        [vt]() {
          const e = parseInt(this[ee].trim(), 10);
          this[ee] = isNaN(e) ? null : e;
        }
        [Pe](e) {
          return $i(this[ee] !== null ? this[ee].toString() : "");
        }
      };
      k9 = class extends X {
        static {
          p(this, "Issuers");
        }
        constructor(e) {
          super(he, "issuers", true), this.id = e.id || "", this.type = ne(e.type, ["optional", "required"]), this.use = e.use || "", this.usehref = e.usehref || "", this.certificate = new R();
        }
      };
      Tc = class extends X {
        static {
          p(this, "Items");
        }
        constructor(e) {
          super(he, "items", true), this.id = e.id || "", this.name = e.name || "", this.presence = ne(e.presence, ["visible", "hidden", "inactive", "invisible"]), this.ref = e.ref || "", this.save = He({ data: e.save, defaultValue: 0, validate: p((n) => n === 1, "validate") }), this.use = e.use || "", this.usehref = e.usehref || "", this.boolean = new R(), this.date = new R(), this.dateTime = new R(), this.decimal = new R(), this.exData = new R(), this.float = new R(), this.image = new R(), this.integer = new R(), this.text = new R(), this.time = new R();
        }
        [Pe]() {
          const e = [];
          for (const n of this[gn]()) e.push(n[nn]());
          return Ee.success(e);
        }
      };
      y9 = class extends X {
        static {
          p(this, "Keep");
        }
        constructor(e) {
          super(he, "keep", true), this.id = e.id || "";
          const n = ["none", "contentArea", "pageArea"];
          this.intact = ne(e.intact, n), this.next = ne(e.next, n), this.previous = ne(e.previous, n), this.use = e.use || "", this.usehref = e.usehref || "", this.extras = null;
        }
      };
      j9 = class extends X {
        static {
          p(this, "KeyUsage");
        }
        constructor(e) {
          super(he, "keyUsage");
          const n = ["", "yes", "no"];
          this.crlSign = ne(e.crlSign, n), this.dataEncipherment = ne(e.dataEncipherment, n), this.decipherOnly = ne(e.decipherOnly, n), this.digitalSignature = ne(e.digitalSignature, n), this.encipherOnly = ne(e.encipherOnly, n), this.id = e.id || "", this.keyAgreement = ne(e.keyAgreement, n), this.keyCertSign = ne(e.keyCertSign, n), this.keyEncipherment = ne(e.keyEncipherment, n), this.nonRepudiation = ne(e.nonRepudiation, n), this.type = ne(e.type, ["optional", "required"]), this.use = e.use || "", this.usehref = e.usehref || "";
        }
      };
      v9 = class extends X {
        static {
          p(this, "Line");
        }
        constructor(e) {
          super(he, "line", true), this.hand = ne(e.hand, ["even", "left", "right"]), this.id = e.id || "", this.slope = ne(e.slope, ["\\", "/"]), this.use = e.use || "", this.usehref = e.usehref || "", this.edge = null;
        }
        [Pe]() {
          const e = this[Ue]()[Ue](), n = this.edge || new qo({}), s = n[ft](), i = /* @__PURE__ */ Object.create(null), a = n.presence === "visible" ? n.thickness : 0;
          i.strokeWidth = Oe(a), i.stroke = s.color;
          let r, o, l, f, c = "100%", h = "100%";
          e.w <= a ? ([r, o, l, f] = ["50%", 0, "50%", "100%"], c = i.strokeWidth) : e.h <= a ? ([r, o, l, f] = [0, "50%", "100%", "50%"], h = i.strokeWidth) : this.slope === "\\" ? [r, o, l, f] = [0, 0, "100%", "100%"] : [r, o, l, f] = [0, "100%", "100%", 0];
          const d = { name: "svg", children: [{ name: "line", attributes: { xmlns: va, x1: r, y1: o, x2: l, y2: f, style: i } }], attributes: { xmlns: va, width: c, height: h, style: { overflow: "visible" } } };
          return vc(e) ? Ee.success({ name: "div", attributes: { style: { display: "inline", width: "100%", height: "100%" } }, children: [d] }) : (d.attributes.style.position = "absolute", Ee.success(d));
        }
      };
      q9 = class extends X {
        static {
          p(this, "Linear");
        }
        constructor(e) {
          super(he, "linear", true), this.id = e.id || "", this.type = ne(e.type, ["toRight", "toBottom", "toLeft", "toTop"]), this.use = e.use || "", this.usehref = e.usehref || "", this.color = null, this.extras = null;
        }
        [ft](e) {
          e = e ? e[ft]() : "#FFFFFF";
          const n = this.type.replace(/([RBLT])/, " $1").toLowerCase(), s = this.color ? this.color[ft]() : "#000000";
          return `linear-gradient(${n}, ${e}, ${s})`;
        }
      };
      A9 = class extends Ht {
        static {
          p(this, "LockDocument");
        }
        constructor(e) {
          super(he, "lockDocument"), this.id = e.id || "", this.type = ne(e.type, ["optional", "required"]), this.use = e.use || "", this.usehref = e.usehref || "";
        }
        [vt]() {
          this[ee] = ne(this[ee], ["auto", "0", "1"]);
        }
      };
      S9 = class extends X {
        static {
          p(this, "Manifest");
        }
        constructor(e) {
          super(he, "manifest", true), this.action = ne(e.action, ["include", "all", "exclude"]), this.id = e.id || "", this.name = e.name || "", this.use = e.use || "", this.usehref = e.usehref || "", this.extras = null, this.ref = new R();
        }
      };
      C9 = class extends X {
        static {
          p(this, "Margin");
        }
        constructor(e) {
          super(he, "margin", true), this.bottomInset = ve(e.bottomInset, "0"), this.id = e.id || "", this.leftInset = ve(e.leftInset, "0"), this.rightInset = ve(e.rightInset, "0"), this.topInset = ve(e.topInset, "0"), this.use = e.use || "", this.usehref = e.usehref || "", this.extras = null;
        }
        [ft]() {
          return { margin: Oe(this.topInset) + " " + Oe(this.rightInset) + " " + Oe(this.bottomInset) + " " + Oe(this.leftInset) };
        }
      };
      I9 = class extends X {
        static {
          p(this, "Mdp");
        }
        constructor(e) {
          super(he, "mdp"), this.id = e.id || "", this.permissions = He({ data: e.permissions, defaultValue: 2, validate: p((n) => n === 1 || n === 3, "validate") }), this.signatureType = ne(e.signatureType, ["filler", "author"]), this.use = e.use || "", this.usehref = e.usehref || "";
        }
      };
      T9 = class extends X {
        static {
          p(this, "Medium");
        }
        constructor(e) {
          super(he, "medium"), this.id = e.id || "", this.imagingBBox = d2(e.imagingBBox), this.long = ve(e.long), this.orientation = ne(e.orientation, ["portrait", "landscape"]), this.short = ve(e.short), this.stock = e.stock || "", this.trayIn = ne(e.trayIn, ["auto", "delegate", "pageFront"]), this.trayOut = ne(e.trayOut, ["auto", "delegate"]), this.use = e.use || "", this.usehref = e.usehref || "";
        }
      };
      E9 = class extends X {
        static {
          p(this, "Message");
        }
        constructor(e) {
          super(he, "message", true), this.id = e.id || "", this.use = e.use || "", this.usehref = e.usehref || "", this.text = new R();
        }
      };
      F9 = class extends X {
        static {
          p(this, "NumericEdit");
        }
        constructor(e) {
          super(he, "numericEdit", true), this.hScrollPolicy = ne(e.hScrollPolicy, ["auto", "off", "on"]), this.id = e.id || "", this.use = e.use || "", this.usehref = e.usehref || "", this.border = null, this.comb = null, this.extras = null, this.margin = null;
        }
        [Pe](e) {
          const n = Wn(this, "border", "font", "margin"), s = this[Ue]()[Ue](), i = { name: "input", attributes: { type: "text", fieldId: s[xt], dataId: s[Ss]?.[xt] || s[xt], class: ["xfaTextfield"], style: n, "aria-label": qa(s), "aria-required": false } };
          return vo(s) && (i.attributes["aria-required"] = true, i.attributes.required = true), Ee.success({ name: "label", attributes: { class: ["xfaLabel"] }, children: [i] });
        }
      };
      B9 = class extends X {
        static {
          p(this, "Occur");
        }
        constructor(e) {
          super(he, "occur", true), this.id = e.id || "", this.initial = e.initial !== "" ? He({ data: e.initial, defaultValue: "", validate: p((n) => true, "validate") }) : "", this.max = e.max !== "" ? He({ data: e.max, defaultValue: -1, validate: p((n) => true, "validate") }) : "", this.min = e.min !== "" ? He({ data: e.min, defaultValue: 1, validate: p((n) => true, "validate") }) : "", this.use = e.use || "", this.usehref = e.usehref || "", this.extras = null;
        }
        [As]() {
          const e = this[Ue](), n = this.min;
          this.min === "" && (this.min = e instanceof or || e instanceof Ko ? 0 : 1), this.max === "" && (n === "" ? this.max = e instanceof or || e instanceof Ko ? -1 : 1 : this.max = this.min), this.max !== -1 && this.max < this.min && (this.max = this.min), this.initial === "" && (this.initial = e instanceof Bc ? 1 : this.min);
        }
      };
      R9 = class extends Ze {
        static {
          p(this, "Oid");
        }
        constructor(e) {
          super(he, "oid"), this.id = e.id || "", this.name = e.name || "", this.use = e.use || "", this.usehref = e.usehref || "";
        }
      };
      _9 = class extends X {
        static {
          p(this, "Oids");
        }
        constructor(e) {
          super(he, "oids", true), this.id = e.id || "", this.type = ne(e.type, ["optional", "required"]), this.use = e.use || "", this.usehref = e.usehref || "", this.oid = new R();
        }
      };
      F1 = class extends X {
        static {
          p(this, "Overflow");
        }
        constructor(e) {
          super(he, "overflow"), this.id = e.id || "", this.leader = e.leader || "", this.target = e.target || "", this.trailer = e.trailer || "", this.use = e.use || "", this.usehref = e.usehref || "";
        }
        [Tn]() {
          if (!this[V]) {
            const e = this[Ue](), n = this[$t](), s = n[ji](this.target, e), i = n[ji](this.leader, e), a = n[ji](this.trailer, e);
            this[V] = { target: s?.[0] || null, leader: i?.[0] || null, trailer: a?.[0] || null, addLeader: false, addTrailer: false };
          }
          return this[V];
        }
      };
      or = class extends X {
        static {
          p(this, "PageArea");
        }
        constructor(e) {
          super(he, "pageArea", true), this.blankOrNotBlank = ne(e.blankOrNotBlank, ["any", "blank", "notBlank"]), this.id = e.id || "", this.initialNumber = He({ data: e.initialNumber, defaultValue: 1, validate: p((n) => true, "validate") }), this.name = e.name || "", this.numbered = He({ data: e.numbered, defaultValue: 1, validate: p((n) => true, "validate") }), this.oddOrEven = ne(e.oddOrEven, ["any", "even", "odd"]), this.pagePosition = ne(e.pagePosition, ["any", "first", "last", "only", "rest"]), this.relevant = Ls(e.relevant), this.use = e.use || "", this.usehref = e.usehref || "", this.desc = null, this.extras = null, this.medium = null, this.occur = null, this.area = new R(), this.contentArea = new R(), this.draw = new R(), this.exclGroup = new R(), this.field = new R(), this.subform = new R();
        }
        [bo]() {
          return this[V] ? !this.occur || this.occur.max === -1 || this[V].numberOfUse < this.occur.max : (this[V] = { numberOfUse: 0 }, true);
        }
        [Za]() {
          delete this[V];
        }
        [wi]() {
          this[V] ||= { numberOfUse: 0 };
          const e = this[Ue]();
          return e.relation === "orderedOccurrence" && this[bo]() ? (this[V].numberOfUse += 1, this) : e[wi]();
        }
        [wa]() {
          return this[V].space || { width: 0, height: 0 };
        }
        [Pe]() {
          this[V] ||= { numberOfUse: 1 };
          const e = [];
          this[V].children = e;
          const n = /* @__PURE__ */ Object.create(null);
          if (this.medium && this.medium.short && this.medium.long) {
            if (n.width = Oe(this.medium.short), n.height = Oe(this.medium.long), this[V].space = { width: this.medium.short, height: this.medium.long }, this.medium.orientation === "landscape") {
              const s = n.width;
              n.width = n.height, n.height = s, this[V].space = { width: this.medium.long, height: this.medium.short };
            }
          } else F("XFA - No medium specified in pageArea: please file a bug.");
          return this[Ni]({ filter: /* @__PURE__ */ new Set(["area", "draw", "field", "subform"]), include: true }), this[Ni]({ filter: /* @__PURE__ */ new Set(["contentArea"]), include: true }), Ee.success({ name: "div", children: e, attributes: { class: ["xfaPage"], id: this[xt], style: n, xfaName: this.name } });
        }
      };
      Ko = class _Ko extends X {
        static {
          p(this, "PageSet");
        }
        constructor(e) {
          super(he, "pageSet", true), this.duplexImposition = ne(e.duplexImposition, ["longEdge", "shortEdge"]), this.id = e.id || "", this.name = e.name || "", this.relation = ne(e.relation, ["orderedOccurrence", "duplexPaginated", "simplexPaginated"]), this.relevant = Ls(e.relevant), this.use = e.use || "", this.usehref = e.usehref || "", this.extras = null, this.occur = null, this.pageArea = new R(), this.pageSet = new R();
        }
        [Za]() {
          for (const e of this.pageArea.children) e[Za]();
          for (const e of this.pageSet.children) e[Za]();
        }
        [bo]() {
          return !this.occur || this.occur.max === -1 || this[V].numberOfUse < this.occur.max;
        }
        [wi]() {
          if (this[V] ||= { numberOfUse: 1, pageIndex: -1, pageSetIndex: -1 }, this.relation === "orderedOccurrence") {
            if (this[V].pageIndex + 1 < this.pageArea.children.length) return this[V].pageIndex += 1, this.pageArea.children[this[V].pageIndex][wi]();
            if (this[V].pageSetIndex + 1 < this.pageSet.children.length) return this[V].pageSetIndex += 1, this.pageSet.children[this[V].pageSetIndex][wi]();
            if (this[bo]()) return this[V].numberOfUse += 1, this[V].pageIndex = -1, this[V].pageSetIndex = -1, this[wi]();
            const a = this[Ue]();
            return a instanceof _Ko ? a[wi]() : (this[Za](), this[wi]());
          }
          const e = this[$t]()[V].pageNumber, n = e % 2 === 0 ? "even" : "odd", s = e === 0 ? "first" : "rest";
          let i = this.pageArea.children.find((a) => a.oddOrEven === n && a.pagePosition === s);
          return i || (i = this.pageArea.children.find((a) => a.oddOrEven === "any" && a.pagePosition === s), i) || (i = this.pageArea.children.find((a) => a.oddOrEven === "any" && a.pagePosition === "any"), i) ? i : this.pageArea.children[0];
        }
      };
      P9 = class extends X {
        static {
          p(this, "Para");
        }
        constructor(e) {
          super(he, "para", true), this.hAlign = ne(e.hAlign, ["left", "center", "justify", "justifyAll", "radix", "right"]), this.id = e.id || "", this.lineHeight = e.lineHeight ? ve(e.lineHeight, "0pt") : "", this.marginLeft = e.marginLeft ? ve(e.marginLeft, "0pt") : "", this.marginRight = e.marginRight ? ve(e.marginRight, "0pt") : "", this.orphans = He({ data: e.orphans, defaultValue: 0, validate: p((n) => n >= 0, "validate") }), this.preserve = e.preserve || "", this.radixOffset = e.radixOffset ? ve(e.radixOffset, "0pt") : "", this.spaceAbove = e.spaceAbove ? ve(e.spaceAbove, "0pt") : "", this.spaceBelow = e.spaceBelow ? ve(e.spaceBelow, "0pt") : "", this.tabDefault = e.tabDefault ? ve(this.tabDefault) : "", this.tabStops = (e.tabStops || "").trim().split(/\s+/).map((n, s) => s % 2 === 1 ? ve(n) : n), this.textIndent = e.textIndent ? ve(e.textIndent, "0pt") : "", this.use = e.use || "", this.usehref = e.usehref || "", this.vAlign = ne(e.vAlign, ["top", "bottom", "middle"]), this.widows = He({ data: e.widows, defaultValue: 0, validate: p((n) => n >= 0, "validate") }), this.hyphenation = null;
        }
        [ft]() {
          const e = Wn(this, "hAlign");
          return this.marginLeft !== "" && (e.paddingLeft = Oe(this.marginLeft)), this.marginRight !== "" && (e.paddingRight = Oe(this.marginRight)), this.spaceAbove !== "" && (e.paddingTop = Oe(this.spaceAbove)), this.spaceBelow !== "" && (e.paddingBottom = Oe(this.spaceBelow)), this.textIndent !== "" && (e.textIndent = Oe(this.textIndent), f1(e)), this.lineHeight > 0 && (e.lineHeight = Oe(this.lineHeight)), this.tabDefault !== "" && (e.tabSize = Oe(this.tabDefault)), this.tabStops.length > 0, this.hyphenatation && Object.assign(e, this.hyphenatation[ft]()), e;
        }
      };
      D9 = class extends X {
        static {
          p(this, "PasswordEdit");
        }
        constructor(e) {
          super(he, "passwordEdit", true), this.hScrollPolicy = ne(e.hScrollPolicy, ["auto", "off", "on"]), this.id = e.id || "", this.passwordChar = e.passwordChar || "*", this.use = e.use || "", this.usehref = e.usehref || "", this.border = null, this.extras = null, this.margin = null;
        }
      };
      M9 = class extends X {
        static {
          p(this, "template_Pattern");
        }
        constructor(e) {
          super(he, "pattern", true), this.id = e.id || "", this.type = ne(e.type, ["crossHatch", "crossDiagonal", "diagonalLeft", "diagonalRight", "horizontal", "vertical"]), this.use = e.use || "", this.usehref = e.usehref || "", this.color = null, this.extras = null;
        }
        [ft](e) {
          e = e ? e[ft]() : "#FFFFFF";
          const n = this.color ? this.color[ft]() : "#000000", s = 5, i = "repeating-linear-gradient", a = `${e},${e} ${s}px,${n} ${s}px,${n} ${2 * s}px`;
          switch (this.type) {
            case "crossHatch":
              return `${i}(to top,${a}) ${i}(to right,${a})`;
            case "crossDiagonal":
              return `${i}(45deg,${a}) ${i}(-45deg,${a})`;
            case "diagonalLeft":
              return `${i}(45deg,${a})`;
            case "diagonalRight":
              return `${i}(-45deg,${a})`;
            case "horizontal":
              return `${i}(to top,${a})`;
            case "vertical":
              return `${i}(to right,${a})`;
          }
          return "";
        }
      };
      H9 = class extends Ze {
        static {
          p(this, "Picture");
        }
        constructor(e) {
          super(he, "picture"), this.id = e.id || "", this.use = e.use || "", this.usehref = e.usehref || "";
        }
      };
      O9 = class extends X {
        static {
          p(this, "Proto");
        }
        constructor(e) {
          super(he, "proto", true), this.appearanceFilter = new R(), this.arc = new R(), this.area = new R(), this.assist = new R(), this.barcode = new R(), this.bindItems = new R(), this.bookend = new R(), this.boolean = new R(), this.border = new R(), this.break = new R(), this.breakAfter = new R(), this.breakBefore = new R(), this.button = new R(), this.calculate = new R(), this.caption = new R(), this.certificate = new R(), this.certificates = new R(), this.checkButton = new R(), this.choiceList = new R(), this.color = new R(), this.comb = new R(), this.connect = new R(), this.contentArea = new R(), this.corner = new R(), this.date = new R(), this.dateTime = new R(), this.dateTimeEdit = new R(), this.decimal = new R(), this.defaultUi = new R(), this.desc = new R(), this.digestMethod = new R(), this.digestMethods = new R(), this.draw = new R(), this.edge = new R(), this.encoding = new R(), this.encodings = new R(), this.encrypt = new R(), this.encryptData = new R(), this.encryption = new R(), this.encryptionMethod = new R(), this.encryptionMethods = new R(), this.event = new R(), this.exData = new R(), this.exObject = new R(), this.exclGroup = new R(), this.execute = new R(), this.extras = new R(), this.field = new R(), this.fill = new R(), this.filter = new R(), this.float = new R(), this.font = new R(), this.format = new R(), this.handler = new R(), this.hyphenation = new R(), this.image = new R(), this.imageEdit = new R(), this.integer = new R(), this.issuers = new R(), this.items = new R(), this.keep = new R(), this.keyUsage = new R(), this.line = new R(), this.linear = new R(), this.lockDocument = new R(), this.manifest = new R(), this.margin = new R(), this.mdp = new R(), this.medium = new R(), this.message = new R(), this.numericEdit = new R(), this.occur = new R(), this.oid = new R(), this.oids = new R(), this.overflow = new R(), this.pageArea = new R(), this.pageSet = new R(), this.para = new R(), this.passwordEdit = new R(), this.pattern = new R(), this.picture = new R(), this.radial = new R(), this.reason = new R(), this.reasons = new R(), this.rectangle = new R(), this.ref = new R(), this.script = new R(), this.setProperty = new R(), this.signData = new R(), this.signature = new R(), this.signing = new R(), this.solid = new R(), this.speak = new R(), this.stipple = new R(), this.subform = new R(), this.subformSet = new R(), this.subjectDN = new R(), this.subjectDNs = new R(), this.submit = new R(), this.text = new R(), this.textEdit = new R(), this.time = new R(), this.timeStamp = new R(), this.toolTip = new R(), this.traversal = new R(), this.traverse = new R(), this.ui = new R(), this.validate = new R(), this.value = new R(), this.variables = new R();
        }
      };
      L9 = class extends X {
        static {
          p(this, "Radial");
        }
        constructor(e) {
          super(he, "radial", true), this.id = e.id || "", this.type = ne(e.type, ["toEdge", "toCenter"]), this.use = e.use || "", this.usehref = e.usehref || "", this.color = null, this.extras = null;
        }
        [ft](e) {
          e = e ? e[ft]() : "#FFFFFF";
          const n = this.color ? this.color[ft]() : "#000000";
          return `radial-gradient(circle at center, ${this.type === "toEdge" ? `${e},${n}` : `${n},${e}`})`;
        }
      };
      N9 = class extends Ze {
        static {
          p(this, "Reason");
        }
        constructor(e) {
          super(he, "reason"), this.id = e.id || "", this.name = e.name || "", this.use = e.use || "", this.usehref = e.usehref || "";
        }
      };
      z9 = class extends X {
        static {
          p(this, "Reasons");
        }
        constructor(e) {
          super(he, "reasons", true), this.id = e.id || "", this.type = ne(e.type, ["optional", "required"]), this.use = e.use || "", this.usehref = e.usehref || "", this.reason = new R();
        }
      };
      B1 = class extends X {
        static {
          p(this, "Rectangle");
        }
        constructor(e) {
          super(he, "rectangle", true), this.hand = ne(e.hand, ["even", "left", "right"]), this.id = e.id || "", this.use = e.use || "", this.usehref = e.usehref || "", this.corner = new R(4), this.edge = new R(4), this.fill = null;
        }
        [Pe]() {
          const e = this.edge.children.length ? this.edge.children[0] : new qo({}), n = e[ft](), s = /* @__PURE__ */ Object.create(null);
          this.fill?.presence === "visible" ? Object.assign(s, this.fill[ft]()) : s.fill = "transparent", s.strokeWidth = Oe(e.presence === "visible" ? e.thickness : 0), s.stroke = n.color;
          const a = (this.corner.children.length ? this.corner.children[0] : new C1({}))[ft](), o = { name: "svg", children: [{ name: "rect", attributes: { xmlns: va, width: "100%", height: "100%", x: 0, y: 0, rx: a.radius, ry: a.radius, style: s } }], attributes: { xmlns: va, style: { overflow: "visible" }, width: "100%", height: "100%" } }, l = this[Ue]()[Ue]();
          return vc(l) ? Ee.success({ name: "div", attributes: { style: { display: "inline", width: "100%", height: "100%" } }, children: [o] }) : (o.attributes.style.position = "absolute", Ee.success(o));
        }
      };
      U9 = class extends Ze {
        static {
          p(this, "RefElement");
        }
        constructor(e) {
          super(he, "ref"), this.id = e.id || "", this.use = e.use || "", this.usehref = e.usehref || "";
        }
      };
      G9 = class extends Ze {
        static {
          p(this, "Script");
        }
        constructor(e) {
          super(he, "script"), this.binding = e.binding || "", this.contentType = e.contentType || "", this.id = e.id || "", this.name = e.name || "", this.runAt = ne(e.runAt, ["client", "both", "server"]), this.use = e.use || "", this.usehref = e.usehref || "";
        }
      };
      Ec = class extends X {
        static {
          p(this, "SetProperty");
        }
        constructor(e) {
          super(he, "setProperty"), this.connection = e.connection || "", this.ref = e.ref || "", this.target = e.target || "";
        }
      };
      W9 = class extends X {
        static {
          p(this, "SignData");
        }
        constructor(e) {
          super(he, "signData", true), this.id = e.id || "", this.operation = ne(e.operation, ["sign", "clear", "verify"]), this.ref = e.ref || "", this.target = e.target || "", this.use = e.use || "", this.usehref = e.usehref || "", this.filter = null, this.manifest = null;
        }
      };
      $9 = class extends X {
        static {
          p(this, "Signature");
        }
        constructor(e) {
          super(he, "signature", true), this.id = e.id || "", this.type = ne(e.type, ["PDF1.3", "PDF1.6"]), this.use = e.use || "", this.usehref = e.usehref || "", this.border = null, this.extras = null, this.filter = null, this.manifest = null, this.margin = null;
        }
      };
      V9 = class extends X {
        static {
          p(this, "Signing");
        }
        constructor(e) {
          super(he, "signing", true), this.id = e.id || "", this.type = ne(e.type, ["optional", "required"]), this.use = e.use || "", this.usehref = e.usehref || "", this.certificate = new R();
        }
      };
      K9 = class extends X {
        static {
          p(this, "Solid");
        }
        constructor(e) {
          super(he, "solid", true), this.id = e.id || "", this.use = e.use || "", this.usehref = e.usehref || "", this.extras = null;
        }
        [ft](e) {
          return e ? e[ft]() : "#FFFFFF";
        }
      };
      X9 = class extends Ze {
        static {
          p(this, "Speak");
        }
        constructor(e) {
          super(he, "speak"), this.disable = He({ data: e.disable, defaultValue: 0, validate: p((n) => n === 1, "validate") }), this.id = e.id || "", this.priority = ne(e.priority, ["custom", "caption", "name", "toolTip"]), this.rid = e.rid || "", this.use = e.use || "", this.usehref = e.usehref || "";
        }
      };
      Y9 = class extends X {
        static {
          p(this, "Stipple");
        }
        constructor(e) {
          super(he, "stipple", true), this.id = e.id || "", this.rate = He({ data: e.rate, defaultValue: 50, validate: p((n) => n >= 0 && n <= 100, "validate") }), this.use = e.use || "", this.usehref = e.usehref || "", this.color = null, this.extras = null;
        }
        [ft](e) {
          const n = this.rate / 100;
          return pt.makeHexColor(Math.round(e.value.r * (1 - n) + this.value.r * n), Math.round(e.value.g * (1 - n) + this.value.g * n), Math.round(e.value.b * (1 - n) + this.value.b * n));
        }
      };
      R1 = class extends X {
        static {
          p(this, "Subform");
        }
        constructor(e) {
          super(he, "subform", true), this.access = ne(e.access, ["open", "nonInteractive", "protected", "readOnly"]), this.allowMacro = He({ data: e.allowMacro, defaultValue: 0, validate: p((n) => n === 1, "validate") }), this.anchorType = ne(e.anchorType, ["topLeft", "bottomCenter", "bottomLeft", "bottomRight", "middleCenter", "middleLeft", "middleRight", "topCenter", "topRight"]), this.colSpan = He({ data: e.colSpan, defaultValue: 1, validate: p((n) => n >= 1 || n === -1, "validate") }), this.columnWidths = (e.columnWidths || "").trim().split(/\s+/).map((n) => n === "-1" ? -1 : ve(n)), this.h = e.h ? ve(e.h) : "", this.hAlign = ne(e.hAlign, ["left", "center", "justify", "justifyAll", "radix", "right"]), this.id = e.id || "", this.layout = ne(e.layout, ["position", "lr-tb", "rl-row", "rl-tb", "row", "table", "tb"]), this.locale = e.locale || "", this.maxH = ve(e.maxH, "0pt"), this.maxW = ve(e.maxW, "0pt"), this.mergeMode = ne(e.mergeMode, ["consumeData", "matchTemplate"]), this.minH = ve(e.minH, "0pt"), this.minW = ve(e.minW, "0pt"), this.name = e.name || "", this.presence = ne(e.presence, ["visible", "hidden", "inactive", "invisible"]), this.relevant = Ls(e.relevant), this.restoreState = ne(e.restoreState, ["manual", "auto"]), this.scope = ne(e.scope, ["name", "none"]), this.use = e.use || "", this.usehref = e.usehref || "", this.w = e.w ? ve(e.w) : "", this.x = ve(e.x, "0pt"), this.y = ve(e.y, "0pt"), this.assist = null, this.bind = null, this.bookend = null, this.border = null, this.break = null, this.calculate = null, this.desc = null, this.extras = null, this.keep = null, this.margin = null, this.occur = null, this.overflow = null, this.pageSet = null, this.para = null, this.traversal = null, this.validate = null, this.variables = null, this.area = new R(), this.breakAfter = new R(), this.breakBefore = new R(), this.connect = new R(), this.draw = new R(), this.event = new R(), this.exObject = new R(), this.exclGroup = new R(), this.field = new R(), this.proto = new R(), this.setProperty = new R(), this.subform = new R(), this.subformSet = new R();
        }
        [Wt]() {
          const e = this[Ue]();
          return e instanceof Fc ? e[Wt]() : e;
        }
        [xa]() {
          return true;
        }
        [ki]() {
          return this.layout.endsWith("-tb") && this[V].attempt === 0 && this[V].numberInLine > 0 || this[Ue]()[ki]();
        }
        *[tr]() {
          yield* Ac(this);
        }
        [fo]() {
          return m1(this);
        }
        [ba](e, n) {
          g1(this, e, n);
        }
        [wa]() {
          return b1(this);
        }
        [xi]() {
          const e = this[Wt]();
          return e[xi]() ? this[V]._isSplittable !== void 0 ? this[V]._isSplittable : this.layout === "position" || this.layout.includes("row") ? (this[V]._isSplittable = false, false) : this.keep && this.keep.intact !== "none" ? (this[V]._isSplittable = false, false) : e.layout?.endsWith("-tb") && e[V].numberInLine !== 0 ? false : (this[V]._isSplittable = true, true) : false;
        }
        [Pe](e) {
          if (i0(this), this.break) {
            if (this.break.after !== "auto" || this.break.afterTarget !== "") {
              const j = new v1({ targetType: this.break.after, target: this.break.afterTarget, startNew: this.break.startNew.toString() });
              j[qt] = this[qt], this[Mt](j), this.breakAfter.push(j);
            }
            if (this.break.before !== "auto" || this.break.beforeTarget !== "") {
              const j = new q1({ targetType: this.break.before, target: this.break.beforeTarget, startNew: this.break.startNew.toString() });
              j[qt] = this[qt], this[Mt](j), this.breakBefore.push(j);
            }
            if (this.break.overflowTarget !== "") {
              const j = new F1({ target: this.break.overflowTarget, leader: this.break.overflowLeader, trailer: this.break.overflowTrailer });
              j[qt] = this[qt], this[Mt](j), this.overflow.push(j);
            }
            this[Ui](this.break), this.break = null;
          }
          if (this.presence === "hidden" || this.presence === "inactive") return Ee.EMPTY;
          if ((this.breakBefore.children.length > 1 || this.breakAfter.children.length > 1) && F("XFA - Several breakBefore or breakAfter in subforms: please file a bug."), this.breakBefore.children.length >= 1) {
            const j = this.breakBefore.children[0];
            if (x1(j)) return Ee.breakNode(j);
          }
          if (this[V]?.afterBreakAfter) return Ee.EMPTY;
          t0(this);
          const n = [], s = { id: this[xt], class: [] };
          jc(this, s.class), this[V] ||= /* @__PURE__ */ Object.create(null), Object.assign(this[V], { children: n, line: null, attributes: s, attempt: 0, numberInLine: 0, availableSpace: { width: Math.min(this.w || 1 / 0, e.width), height: Math.min(this.h || 1 / 0, e.height) }, width: 0, height: 0, prevHeight: 0, currentWidth: 0 });
          const i = this[$t](), a = i[V].noLayoutFailure, r = this[xi]();
          if (r || r0(this), !n0(this, e)) return Ee.FAILURE;
          const o = /* @__PURE__ */ new Set(["area", "draw", "exclGroup", "field", "subform", "subformSet"]);
          if (this.layout.includes("row")) {
            const j = this[Wt]().columnWidths;
            Array.isArray(j) && j.length > 0 && (this[V].columnWidths = j, this[V].currentColumn = 0);
          }
          const l = Wn(this, "anchorType", "dimensions", "position", "presence", "border", "margin", "hAlign"), f = ["xfaSubform"], c = l1(this);
          if (c && f.push(c), s.style = l, s.class = f, this.name && (s.xfaName = this.name), this.overflow) {
            const j = this.overflow[Tn]();
            j.addLeader && (j.addLeader = false, k1(this, j.leader, e));
          }
          this[ir]();
          const h = this.layout === "lr-tb" || this.layout === "rl-tb", u = h ? s0 : 1;
          for (; this[V].attempt < u; this[V].attempt++) {
            h && this[V].attempt === s0 - 1 && (this[V].numberInLine = 0);
            const j = this[Ni]({ filter: o, include: true });
            if (j.success) break;
            if (j.isBreak()) return this[Qn](), j;
            if (h && this[V].attempt === 0 && this[V].numberInLine === 0 && !i[V].noLayoutFailure) {
              this[V].attempt = u;
              break;
            }
          }
          if (this[Qn](), r || o0(this), i[V].noLayoutFailure = a, this[V].attempt === u) return this.overflow && (this[$t]()[V].overflowNode = this.overflow), r || delete this[V], Ee.FAILURE;
          if (this.overflow) {
            const j = this.overflow[Tn]();
            j.addTrailer && (j.addTrailer = false, k1(this, j.trailer, e));
          }
          let d = 0, m = 0;
          this.margin && (d = this.margin.leftInset + this.margin.rightInset, m = this.margin.topInset + this.margin.bottomInset);
          const g = Math.max(this[V].width + d, this.w || 0), b = Math.max(this[V].height + m, this.h || 0), w = [this.x, this.y, g, b];
          if (this.w === "" && (l.width = Oe(g)), this.h === "" && (l.height = Oe(b)), (l.width === "0px" || l.height === "0px") && n.length === 0) return Ee.EMPTY;
          const x = { name: "div", attributes: s, children: n };
          a0(this, s);
          const y = Ee.success(ja(this, x), w);
          if (this.breakAfter.children.length >= 1) {
            const j = this.breakAfter.children[0];
            if (x1(j)) return this[V].afterBreakAfter = y, Ee.breakNode(j);
          }
          return delete this[V], y;
        }
      };
      Fc = class extends X {
        static {
          p(this, "SubformSet");
        }
        constructor(e) {
          super(he, "subformSet", true), this.id = e.id || "", this.name = e.name || "", this.relation = ne(e.relation, ["ordered", "choice", "unordered"]), this.relevant = Ls(e.relevant), this.use = e.use || "", this.usehref = e.usehref || "", this.bookend = null, this.break = null, this.desc = null, this.extras = null, this.occur = null, this.overflow = null, this.breakAfter = new R(), this.breakBefore = new R(), this.subform = new R(), this.subformSet = new R();
        }
        *[tr]() {
          yield* Ac(this);
        }
        [Wt]() {
          let e = this[Ue]();
          for (; !(e instanceof R1); ) e = e[Ue]();
          return e;
        }
        [xa]() {
          return true;
        }
      };
      Q9 = class extends Ht {
        static {
          p(this, "SubjectDN");
        }
        constructor(e) {
          super(he, "subjectDN"), this.delimiter = e.delimiter || ",", this.id = e.id || "", this.name = e.name || "", this.use = e.use || "", this.usehref = e.usehref || "";
        }
        [vt]() {
          this[ee] = new Map(this[ee].split(this.delimiter).map((e) => (e = e.split("=", 2), e[0] = e[0].trim(), e)));
        }
      };
      J9 = class extends X {
        static {
          p(this, "SubjectDNs");
        }
        constructor(e) {
          super(he, "subjectDNs", true), this.id = e.id || "", this.type = ne(e.type, ["optional", "required"]), this.use = e.use || "", this.usehref = e.usehref || "", this.subjectDN = new R();
        }
      };
      Z9 = class extends X {
        static {
          p(this, "Submit");
        }
        constructor(e) {
          super(he, "submit", true), this.embedPDF = He({ data: e.embedPDF, defaultValue: 0, validate: p((n) => n === 1, "validate") }), this.format = ne(e.format, ["xdp", "formdata", "pdf", "urlencoded", "xfd", "xml"]), this.id = e.id || "", this.target = e.target || "", this.textEncoding = Jl({ data: e.textEncoding ? e.textEncoding.toLowerCase() : "", defaultValue: "", validate: p((n) => ["utf-8", "big-five", "fontspecific", "gbk", "gb-18030", "gb-2312", "ksc-5601", "none", "shift-jis", "ucs-2", "utf-16"].includes(n) || n.match(/iso-8859-\d{2}/), "validate") }), this.use = e.use || "", this.usehref = e.usehref || "", this.xdpContent = e.xdpContent || "", this.encrypt = null, this.encryptData = new R(), this.signData = new R();
        }
      };
      Bc = class extends X {
        static {
          p(this, "Template");
        }
        constructor(e) {
          super(he, "template", true), this.baseProfile = ne(e.baseProfile, ["full", "interactiveForms"]), this.extras = null, this.subform = new R();
        }
        [vt]() {
          this.subform.children.length === 0 && F("XFA - No subforms in template node."), this.subform.children.length >= 2 && F("XFA - Several subforms in template node: please file a bug."), this[Hs] = A2;
        }
        [xi]() {
          return true;
        }
        [ji](e, n) {
          return e.startsWith("#") ? [this[nr].get(e.slice(1))] : Gi(this, n, e, true, true);
        }
        *[Kd]() {
          if (!this.subform.children.length) return Ee.success({ name: "div", children: [] });
          this[V] = { overflowNode: null, firstUnsplittable: null, currentContentArea: null, currentPageArea: null, noLayoutFailure: false, pageNumber: 1, pagePosition: "first", oddOrEven: "odd", blankOrNotBlank: "nonBlank", paraStack: [] };
          const e = this.subform.children[0];
          e.pageSet[Za]();
          const n = e.pageSet.pageArea.children, s = { name: "div", children: [] };
          let i = null, a = null, r = null;
          if (e.breakBefore.children.length >= 1 ? (a = e.breakBefore.children[0], r = a.target) : e.subform.children.length >= 1 && e.subform.children[0].breakBefore.children.length >= 1 ? (a = e.subform.children[0].breakBefore.children[0], r = a.target) : e.break?.beforeTarget ? (a = e.break, r = a.beforeTarget) : e.subform.children.length >= 1 && e.subform.children[0].break?.beforeTarget && (a = e.subform.children[0].break, r = a.beforeTarget), a) {
            const m = this[ji](r, a[Ue]());
            m instanceof or && (i = m, a[V] = {});
          }
          i ||= n[0], i[V] = { numberOfUse: 1 };
          const o = i[Ue]();
          o[V] = { numberOfUse: 1, pageIndex: o.pageArea.children.indexOf(i), pageSetIndex: 0 };
          let l, f = null, c = null, h = true, u = 0, d = 0;
          for (; ; ) {
            if (h) u = 0;
            else if (s.children.pop(), ++u === q2) return F("XFA - Something goes wrong: please file a bug."), s;
            l = null, this[V].currentPageArea = i;
            const m = i[Pe]().html;
            s.children.push(m), f && (this[V].noLayoutFailure = true, m.children.push(f[Pe](i[V].space).html), f = null), c && (this[V].noLayoutFailure = true, m.children.push(c[Pe](i[V].space).html), c = null);
            const g = i.contentArea.children, b = m.children.filter((x) => x.attributes.class.includes("xfaContentarea"));
            h = false, this[V].firstUnsplittable = null, this[V].noLayoutFailure = false;
            const w = p((x) => {
              const y = e[fo]();
              y && (h ||= y.children?.length > 0, b[x].children.push(y));
            }, "flush");
            for (let x = d, y = g.length; x < y; x++) {
              const j = this[V].currentContentArea = g[x], v = { width: j.w, height: j.h };
              d = 0, f && (b[x].children.push(f[Pe](v).html), f = null), c && (b[x].children.push(c[Pe](v).html), c = null);
              const q = e[Pe](v);
              if (q.success) return q.html ? (h ||= q.html.children?.length > 0, b[x].children.push(q.html)) : !h && s.children.length > 1 && s.children.pop(), s;
              if (q.isBreak()) {
                const A = q.breakNode;
                if (w(x), A.targetType === "auto") continue;
                A.leader && (f = this[ji](A.leader, A[Ue]()), f = f ? f[0] : null), A.trailer && (c = this[ji](A.trailer, A[Ue]()), c = c ? c[0] : null), A.targetType === "pageArea" ? (l = A[V].target, x = 1 / 0) : A[V].target ? (l = A[V].target, d = A[V].index + 1, x = 1 / 0) : x = A[V].index;
                continue;
              }
              if (this[V].overflowNode) {
                const A = this[V].overflowNode;
                this[V].overflowNode = null;
                const C = A[Tn](), S = C.target;
                C.addLeader = C.leader !== null, C.addTrailer = C.trailer !== null, w(x);
                const I = x;
                if (x = 1 / 0, S instanceof or) l = S;
                else if (S instanceof Cc) {
                  const T = g.indexOf(S);
                  T !== -1 ? T > I ? x = T - 1 : d = T : (l = S[Ue](), d = l.contentArea.children.indexOf(S));
                }
                continue;
              }
              w(x);
            }
            this[V].pageNumber += 1, l && (l[bo]() ? l[V].numberOfUse += 1 : l = null), i = l || i[wi](), yield null;
          }
        }
      };
      _1 = class extends Ht {
        static {
          p(this, "Text");
        }
        constructor(e) {
          super(he, "text"), this.id = e.id || "", this.maxChars = He({ data: e.maxChars, defaultValue: 0, validate: p((n) => n >= 0, "validate") }), this.name = e.name || "", this.rid = e.rid || "", this.use = e.use || "", this.usehref = e.usehref || "";
        }
        [$l]() {
          return true;
        }
        [Zs](e) {
          return e[Vt] === Kt.xhtml.id ? (this[ee] = e, true) : (F(`XFA - Invalid content in Text: ${e[dt]}.`), false);
        }
        [yi](e) {
          this[ee] instanceof X || super[yi](e);
        }
        [vt]() {
          typeof this[ee] == "string" && (this[ee] = this[ee].replaceAll(`\r
`, `
`));
        }
        [Tn]() {
          return typeof this[ee] == "string" ? this[ee].split(/[\u2029\u2028\n]/).filter((e) => !!e).join(`
`) : this[ee][nn]();
        }
        [Pe](e) {
          if (typeof this[ee] == "string") {
            const n = $i(this[ee]).html;
            return this[ee].includes("\u2029") ? (n.name = "div", n.children = [], this[ee].split("\u2029").map((s) => s.split(/[\u2028\n]/).flatMap((i) => [{ name: "span", value: i }, { name: "br" }])).forEach((s) => {
              n.children.push({ name: "p", children: s });
            })) : /[\u2028\n]/.test(this[ee]) && (n.name = "div", n.children = [], this[ee].split(/[\u2028\n]/).forEach((s) => {
              n.children.push({ name: "span", value: s }, { name: "br" });
            })), Ee.success(n);
          }
          return this[ee][Pe](e);
        }
      };
      P1 = class extends X {
        static {
          p(this, "TextEdit");
        }
        constructor(e) {
          super(he, "textEdit", true), this.allowRichText = He({ data: e.allowRichText, defaultValue: 0, validate: p((n) => n === 1, "validate") }), this.hScrollPolicy = ne(e.hScrollPolicy, ["auto", "off", "on"]), this.id = e.id || "", this.multiLine = He({ data: e.multiLine, defaultValue: "", validate: p((n) => n === 0 || n === 1, "validate") }), this.use = e.use || "", this.usehref = e.usehref || "", this.vScrollPolicy = ne(e.vScrollPolicy, ["auto", "off", "on"]), this.border = null, this.comb = null, this.extras = null, this.margin = null;
        }
        [Pe](e) {
          const n = Wn(this, "border", "font", "margin");
          let s;
          const i = this[Ue]()[Ue]();
          return this.multiLine === "" && (this.multiLine = i instanceof I1 ? 1 : 0), this.multiLine === 1 ? s = { name: "textarea", attributes: { dataId: i[Ss]?.[xt] || i[xt], fieldId: i[xt], class: ["xfaTextfield"], style: n, "aria-label": qa(i), "aria-required": false } } : s = { name: "input", attributes: { type: "text", dataId: i[Ss]?.[xt] || i[xt], fieldId: i[xt], class: ["xfaTextfield"], style: n, "aria-label": qa(i), "aria-required": false } }, vo(i) && (s.attributes["aria-required"] = true, s.attributes.required = true), Ee.success({ name: "label", attributes: { class: ["xfaLabel"] }, children: [s] });
        }
      };
      e3 = class extends Ze {
        static {
          p(this, "Time");
        }
        constructor(e) {
          super(he, "time"), this.id = e.id || "", this.name = e.name || "", this.use = e.use || "", this.usehref = e.usehref || "";
        }
        [vt]() {
          const e = this[ee].trim();
          this[ee] = e ? new Date(e) : null;
        }
        [Pe](e) {
          return $i(this[ee] ? this[ee].toString() : "");
        }
      };
      t3 = class extends X {
        static {
          p(this, "TimeStamp");
        }
        constructor(e) {
          super(he, "timeStamp"), this.id = e.id || "", this.server = e.server || "", this.type = ne(e.type, ["optional", "required"]), this.use = e.use || "", this.usehref = e.usehref || "";
        }
      };
      n3 = class extends Ze {
        static {
          p(this, "ToolTip");
        }
        constructor(e) {
          super(he, "toolTip"), this.id = e.id || "", this.rid = e.rid || "", this.use = e.use || "", this.usehref = e.usehref || "";
        }
      };
      s3 = class extends X {
        static {
          p(this, "Traversal");
        }
        constructor(e) {
          super(he, "traversal", true), this.id = e.id || "", this.use = e.use || "", this.usehref = e.usehref || "", this.extras = null, this.traverse = new R();
        }
      };
      i3 = class extends X {
        static {
          p(this, "Traverse");
        }
        constructor(e) {
          super(he, "traverse", true), this.id = e.id || "", this.operation = ne(e.operation, ["next", "back", "down", "first", "left", "right", "up"]), this.ref = e.ref || "", this.use = e.use || "", this.usehref = e.usehref || "", this.extras = null, this.script = null;
        }
        get name() {
          return this.operation;
        }
        [go]() {
          return false;
        }
      };
      Rc = class extends X {
        static {
          p(this, "Ui");
        }
        constructor(e) {
          super(he, "ui", true), this.id = e.id || "", this.use = e.use || "", this.usehref = e.usehref || "", this.extras = null, this.picture = null, this.barcode = null, this.button = null, this.checkButton = null, this.choiceList = null, this.dateTimeEdit = null, this.defaultUi = null, this.imageEdit = null, this.numericEdit = null, this.passwordEdit = null, this.signature = null, this.textEdit = null;
        }
        [Tn]() {
          if (this[V] === void 0) {
            for (const e of Object.getOwnPropertyNames(this)) {
              if (e === "extras" || e === "picture") continue;
              const n = this[e];
              if (n instanceof X) return this[V] = n, n;
            }
            this[V] = null;
          }
          return this[V];
        }
        [Pe](e) {
          const n = this[Tn]();
          return n ? n[Pe](e) : Ee.EMPTY;
        }
      };
      a3 = class extends X {
        static {
          p(this, "Validate");
        }
        constructor(e) {
          super(he, "validate", true), this.formatTest = ne(e.formatTest, ["warning", "disabled", "error"]), this.id = e.id || "", this.nullTest = ne(e.nullTest, ["disabled", "error", "warning"]), this.scriptTest = ne(e.scriptTest, ["error", "disabled", "warning"]), this.use = e.use || "", this.usehref = e.usehref || "", this.extras = null, this.message = null, this.picture = null, this.script = null;
        }
      };
      _c = class extends X {
        static {
          p(this, "Value");
        }
        constructor(e) {
          super(he, "value", true), this.id = e.id || "", this.override = He({ data: e.override, defaultValue: 0, validate: p((n) => n === 1, "validate") }), this.relevant = Ls(e.relevant), this.use = e.use || "", this.usehref = e.usehref || "", this.arc = null, this.boolean = null, this.date = null, this.dateTime = null, this.decimal = null, this.exData = null, this.float = null, this.image = null, this.integer = null, this.line = null, this.rectangle = null, this.text = null, this.time = null;
        }
        [Jn](e) {
          const n = this[Ue]();
          if (n instanceof Ic && n.ui?.imageEdit) {
            this.image || (this.image = new E1({}), this[Mt](this.image)), this.image[ee] = e[ee];
            return;
          }
          const s = e[dt];
          if (this[s] !== null) {
            this[s][ee] = e[ee];
            return;
          }
          for (const i of Object.getOwnPropertyNames(this)) {
            const a = this[i];
            a instanceof X && (this[i] = null, this[Ui](a));
          }
          this[e[dt]] = e, this[Mt](e);
        }
        [nn]() {
          if (this.exData) return typeof this.exData[ee] == "string" ? this.exData[ee].trim() : this.exData[ee][nn]().trim();
          for (const e of Object.getOwnPropertyNames(this)) {
            if (e === "image") continue;
            const n = this[e];
            if (n instanceof X) return (n[ee] || "").toString().trim();
          }
          return null;
        }
        [Pe](e) {
          for (const n of Object.getOwnPropertyNames(this)) {
            const s = this[n];
            if (s instanceof X) return s[Pe](e);
          }
          return Ee.EMPTY;
        }
      };
      r3 = class extends X {
        static {
          p(this, "Variables");
        }
        constructor(e) {
          super(he, "variables", true), this.id = e.id || "", this.use = e.use || "", this.usehref = e.usehref || "", this.boolean = new R(), this.date = new R(), this.dateTime = new R(), this.decimal = new R(), this.exData = new R(), this.float = new R(), this.image = new R(), this.integer = new R(), this.manifest = new R(), this.script = new R(), this.text = new R(), this.time = new R();
        }
        [go]() {
          return true;
        }
      };
      z0 = class _z0 {
        static {
          p(this, "TemplateNamespace");
        }
        static [Os](e, n) {
          if (_z0.hasOwnProperty(e)) {
            const s = _z0[e](n);
            return s[Vd](n), s;
          }
        }
        static appearanceFilter(e) {
          return new T2(e);
        }
        static arc(e) {
          return new y1(e);
        }
        static area(e) {
          return new E2(e);
        }
        static assist(e) {
          return new F2(e);
        }
        static barcode(e) {
          return new B2(e);
        }
        static bind(e) {
          return new R2(e);
        }
        static bindItems(e) {
          return new Sc(e);
        }
        static bookend(e) {
          return new _2(e);
        }
        static boolean(e) {
          return new P2(e);
        }
        static border(e) {
          return new j1(e);
        }
        static break(e) {
          return new D2(e);
        }
        static breakAfter(e) {
          return new v1(e);
        }
        static breakBefore(e) {
          return new q1(e);
        }
        static button(e) {
          return new M2(e);
        }
        static calculate(e) {
          return new H2(e);
        }
        static caption(e) {
          return new O2(e);
        }
        static certificate(e) {
          return new L2(e);
        }
        static certificates(e) {
          return new N2(e);
        }
        static checkButton(e) {
          return new A1(e);
        }
        static choiceList(e) {
          return new S1(e);
        }
        static color(e) {
          return new z2(e);
        }
        static comb(e) {
          return new U2(e);
        }
        static connect(e) {
          return new G2(e);
        }
        static contentArea(e) {
          return new Cc(e);
        }
        static corner(e) {
          return new C1(e);
        }
        static date(e) {
          return new W2(e);
        }
        static dateTime(e) {
          return new $2(e);
        }
        static dateTimeEdit(e) {
          return new V2(e);
        }
        static decimal(e) {
          return new K2(e);
        }
        static defaultUi(e) {
          return new X2(e);
        }
        static desc(e) {
          return new Y2(e);
        }
        static digestMethod(e) {
          return new Q2(e);
        }
        static digestMethods(e) {
          return new J2(e);
        }
        static draw(e) {
          return new I1(e);
        }
        static edge(e) {
          return new qo(e);
        }
        static encoding(e) {
          return new Z2(e);
        }
        static encodings(e) {
          return new e9(e);
        }
        static encrypt(e) {
          return new t9(e);
        }
        static encryptData(e) {
          return new n9(e);
        }
        static encryption(e) {
          return new s9(e);
        }
        static encryptionMethod(e) {
          return new i9(e);
        }
        static encryptionMethods(e) {
          return new a9(e);
        }
        static event(e) {
          return new r9(e);
        }
        static exData(e) {
          return new o9(e);
        }
        static exObject(e) {
          return new l9(e);
        }
        static exclGroup(e) {
          return new T1(e);
        }
        static execute(e) {
          return new f9(e);
        }
        static extras(e) {
          return new c9(e);
        }
        static field(e) {
          return new Ic(e);
        }
        static fill(e) {
          return new h9(e);
        }
        static filter(e) {
          return new u9(e);
        }
        static float(e) {
          return new d9(e);
        }
        static font(e) {
          return new p9(e);
        }
        static format(e) {
          return new m9(e);
        }
        static handler(e) {
          return new g9(e);
        }
        static hyphenation(e) {
          return new b9(e);
        }
        static image(e) {
          return new E1(e);
        }
        static imageEdit(e) {
          return new w9(e);
        }
        static integer(e) {
          return new x9(e);
        }
        static issuers(e) {
          return new k9(e);
        }
        static items(e) {
          return new Tc(e);
        }
        static keep(e) {
          return new y9(e);
        }
        static keyUsage(e) {
          return new j9(e);
        }
        static line(e) {
          return new v9(e);
        }
        static linear(e) {
          return new q9(e);
        }
        static lockDocument(e) {
          return new A9(e);
        }
        static manifest(e) {
          return new S9(e);
        }
        static margin(e) {
          return new C9(e);
        }
        static mdp(e) {
          return new I9(e);
        }
        static medium(e) {
          return new T9(e);
        }
        static message(e) {
          return new E9(e);
        }
        static numericEdit(e) {
          return new F9(e);
        }
        static occur(e) {
          return new B9(e);
        }
        static oid(e) {
          return new R9(e);
        }
        static oids(e) {
          return new _9(e);
        }
        static overflow(e) {
          return new F1(e);
        }
        static pageArea(e) {
          return new or(e);
        }
        static pageSet(e) {
          return new Ko(e);
        }
        static para(e) {
          return new P9(e);
        }
        static passwordEdit(e) {
          return new D9(e);
        }
        static pattern(e) {
          return new M9(e);
        }
        static picture(e) {
          return new H9(e);
        }
        static proto(e) {
          return new O9(e);
        }
        static radial(e) {
          return new L9(e);
        }
        static reason(e) {
          return new N9(e);
        }
        static reasons(e) {
          return new z9(e);
        }
        static rectangle(e) {
          return new B1(e);
        }
        static ref(e) {
          return new U9(e);
        }
        static script(e) {
          return new G9(e);
        }
        static setProperty(e) {
          return new Ec(e);
        }
        static signData(e) {
          return new W9(e);
        }
        static signature(e) {
          return new $9(e);
        }
        static signing(e) {
          return new V9(e);
        }
        static solid(e) {
          return new K9(e);
        }
        static speak(e) {
          return new X9(e);
        }
        static stipple(e) {
          return new Y9(e);
        }
        static subform(e) {
          return new R1(e);
        }
        static subformSet(e) {
          return new Fc(e);
        }
        static subjectDN(e) {
          return new Q9(e);
        }
        static subjectDNs(e) {
          return new J9(e);
        }
        static submit(e) {
          return new Z9(e);
        }
        static template(e) {
          return new Bc(e);
        }
        static text(e) {
          return new _1(e);
        }
        static textEdit(e) {
          return new P1(e);
        }
        static time(e) {
          return new e3(e);
        }
        static timeStamp(e) {
          return new t3(e);
        }
        static toolTip(e) {
          return new n3(e);
        }
        static traversal(e) {
          return new s3(e);
        }
        static traverse(e) {
          return new i3(e);
        }
        static ui(e) {
          return new Rc(e);
        }
        static validate(e) {
          return new a3(e);
        }
        static value(e) {
          return new _c(e);
        }
        static variables(e) {
          return new r3(e);
        }
      };
      D1 = Kt.datasets.id;
      p(l0, "createText");
      o3 = class {
        static {
          p(this, "Binder");
        }
        constructor(e) {
          this.root = e, this.datasets = e.datasets, this.data = e.datasets?.data || new ri(Kt.datasets.id, "data"), this.emptyMerge = this.data[gn]().length === 0, this.root.form = this.form = e.template[Ms]();
        }
        _isConsumeData() {
          return !this.emptyMerge && this._mergeMode;
        }
        _isMatchTemplate() {
          return !this._isConsumeData();
        }
        bind() {
          return this._bindElement(this.form, this.data), this.form;
        }
        getData() {
          return this.data;
        }
        _bindValue(e, n, s) {
          if (e[Ss] = n, e[po]()) if (n[sr]()) {
            const i = n[lc]();
            e[Jn](l0(i));
          } else if (e instanceof Ic && e.ui?.choiceList?.open === "multiSelect") {
            const i = n[gn]().map((a) => a[ee].trim()).join(`
`);
            e[Jn](l0(i));
          } else this._isConsumeData() && F("XFA - Nodes haven't the same type.");
          else !n[sr]() || this._isMatchTemplate() ? this._bindElement(e, n) : F("XFA - Nodes haven't the same type.");
        }
        _findDataByNameToConsume(e, n, s, i) {
          if (!e) return null;
          let a, r;
          for (let o = 0; o < 3; o++) {
            for (a = s[uo](e, false, true); r = a.next().value, !!r; ) if (n === r[sr]()) return r;
            if (s[Vt] === Kt.datasets.id && s[dt] === "data") break;
            s = s[Ue]();
          }
          return i ? (a = this.data[uo](e, true, false), r = a.next().value, r || (a = this.data[oc](e, true), r = a.next().value, r?.[sr]()) ? r : null) : null;
        }
        _setProperties(e, n) {
          if (e.hasOwnProperty("setProperty")) for (const { ref: s, target: i, connection: a } of e.setProperty.children) {
            if (a || !s) continue;
            const r = Gi(this.root, n, s, false, false);
            if (!r) {
              F(`XFA - Invalid reference: ${s}.`);
              continue;
            }
            const [o] = r;
            if (!o[zi](this.data)) {
              F("XFA - Invalid node: must be a data node.");
              continue;
            }
            const l = Gi(this.root, e, i, false, false);
            if (!l) {
              F(`XFA - Invalid target: ${i}.`);
              continue;
            }
            const [f] = l;
            if (!f[zi](e)) {
              F("XFA - Invalid target: must be a property or subproperty.");
              continue;
            }
            const c = f[Ue]();
            if (f instanceof Ec || c instanceof Ec) {
              F("XFA - Invalid target: cannot be a setProperty or one of its properties.");
              continue;
            }
            if (f instanceof Sc || c instanceof Sc) {
              F("XFA - Invalid target: cannot be a bindItems or one of its properties.");
              continue;
            }
            const h = o[nn](), u = f[dt];
            if (f instanceof kc) {
              const d = /* @__PURE__ */ Object.create(null);
              d[u] = h;
              const m = Reflect.construct(Object.getPrototypeOf(c).constructor, [d]);
              c[u] = m[u];
              continue;
            }
            if (!f.hasOwnProperty(ee)) {
              F("XFA - Invalid node to use in setProperty");
              continue;
            }
            f[Ss] = o, f[ee] = h, f[vt]();
          }
        }
        _bindItems(e, n) {
          if (!e.hasOwnProperty("items") || !e.hasOwnProperty("bindItems") || e.bindItems.isEmpty()) return;
          for (const a of e.items.children) e[Ui](a);
          e.items.clear();
          const s = new Tc({}), i = new Tc({});
          e[Mt](s), e.items.push(s), e[Mt](i), e.items.push(i);
          for (const { ref: a, labelRef: r, valueRef: o, connection: l } of e.bindItems.children) {
            if (l || !a) continue;
            const f = Gi(this.root, n, a, false, false);
            if (!f) {
              F(`XFA - Invalid reference: ${a}.`);
              continue;
            }
            for (const c of f) {
              if (!c[zi](this.datasets)) {
                F(`XFA - Invalid ref (${a}): must be a datasets child.`);
                continue;
              }
              const h = Gi(this.root, c, r, true, false);
              if (!h) {
                F(`XFA - Invalid label: ${r}.`);
                continue;
              }
              const [u] = h;
              if (!u[zi](this.datasets)) {
                F("XFA - Invalid label: must be a datasets child.");
                continue;
              }
              const d = Gi(this.root, c, o, true, false);
              if (!d) {
                F(`XFA - Invalid value: ${o}.`);
                continue;
              }
              const [m] = d;
              if (!m[zi](this.datasets)) {
                F("XFA - Invalid value: must be a datasets child.");
                continue;
              }
              const g = l0(u[nn]()), b = l0(m[nn]());
              s[Mt](g), s.text.push(g), i[Mt](b), i.text.push(b);
            }
          }
        }
        _bindOccurrences(e, n, s) {
          let i;
          if (n.length > 1 && (i = e[Ms](), i[Ui](i.occur), i.occur = null), this._bindValue(e, n[0], s), this._setProperties(e, n[0]), this._bindItems(e, n[0]), n.length === 1) return;
          const a = e[Ue](), r = e[dt], o = a[fc](e);
          for (let l = 1, f = n.length; l < f; l++) {
            const c = n[l], h = i[Ms]();
            a[r].push(h), a[Xl](o + l, h), this._bindValue(h, c, s), this._setProperties(h, c), this._bindItems(h, c);
          }
        }
        _createOccurrences(e) {
          if (!this.emptyMerge) return;
          const { occur: n } = e;
          if (!n || n.initial <= 1) return;
          const s = e[Ue](), i = e[dt];
          if (!(s[i] instanceof R)) return;
          let a;
          e.name ? a = s[i].children.filter((l) => l.name === e.name).length : a = s[i].children.length;
          const r = s[fc](e) + 1, o = n.initial - a;
          if (o) {
            const l = e[Ms]();
            l[Ui](l.occur), l.occur = null, s[i].push(l), s[Xl](r, l);
            for (let f = 1; f < o; f++) {
              const c = l[Ms]();
              s[i].push(c), s[Xl](r + f, c);
            }
          }
        }
        _getOccurInfo(e) {
          const { name: n, occur: s } = e;
          if (!s || !n) return [1, 1];
          const i = s.max === -1 ? 1 / 0 : s.max;
          return [s.min, i];
        }
        _setAndBind(e, n) {
          this._setProperties(e, n), this._bindItems(e, n), this._bindElement(e, n);
        }
        _bindElement(e, n) {
          const s = [];
          this._createOccurrences(e);
          for (const i of e[gn]()) {
            if (i[Ss]) continue;
            if (this._mergeMode === void 0 && i[dt] === "subform") {
              this._mergeMode = i.mergeMode === "consumeData";
              const h = n[gn]();
              if (h.length > 0) this._bindOccurrences(i, [h[0]], null);
              else if (this.emptyMerge) {
                const u = n[Vt] === D1 ? -1 : n[Vt], d = i[Ss] = new ri(u, i.name || "root");
                n[Mt](d), this._bindElement(i, d);
              }
              continue;
            }
            if (!i[xa]()) continue;
            let a = false, r = null, o = null, l = null;
            if (i.bind) {
              switch (i.bind.match) {
                case "none":
                  this._setAndBind(i, n);
                  continue;
                case "global":
                  a = true;
                  break;
                case "dataRef":
                  if (!i.bind.ref) {
                    F(`XFA - ref is empty in node ${i[dt]}.`), this._setAndBind(i, n);
                    continue;
                  }
                  o = i.bind.ref;
                  break;
              }
              i.bind.picture && (r = i.bind.picture[ee]);
            }
            const [f, c] = this._getOccurInfo(i);
            if (o) if (l = Gi(this.root, n, o, true, false), l === null) {
              if (l = j2(this.data, n, o), !l) continue;
              this._isConsumeData() && (l[Js] = true), this._setAndBind(i, l);
              continue;
            } else this._isConsumeData() && (l = l.filter((h) => !h[Js])), l.length > c ? l = l.slice(0, c) : l.length === 0 && (l = null), l && this._isConsumeData() && l.forEach((h) => {
              h[Js] = true;
            });
            else {
              if (!i.name) {
                this._setAndBind(i, n);
                continue;
              }
              if (this._isConsumeData()) {
                const h = [];
                for (; h.length < c; ) {
                  const u = this._findDataByNameToConsume(i.name, i[po](), n, a);
                  if (!u) break;
                  u[Js] = true, h.push(u);
                }
                l = h.length > 0 ? h : null;
              } else {
                if (l = n[uo](i.name, false, this.emptyMerge).next().value, !l) {
                  if (f === 0) {
                    s.push(i);
                    continue;
                  }
                  const h = n[Vt] === D1 ? -1 : n[Vt];
                  l = i[Ss] = new ri(h, i.name), this.emptyMerge && (l[Js] = true), n[Mt](l), this._setAndBind(i, l);
                  continue;
                }
                this.emptyMerge && (l[Js] = true), l = [l];
              }
            }
            l ? this._bindOccurrences(i, l, r) : f > 0 ? this._setAndBind(i, n) : s.push(i);
          }
          s.forEach((i) => i[Ue]()[Ui](i));
        }
      };
      l3 = class {
        static {
          p(this, "DataHandler");
        }
        constructor(e, n) {
          this.data = n, this.dataset = e.datasets || null;
        }
        serialize(e) {
          const n = [[-1, this.data[gn]()]];
          for (; n.length > 0; ) {
            const i = n.at(-1), [a, r] = i;
            if (a + 1 === r.length) {
              n.pop();
              continue;
            }
            const o = r[++i[0]], l = e.get(o[xt]);
            if (l) o[Jn](l);
            else {
              const c = o[Wd]();
              for (const h of c.values()) {
                const u = e.get(h[xt]);
                if (u) {
                  h[Jn](u);
                  break;
                }
              }
            }
            const f = o[gn]();
            f.length > 0 && n.push([-1, f]);
          }
          const s = ['<xfa:datasets xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/">'];
          if (this.dataset) for (const i of this.dataset[gn]()) i[dt] !== "data" && i[xo](s);
          return this.data[xo](s), s.push("</xfa:datasets>"), s.join("");
        }
      };
      re = Kt.config.id;
      f3 = class extends X {
        static {
          p(this, "Acrobat");
        }
        constructor(e) {
          super(re, "acrobat", true), this.acrobat7 = null, this.autoSave = null, this.common = null, this.validate = null, this.validateApprovalSignatures = null, this.submitUrl = new R();
        }
      };
      c3 = class extends X {
        static {
          p(this, "Acrobat7");
        }
        constructor(e) {
          super(re, "acrobat7", true), this.dynamicRender = null;
        }
      };
      h3 = class extends kt {
        static {
          p(this, "ADBE_JSConsole");
        }
        constructor(e) {
          super(re, "ADBE_JSConsole", ["delegate", "Enable", "Disable"]);
        }
      };
      u3 = class extends kt {
        static {
          p(this, "ADBE_JSDebugger");
        }
        constructor(e) {
          super(re, "ADBE_JSDebugger", ["delegate", "Enable", "Disable"]);
        }
      };
      d3 = class extends sn {
        static {
          p(this, "AddSilentPrint");
        }
        constructor(e) {
          super(re, "addSilentPrint");
        }
      };
      p3 = class extends sn {
        static {
          p(this, "AddViewerPreferences");
        }
        constructor(e) {
          super(re, "addViewerPreferences");
        }
      };
      m3 = class extends s1 {
        static {
          p(this, "AdjustData");
        }
        constructor(e) {
          super(re, "adjustData");
        }
      };
      g3 = class extends Ns {
        static {
          p(this, "AdobeExtensionLevel");
        }
        constructor(e) {
          super(re, "adobeExtensionLevel", 0, (n) => n >= 1 && n <= 8);
        }
      };
      b3 = class extends X {
        static {
          p(this, "Agent");
        }
        constructor(e) {
          super(re, "agent", true), this.name = e.name ? e.name.trim() : "", this.common = new R();
        }
      };
      w3 = class extends Ht {
        static {
          p(this, "AlwaysEmbed");
        }
        constructor(e) {
          super(re, "alwaysEmbed");
        }
      };
      x3 = class extends Ze {
        static {
          p(this, "Amd");
        }
        constructor(e) {
          super(re, "amd");
        }
      };
      k3 = class extends X {
        static {
          p(this, "config_Area");
        }
        constructor(e) {
          super(re, "area"), this.level = He({ data: e.level, defaultValue: 0, validate: p((n) => n >= 1 && n <= 3, "validate") }), this.name = ne(e.name, ["", "barcode", "coreinit", "deviceDriver", "font", "general", "layout", "merge", "script", "signature", "sourceSet", "templateCache"]);
        }
      };
      y3 = class extends kt {
        static {
          p(this, "Attributes");
        }
        constructor(e) {
          super(re, "attributes", ["preserve", "delegate", "ignore"]);
        }
      };
      j3 = class extends kt {
        static {
          p(this, "AutoSave");
        }
        constructor(e) {
          super(re, "autoSave", ["disabled", "enabled"]);
        }
      };
      v3 = class extends Ze {
        static {
          p(this, "Base");
        }
        constructor(e) {
          super(re, "base");
        }
      };
      q3 = class extends X {
        static {
          p(this, "BatchOutput");
        }
        constructor(e) {
          super(re, "batchOutput"), this.format = ne(e.format, ["none", "concat", "zip", "zipCompress"]);
        }
      };
      A3 = class extends Ht {
        static {
          p(this, "BehaviorOverride");
        }
        constructor(e) {
          super(re, "behaviorOverride");
        }
        [vt]() {
          this[ee] = new Map(this[ee].trim().split(/\s+/).filter((e) => e.includes(":")).map((e) => e.split(":", 2)));
        }
      };
      S3 = class extends X {
        static {
          p(this, "Cache");
        }
        constructor(e) {
          super(re, "cache", true), this.templateCache = null;
        }
      };
      C3 = class extends sn {
        static {
          p(this, "Change");
        }
        constructor(e) {
          super(re, "change");
        }
      };
      I3 = class extends X {
        static {
          p(this, "Common");
        }
        constructor(e) {
          super(re, "common", true), this.data = null, this.locale = null, this.localeSet = null, this.messaging = null, this.suppressBanner = null, this.template = null, this.validationMessaging = null, this.versionControl = null, this.log = new R();
        }
      };
      T3 = class extends X {
        static {
          p(this, "Compress");
        }
        constructor(e) {
          super(re, "compress"), this.scope = ne(e.scope, ["imageOnly", "document"]);
        }
      };
      E3 = class extends sn {
        static {
          p(this, "CompressLogicalStructure");
        }
        constructor(e) {
          super(re, "compressLogicalStructure");
        }
      };
      F3 = class extends s1 {
        static {
          p(this, "CompressObjectStream");
        }
        constructor(e) {
          super(re, "compressObjectStream");
        }
      };
      B3 = class extends X {
        static {
          p(this, "Compression");
        }
        constructor(e) {
          super(re, "compression", true), this.compressLogicalStructure = null, this.compressObjectStream = null, this.level = null, this.type = null;
        }
      };
      R3 = class extends X {
        static {
          p(this, "Config");
        }
        constructor(e) {
          super(re, "config", true), this.acrobat = null, this.present = null, this.trace = null, this.agent = new R();
        }
      };
      _3 = class extends kt {
        static {
          p(this, "Conformance");
        }
        constructor(e) {
          super(re, "conformance", ["A", "B"]);
        }
      };
      P3 = class extends sn {
        static {
          p(this, "ContentCopy");
        }
        constructor(e) {
          super(re, "contentCopy");
        }
      };
      D3 = class extends Ns {
        static {
          p(this, "Copies");
        }
        constructor(e) {
          super(re, "copies", 1, (n) => n >= 1);
        }
      };
      M3 = class extends Ze {
        static {
          p(this, "Creator");
        }
        constructor(e) {
          super(re, "creator");
        }
      };
      H3 = class extends Ns {
        static {
          p(this, "CurrentPage");
        }
        constructor(e) {
          super(re, "currentPage", 0, (n) => n >= 0);
        }
      };
      O3 = class extends X {
        static {
          p(this, "Data");
        }
        constructor(e) {
          super(re, "data", true), this.adjustData = null, this.attributes = null, this.incrementalLoad = null, this.outputXSL = null, this.range = null, this.record = null, this.startNode = null, this.uri = null, this.window = null, this.xsl = null, this.excludeNS = new R(), this.transform = new R();
        }
      };
      L3 = class extends X {
        static {
          p(this, "Debug");
        }
        constructor(e) {
          super(re, "debug", true), this.uri = null;
        }
      };
      N3 = class extends Ht {
        static {
          p(this, "DefaultTypeface");
        }
        constructor(e) {
          super(re, "defaultTypeface"), this.writingScript = ne(e.writingScript, ["*", "Arabic", "Cyrillic", "EastEuropeanRoman", "Greek", "Hebrew", "Japanese", "Korean", "Roman", "SimplifiedChinese", "Thai", "TraditionalChinese", "Vietnamese"]);
        }
      };
      z3 = class extends kt {
        static {
          p(this, "Destination");
        }
        constructor(e) {
          super(re, "destination", ["pdf", "pcl", "ps", "webClient", "zpl"]);
        }
      };
      U3 = class extends sn {
        static {
          p(this, "DocumentAssembly");
        }
        constructor(e) {
          super(re, "documentAssembly");
        }
      };
      G3 = class extends X {
        static {
          p(this, "Driver");
        }
        constructor(e) {
          super(re, "driver", true), this.name = e.name ? e.name.trim() : "", this.fontInfo = null, this.xdc = null;
        }
      };
      W3 = class extends kt {
        static {
          p(this, "DuplexOption");
        }
        constructor(e) {
          super(re, "duplexOption", ["simplex", "duplexFlipLongEdge", "duplexFlipShortEdge"]);
        }
      };
      $3 = class extends kt {
        static {
          p(this, "DynamicRender");
        }
        constructor(e) {
          super(re, "dynamicRender", ["forbidden", "required"]);
        }
      };
      V3 = class extends sn {
        static {
          p(this, "Embed");
        }
        constructor(e) {
          super(re, "embed");
        }
      };
      K3 = class extends sn {
        static {
          p(this, "config_Encrypt");
        }
        constructor(e) {
          super(re, "encrypt");
        }
      };
      X3 = class extends X {
        static {
          p(this, "config_Encryption");
        }
        constructor(e) {
          super(re, "encryption", true), this.encrypt = null, this.encryptionLevel = null, this.permissions = null;
        }
      };
      Y3 = class extends kt {
        static {
          p(this, "EncryptionLevel");
        }
        constructor(e) {
          super(re, "encryptionLevel", ["40bit", "128bit"]);
        }
      };
      Q3 = class extends Ze {
        static {
          p(this, "Enforce");
        }
        constructor(e) {
          super(re, "enforce");
        }
      };
      J3 = class extends X {
        static {
          p(this, "Equate");
        }
        constructor(e) {
          super(re, "equate"), this.force = He({ data: e.force, defaultValue: 1, validate: p((n) => n === 0, "validate") }), this.from = e.from || "", this.to = e.to || "";
        }
      };
      Z3 = class extends X {
        static {
          p(this, "EquateRange");
        }
        constructor(e) {
          super(re, "equateRange"), this.from = e.from || "", this.to = e.to || "", this._unicodeRange = e.unicodeRange || "";
        }
        get unicodeRange() {
          const e = [], n = /U\+([0-9a-fA-F]+)/, s = this._unicodeRange;
          for (let i of s.split(",").map((a) => a.trim()).filter((a) => !!a)) i = i.split("-", 2).map((a) => {
            const r = a.match(n);
            return r ? parseInt(r[1], 16) : 0;
          }), i.length === 1 && i.push(i[0]), e.push(i);
          return fe(this, "unicodeRange", e);
        }
      };
      e5 = class extends Ht {
        static {
          p(this, "Exclude");
        }
        constructor(e) {
          super(re, "exclude");
        }
        [vt]() {
          this[ee] = this[ee].trim().split(/\s+/).filter((e) => e && ["calculate", "close", "enter", "exit", "initialize", "ready", "validate"].includes(e));
        }
      };
      t5 = class extends Ze {
        static {
          p(this, "ExcludeNS");
        }
        constructor(e) {
          super(re, "excludeNS");
        }
      };
      n5 = class extends kt {
        static {
          p(this, "FlipLabel");
        }
        constructor(e) {
          super(re, "flipLabel", ["usePrinterSetting", "on", "off"]);
        }
      };
      s5 = class extends X {
        static {
          p(this, "config_FontInfo");
        }
        constructor(e) {
          super(re, "fontInfo", true), this.embed = null, this.map = null, this.subsetBelow = null, this.alwaysEmbed = new R(), this.defaultTypeface = new R(), this.neverEmbed = new R();
        }
      };
      i5 = class extends sn {
        static {
          p(this, "FormFieldFilling");
        }
        constructor(e) {
          super(re, "formFieldFilling");
        }
      };
      a5 = class extends Ze {
        static {
          p(this, "GroupParent");
        }
        constructor(e) {
          super(re, "groupParent");
        }
      };
      r5 = class extends kt {
        static {
          p(this, "IfEmpty");
        }
        constructor(e) {
          super(re, "ifEmpty", ["dataValue", "dataGroup", "ignore", "remove"]);
        }
      };
      o5 = class extends Ze {
        static {
          p(this, "IncludeXDPContent");
        }
        constructor(e) {
          super(re, "includeXDPContent");
        }
      };
      l5 = class extends kt {
        static {
          p(this, "IncrementalLoad");
        }
        constructor(e) {
          super(re, "incrementalLoad", ["none", "forwardOnly"]);
        }
      };
      f5 = class extends sn {
        static {
          p(this, "IncrementalMerge");
        }
        constructor(e) {
          super(re, "incrementalMerge");
        }
      };
      c5 = class extends sn {
        static {
          p(this, "Interactive");
        }
        constructor(e) {
          super(re, "interactive");
        }
      };
      h5 = class extends kt {
        static {
          p(this, "Jog");
        }
        constructor(e) {
          super(re, "jog", ["usePrinterSetting", "none", "pageSet"]);
        }
      };
      u5 = class extends X {
        static {
          p(this, "LabelPrinter");
        }
        constructor(e) {
          super(re, "labelPrinter", true), this.name = ne(e.name, ["zpl", "dpl", "ipl", "tcpl"]), this.batchOutput = null, this.flipLabel = null, this.fontInfo = null, this.xdc = null;
        }
      };
      d5 = class extends kt {
        static {
          p(this, "Layout");
        }
        constructor(e) {
          super(re, "layout", ["paginate", "panel"]);
        }
      };
      p5 = class extends Ns {
        static {
          p(this, "Level");
        }
        constructor(e) {
          super(re, "level", 0, (n) => n > 0);
        }
      };
      m5 = class extends sn {
        static {
          p(this, "Linearized");
        }
        constructor(e) {
          super(re, "linearized");
        }
      };
      g5 = class extends Ze {
        static {
          p(this, "Locale");
        }
        constructor(e) {
          super(re, "locale");
        }
      };
      b5 = class extends Ze {
        static {
          p(this, "LocaleSet");
        }
        constructor(e) {
          super(re, "localeSet");
        }
      };
      w5 = class extends X {
        static {
          p(this, "Log");
        }
        constructor(e) {
          super(re, "log", true), this.mode = null, this.threshold = null, this.to = null, this.uri = null;
        }
      };
      x5 = class extends X {
        static {
          p(this, "MapElement");
        }
        constructor(e) {
          super(re, "map", true), this.equate = new R(), this.equateRange = new R();
        }
      };
      k5 = class extends X {
        static {
          p(this, "MediumInfo");
        }
        constructor(e) {
          super(re, "mediumInfo", true), this.map = null;
        }
      };
      y5 = class extends X {
        static {
          p(this, "config_Message");
        }
        constructor(e) {
          super(re, "message", true), this.msgId = null, this.severity = null;
        }
      };
      j5 = class extends X {
        static {
          p(this, "Messaging");
        }
        constructor(e) {
          super(re, "messaging", true), this.message = new R();
        }
      };
      v5 = class extends kt {
        static {
          p(this, "Mode");
        }
        constructor(e) {
          super(re, "mode", ["append", "overwrite"]);
        }
      };
      q5 = class extends sn {
        static {
          p(this, "ModifyAnnots");
        }
        constructor(e) {
          super(re, "modifyAnnots");
        }
      };
      A5 = class extends Ns {
        static {
          p(this, "MsgId");
        }
        constructor(e) {
          super(re, "msgId", 1, (n) => n >= 1);
        }
      };
      S5 = class extends Ze {
        static {
          p(this, "NameAttr");
        }
        constructor(e) {
          super(re, "nameAttr");
        }
      };
      C5 = class extends Ht {
        static {
          p(this, "NeverEmbed");
        }
        constructor(e) {
          super(re, "neverEmbed");
        }
      };
      I5 = class extends Ns {
        static {
          p(this, "NumberOfCopies");
        }
        constructor(e) {
          super(re, "numberOfCopies", null, (n) => n >= 2 && n <= 5);
        }
      };
      T5 = class extends X {
        static {
          p(this, "OpenAction");
        }
        constructor(e) {
          super(re, "openAction", true), this.destination = null;
        }
      };
      E5 = class extends X {
        static {
          p(this, "Output");
        }
        constructor(e) {
          super(re, "output", true), this.to = null, this.type = null, this.uri = null;
        }
      };
      F5 = class extends Ze {
        static {
          p(this, "OutputBin");
        }
        constructor(e) {
          super(re, "outputBin");
        }
      };
      B5 = class extends X {
        static {
          p(this, "OutputXSL");
        }
        constructor(e) {
          super(re, "outputXSL", true), this.uri = null;
        }
      };
      R5 = class extends kt {
        static {
          p(this, "Overprint");
        }
        constructor(e) {
          super(re, "overprint", ["none", "both", "draw", "field"]);
        }
      };
      _5 = class extends Ze {
        static {
          p(this, "Packets");
        }
        constructor(e) {
          super(re, "packets");
        }
        [vt]() {
          this[ee] !== "*" && (this[ee] = this[ee].trim().split(/\s+/).filter((e) => ["config", "datasets", "template", "xfdf", "xslt"].includes(e)));
        }
      };
      P5 = class extends X {
        static {
          p(this, "PageOffset");
        }
        constructor(e) {
          super(re, "pageOffset"), this.x = He({ data: e.x, defaultValue: "useXDCSetting", validate: p((n) => true, "validate") }), this.y = He({ data: e.y, defaultValue: "useXDCSetting", validate: p((n) => true, "validate") });
        }
      };
      D5 = class extends Ze {
        static {
          p(this, "PageRange");
        }
        constructor(e) {
          super(re, "pageRange");
        }
        [vt]() {
          const e = this[ee].trim().split(/\s+/).map((s) => parseInt(s, 10)), n = [];
          for (let s = 0, i = e.length; s < i; s += 2) n.push(e.slice(s, s + 2));
          this[ee] = n;
        }
      };
      M5 = class extends kt {
        static {
          p(this, "Pagination");
        }
        constructor(e) {
          super(re, "pagination", ["simplex", "duplexShortEdge", "duplexLongEdge"]);
        }
      };
      H5 = class extends kt {
        static {
          p(this, "PaginationOverride");
        }
        constructor(e) {
          super(re, "paginationOverride", ["none", "forceDuplex", "forceDuplexLongEdge", "forceDuplexShortEdge", "forceSimplex"]);
        }
      };
      O5 = class extends Ns {
        static {
          p(this, "Part");
        }
        constructor(e) {
          super(re, "part", 1, (n) => false);
        }
      };
      L5 = class extends X {
        static {
          p(this, "Pcl");
        }
        constructor(e) {
          super(re, "pcl", true), this.name = e.name || "", this.batchOutput = null, this.fontInfo = null, this.jog = null, this.mediumInfo = null, this.outputBin = null, this.pageOffset = null, this.staple = null, this.xdc = null;
        }
      };
      N5 = class extends X {
        static {
          p(this, "Pdf");
        }
        constructor(e) {
          super(re, "pdf", true), this.name = e.name || "", this.adobeExtensionLevel = null, this.batchOutput = null, this.compression = null, this.creator = null, this.encryption = null, this.fontInfo = null, this.interactive = null, this.linearized = null, this.openAction = null, this.pdfa = null, this.producer = null, this.renderPolicy = null, this.scriptModel = null, this.silentPrint = null, this.submitFormat = null, this.tagged = null, this.version = null, this.viewerPreferences = null, this.xdc = null;
        }
      };
      z5 = class extends X {
        static {
          p(this, "Pdfa");
        }
        constructor(e) {
          super(re, "pdfa", true), this.amd = null, this.conformance = null, this.includeXDPContent = null, this.part = null;
        }
      };
      U5 = class extends X {
        static {
          p(this, "Permissions");
        }
        constructor(e) {
          super(re, "permissions", true), this.accessibleContent = null, this.change = null, this.contentCopy = null, this.documentAssembly = null, this.formFieldFilling = null, this.modifyAnnots = null, this.plaintextMetadata = null, this.print = null, this.printHighQuality = null;
        }
      };
      G5 = class extends sn {
        static {
          p(this, "PickTrayByPDFSize");
        }
        constructor(e) {
          super(re, "pickTrayByPDFSize");
        }
      };
      W5 = class extends Ze {
        static {
          p(this, "config_Picture");
        }
        constructor(e) {
          super(re, "picture");
        }
      };
      $5 = class extends sn {
        static {
          p(this, "PlaintextMetadata");
        }
        constructor(e) {
          super(re, "plaintextMetadata");
        }
      };
      V5 = class extends kt {
        static {
          p(this, "Presence");
        }
        constructor(e) {
          super(re, "presence", ["preserve", "dissolve", "dissolveStructure", "ignore", "remove"]);
        }
      };
      K5 = class extends X {
        static {
          p(this, "Present");
        }
        constructor(e) {
          super(re, "present", true), this.behaviorOverride = null, this.cache = null, this.common = null, this.copies = null, this.destination = null, this.incrementalMerge = null, this.layout = null, this.output = null, this.overprint = null, this.pagination = null, this.paginationOverride = null, this.script = null, this.validate = null, this.xdp = null, this.driver = new R(), this.labelPrinter = new R(), this.pcl = new R(), this.pdf = new R(), this.ps = new R(), this.submitUrl = new R(), this.webClient = new R(), this.zpl = new R();
        }
      };
      X5 = class extends sn {
        static {
          p(this, "Print");
        }
        constructor(e) {
          super(re, "print");
        }
      };
      Y5 = class extends sn {
        static {
          p(this, "PrintHighQuality");
        }
        constructor(e) {
          super(re, "printHighQuality");
        }
      };
      Q5 = class extends kt {
        static {
          p(this, "PrintScaling");
        }
        constructor(e) {
          super(re, "printScaling", ["appdefault", "noScaling"]);
        }
      };
      J5 = class extends Ze {
        static {
          p(this, "PrinterName");
        }
        constructor(e) {
          super(re, "printerName");
        }
      };
      Z5 = class extends Ze {
        static {
          p(this, "Producer");
        }
        constructor(e) {
          super(re, "producer");
        }
      };
      e4 = class extends X {
        static {
          p(this, "Ps");
        }
        constructor(e) {
          super(re, "ps", true), this.name = e.name || "", this.batchOutput = null, this.fontInfo = null, this.jog = null, this.mediumInfo = null, this.outputBin = null, this.staple = null, this.xdc = null;
        }
      };
      t4 = class extends Ht {
        static {
          p(this, "Range");
        }
        constructor(e) {
          super(re, "range");
        }
        [vt]() {
          this[ee] = this[ee].split(",", 2).map((e) => e.split("-").map((n) => parseInt(n.trim(), 10))).filter((e) => e.every((n) => !isNaN(n))).map((e) => (e.length === 1 && e.push(e[0]), e));
        }
      };
      n4 = class extends Ht {
        static {
          p(this, "Record");
        }
        constructor(e) {
          super(re, "record");
        }
        [vt]() {
          this[ee] = this[ee].trim();
          const e = parseInt(this[ee], 10);
          !isNaN(e) && e >= 0 && (this[ee] = e);
        }
      };
      s4 = class extends Ht {
        static {
          p(this, "Relevant");
        }
        constructor(e) {
          super(re, "relevant");
        }
        [vt]() {
          this[ee] = this[ee].trim().split(/\s+/);
        }
      };
      i4 = class extends Ht {
        static {
          p(this, "Rename");
        }
        constructor(e) {
          super(re, "rename");
        }
        [vt]() {
          this[ee] = this[ee].trim(), (this[ee].toLowerCase().startsWith("xml") || new RegExp("[\\p{L}_][\\p{L}\\d._\\p{M}-]*", "u").test(this[ee])) && F("XFA - Rename: invalid XFA name");
        }
      };
      a4 = class extends kt {
        static {
          p(this, "RenderPolicy");
        }
        constructor(e) {
          super(re, "renderPolicy", ["server", "client"]);
        }
      };
      r4 = class extends kt {
        static {
          p(this, "RunScripts");
        }
        constructor(e) {
          super(re, "runScripts", ["both", "client", "none", "server"]);
        }
      };
      o4 = class extends X {
        static {
          p(this, "config_Script");
        }
        constructor(e) {
          super(re, "script", true), this.currentPage = null, this.exclude = null, this.runScripts = null;
        }
      };
      l4 = class extends kt {
        static {
          p(this, "ScriptModel");
        }
        constructor(e) {
          super(re, "scriptModel", ["XFA", "none"]);
        }
      };
      f4 = class extends kt {
        static {
          p(this, "Severity");
        }
        constructor(e) {
          super(re, "severity", ["ignore", "error", "information", "trace", "warning"]);
        }
      };
      c4 = class extends X {
        static {
          p(this, "SilentPrint");
        }
        constructor(e) {
          super(re, "silentPrint", true), this.addSilentPrint = null, this.printerName = null;
        }
      };
      h4 = class extends X {
        static {
          p(this, "Staple");
        }
        constructor(e) {
          super(re, "staple"), this.mode = ne(e.mode, ["usePrinterSetting", "on", "off"]);
        }
      };
      u4 = class extends Ze {
        static {
          p(this, "StartNode");
        }
        constructor(e) {
          super(re, "startNode");
        }
      };
      d4 = class extends Ns {
        static {
          p(this, "StartPage");
        }
        constructor(e) {
          super(re, "startPage", 0, (n) => true);
        }
      };
      p4 = class extends kt {
        static {
          p(this, "SubmitFormat");
        }
        constructor(e) {
          super(re, "submitFormat", ["html", "delegate", "fdf", "xml", "pdf"]);
        }
      };
      m4 = class extends Ze {
        static {
          p(this, "SubmitUrl");
        }
        constructor(e) {
          super(re, "submitUrl");
        }
      };
      g4 = class extends Ns {
        static {
          p(this, "SubsetBelow");
        }
        constructor(e) {
          super(re, "subsetBelow", 100, (n) => n >= 0 && n <= 100);
        }
      };
      b4 = class extends sn {
        static {
          p(this, "SuppressBanner");
        }
        constructor(e) {
          super(re, "suppressBanner");
        }
      };
      w4 = class extends sn {
        static {
          p(this, "Tagged");
        }
        constructor(e) {
          super(re, "tagged");
        }
      };
      x4 = class extends X {
        static {
          p(this, "config_Template");
        }
        constructor(e) {
          super(re, "template", true), this.base = null, this.relevant = null, this.startPage = null, this.uri = null, this.xsl = null;
        }
      };
      k4 = class extends kt {
        static {
          p(this, "Threshold");
        }
        constructor(e) {
          super(re, "threshold", ["trace", "error", "information", "warning"]);
        }
      };
      y4 = class extends kt {
        static {
          p(this, "To");
        }
        constructor(e) {
          super(re, "to", ["null", "memory", "stderr", "stdout", "system", "uri"]);
        }
      };
      j4 = class extends X {
        static {
          p(this, "TemplateCache");
        }
        constructor(e) {
          super(re, "templateCache"), this.maxEntries = He({ data: e.maxEntries, defaultValue: 5, validate: p((n) => n >= 0, "validate") });
        }
      };
      v4 = class extends X {
        static {
          p(this, "Trace");
        }
        constructor(e) {
          super(re, "trace", true), this.area = new R();
        }
      };
      q4 = class extends X {
        static {
          p(this, "Transform");
        }
        constructor(e) {
          super(re, "transform", true), this.groupParent = null, this.ifEmpty = null, this.nameAttr = null, this.picture = null, this.presence = null, this.rename = null, this.whitespace = null;
        }
      };
      A4 = class extends kt {
        static {
          p(this, "Type");
        }
        constructor(e) {
          super(re, "type", ["none", "ascii85", "asciiHex", "ccittfax", "flate", "lzw", "runLength", "native", "xdp", "mergedXDP"]);
        }
      };
      S4 = class extends Ze {
        static {
          p(this, "Uri");
        }
        constructor(e) {
          super(re, "uri");
        }
      };
      C4 = class extends kt {
        static {
          p(this, "config_Validate");
        }
        constructor(e) {
          super(re, "validate", ["preSubmit", "prePrint", "preExecute", "preSave"]);
        }
      };
      I4 = class extends Ht {
        static {
          p(this, "ValidateApprovalSignatures");
        }
        constructor(e) {
          super(re, "validateApprovalSignatures");
        }
        [vt]() {
          this[ee] = this[ee].trim().split(/\s+/).filter((e) => ["docReady", "postSign"].includes(e));
        }
      };
      T4 = class extends kt {
        static {
          p(this, "ValidationMessaging");
        }
        constructor(e) {
          super(re, "validationMessaging", ["allMessagesIndividually", "allMessagesTogether", "firstMessageOnly", "noMessages"]);
        }
      };
      E4 = class extends kt {
        static {
          p(this, "Version");
        }
        constructor(e) {
          super(re, "version", ["1.7", "1.6", "1.5", "1.4", "1.3", "1.2"]);
        }
      };
      F4 = class extends X {
        static {
          p(this, "VersionControl");
        }
        constructor(e) {
          super(re, "VersionControl"), this.outputBelow = ne(e.outputBelow, ["warn", "error", "update"]), this.sourceAbove = ne(e.sourceAbove, ["warn", "error"]), this.sourceBelow = ne(e.sourceBelow, ["update", "maintain"]);
        }
      };
      B4 = class extends X {
        static {
          p(this, "ViewerPreferences");
        }
        constructor(e) {
          super(re, "viewerPreferences", true), this.ADBE_JSConsole = null, this.ADBE_JSDebugger = null, this.addViewerPreferences = null, this.duplexOption = null, this.enforce = null, this.numberOfCopies = null, this.pageRange = null, this.pickTrayByPDFSize = null, this.printScaling = null;
        }
      };
      R4 = class extends X {
        static {
          p(this, "WebClient");
        }
        constructor(e) {
          super(re, "webClient", true), this.name = e.name ? e.name.trim() : "", this.fontInfo = null, this.xdc = null;
        }
      };
      _4 = class extends kt {
        static {
          p(this, "Whitespace");
        }
        constructor(e) {
          super(re, "whitespace", ["preserve", "ltrim", "normalize", "rtrim", "trim"]);
        }
      };
      P4 = class extends Ht {
        static {
          p(this, "Window");
        }
        constructor(e) {
          super(re, "window");
        }
        [vt]() {
          const e = this[ee].split(",", 2).map((n) => parseInt(n.trim(), 10));
          if (e.some((n) => isNaN(n))) {
            this[ee] = [0, 0];
            return;
          }
          e.length === 1 && e.push(e[0]), this[ee] = e;
        }
      };
      D4 = class extends X {
        static {
          p(this, "Xdc");
        }
        constructor(e) {
          super(re, "xdc", true), this.uri = new R(), this.xsl = new R();
        }
      };
      M4 = class extends X {
        static {
          p(this, "Xdp");
        }
        constructor(e) {
          super(re, "xdp", true), this.packets = null;
        }
      };
      H4 = class extends X {
        static {
          p(this, "Xsl");
        }
        constructor(e) {
          super(re, "xsl", true), this.debug = null, this.uri = null;
        }
      };
      O4 = class extends X {
        static {
          p(this, "Zpl");
        }
        constructor(e) {
          super(re, "zpl", true), this.name = e.name ? e.name.trim() : "", this.batchOutput = null, this.flipLabel = null, this.fontInfo = null, this.xdc = null;
        }
      };
      U0 = class _U0 {
        static {
          p(this, "ConfigNamespace");
        }
        static [Os](e, n) {
          if (_U0.hasOwnProperty(e)) return _U0[e](n);
        }
        static acrobat(e) {
          return new f3(e);
        }
        static acrobat7(e) {
          return new c3(e);
        }
        static ADBE_JSConsole(e) {
          return new h3(e);
        }
        static ADBE_JSDebugger(e) {
          return new u3(e);
        }
        static addSilentPrint(e) {
          return new d3(e);
        }
        static addViewerPreferences(e) {
          return new p3(e);
        }
        static adjustData(e) {
          return new m3(e);
        }
        static adobeExtensionLevel(e) {
          return new g3(e);
        }
        static agent(e) {
          return new b3(e);
        }
        static alwaysEmbed(e) {
          return new w3(e);
        }
        static amd(e) {
          return new x3(e);
        }
        static area(e) {
          return new k3(e);
        }
        static attributes(e) {
          return new y3(e);
        }
        static autoSave(e) {
          return new j3(e);
        }
        static base(e) {
          return new v3(e);
        }
        static batchOutput(e) {
          return new q3(e);
        }
        static behaviorOverride(e) {
          return new A3(e);
        }
        static cache(e) {
          return new S3(e);
        }
        static change(e) {
          return new C3(e);
        }
        static common(e) {
          return new I3(e);
        }
        static compress(e) {
          return new T3(e);
        }
        static compressLogicalStructure(e) {
          return new E3(e);
        }
        static compressObjectStream(e) {
          return new F3(e);
        }
        static compression(e) {
          return new B3(e);
        }
        static config(e) {
          return new R3(e);
        }
        static conformance(e) {
          return new _3(e);
        }
        static contentCopy(e) {
          return new P3(e);
        }
        static copies(e) {
          return new D3(e);
        }
        static creator(e) {
          return new M3(e);
        }
        static currentPage(e) {
          return new H3(e);
        }
        static data(e) {
          return new O3(e);
        }
        static debug(e) {
          return new L3(e);
        }
        static defaultTypeface(e) {
          return new N3(e);
        }
        static destination(e) {
          return new z3(e);
        }
        static documentAssembly(e) {
          return new U3(e);
        }
        static driver(e) {
          return new G3(e);
        }
        static duplexOption(e) {
          return new W3(e);
        }
        static dynamicRender(e) {
          return new $3(e);
        }
        static embed(e) {
          return new V3(e);
        }
        static encrypt(e) {
          return new K3(e);
        }
        static encryption(e) {
          return new X3(e);
        }
        static encryptionLevel(e) {
          return new Y3(e);
        }
        static enforce(e) {
          return new Q3(e);
        }
        static equate(e) {
          return new J3(e);
        }
        static equateRange(e) {
          return new Z3(e);
        }
        static exclude(e) {
          return new e5(e);
        }
        static excludeNS(e) {
          return new t5(e);
        }
        static flipLabel(e) {
          return new n5(e);
        }
        static fontInfo(e) {
          return new s5(e);
        }
        static formFieldFilling(e) {
          return new i5(e);
        }
        static groupParent(e) {
          return new a5(e);
        }
        static ifEmpty(e) {
          return new r5(e);
        }
        static includeXDPContent(e) {
          return new o5(e);
        }
        static incrementalLoad(e) {
          return new l5(e);
        }
        static incrementalMerge(e) {
          return new f5(e);
        }
        static interactive(e) {
          return new c5(e);
        }
        static jog(e) {
          return new h5(e);
        }
        static labelPrinter(e) {
          return new u5(e);
        }
        static layout(e) {
          return new d5(e);
        }
        static level(e) {
          return new p5(e);
        }
        static linearized(e) {
          return new m5(e);
        }
        static locale(e) {
          return new g5(e);
        }
        static localeSet(e) {
          return new b5(e);
        }
        static log(e) {
          return new w5(e);
        }
        static map(e) {
          return new x5(e);
        }
        static mediumInfo(e) {
          return new k5(e);
        }
        static message(e) {
          return new y5(e);
        }
        static messaging(e) {
          return new j5(e);
        }
        static mode(e) {
          return new v5(e);
        }
        static modifyAnnots(e) {
          return new q5(e);
        }
        static msgId(e) {
          return new A5(e);
        }
        static nameAttr(e) {
          return new S5(e);
        }
        static neverEmbed(e) {
          return new C5(e);
        }
        static numberOfCopies(e) {
          return new I5(e);
        }
        static openAction(e) {
          return new T5(e);
        }
        static output(e) {
          return new E5(e);
        }
        static outputBin(e) {
          return new F5(e);
        }
        static outputXSL(e) {
          return new B5(e);
        }
        static overprint(e) {
          return new R5(e);
        }
        static packets(e) {
          return new _5(e);
        }
        static pageOffset(e) {
          return new P5(e);
        }
        static pageRange(e) {
          return new D5(e);
        }
        static pagination(e) {
          return new M5(e);
        }
        static paginationOverride(e) {
          return new H5(e);
        }
        static part(e) {
          return new O5(e);
        }
        static pcl(e) {
          return new L5(e);
        }
        static pdf(e) {
          return new N5(e);
        }
        static pdfa(e) {
          return new z5(e);
        }
        static permissions(e) {
          return new U5(e);
        }
        static pickTrayByPDFSize(e) {
          return new G5(e);
        }
        static picture(e) {
          return new W5(e);
        }
        static plaintextMetadata(e) {
          return new $5(e);
        }
        static presence(e) {
          return new V5(e);
        }
        static present(e) {
          return new K5(e);
        }
        static print(e) {
          return new X5(e);
        }
        static printHighQuality(e) {
          return new Y5(e);
        }
        static printScaling(e) {
          return new Q5(e);
        }
        static printerName(e) {
          return new J5(e);
        }
        static producer(e) {
          return new Z5(e);
        }
        static ps(e) {
          return new e4(e);
        }
        static range(e) {
          return new t4(e);
        }
        static record(e) {
          return new n4(e);
        }
        static relevant(e) {
          return new s4(e);
        }
        static rename(e) {
          return new i4(e);
        }
        static renderPolicy(e) {
          return new a4(e);
        }
        static runScripts(e) {
          return new r4(e);
        }
        static script(e) {
          return new o4(e);
        }
        static scriptModel(e) {
          return new l4(e);
        }
        static severity(e) {
          return new f4(e);
        }
        static silentPrint(e) {
          return new c4(e);
        }
        static staple(e) {
          return new h4(e);
        }
        static startNode(e) {
          return new u4(e);
        }
        static startPage(e) {
          return new d4(e);
        }
        static submitFormat(e) {
          return new p4(e);
        }
        static submitUrl(e) {
          return new m4(e);
        }
        static subsetBelow(e) {
          return new g4(e);
        }
        static suppressBanner(e) {
          return new b4(e);
        }
        static tagged(e) {
          return new w4(e);
        }
        static template(e) {
          return new x4(e);
        }
        static templateCache(e) {
          return new j4(e);
        }
        static threshold(e) {
          return new k4(e);
        }
        static to(e) {
          return new y4(e);
        }
        static trace(e) {
          return new v4(e);
        }
        static transform(e) {
          return new q4(e);
        }
        static type(e) {
          return new A4(e);
        }
        static uri(e) {
          return new S4(e);
        }
        static validate(e) {
          return new C4(e);
        }
        static validateApprovalSignatures(e) {
          return new I4(e);
        }
        static validationMessaging(e) {
          return new T4(e);
        }
        static version(e) {
          return new E4(e);
        }
        static versionControl(e) {
          return new F4(e);
        }
        static viewerPreferences(e) {
          return new B4(e);
        }
        static webClient(e) {
          return new R4(e);
        }
        static whitespace(e) {
          return new _4(e);
        }
        static window(e) {
          return new P4(e);
        }
        static xdc(e) {
          return new D4(e);
        }
        static xdp(e) {
          return new M4(e);
        }
        static xsl(e) {
          return new H4(e);
        }
        static zpl(e) {
          return new O4(e);
        }
      };
      Is = Kt.connectionSet.id;
      L4 = class extends X {
        static {
          p(this, "ConnectionSet");
        }
        constructor(e) {
          super(Is, "connectionSet", true), this.wsdlConnection = new R(), this.xmlConnection = new R(), this.xsdConnection = new R();
        }
      };
      N4 = class extends X {
        static {
          p(this, "EffectiveInputPolicy");
        }
        constructor(e) {
          super(Is, "effectiveInputPolicy"), this.id = e.id || "", this.name = e.name || "", this.use = e.use || "", this.usehref = e.usehref || "";
        }
      };
      z4 = class extends X {
        static {
          p(this, "EffectiveOutputPolicy");
        }
        constructor(e) {
          super(Is, "effectiveOutputPolicy"), this.id = e.id || "", this.name = e.name || "", this.use = e.use || "", this.usehref = e.usehref || "";
        }
      };
      U4 = class extends Ze {
        static {
          p(this, "Operation");
        }
        constructor(e) {
          super(Is, "operation"), this.id = e.id || "", this.input = e.input || "", this.name = e.name || "", this.output = e.output || "", this.use = e.use || "", this.usehref = e.usehref || "";
        }
      };
      G4 = class extends Ze {
        static {
          p(this, "RootElement");
        }
        constructor(e) {
          super(Is, "rootElement"), this.id = e.id || "", this.name = e.name || "", this.use = e.use || "", this.usehref = e.usehref || "";
        }
      };
      W4 = class extends Ze {
        static {
          p(this, "SoapAction");
        }
        constructor(e) {
          super(Is, "soapAction"), this.id = e.id || "", this.name = e.name || "", this.use = e.use || "", this.usehref = e.usehref || "";
        }
      };
      $4 = class extends Ze {
        static {
          p(this, "SoapAddress");
        }
        constructor(e) {
          super(Is, "soapAddress"), this.id = e.id || "", this.name = e.name || "", this.use = e.use || "", this.usehref = e.usehref || "";
        }
      };
      V4 = class extends Ze {
        static {
          p(this, "connection_set_Uri");
        }
        constructor(e) {
          super(Is, "uri"), this.id = e.id || "", this.name = e.name || "", this.use = e.use || "", this.usehref = e.usehref || "";
        }
      };
      K4 = class extends Ze {
        static {
          p(this, "WsdlAddress");
        }
        constructor(e) {
          super(Is, "wsdlAddress"), this.id = e.id || "", this.name = e.name || "", this.use = e.use || "", this.usehref = e.usehref || "";
        }
      };
      X4 = class extends X {
        static {
          p(this, "WsdlConnection");
        }
        constructor(e) {
          super(Is, "wsdlConnection", true), this.dataDescription = e.dataDescription || "", this.name = e.name || "", this.effectiveInputPolicy = null, this.effectiveOutputPolicy = null, this.operation = null, this.soapAction = null, this.soapAddress = null, this.wsdlAddress = null;
        }
      };
      Y4 = class extends X {
        static {
          p(this, "XmlConnection");
        }
        constructor(e) {
          super(Is, "xmlConnection", true), this.dataDescription = e.dataDescription || "", this.name = e.name || "", this.uri = null;
        }
      };
      Q4 = class extends X {
        static {
          p(this, "XsdConnection");
        }
        constructor(e) {
          super(Is, "xsdConnection", true), this.dataDescription = e.dataDescription || "", this.name = e.name || "", this.rootElement = null, this.uri = null;
        }
      };
      G0 = class _G0 {
        static {
          p(this, "ConnectionSetNamespace");
        }
        static [Os](e, n) {
          if (_G0.hasOwnProperty(e)) return _G0[e](n);
        }
        static connectionSet(e) {
          return new L4(e);
        }
        static effectiveInputPolicy(e) {
          return new N4(e);
        }
        static effectiveOutputPolicy(e) {
          return new z4(e);
        }
        static operation(e) {
          return new U4(e);
        }
        static rootElement(e) {
          return new G4(e);
        }
        static soapAction(e) {
          return new W4(e);
        }
        static soapAddress(e) {
          return new $4(e);
        }
        static uri(e) {
          return new V4(e);
        }
        static wsdlAddress(e) {
          return new K4(e);
        }
        static wsdlConnection(e) {
          return new X4(e);
        }
        static xmlConnection(e) {
          return new Y4(e);
        }
        static xsdConnection(e) {
          return new Q4(e);
        }
      };
      Pc = Kt.datasets.id;
      J4 = class extends ri {
        static {
          p(this, "datasets_Data");
        }
        constructor(e) {
          super(Pc, "data", e);
        }
        [mo]() {
          return true;
        }
      };
      Z4 = class extends X {
        static {
          p(this, "Datasets");
        }
        constructor(e) {
          super(Pc, "datasets", true), this.data = null, this.Signature = null;
        }
        [Zs](e) {
          const n = e[dt];
          (n === "data" && e[Vt] === Pc || n === "Signature" && e[Vt] === Kt.signature.id) && (this[n] = e), this[Mt](e);
        }
      };
      W0 = class _W0 {
        static {
          p(this, "DatasetsNamespace");
        }
        static [Os](e, n) {
          if (_W0.hasOwnProperty(e)) return _W0[e](n);
        }
        static datasets(e) {
          return new Z4(e);
        }
        static data(e) {
          return new J4(e);
        }
      };
      Ot = Kt.localeSet.id;
      e8 = class extends X {
        static {
          p(this, "CalendarSymbols");
        }
        constructor(e) {
          super(Ot, "calendarSymbols", true), this.name = "gregorian", this.dayNames = new R(2), this.eraNames = null, this.meridiemNames = null, this.monthNames = new R(2);
        }
      };
      t8 = class extends Ze {
        static {
          p(this, "CurrencySymbol");
        }
        constructor(e) {
          super(Ot, "currencySymbol"), this.name = ne(e.name, ["symbol", "isoname", "decimal"]);
        }
      };
      n8 = class extends X {
        static {
          p(this, "CurrencySymbols");
        }
        constructor(e) {
          super(Ot, "currencySymbols", true), this.currencySymbol = new R(3);
        }
      };
      s8 = class extends Ze {
        static {
          p(this, "DatePattern");
        }
        constructor(e) {
          super(Ot, "datePattern"), this.name = ne(e.name, ["full", "long", "med", "short"]);
        }
      };
      i8 = class extends X {
        static {
          p(this, "DatePatterns");
        }
        constructor(e) {
          super(Ot, "datePatterns", true), this.datePattern = new R(4);
        }
      };
      a8 = class extends Ht {
        static {
          p(this, "DateTimeSymbols");
        }
        constructor(e) {
          super(Ot, "dateTimeSymbols");
        }
      };
      r8 = class extends Ze {
        static {
          p(this, "Day");
        }
        constructor(e) {
          super(Ot, "day");
        }
      };
      o8 = class extends X {
        static {
          p(this, "DayNames");
        }
        constructor(e) {
          super(Ot, "dayNames", true), this.abbr = He({ data: e.abbr, defaultValue: 0, validate: p((n) => n === 1, "validate") }), this.day = new R(7);
        }
      };
      l8 = class extends Ze {
        static {
          p(this, "Era");
        }
        constructor(e) {
          super(Ot, "era");
        }
      };
      f8 = class extends X {
        static {
          p(this, "EraNames");
        }
        constructor(e) {
          super(Ot, "eraNames", true), this.era = new R(2);
        }
      };
      c8 = class extends X {
        static {
          p(this, "locale_set_Locale");
        }
        constructor(e) {
          super(Ot, "locale", true), this.desc = e.desc || "", this.name = "isoname", this.calendarSymbols = null, this.currencySymbols = null, this.datePatterns = null, this.dateTimeSymbols = null, this.numberPatterns = null, this.numberSymbols = null, this.timePatterns = null, this.typeFaces = null;
        }
      };
      h8 = class extends X {
        static {
          p(this, "locale_set_LocaleSet");
        }
        constructor(e) {
          super(Ot, "localeSet", true), this.locale = new R();
        }
      };
      u8 = class extends Ze {
        static {
          p(this, "Meridiem");
        }
        constructor(e) {
          super(Ot, "meridiem");
        }
      };
      d8 = class extends X {
        static {
          p(this, "MeridiemNames");
        }
        constructor(e) {
          super(Ot, "meridiemNames", true), this.meridiem = new R(2);
        }
      };
      p8 = class extends Ze {
        static {
          p(this, "Month");
        }
        constructor(e) {
          super(Ot, "month");
        }
      };
      m8 = class extends X {
        static {
          p(this, "MonthNames");
        }
        constructor(e) {
          super(Ot, "monthNames", true), this.abbr = He({ data: e.abbr, defaultValue: 0, validate: p((n) => n === 1, "validate") }), this.month = new R(12);
        }
      };
      g8 = class extends Ze {
        static {
          p(this, "NumberPattern");
        }
        constructor(e) {
          super(Ot, "numberPattern"), this.name = ne(e.name, ["full", "long", "med", "short"]);
        }
      };
      b8 = class extends X {
        static {
          p(this, "NumberPatterns");
        }
        constructor(e) {
          super(Ot, "numberPatterns", true), this.numberPattern = new R(4);
        }
      };
      w8 = class extends Ze {
        static {
          p(this, "NumberSymbol");
        }
        constructor(e) {
          super(Ot, "numberSymbol"), this.name = ne(e.name, ["decimal", "grouping", "percent", "minus", "zero"]);
        }
      };
      x8 = class extends X {
        static {
          p(this, "NumberSymbols");
        }
        constructor(e) {
          super(Ot, "numberSymbols", true), this.numberSymbol = new R(5);
        }
      };
      k8 = class extends Ze {
        static {
          p(this, "TimePattern");
        }
        constructor(e) {
          super(Ot, "timePattern"), this.name = ne(e.name, ["full", "long", "med", "short"]);
        }
      };
      y8 = class extends X {
        static {
          p(this, "TimePatterns");
        }
        constructor(e) {
          super(Ot, "timePatterns", true), this.timePattern = new R(4);
        }
      };
      j8 = class extends X {
        static {
          p(this, "TypeFace");
        }
        constructor(e) {
          super(Ot, "typeFace", true), this.name = e.name | "";
        }
      };
      v8 = class extends X {
        static {
          p(this, "TypeFaces");
        }
        constructor(e) {
          super(Ot, "typeFaces", true), this.typeFace = new R();
        }
      };
      $0 = class _$0 {
        static {
          p(this, "LocaleSetNamespace");
        }
        static [Os](e, n) {
          if (_$0.hasOwnProperty(e)) return _$0[e](n);
        }
        static calendarSymbols(e) {
          return new e8(e);
        }
        static currencySymbol(e) {
          return new t8(e);
        }
        static currencySymbols(e) {
          return new n8(e);
        }
        static datePattern(e) {
          return new s8(e);
        }
        static datePatterns(e) {
          return new i8(e);
        }
        static dateTimeSymbols(e) {
          return new a8(e);
        }
        static day(e) {
          return new r8(e);
        }
        static dayNames(e) {
          return new o8(e);
        }
        static era(e) {
          return new l8(e);
        }
        static eraNames(e) {
          return new f8(e);
        }
        static locale(e) {
          return new c8(e);
        }
        static localeSet(e) {
          return new h8(e);
        }
        static meridiem(e) {
          return new u8(e);
        }
        static meridiemNames(e) {
          return new d8(e);
        }
        static month(e) {
          return new p8(e);
        }
        static monthNames(e) {
          return new m8(e);
        }
        static numberPattern(e) {
          return new g8(e);
        }
        static numberPatterns(e) {
          return new b8(e);
        }
        static numberSymbol(e) {
          return new w8(e);
        }
        static numberSymbols(e) {
          return new x8(e);
        }
        static timePattern(e) {
          return new k8(e);
        }
        static timePatterns(e) {
          return new y8(e);
        }
        static typeFace(e) {
          return new j8(e);
        }
        static typeFaces(e) {
          return new v8(e);
        }
      };
      q8 = Kt.signature.id;
      A8 = class extends X {
        static {
          p(this, "signature_Signature");
        }
        constructor(e) {
          super(q8, "signature", true);
        }
      };
      V0 = class _V0 {
        static {
          p(this, "SignatureNamespace");
        }
        static [Os](e, n) {
          if (_V0.hasOwnProperty(e)) return _V0[e](n);
        }
        static signature(e) {
          return new A8(e);
        }
      };
      S8 = Kt.stylesheet.id;
      C8 = class extends X {
        static {
          p(this, "Stylesheet");
        }
        constructor(e) {
          super(S8, "stylesheet", true);
        }
      };
      K0 = class _K0 {
        static {
          p(this, "StylesheetNamespace");
        }
        static [Os](e, n) {
          if (_K0.hasOwnProperty(e)) return _K0[e](n);
        }
        static stylesheet(e) {
          return new C8(e);
        }
      };
      I8 = Kt.xdp.id;
      T8 = class extends X {
        static {
          p(this, "xdp_Xdp");
        }
        constructor(e) {
          super(I8, "xdp", true), this.uuid = e.uuid || "", this.timeStamp = e.timeStamp || "", this.config = null, this.connectionSet = null, this.datasets = null, this.localeSet = null, this.stylesheet = new R(), this.template = null;
        }
        [hc](e) {
          const n = Kt[e[dt]];
          return n && e[Vt] === n.id;
        }
      };
      X0 = class _X0 {
        static {
          p(this, "XdpNamespace");
        }
        static [Os](e, n) {
          if (_X0.hasOwnProperty(e)) return _X0[e](n);
        }
        static xdp(e) {
          return new T8(e);
        }
      };
      E8 = Kt.xhtml.id;
      f0 = /* @__PURE__ */ Symbol();
      F8 = /* @__PURE__ */ new Set(["color", "font", "font-family", "font-size", "font-stretch", "font-style", "font-weight", "margin", "margin-bottom", "margin-left", "margin-right", "margin-top", "letter-spacing", "line-height", "orphans", "page-break-after", "page-break-before", "page-break-inside", "tab-interval", "tab-stop", "text-align", "text-decoration", "text-indent", "vertical-align", "widows", "kerning-mode", "xfa-font-horizontal-scale", "xfa-font-vertical-scale", "xfa-spacerun", "xfa-tab-stops"]);
      B8 = /* @__PURE__ */ new Map([["page-break-after", "breakAfter"], ["page-break-before", "breakBefore"], ["page-break-inside", "breakInside"], ["kerning-mode", (t) => t === "none" ? "none" : "normal"], ["xfa-font-horizontal-scale", (t) => `scaleX(${Math.max(0, parseInt(t) / 100).toFixed(2)})`], ["xfa-font-vertical-scale", (t) => `scaleY(${Math.max(0, parseInt(t) / 100).toFixed(2)})`], ["xfa-spacerun", ""], ["xfa-tab-stops", ""], ["font-size", (t, e) => (t = e.fontSize = Math.abs(ve(t)), Oe(0.99 * t))], ["letter-spacing", (t) => Oe(ve(t))], ["line-height", (t) => Oe(ve(t))], ["margin", (t) => Oe(ve(t))], ["margin-bottom", (t) => Oe(ve(t))], ["margin-left", (t) => Oe(ve(t))], ["margin-right", (t) => Oe(ve(t))], ["margin-top", (t) => Oe(ve(t))], ["text-indent", (t) => Oe(ve(t))], ["font-family", (t) => t], ["vertical-align", (t) => Oe(ve(t))]]);
      R8 = /\s+/g;
      _8 = /[\r\n]+/g;
      P8 = /\r\n?/g;
      p(D8, "mapStyle");
      p(M8, "checkStyle");
      H8 = /* @__PURE__ */ new Set(["body", "html"]);
      us = class extends ri {
        static {
          p(this, "XhtmlObject");
        }
        constructor(e, n) {
          super(E8, n), this[f0] = false, this.style = e.style || "";
        }
        [As](e) {
          super[As](e), this.style = M8(this);
        }
        [$l]() {
          return !H8.has(this[dt]);
        }
        [yi](e, n = false) {
          n ? this[f0] = true : (e = e.replaceAll(_8, ""), this.style.includes("xfa-spacerun:yes") || (e = e.replaceAll(R8, " "))), e && (this[ee] += e);
        }
        [ei](e, n = true) {
          const s = /* @__PURE__ */ Object.create(null), i = { top: NaN, bottom: NaN, left: NaN, right: NaN };
          let a = null;
          for (const [r, o] of this.style.split(";").map((l) => l.split(":", 2))) switch (r) {
            case "font-family":
              s.typeface = Yl(o);
              break;
            case "font-size":
              s.size = ve(o);
              break;
            case "font-weight":
              s.weight = o;
              break;
            case "font-style":
              s.posture = o;
              break;
            case "letter-spacing":
              s.letterSpacing = ve(o);
              break;
            case "margin":
              const l = o.split(/ \t/).map((f) => ve(f));
              switch (l.length) {
                case 1:
                  i.top = i.bottom = i.left = i.right = l[0];
                  break;
                case 2:
                  i.top = i.bottom = l[0], i.left = i.right = l[1];
                  break;
                case 3:
                  i.top = l[0], i.bottom = l[2], i.left = i.right = l[1];
                  break;
                case 4:
                  i.top = l[0], i.left = l[1], i.bottom = l[2], i.right = l[3];
                  break;
              }
              break;
            case "margin-top":
              i.top = ve(o);
              break;
            case "margin-bottom":
              i.bottom = ve(o);
              break;
            case "margin-left":
              i.left = ve(o);
              break;
            case "margin-right":
              i.right = ve(o);
              break;
            case "line-height":
              a = ve(o);
              break;
          }
          if (e.pushData(s, i, a), this[ee]) e.addString(this[ee]);
          else for (const r of this[gn]()) {
            if (r[dt] === "#text") {
              e.addString(r[ee]);
              continue;
            }
            r[ei](e);
          }
          n && e.popFont();
        }
        [Pe](e) {
          const n = [];
          if (this[V] = { children: n }, this[Ni]({}), n.length === 0 && !this[ee]) return Ee.EMPTY;
          let s;
          return this[f0] ? s = this[ee] ? this[ee].replaceAll(P8, `
`) : void 0 : s = this[ee] || void 0, Ee.success({ name: this[dt], attributes: { href: this.href, style: D8(this.style, this, this[f0]) }, children: n, value: s });
        }
      };
      O8 = class extends us {
        static {
          p(this, "A");
        }
        constructor(e) {
          super(e, "a"), this.href = d1(e.href) || "";
        }
      };
      L8 = class extends us {
        static {
          p(this, "B");
        }
        constructor(e) {
          super(e, "b");
        }
        [ei](e) {
          e.pushFont({ weight: "bold" }), super[ei](e), e.popFont();
        }
      };
      N8 = class extends us {
        static {
          p(this, "Body");
        }
        constructor(e) {
          super(e, "body");
        }
        [Pe](e) {
          const n = super[Pe](e), { html: s } = n;
          return s ? (s.name = "div", s.attributes.class = ["xfaRich"], n) : Ee.EMPTY;
        }
      };
      z8 = class extends us {
        static {
          p(this, "Br");
        }
        constructor(e) {
          super(e, "br");
        }
        [nn]() {
          return `
`;
        }
        [ei](e) {
          e.addString(`
`);
        }
        [Pe](e) {
          return Ee.success({ name: "br" });
        }
      };
      U8 = class extends us {
        static {
          p(this, "Html");
        }
        constructor(e) {
          super(e, "html");
        }
        [Pe](e) {
          const n = [];
          if (this[V] = { children: n }, this[Ni]({}), n.length === 0) return Ee.success({ name: "div", attributes: { class: ["xfaRich"], style: {} }, value: this[ee] || "" });
          if (n.length === 1) {
            const s = n[0];
            if (s.attributes?.class.includes("xfaRich")) return Ee.success(s);
          }
          return Ee.success({ name: "div", attributes: { class: ["xfaRich"], style: {} }, children: n });
        }
      };
      G8 = class extends us {
        static {
          p(this, "I");
        }
        constructor(e) {
          super(e, "i");
        }
        [ei](e) {
          e.pushFont({ posture: "italic" }), super[ei](e), e.popFont();
        }
      };
      W8 = class extends us {
        static {
          p(this, "Li");
        }
        constructor(e) {
          super(e, "li");
        }
      };
      $8 = class extends us {
        static {
          p(this, "Ol");
        }
        constructor(e) {
          super(e, "ol");
        }
      };
      V8 = class extends us {
        static {
          p(this, "P");
        }
        constructor(e) {
          super(e, "p");
        }
        [ei](e) {
          super[ei](e, false), e.addString(`
`), e.addPara(), e.popFont();
        }
        [nn]() {
          return this[Ue]()[gn]().at(-1) === this ? super[nn]() : super[nn]() + `
`;
        }
      };
      K8 = class extends us {
        static {
          p(this, "Span");
        }
        constructor(e) {
          super(e, "span");
        }
      };
      X8 = class extends us {
        static {
          p(this, "Sub");
        }
        constructor(e) {
          super(e, "sub");
        }
      };
      Y8 = class extends us {
        static {
          p(this, "Sup");
        }
        constructor(e) {
          super(e, "sup");
        }
      };
      Q8 = class extends us {
        static {
          p(this, "Ul");
        }
        constructor(e) {
          super(e, "ul");
        }
      };
      Ar = class _Ar {
        static {
          p(this, "XhtmlNamespace");
        }
        static [Os](e, n) {
          if (_Ar.hasOwnProperty(e)) return _Ar[e](n);
        }
        static a(e) {
          return new O8(e);
        }
        static b(e) {
          return new L8(e);
        }
        static body(e) {
          return new N8(e);
        }
        static br(e) {
          return new z8(e);
        }
        static html(e) {
          return new U8(e);
        }
        static i(e) {
          return new G8(e);
        }
        static li(e) {
          return new W8(e);
        }
        static ol(e) {
          return new $8(e);
        }
        static p(e) {
          return new V8(e);
        }
        static span(e) {
          return new K8(e);
        }
        static sub(e) {
          return new X8(e);
        }
        static sup(e) {
          return new Y8(e);
        }
        static ul(e) {
          return new Q8(e);
        }
      };
      M1 = { config: U0, connection: G0, datasets: W0, localeSet: $0, signature: V0, stylesheet: K0, template: z0, xdp: X0, xhtml: Ar };
      H1 = class {
        static {
          p(this, "UnknownNamespace");
        }
        constructor(e) {
          this.namespaceId = e;
        }
        [Os](e, n) {
          return new ri(this.namespaceId, e, n);
        }
      };
      J8 = class extends X {
        static {
          p(this, "Root");
        }
        constructor(e) {
          super(-1, "root", /* @__PURE__ */ Object.create(null)), this.element = null, this[nr] = e;
        }
        [Zs](e) {
          return this.element = e, true;
        }
        [vt]() {
          super[vt](), this.element.template instanceof Bc && (this[nr].set($d, this.element), this.element.template[wo](this[nr]), this.element.template[nr] = this[nr]);
        }
      };
      Z8 = class extends X {
        static {
          p(this, "Empty");
        }
        constructor() {
          super(-1, "", /* @__PURE__ */ Object.create(null));
        }
        [Zs](e) {
          return false;
        }
      };
      e7 = class {
        static {
          p(this, "Builder");
        }
        constructor(e = null) {
          this._namespaceStack = [], this._nsAgnosticLevel = 0, this._namespacePrefixes = /* @__PURE__ */ new Map(), this._namespaces = /* @__PURE__ */ new Map(), this._nextNsId = Math.max(...Object.values(Kt).map(({ id: n }) => n)), this._currentNamespace = e || new H1(++this._nextNsId);
        }
        buildRoot(e) {
          return new J8(e);
        }
        build({ nsPrefix: e, name: n, attributes: s, namespace: i, prefixes: a }) {
          const r = i !== null;
          if (r && (this._namespaceStack.push(this._currentNamespace), this._currentNamespace = this._searchNamespace(i)), a && this._addNamespacePrefix(a), s.hasOwnProperty(ka)) {
            const f = M1.datasets, c = s[ka];
            let h = null;
            for (const [u, d] of Object.entries(c)) if (this._getNamespaceToUse(u) === f) {
              h = { xfa: d };
              break;
            }
            h ? s[ka] = h : delete s[ka];
          }
          const l = this._getNamespaceToUse(e)?.[Os](n, s) || new Z8();
          return l[mo]() && this._nsAgnosticLevel++, (r || a || l[mo]()) && (l[Vl] = { hasNamespace: r, prefixes: a, nsAgnostic: l[mo]() }), l;
        }
        isNsAgnostic() {
          return this._nsAgnosticLevel > 0;
        }
        _searchNamespace(e) {
          let n = this._namespaces.get(e);
          if (n) return n;
          for (const [s, { check: i }] of Object.entries(Kt)) if (i(e)) {
            if (n = M1[s], n) return this._namespaces.set(e, n), n;
            break;
          }
          return n = new H1(++this._nextNsId), this._namespaces.set(e, n), n;
        }
        _addNamespacePrefix(e) {
          for (const { prefix: n, value: s } of e) {
            const i = this._searchNamespace(s);
            this._namespacePrefixes.getOrInsertComputed(n, hl).push(i);
          }
        }
        _getNamespaceToUse(e) {
          if (!e) return this._currentNamespace;
          const n = this._namespacePrefixes.get(e);
          return n?.length > 0 ? n.at(-1) : (F(`Unknown namespace prefix: ${e}.`), null);
        }
        clean(e) {
          const { hasNamespace: n, prefixes: s, nsAgnostic: i } = e;
          n && (this._currentNamespace = this._namespaceStack.pop()), s && s.forEach(({ prefix: a }) => {
            this._namespacePrefixes.get(a).pop();
          }), i && this._nsAgnosticLevel--;
        }
      };
      Y0 = class _Y0 extends Nd {
        static {
          p(this, "XFAParser");
        }
        constructor(e = null, n = false) {
          super(), this._builder = new e7(e), this._stack = [], this._globalData = { usedTypefaces: /* @__PURE__ */ new Set() }, this._ids = /* @__PURE__ */ new Map(), this._current = this._builder.buildRoot(this._ids), this._errorCode = Yn.NoError, this._whiteRegex = /^\s+$/, this._nbsps = /\xa0+/g, this._richText = n;
        }
        parse(e) {
          if (this.parseXml(e), this._errorCode === Yn.NoError) return this._current[vt](), this._current.element;
        }
        onText(e) {
          if (e = e.replace(this._nbsps, (n) => n.slice(1) + " "), this._richText || this._current[$l]()) {
            this._current[yi](e, this._richText);
            return;
          }
          this._whiteRegex.test(e) || this._current[yi](e.trim());
        }
        onCdata(e) {
          this._current[yi](e);
        }
        _mkAttributes(e, n) {
          let s = null, i = null;
          const a = /* @__PURE__ */ Object.create({});
          for (const { name: r, value: o } of e) if (r === "xmlns") s ? F(`XFA - multiple namespace definition in <${n}>`) : s = o;
          else if (r.startsWith("xmlns:")) {
            const l = r.substring(6);
            i ??= [], i.push({ prefix: l, value: o });
          } else {
            const l = r.indexOf(":");
            if (l === -1) a[r] = o;
            else {
              const f = a[ka] ??= /* @__PURE__ */ Object.create(null), [c, h] = [r.slice(0, l), r.slice(l + 1)], u = f[c] ||= /* @__PURE__ */ Object.create(null);
              u[h] = o;
            }
          }
          return [s, i, a];
        }
        _getNameAndPrefix(e, n) {
          const s = e.indexOf(":");
          return s === -1 ? [e, null] : [e.substring(s + 1), n ? "" : e.substring(0, s)];
        }
        onBeginElement(e, n, s) {
          const [i, a, r] = this._mkAttributes(n, e), [o, l] = this._getNameAndPrefix(e, this._builder.isNsAgnostic()), f = this._builder.build({ nsPrefix: l, name: o, attributes: r, namespace: i, prefixes: a });
          if (f[qt] = this._globalData, s) {
            f[vt](), this._current[Zs](f) && f[uc](this._ids), f[As](this._builder);
            return;
          }
          this._stack.push(this._current), this._current = f;
        }
        onEndElement(e) {
          const n = this._current;
          if (n[cc]() && typeof n[ee] == "string") {
            const s = new _Y0();
            s._globalData = this._globalData;
            const i = s.parse(n[ee]);
            n[ee] = null, n[Zs](i);
          }
          n[vt](), this._current = this._stack.pop(), this._current[Zs](n) && n[uc](this._ids), n[As](this._builder);
        }
        onError(e) {
          this._errorCode = e;
        }
      };
      Xo = class _Xo {
        static {
          p(this, "XFAFactory");
        }
        constructor(e) {
          try {
            this.root = new Y0().parse(_Xo._createDocument(e));
            const n = new o3(this.root);
            this.form = n.bind(), this.dataHandler = new l3(this.root, n.getData()), this.form[qt].template = this.form;
          } catch (n) {
            F(`XFA - an error occurred during parsing and binding: ${n}`);
          }
        }
        isValid() {
          return !!(this.root && this.form);
        }
        _createPagesHelper() {
          const e = this.form[Kd]();
          return new Promise((n, s) => {
            const i = p(() => {
              try {
                const a = e.next();
                a.done ? n(a.value) : setTimeout(i, 0);
              } catch (a) {
                s(a);
              }
            }, "nextIteration");
            setTimeout(i, 0);
          });
        }
        async _createPages() {
          try {
            this.pages = await this._createPagesHelper(), this.dims = this.pages.children.map((e) => {
              const { width: n, height: s } = e.attributes.style;
              return [0, 0, parseInt(n), parseInt(s)];
            });
          } catch (e) {
            F(`XFA - an error occurred during layout: ${e}`);
          }
        }
        getBoundingBox(e) {
          return this.dims[e];
        }
        async getNumPages() {
          return this.pages || await this._createPages(), this.dims.length;
        }
        setImages(e) {
          this.form[qt].images = e;
        }
        setFonts(e) {
          this.form[qt].fontFinder = new p2(e);
          const n = [];
          for (let s of this.form[qt].usedTypefaces) s = Yl(s), this.form[qt].fontFinder.find(s) || n.push(s);
          return n.length > 0 ? n : null;
        }
        appendFonts(e, n) {
          this.form[qt].fontFinder.add(e, n);
        }
        async getPages() {
          this.pages || await this._createPages();
          const e = this.pages;
          return this.pages = null, e;
        }
        serializeData(e) {
          return this.dataHandler.serialize(e);
        }
        static _createDocument(e) {
          return e["/xdp:xdp"] ? Object.values(e).join("") : e["xdp:xdp"];
        }
        static getRichTextAsHtml(e) {
          if (!e || typeof e != "string") return null;
          try {
            let n = new Y0(Ar, true).parse(e);
            if (!["body", "xhtml"].includes(n[dt])) {
              const r = Ar.body({});
              r[Mt](n), n = r;
            }
            const s = n[Pe]();
            if (!s.success) return null;
            const { html: i } = s, { attributes: a } = i;
            return a && (a.class && (a.class = a.class.filter((r) => !r.startsWith("xfa"))), a.dir = "auto"), { html: i, str: n[nn]() };
          } catch (n) {
            F(`XFA - an error occurred during parsing of rich text: ${n}`);
          }
          return null;
        }
      };
      zs = class {
        static {
          p(this, "AnnotationFactory");
        }
        static createGlobals(e) {
          return Promise.all([e.ensureCatalog("acroForm"), e.ensureDoc("xfaDatasets"), e.ensureCatalog("structTreeRoot"), e.ensureCatalog("baseUrl"), e.ensureCatalog("attachments"), e.ensureCatalog("globalColorSpaceCache")]).then(([n, s, i, a, r, o]) => ({ pdfManager: e, acroForm: n instanceof _ ? n : _.empty, xfaDatasets: s, structTreeRoot: i, baseUrl: a, attachments: r, globalColorSpaceCache: o }), (n) => (F(`createGlobals: "${n}".`), null));
        }
        static async create(e, n, s, i, a, r, o, l) {
          const f = a ? await this._getPageIndex(e, n, s.pdfManager) : null;
          return s.pdfManager.ensure(this, "_create", [e, n, s, i, a, r, o, f, l]);
        }
        static _create(e, n, s, i, a = false, r = null, o = null, l = null, f = null) {
          const c = e.fetchIfRef(n);
          if (!(c instanceof _)) return;
          let h = c.get("Subtype");
          if (h = h instanceof te ? h.name : null, o && !o.has(Lh[h?.toUpperCase()])) return null;
          const { acroForm: u, pdfManager: d } = s, m = n instanceof ae ? n.toString() : `annot_${i.createObjId()}`, g = { xref: e, ref: n, dict: c, subtype: h, id: m, annotationGlobals: s, collectFields: a, orphanFields: r, needAppearances: !a && u.get("NeedAppearances") === true, pageIndex: l, evaluatorOptions: d.evaluatorOptions, pageRef: f };
          switch (h) {
            case "Link":
              return new r7(g);
            case "Text":
              return new a7(g);
            case "Widget":
              let b = os({ dict: c, key: "FT" });
              switch (b = b instanceof te ? b.name : null, b) {
                case "Tx":
                  return new n7(g);
                case "Btn":
                  return new s7(g);
                case "Ch":
                  return new i7(g);
                case "Sig":
                  return new O1(g);
              }
              return F(`Unimplemented widget field type "${b}", falling back to base field type.`), new Gs(g);
            case "Popup":
              return new Mc(g);
            case "FreeText":
              return new Hc(g);
            case "Line":
              return new o7(g);
            case "Square":
              return new l7(g);
            case "Circle":
              return new f7(g);
            case "PolyLine":
              return new L1(g);
            case "Polygon":
              return new N1(g);
            case "Caret":
              return new c7(g);
            case "Ink":
              return new Co(g);
            case "Highlight":
              return new Oc(g);
            case "Underline":
              return new h7(g);
            case "Squiggly":
              return new u7(g);
            case "StrikeOut":
              return new d7(g);
            case "Stamp":
              return new lr(g);
            case "FileAttachment":
              return new p7(g);
            default:
              return a || F(h ? `Unimplemented annotation type "${h}", falling back to base annotation.` : "Annotation is missing the required /Subtype."), new So(g);
          }
        }
        static async _getPageIndex(e, n, s) {
          try {
            const i = await e.fetchIfRefAsync(n);
            if (!(i instanceof _)) return -1;
            const a = i.getRaw("P");
            if (a instanceof ae) try {
              return await s.ensureCatalog("getPageIndex", [a]);
            } catch (o) {
              Ke(`_getPageIndex -- not a valid page reference: "${o}".`);
            }
            if (i.has("Kids")) return -1;
            const r = await s.ensureDoc("numPages");
            for (let o = 0; o < r; o++) {
              const l = await s.getPage(o), f = await s.ensure(l, "annotations");
              for (const c of f) if (c instanceof ae && dl(c, n)) return o;
            }
          } catch (i) {
            F(`_getPageIndex: "${i}".`);
          }
          return -1;
        }
        static generateImages(e, n, s) {
          if (!s) return F("generateImages: OffscreenCanvas is not supported, cannot save or print some annotations with images."), null;
          let i;
          for (const { bitmapId: a, bitmap: r } of e) r && (i ||= /* @__PURE__ */ new Map(), i.set(a, lr.createImage(r, n)));
          return i;
        }
        static async saveNewAnnotations(e, n, s, i, a, r) {
          let o;
          const l = [], { isOffscreenCanvasSupported: f } = e.options;
          for (const c of i) if (!c.deleted) switch (c.annotationType) {
            case $s.FREETEXT:
              if (!o) {
                const u = new _(n);
                u.setIfName("BaseFont", "Helvetica"), u.setIfName("Type", "Font"), u.setIfName("Subtype", "Type1"), u.setIfName("Encoding", "WinAnsiEncoding"), o = n.getNewTemporaryRef(), r.put(o, { data: u });
              }
              l.push(Hc.createNewAnnotation(n, c, r, { evaluator: e, task: s, baseFontRef: o }));
              break;
            case $s.HIGHLIGHT:
              c.quadPoints ? l.push(Oc.createNewAnnotation(n, c, r)) : l.push(Co.createNewAnnotation(n, c, r));
              break;
            case $s.INK:
              l.push(Co.createNewAnnotation(n, c, r));
              break;
            case $s.STAMP:
              const h = f ? await a?.get(c.bitmapId) : null;
              if (h?.imageStream) {
                const { imageStream: u, smaskStream: d } = h;
                if (d) {
                  const g = n.getNewTemporaryRef();
                  r.put(g, { data: d }), u.dict.set("SMask", g);
                }
                const m = h.imageRef = n.getNewTemporaryRef();
                r.put(m, { data: u }), h.imageStream = h.smaskStream = null;
              }
              l.push(lr.createNewAnnotation(n, c, r, { image: h }));
              break;
            case $s.SIGNATURE:
              l.push(lr.createNewAnnotation(n, c, r, {}));
              break;
          }
          return { annotations: (await Promise.all(l)).flat() };
        }
        static async printNewAnnotations(e, n, s, i, a) {
          if (!i) return null;
          const { options: r, xref: o } = n, l = [];
          for (const f of i) if (!f.deleted) switch (f.annotationType) {
            case $s.FREETEXT:
              l.push(Hc.createNewPrintAnnotation(e, o, f, { evaluator: n, task: s, evaluatorOptions: r }));
              break;
            case $s.HIGHLIGHT:
              f.quadPoints ? l.push(Oc.createNewPrintAnnotation(e, o, f, { evaluatorOptions: r })) : l.push(Co.createNewPrintAnnotation(e, o, f, { evaluatorOptions: r }));
              break;
            case $s.INK:
              l.push(Co.createNewPrintAnnotation(e, o, f, { evaluatorOptions: r }));
              break;
            case $s.STAMP:
              const c = r.isOffscreenCanvasSupported ? await a?.get(f.bitmapId) : null;
              if (c?.imageStream) {
                const { imageStream: h, smaskStream: u } = c;
                u && h.dict.set("SMask", u), c.imageRef = new wr(h, h.length), c.imageStream = c.smaskStream = null;
              }
              l.push(lr.createNewPrintAnnotation(e, o, f, { image: c, evaluatorOptions: r }));
              break;
            case $s.SIGNATURE:
              l.push(lr.createNewPrintAnnotation(e, o, f, { evaluatorOptions: r }));
              break;
          }
          return Promise.all(l);
        }
      };
      p(Aa, "getRgbColor");
      p(En, "getPdfColorArray");
      p(Ao, "getQuadPoints");
      p(Dc, "getTransformMatrix");
      So = class {
        static {
          p(this, "Annotation");
        }
        constructor(e) {
          const { annotationGlobals: n, dict: s, orphanFields: i, ref: a, subtype: r, xref: o } = e, l = i?.get(a);
          l && s.set("Parent", l), this.setTitle(s.get("T")), this.setContents(s.get("Contents")), this.setModificationDate(s.get("M")), this.setFlags(s.get("F")), this.setRectangle(s.getArray("Rect")), this.setColor(s.getArray("C")), this.setBorderStyle(s), this.setAppearance(s), this.setOptionalContent(s);
          const f = s.get("MK");
          this.setBorderAndBackgroundColors(f), this.setRotation(f, s), this.ref = e.ref instanceof ae ? e.ref : null, this._streams = [], this.appearance && this._streams.push(this.appearance);
          const c = !!(this.flags & Zt.LOCKED), h = !!(this.flags & Zt.LOCKEDCONTENTS);
          if (this.data = { annotationType: Lh[r?.toUpperCase()], annotationFlags: this.flags, borderStyle: this.borderStyle, color: this.color, backgroundColor: this.backgroundColor, borderColor: this.borderColor, rotation: this.rotation, contentsObj: this._contents, hasAppearance: !!this.appearance, id: e.id, modificationDate: this.modificationDate, rect: this.rectangle, subtype: r, hasOwnCanvas: false, noRotate: !!(this.flags & Zt.NOROTATE), noHTML: c && h, isEditable: false, structParent: -1 }, n.structTreeRoot) {
            let d = s.get("StructParent");
            this.data.structParent = d = Number.isInteger(d) && d >= 0 ? d : -1, n.structTreeRoot.addAnnotationIdToPage(e.pageRef, d);
          }
          if (e.collectFields) {
            const d = s.get("Kids");
            if (Array.isArray(d)) {
              const m = [];
              for (const g of d) g instanceof ae && m.push(g.toString());
              m.length !== 0 && (this.data.kidIds = m);
            }
            this.data.actions = gl(o, s, Nh), this.data.fieldName = this._constructFieldName(s), this.data.pageIndex = e.pageIndex;
          }
          const u = s.get("IT");
          u instanceof te && (this.data.it = u.name), this._isOffscreenCanvasSupported = e.evaluatorOptions.isOffscreenCanvasSupported, this._fallbackFontDict = null, this._needAppearances = false;
        }
        _hasFlag(e, n) {
          return !!(e & n);
        }
        _buildFlags(e, n) {
          let { flags: s } = this;
          return e === void 0 ? n === void 0 ? void 0 : n ? s & -5 : s & -3 | Zt.PRINT : e ? (s |= Zt.PRINT, n ? s & -33 | Zt.HIDDEN : s & -3 | Zt.NOVIEW) : (s &= -35, n ? s & -5 : s | Zt.PRINT);
        }
        _isViewable(e) {
          return !this._hasFlag(e, Zt.INVISIBLE) && !this._hasFlag(e, Zt.NOVIEW);
        }
        _isPrintable(e) {
          return this._hasFlag(e, Zt.PRINT) && !this._hasFlag(e, Zt.HIDDEN) && !this._hasFlag(e, Zt.INVISIBLE);
        }
        mustBeViewed(e, n) {
          const s = e?.get(this.data.id)?.noView;
          return s !== void 0 ? !s : this.viewable && !this._hasFlag(this.flags, Zt.HIDDEN);
        }
        mustBePrinted(e) {
          const n = e?.get(this.data.id)?.noPrint;
          return n !== void 0 ? !n : this.printable;
        }
        mustBeViewedWhenEditing(e, n = null) {
          return e ? !this.data.isEditable : !n?.has(this.data.id);
        }
        get viewable() {
          return this.data.quadPoints === null ? false : this.flags === 0 ? true : this._isViewable(this.flags);
        }
        get printable() {
          return this.data.quadPoints === null || this.flags === 0 ? false : this._isPrintable(this.flags);
        }
        _parseStringHelper(e) {
          const n = typeof e == "string" ? Je(e) : "", s = n && Fd(n).dir === "rtl" ? "rtl" : "ltr";
          return { str: n, dir: s };
        }
        setDefaultAppearance(e) {
          const { dict: n, annotationGlobals: s } = e, i = os({ dict: n, key: "DA" }) || s.acroForm.get("DA");
          this._defaultAppearance = typeof i == "string" ? i : "", this.data.defaultAppearanceData = sc(this._defaultAppearance);
        }
        setTitle(e) {
          this._title = this._parseStringHelper(e);
        }
        setContents(e) {
          this._contents = this._parseStringHelper(e);
        }
        setModificationDate(e) {
          this.modificationDate = typeof e == "string" ? e : null;
        }
        setFlags(e) {
          this.flags = Number.isInteger(e) && e > 0 ? e : 0, this.flags & Zt.INVISIBLE && this.constructor.name !== "Annotation" && (this.flags ^= Zt.INVISIBLE);
        }
        hasFlag(e) {
          return this._hasFlag(this.flags, e);
        }
        setRectangle(e) {
          this.rectangle = di(e, [0, 0, 0, 0]);
        }
        setColor(e) {
          this.color = Aa(e);
        }
        setLineEndings(e) {
          if (this.lineEndings = ["None", "None"], Array.isArray(e) && e.length === 2) for (let n = 0; n < 2; n++) {
            const s = e[n];
            if (s instanceof te) switch (s.name) {
              case "None":
                continue;
              case "Square":
              case "Circle":
              case "Diamond":
              case "OpenArrow":
              case "ClosedArrow":
              case "Butt":
              case "ROpenArrow":
              case "RClosedArrow":
              case "Slash":
                this.lineEndings[n] = s.name;
                continue;
            }
            F(`Ignoring invalid lineEnding: ${s}`);
          }
        }
        setRotation(e, n) {
          this.rotation = 0;
          let s = e instanceof _ ? e.get("R") || 0 : n.get("Rotate") || 0;
          Number.isInteger(s) && s !== 0 && (s %= 360, s < 0 && (s += 360), s % 90 === 0 && (this.rotation = s));
        }
        setBorderAndBackgroundColors(e) {
          e instanceof _ ? (this.borderColor = Aa(e.getArray("BC"), null), this.backgroundColor = Aa(e.getArray("BG"), null)) : this.borderColor = this.backgroundColor = null;
        }
        setBorderStyle(e) {
          if (this.borderStyle = new t7(), e instanceof _) if (e.has("BS")) {
            const n = e.get("BS");
            if (n instanceof _) {
              const s = n.get("Type");
              (!s || ot(s, "Border")) && (this.borderStyle.setWidth(n.get("W"), this.rectangle), this.borderStyle.setStyle(n.get("S")), this.borderStyle.setDashArray(n.getArray("D")));
            }
          } else if (e.has("Border")) {
            const n = e.getArray("Border");
            Array.isArray(n) && (n.length >= 3 ? (this.borderStyle.setHorizontalCornerRadius(n[0]), this.borderStyle.setVerticalCornerRadius(n[1]), this.borderStyle.setWidth(n[2], this.rectangle), n.length === 4 && this.borderStyle.setDashArray(n[3], true)) : n.length === 0 && this.borderStyle.setWidth(0));
          } else this.borderStyle.setWidth(0);
        }
        setAppearance(e) {
          this.appearance = null;
          const n = e.get("AP");
          if (!(n instanceof _)) return;
          const s = n.get("N");
          if (s instanceof ze) {
            this.appearance = s;
            return;
          }
          if (!(s instanceof _)) return;
          const i = e.get("AS");
          if (!(i instanceof te) || !s.has(i.name)) return;
          const a = s.get(i.name);
          a instanceof ze && (this.appearance = a);
        }
        setOptionalContent(e) {
          this.oc = null;
          const n = e.get("OC");
          n instanceof te ? F("setOptionalContent: Support for /Name-entry is not implemented.") : n instanceof _ && (this.oc = n);
        }
        async loadResources(e, n) {
          const s = await n.dict.getAsync("Resources");
          return s && await kr.load(s, e, s.xref), s;
        }
        async getOperatorList(e, n, s, i) {
          const { hasOwnCanvas: a, id: r, rect: o } = this.data;
          let l = this.appearance;
          const f = !!(a && s & On.DISPLAY);
          if (f && (this.width === 0 || this.height === 0)) return this.data.hasOwnCanvas = false, { opList: new kn(), separateForm: false, separateCanvas: false };
          if (!l) {
            if (!f) return { opList: new kn(), separateForm: false, separateCanvas: false };
            l = new Rn(""), l.dict = new _();
          }
          const c = l.dict, h = await this.loadResources(lf, l), u = pl(c.getArray("BBox"), [0, 0, 1, 1]), d = Bi(c.getArray("Matrix"), _s), m = Dc(o, u, d), g = new kn();
          let b;
          return this.oc && (b = await e.parseMarkedContentProps(this.oc, null)), b !== void 0 && g.addOp(E.beginMarkedContentProps, ["OC", b]), g.addOp(E.beginAnnotation, [r, o, m, d, f]), await e.getOperatorList({ stream: l, task: n, resources: h, operatorList: g, fallbackFontDict: this._fallbackFontDict }), g.addOp(E.endAnnotation, []), b !== void 0 && g.addOp(E.endMarkedContent, []), this.reset(), { opList: g, separateForm: false, separateCanvas: f };
        }
        async save(e, n, s, i) {
          return null;
        }
        get overlaysTextContent() {
          return false;
        }
        get hasTextContent() {
          return false;
        }
        async extractTextContent(e, n, s) {
          if (!this.appearance) return;
          const i = await this.loadResources(ff, this.appearance), a = [], r = [];
          let o = null;
          const l = { desiredSize: Math.Infinity, ready: true, enqueue(f, c) {
            for (const h of f.items) h.str !== void 0 && (o ||= h.transform.slice(-2), r.push(h.str), h.hasEOL && (a.push(r.join("").trimEnd()), r.length = 0));
          } };
          if (await e.getTextContent({ stream: this.appearance, task: n, resources: i, includeMarkedContent: true, keepWhiteSpace: true, sink: l, viewBox: s }), this.reset(), r.length && a.push(r.join("").trimEnd()), a.length > 1 || a[0]) {
            const f = this.appearance.dict, c = pl(f.getArray("BBox"), null), h = Bi(f.getArray("Matrix"), null);
            this.data.textPosition = this._transformPoint(o, c, h), this.data.textContent = a;
          }
        }
        _transformPoint(e, n, s) {
          const { rect: i } = this.data;
          n ||= [0, 0, 1, 1], s ||= [1, 0, 0, 1, 0, 0];
          const a = Dc(i, n, s);
          a[4] -= i[0], a[5] -= i[1];
          const r = e.slice();
          return pt.applyTransform(r, a), pt.applyTransform(r, s), r;
        }
        getFieldObject() {
          return this.data.kidIds ? { id: this.data.id, actions: this.data.actions, name: this.data.fieldName, strokeColor: this.data.borderColor, fillColor: this.data.backgroundColor, type: "", kidIds: this.data.kidIds, page: this.data.pageIndex, rotation: this.rotation } : null;
        }
        reset() {
          for (const e of this._streams) e.reset();
        }
        _constructFieldName(e) {
          if (!e.has("T") && !e.has("Parent")) return F("Unknown field name, falling back to empty field name."), "";
          if (!e.has("Parent")) return Je(e.get("T"));
          const n = [];
          e.has("T") && n.unshift(Je(e.get("T")));
          let s = e;
          const i = new Rt();
          for (e.objId && i.put(e.objId); s.has("Parent") && (s = s.get("Parent"), !(!(s instanceof _) || s.objId && i.has(s.objId))); ) s.objId && i.put(s.objId), s.has("T") && n.unshift(Je(s.get("T")));
          return n.join(".");
        }
        get width() {
          return this.data.rect[2] - this.data.rect[0];
        }
        get height() {
          return this.data.rect[3] - this.data.rect[1];
        }
      };
      t7 = class {
        static {
          p(this, "AnnotationBorderStyle");
        }
        width = 1;
        rawWidth = 1;
        style = Oa.SOLID;
        dashArray = [3];
        horizontalCornerRadius = 0;
        verticalCornerRadius = 0;
        setWidth(e, n = [0, 0, 0, 0]) {
          if (e instanceof te) {
            this.width = 0;
            return;
          }
          if (typeof e == "number") {
            if (e > 0) {
              this.rawWidth = e;
              const s = (n[2] - n[0]) / 2, i = (n[3] - n[1]) / 2;
              s > 0 && i > 0 && (e > s || e > i) && (F(`AnnotationBorderStyle.setWidth - ignoring width: ${e}`), e = 1);
            }
            this.width = e;
          }
        }
        setStyle(e) {
          if (e instanceof te) switch (e.name) {
            case "S":
              this.style = Oa.SOLID;
              break;
            case "D":
              this.style = Oa.DASHED;
              break;
            case "B":
              this.style = Oa.BEVELED;
              break;
            case "I":
              this.style = Oa.INSET;
              break;
            case "U":
              this.style = Oa.UNDERLINE;
              break;
          }
        }
        setDashArray(e, n = false) {
          if (Array.isArray(e)) {
            let s = true, i = true;
            for (const a of e) if (+a >= 0) a > 0 && (i = false);
            else {
              s = false;
              break;
            }
            e.length === 0 || s && !i ? (this.dashArray = e, n && this.setStyle(te.get("D"))) : this.width = 0;
          } else e && (this.width = 0);
        }
        setHorizontalCornerRadius(e) {
          Number.isInteger(e) && (this.horizontalCornerRadius = e);
        }
        setVerticalCornerRadius(e) {
          Number.isInteger(e) && (this.verticalCornerRadius = e);
        }
      };
      Zn = class extends So {
        static {
          p(this, "MarkupAnnotation");
        }
        constructor(e) {
          super(e);
          const { dict: n } = e;
          if (n.has("IRT")) {
            const i = n.getRaw("IRT");
            this.data.inReplyTo = i instanceof ae ? i.toString() : null;
            const a = n.get("RT");
            this.data.replyType = a instanceof te ? a.name : tf.REPLY;
          }
          let s = null;
          if (this.data.replyType === tf.GROUP) {
            const i = n.get("IRT");
            this.setTitle(i.get("T")), this.data.titleObj = this._title, this.setContents(i.get("Contents")), this.data.contentsObj = this._contents, i.has("CreationDate") ? (this.setCreationDate(i.get("CreationDate")), this.data.creationDate = this.creationDate) : this.data.creationDate = null, i.has("M") ? (this.setModificationDate(i.get("M")), this.data.modificationDate = this.modificationDate) : this.data.modificationDate = null, s = i.getRaw("Popup"), i.has("C") ? (this.setColor(i.getArray("C")), this.data.color = this.color) : this.data.color = null;
          } else this.data.titleObj = this._title, this.setCreationDate(n.get("CreationDate")), this.data.creationDate = this.creationDate, s = n.getRaw("Popup"), n.has("C") || (this.data.color = null);
          this.data.popupRef = s instanceof ae ? s.toString() : null, n.has("RC") && (this.data.richText = Xo.getRichTextAsHtml(n.get("RC")));
        }
        setCreationDate(e) {
          this.creationDate = typeof e == "string" ? e : null;
        }
        _setDefaultAppearance({ xref: e, extra: n, strokeColor: s, fillColor: i, blendMode: a, strokeAlpha: r, fillAlpha: o, pointsCallback: l }) {
          const f = this.data.rect = [1 / 0, 1 / 0, -1 / 0, -1 / 0], c = ["q"];
          n && c.push(n), s && c.push(`${s[0]} ${s[1]} ${s[2]} RG`), i && c.push(`${i[0]} ${i[1]} ${i[2]} rg`);
          const h = this.data.quadPoints || Float32Array.from([this.rectangle[0], this.rectangle[3], this.rectangle[2], this.rectangle[3], this.rectangle[0], this.rectangle[1], this.rectangle[2], this.rectangle[1]]);
          for (let y = 0, j = h.length; y < j; y += 8) {
            const v = l(c, h.subarray(y, y + 8));
            pt.rectBoundingBox(...v, f);
          }
          c.push("Q");
          const u = new _(e), d = new _(e);
          d.setIfName("Subtype", "Form");
          const m = new Rn(c.join(" "));
          m.dict = d, u.set("Fm0", m);
          const g = new _(e);
          a && g.setIfName("BM", a), g.setIfNumber("CA", r), g.setIfNumber("ca", o);
          const b = new _(e);
          b.set("GS0", g);
          const w = new _(e);
          w.set("ExtGState", b), w.set("XObject", u);
          const x = new _(e);
          x.set("Resources", w), x.set("BBox", f), this.appearance = new Rn("/GS0 gs /Fm0 Do"), this.appearance.dict = x, this._streams.push(this.appearance, m);
        }
        static async createNewAnnotation(e, n, s, i) {
          const a = n.ref ||= e.getNewTemporaryRef(), r = await this.createNewAppearanceStream(n, e, i);
          let o;
          if (r) {
            const c = e.getNewTemporaryRef();
            o = this.createNewDict(n, e, { apRef: c }), s.put(c, { data: r });
          } else o = this.createNewDict(n, e, {});
          Number.isInteger(n.parentTreeId) && o.set("StructParent", n.parentTreeId), s.put(a, { data: o });
          const l = { ref: a }, { popup: f } = n;
          if (f) {
            if (f.deleted) return o.delete("Popup"), o.delete("Contents"), o.delete("RC"), l;
            const c = f.ref ||= e.getNewTemporaryRef();
            f.parent = a;
            const h = Mc.createNewDict(f, e);
            return s.put(c, { data: h }), o.setIfDefined("Contents", An(f.contents)), o.set("Popup", c), [l, { ref: c }];
          }
          return l;
        }
        static async createNewPrintAnnotation(e, n, s, i) {
          const a = await this.createNewAppearanceStream(s, n, i), r = this.createNewDict(s, n, a ? { ap: a } : {}), o = new this.prototype.constructor({ dict: r, xref: n, annotationGlobals: e, evaluatorOptions: i.evaluatorOptions });
          return s.ref && (o.ref = o.refToReplace = s.ref), o;
        }
      };
      Gs = class _Gs extends So {
        static {
          p(this, "WidgetAnnotation");
        }
        constructor(e) {
          super(e);
          const { dict: n, xref: s, annotationGlobals: i } = e, a = this.data;
          this._needAppearances = e.needAppearances, a.fieldName === void 0 && (a.fieldName = this._constructFieldName(n)), a.actions === void 0 && (a.actions = gl(s, n, Nh));
          let r = os({ dict: n, key: "V", getArray: true });
          a.fieldValue = this._decodeFormValue(r);
          const o = os({ dict: n, key: "DV", getArray: true });
          if (a.defaultFieldValue = this._decodeFormValue(o), r === void 0 && i.xfaDatasets) {
            const u = this._title.str;
            u && (this._hasValueFromXFA = true, a.fieldValue = r = i.xfaDatasets.getValue(u));
          }
          r === void 0 && a.defaultFieldValue !== null && (a.fieldValue = a.defaultFieldValue), a.alternativeText = Je(n.get("TU") || ""), this.setDefaultAppearance(e), a.hasAppearance ||= this._needAppearances && a.fieldValue !== void 0 && a.fieldValue !== null;
          const l = os({ dict: n, key: "FT" });
          a.fieldType = l instanceof te ? l.name : null;
          const f = os({ dict: n, key: "DR" }), c = i.acroForm.get("DR"), h = this.appearance?.dict.get("Resources");
          this._fieldResources = { localResources: f, acroFormResources: c, appearanceResources: h, mergedResources: _.merge({ xref: s, dictArray: [f, h, c], mergeSubDicts: true }) }, a.fieldFlags = os({ dict: n, key: "Ff" }), (!Number.isInteger(a.fieldFlags) || a.fieldFlags < 0) && (a.fieldFlags = 0), a.password = this.hasFieldFlag(Rs.PASSWORD), a.readOnly = this.hasFieldFlag(Rs.READONLY), a.required = this.hasFieldFlag(Rs.REQUIRED), a.hidden = this._hasFlag(a.annotationFlags, Zt.HIDDEN) || this._hasFlag(a.annotationFlags, Zt.NOVIEW);
        }
        _decodeFormValue(e) {
          return Array.isArray(e) ? e.filter((n) => typeof n == "string").map((n) => Je(n)) : e instanceof te ? Je(e.name) : typeof e == "string" ? Je(e) : null;
        }
        hasFieldFlag(e) {
          return !!(this.data.fieldFlags & e);
        }
        _isViewable(e) {
          return true;
        }
        mustBeViewed(e, n) {
          return n ? this.viewable : super.mustBeViewed(e, n) && !this._hasFlag(this.flags, Zt.NOVIEW);
        }
        getRotationMatrix(e) {
          let n = e?.get(this.data.id)?.rotation;
          return n === void 0 && (n = this.rotation), n === 0 ? _s : bl(n, this.width, this.height);
        }
        getBorderAndBackgroundAppearances(e) {
          let n = e?.get(this.data.id)?.rotation;
          if (n === void 0 && (n = this.rotation), !this.backgroundColor && !this.borderColor) return "";
          const s = n === 0 || n === 180 ? `0 0 ${this.width} ${this.height} re` : `0 0 ${this.height} ${this.width} re`;
          let i = "";
          if (this.backgroundColor && (i = `${Qs(this.backgroundColor, true)} ${s} f `), this.borderColor) {
            const a = this.borderStyle.width || 1;
            i += `${a} w ${Qs(this.borderColor, false)} ${s} S `;
          }
          return i;
        }
        async getOperatorList(e, n, s, i) {
          if (s & On.ANNOTATIONS_FORMS && !(this instanceof O1) && !this.data.noHTML && !this.data.hasOwnCanvas) return { opList: new kn(), separateForm: true, separateCanvas: false };
          if (!this._hasText) return super.getOperatorList(e, n, s, i);
          const a = await this._getAppearance(e, n, s, i);
          if (this.appearance && a === null) return super.getOperatorList(e, n, s, i);
          const r = new kn();
          if (!this._defaultAppearance || a === null) return { opList: r, separateForm: false, separateCanvas: false };
          const o = !!(this.data.hasOwnCanvas && s & On.DISPLAY), l = [1, 0, 0, 1, 0, 0], f = [0, 0, this.width, this.height], c = Dc(this.data.rect, f, l);
          let h;
          this.oc && (h = await e.parseMarkedContentProps(this.oc, null)), h !== void 0 && r.addOp(E.beginMarkedContentProps, ["OC", h]), r.addOp(E.beginAnnotation, [this.data.id, this.data.rect, c, this.getRotationMatrix(i), o]);
          const u = new Rn(a);
          return await e.getOperatorList({ stream: u, task: n, resources: this._fieldResources.mergedResources, operatorList: r }), r.addOp(E.endAnnotation, []), h !== void 0 && r.addOp(E.endMarkedContent, []), { opList: r, separateForm: false, separateCanvas: o };
        }
        _getMKDict(e) {
          const n = new _(null);
          return e && n.set("R", e), n.setIfArray("BC", En(this.borderColor)), n.setIfArray("BG", En(this.backgroundColor)), n.size > 0 ? n : null;
        }
        amendSavedDict(e, n) {
        }
        setValue(e, n, s, i) {
          const { dict: a, ref: r } = zm(e, this.ref, s);
          if (!a) e.set("V", n);
          else if (!i.has(r)) {
            const o = a.clone();
            return o.set("V", n), i.put(r, { data: o }), o;
          }
          return null;
        }
        async save(e, n, s, i) {
          const a = s?.get(this.data.id), r = this._buildFlags(a?.noView, a?.noPrint);
          let o = a?.value, l = a?.rotation;
          if (o === this.data.fieldValue || o === void 0) {
            if (!this._hasValueFromXFA && l === void 0 && r === void 0) return;
            o ||= this.data.fieldValue;
          }
          if (l === void 0 && !this._hasValueFromXFA && Array.isArray(o) && Array.isArray(this.data.fieldValue) && _r(o, this.data.fieldValue) && r === void 0) return;
          l === void 0 && (l = this.rotation);
          let f = null;
          if (!this._needAppearances && (f = await this._getAppearance(e, n, On.SAVE, s), f === null && r === void 0)) return;
          let c = false;
          f?.needAppearances && (c = true, f = null);
          const { xref: h } = e, u = h.fetchIfRef(this.ref);
          if (!(u instanceof _)) return;
          const d = new _(h);
          for (const [w, x] of u.getRawEntries()) w !== "AP" && d.set(w, x);
          if (r !== void 0 && (d.set("F", r), f === null && !c)) {
            const w = u.getRaw("AP");
            w && d.set("AP", w);
          }
          const m = { path: this.data.fieldName, value: o }, g = this.setValue(d, Array.isArray(o) ? o.map(An) : An(o), h, i);
          this.amendSavedDict(s, g || d);
          const b = this._getMKDict(l);
          if (b && d.set("MK", b), i.put(this.ref, { data: d, xfa: m, needAppearances: c }), f !== null) {
            const w = h.getNewTemporaryRef(), x = new _(h);
            d.set("AP", x), x.set("N", w);
            const y = this._getSaveFieldResources(h), j = new Rn(f), v = j.dict = new _(h);
            v.setIfName("Subtype", "Form"), v.set("Resources", y);
            const q = l % 180 === 0 ? [0, 0, this.width, this.height] : [0, 0, this.height, this.width];
            v.set("BBox", q);
            const A = this.getRotationMatrix(s);
            A !== _s && v.set("Matrix", A), i.put(w, { data: j, xfa: null, needAppearances: false });
          }
          d.set("M", `D:${Ei()}`);
        }
        async _getAppearance(e, n, s, i) {
          if (this.data.password) return null;
          const a = i?.get(this.data.id);
          let r, o;
          if (a && (r = a.formattedValue || a.value, o = a.rotation), o === void 0 && r === void 0 && !this._needAppearances && (!this._hasValueFromXFA || this.appearance)) return null;
          const l = this.getBorderAndBackgroundAppearances(i);
          if (r === void 0 && (r = this.data.fieldValue, !r)) return `/Tx BMC q ${l}Q EMC`;
          if (Array.isArray(r) && r.length === 1 && (r = r[0]), Bt(typeof r == "string", "Expected `value` to be a string."), r = r.trimEnd(), this.data.combo && (r = this.data.options.find(({ exportValue: P }) => r === P)?.displayValue || r), r === "") return `/Tx BMC q ${l}Q EMC`;
          o === void 0 && (o = this.rotation);
          let f = -1, c;
          this.data.multiLine ? (c = r.split(/\r\n?|\n/).map((T) => T.normalize("NFC")), f = c.length) : c = [r.replace(/\r\n?|\n/, "").normalize("NFC")];
          const h = 1, u = 2;
          let { width: d, height: m } = this;
          (o === 90 || o === 270) && ([d, m] = [m, d]), this._defaultAppearance || (this.data.defaultAppearanceData = sc(this._defaultAppearance = "/Helvetica 0 Tf 0 g"));
          let g = await _Gs._getFontData(e, n, this.data.defaultAppearanceData, this._fieldResources.mergedResources), b, w, x;
          const y = [];
          let j = false;
          for (const T of c) {
            const P = g.encodeString(T);
            P.length > 1 && (j = true), y.push(P.join(""));
          }
          if (j && s & On.SAVE) return { needAppearances: true };
          if (j && this._isOffscreenCanvasSupported) {
            const T = this.data.comb ? "monospace" : "sans-serif", P = new Zi(e.xref, T), H = P.createFontResources(c.join("")), G = H.getRaw("Font");
            if (this._fieldResources.mergedResources.has("Font")) {
              const O = this._fieldResources.mergedResources.get("Font");
              for (const [N, oe] of G.getRawEntries()) O.set(N, oe);
            } else this._fieldResources.mergedResources.set("Font", G);
            const Z = P.fontName.name;
            g = await _Gs._getFontData(e, n, { fontName: Z, fontSize: 0 }, H);
            for (let O = 0, N = y.length; O < N; O++) y[O] = eu(c[O]);
            const z = Object.assign(/* @__PURE__ */ Object.create(null), this.data.defaultAppearanceData);
            this.data.defaultAppearanceData.fontSize = 0, this.data.defaultAppearanceData.fontName = Z, [b, w, x] = this._computeFontSize(m - 2 * h, d - 2 * u, r, g, f), this.data.defaultAppearanceData = z;
          } else this._isOffscreenCanvasSupported || F("_getAppearance: OffscreenCanvas is not supported, annotation may not render correctly."), [b, w, x] = this._computeFontSize(m - 2 * h, d - 2 * u, r, g, f);
          let v = g.descent;
          isNaN(v) ? v = Dh * x : v = Math.max(Dh * x, Math.abs(v) * w);
          const q = Math.min(Math.floor((m - w) / 2), h), A = this.data.textAlignment;
          if (this.data.multiLine) return this._getMultilineAppearance(b, y, g, w, d, m, A, u, q, v, x, i);
          if (this.data.comb) return this._getCombAppearance(b, g, y[0], w, d, m, u, q, v, x, i);
          const C = q + v;
          if (A === 0 || A > 2) return `/Tx BMC q ${l}BT ` + b + ` 1 0 0 1 ${it(u)} ${it(C)} Tm (${za(y[0])}) Tj ET Q EMC`;
          const S = { shift: 0 }, I = this._renderText(y[0], g, w, d, A, S, u, C);
          return `/Tx BMC q ${l}BT ` + b + ` 1 0 0 1 0 0 Tm ${I} ET Q EMC`;
        }
        static async _getFontData(e, n, s, i) {
          const a = new kn(), r = { font: null, clone() {
            return this;
          } }, { fontName: o, fontSize: l } = s;
          return await e.handleSetFont(i, [o && te.get(o), l], null, a, n, r, null), r.font;
        }
        _getTextWidth(e, n) {
          return Math.sumPrecise(n.charsToGlyphs(e).map((s) => s.width)) / 1e3;
        }
        _computeFontSize(e, n, s, i, a) {
          let { fontSize: r } = this.data.defaultAppearanceData, o = (r || 12) * hi, l = Math.round(e / o);
          if (!r) {
            const f = p((u) => Math.floor(u * 100) / 100, "roundWithTwoDigits");
            if (a === -1) {
              const u = this._getTextWidth(s, i);
              r = f(Math.min(e / hi, n / u)), l = 1;
            } else {
              const u = s.split(/\r\n?|\n/), d = [];
              for (const g of u) {
                const b = i.encodeString(g).join(""), w = i.charsToGlyphs(b), x = i.getCharPositions(b);
                d.push({ line: b, glyphs: w, positions: x });
              }
              const m = p((g) => {
                let b = 0;
                for (const w of d) {
                  const x = this._splitLine(null, i, g, n, w);
                  if (b += x.length * g, b > e) return true;
                }
                return false;
              }, "isTooBig");
              for (l = Math.max(l, a); ; ) {
                if (o = e / l, r = f(o / hi), m(r)) {
                  l++;
                  continue;
                }
                break;
              }
            }
            const { fontName: c, fontColor: h } = this.data.defaultAppearanceData;
            this._defaultAppearance = e2({ fontSize: r, fontName: c, fontColor: h });
          }
          return [this._defaultAppearance, r, e / l];
        }
        _renderText(e, n, s, i, a, r, o, l) {
          let f;
          if (a === 1) {
            const h = this._getTextWidth(e, n) * s;
            f = (i - h) / 2;
          } else if (a === 2) {
            const h = this._getTextWidth(e, n) * s;
            f = i - h - o;
          } else f = o;
          const c = it(f - r.shift);
          return r.shift = f, l = it(l), `${c} ${l} Td (${za(e)}) Tj`;
        }
        _getSaveFieldResources(e) {
          const { localResources: n, appearanceResources: s, acroFormResources: i } = this._fieldResources, a = this.data.defaultAppearanceData?.fontName;
          if (!a) return n || _.empty;
          for (const r of [n, s]) if (r instanceof _) {
            const o = r.get("Font");
            if (o instanceof _ && o.has(a)) return r;
          }
          if (i instanceof _) {
            const r = i.get("Font");
            if (r instanceof _ && r.has(a)) {
              const o = new _(e);
              o.set(a, r.getRaw(a));
              const l = new _(e);
              return l.set("Font", o), _.merge({ xref: e, dictArray: [l, n], mergeSubDicts: true });
            }
          }
          return n || _.empty;
        }
        getFieldObject() {
          return null;
        }
      };
      n7 = class extends Gs {
        static {
          p(this, "TextWidgetAnnotation");
        }
        constructor(e) {
          super(e);
          const { dict: n } = e;
          n.has("PMD") && (this.flags |= Zt.HIDDEN, this.data.hidden = true, F("Barcodes are not supported")), this.data.hasOwnCanvas = this.data.readOnly && !this.data.noHTML, this._hasText = true, typeof this.data.fieldValue != "string" && (this.data.fieldValue = "");
          let s = os({ dict: n, key: "Q" });
          (!Number.isInteger(s) || s < 0 || s > 2) && (s = null), this.data.textAlignment = s;
          let i = os({ dict: n, key: "MaxLen" });
          (!Number.isInteger(i) || i < 0) && (i = 0), this.data.maxLen = i, this.data.multiLine = this.hasFieldFlag(Rs.MULTILINE), this.data.comb = this.hasFieldFlag(Rs.COMB) && !this.data.multiLine && !this.data.password && !this.hasFieldFlag(Rs.FILESELECT) && this.data.maxLen !== 0, this.data.doNotScroll = this.hasFieldFlag(Rs.DONOTSCROLL);
          const { data: { actions: a } } = this;
          if (!a) return;
          const r = /^AF(Date|Time)_(?:Keystroke|Format)(?:Ex)?\(['"]?([^'"]+)['"]?\);$/;
          let o = false;
          (a.Format?.length === 1 && a.Keystroke?.length === 1 && r.test(a.Format[0]) && r.test(a.Keystroke[0]) || a.Format?.length === 0 && a.Keystroke?.length === 1 && r.test(a.Keystroke[0]) || a.Keystroke?.length === 0 && a.Format?.length === 1 && r.test(a.Format[0])) && (o = true);
          const l = [];
          a.Format && l.push(...a.Format), a.Keystroke && l.push(...a.Keystroke), o && (delete a.Keystroke, a.Format = l);
          for (const f of l) {
            const c = f.match(r);
            if (!c) continue;
            const h = c[1] === "Date";
            let u = c[2];
            const d = parseInt(u, 10);
            if (!isNaN(d) && Math.floor(Math.log10(d)) + 1 === c[2].length && (u = (h ? t2 : n2)[d] ?? u), this.data.datetimeFormat = u, !o) break;
            if (h) {
              /HH|MM|ss|h/.test(u) ? (this.data.datetimeType = "datetime-local", this.data.timeStep = /ss/.test(u) ? 1 : 60) : this.data.datetimeType = "date";
              break;
            }
            this.data.datetimeType = "time", this.data.timeStep = /ss/.test(u) ? 1 : 60;
            break;
          }
        }
        get hasTextContent() {
          return !!this.appearance && !this._needAppearances;
        }
        _getCombAppearance(e, n, s, i, a, r, o, l, f, c, h) {
          const u = a / this.data.maxLen, d = this.getBorderAndBackgroundAppearances(h), m = [], g = n.getCharPositions(s);
          for (const [w, x] of g) m.push(`(${za(s.substring(w, x))}) Tj`);
          const b = m.join(` ${it(u)} 0 Td `);
          return `/Tx BMC q ${d}BT ` + e + ` 1 0 0 1 ${it(o)} ${it(l + f)} Tm ${b} ET Q EMC`;
        }
        _getMultilineAppearance(e, n, s, i, a, r, o, l, f, c, h, u) {
          const d = [], m = a - 2 * l, g = { shift: 0 };
          for (let x = 0, y = n.length; x < y; x++) {
            const j = n[x], v = this._splitLine(j, s, i, m);
            for (let q = 0, A = v.length; q < A; q++) {
              const C = v[q], S = x === 0 && q === 0 ? -f - (h - c) : -h;
              d.push(this._renderText(C, s, i, a, o, g, l, S));
            }
          }
          const b = this.getBorderAndBackgroundAppearances(u), w = d.join(`
`);
          return `/Tx BMC q ${b}BT ` + e + ` 1 0 0 1 0 ${it(r)} Tm ${w} ET Q EMC`;
        }
        _splitLine(e, n, s, i, a = {}) {
          e = a.line || e;
          const r = a.glyphs || n.charsToGlyphs(e);
          if (r.length <= 1) return [e];
          const o = a.positions || n.getCharPositions(e), l = s / 1e3, f = [];
          let c = -1, h = -1, u = -1, d = 0, m = 0;
          for (let g = 0, b = r.length; g < b; g++) {
            const [w, x] = o[g], y = r[g], j = y.width * l;
            y.unicode === " " ? m + j > i ? (f.push(e.substring(d, w)), d = w, m = j, c = -1, u = -1) : (m += j, c = w, h = x, u = g) : m + j > i ? c !== -1 ? (f.push(e.substring(d, h)), d = h, g = u + 1, c = -1, m = 0) : (f.push(e.substring(d, w)), d = w, m = j) : m += j;
          }
          return d < e.length && f.push(e.substring(d, e.length)), f;
        }
        async extractTextContent(e, n, s) {
          await super.extractTextContent(e, n, s);
          const i = this.data.textContent;
          if (!i) return;
          const a = i.join(`
`);
          if (a === this.data.fieldValue) return;
          const r = a.replaceAll(/([.*+?^${}()|[\]\\])|(\s+)/g, (o, l) => l ? `\\${l}` : "\\s+");
          new RegExp(`^\\s*${r}\\s*$`).test(this.data.fieldValue) && (this.data.textContent = this.data.fieldValue.split(`
`));
        }
        getFieldObject() {
          return { id: this.data.id, value: this.data.fieldValue, defaultValue: this.data.defaultFieldValue || "", multiline: this.data.multiLine, password: this.data.password, charLimit: this.data.maxLen, comb: this.data.comb, editable: !this.data.readOnly, hidden: this.data.hidden, name: this.data.fieldName, rect: this.data.rect, actions: this.data.actions, page: this.data.pageIndex, strokeColor: this.data.borderColor, fillColor: this.data.backgroundColor, rotation: this.rotation, datetimeFormat: this.data.datetimeFormat, hasDatetimeHTML: !!this.data.datetimeType, type: "text" };
        }
      };
      s7 = class extends Gs {
        static {
          p(this, "ButtonWidgetAnnotation");
        }
        constructor(e) {
          super(e), this.checkedAppearance = null, this.uncheckedAppearance = null;
          const n = this.hasFieldFlag(Rs.RADIO), s = this.hasFieldFlag(Rs.PUSHBUTTON);
          this.data.checkBox = !n && !s, this.data.radioButton = n && !s, this.data.pushButton = s, this.data.isTooltipOnly = false, this.data.checkBox ? this._processCheckBox(e) : this.data.radioButton ? this._processRadioButton(e) : this.data.pushButton ? (this.data.hasOwnCanvas = true, this.data.noHTML = false, this._processPushButton(e)) : F("Invalid field flags for button widget annotation");
        }
        async getOperatorList(e, n, s, i) {
          if (this.data.pushButton) return super.getOperatorList(e, n, s, false, i);
          let a = null, r = null;
          if (i) {
            const l = i.get(this.data.id);
            a = l ? l.value : null, r = l ? l.rotation : null;
          }
          if (a === null && this.appearance) return super.getOperatorList(e, n, s, i);
          a == null && (a = this.data.checkBox ? this.data.fieldValue === this.data.exportValue : this.data.fieldValue === this.data.buttonValue);
          const o = a ? this.checkedAppearance : this.uncheckedAppearance;
          if (o) {
            const l = this.appearance, f = Bi(o.dict.getArray("Matrix"), _s);
            r && o.dict.set("Matrix", this.getRotationMatrix(i)), this.appearance = o;
            const c = super.getOperatorList(e, n, s, i);
            return this.appearance = l, o.dict.set("Matrix", f), c;
          }
          return { opList: new kn(), separateForm: false, separateCanvas: false };
        }
        async save(e, n, s, i) {
          if (this.data.checkBox) {
            this._saveCheckbox(e, n, s, i);
            return;
          }
          this.data.radioButton && this._saveRadioButton(e, n, s, i);
        }
        async _saveCheckbox(e, n, s, i) {
          if (!s) return;
          const a = s.get(this.data.id), r = this._buildFlags(a?.noView, a?.noPrint);
          let o = a?.rotation, l = a?.value;
          if (o === void 0 && r === void 0 && (l === void 0 || this.data.fieldValue === this.data.exportValue === l)) return;
          let f = e.xref.fetchIfRef(this.ref);
          if (!(f instanceof _)) return;
          f = f.clone(), o === void 0 && (o = this.rotation), l === void 0 && (l = this.data.fieldValue === this.data.exportValue);
          const c = { path: this.data.fieldName, value: l ? this.data.exportValue : "" }, h = te.get(l ? this.data.exportValue : "Off");
          this.setValue(f, h, e.xref, i), f.set("AS", h), f.set("M", `D:${Ei()}`), r !== void 0 && f.set("F", r);
          const u = this._getMKDict(o);
          u && f.set("MK", u), i.put(this.ref, { data: f, xfa: c, needAppearances: false });
        }
        async _saveRadioButton(e, n, s, i) {
          if (!s) return;
          const a = s.get(this.data.id), r = this._buildFlags(a?.noView, a?.noPrint);
          let o = a?.rotation, l = a?.value;
          if (o === void 0 && r === void 0 && (l === void 0 || this.data.fieldValue === this.data.buttonValue === l)) return;
          let f = e.xref.fetchIfRef(this.ref);
          if (!(f instanceof _)) return;
          f = f.clone(), l === void 0 && (l = this.data.fieldValue === this.data.buttonValue), o === void 0 && (o = this.rotation);
          const c = { path: this.data.fieldName, value: l ? this.data.buttonValue : "" }, h = te.get(l ? this.data.buttonValue : "Off");
          l && this.setValue(f, h, e.xref, i), f.set("AS", h), f.set("M", `D:${Ei()}`), r !== void 0 && f.set("F", r);
          const u = this._getMKDict(o);
          u && f.set("MK", u), i.put(this.ref, { data: f, xfa: c, needAppearances: false });
        }
        _getDefaultCheckedAppearance(e, n) {
          const { width: s, height: i } = this, a = [0, 0, s, i], o = Math.min(s, i) * 0.8;
          let l, f;
          n === "check" ? (l = { width: 0.755 * o, height: 0.705 * o }, f = "3") : n === "disc" ? (l = { width: 0.791 * o, height: 0.705 * o }, f = "l") : Ye(`_getDefaultCheckedAppearance - unsupported type: ${n}`);
          const c = it((s - l.width) / 2), h = it((i - l.height) / 2), u = `q BT /PdfJsZaDb ${o} Tf 0 g ${c} ${h} Td (${f}) Tj ET Q`, d = new _(e.xref);
          d.set("FormType", 1), d.setIfName("Subtype", "Form"), d.setIfName("Type", "XObject"), d.set("BBox", a), d.set("Matrix", [1, 0, 0, 1, 0, 0]), d.set("Length", u.length);
          const m = new _(e.xref), g = new _(e.xref);
          g.set("PdfJsZaDb", this.fallbackFontDict), m.set("Font", g), d.set("Resources", m), this.checkedAppearance = new Rn(u), this.checkedAppearance.dict = d, this._streams.push(this.checkedAppearance);
        }
        _processCheckBox(e) {
          const n = e.dict.get("AP");
          if (!(n instanceof _)) return;
          const s = n.get("N");
          if (!(s instanceof _)) return;
          const i = this._decodeFormValue(e.dict.get("AS"));
          typeof i == "string" && (this.data.fieldValue = i);
          const a = this.data.fieldValue !== null && this.data.fieldValue !== "Off" ? this.data.fieldValue : "Yes", r = this._decodeFormValue([...s.getKeys()]);
          if (r.length === 0) r.push("Off", a);
          else if (r.length === 1) r[0] === "Off" ? r.push(a) : r.unshift("Off");
          else if (r.includes(a)) r.length = 0, r.push("Off", a);
          else {
            const f = r.find((c) => c !== "Off");
            r.length = 0, r.push("Off", f);
          }
          r.includes(this.data.fieldValue) || (this.data.fieldValue = "Off"), this.data.exportValue = r[1];
          const o = s.get(this.data.exportValue);
          this.checkedAppearance = o instanceof ze ? o : null;
          const l = s.get("Off");
          this.uncheckedAppearance = l instanceof ze ? l : null, this.checkedAppearance ? this._streams.push(this.checkedAppearance) : this._getDefaultCheckedAppearance(e, "check"), this.uncheckedAppearance && this._streams.push(this.uncheckedAppearance), this._fallbackFontDict = this.fallbackFontDict, this.data.defaultFieldValue === null && (this.data.defaultFieldValue = "Off");
        }
        _processRadioButton(e) {
          this.data.buttonValue = null;
          const n = e.dict.get("Parent");
          if (n instanceof _) {
            this.parent = e.dict.getRaw("Parent");
            const o = n.get("V");
            o instanceof te && (this.data.fieldValue = this._decodeFormValue(o));
          }
          const s = e.dict.get("AP");
          if (!(s instanceof _)) return;
          const i = s.get("N");
          if (!(i instanceof _)) return;
          for (const o of i.getKeys()) if (o !== "Off") {
            this.data.buttonValue = this._decodeFormValue(o);
            break;
          }
          const a = i.get(this.data.buttonValue);
          this.checkedAppearance = a instanceof ze ? a : null;
          const r = i.get("Off");
          this.uncheckedAppearance = r instanceof ze ? r : null, this.checkedAppearance ? this._streams.push(this.checkedAppearance) : this._getDefaultCheckedAppearance(e, "disc"), this.uncheckedAppearance && this._streams.push(this.uncheckedAppearance), this._fallbackFontDict = this.fallbackFontDict, this.data.defaultFieldValue === null && (this.data.defaultFieldValue = "Off");
        }
        _processPushButton(e) {
          const { dict: n, annotationGlobals: s } = e;
          if (!n.has("A") && !n.has("AA") && !this.data.alternativeText) {
            F("Push buttons without action dictionaries are not supported");
            return;
          }
          this.data.isTooltipOnly = !n.has("A") && !n.has("AA"), Pa.parseDestDictionary({ destDict: n, resultObj: this.data, docBaseUrl: s.baseUrl, docAttachments: s.attachments });
        }
        getFieldObject() {
          let e = "button", n;
          return this.data.checkBox ? (e = "checkbox", n = this.data.exportValue) : this.data.radioButton && (e = "radiobutton", n = this.data.buttonValue), { id: this.data.id, value: this.data.fieldValue || "Off", defaultValue: this.data.defaultFieldValue, exportValues: n, editable: !this.data.readOnly, name: this.data.fieldName, rect: this.data.rect, hidden: this.data.hidden, actions: this.data.actions, page: this.data.pageIndex, strokeColor: this.data.borderColor, fillColor: this.data.backgroundColor, rotation: this.rotation, type: e };
        }
        get fallbackFontDict() {
          const e = new _();
          return e.setIfName("BaseFont", "ZapfDingbats"), e.setIfName("Type", "FallbackType"), e.setIfName("Subtype", "FallbackType"), e.setIfName("Encoding", "ZapfDingbatsEncoding"), fe(this, "fallbackFontDict", e);
        }
      };
      i7 = class extends Gs {
        static {
          p(this, "ChoiceWidgetAnnotation");
        }
        constructor(e) {
          super(e);
          const { dict: n, xref: s } = e;
          this.indices = n.getArray("I"), this.hasIndices = Array.isArray(this.indices) && this.indices.length > 0, this.data.options = [];
          const i = os({ dict: n, key: "Opt" });
          if (Array.isArray(i)) for (let a = 0, r = i.length; a < r; a++) {
            const o = s.fetchIfRef(i[a]), l = Array.isArray(o);
            this.data.options[a] = { exportValue: this._decodeFormValue(l ? s.fetchIfRef(o[0]) : o), displayValue: this._decodeFormValue(l ? s.fetchIfRef(o[1]) : o) };
          }
          if (!this.hasIndices) typeof this.data.fieldValue == "string" ? this.data.fieldValue = [this.data.fieldValue] : this.data.fieldValue ||= [];
          else {
            this.data.fieldValue = [];
            const a = this.data.options.length;
            for (const r of this.indices) Number.isInteger(r) && r >= 0 && r < a && this.data.fieldValue.push(this.data.options[r].exportValue);
          }
          this.data.options.length === 0 && this.data.fieldValue.length > 0 && (this.data.options = this.data.fieldValue.map((a) => ({ exportValue: a, displayValue: a }))), this.data.combo = this.hasFieldFlag(Rs.COMBO), this.data.multiSelect = this.hasFieldFlag(Rs.MULTISELECT), this._hasText = true;
        }
        getFieldObject() {
          const e = this.data.combo ? "combobox" : "listbox", n = this.data.fieldValue.length > 0 ? this.data.fieldValue[0] : null;
          return { id: this.data.id, value: n, defaultValue: this.data.defaultFieldValue, editable: !this.data.readOnly, name: this.data.fieldName, rect: this.data.rect, numItems: this.data.fieldValue.length, multipleSelection: this.data.multiSelect, hidden: this.data.hidden, actions: this.data.actions, items: this.data.options, page: this.data.pageIndex, strokeColor: this.data.borderColor, fillColor: this.data.backgroundColor, rotation: this.rotation, type: e };
        }
        amendSavedDict(e, n) {
          if (!this.hasIndices) return;
          let s = e?.get(this.data.id)?.value;
          Array.isArray(s) || (s = [s]);
          const i = [], { options: a } = this.data;
          for (let r = 0, o = 0, l = a.length; r < l; r++) a[r].exportValue === s[o] && (i.push(r), o += 1);
          n.set("I", i);
        }
        async _getAppearance(e, n, s, i) {
          if (this.data.combo) return super._getAppearance(e, n, s, i);
          let a, r;
          const o = i?.get(this.data.id);
          if (o && (r = o.rotation, a = o.value), r === void 0 && a === void 0 && !this._needAppearances) return null;
          a === void 0 ? a = this.data.fieldValue : Array.isArray(a) || (a = [a]);
          const l = 1, f = 2;
          let { width: c, height: h } = this;
          (r === 90 || r === 270) && ([c, h] = [h, c]);
          const u = this.data.options.length, d = [];
          for (let C = 0; C < u; C++) {
            const { exportValue: S } = this.data.options[C];
            a.includes(S) && d.push(C);
          }
          this._defaultAppearance || (this.data.defaultAppearanceData = sc(this._defaultAppearance = "/Helvetica 0 Tf 0 g"));
          const m = await Gs._getFontData(e, n, this.data.defaultAppearanceData, this._fieldResources.mergedResources);
          let g, { fontSize: b } = this.data.defaultAppearanceData;
          if (b) g = this._defaultAppearance;
          else {
            const C = (h - l) / u;
            let S = -1, I;
            for (const { displayValue: T } of this.data.options) {
              const P = this._getTextWidth(T, m);
              P > S && (S = P, I = T);
            }
            [g, b] = this._computeFontSize(C, c - 2 * f, I, m, -1);
          }
          const w = b * hi, x = (w - b) / 2, y = Math.floor(h / w);
          let j = 0;
          if (d.length > 0) {
            const C = Math.min(...d), S = Math.max(...d);
            j = Math.max(0, S - y + 1), j > C && (j = C);
          }
          const v = Math.min(j + y + 1, u), q = ["/Tx BMC q", `1 1 ${c} ${h} re W n`];
          if (d.length) {
            q.push("0.600006 0.756866 0.854904 rg");
            for (const C of d) j <= C && C < v && q.push(`1 ${h - (C - j + 1) * w} ${c} ${w} re f`);
          }
          q.push("BT", g, `1 0 0 1 0 ${h} Tm`);
          const A = { shift: 0 };
          for (let C = j; C < v; C++) {
            const { displayValue: S } = this.data.options[C], I = C === j ? x : 0;
            q.push(this._renderText(S, m, b, c, 0, A, f, -w + I));
          }
          return q.push("ET Q EMC"), q.join(`
`);
        }
      };
      O1 = class extends Gs {
        static {
          p(this, "SignatureWidgetAnnotation");
        }
        constructor(e) {
          super(e), this.data.fieldValue = null, this.data.hasOwnCanvas = this.data.noRotate, this.data.noHTML = !this.data.hasOwnCanvas;
        }
        getFieldObject() {
          return { id: this.data.id, value: null, page: this.data.pageIndex, type: "signature" };
        }
      };
      a7 = class extends Zn {
        static {
          p(this, "TextAnnotation");
        }
        constructor(e) {
          super(e), this.data.noRotate = true, this.data.hasOwnCanvas = this.data.noRotate, this.data.noHTML = false;
          const { dict: s } = e;
          this.data.hasAppearance ? this.data.name = "NoIcon" : (this.data.rect[1] = this.data.rect[3] - 22, this.data.rect[2] = this.data.rect[0] + 22, this.data.name = s.has("Name") ? s.get("Name").name : "Note"), s.has("State") ? (this.data.state = s.get("State") || null, this.data.stateModel = s.get("StateModel") || null) : (this.data.state = null, this.data.stateModel = null);
        }
      };
      r7 = class extends So {
        static {
          p(this, "LinkAnnotation");
        }
        constructor(e) {
          super(e);
          const { dict: n, annotationGlobals: s } = e;
          this.data.noHTML = false;
          const i = Ao(n, this.rectangle);
          i && (this.data.quadPoints = i), this.data.borderColor ||= this.data.color, Pa.parseDestDictionary({ destDict: n, resultObj: this.data, docBaseUrl: s.baseUrl, docAttachments: s.attachments });
        }
        get overlaysTextContent() {
          return true;
        }
      };
      Mc = class extends So {
        static {
          p(this, "PopupAnnotation");
        }
        constructor(e) {
          super(e);
          const { dict: n } = e;
          this.data.noHTML = false, (this.width === 0 || this.height === 0) && (this.data.rect = null);
          let s = n.get("Parent");
          if (!s) {
            F("Popup annotation has a missing or invalid parent annotation.");
            return;
          }
          this.data.parentRect = di(s.getArray("Rect"), null), this.data.creationDate = s.get("CreationDate") || "";
          const i = s.get("RT");
          if (ot(i, tf.GROUP) && (s = s.get("IRT")), s.has("M") ? (this.setModificationDate(s.get("M")), this.data.modificationDate = this.modificationDate) : this.data.modificationDate = null, s.has("C") ? (this.setColor(s.getArray("C")), this.data.color = this.color) : this.data.color = null, !this.viewable) {
            const a = s.get("F");
            this._isViewable(a) && this.setFlags(a);
          }
          this.setTitle(s.get("T")), this.data.titleObj = this._title, this.setContents(s.get("Contents")), this.data.contentsObj = this._contents, s.has("RC") && (this.data.richText = Xo.getRichTextAsHtml(s.get("RC"))), this.data.open = !!n.get("Open");
        }
        static createNewDict(e, n, s) {
          const { oldAnnotation: i, rect: a, parent: r } = e, o = i || new _(n);
          return o.setIfNotExists("Type", te.get("Annot")), o.setIfNotExists("Subtype", te.get("Popup")), o.setIfNotExists("Open", false), o.setIfArray("Rect", a), o.set("Parent", r), o;
        }
        static async createNewAppearanceStream(e, n, s) {
          return null;
        }
      };
      Hc = class extends Zn {
        static {
          p(this, "FreeTextAnnotation");
        }
        constructor(e) {
          super(e), this.data.hasOwnCanvas = this.data.noRotate, this.data.isEditable = !this.data.noHTML, this.data.noHTML = false;
          const { annotationGlobals: n, evaluatorOptions: s, xref: i } = e;
          if (this.setDefaultAppearance(e), this._hasAppearance = !!this.appearance, this._hasAppearance) {
            const { fontColor: a, fontSize: r } = Zx(this.appearance, s, i, n.globalColorSpaceCache);
            this.data.defaultAppearanceData.fontColor = a, this.data.defaultAppearanceData.fontSize = r || 10;
          } else {
            this.data.defaultAppearanceData.fontSize ||= 10;
            const { fontColor: a, fontSize: r } = this.data.defaultAppearanceData;
            if (this._contents.str) {
              this.data.textContent = this._contents.str.split(/\r\n?|\n/).map((c) => c.trimEnd());
              const { coords: o, bbox: l, matrix: f } = Zi.getFirstPositionInfo(this.rectangle, this.rotation, r);
              this.data.textPosition = this._transformPoint(o, l, f);
            }
            if (this._isOffscreenCanvasSupported) {
              const o = e.dict.get("CA"), l = new Zi(i, "sans-serif");
              this.appearance = l.createAppearance(this._contents.str, this.rectangle, this.rotation, r, a, o), this._streams.push(this.appearance);
            } else F("FreeTextAnnotation: OffscreenCanvas is not supported, annotation may not render correctly.");
          }
        }
        get hasTextContent() {
          return this._hasAppearance;
        }
        static createNewDict(e, n, { apRef: s, ap: i }) {
          const { color: a, date: r, fontSize: o, oldAnnotation: l, rect: f, rotation: c, user: h, value: u } = e, d = l || new _(n);
          d.setIfNotExists("Type", te.get("Annot")), d.setIfNotExists("Subtype", te.get("FreeText")), d.set(l ? "M" : "CreationDate", `D:${Ei(r)}`), l && d.delete("RC"), d.setIfArray("Rect", f);
          const m = `/Helv ${o} Tf ${Qs(a, true)}`;
          if (d.set("DA", m), d.setIfDefined("Contents", An(u)), d.setIfNotExists("F", 4), d.setIfNotExists("Border", [0, 0, 0]), d.setIfNumber("Rotate", c), d.setIfDefined("T", An(h)), s || i) {
            const g = new _(n);
            d.set("AP", g), g.set("N", s || i);
          }
          return d;
        }
        static async createNewAppearanceStream(e, n, s) {
          const { baseFontRef: i, evaluator: a, task: r } = s, { color: o, fontSize: l, rect: f, rotation: c, value: h } = e;
          if (!o) return null;
          const u = new _(n), d = new _(n);
          if (i) d.set("Helv", i);
          else {
            const W = new _(n);
            W.setIfName("BaseFont", "Helvetica"), W.setIfName("Type", "Font"), W.setIfName("Subtype", "Type1"), W.setIfName("Encoding", "WinAnsiEncoding"), d.set("Helv", W);
          }
          u.set("Font", d);
          const m = await Gs._getFontData(a, r, { fontName: "Helv", fontSize: l }, u), [g, b, w, x] = f;
          let y = w - g, j = x - b;
          c % 180 !== 0 && ([y, j] = [j, y]);
          const v = h.split(`
`), q = l / 1e3;
          let A = -1 / 0;
          const C = [];
          for (let W of v) {
            const K = m.encodeString(W);
            if (K.length > 1) return null;
            W = K.join(""), C.push(W);
            let M = 0;
            const L = m.charsToGlyphs(W);
            for (const J of L) M += J.width * q;
            A = Math.max(A, M);
          }
          let S = 1;
          A > y && (S = y / A);
          let I = 1;
          const T = hi * l, P = (hi - ll) * l, H = T * v.length;
          H > j && (I = j / H);
          const G = Math.min(S, I), Z = l * G;
          let z, O, N;
          switch (c) {
            case 0:
              N = [1, 0, 0, 1], O = [f[0], f[1], y, j], z = [f[0], f[3] - P];
              break;
            case 90:
              N = [0, 1, -1, 0], O = [f[1], -f[2], y, j], z = [f[1], -f[0] - P];
              break;
            case 180:
              N = [-1, 0, 0, -1], O = [-f[2], -f[3], y, j], z = [-f[2], -f[1] - P];
              break;
            case 270:
              N = [0, -1, 1, 0], O = [-f[3], f[0], y, j], z = [-f[3], f[2] - P];
              break;
          }
          const oe = ["q", `${N.join(" ")} 0 0 cm`, `${O.join(" ")} re W n`, "BT", `${Qs(o, true)}`, `0 Tc /Helv ${it(Z)} Tf`];
          oe.push(`${z.join(" ")} Td (${za(C[0])}) Tj`);
          const je = it(T);
          for (let W = 1, K = C.length; W < K; W++) {
            const M = C[W];
            oe.push(`0 -${je} Td (${za(M)}) Tj`);
          }
          oe.push("ET", "Q");
          const Y = oe.join(`
`), ye = new _(n);
          ye.set("FormType", 1), ye.setIfName("Subtype", "Form"), ye.setIfName("Type", "XObject"), ye.set("BBox", f), ye.set("Resources", u), ye.set("Matrix", [1, 0, 0, 1, -f[0], -f[1]]);
          const qe = new Rn(Y);
          return qe.dict = ye, qe;
        }
      };
      o7 = class extends Zn {
        static {
          p(this, "LineAnnotation");
        }
        constructor(e) {
          super(e);
          const { dict: n, xref: s } = e;
          this.data.hasOwnCanvas = this.data.noRotate, this.data.noHTML = false;
          const i = pl(n.getArray("L"), [0, 0, 0, 0]);
          if (this.data.lineCoordinates = pt.normalizeRect(i), this.setLineEndings(n.getArray("LE")), this.data.lineEndings = this.lineEndings, !this.appearance) {
            const a = En(this.color, [0, 0, 0]), r = n.get("CA"), o = Aa(n.getArray("IC"), null), l = En(o), f = l ? r : null, c = this.borderStyle.width || 1, h = 2 * c, u = [this.data.lineCoordinates[0] - h, this.data.lineCoordinates[1] - h, this.data.lineCoordinates[2] + h, this.data.lineCoordinates[3] + h];
            pt.intersect(this.rectangle, u) || (this.rectangle = u), this._setDefaultAppearance({ xref: s, extra: `${c} w`, strokeColor: a, fillColor: l, strokeAlpha: r, fillAlpha: f, pointsCallback: p((d, m) => (d.push(`${i[0]} ${i[1]} m`, `${i[2]} ${i[3]} l`, "S"), [m[0] - c, m[7] - c, m[2] + c, m[3] + c]), "pointsCallback") });
          }
        }
      };
      l7 = class extends Zn {
        static {
          p(this, "SquareAnnotation");
        }
        constructor(e) {
          super(e);
          const { dict: n, xref: s } = e;
          if (this.data.hasOwnCanvas = this.data.noRotate, this.data.noHTML = false, !this.appearance) {
            const i = En(this.color, [0, 0, 0]), a = n.get("CA"), r = Aa(n.getArray("IC"), null), o = En(r), l = o ? a : null;
            if (this.borderStyle.width === 0 && !o) return;
            this._setDefaultAppearance({ xref: s, extra: `${this.borderStyle.width} w`, strokeColor: i, fillColor: o, strokeAlpha: a, fillAlpha: l, pointsCallback: p((f, c) => {
              const h = c[4] + this.borderStyle.width / 2, u = c[5] + this.borderStyle.width / 2, d = c[6] - c[4] - this.borderStyle.width, m = c[3] - c[7] - this.borderStyle.width;
              return f.push(`${h} ${u} ${d} ${m} re`), o ? f.push("B") : f.push("S"), [c[0], c[7], c[2], c[3]];
            }, "pointsCallback") });
          }
        }
      };
      f7 = class extends Zn {
        static {
          p(this, "CircleAnnotation");
        }
        constructor(e) {
          super(e);
          const { dict: n, xref: s } = e;
          if (!this.appearance) {
            const i = En(this.color, [0, 0, 0]), a = n.get("CA"), r = Aa(n.getArray("IC"), null), o = En(r), l = o ? a : null;
            if (this.borderStyle.width === 0 && !o) return;
            const f = 4 / 3 * Math.tan(Math.PI / 8);
            this._setDefaultAppearance({ xref: s, extra: `${this.borderStyle.width} w`, strokeColor: i, fillColor: o, strokeAlpha: a, fillAlpha: l, pointsCallback: p((c, h) => {
              const u = h[0] + this.borderStyle.width / 2, d = h[1] - this.borderStyle.width / 2, m = h[6] - this.borderStyle.width / 2, g = h[7] + this.borderStyle.width / 2, b = u + (m - u) / 2, w = d + (g - d) / 2, x = (m - u) / 2 * f, y = (g - d) / 2 * f;
              return c.push(`${b} ${g} m`, `${b + x} ${g} ${m} ${w + y} ${m} ${w} c`, `${m} ${w - y} ${b + x} ${d} ${b} ${d} c`, `${b - x} ${d} ${u} ${w - y} ${u} ${w} c`, `${u} ${w + y} ${b - x} ${g} ${b} ${g} c`, "h"), o ? c.push("B") : c.push("S"), [h[0], h[7], h[2], h[3]];
            }, "pointsCallback") });
          }
        }
      };
      L1 = class extends Zn {
        static {
          p(this, "PolylineAnnotation");
        }
        constructor(e) {
          super(e);
          const { dict: n, xref: s } = e;
          this.data.hasOwnCanvas = this.data.noRotate, this.data.noHTML = false, this.data.vertices = null, this instanceof N1 || (this.setLineEndings(n.getArray("LE")), this.data.lineEndings = this.lineEndings);
          const i = n.getArray("Vertices");
          if (!Nn(i, null)) return;
          const a = this.data.vertices = Float32Array.from(i);
          if (!this.appearance) {
            const r = En(this.color, [0, 0, 0]), o = n.get("CA");
            let l = Aa(n.getArray("IC"), null);
            l && (l = En(l));
            let f;
            l ? this.color ? f = l.every((d, m) => d === r[m]) ? "f" : "B" : f = "f" : f = "S";
            const c = this.borderStyle.width || 1, h = 2 * c, u = [1 / 0, 1 / 0, -1 / 0, -1 / 0];
            for (let d = 0, m = a.length; d < m; d += 2) pt.rectBoundingBox(a[d] - h, a[d + 1] - h, a[d] + h, a[d + 1] + h, u);
            pt.intersect(this.rectangle, u) || (this.rectangle = u), this._setDefaultAppearance({ xref: s, extra: `${c} w`, strokeColor: r, strokeAlpha: o, fillColor: l, fillAlpha: l ? o : null, pointsCallback: p((d, m) => {
              for (let g = 0, b = a.length; g < b; g += 2) d.push(`${a[g]} ${a[g + 1]} ${g === 0 ? "m" : "l"}`);
              return d.push(f), [m[0], m[7], m[2], m[3]];
            }, "pointsCallback") });
          }
        }
      };
      N1 = class extends L1 {
        static {
          p(this, "PolygonAnnotation");
        }
      };
      c7 = class extends Zn {
        static {
          p(this, "CaretAnnotation");
        }
      };
      Co = class extends Zn {
        static {
          p(this, "InkAnnotation");
        }
        constructor(e) {
          super(e), this.data.hasOwnCanvas = this.data.noRotate, this.data.noHTML = false;
          const { dict: n, xref: s } = e;
          this.data.inkLists = [], this.data.isEditable = !this.data.noHTML, this.data.noHTML = false, this.data.opacity = n.get("CA") || 1;
          const i = n.getArray("InkList");
          if (Array.isArray(i)) {
            for (let a = 0, r = i.length; a < r; ++a) {
              if (!Array.isArray(i[a])) continue;
              const o = new Float32Array(i[a].length);
              this.data.inkLists.push(o);
              for (let l = 0, f = i[a].length; l < f; l += 2) {
                const c = s.fetchIfRef(i[a][l]), h = s.fetchIfRef(i[a][l + 1]);
                typeof c == "number" && typeof h == "number" && (o[l] = c, o[l + 1] = h);
              }
            }
            if (!this.appearance) {
              const a = En(this.color, [0, 0, 0]), r = n.get("CA"), o = this.borderStyle.width || 1, l = 2 * o, f = [1 / 0, 1 / 0, -1 / 0, -1 / 0];
              for (const c of this.data.inkLists) for (let h = 0, u = c.length; h < u; h += 2) pt.rectBoundingBox(c[h] - l, c[h + 1] - l, c[h] + l, c[h + 1] + l, f);
              pt.intersect(this.rectangle, f) || (this.rectangle = f), this._setDefaultAppearance({ xref: s, extra: `${o} w`, strokeColor: a, strokeAlpha: r, pointsCallback: p((c, h) => {
                for (const u of this.data.inkLists) {
                  for (let d = 0, m = u.length; d < m; d += 2) c.push(`${u[d]} ${u[d + 1]} ${d === 0 ? "m" : "l"}`);
                  c.push("S");
                }
                return [h[0], h[7], h[2], h[3]];
              }, "pointsCallback") });
            }
          }
        }
        static createNewDict(e, n, { apRef: s, ap: i }) {
          const { oldAnnotation: a, color: r, date: o, opacity: l, paths: f, outlines: c, rect: h, rotation: u, thickness: d, user: m } = e, g = a || new _(n);
          if (g.setIfNotExists("Type", te.get("Annot")), g.setIfNotExists("Subtype", te.get("Ink")), g.set(a ? "M" : "CreationDate", `D:${Ei(o)}`), g.setIfArray("Rect", h), g.setIfArray("InkList", c?.points || f?.points), g.setIfNotExists("F", 4), g.setIfNumber("Rotate", u), g.setIfDefined("T", An(m)), c && g.setIfName("IT", "InkHighlight"), d > 0) {
            const b = new _(n);
            g.set("BS", b), b.set("W", d);
          }
          if (g.setIfArray("C", En(r)), g.setIfNumber("CA", l), i || s) {
            const b = new _(n);
            g.set("AP", b), b.set("N", s || i);
          }
          return g;
        }
        static async createNewAppearanceStream(e, n, s) {
          if (e.outlines) return this.createNewAppearanceStreamForHighlight(e, n, s);
          const { color: i, rect: a, paths: r, thickness: o, opacity: l } = e;
          if (!i) return null;
          const f = [`${o} w 1 J 1 j`, `${Qs(i, false)}`];
          l !== 1 && f.push("/R0 gs");
          for (const d of r.lines) {
            f.push(`${it(d[4])} ${it(d[5])} m`);
            for (let m = 6, g = d.length; m < g; m += 6) if (isNaN(d[m])) f.push(`${it(d[m + 4])} ${it(d[m + 5])} l`);
            else {
              const [b, w, x, y, j, v] = d.slice(m, m + 6);
              f.push([b, w, x, y, j, v].map(it).join(" ") + " c");
            }
            d.length === 6 && f.push(`${it(d[4])} ${it(d[5])} l`);
          }
          f.push("S");
          const c = f.join(`
`), h = new _(n);
          if (h.set("FormType", 1), h.setIfName("Subtype", "Form"), h.setIfName("Type", "XObject"), h.set("BBox", a), h.set("Length", c.length), l !== 1) {
            const d = new _(n), m = new _(n), g = new _(n);
            g.set("CA", l), g.setIfName("Type", "ExtGState"), m.set("R0", g), d.set("ExtGState", m), h.set("Resources", d);
          }
          const u = new Rn(c);
          return u.dict = h, u;
        }
        static async createNewAppearanceStreamForHighlight(e, n, s) {
          const { color: i, rect: a, outlines: { outline: r }, opacity: o } = e;
          if (!i) return null;
          const l = [`${Qs(i, true)}`, "/R0 gs"];
          l.push(`${it(r[4])} ${it(r[5])} m`);
          for (let g = 6, b = r.length; g < b; g += 6) if (isNaN(r[g])) l.push(`${it(r[g + 4])} ${it(r[g + 5])} l`);
          else {
            const [w, x, y, j, v, q] = r.slice(g, g + 6);
            l.push([w, x, y, j, v, q].map(it).join(" ") + " c");
          }
          l.push("h f");
          const f = l.join(`
`), c = new _(n);
          c.set("FormType", 1), c.setIfName("Subtype", "Form"), c.setIfName("Type", "XObject"), c.set("BBox", a), c.set("Length", f.length);
          const h = new _(n), u = new _(n);
          h.set("ExtGState", u), c.set("Resources", h);
          const d = new _(n);
          u.set("R0", d), d.setIfName("BM", "Multiply"), o !== 1 && (d.set("ca", o), d.setIfName("Type", "ExtGState"));
          const m = new Rn(f);
          return m.dict = c, m;
        }
      };
      Oc = class extends Zn {
        static {
          p(this, "HighlightAnnotation");
        }
        constructor(e) {
          super(e);
          const { dict: n, xref: s } = e;
          if (this.data.isEditable = !this.data.noHTML, this.data.noHTML = false, this.data.opacity = n.get("CA") || 1, this.data.quadPoints = Ao(n, null)) {
            const a = this.appearance?.dict.get("Resources");
            if (!this.appearance || !a?.has("ExtGState")) {
              this.appearance && F("HighlightAnnotation - ignoring built-in appearance stream.");
              const r = En(this.color, [1, 1, 0]), o = n.get("CA");
              this._setDefaultAppearance({ xref: s, fillColor: r, blendMode: "Multiply", fillAlpha: o, pointsCallback: p((l, f) => (l.push(`${f[0]} ${f[1]} m`, `${f[2]} ${f[3]} l`, `${f[6]} ${f[7]} l`, `${f[4]} ${f[5]} l`, "f"), [f[0], f[7], f[2], f[3]]), "pointsCallback") });
            }
          } else this.data.popupRef = null;
        }
        get overlaysTextContent() {
          return true;
        }
        static createNewDict(e, n, { apRef: s, ap: i }) {
          const { color: a, date: r, oldAnnotation: o, opacity: l, rect: f, rotation: c, user: h, quadPoints: u } = e, d = o || new _(n);
          if (d.setIfNotExists("Type", te.get("Annot")), d.setIfNotExists("Subtype", te.get("Highlight")), d.set(o ? "M" : "CreationDate", `D:${Ei(r)}`), d.setIfArray("Rect", f), d.setIfNotExists("F", 4), d.setIfNotExists("Border", [0, 0, 0]), d.setIfNumber("Rotate", c), d.setIfArray("QuadPoints", u), d.setIfArray("C", En(a)), d.setIfNumber("CA", l), d.setIfDefined("T", An(h)), s || i) {
            const m = new _(n);
            d.set("AP", m), m.set("N", s || i);
          }
          return d;
        }
        static async createNewAppearanceStream(e, n, s) {
          const { color: i, rect: a, outlines: r, opacity: o } = e;
          if (!i) return null;
          const l = [`${Qs(i, true)}`, "/R0 gs"], f = [];
          for (const b of r) {
            f.length = 0, f.push(`${it(b[0])} ${it(b[1])} m`);
            for (let w = 2, x = b.length; w < x; w += 2) f.push(`${it(b[w])} ${it(b[w + 1])} l`);
            f.push("h"), l.push(f.join(`
`));
          }
          l.push("f*");
          const c = l.join(`
`), h = new _(n);
          h.set("FormType", 1), h.setIfName("Subtype", "Form"), h.setIfName("Type", "XObject"), h.set("BBox", a), h.set("Length", c.length);
          const u = new _(n), d = new _(n);
          u.set("ExtGState", d), h.set("Resources", u);
          const m = new _(n);
          d.set("R0", m), m.setIfName("BM", "Multiply"), o !== 1 && (m.set("ca", o), m.setIfName("Type", "ExtGState"));
          const g = new Rn(c);
          return g.dict = h, g;
        }
      };
      h7 = class extends Zn {
        static {
          p(this, "UnderlineAnnotation");
        }
        constructor(e) {
          super(e);
          const { dict: n, xref: s } = e;
          if (this.data.quadPoints = Ao(n, null)) {
            if (!this.appearance) {
              const a = En(this.color, [0, 0, 0]), r = n.get("CA");
              this._setDefaultAppearance({ xref: s, extra: "[] 0 d 0.571 w", strokeColor: a, strokeAlpha: r, pointsCallback: p((o, l) => (o.push(`${l[4]} ${l[5] + 1.3} m`, `${l[6]} ${l[7] + 1.3} l`, "S"), [l[0], l[7], l[2], l[3]]), "pointsCallback") });
            }
          } else this.data.popupRef = null;
        }
        get overlaysTextContent() {
          return true;
        }
      };
      u7 = class extends Zn {
        static {
          p(this, "SquigglyAnnotation");
        }
        constructor(e) {
          super(e);
          const { dict: n, xref: s } = e;
          if (this.data.quadPoints = Ao(n, null)) {
            if (!this.appearance) {
              const a = En(this.color, [0, 0, 0]), r = n.get("CA");
              this._setDefaultAppearance({ xref: s, extra: "[] 0 d 1 w", strokeColor: a, strokeAlpha: r, pointsCallback: p((o, l) => {
                const f = (l[1] - l[5]) / 6;
                let c = f, h = l[4];
                const u = l[5], d = l[6];
                o.push(`${h} ${u + c} m`);
                do
                  h += 2, c = c === 0 ? f : 0, o.push(`${h} ${u + c} l`);
                while (h < d);
                return o.push("S"), [l[4], u - 2 * f, d, u + 2 * f];
              }, "pointsCallback") });
            }
          } else this.data.popupRef = null;
        }
        get overlaysTextContent() {
          return true;
        }
      };
      d7 = class extends Zn {
        static {
          p(this, "StrikeOutAnnotation");
        }
        constructor(e) {
          super(e);
          const { dict: n, xref: s } = e;
          if (this.data.quadPoints = Ao(n, null)) {
            if (!this.appearance) {
              const a = En(this.color, [0, 0, 0]), r = n.get("CA");
              this._setDefaultAppearance({ xref: s, extra: "[] 0 d 1 w", strokeColor: a, strokeAlpha: r, pointsCallback: p((o, l) => (o.push(`${(l[0] + l[4]) / 2} ${(l[1] + l[5]) / 2} m`, `${(l[2] + l[6]) / 2} ${(l[3] + l[7]) / 2} l`, "S"), [l[0], l[7], l[2], l[3]]), "pointsCallback") });
            }
          } else this.data.popupRef = null;
        }
        get overlaysTextContent() {
          return true;
        }
      };
      lr = class extends Zn {
        static {
          p(this, "StampAnnotation");
        }
        #e = null;
        constructor(e) {
          super(e), this.data.hasOwnCanvas = this.data.noRotate, this.data.isEditable = !this.data.noHTML, this.data.noHTML = false;
        }
        mustBeViewedWhenEditing(e, n = null) {
          return e ? (this.data.isEditable && (this.#e ??= this.data.hasOwnCanvas, this.data.hasOwnCanvas = true), true) : (this.#e !== null && (this.data.hasOwnCanvas = this.#e, this.#e = null), !n?.has(this.data.id));
        }
        static async createImage(e, n) {
          const { width: s, height: i } = e, a = new OffscreenCanvas(s, i), r = a.getContext("2d", { alpha: true });
          r.drawImage(e, 0, 0);
          const o = r.getImageData(0, 0, s, i).data, l = new Uint32Array(o.buffer), f = l.some(qn.isLittleEndian ? (b) => b >>> 24 !== 255 : (b) => (b & 255) !== 255);
          f && (r.fillStyle = "white", r.fillRect(0, 0, s, i), r.drawImage(e, 0, 0));
          const c = a.convertToBlob({ type: "image/jpeg", quality: 1 }).then((b) => b.bytes()), h = te.get("XObject"), u = te.get("Image"), d = new _(n);
          d.set("Type", h), d.set("Subtype", u), d.set("BitsPerComponent", 8), d.setIfName("ColorSpace", "DeviceRGB"), d.setIfName("Filter", "DCTDecode"), d.set("BBox", [0, 0, s, i]), d.set("Width", s), d.set("Height", i);
          let m = null;
          if (f) {
            const b = new Uint8Array(l.length);
            if (qn.isLittleEndian) for (let x = 0, y = l.length; x < y; x++) b[x] = l[x] >>> 24;
            else for (let x = 0, y = l.length; x < y; x++) b[x] = l[x] & 255;
            const w = new _(n);
            w.set("Type", h), w.set("Subtype", u), w.set("BitsPerComponent", 8), w.setIfName("ColorSpace", "DeviceGray"), w.set("Width", s), w.set("Height", i), m = new jt(b, 0, 0, w);
          }
          return { imageStream: new jt(await c, 0, 0, d), smaskStream: m, width: s, height: i };
        }
        static createNewDict(e, n, { apRef: s, ap: i }) {
          const { date: a, oldAnnotation: r, rect: o, rotation: l, user: f } = e, c = r || new _(n);
          if (c.setIfNotExists("Type", te.get("Annot")), c.setIfNotExists("Subtype", te.get("Stamp")), c.set(r ? "M" : "CreationDate", `D:${Ei(a)}`), c.setIfArray("Rect", o), c.setIfNotExists("F", 4), c.setIfNotExists("Border", [0, 0, 0]), c.setIfNumber("Rotate", l), c.setIfDefined("T", An(f)), s || i) {
            const h = new _(n);
            c.set("AP", h), h.set("N", s || i);
          }
          return c;
        }
        static async #t(e, n) {
          const { areContours: s, color: i, rect: a, lines: r, thickness: o } = e;
          if (!i) return null;
          const l = [`${o} w 1 J 1 j`, `${Qs(i, s)}`];
          for (const u of r) {
            l.push(`${it(u[4])} ${it(u[5])} m`);
            for (let d = 6, m = u.length; d < m; d += 6) if (isNaN(u[d])) l.push(`${it(u[d + 4])} ${it(u[d + 5])} l`);
            else {
              const [g, b, w, x, y, j] = u.slice(d, d + 6);
              l.push([g, b, w, x, y, j].map(it).join(" ") + " c");
            }
            u.length === 6 && l.push(`${it(u[4])} ${it(u[5])} l`);
          }
          l.push(s ? "F" : "S");
          const f = l.join(`
`), c = new _(n);
          c.set("FormType", 1), c.setIfName("Subtype", "Form"), c.setIfName("Type", "XObject"), c.set("BBox", a), c.set("Length", f.length);
          const h = new Rn(f);
          return h.dict = c, h;
        }
        static async createNewAppearanceStream(e, n, s) {
          if (e.oldAnnotation) return null;
          if (e.isSignature) return this.#t(e, n);
          const { rotation: i } = e, { imageRef: a, width: r, height: o } = s.image, l = new _(n), f = new _(n);
          l.set("XObject", f), f.set("Im0", a);
          const c = `q ${r} 0 0 ${o} 0 0 cm /Im0 Do Q`, h = new _(n);
          if (h.set("FormType", 1), h.setIfName("Subtype", "Form"), h.setIfName("Type", "XObject"), h.set("BBox", [0, 0, r, o]), h.set("Resources", l), i) {
            const d = bl(i, r, o);
            h.set("Matrix", d);
          }
          const u = new Rn(c);
          return u.dict = h, u;
        }
      };
      p7 = class extends Zn {
        static {
          p(this, "FileAttachmentAnnotation");
        }
        constructor(e) {
          super(e);
          const { dict: n } = e, s = new ac(n.get("FS"));
          this.data.hasOwnCanvas = this.data.noRotate, this.data.noHTML = false, this.data.file = s.serializable;
          const i = n.get("Name");
          this.data.name = i instanceof te ? Je(i.name) : "PushPin";
          const a = n.get("ca");
          this.data.fillAlpha = typeof a == "number" && a >= 0 && a <= 1 ? a : null;
        }
      };
      m7 = { get r() {
        return fe(this, "r", new Uint8Array([7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21]));
      }, get k() {
        return fe(this, "k", new Int32Array([-680876936, -389564586, 606105819, -1044525330, -176418897, 1200080426, -1473231341, -45705983, 1770035416, -1958414417, -42063, -1990404162, 1804603682, -40341101, -1502002290, 1236535329, -165796510, -1069501632, 643717713, -373897302, -701558691, 38016083, -660478335, -405537848, 568446438, -1019803690, -187363961, 1163531501, -1444681467, -51403784, 1735328473, -1926607734, -378558, -2022574463, 1839030562, -35309556, -1530992060, 1272893353, -155497632, -1094730640, 681279174, -358537222, -722521979, 76029189, -640364487, -421815835, 530742520, -995338651, -198630844, 1126891415, -1416354905, -57434055, 1700485571, -1894986606, -1051523, -2054922799, 1873313359, -30611744, -1560198380, 1309151649, -145523070, -1120210379, 718787259, -343485551]));
      } };
      p(Vi, "calculateMD5");
      p(z1, "decodeString");
      g7 = class extends Ul {
        static {
          p(this, "DatasetXMLParser");
        }
        node = null;
        onEndElement(e) {
          const n = super.onEndElement(e);
          if (n && e === "xfa:datasets") throw this.node = n, new Error("Aborting DatasetXMLParser.");
        }
      };
      b7 = class {
        static {
          p(this, "DatasetReader");
        }
        constructor(e) {
          if (e.datasets) this.node = new Ul({ hasAttributes: true }).parseFromString(e.datasets).documentElement;
          else {
            const n = new g7({ hasAttributes: true });
            try {
              n.parseFromString(e["xdp:xdp"]);
            } catch {
            }
            this.node = n.node;
          }
        }
        getValue(e) {
          if (!this.node || !e) return "";
          const n = this.node.searchNode(Jh(e), 0);
          return n ? n.firstChild?.nodeName === "value" ? n.children.map((i) => z1(i.textContent)) : z1(n.textContent) : "";
        }
      };
      w7 = class {
        static {
          p(this, "SingleIntersector");
        }
        #e;
        minX = 1 / 0;
        minY = 1 / 0;
        maxX = -1 / 0;
        maxY = -1 / 0;
        #t = null;
        #n = [];
        #s = [];
        #i = -1;
        #a = false;
        constructor(e) {
          this.#e = e;
          const n = e.data.quadPoints;
          if (!n) {
            [this.minX, this.minY, this.maxX, this.maxY] = e.data.rect;
            return;
          }
          for (let s = 0, i = n.length; s < i; s += 8) this.minX = Math.min(this.minX, n[s]), this.maxX = Math.max(this.maxX, n[s + 2]), this.minY = Math.min(this.minY, n[s + 5]), this.maxY = Math.max(this.maxY, n[s + 1]);
          n.length > 8 && (this.#t = n);
        }
        #r(e, n) {
          if (this.minX >= e || this.maxX <= e || this.minY >= n || this.maxY <= n) return false;
          const s = this.#t;
          if (!s) return true;
          if (this.#i >= 0) {
            const i = this.#i;
            if (!(s[i] >= e || s[i + 2] <= e || s[i + 5] >= n || s[i + 1] <= n)) return true;
            this.#i = -1;
          }
          for (let i = 0, a = s.length; i < a; i += 8) if (!(s[i] >= e || s[i + 2] <= e || s[i + 5] >= n || s[i + 1] <= n)) return this.#i = i, true;
          return false;
        }
        addGlyph(e, n, s) {
          return this.#r(e, n) ? (this.#s.length > 0 && (this.#n.push(this.#s.join("")), this.#s.length = 0), this.#n.push(s), this.#a = true, true) : (this.disableExtraChars(), false);
        }
        addExtraChar(e) {
          this.#a && this.#s.push(e);
        }
        disableExtraChars() {
          this.#a && (this.#a = false, this.#s.length = 0);
        }
        setText() {
          this.#e.data.overlaidText = this.#n.join("");
        }
      };
      Sa = 64;
      x7 = class {
        static {
          p(this, "Intersector");
        }
        #e = [];
        #t = [];
        #n;
        #s;
        #i;
        #a;
        #r;
        #o;
        constructor(e) {
          let n = 1 / 0, s = 1 / 0, i = -1 / 0, a = -1 / 0;
          const r = this.#e;
          for (const o of e) {
            if (!o.data.quadPoints && !o.data.rect) continue;
            const l = new w7(o);
            r.push(l), n = Math.min(n, l.minX), s = Math.min(s, l.minY), i = Math.max(i, l.maxX), a = Math.max(a, l.maxY);
          }
          this.#n = n, this.#i = s, this.#s = i, this.#a = a, this.#r = (Sa - 1) / (i - n), this.#o = (Sa - 1) / (a - s);
          for (const o of r) {
            const l = this.#l(o.minX, o.minY), f = this.#l(o.maxX, o.maxY), c = (f - l) % Sa, h = Math.floor((f - l) / Sa);
            for (let u = l; u <= l + h * Sa; u += Sa) for (let d = 0; d <= c; d++) {
              let m = this.#t[u + d];
              m || (this.#t[u + d] = m = []), m.push(o);
            }
          }
        }
        #l(e, n) {
          const s = Math.floor((e - this.#n) * this.#r), i = Math.floor((n - this.#i) * this.#o);
          return s + i * Sa;
        }
        addGlyph(e, n, s, i) {
          const a = e[4] + n / 2, r = e[5] + s / 2;
          if (a < this.#n || r < this.#i || a > this.#s || r > this.#a) return;
          const o = this.#t[this.#l(a, r)];
          if (o) for (const l of o) l.addGlyph(a, r, i);
        }
        addExtraChar(e) {
          for (const n of this.#e) n.addExtraChar(e);
        }
        setText() {
          for (const e of this.#e) e.setText();
        }
      };
      de = class {
        static {
          p(this, "Word64");
        }
        constructor(e, n) {
          this.high = e | 0, this.low = n | 0;
        }
        and(e) {
          this.high &= e.high, this.low &= e.low;
        }
        xor(e) {
          this.high ^= e.high, this.low ^= e.low;
        }
        shiftRight(e) {
          e >= 32 ? (this.low = this.high >>> e - 32 | 0, this.high = 0) : (this.low = this.low >>> e | this.high << 32 - e, this.high = this.high >>> e | 0);
        }
        rotateRight(e) {
          let n, s;
          e & 32 ? (s = this.low, n = this.high) : (n = this.low, s = this.high), e &= 31, this.low = n >>> e | s << 32 - e, this.high = s >>> e | n << 32 - e;
        }
        not() {
          this.high = ~this.high, this.low = ~this.low;
        }
        add(e) {
          const n = (this.low >>> 0) + (e.low >>> 0);
          let s = (this.high >>> 0) + (e.high >>> 0);
          n > 4294967295 && (s += 1), this.low = n | 0, this.high = s | 0;
        }
        copyTo(e, n) {
          e[n] = this.high >>> 24 & 255, e[n + 1] = this.high >> 16 & 255, e[n + 2] = this.high >> 8 & 255, e[n + 3] = this.high & 255, e[n + 4] = this.low >>> 24 & 255, e[n + 5] = this.low >> 16 & 255, e[n + 6] = this.low >> 8 & 255, e[n + 7] = this.low & 255;
        }
        assign(e) {
          this.high = e.high, this.low = e.low;
        }
      };
      k7 = { get k() {
        return fe(this, "k", [new de(1116352408, 3609767458), new de(1899447441, 602891725), new de(3049323471, 3964484399), new de(3921009573, 2173295548), new de(961987163, 4081628472), new de(1508970993, 3053834265), new de(2453635748, 2937671579), new de(2870763221, 3664609560), new de(3624381080, 2734883394), new de(310598401, 1164996542), new de(607225278, 1323610764), new de(1426881987, 3590304994), new de(1925078388, 4068182383), new de(2162078206, 991336113), new de(2614888103, 633803317), new de(3248222580, 3479774868), new de(3835390401, 2666613458), new de(4022224774, 944711139), new de(264347078, 2341262773), new de(604807628, 2007800933), new de(770255983, 1495990901), new de(1249150122, 1856431235), new de(1555081692, 3175218132), new de(1996064986, 2198950837), new de(2554220882, 3999719339), new de(2821834349, 766784016), new de(2952996808, 2566594879), new de(3210313671, 3203337956), new de(3336571891, 1034457026), new de(3584528711, 2466948901), new de(113926993, 3758326383), new de(338241895, 168717936), new de(666307205, 1188179964), new de(773529912, 1546045734), new de(1294757372, 1522805485), new de(1396182291, 2643833823), new de(1695183700, 2343527390), new de(1986661051, 1014477480), new de(2177026350, 1206759142), new de(2456956037, 344077627), new de(2730485921, 1290863460), new de(2820302411, 3158454273), new de(3259730800, 3505952657), new de(3345764771, 106217008), new de(3516065817, 3606008344), new de(3600352804, 1432725776), new de(4094571909, 1467031594), new de(275423344, 851169720), new de(430227734, 3100823752), new de(506948616, 1363258195), new de(659060556, 3750685593), new de(883997877, 3785050280), new de(958139571, 3318307427), new de(1322822218, 3812723403), new de(1537002063, 2003034995), new de(1747873779, 3602036899), new de(1955562222, 1575990012), new de(2024104815, 1125592928), new de(2227730452, 2716904306), new de(2361852424, 442776044), new de(2428436474, 593698344), new de(2756734187, 3733110249), new de(3204031479, 2999351573), new de(3329325298, 3815920427), new de(3391569614, 3928383900), new de(3515267271, 566280711), new de(3940187606, 3454069534), new de(4118630271, 4000239992), new de(116418474, 1914138554), new de(174292421, 2731055270), new de(289380356, 3203993006), new de(460393269, 320620315), new de(685471733, 587496836), new de(852142971, 1086792851), new de(1017036298, 365543100), new de(1126000580, 2618297676), new de(1288033470, 3409855158), new de(1501505948, 4234509866), new de(1607167915, 987167468), new de(1816402316, 1246189591)]);
      } };
      p(y7, "ch");
      p(j7, "maj");
      p(v7, "sigma");
      p(q7, "sigmaPrime");
      p(A7, "littleSigma");
      p(S7, "littleSigmaPrime");
      p(U1, "calculateSHA512");
      p(C7, "calculateSHA384");
      I7 = { get k() {
        return fe(this, "k", [1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298]);
      } };
      p(ti, "rotr");
      p(T7, "calculate_sha256_ch");
      p(E7, "calculate_sha256_maj");
      p(F7, "calculate_sha256_sigma");
      p(B7, "calculate_sha256_sigmaPrime");
      p(R7, "calculate_sha256_littleSigma");
      p(_7, "calculate_sha256_littleSigmaPrime");
      p(Lc, "calculateSHA256");
      G1 = 512;
      P7 = class extends Pn {
        static {
          p(this, "DecryptStream");
        }
        constructor(e, n, s) {
          super(n), this.stream = e, this.dict = e.dict, this.decrypt = s, this.nextChunk = null, this.initialized = false;
        }
        readBlock() {
          let e;
          if (this.initialized ? e = this.nextChunk : (e = this.stream.getBytes(G1), this.initialized = true), !e?.length) {
            this.eof = true;
            return;
          }
          this.nextChunk = this.stream.getBytes(G1);
          const n = this.nextChunk?.length > 0, s = this.decrypt;
          e = s(e, !n);
          const i = this.bufferLength, a = i + e.length;
          this.ensureBuffer(a).set(e, i), this.bufferLength = a;
        }
        getOriginalStream() {
          return this;
        }
      };
      Ca = class {
        static {
          p(this, "ARCFourCipher");
        }
        a = 0;
        b = 0;
        constructor(e) {
          const n = new Uint8Array(256), s = e.length;
          for (let i = 0; i < 256; ++i) n[i] = i;
          for (let i = 0, a = 0; i < 256; ++i) {
            const r = n[i];
            a = a + r + e[i % s] & 255, n[i] = n[a], n[a] = r;
          }
          this.s = n;
        }
        encryptBlock(e) {
          let n = this.a, s = this.b;
          const i = this.s, a = e.length, r = new Uint8Array(a);
          for (let o = 0; o < a; ++o) {
            n = n + 1 & 255;
            const l = i[n];
            s = s + l & 255;
            const f = i[s];
            i[n] = f, i[s] = l, r[o] = e[o] ^ i[l + f & 255];
          }
          return this.a = n, this.b = s, r;
        }
        decryptBlock(e) {
          return this.encryptBlock(e);
        }
        encrypt(e) {
          return this.encryptBlock(e);
        }
      };
      D7 = class {
        static {
          p(this, "NullCipher");
        }
        decryptBlock(e) {
          return e;
        }
        encrypt(e) {
          return e;
        }
      };
      Nc = class {
        static {
          p(this, "AESBaseCipher");
        }
        _s = new Uint8Array([99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215, 171, 118, 202, 130, 201, 125, 250, 89, 71, 240, 173, 212, 162, 175, 156, 164, 114, 192, 183, 253, 147, 38, 54, 63, 247, 204, 52, 165, 229, 241, 113, 216, 49, 21, 4, 199, 35, 195, 24, 150, 5, 154, 7, 18, 128, 226, 235, 39, 178, 117, 9, 131, 44, 26, 27, 110, 90, 160, 82, 59, 214, 179, 41, 227, 47, 132, 83, 209, 0, 237, 32, 252, 177, 91, 106, 203, 190, 57, 74, 76, 88, 207, 208, 239, 170, 251, 67, 77, 51, 133, 69, 249, 2, 127, 80, 60, 159, 168, 81, 163, 64, 143, 146, 157, 56, 245, 188, 182, 218, 33, 16, 255, 243, 210, 205, 12, 19, 236, 95, 151, 68, 23, 196, 167, 126, 61, 100, 93, 25, 115, 96, 129, 79, 220, 34, 42, 144, 136, 70, 238, 184, 20, 222, 94, 11, 219, 224, 50, 58, 10, 73, 6, 36, 92, 194, 211, 172, 98, 145, 149, 228, 121, 231, 200, 55, 109, 141, 213, 78, 169, 108, 86, 244, 234, 101, 122, 174, 8, 186, 120, 37, 46, 28, 166, 180, 198, 232, 221, 116, 31, 75, 189, 139, 138, 112, 62, 181, 102, 72, 3, 246, 14, 97, 53, 87, 185, 134, 193, 29, 158, 225, 248, 152, 17, 105, 217, 142, 148, 155, 30, 135, 233, 206, 85, 40, 223, 140, 161, 137, 13, 191, 230, 66, 104, 65, 153, 45, 15, 176, 84, 187, 22]);
        _inv_s = new Uint8Array([82, 9, 106, 213, 48, 54, 165, 56, 191, 64, 163, 158, 129, 243, 215, 251, 124, 227, 57, 130, 155, 47, 255, 135, 52, 142, 67, 68, 196, 222, 233, 203, 84, 123, 148, 50, 166, 194, 35, 61, 238, 76, 149, 11, 66, 250, 195, 78, 8, 46, 161, 102, 40, 217, 36, 178, 118, 91, 162, 73, 109, 139, 209, 37, 114, 248, 246, 100, 134, 104, 152, 22, 212, 164, 92, 204, 93, 101, 182, 146, 108, 112, 72, 80, 253, 237, 185, 218, 94, 21, 70, 87, 167, 141, 157, 132, 144, 216, 171, 0, 140, 188, 211, 10, 247, 228, 88, 5, 184, 179, 69, 6, 208, 44, 30, 143, 202, 63, 15, 2, 193, 175, 189, 3, 1, 19, 138, 107, 58, 145, 17, 65, 79, 103, 220, 234, 151, 242, 207, 206, 240, 180, 230, 115, 150, 172, 116, 34, 231, 173, 53, 133, 226, 249, 55, 232, 28, 117, 223, 110, 71, 241, 26, 113, 29, 41, 197, 137, 111, 183, 98, 14, 170, 24, 190, 27, 252, 86, 62, 75, 198, 210, 121, 32, 154, 219, 192, 254, 120, 205, 90, 244, 31, 221, 168, 51, 136, 7, 199, 49, 177, 18, 16, 89, 39, 128, 236, 95, 96, 81, 127, 169, 25, 181, 74, 13, 45, 229, 122, 159, 147, 201, 156, 239, 160, 224, 59, 77, 174, 42, 245, 176, 200, 235, 187, 60, 131, 83, 153, 97, 23, 43, 4, 126, 186, 119, 214, 38, 225, 105, 20, 99, 85, 33, 12, 125]);
        _mix = new Uint32Array([0, 235474187, 470948374, 303765277, 941896748, 908933415, 607530554, 708780849, 1883793496, 2118214995, 1817866830, 1649639237, 1215061108, 1181045119, 1417561698, 1517767529, 3767586992, 4003061179, 4236429990, 4069246893, 3635733660, 3602770327, 3299278474, 3400528769, 2430122216, 2664543715, 2362090238, 2193862645, 2835123396, 2801107407, 3035535058, 3135740889, 3678124923, 3576870512, 3341394285, 3374361702, 3810496343, 3977675356, 4279080257, 4043610186, 2876494627, 2776292904, 3076639029, 3110650942, 2472011535, 2640243204, 2403728665, 2169303058, 1001089995, 899835584, 666464733, 699432150, 59727847, 226906860, 530400753, 294930682, 1273168787, 1172967064, 1475418501, 1509430414, 1942435775, 2110667444, 1876241833, 1641816226, 2910219766, 2743034109, 2976151520, 3211623147, 2505202138, 2606453969, 2302690252, 2269728455, 3711829422, 3543599269, 3240894392, 3475313331, 3843699074, 3943906441, 4178062228, 4144047775, 1306967366, 1139781709, 1374988112, 1610459739, 1975683434, 2076935265, 1775276924, 1742315127, 1034867998, 866637845, 566021896, 800440835, 92987698, 193195065, 429456164, 395441711, 1984812685, 2017778566, 1784663195, 1683407248, 1315562145, 1080094634, 1383856311, 1551037884, 101039829, 135050206, 437757123, 337553864, 1042385657, 807962610, 573804783, 742039012, 2531067453, 2564033334, 2328828971, 2227573024, 2935566865, 2700099354, 3001755655, 3168937228, 3868552805, 3902563182, 4203181171, 4102977912, 3736164937, 3501741890, 3265478751, 3433712980, 1106041591, 1340463100, 1576976609, 1408749034, 2043211483, 2009195472, 1708848333, 1809054150, 832877231, 1068351396, 766945465, 599762354, 159417987, 126454664, 361929877, 463180190, 2709260871, 2943682380, 3178106961, 3009879386, 2572697195, 2538681184, 2236228733, 2336434550, 3509871135, 3745345300, 3441850377, 3274667266, 3910161971, 3877198648, 4110568485, 4211818798, 2597806476, 2497604743, 2261089178, 2295101073, 2733856160, 2902087851, 3202437046, 2968011453, 3936291284, 3835036895, 4136440770, 4169408201, 3535486456, 3702665459, 3467192302, 3231722213, 2051518780, 1951317047, 1716890410, 1750902305, 1113818384, 1282050075, 1584504582, 1350078989, 168810852, 67556463, 371049330, 404016761, 841739592, 1008918595, 775550814, 540080725, 3969562369, 3801332234, 4035489047, 4269907996, 3569255213, 3669462566, 3366754619, 3332740144, 2631065433, 2463879762, 2160117071, 2395588676, 2767645557, 2868897406, 3102011747, 3069049960, 202008497, 33778362, 270040487, 504459436, 875451293, 975658646, 675039627, 641025152, 2084704233, 1917518562, 1615861247, 1851332852, 1147550661, 1248802510, 1484005843, 1451044056, 933301370, 967311729, 733156972, 632953703, 260388950, 25965917, 328671808, 496906059, 1206477858, 1239443753, 1543208500, 1441952575, 2144161806, 1908694277, 1675577880, 1842759443, 3610369226, 3644379585, 3408119516, 3307916247, 4011190502, 3776767469, 4077384432, 4245618683, 2809771154, 2842737049, 3144396420, 3043140495, 2673705150, 2438237621, 2203032232, 2370213795]);
        _mixCol = new Uint8Array(256).map((e, n) => n < 128 ? n << 1 : n << 1 ^ 27);
        constructor() {
          this.buffer = new Uint8Array(16), this.bufferPosition = 0;
        }
        _expandKey(e) {
          Ye("Cannot call `_expandKey` on the base class");
        }
        _decrypt(e, n) {
          let s, i, a;
          const r = new Uint8Array(16);
          r.set(e);
          for (let o = 0, l = this._keySize; o < 16; ++o, ++l) r[o] ^= n[l];
          for (let o = this._cyclesOfRepetition - 1; o >= 1; --o) {
            s = r[13], r[13] = r[9], r[9] = r[5], r[5] = r[1], r[1] = s, s = r[14], i = r[10], r[14] = r[6], r[10] = r[2], r[6] = s, r[2] = i, s = r[15], i = r[11], a = r[7], r[15] = r[3], r[11] = s, r[7] = i, r[3] = a;
            for (let l = 0; l < 16; ++l) r[l] = this._inv_s[r[l]];
            for (let l = 0, f = o * 16; l < 16; ++l, ++f) r[l] ^= n[f];
            for (let l = 0; l < 16; l += 4) {
              const f = this._mix[r[l]], c = this._mix[r[l + 1]], h = this._mix[r[l + 2]], u = this._mix[r[l + 3]];
              s = f ^ c >>> 8 ^ c << 24 ^ h >>> 16 ^ h << 16 ^ u >>> 24 ^ u << 8, r[l] = s >>> 24 & 255, r[l + 1] = s >> 16 & 255, r[l + 2] = s >> 8 & 255, r[l + 3] = s & 255;
            }
          }
          s = r[13], r[13] = r[9], r[9] = r[5], r[5] = r[1], r[1] = s, s = r[14], i = r[10], r[14] = r[6], r[10] = r[2], r[6] = s, r[2] = i, s = r[15], i = r[11], a = r[7], r[15] = r[3], r[11] = s, r[7] = i, r[3] = a;
          for (let o = 0; o < 16; ++o) r[o] = this._inv_s[r[o]], r[o] ^= n[o];
          return r;
        }
        _encrypt(e, n) {
          const s = this._s;
          let i, a, r;
          const o = new Uint8Array(16);
          o.set(e);
          for (let l = 0; l < 16; ++l) o[l] ^= n[l];
          for (let l = 1; l < this._cyclesOfRepetition; l++) {
            for (let f = 0; f < 16; ++f) o[f] = s[o[f]];
            r = o[1], o[1] = o[5], o[5] = o[9], o[9] = o[13], o[13] = r, r = o[2], a = o[6], o[2] = o[10], o[6] = o[14], o[10] = r, o[14] = a, r = o[3], a = o[7], i = o[11], o[3] = o[15], o[7] = r, o[11] = a, o[15] = i;
            for (let f = 0; f < 16; f += 4) {
              const c = o[f], h = o[f + 1], u = o[f + 2], d = o[f + 3];
              i = c ^ h ^ u ^ d, o[f] ^= i ^ this._mixCol[c ^ h], o[f + 1] ^= i ^ this._mixCol[h ^ u], o[f + 2] ^= i ^ this._mixCol[u ^ d], o[f + 3] ^= i ^ this._mixCol[d ^ c];
            }
            for (let f = 0, c = l * 16; f < 16; ++f, ++c) o[f] ^= n[c];
          }
          for (let l = 0; l < 16; ++l) o[l] = s[o[l]];
          r = o[1], o[1] = o[5], o[5] = o[9], o[9] = o[13], o[13] = r, r = o[2], a = o[6], o[2] = o[10], o[6] = o[14], o[10] = r, o[14] = a, r = o[3], a = o[7], i = o[11], o[3] = o[15], o[7] = r, o[11] = a, o[15] = i;
          for (let l = 0, f = this._keySize; l < 16; ++l, ++f) o[l] ^= n[f];
          return o;
        }
        _decryptBlock2(e, n) {
          const s = e.length;
          let i = this.buffer, a = this.bufferPosition;
          const r = [];
          let o = this.iv;
          for (let c = 0; c < s; ++c) {
            if (i[a] = e[c], ++a, a < 16) continue;
            const h = this._decrypt(i, this._key);
            for (let u = 0; u < 16; ++u) h[u] ^= o[u];
            o = i, r.push(h), i = new Uint8Array(16), a = 0;
          }
          if (this.buffer = i, this.bufferLength = a, this.iv = o, r.length === 0) return new Uint8Array(0);
          let l = 16 * r.length;
          if (n) {
            const c = r.at(-1);
            let h = c[15];
            if (h <= 16) {
              for (let u = 15, d = 16 - h; u >= d; --u) if (c[u] !== h) {
                h = 0;
                break;
              }
              l -= h, r[r.length - 1] = c.subarray(0, 16 - h);
            }
          }
          const f = new Uint8Array(l);
          for (let c = 0, h = 0, u = r.length; c < u; ++c, h += 16) f.set(r[c], h);
          return f;
        }
        decryptBlock(e, n, s = null) {
          const i = e.length, a = this.buffer;
          let r = this.bufferPosition;
          if (s) this.iv = s;
          else {
            for (let o = 0; r < 16 && o < i; ++o, ++r) a[r] = e[o];
            if (r < 16) return this.bufferLength = r, new Uint8Array(0);
            this.iv = a, e = e.subarray(16);
          }
          return this.buffer = new Uint8Array(16), this.bufferLength = 0, this.decryptBlock = this._decryptBlock2, this.decryptBlock(e, n);
        }
        encrypt(e, n) {
          const s = e.length;
          let i = this.buffer, a = this.bufferPosition;
          const r = [];
          n ||= new Uint8Array(16);
          for (let f = 0; f < s; ++f) {
            if (i[a] = e[f], ++a, a < 16) continue;
            for (let h = 0; h < 16; ++h) i[h] ^= n[h];
            const c = this._encrypt(i, this._key);
            n = c, r.push(c), i = new Uint8Array(16), a = 0;
          }
          if (this.buffer = i, this.bufferLength = a, this.iv = n, r.length === 0) return new Uint8Array(0);
          const o = 16 * r.length, l = new Uint8Array(o);
          for (let f = 0, c = 0, h = r.length; f < h; ++f, c += 16) l.set(r[f], c);
          return l;
        }
      };
      W1 = class extends Nc {
        static {
          p(this, "AES128Cipher");
        }
        _rcon = new Uint8Array([141, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108, 216, 171, 77, 154, 47, 94, 188, 99, 198, 151, 53, 106, 212, 179, 125, 250, 239, 197, 145, 57, 114, 228, 211, 189, 97, 194, 159, 37, 74, 148, 51, 102, 204, 131, 29, 58, 116, 232, 203, 141, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108, 216, 171, 77, 154, 47, 94, 188, 99, 198, 151, 53, 106, 212, 179, 125, 250, 239, 197, 145, 57, 114, 228, 211, 189, 97, 194, 159, 37, 74, 148, 51, 102, 204, 131, 29, 58, 116, 232, 203, 141, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108, 216, 171, 77, 154, 47, 94, 188, 99, 198, 151, 53, 106, 212, 179, 125, 250, 239, 197, 145, 57, 114, 228, 211, 189, 97, 194, 159, 37, 74, 148, 51, 102, 204, 131, 29, 58, 116, 232, 203, 141, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108, 216, 171, 77, 154, 47, 94, 188, 99, 198, 151, 53, 106, 212, 179, 125, 250, 239, 197, 145, 57, 114, 228, 211, 189, 97, 194, 159, 37, 74, 148, 51, 102, 204, 131, 29, 58, 116, 232, 203, 141, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108, 216, 171, 77, 154, 47, 94, 188, 99, 198, 151, 53, 106, 212, 179, 125, 250, 239, 197, 145, 57, 114, 228, 211, 189, 97, 194, 159, 37, 74, 148, 51, 102, 204, 131, 29, 58, 116, 232, 203, 141]);
        constructor(e) {
          super(), this._cyclesOfRepetition = 10, this._keySize = 160, this._key = this._expandKey(e);
        }
        _expandKey(e) {
          const s = this._s, i = this._rcon, a = new Uint8Array(176);
          a.set(e);
          for (let r = 16, o = 1; r < 176; ++o) {
            let l = a[r - 3], f = a[r - 2], c = a[r - 1], h = a[r - 4];
            l = s[l], f = s[f], c = s[c], h = s[h], l ^= i[o];
            for (let u = 0; u < 4; ++u) a[r] = l ^= a[r - 16], r++, a[r] = f ^= a[r - 16], r++, a[r] = c ^= a[r - 16], r++, a[r] = h ^= a[r - 16], r++;
          }
          return a;
        }
      };
      zc = class extends Nc {
        static {
          p(this, "AES256Cipher");
        }
        constructor(e) {
          super(), this._cyclesOfRepetition = 14, this._keySize = 224, this._key = this._expandKey(e);
        }
        _expandKey(e) {
          const s = this._s, i = new Uint8Array(240);
          i.set(e);
          let a = 1, r, o, l, f;
          for (let c = 32, h = 1; c < 240; ++h) {
            c % 32 === 16 ? (r = s[r], o = s[o], l = s[l], f = s[f]) : c % 32 === 0 && (r = i[c - 3], o = i[c - 2], l = i[c - 1], f = i[c - 4], r = s[r], o = s[o], l = s[l], f = s[f], r ^= a, (a <<= 1) >= 256 && (a = (a ^ 27) & 255));
            for (let u = 0; u < 4; ++u) i[c] = r ^= i[c - 32], c++, i[c] = o ^= i[c - 32], c++, i[c] = l ^= i[c - 32], c++, i[c] = f ^= i[c - 32], c++;
          }
          return i;
        }
      };
      $1 = class {
        static {
          p(this, "PDFBase");
        }
        _hash(e, n, s) {
          Ye("Abstract method `_hash` called");
        }
        checkOwnerPassword(e, n, s, i) {
          const a = new Uint8Array(e.length + 56);
          a.set(e, 0), a.set(n, e.length), a.set(s, e.length + n.length);
          const r = this._hash(e, a, s);
          return _r(r, i);
        }
        checkUserPassword(e, n, s) {
          const i = new Uint8Array(e.length + 8);
          i.set(e, 0), i.set(n, e.length);
          const a = this._hash(e, i, []);
          return _r(a, s);
        }
        getOwnerKey(e, n, s, i) {
          const a = new Uint8Array(e.length + 56);
          a.set(e, 0), a.set(n, e.length), a.set(s, e.length + n.length);
          const r = this._hash(e, a, s);
          return new zc(r).decryptBlock(i, false, new Uint8Array(16));
        }
        getUserKey(e, n, s) {
          const i = new Uint8Array(e.length + 8);
          i.set(e, 0), i.set(n, e.length);
          const a = this._hash(e, i, []);
          return new zc(a).decryptBlock(s, false, new Uint8Array(16));
        }
      };
      M7 = class extends $1 {
        static {
          p(this, "PDF17");
        }
        _hash(e, n, s) {
          return Lc(n, 0, n.length);
        }
      };
      H7 = class extends $1 {
        static {
          p(this, "PDF20");
        }
        _hash(e, n, s) {
          let i = Lc(n, 0, n.length).subarray(0, 32), a = [0], r = 0;
          for (; r < 64 || a.at(-1) > r - 32; ) {
            const o = e.length + i.length + s.length, l = new Uint8Array(o);
            let f = 0;
            l.set(e, f), f += e.length, l.set(i, f), f += i.length, l.set(s, f);
            const c = new Uint8Array(o * 64);
            for (let d = 0, m = 0; d < 64; d++, m += o) c.set(l, m);
            a = new W1(i.subarray(0, 16)).encrypt(c, i.subarray(16, 32));
            const u = Math.sumPrecise(a.slice(0, 16)) % 3;
            u === 0 ? i = Lc(a, 0, a.length) : u === 1 ? i = C7(a, 0, a.length) : u === 2 && (i = U1(a, 0, a.length)), r++;
          }
          return i.subarray(0, 32);
        }
      };
      V1 = class {
        static {
          p(this, "CipherTransform");
        }
        constructor(e, n) {
          this.StringCipherConstructor = e, this.StreamCipherConstructor = n;
        }
        createStream(e, n) {
          const s = new this.StreamCipherConstructor();
          return new P7(e, n, p(function(a, r) {
            return s.decryptBlock(a, r);
          }, "cipherTransformDecryptStream"));
        }
        decryptString(e) {
          const n = new this.StringCipherConstructor();
          let s = Bn(e);
          return s = n.decryptBlock(s, true), Vn(s);
        }
        encryptString(e) {
          const n = new this.StringCipherConstructor();
          if (n instanceof Nc) {
            const a = 16 - e.length % 16;
            e += String.fromCharCode(a).repeat(a);
            const r = new Uint8Array(16);
            crypto.getRandomValues(r);
            let o = Bn(e);
            o = n.encrypt(o, r);
            const l = new Uint8Array(16 + o.length);
            return l.set(r), l.set(o, 16), Vn(l);
          }
          let s = Bn(e);
          return s = n.encrypt(s), Vn(s);
        }
      };
      yr = class _yr {
        static {
          p(this, "CipherTransformFactory");
        }
        static get _defaultPasswordBytes() {
          return fe(this, "_defaultPasswordBytes", new Uint8Array([40, 191, 78, 94, 78, 117, 138, 65, 100, 0, 78, 86, 255, 250, 1, 8, 46, 46, 0, 182, 208, 104, 62, 128, 47, 12, 169, 254, 100, 83, 105, 122]));
        }
        #e(e, n, s, i, a, r, o, l, f, c, h, u) {
          if (n) {
            const m = Math.min(127, n.length);
            n = n.subarray(0, m);
          } else n = [];
          const d = e === 6 ? new H7() : new M7();
          return d.checkUserPassword(n, l, o) ? d.getUserKey(n, f, h) : n.length && d.checkOwnerPassword(n, i, r, s) ? d.getOwnerKey(n, a, r, c) : null;
        }
        #t(e, n, s, i, a, r, o, l) {
          const f = 40 + s.length + e.length, c = new Uint8Array(f);
          let h = 0, u, d;
          if (n) for (d = Math.min(32, n.length); h < d; ++h) c[h] = n[h];
          for (u = 0; h < 32; ) c[h++] = _yr._defaultPasswordBytes[u++];
          c.set(s, h), h += s.length, c[h++] = a & 255, c[h++] = a >> 8 & 255, c[h++] = a >> 16 & 255, c[h++] = a >>> 24 & 255, c.set(e, h), h += e.length, r >= 4 && !l && (c.fill(255, h, h + 4), h += 4);
          let m = Vi(c, 0, h);
          const g = o >> 3;
          if (r >= 3) for (u = 0; u < 50; ++u) m = Vi(m, 0, g);
          const b = m.subarray(0, g);
          let w, x;
          if (r >= 3) {
            h = 0, c.set(_yr._defaultPasswordBytes, h), h += 32, c.set(e, h), h += e.length, w = new Ca(b), x = w.encryptBlock(Vi(c, 0, h)), d = b.length;
            const y = new Uint8Array(d);
            for (u = 1; u <= 19; ++u) {
              for (let j = 0; j < d; ++j) y[j] = b[j] ^ u;
              w = new Ca(y), x = w.encryptBlock(x);
            }
          } else w = new Ca(b), x = w.encryptBlock(_yr._defaultPasswordBytes);
          return x.every((y, j) => i[j] === y) ? b : null;
        }
        #n(e, n, s, i) {
          const a = new Uint8Array(32);
          let r = 0;
          const o = Math.min(32, e.length);
          for (; r < o; ++r) a[r] = e[r];
          let l = 0;
          for (; r < 32; ) a[r++] = _yr._defaultPasswordBytes[l++];
          let f = Vi(a, 0, r);
          const c = i >> 3;
          if (s >= 3) for (l = 0; l < 50; ++l) f = Vi(f, 0, f.length);
          let h, u;
          if (s >= 3) {
            u = n;
            const d = new Uint8Array(c);
            for (l = 19; l >= 0; l--) {
              for (let m = 0; m < c; ++m) d[m] = f[m] ^ l;
              h = new Ca(d), u = h.encryptBlock(u);
            }
          } else h = new Ca(f.subarray(0, c)), u = h.encryptBlock(n);
          return u;
        }
        #s(e, n, s, i = false) {
          const a = s.length, r = new Uint8Array(a + 9);
          r.set(s);
          let o = a;
          return r[o++] = e & 255, r[o++] = e >> 8 & 255, r[o++] = e >> 16 & 255, r[o++] = n & 255, r[o++] = n >> 8 & 255, i && (r[o++] = 115, r[o++] = 65, r[o++] = 108, r[o++] = 84), Vi(r, 0, o).subarray(0, Math.min(a + 5, 16));
        }
        #i(e, n, s, i, a) {
          if (!(n instanceof te)) throw new Q("Invalid crypt filter name.");
          const r = this, l = e.get(n.name)?.get("CFM");
          if (!l || l.name === "None") return function() {
            return new D7();
          };
          if (l.name === "V2") return function() {
            return new Ca(r.#s(s, i, a, false));
          };
          if (l.name === "AESV2") return function() {
            return new W1(r.#s(s, i, a, true));
          };
          if (l.name === "AESV3") return function() {
            return new zc(a);
          };
          throw new Q("Unknown crypto method");
        }
        constructor(e, n, s) {
          const i = e.get("Filter");
          if (!ot(i, "Standard")) throw new Q("unknown encryption method");
          this.filterName = i.name, this.dict = e;
          const a = e.get("V");
          if (!Number.isInteger(a) || a !== 1 && a !== 2 && a !== 4 && a !== 5) throw new Q("unsupported encryption algorithm");
          this.algorithm = a;
          let r = e.get("Length");
          if (!r) if (a <= 3) r = 40;
          else {
            const w = e.get("CF"), x = e.get("StmF");
            w instanceof _ && x instanceof te && (w.suppressEncryption = true, r = w.get(x.name)?.get("Length") || 128, r < 40 && (r <<= 3));
          }
          if (!Number.isInteger(r) || r < 40 || r % 8 !== 0) throw new Q("invalid key length");
          const o = Bn(e.get("O")), l = Bn(e.get("U")), f = o.subarray(0, 32), c = l.subarray(0, 32), h = e.get("P"), u = e.get("R"), d = (a === 4 || a === 5) && e.get("EncryptMetadata") !== false;
          this.encryptMetadata = d;
          const m = Bn(n);
          let g;
          if (s) {
            if (u === 6) try {
              s = af(s);
            } catch {
              F("CipherTransformFactory: Unable to convert UTF8 encoded password.");
            }
            g = Bn(s);
          }
          let b;
          if (a !== 5) b = this.#t(m, g, f, c, h, u, r, d);
          else {
            const w = o.subarray(32, 40), x = o.subarray(40, 48), y = l.subarray(0, 48), j = l.subarray(32, 40), v = l.subarray(40, 48), q = Bn(e.get("OE")), A = Bn(e.get("UE")), C = Bn(e.get("Perms"));
            b = this.#e(u, g, f, w, x, y, c, j, v, q, A, C);
          }
          if (!b) {
            if (!s) throw new La("No password given", zh.NEED_PASSWORD);
            const w = this.#n(g, f, u, r);
            b = this.#t(m, w, f, c, h, u, r, d);
          }
          if (!b) throw new La("Incorrect Password", zh.INCORRECT_PASSWORD);
          if (a === 4 && b.length < 16 ? (this.encryptionKey = new Uint8Array(16), this.encryptionKey.set(b)) : this.encryptionKey = b, a >= 4) {
            const w = e.get("CF");
            w instanceof _ && (w.suppressEncryption = true), this.cf = w, this.stmf = e.get("StmF") || te.get("Identity"), this.strf = e.get("StrF") || te.get("Identity"), this.eff = e.get("EFF") || this.stmf;
          }
        }
        createCipherTransform(e, n) {
          if (this.algorithm === 4 || this.algorithm === 5) return new V1(this.#i(this.cf, this.strf, e, n, this.encryptionKey), this.#i(this.cf, this.stmf, e, n, this.encryptionKey));
          const s = this.#s(e, n, this.encryptionKey, false), i = p(function() {
            return new Ca(s);
          }, "cipherConstructor");
          return new V1(i, i);
        }
      };
      O7 = class {
        static {
          p(this, "XRef");
        }
        constructor(e, n) {
          this.stream = e, this.pdfManager = n, this.entries = [], this._xrefStms = /* @__PURE__ */ new Set(), this._cacheMap = /* @__PURE__ */ new Map(), this._pendingRefs = new Rt(), this._newPersistentRefNum = null, this._newTemporaryRefNum = null, this._persistentRefsCache = null;
        }
        getNewPersistentRef(e) {
          this._newPersistentRefNum === null && (this._newPersistentRefNum = this.entries.length || 1);
          const n = this._newPersistentRefNum++;
          return this._cacheMap.set(n, e), ae.get(n, 0);
        }
        getNewTemporaryRef() {
          if (this._newTemporaryRefNum === null && (this._newTemporaryRefNum = this.entries.length || 1, this._newPersistentRefNum)) {
            this._persistentRefsCache = /* @__PURE__ */ new Map();
            for (let e = this._newTemporaryRefNum; e < this._newPersistentRefNum; e++) this._persistentRefsCache.set(e, this._cacheMap.get(e)), this._cacheMap.delete(e);
          }
          return ae.get(this._newTemporaryRefNum++, 0);
        }
        resetNewTemporaryRef() {
          if (this._newTemporaryRefNum = null, this._persistentRefsCache) for (const [e, n] of this._persistentRefsCache) this._cacheMap.set(e, n);
          this._persistentRefsCache = null;
        }
        setStartXRef(e) {
          this.startXRefQueue = [e];
        }
        parse(e = false) {
          let n;
          e ? (F("Indexing all PDF objects"), n = this.indexObjects()) : n = this.readXRef(), n.assignXref(this), this.trailer = n;
          let s;
          try {
            s = n.get("Encrypt");
          } catch (a) {
            if (a instanceof Ft) throw a;
            F(`XRef.parse - Invalid "Encrypt" reference: "${a}".`);
          }
          if (s instanceof _) {
            const a = n.get("ID"), r = a?.length ? a[0] : "";
            s.suppressEncryption = true, this.encrypt = new yr(s, r, this.pdfManager.password);
          }
          let i;
          try {
            i = n.get("Root");
          } catch (a) {
            if (a instanceof Ft) throw a;
            F(`XRef.parse - Invalid "Root" reference: "${a}".`);
          }
          if (i instanceof _) try {
            if (i.get("Pages") instanceof _) {
              this.root = i;
              return;
            }
          } catch (a) {
            if (a instanceof Ft) throw a;
            F(`XRef.parse - Invalid "Pages" reference: "${a}".`);
          }
          throw e ? new Br("Invalid Root reference.") : new sa();
        }
        processXRefTable(e) {
          "tableState" in this || (this.tableState = { entryNum: 0, streamPos: e.lexer.stream.pos, parserBuf1: e.buf1, parserBuf2: e.buf2 });
          const n = this.readXRefTable(e);
          if (!fn(n, "trailer")) throw new Q("Invalid XRef table: could not find trailer dictionary");
          let s = e.getObj();
          if (!(s instanceof _) && s.dict && (s = s.dict), !(s instanceof _)) throw new Q("Invalid XRef table: could not parse trailer dictionary");
          return delete this.tableState, s;
        }
        readXRefTable(e) {
          const n = e.lexer.stream, s = this.tableState;
          n.pos = s.streamPos, e.buf1 = s.parserBuf1, e.buf2 = s.parserBuf2;
          let i;
          for (; ; ) {
            if (!("firstEntryNum" in s) || !("entryCount" in s)) {
              if (fn(i = e.getObj(), "trailer")) break;
              s.firstEntryNum = i, s.entryCount = e.getObj();
            }
            let a = s.firstEntryNum;
            const r = s.entryCount;
            if (!Number.isInteger(a) || !Number.isInteger(r)) throw new Q("Invalid XRef table: wrong types in subsection header");
            for (let o = s.entryNum; o < r; o++) {
              s.streamPos = n.pos, s.entryNum = o, s.parserBuf1 = e.buf1, s.parserBuf2 = e.buf2;
              const l = {};
              l.offset = e.getObj(), l.gen = e.getObj();
              const f = e.getObj();
              if (f instanceof Qt) switch (f.cmd) {
                case "f":
                  l.free = true;
                  break;
                case "n":
                  l.uncompressed = true;
                  break;
              }
              if (!Number.isInteger(l.offset) || !Number.isInteger(l.gen) || !(l.free || l.uncompressed)) throw new Q(`Invalid entry in XRef subsection: ${a}, ${r}`);
              o === 0 && l.free && a === 1 && (a = 0), this.entries[o + a] || (this.entries[o + a] = l);
            }
            s.entryNum = 0, s.streamPos = n.pos, s.parserBuf1 = e.buf1, s.parserBuf2 = e.buf2, delete s.firstEntryNum, delete s.entryCount;
          }
          if (this.entries[0] && !this.entries[0].free) throw new Q("Invalid XRef table: unexpected first object");
          return i;
        }
        processXRefStream(e) {
          if (!("streamState" in this)) {
            const { dict: n, pos: s } = e, i = n.get("W"), a = n.get("Index") || [0, n.get("Size")];
            this.streamState = { entryRanges: a, byteWidths: i, entryNum: 0, streamPos: s };
          }
          return this.readXRefStream(e), delete this.streamState, e.dict;
        }
        readXRefStream(e) {
          const n = this.streamState;
          e.pos = n.streamPos;
          const [s, i, a] = n.byteWidths, r = n.entryRanges;
          for (; r.length > 0; ) {
            const [o, l] = r;
            if (!Number.isInteger(o) || !Number.isInteger(l)) throw new Q(`Invalid XRef range fields: ${o}, ${l}`);
            if (!Number.isInteger(s) || !Number.isInteger(i) || !Number.isInteger(a)) throw new Q(`Invalid XRef entry fields length: ${o}, ${l}`);
            for (let f = n.entryNum; f < l; ++f) {
              n.entryNum = f, n.streamPos = e.pos;
              let c = 0, h = 0, u = 0;
              for (let m = 0; m < s; ++m) {
                const g = e.getByte();
                if (g === -1) throw new Q("Invalid XRef byteWidths 'type'.");
                c = c << 8 | g;
              }
              s === 0 && (c = 1);
              for (let m = 0; m < i; ++m) {
                const g = e.getByte();
                if (g === -1) throw new Q("Invalid XRef byteWidths 'offset'.");
                h = h << 8 | g;
              }
              for (let m = 0; m < a; ++m) {
                const g = e.getByte();
                if (g === -1) throw new Q("Invalid XRef byteWidths 'generation'.");
                u = u << 8 | g;
              }
              const d = {};
              switch (d.offset = h, d.gen = u, c) {
                case 0:
                  d.free = true;
                  break;
                case 1:
                  d.uncompressed = true;
                  break;
                case 2:
                  break;
                default:
                  throw new Q(`Invalid XRef entry type: ${c}`);
              }
              this.entries[o + f] || (this.entries[o + f] = d);
            }
            n.entryNum = 0, n.streamPos = e.pos, r.splice(0, 2);
          }
        }
        indexObjects() {
          function o(I, T) {
            let P = "", H = I[T];
            for (; H !== 10 && H !== 13 && H !== 60 && !(++T >= I.length); ) P += String.fromCharCode(H), H = I[T];
            return P;
          }
          p(o, "readToken");
          function l(I, T, P) {
            const H = P.length, G = I.length;
            let Z = 0;
            for (; T < G; ) {
              let z = 0;
              for (; z < H && I[T + z] === P[z]; ) ++z;
              if (z >= H) break;
              T++, Z++;
            }
            return Z;
          }
          p(l, "skipUntil");
          const f = /\b(endobj|\d+\s+\d+\s+obj|xref|trailer\s*<<)\b/g, c = /\b(startxref|\d+\s+\d+\s+obj)\b/g, h = /^(\d+)\s+(\d+)\s+obj\b/, u = new Uint8Array([116, 114, 97, 105, 108, 101, 114]), d = new Uint8Array([115, 116, 97, 114, 116, 120, 114, 101, 102]), m = new Uint8Array([47, 88, 82, 101, 102]);
          this.entries.length = 0, this._cacheMap.clear();
          const g = this.stream;
          g.pos = 0;
          const b = g.getBytes(), w = Vn(b), x = b.length;
          let y = g.start;
          const j = [], v = [];
          for (; y < x; ) {
            let I = b[y];
            if (I === 9 || I === 10 || I === 13 || I === 32) {
              ++y;
              continue;
            }
            if (I === 37) {
              do {
                if (++y, y >= x) break;
                I = b[y];
              } while (I !== 10 && I !== 13);
              continue;
            }
            const T = o(b, y);
            let P;
            if (T.startsWith("xref") && (T.length === 4 || /\s/.test(T[4]))) y += l(b, y, u), j.push(y), y += l(b, y, d);
            else if (P = h.exec(T)) {
              const H = P[1] | 0, G = P[2] | 0, Z = y + T.length;
              let z, O = false;
              if (!this.entries[H]) O = true;
              else if (this.entries[H].gen === G) try {
                new Pi({ lexer: new Ps(g.makeSubStream(Z)) }).getObj(), O = true;
              } catch (Y) {
                Y instanceof cf ? F(`indexObjects -- checking object (${T}): "${Y}".`) : O = true;
              }
              O && (this.entries[H] = { offset: y - g.start, gen: G, uncompressed: true }), f.lastIndex = Z;
              const N = f.exec(w);
              N ? (z = f.lastIndex + 1 - y, N[1] !== "endobj" && (F(`indexObjects: Found "${N[1]}" inside of another "obj", caused by missing "endobj" -- trying to recover.`), z -= N[1].length + 1)) : z = x - y;
              const oe = b.subarray(y, y + z), je = l(oe, 0, m);
              je < z && oe[je + 5] < 64 && (v.push(y - g.start), this._xrefStms.add(y - g.start)), y += z;
            } else if (T.startsWith("trailer") && (T.length === 7 || /\s/.test(T[7]))) {
              j.push(y);
              const H = y + T.length;
              let G;
              c.lastIndex = H;
              const Z = c.exec(w);
              Z ? (G = c.lastIndex + 1 - y, Z[1] !== "startxref" && (F(`indexObjects: Found "${Z[1]}" after "trailer", caused by missing "startxref" -- trying to recover.`), G -= Z[1].length + 1)) : G = x - y, y += G;
            } else y += T.length + 1;
          }
          for (const I of v) this.startXRefQueue.push(I), this.readXRef(true);
          const q = [];
          let A = false;
          for (const I of j) {
            g.pos = I;
            const T = new Pi({ lexer: new Ps(g), xref: this, allowStreams: true, recoveryMode: true }), P = T.getObj();
            if (!fn(P, "trailer")) continue;
            const H = T.getObj();
            H instanceof _ && (q.push(H), H.has("Encrypt") && (A = true));
          }
          let C, S;
          for (const I of [...q, "genFallback", ...q]) {
            if (I === "genFallback") {
              if (!S) break;
              this._generationFallback = true;
              continue;
            }
            let T = false;
            try {
              const P = I.get("Root");
              if (!(P instanceof _)) continue;
              const H = P.get("Pages");
              if (!(H instanceof _)) continue;
              const G = H.get("Count");
              Number.isInteger(G) && (T = true);
            } catch (P) {
              S = P;
              continue;
            }
            if (T && (!A || I.has("Encrypt")) && I.has("ID")) return I;
            C = I;
          }
          if (C) return C;
          if (this.topDict) return this.topDict;
          if (!q.length) for (const I in this.entries) {
            const T = this.entries[I];
            if (!T) continue;
            const P = ae.get(parseInt(I), T.gen);
            let H;
            try {
              H = this.fetch(P);
            } catch {
              continue;
            }
            if (H instanceof ze && (H = H.dict), H instanceof _ && H.has("Root")) return H;
          }
          throw new Br("Invalid PDF structure.");
        }
        readXRef(e = false) {
          const n = this.stream, s = /* @__PURE__ */ new Set();
          for (; this.startXRefQueue.length; ) {
            try {
              const i = this.startXRefQueue[0];
              if (s.has(i)) {
                F("readXRef - skipping XRef table since it was already parsed."), this.startXRefQueue.shift();
                continue;
              }
              s.add(i), n.pos = i + n.start;
              const a = new Pi({ lexer: new Ps(n), xref: this, allowStreams: true });
              let r = a.getObj(), o;
              if (fn(r, "xref")) o = this.processXRefTable(a), this.topDict || (this.topDict = o), r = o.get("XRefStm"), Number.isInteger(r) && !this._xrefStms.has(r) && (this._xrefStms.add(r), this.startXRefQueue.push(r));
              else if (Number.isInteger(r)) {
                if (!Number.isInteger(a.getObj()) || !fn(a.getObj(), "obj") || !((r = a.getObj()) instanceof ze)) throw new Q("Invalid XRef stream");
                if (o = this.processXRefStream(r), this.topDict || (this.topDict = o), !o) throw new Q("Failed to read XRef stream");
              } else throw new Q("Invalid XRef stream header");
              r = o.get("Prev"), Number.isInteger(r) ? this.startXRefQueue.push(r) : r instanceof ae && this.startXRefQueue.push(r.num);
            } catch (i) {
              if (i instanceof Ft) throw i;
              Ke("(while reading XRef): " + i);
            }
            this.startXRefQueue.shift();
          }
          if (this.topDict) return this.topDict;
          if (!e) throw new sa();
        }
        getEntry(e) {
          const n = this.entries[e];
          return n && !n.free && n.offset ? n : null;
        }
        fetchIfRef(e, n = false) {
          return e instanceof ae ? this.fetch(e, n) : e;
        }
        fetch(e, n = false) {
          if (!(e instanceof ae)) throw new Error("ref object is not a reference");
          const s = e.num, i = this._cacheMap.get(s);
          if (i !== void 0) return i instanceof _ && !i.objId && (i.objId = e.toString()), i;
          let a = this.getEntry(s);
          if (a === null) return a;
          if (this._pendingRefs.has(e)) return this._pendingRefs.remove(e), F(`Ignoring circular reference: ${e}.`), Om;
          this._pendingRefs.put(e);
          try {
            a = a.uncompressed ? this.fetchUncompressed(e, a, n) : this.fetchCompressed(e, a, n), this._pendingRefs.remove(e);
          } catch (r) {
            throw this._pendingRefs.remove(e), r;
          }
          return a instanceof _ ? a.objId = e.toString() : a instanceof ze && (a.dict.objId = e.toString()), a;
        }
        fetchUncompressed(e, n, s = false) {
          const i = e.gen;
          let a = e.num;
          if (n.gen !== i) {
            const h = `Inconsistent generation in XRef: ${e}`;
            if (this._generationFallback && n.gen < i) return F(h), this.fetchUncompressed(ae.get(a, n.gen), n, s);
            throw new Fi(h);
          }
          const r = this.stream.makeSubStream(n.offset + this.stream.start), o = new Pi({ lexer: new Ps(r), xref: this, allowStreams: true }), l = o.getObj(), f = o.getObj(), c = o.getObj();
          if (l !== a || f !== i || !(c instanceof Qt)) throw new Fi(`Bad (uncompressed) XRef entry: ${e}`);
          if (c.cmd !== "obj") {
            if (c.cmd.startsWith("obj") && (a = parseInt(c.cmd.substring(3), 10), !Number.isNaN(a))) return a;
            throw new Fi(`Bad (uncompressed) XRef entry: ${e}`);
          }
          return n = this.encrypt && !s ? o.getObj(this.encrypt.createCipherTransform(a, i)) : o.getObj(), n instanceof ze || this._cacheMap.set(a, n), n;
        }
        fetchCompressed(e, n, s = false) {
          const i = n.offset, a = this.fetch(ae.get(i, 0));
          if (!(a instanceof ze)) throw new Q("bad ObjStm stream");
          const r = a.dict.get("First"), o = a.dict.get("N");
          if (!Number.isInteger(r) || !Number.isInteger(o)) throw new Q("invalid first and n parameters for ObjStm stream");
          let l = new Pi({ lexer: new Ps(a), xref: this, allowStreams: true });
          const f = new Array(o), c = new Array(o);
          for (let d = 0; d < o; ++d) {
            const m = l.getObj();
            if (!Number.isInteger(m)) throw new Q(`invalid object number in the ObjStm stream: ${m}`);
            const g = l.getObj();
            if (!Number.isInteger(g)) throw new Q(`invalid object offset in the ObjStm stream: ${g}`);
            f[d] = m;
            const b = this.getEntry(m);
            b?.offset === i && b.gen !== d && (b.gen = d), c[d] = g;
          }
          const h = (a.start || 0) + r, u = new Array(o);
          for (let d = 0; d < o; ++d) {
            const m = d < o - 1 ? c[d + 1] - c[d] : void 0;
            if (m < 0) throw new Q("Invalid offset in the ObjStm stream.");
            l = new Pi({ lexer: new Ps(a.makeSubStream(h + c[d], m, a.dict)), xref: this, allowStreams: true });
            const g = l.getObj();
            if (u[d] = g, g instanceof ze) continue;
            const b = f[d], w = this.entries[b];
            w && w.offset === i && w.gen === d && this._cacheMap.set(b, g);
          }
          if (n = u[n.gen], n === void 0) throw new Fi(`Bad (compressed) XRef entry: ${e}`);
          return n;
        }
        async fetchIfRefAsync(e, n) {
          return e instanceof ae ? this.fetchAsync(e, n) : e;
        }
        async fetchAsync(e, n) {
          try {
            return this.fetch(e, n);
          } catch (s) {
            if (!(s instanceof Ft)) throw s;
            return await this.pdfManager.requestRange(s.begin, s.end), this.fetchAsync(e, n);
          }
        }
        getCatalogObj() {
          return this.root;
        }
      };
      L7 = [0, 0, 612, 792];
      K1 = class {
        static {
          p(this, "Page");
        }
        #e = false;
        #t = null;
        constructor({ pdfManager: e, xref: n, pageIndex: s, pageDict: i, ref: a, globalIdFactory: r, fontCache: o, builtInCMapCache: l, standardFontDataCache: f, globalColorSpaceCache: c, globalImageCache: h, systemFontCache: u, nonBlendModesSet: d, xfaFactory: m }) {
          this.pdfManager = e, this.pageIndex = s, this.pageDict = i, this.xref = n, this.ref = a, this.fontCache = o, this.builtInCMapCache = l, this.standardFontDataCache = f, this.globalColorSpaceCache = c, this.globalImageCache = h, this.systemFontCache = u, this.nonBlendModesSet = d, this.evaluatorOptions = e.evaluatorOptions, this.xfaFactory = m;
          const g = { obj: 0 };
          this._localIdFactory = class extends r {
            static createObjId() {
              return `p${s}_${++g.obj}`;
            }
            static getPageObjId() {
              return `p${a.toString()}`;
            }
          };
        }
        #n(e, n = this.pageIndex) {
          return new qr({ xref: this.xref, handler: e, pageIndex: n, idFactory: this._localIdFactory, fontCache: this.fontCache, builtInCMapCache: this.builtInCMapCache, standardFontDataCache: this.standardFontDataCache, globalColorSpaceCache: this.globalColorSpaceCache, globalImageCache: this.globalImageCache, systemFontCache: this.systemFontCache, options: this.evaluatorOptions });
        }
        createAnnotationEvaluator(e) {
          return this.#n(e);
        }
        #s(e, n = false) {
          const s = os({ dict: this.pageDict, key: e, getArray: n, stopWhenFound: false });
          return Array.isArray(s) ? s.length === 1 || !(s[0] instanceof _) ? s[0] : _.merge({ xref: this.xref, dictArray: s }) : s;
        }
        get content() {
          return this.pageDict.getArray("Contents");
        }
        get resources() {
          const e = this.#s("Resources");
          return fe(this, "resources", e instanceof _ ? e : _.empty);
        }
        getBoundingBox(e) {
          if (this.xfaData) return this.xfaData.bbox;
          const n = di(this.#s(e, true), null);
          if (n) {
            if (n[2] - n[0] > 0 && n[3] - n[1] > 0) return n;
            F(`Empty, or invalid, /${e} entry.`);
          }
          return null;
        }
        get mediaBox() {
          return fe(this, "mediaBox", this.getBoundingBox("MediaBox") || L7);
        }
        get cropBox() {
          return fe(this, "cropBox", this.getBoundingBox("CropBox") || this.mediaBox);
        }
        get userUnit() {
          const e = this.pageDict.get("UserUnit");
          return fe(this, "userUnit", typeof e == "number" && e > 0 ? e : 1);
        }
        get view() {
          const { cropBox: e, mediaBox: n } = this;
          if (e !== n && !_r(e, n)) {
            const s = pt.intersect(e, n);
            if (s && s[2] - s[0] > 0 && s[3] - s[1] > 0) return fe(this, "view", s);
            F("Empty /CropBox and /MediaBox intersection.");
          }
          return fe(this, "view", n);
        }
        get rotate() {
          let e = this.#s("Rotate") || 0;
          return e % 90 !== 0 ? e = 0 : e >= 360 ? e %= 360 : e < 0 && (e = (e % 360 + 360) % 360), fe(this, "rotate", e);
        }
        #i(e, n) {
          if (this.evaluatorOptions.ignoreErrors) {
            F(`getContentStream - ignoring sub-stream (${n}): "${e}".`);
            return;
          }
          throw e;
        }
        async getContentStream() {
          const e = await this.pdfManager.ensure(this, "content");
          if (e instanceof ze && !e.isImageStream) {
            if (e.isAsync) {
              const n = await e.asyncGetBytes();
              if (n) return new jt(n, 0, n.length, e.dict);
            }
            return e;
          }
          if (Array.isArray(e)) {
            const n = [];
            for (let s = 0, i = e.length; s < i; s++) {
              const a = e[s];
              a instanceof ze && a.isAsync && n.push(a.asyncGetBytes().then((r) => {
                r && (e[s] = new jt(r, 0, r.length, a.dict));
              }));
            }
            return n.length > 0 && await Promise.all(n), new $g(e, this.#i.bind(this));
          }
          return new xf();
        }
        get xfaData() {
          return fe(this, "xfaData", this.xfaFactory ? { bbox: this.xfaFactory.getBoundingBox(this.pageIndex) } : null);
        }
        async #a(e, n, s) {
          const i = [];
          for (const a of e) if (a.id) {
            const r = ae.fromString(a.id);
            if (!r) {
              F(`A non-linked annotation cannot be modified: ${a.id}`);
              continue;
            }
            if (a.deleted) {
              if (n.put(r, r), a.popupRef) {
                const o = ae.fromString(a.popupRef);
                o && n.put(o, o);
              }
              continue;
            }
            if (a.popup?.deleted) {
              const o = ae.fromString(a.popupRef);
              o && n.put(o, o);
            }
            s?.put(r), a.ref = r, i.push(this.xref.fetchAsync(r).then((o) => {
              o instanceof _ && (a.oldAnnotation = o.clone());
            }, () => {
              F(`Cannot fetch \`oldAnnotation\` for: ${r}.`);
            })), delete a.id;
          }
          await Promise.all(i);
        }
        async saveNewAnnotations(e, n, s, i, a) {
          if (this.xfaFactory) throw new Error("XFA: Cannot save new annotations.");
          const r = this.#n(e), o = new tn(), l = new Rt();
          await this.#a(s, o, l);
          const f = this.pageDict, c = this.annotations.filter((d) => !(d instanceof ae && o.has(d))), h = await zs.saveNewAnnotations(r, this.xref, n, s, i, a);
          for (const { ref: d } of h.annotations) d instanceof ae && !l.has(d) && c.push(d);
          const u = f.clone();
          u.set("Annots", c), a.put(this.ref, { data: u });
          for (const d of o) a.put(d, { data: null });
        }
        async save(e, n, s, i) {
          const a = this.#n(e), r = await this._parsedAnnotations, o = [];
          for (const l of r) o.push(l.save(a, n, s, i).catch(function(f) {
            return F(`save - ignoring annotation data during "${n.name}" task: "${f}".`), null;
          }));
          return Promise.all(o);
        }
        async loadResources(e) {
          await (this.#t ??= this.pdfManager.ensure(this, "resources")), await kr.load(this.resources, e, this.xref);
        }
        async #r(e, n) {
          const s = e?.get("Resources");
          return s instanceof _ && s.size ? (await kr.load(s, n, this.xref), _.merge({ xref: this.xref, dictArray: [s, this.resources], mergeSubDicts: true })) : this.resources;
        }
        async getOperatorList({ handler: e, sink: n, task: s, intent: i, cacheKey: a, pageIndex: r = this.pageIndex, annotationStorage: o = null, modifiedIds: l = null }) {
          const f = this.getContentStream(), c = this.loadResources(lf), h = this.#n(e, r), d = (this.xfaFactory ? null : gf(o))?.get(this.pageIndex);
          let m = Promise.resolve(null), g = null;
          if (d) {
            const H = this.pdfManager.ensureDoc("annotationGlobals");
            let G;
            const Z = /* @__PURE__ */ new Set();
            for (const { bitmapId: O, bitmap: N } of d) O && !N && !Z.has(O) && Z.add(O);
            const { isOffscreenCanvasSupported: z } = this.evaluatorOptions;
            if (Z.size > 0) {
              const O = d.slice();
              for (const [N, oe] of o) N.startsWith(Mh) && oe.bitmap && Z.has(oe.bitmapId) && O.push(oe);
              G = zs.generateImages(O, this.xref, z);
            } else G = zs.generateImages(d, this.xref, z);
            g = new Rt(), m = Promise.all([H, this.#a(d, g, null)]).then(([O]) => O ? zs.printNewAnnotations(O, h, s, d, G) : null);
          }
          const b = Promise.all([f, c]).then(async ([H]) => {
            const G = await this.#r(H.dict, lf), Z = new kn(i, n);
            return e.send("StartRenderPage", { transparency: h.hasBlendModes(G, this.nonBlendModesSet), pageIndex: r, cacheKey: a }), await h.getOperatorList({ stream: H, task: s, resources: G, operatorList: Z }), Z;
          });
          let [w, x, y] = await Promise.all([b, this._parsedAnnotations, m]);
          if (y) {
            x = x.filter((H) => !(H.ref && g.has(H.ref)));
            for (let H = 0, G = y.length; H < G; H++) {
              const Z = y[H];
              if (Z.refToReplace) {
                const z = x.findIndex((O) => O.ref && dl(O.ref, Z.refToReplace));
                z >= 0 && (x.splice(z, 1, Z), y.splice(H--, 1), G--);
              }
            }
            x = x.concat(y);
          }
          if (x.length === 0 || i & On.ANNOTATIONS_DISABLE) return w.flush(true), { length: w.totalLength };
          const j = !!(i & On.ANNOTATIONS_FORMS), v = !!(i & On.IS_EDITING), q = !!(i & On.ANY), A = !!(i & On.DISPLAY), C = !!(i & On.PRINT), S = [];
          for (const H of x) (q || A && H.mustBeViewed(o, j) && H.mustBeViewedWhenEditing(v, l) || C && H.mustBePrinted(o)) && S.push(H.getOperatorList(h, s, i, o).catch(function(G) {
            return F(`getOperatorList - ignoring annotation data during "${s.name}" task: "${G}".`), { opList: null, separateForm: false, separateCanvas: false };
          }));
          const I = await Promise.all(S);
          let T = false, P = false;
          for (const { opList: H, separateForm: G, separateCanvas: Z } of I) w.addOpList(H), T ||= G, P ||= Z;
          return w.flush(true, { form: T, canvas: P }), { length: w.totalLength };
        }
        async extractTextContent({ handler: e, task: n, includeMarkedContent: s, disableNormalization: i, sink: a, intersector: r = null }) {
          const o = this.getContentStream(), l = this.loadResources(ff), f = this.pdfManager.ensureCatalog("lang"), [c, , h] = await Promise.all([o, l, f]), u = await this.#r(c.dict, ff);
          return this.#n(e).getTextContent({ stream: c, task: n, resources: u, includeMarkedContent: s, disableNormalization: i, sink: a, viewBox: this.view, lang: h, intersector: r });
        }
        async getStructTree() {
          const e = await this.pdfManager.ensureCatalog("structTreeRoot");
          if (!e) return null;
          await this._parsedAnnotations;
          try {
            const n = await this.pdfManager.ensure(this, "_parseStructTree", [e]);
            return await this.pdfManager.ensure(n, "serializable");
          } catch (n) {
            return F(`getStructTree: "${n}".`), null;
          }
        }
        _parseStructTree(e) {
          const n = new Ud(e, this.pageDict);
          return n.parse(this.ref), n;
        }
        async getAnnotationsData(e, n, s) {
          const i = await this._parsedAnnotations;
          if (i.length === 0) return i;
          const a = [], r = [];
          let o;
          const l = !!(s & On.ANY), f = !!(s & On.DISPLAY), c = !!(s & On.PRINT), h = [];
          for (const u of i) {
            const d = l || f && u.viewable;
            (d || c && u.printable) && a.push(u.data), u.hasTextContent && d ? (o ??= this.#n(e), r.push(u.extractTextContent(o, n, [-1 / 0, -1 / 0, 1 / 0, 1 / 0]).catch(function(m) {
              F(`getAnnotationsData - ignoring textContent during "${n.name}" task: "${m}".`);
            }))) : u.overlaysTextContent && d && h.push(u);
          }
          if (h.length > 0) {
            const u = new x7(h);
            r.push(this.extractTextContent({ handler: e, task: n, includeMarkedContent: false, disableNormalization: false, sink: null, viewBox: this.view, lang: null, intersector: u }).then(() => {
              u.setText();
            }));
          }
          return await Promise.all(r), a;
        }
        get annotations() {
          const e = this.#s("Annots");
          return fe(this, "annotations", Array.isArray(e) ? e : []);
        }
        get _parsedAnnotations() {
          const e = this.pdfManager.ensure(this, "annotations").then(async (n) => {
            if (n.length === 0) return n;
            const [s, i] = await Promise.all([this.pdfManager.ensureDoc("annotationGlobals"), this.pdfManager.ensureDoc("fieldObjects")]);
            if (!s) return [];
            const a = i?.orphanFields, r = [];
            for (const c of n) r.push(zs.create(this.xref, c, s, this._localIdFactory, false, a, null, this.ref).catch(function(h) {
              return F(`_parsedAnnotations: "${h}".`), null;
            }));
            const o = [];
            let l, f;
            for (const c of await Promise.all(r)) if (c) {
              if (c instanceof Gs) {
                (f ||= []).push(c);
                continue;
              }
              if (c instanceof Mc) {
                (l ||= []).push(c);
                continue;
              }
              o.push(c);
            }
            return f && o.push(...f), l && o.push(...l), o;
          });
          return this.#e = true, fe(this, "_parsedAnnotations", e);
        }
        get jsActions() {
          const e = gl(this.xref, this.pageDict, Sm);
          return fe(this, "jsActions", e);
        }
        async collectAnnotationsByType(e, n, s, i, a) {
          const { pageIndex: r } = this;
          if (this.#e) {
            const l = await this._parsedAnnotations;
            for (const { data: f } of l) (!s || s.has(f.annotationType)) && (f.pageIndex = r, i.push(Promise.resolve(f)));
            return;
          }
          const o = await this.pdfManager.ensure(this, "annotations");
          for (const l of o) i.push(zs.create(this.xref, l, a, this._localIdFactory, false, null, s, this.ref).then(async (f) => {
            if (!f) return null;
            if (f.data.pageIndex = r, f.hasTextContent && f.viewable) {
              const c = this.#n(e);
              await f.extractTextContent(c, n, [-1 / 0, -1 / 0, 1 / 0, 1 / 0]);
            }
            return f.data;
          }).catch(function(f) {
            return F(`collectAnnotationsByType: "${f}".`), null;
          }));
        }
      };
      X1 = new Uint8Array([37, 80, 68, 70, 45]);
      Y1 = new Uint8Array([115, 116, 97, 114, 116, 120, 114, 101, 102]);
      N7 = new Uint8Array([101, 110, 100, 111, 98, 106]);
      p(Uc, "find");
      Q1 = class {
        static {
          p(this, "PDFDocument");
        }
        #e = /* @__PURE__ */ new Map();
        #t = null;
        constructor(e, n) {
          if (n.length <= 0) throw new Br("The PDF file is empty, i.e. its size is zero bytes.");
          this.pdfManager = e, this.stream = n, this.xref = new O7(n, e);
          const s = { font: 0 };
          this._globalIdFactory = class {
            static getDocId() {
              return `g_${e.docId}`;
            }
            static createFontId() {
              return `f${++s.font}`;
            }
            static createObjId() {
              Ye("Abstract method `createObjId` called.");
            }
            static getPageObjId() {
              Ye("Abstract method `getPageObjId` called.");
            }
          };
        }
        parse(e) {
          this.xref.parse(e), this.catalog = new Pa(this.pdfManager, this.xref);
        }
        get linearization() {
          let e = null;
          try {
            e = wb.create(this.stream);
          } catch (n) {
            if (n instanceof Ft) throw n;
            Ke(n);
          }
          return fe(this, "linearization", e);
        }
        get startXRef() {
          const e = this.stream;
          let n = 0;
          if (this.linearization) {
            if (e.reset(), Uc(e, N7)) {
              e.skip(6);
              let s = e.peekByte();
              for (; ls(s); ) e.pos++, s = e.peekByte();
              n = e.pos - e.start;
            }
          } else {
            const i = Y1.length;
            let a = false, r = e.end;
            for (; !a && r > 0; ) r -= 1024 - i, r < 0 && (r = 0), e.pos = r, a = Uc(e, Y1, 1024, true);
            if (a) {
              e.skip(9);
              let o;
              do
                o = e.getByte();
              while (ls(o));
              let l = "";
              for (; o >= 32 && o <= 57; ) l += String.fromCharCode(o), o = e.getByte();
              n = parseInt(l, 10), isNaN(n) && (n = 0);
            }
          }
          return fe(this, "startXRef", n);
        }
        checkHeader() {
          const e = this.stream;
          if (e.reset(), !Uc(e, X1)) return;
          e.moveStart(), e.skip(X1.length);
          let n = "", s;
          for (; (s = e.getByte()) > 32 && n.length < 7; ) n += String.fromCharCode(s);
          Xh.test(n) ? this.#t = n : F(`Invalid PDF header version: ${n}`);
        }
        parseStartXRef() {
          this.xref.setStartXRef(this.startXRef);
        }
        get numPages() {
          let e = 0;
          return this.catalog.hasActualNumPages ? e = this.catalog.numPages : this.xfaFactory ? e = this.xfaFactory.getNumPages() : this.linearization ? e = this.linearization.numPages : e = this.catalog.numPages, fe(this, "numPages", e);
        }
        #n(e, n = 0) {
          return Array.isArray(e) ? e.every((i) => {
            if (i = this.xref.fetchIfRef(i), !(i instanceof _)) return false;
            if (i.has("Kids")) return ++n > 10 ? (F("#hasOnlyDocumentSignatures: maximum recursion depth reached"), false) : this.#n(i.get("Kids"), n);
            const a = ot(i.get("FT"), "Sig"), r = i.get("Rect"), o = Array.isArray(r) && r.every((l) => l === 0);
            return a && o;
          }) : false;
        }
        get _xfaStreams() {
          const { acroForm: e } = this.catalog;
          if (!e) return null;
          const n = e.get("XFA"), s = new Map(["xdp:xdp", "template", "datasets", "config", "connectionSet", "localeSet", "stylesheet", "/xdp:xdp"].map((i) => [i, null]));
          if (n instanceof ze && !n.isEmpty) return s.set("xdp:xdp", n), s;
          if (!Array.isArray(n) || n.length === 0) return null;
          for (let i = 0, a = n.length; i < a; i += 2) {
            let r;
            if (i === 0 ? r = "xdp:xdp" : i === a - 2 ? r = "/xdp:xdp" : r = n[i], !s.has(r)) continue;
            const o = this.xref.fetchIfRef(n[i + 1]);
            !(o instanceof ze) || o.isEmpty || s.set(r, o);
          }
          return s;
        }
        get xfaDatasets() {
          const e = this._xfaStreams;
          if (!e) return fe(this, "xfaDatasets", null);
          for (const n of ["datasets", "xdp:xdp"]) {
            const s = e.get(n);
            if (s) try {
              const i = Na(s.getString()), a = { [n]: i };
              return fe(this, "xfaDatasets", new b7(a));
            } catch {
              F("XFA - Invalid utf-8 string.");
              break;
            }
          }
          return fe(this, "xfaDatasets", null);
        }
        get xfaData() {
          const e = this._xfaStreams;
          if (!e) return null;
          const n = /* @__PURE__ */ Object.create(null);
          for (const [s, i] of e) if (i) try {
            n[s] = Na(i.getString());
          } catch {
            return F("XFA - Invalid utf-8 string."), null;
          }
          return n;
        }
        get xfaFactory() {
          let e;
          return this.pdfManager.enableXfa && this.catalog.needsRendering && this.formInfo.hasXfa && !this.formInfo.hasAcroForm && (e = this.xfaData), fe(this, "xfaFactory", e ? new Xo(e) : null);
        }
        get isPureXfa() {
          return this.xfaFactory ? this.xfaFactory.isValid() : false;
        }
        get htmlForXfa() {
          return this.xfaFactory ? this.xfaFactory.getPages() : null;
        }
        async #s() {
          const e = await this.pdfManager.ensureCatalog("xfaImages");
          e && this.xfaFactory.setImages(e);
        }
        async #i(e, n) {
          const s = await this.pdfManager.ensureCatalog("acroForm");
          if (!s) return;
          const i = await s.getAsync("DR");
          if (!(i instanceof _)) return;
          await kr.load(i, ["Font"], this.xref);
          const a = i.get("Font");
          if (!(a instanceof _)) return;
          const r = Object.assign(/* @__PURE__ */ Object.create(null), this.pdfManager.evaluatorOptions, { useSystemFonts: false }), { builtInCMapCache: o, fontCache: l, standardFontDataCache: f } = this.catalog, c = new qr({ xref: this.xref, handler: e, pageIndex: -1, idFactory: this._globalIdFactory, fontCache: l, builtInCMapCache: o, standardFontDataCache: f, options: r }), h = new kn(), u = [], d = { get font() {
            return u.at(-1);
          }, set font(x) {
            u.push(x);
          }, clone() {
            return this;
          } }, m = p((x, y, j) => c.handleSetFont(i, [te.get(x), 1], null, h, n, d, y, j).catch((v) => (F(`loadXfaFonts: "${v}".`), null)), "parseFont"), g = [];
          for (const [x, y] of a) {
            const j = y.get("FontDescriptor");
            if (!(j instanceof _)) continue;
            let v = j.get("FontFamily");
            v = v.replaceAll(/[ ]+(\d)/g, "$1");
            const q = j.get("FontWeight"), A = -j.get("ItalicAngle"), C = { fontFamily: v, fontWeight: q, italicAngle: A };
            Vm(C) && g.push(m(x, null, C));
          }
          await Promise.all(g);
          const b = this.xfaFactory.setFonts(u);
          if (!b) return;
          r.ignoreErrors = true, g.length = 0, u.length = 0;
          const w = /* @__PURE__ */ new Set();
          for (const x of b) Yf(`${x}-Regular`) || w.add(x);
          w.size && b.push("PdfJS-Fallback");
          for (const x of b) if (!w.has(x)) for (const y of [{ name: "Regular", fontWeight: 400, italicAngle: 0 }, { name: "Bold", fontWeight: 700, italicAngle: 0 }, { name: "Italic", fontWeight: 400, italicAngle: 12 }, { name: "BoldItalic", fontWeight: 700, italicAngle: 12 }]) {
            const j = `${x}-${y.name}`;
            g.push(m(j, kd(j), { fontFamily: x, fontWeight: y.fontWeight, italicAngle: y.italicAngle }));
          }
          await Promise.all(g), this.xfaFactory.appendFonts(u, w);
        }
        loadXfaResources(e, n) {
          return Promise.all([this.#i(e, n).catch(() => {
          }), this.#s()]);
        }
        serializeXfaData(e) {
          return this.xfaFactory ? this.xfaFactory.serializeData(e) : null;
        }
        get version() {
          return this.catalog.version || this.#t;
        }
        get formInfo() {
          const e = { hasFields: false, hasAcroForm: false, hasXfa: false, hasSignatures: false }, { acroForm: n } = this.catalog;
          if (!n) return fe(this, "formInfo", e);
          try {
            const s = n.get("Fields"), i = Array.isArray(s) && s.length > 0;
            e.hasFields = i;
            const a = n.get("XFA");
            e.hasXfa = Array.isArray(a) && a.length > 0 || a instanceof ze && !a.isEmpty;
            const o = !!(n.get("SigFlags") & 1), l = o && this.#n(s);
            e.hasAcroForm = i && !l, e.hasSignatures = o;
          } catch (s) {
            if (s instanceof Ft) throw s;
            F(`Cannot fetch form information: "${s}".`);
          }
          return fe(this, "formInfo", e);
        }
        get documentInfo() {
          const { catalog: e, formInfo: n, xref: s } = this, i = { PDFFormatVersion: this.version, Language: e.lang, EncryptFilterName: s.encrypt?.filterName ?? null, IsLinearized: !!this.linearization, IsAcroFormPresent: n.hasAcroForm, IsXFAPresent: n.hasXfa, IsCollectionPresent: !!e.collection, IsSignaturesPresent: n.hasSignatures };
          let a;
          try {
            a = s.trailer.get("Info");
          } catch (r) {
            if (r instanceof Ft) throw r;
            Ke("The document information dictionary is invalid.");
          }
          if (!(a instanceof _)) return fe(this, "documentInfo", i);
          for (const [r, o] of a) {
            switch (r) {
              case "Title":
              case "Author":
              case "Subject":
              case "Keywords":
              case "Creator":
              case "Producer":
              case "CreationDate":
              case "ModDate":
                if (typeof o == "string") {
                  i[r] = Je(o);
                  continue;
                }
                break;
              case "Trapped":
                if (o instanceof te) {
                  i[r] = o;
                  continue;
                }
                break;
              default:
                let l;
                switch (typeof o) {
                  case "string":
                    l = Je(o);
                    break;
                  case "number":
                  case "boolean":
                    l = o;
                    break;
                  default:
                    o instanceof te && (l = o);
                    break;
                }
                if (l === void 0) {
                  F(`Bad value, for custom key "${r}", in Info: ${o}.`);
                  continue;
                }
                i.Custom ??= /* @__PURE__ */ Object.create(null), i.Custom[r] = l;
                continue;
            }
            F(`Bad value, for key "${r}", in Info: ${o}.`);
          }
          return fe(this, "documentInfo", i);
        }
        get fingerprints() {
          const n = "\0".repeat(16);
          function s(o) {
            return typeof o == "string" && o.length === 16 && o !== n;
          }
          p(s, "validate");
          const i = this.xref.trailer.get("ID");
          let a, r;
          return Array.isArray(i) && s(i[0]) ? (a = Bn(i[0]), i[1] !== i[0] && s(i[1]) && (r = Bn(i[1]))) : a = Vi(this.stream.getByteRange(0, 1024), 0, 1024), fe(this, "fingerprints", [a.toHex(), r?.toHex() ?? null]);
        }
        async #a(e) {
          const { catalog: n, linearization: s, xref: i } = this, a = ae.get(s.objectNumberFirst, 0);
          try {
            const r = await i.fetchAsync(a);
            if (r instanceof _) {
              let o = r.getRaw("Type");
              if (o instanceof ae && (o = await i.fetchAsync(o)), ot(o, "Page") || !r.has("Type") && !r.has("Kids") && r.has("Contents")) return n.pageKidsCountCache.has(a) || n.pageKidsCountCache.put(a, 1), n.pageIndexCache.has(a) || n.pageIndexCache.put(a, 0), [r, a];
            }
            throw new Q("The Linearization dictionary doesn't point to a valid Page dictionary.");
          } catch (r) {
            return F(`_getLinearizationPage: "${r.message}".`), n.getPageDict(e);
          }
        }
        getPage(e) {
          const n = this.#e.get(e);
          if (n) return n;
          const { catalog: s, linearization: i, xfaFactory: a } = this;
          let r;
          return a ? r = Promise.resolve([_.empty, null]) : i?.pageFirst === e ? r = this.#a(e) : r = s.getPageDict(e), r = r.then(([o, l]) => new K1({ pdfManager: this.pdfManager, xref: this.xref, pageIndex: e, pageDict: o, ref: l, globalIdFactory: this._globalIdFactory, fontCache: s.fontCache, builtInCMapCache: s.builtInCMapCache, standardFontDataCache: s.standardFontDataCache, globalColorSpaceCache: s.globalColorSpaceCache, globalImageCache: s.globalImageCache, systemFontCache: s.systemFontCache, nonBlendModesSet: s.nonBlendModesSet, xfaFactory: a })), this.#e.set(e, r), r;
        }
        async checkFirstPage(e = false) {
          if (!e) try {
            await this.getPage(0);
          } catch (n) {
            if (n instanceof Fi) throw this.#e.delete(0), await this.cleanup(), new sa();
          }
        }
        async checkLastPage(e = false) {
          const { catalog: n, pdfManager: s } = this;
          n.setActualNumPages();
          let i;
          try {
            if (await Promise.all([s.ensureDoc("xfaFactory"), s.ensureDoc("linearization"), s.ensureCatalog("numPages")]), this.xfaFactory) return;
            if (this.linearization ? i = this.linearization.numPages : i = n.numPages, Number.isInteger(i)) {
              if (i <= 1) return;
            } else throw new Q("Page count is not an integer.");
            await this.getPage(i - 1);
          } catch (a) {
            if (this.#e.delete(i - 1), await this.cleanup(), a instanceof Fi && !e) throw new sa();
            F(`checkLastPage - invalid /Pages tree /Count: ${i}.`);
            let r;
            try {
              r = await n.getAllPageDicts(e);
            } catch (o) {
              if (o instanceof Fi && !e) throw new sa();
              n.setActualNumPages(1);
              return;
            }
            for (const [o, [l, f]] of r) {
              let c;
              l instanceof Error ? (c = Promise.reject(l), c.catch(() => {
              })) : c = Promise.resolve(new K1({ pdfManager: s, xref: this.xref, pageIndex: o, pageDict: l, ref: f, globalIdFactory: this._globalIdFactory, fontCache: n.fontCache, builtInCMapCache: n.builtInCMapCache, standardFontDataCache: n.standardFontDataCache, globalColorSpaceCache: this.globalColorSpaceCache, globalImageCache: n.globalImageCache, systemFontCache: n.systemFontCache, nonBlendModesSet: n.nonBlendModesSet, xfaFactory: null })), this.#e.set(o, c);
            }
            n.setActualNumPages(r.size);
          }
        }
        async fontFallback(e, n) {
          const { catalog: s, pdfManager: i } = this;
          for (const a of await Promise.all(s.fontCache)) if (a.loadedName === e) {
            a.fallback(n, i.evaluatorOptions);
            return;
          }
        }
        async cleanup(e = false) {
          return this.catalog ? this.catalog.cleanup(e) : ic();
        }
        async #r(e, n, s, i, a, r, o) {
          const { xref: l } = this;
          if (!(s instanceof ae) || r.has(s)) return;
          r.put(s);
          const f = await l.fetchAsync(s);
          if (!(f instanceof _)) return;
          let c = await f.getAsync("Subtype");
          if (c = c instanceof te ? c.name : null, c === "Link") return;
          if (f.has("T")) {
            const u = Je(await f.getAsync("T"));
            e = e === "" ? u : `${e}.${u}`;
          } else {
            let u = f;
            for (; ; ) {
              if (u = u.getRaw("Parent") || n, u instanceof ae) {
                if (r.has(u)) break;
                u = await l.fetchAsync(u);
              }
              if (!(u instanceof _)) break;
              if (u.has("T")) {
                const d = Je(await u.getAsync("T"));
                e = e === "" ? d : `${e}.${d}`;
                break;
              }
            }
          }
          if (n && !f.has("Parent") && ot(f.get("Subtype"), "Widget") && o.put(s, n), i.getOrInsertComputed(e, hl).push(zs.create(l, s, a, null, true, o, null, null).then((u) => u?.getFieldObject()).catch(function(u) {
            return F(`#collectFieldObjects: "${u}".`), null;
          })), !f.has("Kids")) return;
          const h = await f.getAsync("Kids");
          if (Array.isArray(h)) for (const u of h) await this.#r(e, s, u, i, a, r, o);
        }
        get fieldObjects() {
          const e = this.pdfManager.ensureDoc("formInfo").then(async (n) => {
            if (!n.hasFields) return null;
            const s = await this.annotationGlobals;
            if (!s) return null;
            const { acroForm: i } = s, a = new Rt(), r = /* @__PURE__ */ Object.create(null), o = /* @__PURE__ */ new Map(), l = new tn();
            for (const c of i.get("Fields")) await this.#r("", null, c, o, s, a, l);
            const f = [];
            for (const [c, h] of o) f.push(Promise.all(h).then((u) => {
              u = u.filter((d) => !!d), u.length > 0 && (r[c] = u);
            }));
            return await Promise.all(f), { allFields: sf(r) > 0 ? r : null, orphanFields: l };
          });
          return fe(this, "fieldObjects", e);
        }
        get hasJSActions() {
          const e = this.pdfManager.ensureDoc("_parseHasJSActions");
          return fe(this, "hasJSActions", e);
        }
        async _parseHasJSActions() {
          const [e, n] = await Promise.all([this.pdfManager.ensureCatalog("jsActions"), this.pdfManager.ensureDoc("fieldObjects")]);
          return e ? true : n?.allFields ? Object.values(n.allFields).some((s) => s.some((i) => i.actions !== null)) : false;
        }
        get calculationOrderIds() {
          const e = this.catalog.acroForm?.get("CO");
          if (!Array.isArray(e) || e.length === 0) return fe(this, "calculationOrderIds", null);
          const n = [];
          for (const s of e) s instanceof ae && n.push(s.toString());
          return fe(this, "calculationOrderIds", n.length ? n : null);
        }
        get annotationGlobals() {
          return fe(this, "annotationGlobals", zs.createGlobals(this.pdfManager));
        }
        async toJSObject(e, n = true) {
          throw new Error("Not implemented: toJSObject");
        }
      };
      p(z7, "parseDocBaseUrl");
      J1 = class {
        static {
          p(this, "BasePdfManager");
        }
        constructor({ docBaseUrl: e, docId: n, enableXfa: s, evaluatorOptions: i, handler: a, password: r }) {
          if (this._docBaseUrl = z7(e), this._docId = n, this._password = r, this.enableXfa = s, i.isOffscreenCanvasSupported &&= qn.isOffscreenCanvasSupported, i.isImageDecoderSupported &&= qn.isImageDecoderSupported, i.enableWebGPU) {
            let l = false;
            i.prepareWebGPU = () => {
              l || (l = true, a.send("PrepareWebGPU", null));
            };
          }
          delete i.enableWebGPU, this.evaluatorOptions = Object.freeze(i), ns.setOptions(i), wr.setOptions(i), kn.setOptions(i);
          const o = { ...i, handler: a };
          Bl.setOptions(o), Ci.setOptions(o), Uo.setOptions(o), jl.setOptions(o);
        }
        get docId() {
          return this._docId;
        }
        get password() {
          return this._password;
        }
        get docBaseUrl() {
          return this._docBaseUrl;
        }
        ensureDoc(e, n) {
          return this.ensure(this.pdfDocument, e, n);
        }
        ensureXRef(e, n) {
          return this.ensure(this.pdfDocument.xref, e, n);
        }
        ensureCatalog(e, n) {
          return this.ensure(this.pdfDocument.catalog, e, n);
        }
        getPage(e) {
          return this.pdfDocument.getPage(e);
        }
        fontFallback(e, n) {
          return this.pdfDocument.fontFallback(e, n);
        }
        cleanup(e = false) {
          return this.pdfDocument.cleanup(e);
        }
        async ensure(e, n, s) {
          Ye("Abstract method `ensure` called");
        }
        requestRange(e, n) {
          Ye("Abstract method `requestRange` called");
        }
        requestLoadedStream(e = false) {
          Ye("Abstract method `requestLoadedStream` called");
        }
        sendProgressiveData(e) {
          Ye("Abstract method `sendProgressiveData` called");
        }
        updatePassword(e) {
          this._password = e;
        }
        terminate(e) {
          Ye("Abstract method `terminate` called");
        }
      };
      Gc = class extends J1 {
        static {
          p(this, "LocalPdfManager");
        }
        constructor(e) {
          super(e);
          const n = new jt(e.source);
          this.pdfDocument = new Q1(this, n), this._loadedStreamPromise = Promise.resolve(n);
        }
        async ensure(e, n, s) {
          const i = e[n];
          return typeof i == "function" ? i.apply(e, s) : i;
        }
        requestRange(e, n) {
          return Promise.resolve();
        }
        requestLoadedStream(e = false) {
          return this._loadedStreamPromise;
        }
        terminate(e) {
        }
      };
      U7 = class extends J1 {
        static {
          p(this, "NetworkPdfManager");
        }
        constructor(e) {
          super(e), this.streamManager = new yg(e.source, { msgHandler: e.handler, length: e.length, disableAutoFetch: e.disableAutoFetch, rangeChunkSize: e.rangeChunkSize }), this.pdfDocument = new Q1(this, this.streamManager.getStream());
        }
        async ensure(e, n, s) {
          try {
            const i = e[n];
            return typeof i == "function" ? i.apply(e, s) : i;
          } catch (i) {
            if (!(i instanceof Ft)) throw i;
            return await this.requestRange(i.begin, i.end), this.ensure(e, n, s);
          }
        }
        requestRange(e, n) {
          return this.streamManager.requestRange(e, n);
        }
        requestLoadedStream(e = false) {
          return this.streamManager.requestAllChunks(e);
        }
        sendProgressiveData(e) {
          this.streamManager.onReceiveData({ chunk: e });
        }
        terminate(e) {
          this.streamManager.abort(e);
        }
      };
      c0 = { DATA: 1, ERROR: 2 };
      an = { CANCEL: 1, CANCEL_COMPLETE: 2, CLOSE: 3, ENQUEUE: 4, ERROR: 5, PULL: 6, PULL_COMPLETE: 7, START_COMPLETE: 8 };
      p(Z1, "onFn$1");
      p(ds, "wrapReason$1");
      ep = class {
        static {
          p(this, "MessageHandler");
        }
        #e = new AbortController();
        constructor(e, n, s) {
          this.sourceName = e, this.targetName = n, this.comObj = s, this.callbackId = 1, this.streamId = 1, this.streamSinks = /* @__PURE__ */ Object.create(null), this.streamControllers = /* @__PURE__ */ Object.create(null), this.callbackCapabilities = /* @__PURE__ */ Object.create(null), this.actionHandler = /* @__PURE__ */ Object.create(null), s.addEventListener("message", this.#t.bind(this), { signal: this.#e.signal });
        }
        #t({ data: e }) {
          if (e.targetName !== this.sourceName) return;
          if (e.stream) {
            this.#s(e);
            return;
          }
          if (e.callback) {
            const s = e.callbackId, i = this.callbackCapabilities[s];
            if (!i) throw new Error(`Cannot resolve callback ${s}`);
            if (delete this.callbackCapabilities[s], e.callback === c0.DATA) i.resolve(e.data);
            else if (e.callback === c0.ERROR) i.reject(ds(e.reason));
            else throw new Error("Unexpected callback case");
            return;
          }
          const n = this.actionHandler[e.action];
          if (!n) throw new Error(`Unknown action from worker: ${e.action}`);
          if (e.callbackId) {
            const s = this.sourceName, i = e.sourceName, a = this.comObj;
            Promise.try(n, e.data).then(function(r) {
              a.postMessage({ sourceName: s, targetName: i, callback: c0.DATA, callbackId: e.callbackId, data: r });
            }, function(r) {
              a.postMessage({ sourceName: s, targetName: i, callback: c0.ERROR, callbackId: e.callbackId, reason: ds(r) });
            });
            return;
          }
          if (e.streamId) {
            this.#n(e);
            return;
          }
          n(e.data);
        }
        on(e, n) {
          const s = this.actionHandler;
          if (s[e]) throw new Error(`There is already an actionName called "${e}"`);
          s[e] = n;
        }
        send(e, n, s) {
          this.comObj.postMessage({ sourceName: this.sourceName, targetName: this.targetName, action: e, data: n }, s);
        }
        sendWithPromise(e, n, s) {
          const i = this.callbackId++, a = Promise.withResolvers();
          this.callbackCapabilities[i] = a;
          try {
            this.comObj.postMessage({ sourceName: this.sourceName, targetName: this.targetName, action: e, callbackId: i, data: n }, s);
          } catch (r) {
            a.reject(r);
          }
          return a.promise;
        }
        sendWithStream(e, n, s, i) {
          const a = this.streamId++, r = this.sourceName, o = this.targetName, l = this.comObj;
          return new ReadableStream({ start: p((f) => {
            const c = Promise.withResolvers();
            return this.streamControllers[a] = { controller: f, startCall: c, pullCall: null, cancelCall: null, isClosed: false }, l.postMessage({ sourceName: r, targetName: o, action: e, streamId: a, data: n, desiredSize: f.desiredSize }, i), c.promise;
          }, "start"), pull: p((f) => {
            const c = Promise.withResolvers();
            return this.streamControllers[a].pullCall = c, l.postMessage({ sourceName: r, targetName: o, stream: an.PULL, streamId: a, desiredSize: f.desiredSize }), c.promise;
          }, "pull"), cancel: p((f) => {
            Bt(f instanceof Error, "cancel must have a valid reason");
            const c = Promise.withResolvers();
            return this.streamControllers[a].cancelCall = c, this.streamControllers[a].isClosed = true, l.postMessage({ sourceName: r, targetName: o, stream: an.CANCEL, streamId: a, reason: ds(f) }), c.promise;
          }, "cancel") }, s);
        }
        #n(e) {
          const n = e.streamId, s = this.sourceName, i = e.sourceName, a = this.comObj, r = this, o = this.actionHandler[e.action], l = { enqueue(f, c = 1, h) {
            if (this.isCancelled) return;
            const u = this.desiredSize;
            this.desiredSize -= c, u > 0 && this.desiredSize <= 0 && (this.sinkCapability = Promise.withResolvers(), this.ready = this.sinkCapability.promise), a.postMessage({ sourceName: s, targetName: i, stream: an.ENQUEUE, streamId: n, chunk: f }, h);
          }, close() {
            this.isCancelled || (this.isCancelled = true, a.postMessage({ sourceName: s, targetName: i, stream: an.CLOSE, streamId: n }), delete r.streamSinks[n]);
          }, error(f) {
            Bt(f instanceof Error, "error must have a valid reason"), !this.isCancelled && (this.isCancelled = true, a.postMessage({ sourceName: s, targetName: i, stream: an.ERROR, streamId: n, reason: ds(f) }));
          }, sinkCapability: Promise.withResolvers(), onPull: null, onCancel: null, isCancelled: false, desiredSize: e.desiredSize, ready: null };
          l.sinkCapability.resolve(), l.ready = l.sinkCapability.promise, this.streamSinks[n] = l, Promise.try(o, e.data, l).then(function() {
            a.postMessage({ sourceName: s, targetName: i, stream: an.START_COMPLETE, streamId: n, success: true });
          }, function(f) {
            a.postMessage({ sourceName: s, targetName: i, stream: an.START_COMPLETE, streamId: n, reason: ds(f) });
          });
        }
        #s(e) {
          const n = e.streamId, s = this.sourceName, i = e.sourceName, a = this.comObj, r = this.streamControllers[n], o = this.streamSinks[n];
          switch (e.stream) {
            case an.START_COMPLETE:
              e.success ? r.startCall.resolve() : r.startCall.reject(ds(e.reason));
              break;
            case an.PULL_COMPLETE:
              e.success ? r.pullCall.resolve() : r.pullCall.reject(ds(e.reason));
              break;
            case an.PULL:
              if (!o) {
                a.postMessage({ sourceName: s, targetName: i, stream: an.PULL_COMPLETE, streamId: n, success: true });
                break;
              }
              o.desiredSize <= 0 && e.desiredSize > 0 && o.sinkCapability.resolve(), o.desiredSize = e.desiredSize, Promise.try(o.onPull || Z1).then(function() {
                a.postMessage({ sourceName: s, targetName: i, stream: an.PULL_COMPLETE, streamId: n, success: true });
              }, function(f) {
                a.postMessage({ sourceName: s, targetName: i, stream: an.PULL_COMPLETE, streamId: n, reason: ds(f) });
              });
              break;
            case an.ENQUEUE:
              if (Bt(r, "enqueue should have stream controller"), r.isClosed) break;
              r.controller.enqueue(e.chunk);
              break;
            case an.CLOSE:
              if (Bt(r, "close should have stream controller"), r.isClosed) break;
              r.isClosed = true, r.controller.close(), this.#i(r, n);
              break;
            case an.ERROR:
              Bt(r, "error should have stream controller"), r.controller.error(ds(e.reason)), this.#i(r, n);
              break;
            case an.CANCEL_COMPLETE:
              e.success ? r.cancelCall.resolve() : r.cancelCall.reject(ds(e.reason)), this.#i(r, n);
              break;
            case an.CANCEL:
              if (!o) break;
              const l = ds(e.reason);
              Promise.try(o.onCancel || Z1, l).then(function() {
                a.postMessage({ sourceName: s, targetName: i, stream: an.CANCEL_COMPLETE, streamId: n, success: true });
              }, function(f) {
                a.postMessage({ sourceName: s, targetName: i, stream: an.CANCEL_COMPLETE, streamId: n, reason: ds(f) });
              }), o.sinkCapability.reject(l), o.isCancelled = true, delete this.streamSinks[n];
              break;
            default:
              throw new Error("Unexpected stream case");
          }
        }
        async #i(e, n) {
          await Promise.allSettled([e.startCall?.promise, e.pullCall?.promise, e.cancelCall?.promise]), delete this.streamControllers[n];
        }
        destroy() {
          this.#e?.abort(), this.#e = null;
        }
      };
      p(tp, "writeObject");
      p(Wc, "writeDict");
      p(G7, "writeStream");
      p(W7, "writeArray");
      p(h0, "writeValue");
      p($c, "writeInt");
      p(np, "writeString");
      p($7, "computeMD5");
      p(V7, "writeXFADataForAcroform");
      p(K7, "updateAcroform");
      p(X7, "updateXFA");
      p(Y7, "getXRefTable");
      p(sp, "getIndexes");
      p(Q7, "getXRefStreamTable");
      p(ip, "computeIDs");
      p(J7, "getTrailerDict");
      p(Z7, "writeChanges");
      p(ap, "incrementalUpdate");
      e6 = 16;
      t6 = 64;
      n6 = class {
        static {
          p(this, "PageData");
        }
        constructor(e, n) {
          this.page = e, this.documentData = n, this.annotations = null, this.pointingNamedDestinations = null, n.pagesMap.put(e.ref, this);
        }
      };
      s6 = class {
        static {
          p(this, "DocumentData");
        }
        constructor(e) {
          this.document = e, this.destinations = null, this.pageLabels = null, this.pagesMap = new tn(), this.oldRefMapping = new tn(), this.dedupNamedDestinations = /* @__PURE__ */ new Map(), this.usedNamedDestinations = /* @__PURE__ */ new Set(), this.postponedRefCopies = new tn(), this.usedStructParents = /* @__PURE__ */ new Set(), this.oldStructParentMapping = /* @__PURE__ */ new Map(), this.structTreeRoot = null, this.parentTree = null, this.idTree = null, this.roleMap = null, this.classMap = null, this.namespaces = null, this.structTreeAF = null, this.structTreePronunciationLexicon = [], this.acroForm = null, this.acroFormDefaultAppearance = "", this.acroFormDefaultResources = null, this.acroFormQ = 0, this.hasSignatureAnnotations = false, this.fieldToParent = new tn(), this.outline = null;
        }
      };
      i6 = class {
        static {
          p(this, "XRefWrapper");
        }
        constructor(e, n) {
          this.entries = e, this._getNewRef = n;
        }
        fetch(e) {
          return e instanceof ae ? this.entries[e.num] : e;
        }
        fetchIfRefAsync(e) {
          return Promise.resolve(this.fetch(e));
        }
        fetchIfRef(e) {
          return this.fetch(e);
        }
        fetchAsync(e) {
          return Promise.resolve(this.fetch(e));
        }
        getNewTemporaryRef() {
          return this._getNewRef();
        }
      };
      a6 = class {
        static {
          p(this, "PDFEditor");
        }
        hasSingleFile = false;
        #e = null;
        currentDocument = null;
        oldPages = [];
        newPages = [];
        xref = [null];
        xrefWrapper = new i6(this.xref, () => this.newRef);
        newRefCount = 1;
        namesDict = null;
        version = "1.7";
        pageLabels = null;
        namedDestinations = /* @__PURE__ */ new Map();
        parentTree = /* @__PURE__ */ new Map();
        structTreeKids = [];
        idTree = /* @__PURE__ */ new Map();
        classMap = new _();
        roleMap = new _();
        namespaces = /* @__PURE__ */ new Map();
        structTreeAF = [];
        structTreePronunciationLexicon = [];
        fields = [];
        acroFormDefaultAppearance = "";
        acroFormDefaultResources = null;
        acroFormNeedAppearances = false;
        acroFormSigFlags = 0;
        acroFormCalculationOrder = null;
        acroFormQ = 0;
        outlineItems = null;
        constructor({ useObjectStreams: e = true, title: n = "", author: s = "" } = {}) {
          [this.rootRef, this.rootDict] = this.newDict, [this.infoRef, this.infoDict] = this.newDict, [this.pagesRef, this.pagesDict] = this.newDict, this.useObjectStreams = e, this.objStreamRefs = e ? /* @__PURE__ */ new Set() : null, this.title = n, this.author = s;
        }
        get newRef() {
          return ae.get(this.newRefCount++, 0);
        }
        get newDict() {
          const e = this.newRef, n = this.xref[e.num] = new _();
          return [e, n];
        }
        async #t(e, n) {
          const s = this.newRef;
          return this.xref[s.num] = await this.#n(e, true, n), s;
        }
        cloneDict(e) {
          const n = e.clone();
          return n.xref = this.xrefWrapper, n;
        }
        async #n(e, n, s) {
          if (e instanceof ae) {
            const { currentDocument: { oldRefMapping: o } } = this;
            let l = o.get(e);
            if (l) return l;
            const f = e;
            return e = await s.fetchAsync(f), typeof e == "number" ? e : (l = this.newRef, o.put(f, l), this.xref[l.num] = await this.#n(e, true, s), l);
          }
          const i = [], { currentDocument: { postponedRefCopies: a } } = this;
          if (Array.isArray(e)) {
            n && (e = e.slice());
            for (let o = 0, l = e.length; o < l; o++) {
              const f = e[o] instanceof ae && a.get(e[o]);
              if (f) {
                f.push((c) => e[o] = c);
                continue;
              }
              i.push(this.#n(e[o], true, s).then((c) => e[o] = c));
            }
            return await Promise.all(i), e;
          }
          let r;
          if (e instanceof ze ? ({ dict: r } = e = e.getOriginalStream().clone(), r.xref = this.xrefWrapper) : e instanceof _ && (n && (e = e.clone(), e.xref = this.xrefWrapper), r = e), r) {
            for (const [o, l] of r.getRawEntries()) {
              const f = l instanceof ae && a.get(l);
              if (f) {
                f.push((c) => r.set(o, c));
                continue;
              }
              i.push(this.#n(l, true, s).then((c) => r.set(o, c)));
            }
            await Promise.all(i);
          }
          return e;
        }
        async #s(e, n, s, i, a, r, o, l = new Rt()) {
          const { currentDocument: { pagesMap: f, oldRefMapping: c } } = this, h = n.getRaw("Pg");
          if (h instanceof ae && !f.has(h)) return null;
          let u;
          const d = u = n.getRaw("K");
          if (d instanceof ae) {
            if (l.has(d)) return null;
            u = await s.fetchAsync(d), Array.isArray(u) || (u = [d]);
          }
          u = Array.isArray(u) ? u : [u];
          const m = [], g = [];
          for (let q of u) {
            const A = q instanceof ae ? q : null;
            if (A) {
              if (l.has(A)) continue;
              l.put(A), q = await s.fetchAsync(A);
            }
            if (typeof q == "number") {
              m.push(q);
              continue;
            }
            if (!(q instanceof _)) continue;
            const C = q.getRaw("Pg");
            if (C instanceof ae && !f.has(C)) continue;
            const S = q.get("Type");
            if (!S || ot(S, "StructElem")) {
              let I = false;
              if (A && i.has(A)) {
                if (!ot(q.get("S"), "Link")) continue;
                I = true;
              }
              const T = await this.#s(A, q, s, i, a, r, o, l);
              T && (g.push(m.length), m.push(T), A && c.put(A, T), I && this.xref[T.num].setIfName("S", "Span"));
              continue;
            }
            if (ot(S, "OBJR")) {
              if (!A) continue;
              const I = c.get(A);
              if (!I) continue;
              const P = this.xref[I.num].getRaw("Obj");
              if (P instanceof ae) {
                const H = this.xref[P.num];
                if (H instanceof _ && !H.has("StructParent") && e) {
                  const G = this.parentTree.size;
                  this.parentTree.set(G, [c, e]), H.set("StructParent", G);
                }
              }
              m.push(I);
              continue;
            }
            if (ot(S, "MCR")) {
              const I = await this.#n(A || q, true, s);
              m.push(I);
              continue;
            }
            if (A) {
              const I = await this.#n(A, true, s);
              m.push(I);
            }
          }
          if (u.length !== 0 && m.length === 0) return null;
          const b = this.newRef, w = this.xref[b.num] = this.cloneDict(n);
          w.delete("ID"), w.delete("C"), w.delete("K"), w.delete("P"), w.delete("S"), await this.#n(w, false, s);
          const x = n.get("C");
          if (x instanceof te) {
            const q = r.get(x.name);
            q ? w.set("C", te.get(q)) : w.set("C", x);
          } else if (Array.isArray(x)) {
            const q = [];
            for (const A of x) if (A instanceof te) {
              const C = r.get(A.name);
              C ? q.push(te.get(C)) : q.push(A);
            }
            w.set("C", q);
          }
          const y = n.get("S");
          if (y instanceof te) {
            const q = o.get(y.name);
            q ? w.set("S", te.get(q)) : w.set("S", y);
          }
          const j = n.get("ID");
          if (typeof j == "string") {
            const q = Je(j, false), A = a.get(q);
            A ? w.set("ID", An(A)) : w.set("ID", j);
          }
          let v = w.get("A");
          if (v) {
            Array.isArray(v) || (v = [v]);
            for (let q of v) if (q = this.xrefWrapper.fetch(q), ot(q.get("O"), "Table") && q.has("Headers")) {
              const A = this.xrefWrapper.fetch(q.getRaw("Headers"));
              if (Array.isArray(A)) for (let C = 0, S = A.length; C < S; C++) {
                const I = a.get(Je(A[C], false));
                I && (A[C] = I);
              }
            }
          }
          for (const q of g) {
            const A = m[q];
            this.xref[A.num].set("P", b);
          }
          return m.length === 1 ? w.set("K", m[0]) : m.length > 1 && w.set("K", m), b;
        }
        async extractPages(e, n, s, i) {
          const a = [];
          let r = 0;
          this.hasSingleFile = e.length === 1;
          const o = [];
          n && (this.#e = { handler: s, task: i, newAnnotationsByPage: gf(n), imagesPromises: zs.generateImages(n.values(), this.xrefWrapper, true) });
          for (const { document: l, includePages: f, excludePages: c, pageIndices: h } of e) {
            if (!l) continue;
            h && (r = -1);
            const u = new s6(l);
            o.push(u), a.push(this.#i(u));
            let d, m, g, b;
            for (const x of f || []) Array.isArray(x) ? (m ||= []).push(x) : (d ||= /* @__PURE__ */ new Set()).add(x);
            for (const x of c || []) Array.isArray(x) ? (b ||= []).push(x) : (g ||= /* @__PURE__ */ new Set()).add(x);
            let w = 0;
            for (let x = 0, y = l.numPages; x < y; x++) {
              if (g?.has(x)) continue;
              if (b) {
                let q = false;
                for (const [A, C] of b) if (x >= A && x <= C) {
                  q = true;
                  break;
                }
                if (q) continue;
              }
              let j = false;
              if (d && (j = d.has(x)), !j && m) {
                for (const [q, A] of m) if (x >= q && x <= A) {
                  j = true;
                  break;
                }
              }
              if (!j && !d && !m && (j = true), !j) continue;
              let v;
              if (h && (v = h[w++]), v === void 0) if (r !== -1) v = r++;
              else for (v = 0; this.oldPages[v] !== void 0; v++) ;
              this.oldPages[v] = null, a.push(l.getPage(x).then((q) => {
                this.oldPages[v] = new n6(q, u);
              }));
            }
          }
          await Promise.all(a), a.length = 0, this.#u(o), this.#g(o), this.#E();
          for (const l of this.oldPages) a.push(this.#a(l));
          await Promise.all(a), this.#c(), this.#r(o);
          for (let l = 0, f = this.oldPages.length; l < f; l++) this.newPages[l] = await this.#I(l, null);
          return this.#o(o), await this.#f(o), await this.#x(o), this.#p(o), this.writePDF();
        }
        async #i(e) {
          const { document: { pdfManager: n, xref: s } } = e;
          await Promise.all([n.ensureCatalog("destinations").then((a) => e.destinations = a), n.ensureCatalog("rawPageLabels").then((a) => e.pageLabels = a), n.ensureCatalog("structTreeRoot").then((a) => e.structTreeRoot = a), n.ensureCatalog("acroForm").then((a) => e.acroForm = a), n.ensureCatalog("documentOutlineForEditor").then((a) => e.outline = a)]);
          const i = e.structTreeRoot;
          if (i) {
            const a = i.dict, r = a.get("ParentTree");
            if (r) {
              const f = new oo(r, s);
              e.parentTree = f.getAll(true);
            }
            const o = a.get("IDTree");
            if (o) {
              const f = new ga(o, s);
              e.idTree = f.getAll(true);
            }
            e.roleMap = a.get("RoleMap") || null, e.classMap = a.get("ClassMap") || null;
            let l = a.get("Namespaces") || null;
            l && !Array.isArray(l) && (l = [l]), e.namespaces = l, e.structTreeAF = a.get("AF") || null, e.structTreePronunciationLexicon = a.get("PronunciationLexicon") || null;
          }
        }
        async #a(e) {
          const { page: { xref: n, annotations: s }, documentData: { pagesMap: i, destinations: a, usedNamedDestinations: r, fieldToParent: o } } = e;
          if (!s) return;
          const l = [];
          let f = [], c = 0, { hasSignatureAnnotations: h } = e.documentData;
          for (const u of s) {
            const d = c++;
            l.push(n.fetchIfRefAsync(u).then(async (m) => {
              if (!ot(m.get("Subtype"), "Link")) {
                if (ot(m.get("Subtype"), "Widget")) {
                  h ||= ot(m.get("FT"), "Sig");
                  const w = m.get("Parent") || null;
                  m.delete("Parent"), o.put(u, w);
                }
                f[d] = u;
                return;
              }
              const g = m.get("A"), b = g instanceof _ ? g.get("D") : m.get("Dest");
              if (!b || Array.isArray(b) && (!(b[0] instanceof ae) || i.has(b[0]))) f[d] = u;
              else if (typeof b == "string") {
                const w = Je(b, true);
                a.has(w) && (f[d] = u, r.add(w));
              }
            }));
          }
          await Promise.all(l), f = f.filter((u) => !!u), e.annotations = f.length > 0 ? f : null, e.documentData.hasSignatureAnnotations ||= h;
        }
        #r(e) {
          for (const { postponedRefCopies: n, pagesMap: s } of e) for (const i of s.keys()) n.put(i, []);
        }
        #o(e) {
          for (const { postponedRefCopies: n, oldRefMapping: s } of e) {
            for (const [i, a] of n.items()) {
              const r = s.get(i);
              for (const o of a) o(r);
            }
            n.clear();
          }
        }
        #l(e, n, s = new Rt()) {
          if (e instanceof ae) {
            s.has(e) || (s.put(e), this.#l(this.xref[e.num], n, s));
            return;
          }
          if (Array.isArray(e)) {
            for (const a of e) this.#l(a, n, s);
            return;
          }
          let i;
          if (e instanceof ze ? { dict: i } = e : e instanceof _ && (i = e), i) {
            n(i);
            for (const a of i.getRawValues()) this.#l(a, n, s);
          }
        }
        async #f(e) {
          let n = 0;
          const { parentTree: s } = this;
          for (let h = 0, u = this.newPages.length; h < u; h++) {
            const { documentData: { parentTree: d, oldRefMapping: m, oldStructParentMapping: g, usedStructParents: b, document: { xref: w } } } = this.oldPages[h];
            if (!d) continue;
            const x = this.newPages[h], y = this.xref[x.num], j = new Rt();
            j.put(x), this.#l(y, (v) => {
              const q = v.get("StructParent") ?? v.get("StructParents");
              if (typeof q != "number") return;
              b.add(q);
              let A = d.get(q);
              const C = A instanceof ae ? A : null;
              if (C) {
                const I = w.fetch(C);
                Array.isArray(I) && (A = I);
              }
              if (Array.isArray(A) && A.every((I) => I === null) && (A = null), !A) {
                v.has("StructParent") ? v.delete("StructParent") : v.delete("StructParents");
                return;
              }
              let S = g.get(q);
              S === void 0 && (S = n++, g.set(q, S), s.set(S, [m, A])), v.has("StructParent") ? v.set("StructParent", S) : v.set("StructParents", S);
            }, j);
          }
          const { structTreeKids: i, idTree: a, classMap: r, roleMap: o, namespaces: l, structTreeAF: f, structTreePronunciationLexicon: c } = this;
          for (const h of e) {
            const { document: { xref: u }, oldRefMapping: d, parentTree: m, usedStructParents: g, structTreeRoot: b, idTree: w, classMap: x, roleMap: y, namespaces: j, structTreeAF: v, structTreePronunciationLexicon: q } = h;
            if (!b) continue;
            this.currentDocument = h;
            const A = new Rt();
            for (const [P, H] of m || []) !g.has(P) && H instanceof ae && A.put(H);
            const C = /* @__PURE__ */ new Map();
            for (const [P, H] of w || []) {
              let G = P;
              if (a.has(P)) for (let Z = 1; ; Z++) {
                const z = `${P}_${Z}`;
                if (!a.has(z)) {
                  C.set(P, z), G = z;
                  break;
                }
              }
              a.set(G, H);
            }
            const S = /* @__PURE__ */ new Map();
            if (x?.size > 0) for (let [P, H] of x) {
              if (H = await this.#n(H, true, u), r.has(P)) for (let G = 1; ; G++) {
                const Z = `${P}_${G}`;
                if (!r.has(Z)) {
                  S.set(P, Z), P = Z;
                  break;
                }
              }
              r.set(P, H);
            }
            const I = /* @__PURE__ */ new Map();
            if (y?.size > 0) for (const [P, H] of y) {
              const G = o.get(P);
              if (!G) {
                o.set(P, H);
                continue;
              }
              if (G !== H) for (let Z = 1; ; Z++) {
                const z = `${P}_${Z}`;
                if (!o.has(z)) {
                  I.set(P, z), o.set(z, H);
                  break;
                }
              }
            }
            if (j?.length > 0) for (const P of j) {
              const H = await u.fetchIfRefAsync(P);
              let G = H.get("NS");
              if (!G || l.has(G)) continue;
              G = Je(G, false);
              const Z = await this.#n(H, true, u);
              l.set(G, Z);
            }
            if (v) for (const P of v) f.push(await this.#n(P, true, u));
            if (q) for (const P of q) c.push(await this.#n(P, true, u));
            let T = b.dict.get("K");
            if (T) {
              T = Array.isArray(T) ? T : [T];
              for (let P of T) {
                const H = P instanceof ae ? P : null;
                if (H && A.has(H)) continue;
                P = await u.fetchIfRefAsync(P);
                const G = await this.#s(H, P, u, A, C, S, I);
                G && i.push(G);
              }
              for (const [P, H] of w || []) {
                const G = H instanceof ae && d.get(H), Z = C.get(P) || P;
                G ? a.set(Z, G) : a.delete(Z);
              }
            }
          }
          for (const [h, [u, d]] of s) {
            if (!d) {
              s.delete(h);
              continue;
            }
            if (!Array.isArray(d)) {
              const g = u.get(d);
              g === void 0 ? s.delete(h) : s.set(h, g);
              continue;
            }
            const m = d.map((g) => g instanceof ae && u.get(g) || null);
            if (m.length === 0 || m.every((g) => g === null)) {
              s.delete(h);
              continue;
            }
            s.set(h, m);
          }
          this.currentDocument = null;
        }
        #u(e) {
          for (const n of e) {
            if (!n.destinations) continue;
            const { destinations: s, pagesMap: i } = n, a = n.destinations = /* @__PURE__ */ new Map();
            for (const [r, o] of Object.entries(s)) {
              const l = o[0], f = l instanceof ae && i.get(l);
              f && ((f.pointingNamedDestinations ||= /* @__PURE__ */ new Set()).add(r), a.set(r, o));
            }
          }
        }
        #c() {
          const { namedDestinations: e } = this, n = p((s) => {
            if (!e.has(s)) return s;
            for (let i = 1; ; i++) {
              const a = `${s}_${i}`;
              if (!e.has(a)) return a;
            }
          }, "getUniqueDestinationName");
          for (let s = 0, i = this.oldPages.length; s < i; s++) {
            const a = this.oldPages[s], { documentData: { destinations: r, dedupNamedDestinations: o, usedNamedDestinations: l } } = a;
            let { pointingNamedDestinations: f } = a;
            if (f) {
              a.pointingNamedDestinations = f = f.intersection(l);
              for (const c of f) {
                if (!l.has(c)) continue;
                const h = r.get(c).slice();
                if (!e.has(c)) {
                  e.set(c, h);
                  continue;
                }
                const u = n(`${c}_p${s + 1}`);
                o.set(c, u), e.set(u, h);
              }
            }
          }
        }
        #d(e, n) {
          if (n.size === 0) return;
          const s = p((i, a, r) => {
            typeof r == "string" && i.set(a, n.get(Je(r, true)) || r);
          }, "fixDestination");
          for (const i of e) {
            const a = this.xref[i.num];
            if (!ot(a.get("Subtype"), "Link")) continue;
            const r = a.get("A");
            if (r instanceof _ && r.has("D")) {
              const l = r.get("D");
              s(r, "D", l);
              continue;
            }
            const o = a.get("Dest");
            s(a, "Dest", o);
          }
        }
        #g(e) {
          const n = p((s, i, a) => {
            for (const r of s) typeof r.dest == "string" && i?.has(r.dest) && a.add(r.dest), r.items.length > 0 && n(r.items, i, a);
          }, "collect");
          for (const s of e) {
            const { outline: i, destinations: a, usedNamedDestinations: r } = s;
            i?.length && n(i, a, r);
          }
        }
        #m(e, n) {
          const { dest: s, action: i, url: a, unsafeUrl: r, attachment: o, setOCGState: l } = e;
          if (i || a || r || o || l) return true;
          if (!s) return false;
          if (typeof s == "string") {
            const f = n.dedupNamedDestinations.get(s) || s;
            return this.namedDestinations.has(f);
          }
          return Array.isArray(s) && s[0] instanceof ae ? !!n.oldRefMapping.get(s[0]) : false;
        }
        #h(e, n) {
          const s = [];
          for (const i of e) {
            const a = this.#h(i.items, n), r = this.#m(i, n);
            (r || a.length > 0) && s.push({ ...i, dest: r ? i.dest : null, items: a, _documentData: n });
          }
          return s;
        }
        #p(e) {
          const n = [];
          for (const s of e) {
            const { outline: i } = s;
            i?.length && n.push(...this.#h(i, s));
          }
          this.outlineItems = n.length > 0 ? n : null;
        }
        async #b(e, n) {
          const { dest: s, rawDict: i } = n, a = n._documentData;
          if (s) {
            if (typeof s == "string") {
              const o = a.dedupNamedDestinations.get(s) || s;
              e.set("Dest", An(o));
            } else if (Array.isArray(s)) {
              const o = s.slice();
              o[0] instanceof ae && (o[0] = a.oldRefMapping.get(o[0]) || o[0]), e.set("Dest", o);
            }
            return;
          }
          const r = i?.get("A");
          if (r instanceof _) {
            this.currentDocument = a;
            const o = await this.#t(r, a.document.xref);
            this.currentDocument = null, e.set("A", o);
          }
        }
        async #y() {
          const { outlineItems: e } = this;
          if (!e?.length) return;
          const [n, s] = this.newDict;
          s.setIfName("Type", "Outlines");
          const i = p((o) => {
            for (const l of o) [l._ref] = this.newDict, l.items.length > 0 && i(l.items);
          }, "assignRefs");
          i(e);
          const a = p(async (o, l) => {
            let f = 0;
            for (let c = 0; c < o.length; c++) {
              const h = o[c], u = this.xref[h._ref.num];
              if (u.set("Title", An(h.title)), u.set("Parent", l), c > 0 && u.set("Prev", o[c - 1]._ref), c < o.length - 1 && u.set("Next", o[c + 1]._ref), h.items.length > 0) {
                u.set("First", h.items[0]._ref), u.set("Last", h.items.at(-1)._ref);
                const m = await a(h.items, h._ref);
                h.count !== void 0 && u.set("Count", h.count < 0 ? -m : m), f += h.count !== void 0 && h.count < 0 ? 1 : m + 1;
              } else f += 1;
              await this.#b(u, h);
              const d = (h.bold ? 2 : 0) | (h.italic ? 1 : 0);
              d !== 0 && u.set("F", d), h.color && (h.color[0] !== 0 || h.color[1] !== 0 || h.color[2] !== 0) && u.set("C", [h.color[0] / 255, h.color[1] / 255, h.color[2] / 255]);
            }
            return f;
          }, "fillItems"), r = await a(e, n);
          s.set("First", e[0]._ref), s.set("Last", e.at(-1)._ref), s.set("Count", r), this.rootDict.set("Outlines", n);
        }
        async #x(e) {
          this.#C(e), this.#q(e), this.#v(e), await this.#j(e);
          const n = this.fields;
          for (const s of e) {
            let i = s.acroForm?.get("Fields") || null;
            !i && s.fieldToParent.size > 0 && (i = this.#S(s.fieldToParent, s.document.xref)), Array.isArray(i) && i.length > 0 && (this.currentDocument = s, await this.#T(n, i), this.currentDocument = null);
          }
          this.#w(e);
        }
        #v(e) {
          let n = 0, s = null;
          for (const i of e) {
            const a = i.acroForm?.get("Q");
            if (!(typeof a != "number" || a === 0)) {
              if (s?.acroFormQ > 0) {
                i.acroFormQ = a;
                continue;
              }
              if (n === 0) {
                n = a, s = i;
                continue;
              }
              a !== n && (s.acroFormQ ||= n, i.acroFormQ = a, n = 0);
            }
          }
          n > 0 && (this.acroFormQ = n);
        }
        #C(e) {
          let n = 0, s = false;
          for (const i of e) {
            if (!i.acroForm) continue;
            const a = i.acroForm.get("SigFlags");
            typeof a == "number" && i.hasSignatureAnnotations && (n |= a), i.acroForm.get("NeedAppearances") === true && (s = true);
          }
          this.acroFormSigFlags = n, this.acroFormNeedAppearances = s;
        }
        #w(e) {
          const n = [];
          for (const s of e) {
            const i = s.acroForm?.get("CO") || null;
            if (!Array.isArray(i)) continue;
            const { oldRefMapping: a } = s;
            for (const r of i) {
              const o = r instanceof ae && a.get(r);
              o && n.push(o);
            }
          }
          this.acroFormCalculationOrder = n.length > 0 ? n : null;
        }
        #q(e) {
          let n = null, s = null;
          for (const i of e) {
            const a = i.acroForm?.get("DA") || null;
            if (!(!a || typeof a != "string")) {
              if (s?.acroFormDefaultAppearance) {
                i.acroFormDefaultAppearance = a;
                continue;
              }
              if (!n) {
                n = a, s = i;
                continue;
              }
              a !== n && (s.acroFormDefaultAppearance ||= n, i.acroFormDefaultAppearance = a, n = null);
            }
          }
          n && (this.acroFormDefaultAppearance = n);
        }
        async #j(e) {
          let n = null, s = null, i = null;
          for (const a of e) {
            const r = a.acroForm?.get("DR") || null;
            if (!(!r || !(r instanceof _))) {
              if (i?.acroFormDefaultResources) {
                a.acroFormDefaultResources = r;
                continue;
              }
              if (!n) {
                n = r, s = a.acroForm.getRaw("DR"), i = a;
                continue;
              }
              hf(n, r) || (i.acroFormDefaultResources ||= n, a.acroFormDefaultResources = r, n = null, s = null);
            }
          }
          n && (this.currentDocument = i, this.acroFormDefaultResources = await this.#n(s, true, i.document.xref), this.currentDocument = null);
        }
        #S(e, n) {
          const s = [], i = new Rt();
          for (const [a, r] of e) {
            if (!r) {
              s.push(a);
              continue;
            }
            let o = r, l = r;
            for (; o = n.fetchIfRef(o)?.getRaw("Parent") || null, !!o; ) l = o;
            l instanceof ae && !i.has(l) && (s.push(l), i.put(l));
          }
          return s;
        }
        async #T(e, n) {
          const s = new Rt(), i = [{ kids: n, newKids: e, pos: 0, oldParentRef: null, parentRef: null, parent: null }], { document: { xref: a }, oldRefMapping: r, fieldToParent: o, acroFormDefaultAppearance: l, acroFormDefaultResources: f, acroFormQ: c } = this.currentDocument, h = [], u = [];
          for (; i.length > 0; ) {
            const m = i.at(-1), { kids: g, newKids: b, parent: w, pos: x } = m;
            if (x === g.length) {
              if (i.pop(), b.length === 0 || !w) continue;
              const A = this.xref[m.parentRef.num] = this.cloneDict(w);
              if (A.delete("Parent"), A.delete("Kids"), await this.#n(A, false, a), A.set("Kids", b), i.length > 0) {
                const C = i.at(-1);
                if (!C.parentRef && C.oldParentRef) {
                  const S = C.parentRef = this.newRef;
                  A.set("Parent", S), r.put(C.oldParentRef, S);
                }
                C.newKids.push(m.parentRef);
              }
              continue;
            }
            const y = g[m.pos++];
            if (!(y instanceof ae) || s.has(y)) continue;
            s.put(y);
            const j = a.fetchIfRef(y);
            if (j.has("Kids")) {
              const A = j.get("Kids");
              if (!Array.isArray(A)) continue;
              i.push({ kids: A, newKids: [], pos: 0, oldParentRef: y, parentRef: null, parent: j });
              continue;
            }
            if (!o.has(y)) continue;
            const v = r.get(y);
            if (!v) continue;
            b.push(v), !m.parentRef && m.oldParentRef && (m.parentRef = this.newRef, r.put(m.oldParentRef, m.parentRef));
            const q = this.xref[v.num];
            m.parentRef && q.set("Parent", m.parentRef), l && ot(q.get("FT"), "Tx") && !q.has("DA") && h.push(q), f && !q.has("Kids") && q.get("AP") instanceof _ && u.push(q), c && !q.has("Q") && q.set("Q", c);
          }
          for (const m of h) os({ dict: m, key: "DA" }) || m.set("DA", l);
          const d = /* @__PURE__ */ new Map();
          for (const m of u) {
            const g = m.get("AP");
            for (const b of g.getValues()) {
              if (!(b instanceof ze)) continue;
              let w = b.dict.getRaw("Resources");
              if (!w) {
                const x = await d.getOrInsertComputed(f, () => this.#t(f, a));
                b.dict.set("Resources", x);
                continue;
              }
              w = a.fetchIfRef(w);
              for (const [x, y] of f.getRawEntries()) if (!w.has(x)) {
                let j = y;
                y instanceof ae ? j = await this.#n(y, true, a) : (y instanceof _ || y instanceof ze || Array.isArray(y)) && (j = await d.getOrInsertComputed(y, () => this.#t(y, a))), w.set(x, j);
              }
            }
          }
        }
        async #E() {
          if (!this.hasSingleFile) return;
          const { documentData: { document: e, pageLabels: n } } = this.oldPages[0];
          if (!n) return;
          const s = e.numPages, i = [], a = new Set(this.oldPages.map(({ page: { pageIndex: c } }) => c));
          let r = null, o = -1;
          for (let c = 0; c < s; c++) {
            const h = n.get(c);
            if (h && (r = h, o = r.has("St") ? c : -1), !!a.has(c)) {
              if (o !== -1) {
                const u = r.get("St");
                r = this.cloneDict(r), r.set("St", u + (c - o)), o = -1;
              }
              i.push(r);
            }
          }
          r = i[0];
          let l = 0;
          const f = this.pageLabels = [[0, r]];
          for (let c = 0, h = i.length; c < h; c++) {
            const u = i[c];
            u !== r && (l = c, r = u, f.push([l, r]));
          }
        }
        async #I(e) {
          const { page: n, documentData: s, annotations: i, pointingNamedDestinations: a } = this.oldPages[e];
          this.currentDocument = s;
          const { dedupNamedDestinations: r, oldRefMapping: o } = s, { xref: l, rotate: f, mediaBox: c, resources: h, ref: u } = n, d = this.newRef, m = this.xref[d.num] = this.cloneDict(n.pageDict);
          if (o.put(u, d), a) for (const y of a) {
            const j = r.get(y) || y, v = this.namedDestinations.get(j);
            v[0] = d;
          }
          for (const y of ["Rotate", "MediaBox", "CropBox", "BleedBox", "TrimBox", "ArtBox", "Resources", "Annots", "Parent", "UserUnit"]) m.delete(y);
          const g = this.newRefCount;
          await this.#n(m, false, l), m.set("Rotate", f), m.set("MediaBox", c);
          for (const y of ["CropBox", "BleedBox", "TrimBox", "ArtBox"]) {
            const j = n.getBoundingBox(y);
            j?.some((v, q) => v !== c[q]) && m.set(y, j);
          }
          const b = n.userUnit;
          b !== 1 && m.set("UserUnit", b), m.setIfDict("Resources", await this.#n(h, true, l));
          let w = null;
          if (i) {
            const y = await this.#n(i, true, l);
            this.#d(y, r), Array.isArray(y) && y.length > 0 && (w = y);
          }
          const x = this.#e?.newAnnotationsByPage?.get(e);
          if (x) {
            const { handler: y, task: j, imagesPromises: v } = this.#e, q = new tn(), A = await zs.saveNewAnnotations(n.createAnnotationEvaluator(y), this.xrefWrapper, j, x, v, q);
            for (const [C, { data: S }] of q.items()) this.xref[C.num] = S;
            w ||= [];
            for (const { ref: C } of A.annotations) w.push(C);
          }
          if (m.setIfArray("Annots", w), this.useObjectStreams) {
            const y = this.newRefCount, j = [];
            for (let v = g; v < y; v++) this.xref[v] instanceof ze || j.push(ae.get(v, 0));
            for (let v = 0; v < j.length; v += 65535) {
              const q = this.newRef;
              this.objStreamRefs.add(q.num), this.xref[q.num] = j.slice(v, v + 65535);
            }
          }
          return this.currentDocument = null, d;
        }
        #R() {
          const { newPages: e, rootDict: n, pagesRef: s, pagesDict: i } = this;
          n.set("Pages", s), i.setIfName("Type", "Pages"), i.set("Count", e.length);
          const a = e6, r = [{ dict: i, kids: e, parentRef: s }];
          for (; r.length > 0; ) {
            const { dict: o, kids: l, parentRef: f } = r.pop();
            if (l.length <= a) {
              o.set("Kids", l);
              for (const d of l) this.xref[d.num].set("Parent", f);
              continue;
            }
            const c = Math.max(a, Math.ceil(l.length / a)), h = [];
            for (let d = 0; d < l.length; d += c) h.push(l.slice(d, d + c));
            const u = [];
            o.set("Kids", u);
            for (const d of h) {
              const [m, g] = this.newDict;
              u.push(m), g.setIfName("Type", "Pages"), g.set("Parent", f), g.set("Count", d.length), r.push({ dict: g, kids: d, parentRef: m });
            }
          }
        }
        #F(e, n) {
          const s = e.sort(n ? ([f], [c]) => f.localeCompare(c) : ([f], [c]) => f - c), i = t6, [a, r] = this.newDict, o = [{ dict: r, entries: s }], l = n ? "Names" : "Nums";
          for (; o.length > 0; ) {
            const { dict: f, entries: c } = o.pop();
            if (c.length <= i) {
              f.set("Limits", [c[0][0], c.at(-1)[0]]), f.set(l, c.flat());
              continue;
            }
            const h = [], u = Math.max(i, Math.ceil(c.length / i));
            for (let m = 0; m < c.length; m += u) h.push(c.slice(m, m + u));
            const d = [];
            f.set("Kids", d);
            for (const m of h) {
              const [g, b] = this.newDict;
              d.push(g), b.set("Limits", [m[0][0], m.at(-1)[0]]), o.push({ dict: b, entries: m });
            }
          }
          return a;
        }
        #B() {
          const { pageLabels: e } = this;
          if (!e || e.length === 0) return;
          const { rootDict: n } = this, s = this.#F(this.pageLabels, false);
          n.set("PageLabels", s);
        }
        #_() {
          const { namedDestinations: e } = this;
          e.size !== 0 && (this.namesDict || ([this.namesRef, this.namesDict] = this.newDict, this.rootDict.set("Names", this.namesRef)), this.namesDict.set("Dests", this.#F(Array.from(e.entries()), true)));
        }
        #M() {
          const { structTreeKids: e } = this;
          if (!e || e.length === 0) return;
          const { rootDict: n } = this, s = this.newRef, i = this.xref[s.num] = new _();
          i.setIfName("Type", "StructTreeRoot"), i.setIfArray("K", e);
          for (const a of e) {
            const r = this.xref[a.num], o = r.get("Type");
            (!o || ot(o, "StructElem")) && r.set("P", s);
          }
          if (this.parentTree.size > 0) {
            const a = this.#F(Array.from(this.parentTree.entries()), false);
            this.xref[a.num].setIfName("Type", "ParentTree"), i.set("ParentTree", a), i.set("ParentTreeNextKey", this.parentTree.size);
          }
          if (this.idTree.size > 0) {
            const a = this.#F(Array.from(this.idTree.entries()), true);
            this.xref[a.num].setIfName("Type", "IDTree"), i.set("IDTree", a);
          }
          if (this.classMap.size > 0) {
            const a = this.newRef;
            this.xref[a.num] = this.classMap, i.set("ClassMap", a);
          }
          if (this.roleMap.size > 0) {
            const a = this.newRef;
            this.xref[a.num] = this.roleMap, i.set("RoleMap", a);
          }
          if (this.namespaces.size > 0) {
            const a = this.newRef;
            this.xref[a.num] = Array.from(this.namespaces.values()), i.set("Namespaces", a);
          }
          if (this.structTreeAF.length > 0) {
            const a = this.newRef;
            this.xref[a.num] = this.structTreeAF, i.set("AF", a);
          }
          if (this.structTreePronunciationLexicon.length > 0) {
            const a = this.newRef;
            this.xref[a.num] = this.structTreePronunciationLexicon, i.set("PronunciationLexicon", a);
          }
          n.set("StructTreeRoot", s);
        }
        #H() {
          if (this.fields.length === 0) return;
          const { rootDict: e } = this, n = this.newRef, s = this.xref[n.num] = new _();
          e.set("AcroForm", n), s.set("Fields", this.fields), this.acroFormNeedAppearances && s.set("NeedAppearances", true), this.acroFormSigFlags > 0 && s.set("SigFlags", this.acroFormSigFlags), s.setIfArray("CO", this.acroFormCalculationOrder), s.setIfDict("DR", this.acroFormDefaultResources), this.acroFormDefaultAppearance && s.set("DA", this.acroFormDefaultAppearance), this.acroFormQ > 0 && s.set("Q", this.acroFormQ);
        }
        async #z() {
          const { rootDict: e } = this;
          e.setIfName("Type", "Catalog"), e.setIfName("Version", this.version), this.#H(), this.#R(), this.#B(), this.#_(), this.#M(), await this.#y();
        }
        #A() {
          const e = /* @__PURE__ */ new Map();
          if (this.hasSingleFile) {
            const { xref: { trailer: n } } = this.oldPages[0].documentData.document, s = n.get("Info");
            for (const [i, a] of s || []) typeof a == "string" && e.set(i, Je(a));
          }
          e.delete("ModDate"), e.set("CreationDate", Ei()), e.set("Creator", "PDF.js"), e.set("Producer", "Firefox"), this.author && e.set("Author", this.author), this.title && e.set("Title", this.title);
          for (const [n, s] of e) this.infoDict.set(n, An(s));
          return e;
        }
        async #k() {
          if (!this.hasSingleFile) return [null, null, null];
          const { documentData: e } = this.oldPages[0], { document: { xref: { trailer: n, encrypt: s } } } = e;
          if (!n.has("Encrypt")) return [null, null, null];
          const i = n.get("Encrypt");
          if (!(i instanceof _)) return [null, null, null];
          this.currentDocument = e;
          const a = [await this.#t(i, n.xref), s, n.get("ID")];
          return this.currentDocument = null, a;
        }
        async #D() {
          const e = new tn();
          e.put(ae.get(0, 65535), { data: null });
          for (let n = 1, s = this.xref.length; n < s; n++) this.objStreamRefs?.has(n) ? await this.#O(ae.get(n, 0), this.xref[n], e) : e.put(ae.get(n, 0), { data: this.xref[n] });
          return [e, this.newRef];
        }
        async #O(e, n, s) {
          const i = [""], a = [];
          let r = 0;
          const o = [];
          for (let c = 0, h = n.length; c < h; c++) {
            const u = n[c];
            s.put(u, { data: null, objStreamRef: e, index: c }), a.push(`${u.num} ${r}`);
            const d = this.xref[u.num];
            await h0(d, o, null);
            const m = o.join("");
            o.length = 0, i.push(m), r += m.length + 1;
          }
          i[0] = a.join(`
`);
          const l = new Rn(i.join(`
`)), f = l.dict = new _();
          f.setIfName("Type", "ObjStm"), f.set("N", n.length), f.set("First", i[0].length + 1), s.put(e, { data: l });
        }
        async writePDF() {
          await this.#z();
          const e = this.#A(), [n, s, i] = await this.#k(), [a, r] = await this.#D(), o = [...`%PDF-${this.version}
%`.split("").map((l) => l.charCodeAt(0)), 250, 222, 250, 206];
          return ap({ originalData: new Uint8Array(o), changes: a, xrefInfo: { startXRef: null, rootRef: this.rootRef, infoRef: this.infoRef, encryptRef: n, newRef: r, fileIds: i || [null, null], infoMap: e }, useXrefStream: this.useObjectStreams, xref: { encrypt: s, encryptRef: n } });
        }
      };
      r6 = class {
        static {
          p(this, "BasePDFStream");
        }
        #e = null;
        #t = null;
        _fullReader = null;
        _rangeReaders = /* @__PURE__ */ new Set();
        _source = null;
        constructor(e, n, s) {
          this._source = e, this.#e = n, this.#t = s;
        }
        get _progressiveDataLength() {
          return this._fullReader?._loaded ?? 0;
        }
        getFullReader() {
          return Bt(!this._fullReader, "BasePDFStream.getFullReader can only be called once."), this._fullReader = new this.#e(this);
        }
        getRangeReader(e, n) {
          if (n <= this._progressiveDataLength) return null;
          const s = new this.#t(this, e, n);
          return this._rangeReaders.add(s), s;
        }
        cancelAllRequests(e) {
          this._fullReader?.cancel(e);
          for (const n of new Set(this._rangeReaders)) n.cancel(e);
        }
      };
      o6 = class {
        static {
          p(this, "BasePDFStreamReader");
        }
        onProgress = null;
        _contentLength = 0;
        _filename = null;
        _headersCapability = Promise.withResolvers();
        _isRangeSupported = false;
        _isStreamingSupported = false;
        _loaded = 0;
        _stream = null;
        constructor(e) {
          this._stream = e;
        }
        _callOnProgress() {
          this.onProgress?.({ loaded: this._loaded, total: this._contentLength });
        }
        get headersReady() {
          return this._headersCapability.promise;
        }
        get filename() {
          return this._filename;
        }
        get contentLength() {
          return this._contentLength;
        }
        get isRangeSupported() {
          return this._isRangeSupported;
        }
        get isStreamingSupported() {
          return this._isStreamingSupported;
        }
        async read() {
          Ye("Abstract method `read` called");
        }
        cancel(e) {
          Ye("Abstract method `cancel` called");
        }
      };
      l6 = class {
        static {
          p(this, "BasePDFStreamRangeReader");
        }
        _stream = null;
        constructor(e, n, s) {
          this._stream = e;
        }
        async read() {
          Ye("Abstract method `read` called");
        }
        cancel(e) {
          Ye("Abstract method `cancel` called");
        }
      };
      f6 = class extends r6 {
        static {
          p(this, "PDFWorkerStream");
        }
        constructor(e) {
          super(e, c6, h6);
        }
      };
      c6 = class extends o6 {
        static {
          p(this, "PDFWorkerStreamReader");
        }
        _reader = null;
        constructor(e) {
          super(e);
          const { msgHandler: n } = e._source, s = n.sendWithStream("GetReader");
          this._reader = s.getReader(), n.sendWithPromise("ReaderHeadersReady").then((i) => {
            this._contentLength = i.contentLength, this._isStreamingSupported = i.isStreamingSupported, this._isRangeSupported = i.isRangeSupported, this._headersCapability.resolve();
          }, this._headersCapability.reject);
        }
        async read() {
          const { value: e, done: n } = await this._reader.read();
          return n ? { value: void 0, done: true } : { value: e.buffer, done: false };
        }
        cancel(e) {
          this._reader.cancel(e);
        }
      };
      h6 = class extends l6 {
        static {
          p(this, "PDFWorkerStreamRangeReader");
        }
        _reader = null;
        constructor(e, n, s) {
          super(e, n, s);
          const { msgHandler: i } = e._source, a = i.sendWithStream("GetRangeReader", { begin: n, end: s });
          this._reader = a.getReader();
        }
        async read() {
          const { value: e, done: n } = await this._reader.read();
          return n ? { value: void 0, done: true } : { value: e.buffer, done: false };
        }
        cancel(e) {
          this._reader.cancel(e);
        }
      };
      ni = class {
        static {
          p(this, "WorkerTask");
        }
        constructor(e) {
          this.name = e, this.terminated = false, this._capability = Promise.withResolvers();
        }
        get finished() {
          return this._capability.promise;
        }
        finish() {
          this._capability.resolve();
        }
        terminate() {
          this.terminated = true;
        }
        ensureNotTerminated() {
          if (this.terminated) throw new Error("Worker task was terminated");
        }
      };
      u6 = class {
        static {
          p(this, "WorkerMessageHandler");
        }
        static {
          typeof window > "u" && !qm && typeof self < "u" && typeof self.postMessage == "function" && "onmessage" in self && this.initializeFromPort(self);
        }
        static setup(e, n) {
          let s = false;
          e.on("test", (i) => {
            s || (s = true, e.send("test", i instanceof Uint8Array));
          }), e.on("configure", (i) => {
            Cm(i.verbosity);
          }), e.on("GetDocRequest", (i) => this.createDocumentHandler(i, n));
        }
        static createDocumentHandler(e, n) {
          let s, i = false, a = null;
          const r = /* @__PURE__ */ new Set(), o = Im(), { docId: l, apiVersion: f } = e, c = "5.6.205";
          if (f !== c) throw new Error(`The API version "${f}" does not match the Worker version "${c}".`);
          const h = p((j, v) => `The \`${j}.prototype\` contains unexpected enumerable property "${v}", thus breaking e.g. \`for...in\` iteration of ${j}s.`, "buildMsg");
          for (const j in {}) throw new Error(h("Object", j));
          for (const j in []) throw new Error(h("Array", j));
          const u = l + "_worker";
          let d = new ep(u, l, n);
          function m() {
            if (i) throw new Error("Worker was terminated");
          }
          p(m, "ensureNotTerminated");
          function g(j) {
            r.add(j);
          }
          p(g, "startWorkerTask");
          function b(j) {
            j.finish(), r.delete(j);
          }
          p(b, "finishWorkerTask");
          async function w(j) {
            await s.ensureDoc("checkHeader"), await s.ensureDoc("parseStartXRef"), await s.ensureDoc("parse", [j]), await s.ensureDoc("checkFirstPage", [j]), await s.ensureDoc("checkLastPage", [j]);
            const v = await s.ensureDoc("isPureXfa");
            if (v) {
              const S = new ni("loadXfaResources");
              g(S), await s.ensureDoc("loadXfaResources", [d, S]), b(S);
            }
            const [q, A] = await Promise.all([s.ensureDoc("numPages"), s.ensureDoc("fingerprints")]), C = v ? await s.ensureDoc("htmlForXfa") : null;
            return { numPages: q, fingerprints: A, htmlForXfa: C };
          }
          p(w, "loadDocument");
          async function x({ data: j, password: v, disableAutoFetch: q, rangeChunkSize: A, docBaseUrl: C, enableXfa: S, evaluatorOptions: I }) {
            const T = { source: null, disableAutoFetch: q, docBaseUrl: C, docId: l, enableXfa: S, evaluatorOptions: I, handler: d, length: 0, password: v, rangeChunkSize: A };
            if (j) return T.source = j, new Gc(T);
            const P = new f6({ msgHandler: d }), H = P.getFullReader(), { promise: G, resolve: Z, reject: z } = Promise.withResolvers();
            let O, N = [];
            a = p((je) => P.cancelAllRequests(je), "cancelXHRs"), H.headersReady.then(() => {
              if (H.isRangeSupported) {
                T.source = P, T.length = H.contentLength, T.disableAutoFetch ||= H.isStreamingSupported, O = new U7(T);
                for (const je of N) O.sendProgressiveData(je);
                N = null, Z(O), a = null;
              }
            }).catch((je) => {
              z(je), a = null;
            });
            async function oe() {
              let je = 0;
              for (; ; ) {
                const { value: Y, done: ye } = await H.read();
                if (m(), ye) break;
                je += Y.byteLength, H.isStreamingSupported || d.send("DocProgress", { loaded: je, total: H.contentLength }), O ? O.sendProgressiveData(Y) : N.push(Y);
              }
              O || (T.source = Yh(N), N = null, O = new Gc(T), Z(O)), a = null;
            }
            return p(oe, "readData"), oe().catch((je) => {
              z(je), a = null;
            }), G;
          }
          p(x, "getPdfManager");
          function y(j) {
            function v(C) {
              m(), d.send("GetDoc", { pdfInfo: C });
            }
            p(v, "onSuccess");
            function q(C) {
              if (!i) if (C instanceof La) {
                const S = new ni(`PasswordException: response ${C.code}`);
                g(S), d.sendWithPromise("PasswordRequest", C).then(function({ password: I }) {
                  b(S), s.updatePassword(I), A();
                }).catch(function() {
                  b(S), d.send("DocException", C);
                });
              } else d.send("DocException", ds(C));
            }
            p(q, "onFailure");
            function A() {
              m(), w(false).then(v, function(C) {
                if (m(), !(C instanceof sa)) {
                  q(C);
                  return;
                }
                s.requestLoadedStream().then(function() {
                  m(), w(true).then(v, q);
                });
              });
            }
            p(A, "pdfManagerReady"), m(), x(j).then(function(C) {
              if (i) throw C.terminate(new jn("Worker was terminated.")), new Error("Worker was terminated");
              s = C, s.requestLoadedStream(true).then((S) => {
                d.send("DataLoaded", { length: S.bytes.byteLength });
              });
            }).then(A, q);
          }
          return p(y, "setupDoc"), d.on("GetPage", function(j) {
            return s.getPage(j.pageIndex).then(function(v) {
              return Promise.all([s.ensure(v, "rotate"), s.ensure(v, "ref"), s.ensure(v, "userUnit"), s.ensure(v, "view")]).then(function([q, A, C, S]) {
                return { rotate: q, ref: A, refStr: A?.toString() ?? null, userUnit: C, view: S };
              });
            });
          }), d.on("GetPageIndex", function(j) {
            const v = ae.get(j.num, j.gen);
            return s.ensureCatalog("getPageIndex", [v]);
          }), d.on("GetDestinations", function(j) {
            return s.ensureCatalog("destinations");
          }), d.on("GetDestination", function(j) {
            return s.ensureCatalog("getDestination", [j.id]);
          }), d.on("GetPageLabels", function(j) {
            return s.ensureCatalog("pageLabels");
          }), d.on("GetPageLayout", function(j) {
            return s.ensureCatalog("pageLayout");
          }), d.on("GetPageMode", function(j) {
            return s.ensureCatalog("pageMode");
          }), d.on("GetViewerPreferences", function(j) {
            return s.ensureCatalog("viewerPreferences");
          }), d.on("GetOpenAction", function(j) {
            return s.ensureCatalog("openAction");
          }), d.on("GetAttachments", function(j) {
            return s.ensureCatalog("attachments");
          }), d.on("GetDocJSActions", function(j) {
            return s.ensureCatalog("jsActions");
          }), d.on("GetPageJSActions", function({ pageIndex: j }) {
            return s.getPage(j).then((v) => s.ensure(v, "jsActions"));
          }), d.on("GetAnnotationsByType", async function({ types: j, pageIndexesToSkip: v }) {
            const [q, A] = await Promise.all([s.ensureDoc("numPages"), s.ensureDoc("annotationGlobals")]);
            if (!A) return null;
            const C = [], S = [];
            let I = null;
            try {
              for (let P = 0, H = q; P < H; P++) v?.has(P) || (I || (I = new ni("GetAnnotationsByType"), g(I)), C.push(s.getPage(P).then(async (G) => G ? G.collectAnnotationsByType(d, I, j, S, A) || [] : [])));
              return await Promise.all(C), (await Promise.all(S)).filter((P) => !!P);
            } finally {
              I && b(I);
            }
          }), d.on("GetOutline", function(j) {
            return s.ensureCatalog("documentOutline");
          }), d.on("GetOptionalContentConfig", function(j) {
            return s.ensureCatalog("optionalContentConfig");
          }), d.on("GetPermissions", function(j) {
            return s.ensureCatalog("permissions");
          }), d.on("GetMetadata", function(j) {
            return Promise.all([s.ensureDoc("documentInfo"), s.ensureCatalog("metadata"), s.ensureCatalog("hasStructTree")]);
          }), d.on("GetMarkInfo", function(j) {
            return s.ensureCatalog("markInfo");
          }), d.on("GetData", function(j) {
            return s.requestLoadedStream().then((v) => v.bytes);
          }), d.on("GetAnnotations", function({ pageIndex: j, intent: v }) {
            return s.getPage(j).then(function(q) {
              const A = new ni(`GetAnnotations: page ${j}`);
              return g(A), q.getAnnotationsData(d, A, v).then((C) => (b(A), C), (C) => {
                throw b(A), C;
              });
            });
          }), d.on("GetFieldObjects", function(j) {
            return s.ensureDoc("fieldObjects").then((v) => v?.allFields || null);
          }), d.on("HasJSActions", function(j) {
            return s.ensureDoc("hasJSActions");
          }), d.on("GetCalculationOrderIds", function(j) {
            return s.ensureDoc("calculationOrderIds");
          }), d.on("ExtractPages", async function({ pageInfos: j, annotationStorage: v }) {
            if (!j) return F("extractPages: nothing to extract."), null;
            Array.isArray(j) || (j = [j]);
            let q = 0;
            for (const C of j) if (C.document === null) C.document = s.pdfDocument;
            else if (ArrayBuffer.isView(C.document)) {
              const S = new Gc({ source: C.document, docId: `${l}_extractPages_${q++}`, handler: d, password: C.password ?? null, evaluatorOptions: Object.assign({}, s.evaluatorOptions) });
              let I = false, T = true;
              for (; ; ) try {
                await S.requestLoadedStream(), await S.ensureDoc("checkHeader"), await S.ensureDoc("parseStartXRef"), await S.ensureDoc("parse", [I]);
                break;
              } catch (H) {
                if (H instanceof sa) if (I === false) {
                  I = true;
                  continue;
                } else T = false, F("extractPages: XRefParseException.");
                else if (H instanceof La) {
                  const G = new ni(`PasswordException: response ${H.code}`);
                  g(G);
                  try {
                    const { password: Z } = await d.sendWithPromise("PasswordRequest", H);
                    S.updatePassword(Z);
                  } catch {
                    T = false, F("extractPages: invalid password.");
                  } finally {
                    b(G);
                  }
                } else T = false, F("extractPages: invalid document.");
                if (!T) break;
              }
              T || (C.document = null), await S.ensureDoc("isPureXfa") ? (C.document = null, F("extractPages does not support pure XFA documents.")) : C.document = S.pdfDocument;
            } else F("extractPages: invalid document.");
            let A;
            try {
              const C = new a6();
              return A = new ni(`ExtractPages: ${j.length} page(s)`), g(A), await C.extractPages(j, v, d, A);
            } catch (C) {
              return console.error(C), null;
            } finally {
              A && b(A);
            }
          }), d.on("SaveDocument", async function({ isPureXfa: j, numPages: v, annotationStorage: q, filename: A }) {
            const C = [s.requestLoadedStream(), s.ensureCatalog("acroForm"), s.ensureCatalog("acroFormRef"), s.ensureDoc("startXRef"), s.ensureDoc("xref"), s.ensureCatalog("structTreeRoot")], S = new tn(), I = [], T = j ? null : gf(q), [P, H, G, Z, z, O] = await Promise.all(C), N = z.trailer.getRaw("Root") || null;
            let oe;
            if (T) {
              O ? await O.canUpdateStructTree({ pdfManager: s, newAnnotationsByPage: T }) && (oe = O) : await ea.canCreateStructureTree({ catalogRef: N, pdfManager: s, newAnnotationsByPage: T }) && (oe = null);
              const L = zs.generateImages(q.values(), z, s.evaluatorOptions.isOffscreenCanvasSupported), J = oe === void 0 ? I : [];
              for (const [ce, le] of T) J.push(s.getPage(ce).then((se) => {
                const Te = new ni(`Save (editor): page ${ce}`);
                return g(Te), se.saveNewAnnotations(d, Te, le, L, S).finally(function() {
                  b(Te);
                });
              }));
              oe === null ? I.push(Promise.all(J).then(async () => {
                await ea.createStructureTree({ newAnnotationsByPage: T, xref: z, catalogRef: N, pdfManager: s, changes: S });
              })) : oe && I.push(Promise.all(J).then(async () => {
                await oe.updateStructureTree({ newAnnotationsByPage: T, pdfManager: s, changes: S });
              }));
            }
            if (j) I.push(s.ensureDoc("serializeXfaData", [q]));
            else for (let L = 0; L < v; L++) I.push(s.getPage(L).then(function(J) {
              const ce = new ni(`Save: page ${L}`);
              return g(ce), J.save(d, ce, q, S).finally(function() {
                b(ce);
              });
            }));
            const je = await Promise.all(I);
            let Y = null;
            if (j) {
              if (Y = je[0], !Y) return P.bytes;
            } else if (S.size === 0) return P.bytes;
            const ye = G && H instanceof _ && S.values().some((L) => L.needAppearances), qe = H instanceof _ && H.get("XFA") || null;
            let W = null, K = false;
            if (Array.isArray(qe)) {
              for (let L = 0, J = qe.length; L < J; L += 2) qe[L] === "datasets" && (W = qe[L + 1], K = true);
              W === null && (W = z.getNewTemporaryRef());
            } else qe && F("Unsupported XFA type.");
            let M = /* @__PURE__ */ Object.create(null);
            if (z.trailer) {
              const L = /* @__PURE__ */ new Map(), J = z.trailer.get("Info") || null;
              if (J instanceof _) for (const [ce, le] of J) typeof le == "string" && L.set(ce, Je(le));
              M = { rootRef: N, encryptRef: z.trailer.getRaw("Encrypt") || null, newRef: z.getNewTemporaryRef(), infoRef: z.trailer.getRaw("Info") || null, infoMap: L, fileIds: z.trailer.get("ID") || null, startXRef: Z, filename: A };
            }
            return ap({ originalData: P.bytes, xrefInfo: M, changes: S, xref: z, hasXfa: !!qe, xfaDatasetsRef: W, hasXfaDatasetsEntry: K, needAppearances: ye, acroFormRef: G, acroForm: H, xfaData: Y, useXrefStream: Kh(z.topDict, "XRef") }).finally(() => {
              z.resetNewTemporaryRef();
            });
          }), d.on("GetOperatorList", function(j, v) {
            const { pageId: q, pageIndex: A } = j;
            s.getPage(q).then(function(C) {
              const S = new ni(`GetOperatorList: page ${A}`);
              g(S);
              const I = o >= Fr.INFOS ? Date.now() : 0;
              C.getOperatorList({ handler: d, sink: v, task: S, intent: j.intent, cacheKey: j.cacheKey, annotationStorage: j.annotationStorage, modifiedIds: j.modifiedIds, pageIndex: A }).then(function(T) {
                b(S), I && Ke(`page=${A + 1} - getOperatorList: time=${Date.now() - I}ms, len=${T.length}`), v.close();
              }, function(T) {
                b(S), !S.terminated && v.error(T);
              });
            });
          }), d.on("GetTextContent", function(j, v) {
            const { pageId: q, pageIndex: A, includeMarkedContent: C, disableNormalization: S } = j;
            s.getPage(q).then(function(I) {
              const T = new ni("GetTextContent: page " + A);
              g(T);
              const P = o >= Fr.INFOS ? Date.now() : 0;
              I.extractTextContent({ handler: d, task: T, sink: v, includeMarkedContent: C, disableNormalization: S }).then(function() {
                b(T), P && Ke(`page=${A + 1} - getTextContent: time=${Date.now() - P}ms`), v.close();
              }, function(H) {
                b(T), !T.terminated && v.error(H);
              });
            });
          }), d.on("GetStructTree", function(j) {
            return s.getPage(j.pageIndex).then((v) => s.ensure(v, "getStructTree"));
          }), d.on("FontFallback", function(j) {
            return s.fontFallback(j.id, d);
          }), d.on("Cleanup", function(j) {
            return s.cleanup(true);
          }), d.on("Terminate", async function(j) {
            i = true;
            const v = [];
            if (s) {
              s.terminate(new jn("Worker was terminated."));
              const q = s.cleanup();
              v.push(q), s = null;
            } else ic();
            a?.(new jn("Worker was terminated."));
            for (const q of r) v.push(q.finished), q.terminate();
            await Promise.all(v), d.destroy(), d = null;
          }), d.on("Ready", function(j) {
            y(e), e = null;
          }), u;
        }
        static initializeFromPort(e) {
          const n = new ep("worker", "main", e);
          this.setup(n, e), n.send("ready", null);
        }
      };
      globalThis.pdfjsWorker = { WorkerMessageHandler: u6 };
      Ts = typeof process == "object" && process + "" == "[object process]" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== "browser");
      Vc = [1e-3, 0, 0, 1e-3, 0, 0];
      Kc = 1.35;
      ps = { ANY: 1, DISPLAY: 2, PRINT: 4, ANNOTATIONS_FORMS: 16, ANNOTATIONS_STORAGE: 32, ANNOTATIONS_DISABLE: 64, IS_EDITING: 128, OPLIST: 256 };
      vi = { DISABLE: 0, ENABLE: 1, ENABLE_FORMS: 2, ENABLE_STORAGE: 3 };
      Io = "pdfjs_internal_editor_";
      et = { DISABLE: -1, NONE: 0, FREETEXT: 3, HIGHLIGHT: 9, STAMP: 13, INK: 15, POPUP: 16, SIGNATURE: 101, COMMENT: 102 };
      gt = { RESIZE: 1, CREATE: 2, FREETEXT_SIZE: 11, FREETEXT_COLOR: 12, FREETEXT_OPACITY: 13, INK_COLOR: 21, INK_THICKNESS: 22, INK_OPACITY: 23, HIGHLIGHT_COLOR: 31, HIGHLIGHT_THICKNESS: 32, HIGHLIGHT_FREE: 33, HIGHLIGHT_SHOW_ALL: 34, DRAW_STEP: 41 };
      rp = { PRINT: 4, MODIFY_CONTENTS: 8, COPY: 16, MODIFY_ANNOTATIONS: 32, FILL_INTERACTIVE_FORMS: 256, COPY_FOR_ACCESSIBILITY: 512, ASSEMBLE: 1024, PRINT_HIGH_QUALITY: 2048 };
      Ia = { TRIANGLES: 1, LATTICE: 2 };
      cn = { FILL: 0, STROKE: 1, FILL_STROKE: 2, INVISIBLE: 3, FILL_STROKE_MASK: 3, ADD_TO_PATH_FLAG: 4 };
      To = { GRAYSCALE_1BPP: 1, RGB_24BPP: 2, RGBA_32BPP: 3 };
      Yt = { TEXT: 1, LINK: 2, FREETEXT: 3, LINE: 4, SQUARE: 5, CIRCLE: 6, POLYGON: 7, POLYLINE: 8, HIGHLIGHT: 9, UNDERLINE: 10, SQUIGGLY: 11, STRIKEOUT: 12, STAMP: 13, CARET: 14, INK: 15, POPUP: 16, FILEATTACHMENT: 17, SOUND: 18, MOVIE: 19, WIDGET: 20, SCREEN: 21, PRINTERMARK: 22, TRAPNET: 23, WATERMARK: 24, THREED: 25, REDACT: 26 };
      fr = { SOLID: 1, DASHED: 2, BEVELED: 3, INSET: 4, UNDERLINE: 5 };
      Eo = { ERRORS: 0, WARNINGS: 1, INFOS: 5 };
      cr = { dependency: 1, setLineWidth: 2, setLineCap: 3, setLineJoin: 4, setMiterLimit: 5, setDash: 6, setRenderingIntent: 7, setFlatness: 8, setGState: 9, save: 10, restore: 11, transform: 12, moveTo: 13, lineTo: 14, curveTo: 15, curveTo2: 16, curveTo3: 17, closePath: 18, rectangle: 19, stroke: 20, closeStroke: 21, fill: 22, eoFill: 23, fillStroke: 24, eoFillStroke: 25, closeFillStroke: 26, closeEOFillStroke: 27, endPath: 28, clip: 29, eoClip: 30, beginText: 31, endText: 32, setCharSpacing: 33, setWordSpacing: 34, setHScale: 35, setLeading: 36, setFont: 37, setTextRenderingMode: 38, setTextRise: 39, moveText: 40, setLeadingMoveText: 41, setTextMatrix: 42, nextLine: 43, showText: 44, showSpacedText: 45, nextLineShowText: 46, nextLineSetSpacingShowText: 47, setCharWidth: 48, setCharWidthAndBounds: 49, setStrokeColorSpace: 50, setFillColorSpace: 51, setStrokeColor: 52, setStrokeColorN: 53, setFillColor: 54, setFillColorN: 55, setStrokeGray: 56, setFillGray: 57, setStrokeRGBColor: 58, setFillRGBColor: 59, setStrokeCMYKColor: 60, setFillCMYKColor: 61, shadingFill: 62, beginInlineImage: 63, beginImageData: 64, endInlineImage: 65, paintXObject: 66, markPoint: 67, markPointProps: 68, beginMarkedContent: 69, beginMarkedContentProps: 70, endMarkedContent: 71, beginCompat: 72, endCompat: 73, paintFormXObjectBegin: 74, paintFormXObjectEnd: 75, beginGroup: 76, endGroup: 77, beginAnnotation: 80, endAnnotation: 81, paintImageMaskXObject: 83, paintImageMaskXObjectGroup: 84, paintImageXObject: 85, paintInlineImageXObject: 86, paintInlineImageXObjectGroup: 87, paintImageXObjectRepeat: 88, paintImageMaskXObjectRepeat: 89, paintSolidColorImageMask: 90, constructPath: 91, setStrokeTransparent: 92, setFillTransparent: 93, rawFillPath: 94 };
      Fo = { moveTo: 0, lineTo: 1, curveTo: 2, quadraticCurveTo: 3, closePath: 4 };
      op = { NEED_PASSWORD: 1, INCORRECT_PASSWORD: 2 };
      u0 = Eo.WARNINGS;
      p(d6, "setVerbosityLevel");
      p(p6, "getVerbosityLevel");
      p(d0, "info");
      p(at, "warn");
      p(It, "unreachable");
      p(Lt, "assert");
      p(m6, "_isValidProtocol");
      p(Xc, "createValidAbsoluteUrl");
      p(Yc, "updateUrlHash");
      p(Qc, "stripPath");
      p(st, "shadow");
      Ta = p(function() {
        function e(n, s) {
          this.message = n, this.name = s;
        }
        return p(e, "BaseException"), e.prototype = new Error(), e.constructor = e, e;
      }, "BaseExceptionClosure")();
      lp = class extends Ta {
        static {
          p(this, "PasswordException");
        }
        constructor(e, n) {
          super(e, "PasswordException"), this.code = n;
        }
      };
      Jc = class extends Ta {
        static {
          p(this, "UnknownErrorException");
        }
        constructor(e, n) {
          super(e, "UnknownErrorException"), this.details = n;
        }
      };
      p0 = class extends Ta {
        static {
          p(this, "InvalidPDFException");
        }
        constructor(e) {
          super(e, "InvalidPDFException");
        }
      };
      Bo = class extends Ta {
        static {
          p(this, "ResponseException");
        }
        constructor(e, n, s) {
          super(e, "ResponseException"), this.status = n, this.missing = s;
        }
      };
      g6 = class extends Ta {
        static {
          p(this, "FormatError");
        }
        constructor(e) {
          super(e, "FormatError");
        }
      };
      qi = class extends Ta {
        static {
          p(this, "AbortException");
        }
        constructor(e) {
          super(e, "AbortException");
        }
      };
      p(b6, "bytesToString");
      p(m0, "stringToBytes");
      p(w6, "string32");
      p(x6, "isLittleEndian");
      p(k6, "isEvalSupported");
      rn = class {
        static {
          p(this, "FeatureTest");
        }
        static get isLittleEndian() {
          return st(this, "isLittleEndian", x6());
        }
        static get isEvalSupported() {
          return st(this, "isEvalSupported", k6());
        }
        static get isOffscreenCanvasSupported() {
          return st(this, "isOffscreenCanvasSupported", typeof OffscreenCanvas < "u");
        }
        static get isImageDecoderSupported() {
          return st(this, "isImageDecoderSupported", typeof ImageDecoder < "u");
        }
        static get isFloat16ArraySupported() {
          return st(this, "isFloat16ArraySupported", typeof Float16Array < "u");
        }
        static get isSanitizerSupported() {
          return st(this, "isSanitizerSupported", typeof Sanitizer < "u");
        }
        static get platform() {
          const { platform: e, userAgent: n } = navigator;
          return st(this, "platform", { isAndroid: n.includes("Android"), isLinux: e.includes("Linux"), isMac: e.includes("Mac"), isWindows: e.includes("Win"), isFirefox: n.includes("Firefox") });
        }
        static get isCSSRoundSupported() {
          return st(this, "isCSSRoundSupported", globalThis.CSS?.supports?.("width: round(1.5px, 1px)"));
        }
      };
      Zc = Array.from(Array(256).keys(), (t) => t.toString(16).padStart(2, "0"));
      Ie = class {
        static {
          p(this, "Util");
        }
        static makeHexColor(e, n, s) {
          return `#${Zc[e]}${Zc[n]}${Zc[s]}`;
        }
        static domMatrixToTransform(e) {
          return [e.a, e.b, e.c, e.d, e.e, e.f];
        }
        static scaleMinMax(e, n) {
          let s;
          e[0] ? (e[0] < 0 && (s = n[0], n[0] = n[2], n[2] = s), n[0] *= e[0], n[2] *= e[0], e[3] < 0 && (s = n[1], n[1] = n[3], n[3] = s), n[1] *= e[3], n[3] *= e[3]) : (s = n[0], n[0] = n[1], n[1] = s, s = n[2], n[2] = n[3], n[3] = s, e[1] < 0 && (s = n[1], n[1] = n[3], n[3] = s), n[1] *= e[1], n[3] *= e[1], e[2] < 0 && (s = n[0], n[0] = n[2], n[2] = s), n[0] *= e[2], n[2] *= e[2]), n[0] += e[4], n[1] += e[5], n[2] += e[4], n[3] += e[5];
        }
        static transform(e, n) {
          return [e[0] * n[0] + e[2] * n[1], e[1] * n[0] + e[3] * n[1], e[0] * n[2] + e[2] * n[3], e[1] * n[2] + e[3] * n[3], e[0] * n[4] + e[2] * n[5] + e[4], e[1] * n[4] + e[3] * n[5] + e[5]];
        }
        static multiplyByDOMMatrix(e, n) {
          return [e[0] * n.a + e[2] * n.b, e[1] * n.a + e[3] * n.b, e[0] * n.c + e[2] * n.d, e[1] * n.c + e[3] * n.d, e[0] * n.e + e[2] * n.f + e[4], e[1] * n.e + e[3] * n.f + e[5]];
        }
        static applyTransform(e, n, s = 0) {
          const i = e[s], a = e[s + 1];
          e[s] = i * n[0] + a * n[2] + n[4], e[s + 1] = i * n[1] + a * n[3] + n[5];
        }
        static applyTransformToBezier(e, n, s = 0) {
          const i = n[0], a = n[1], r = n[2], o = n[3], l = n[4], f = n[5];
          for (let c = 0; c < 6; c += 2) {
            const h = e[s + c], u = e[s + c + 1];
            e[s + c] = h * i + u * r + l, e[s + c + 1] = h * a + u * o + f;
          }
        }
        static applyInverseTransform(e, n) {
          const s = e[0], i = e[1], a = n[0] * n[3] - n[1] * n[2];
          e[0] = (s * n[3] - i * n[2] + n[2] * n[5] - n[4] * n[3]) / a, e[1] = (-s * n[1] + i * n[0] + n[4] * n[1] - n[5] * n[0]) / a;
        }
        static axialAlignedBoundingBox(e, n, s) {
          const i = n[0], a = n[1], r = n[2], o = n[3], l = n[4], f = n[5], c = e[0], h = e[1], u = e[2], d = e[3];
          let m = i * c + l, g = m, b = i * u + l, w = b, x = o * h + f, y = x, j = o * d + f, v = j;
          if (a !== 0 || r !== 0) {
            const q = a * c, A = a * u, C = r * h, S = r * d;
            m += C, w += C, b += S, g += S, x += q, v += q, j += A, y += A;
          }
          s[0] = Math.min(s[0], m, b, g, w), s[1] = Math.min(s[1], x, j, y, v), s[2] = Math.max(s[2], m, b, g, w), s[3] = Math.max(s[3], x, j, y, v);
        }
        static inverseTransform(e) {
          const n = e[0] * e[3] - e[1] * e[2];
          return [e[3] / n, -e[1] / n, -e[2] / n, e[0] / n, (e[2] * e[5] - e[4] * e[3]) / n, (e[4] * e[1] - e[5] * e[0]) / n];
        }
        static singularValueDecompose2dScale(e, n) {
          const s = e[0], i = e[1], a = e[2], r = e[3], o = s ** 2 + i ** 2, l = s * a + i * r, f = a ** 2 + r ** 2, c = (o + f) / 2, h = Math.sqrt(c ** 2 - (o * f - l ** 2));
          n[0] = Math.sqrt(c + h || 1), n[1] = Math.sqrt(c - h || 1);
        }
        static normalizeRect(e) {
          const n = e.slice(0);
          return e[0] > e[2] && (n[0] = e[2], n[2] = e[0]), e[1] > e[3] && (n[1] = e[3], n[3] = e[1]), n;
        }
        static intersect(e, n) {
          const s = Math.max(Math.min(e[0], e[2]), Math.min(n[0], n[2])), i = Math.min(Math.max(e[0], e[2]), Math.max(n[0], n[2]));
          if (s > i) return null;
          const a = Math.max(Math.min(e[1], e[3]), Math.min(n[1], n[3])), r = Math.min(Math.max(e[1], e[3]), Math.max(n[1], n[3]));
          return a > r ? null : [s, a, i, r];
        }
        static pointBoundingBox(e, n, s) {
          s[0] = Math.min(s[0], e), s[1] = Math.min(s[1], n), s[2] = Math.max(s[2], e), s[3] = Math.max(s[3], n);
        }
        static rectBoundingBox(e, n, s, i, a) {
          a[0] = Math.min(a[0], e, s), a[1] = Math.min(a[1], n, i), a[2] = Math.max(a[2], e, s), a[3] = Math.max(a[3], n, i);
        }
        static #e(e, n, s, i, a, r, o, l, f, c) {
          if (f <= 0 || f >= 1) return;
          const h = 1 - f, u = f * f, d = u * f, m = h * (h * (h * e + 3 * f * n) + 3 * u * s) + d * i, g = h * (h * (h * a + 3 * f * r) + 3 * u * o) + d * l;
          c[0] = Math.min(c[0], m), c[1] = Math.min(c[1], g), c[2] = Math.max(c[2], m), c[3] = Math.max(c[3], g);
        }
        static #t(e, n, s, i, a, r, o, l, f, c, h, u) {
          if (Math.abs(f) < 1e-12) {
            Math.abs(c) >= 1e-12 && this.#e(e, n, s, i, a, r, o, l, -h / c, u);
            return;
          }
          const d = c ** 2 - 4 * h * f;
          if (d < 0) return;
          const m = Math.sqrt(d), g = 2 * f;
          this.#e(e, n, s, i, a, r, o, l, (-c + m) / g, u), this.#e(e, n, s, i, a, r, o, l, (-c - m) / g, u);
        }
        static bezierBoundingBox(e, n, s, i, a, r, o, l, f) {
          f[0] = Math.min(f[0], e, o), f[1] = Math.min(f[1], n, l), f[2] = Math.max(f[2], e, o), f[3] = Math.max(f[3], n, l), this.#t(e, s, a, o, n, i, r, l, 3 * (-e + 3 * (s - a) + o), 6 * (e - 2 * s + a), 3 * (s - e), f), this.#t(e, s, a, o, n, i, r, l, 3 * (-n + 3 * (i - r) + l), 6 * (n - 2 * i + r), 3 * (i - n), f);
        }
      };
      p(y6, "stringToUTF8String");
      eh = null;
      fp = null;
      p(cp, "normalizeUnicode");
      p(th, "getUuid");
      hr = "pdfjs_internal_id_";
      p(j6, "_isValidExplicitDest");
      g0 = p(() => [], "makeArr");
      b0 = p(() => /* @__PURE__ */ new Map(), "makeMap");
      w0 = p(() => /* @__PURE__ */ Object.create(null), "makeObj");
      p(hn, "MathClamp"), typeof Math.sumPrecise != "function" && (Math.sumPrecise = function(t) {
        return t.reduce((e, n) => e + n, 0);
      });
      Yo = class _Yo {
        static {
          p(this, "XfaText");
        }
        static textContent(e) {
          const n = [], s = { items: n, styles: /* @__PURE__ */ Object.create(null) };
          function i(a) {
            if (!a) return;
            let r = null;
            const o = a.name;
            if (o === "#text") r = a.value;
            else if (_Yo.shouldBuildText(o)) a?.attributes?.textContent ? r = a.attributes.textContent : a.value && (r = a.value);
            else return;
            if (r !== null && n.push({ str: r }), !!a.children) for (const l of a.children) i(l);
          }
          return p(i, "walk"), i(e), s;
        }
        static shouldBuildText(e) {
          return !(e === "textarea" || e === "input" || e === "option" || e === "select");
        }
      };
      nh = class {
        static {
          p(this, "XfaLayer");
        }
        static setupStorage(e, n, s, i, a) {
          const r = i.getValue(n, { value: null });
          switch (s.name) {
            case "textarea":
              if (r.value !== null && (e.textContent = r.value), a === "print") break;
              e.addEventListener("input", (o) => {
                i.setValue(n, { value: o.target.value });
              });
              break;
            case "input":
              if (s.attributes.type === "radio" || s.attributes.type === "checkbox") {
                if (r.value === s.attributes.xfaOn ? e.setAttribute("checked", true) : r.value === s.attributes.xfaOff && e.removeAttribute("checked"), a === "print") break;
                e.addEventListener("change", (o) => {
                  i.setValue(n, { value: o.target.checked ? o.target.getAttribute("xfaOn") : o.target.getAttribute("xfaOff") });
                });
              } else {
                if (r.value !== null && e.setAttribute("value", r.value), a === "print") break;
                e.addEventListener("input", (o) => {
                  i.setValue(n, { value: o.target.value });
                });
              }
              break;
            case "select":
              if (r.value !== null) {
                e.setAttribute("value", r.value);
                for (const o of s.children) o.attributes.value === r.value ? o.attributes.selected = true : o.attributes.hasOwnProperty("selected") && delete o.attributes.selected;
              }
              e.addEventListener("input", (o) => {
                const l = o.target.options, f = l.selectedIndex === -1 ? "" : l[l.selectedIndex].value;
                i.setValue(n, { value: f });
              });
              break;
          }
        }
        static setAttributes({ html: e, element: n, storage: s = null, intent: i, linkService: a }) {
          const { attributes: r } = n, o = e instanceof HTMLAnchorElement;
          r.type === "radio" && (r.name = `${r.name}-${i}`);
          for (const [l, f] of Object.entries(r)) if (f != null) switch (l) {
            case "class":
              f.length && e.setAttribute(l, f.join(" "));
              break;
            case "dataId":
              break;
            case "id":
              e.setAttribute("data-element-id", f);
              break;
            case "style":
              Object.assign(e.style, f);
              break;
            case "textContent":
              e.textContent = f;
              break;
            default:
              (!o || l !== "href" && l !== "newWindow") && e.setAttribute(l, f);
          }
          o && a.addLinkAttributes(e, r.href, r.newWindow), s && r.dataId && this.setupStorage(e, r.dataId, n, s);
        }
        static render(e) {
          const n = e.annotationStorage, s = e.linkService, i = e.xfaHtml, a = e.intent || "display", r = document.createElement(i.name);
          i.attributes && this.setAttributes({ html: r, element: i, intent: a, linkService: s });
          const o = a !== "richText", l = e.div;
          if (l.append(r), e.viewport) {
            const h = `matrix(${e.viewport.transform.join(",")})`;
            l.style.transform = h;
          }
          o && l.setAttribute("class", "xfaLayer xfaFont");
          const f = [];
          if (i.children.length === 0) {
            if (i.value) {
              const h = document.createTextNode(i.value);
              r.append(h), o && Yo.shouldBuildText(i.name) && f.push(h);
            }
            return { textDivs: f };
          }
          const c = [[i, -1, r]];
          for (; c.length > 0; ) {
            const [h, u, d] = c.at(-1);
            if (u + 1 === h.children.length) {
              c.pop();
              continue;
            }
            const m = h.children[++c.at(-1)[1]];
            if (m === null) continue;
            const { name: g } = m;
            if (g === "#text") {
              const w = document.createTextNode(m.value);
              f.push(w), d.append(w);
              continue;
            }
            const b = m?.attributes?.xmlns ? document.createElementNS(m.attributes.xmlns, g) : document.createElement(g);
            if (d.append(b), m.attributes && this.setAttributes({ html: b, element: m, storage: n, intent: a, linkService: s }), m.children?.length > 0) c.push([m, -1, b]);
            else if (m.value) {
              const w = document.createTextNode(m.value);
              o && Yo.shouldBuildText(g) && f.push(w), b.append(w);
            }
          }
          for (const h of l.querySelectorAll(".xfaNonInteractive input, .xfaNonInteractive textarea")) h.setAttribute("readOnly", true);
          return { textDivs: f };
        }
        static update(e) {
          const n = `matrix(${e.viewport.transform.join(",")})`;
          e.div.style.transform = n, e.div.hidden = false;
        }
      };
      Ai = "http://www.w3.org/2000/svg";
      Ea = class {
        static {
          p(this, "PixelsPerInch");
        }
        static CSS = 96;
        static PDF = 72;
        static PDF_TO_CSS_UNITS = this.CSS / this.PDF;
      };
      p(x0, "fetchData");
      Qo = class _Qo {
        static {
          p(this, "PageViewport");
        }
        constructor({ viewBox: e, userUnit: n, scale: s, rotation: i, offsetX: a = 0, offsetY: r = 0, dontFlip: o = false }) {
          this.viewBox = e, this.userUnit = n, this.scale = s, this.rotation = i, this.offsetX = a, this.offsetY = r, s *= n;
          const l = (e[2] + e[0]) / 2, f = (e[3] + e[1]) / 2;
          let c, h, u, d;
          switch (i %= 360, i < 0 && (i += 360), i) {
            case 180:
              c = -1, h = 0, u = 0, d = 1;
              break;
            case 90:
              c = 0, h = 1, u = 1, d = 0;
              break;
            case 270:
              c = 0, h = -1, u = -1, d = 0;
              break;
            case 0:
              c = 1, h = 0, u = 0, d = -1;
              break;
            default:
              throw new Error("PageViewport: Invalid rotation, must be a multiple of 90 degrees.");
          }
          o && (u = -u, d = -d);
          let m, g, b, w;
          c === 0 ? (m = Math.abs(f - e[1]) * s + a, g = Math.abs(l - e[0]) * s + r, b = (e[3] - e[1]) * s, w = (e[2] - e[0]) * s) : (m = Math.abs(l - e[0]) * s + a, g = Math.abs(f - e[1]) * s + r, b = (e[2] - e[0]) * s, w = (e[3] - e[1]) * s), this.transform = [c * s, h * s, u * s, d * s, m - c * s * l - u * s * f, g - h * s * l - d * s * f], this.width = b, this.height = w;
        }
        get rawDims() {
          const e = this.viewBox;
          return st(this, "rawDims", { pageWidth: e[2] - e[0], pageHeight: e[3] - e[1], pageX: e[0], pageY: e[1] });
        }
        clone({ scale: e = this.scale, rotation: n = this.rotation, offsetX: s = this.offsetX, offsetY: i = this.offsetY, dontFlip: a = false } = {}) {
          return new _Qo({ viewBox: this.viewBox.slice(), userUnit: this.userUnit, scale: e, rotation: n, offsetX: s, offsetY: i, dontFlip: a });
        }
        convertToViewportPoint(e, n) {
          const s = [e, n];
          return Ie.applyTransform(s, this.transform), s;
        }
        convertToViewportRectangle(e) {
          const n = [e[0], e[1]];
          Ie.applyTransform(n, this.transform);
          const s = [e[2], e[3]];
          return Ie.applyTransform(s, this.transform), [n[0], n[1], s[0], s[1]];
        }
        convertToPdfPoint(e, n) {
          const s = [e, n];
          return Ie.applyInverseTransform(s, this.transform), s;
        }
      };
      k0 = class extends Ta {
        static {
          p(this, "RenderingCancelledException");
        }
        constructor(e, n = 0) {
          super(e, "RenderingCancelledException"), this.extraDelay = n;
        }
      };
      p(Ro, "isDataScheme");
      p(y0, "isPdfFile");
      p(hp, "getFilenameFromUrl");
      p(up, "getPdfFilenameFromUrl");
      dp = class {
        static {
          p(this, "StatTimer");
        }
        #e = /* @__PURE__ */ new Map();
        times = [];
        time(e) {
          this.#e.has(e) && at(`Timer is already running for ${e}`), this.#e.set(e, Date.now());
        }
        timeEnd(e) {
          this.#e.has(e) || at(`Timer has not been started for ${e}`), this.times.push({ name: e, start: this.#e.get(e), end: Date.now() }), this.#e.delete(e);
        }
        toString() {
          const e = Math.max(...this.times.map((n) => n.name.length));
          return this.times.map((n) => `${n.name.padEnd(e)} ${n.end - n.start}ms
`).join("");
        }
      };
      p(_o, "isValidFetchUrl");
      p(ms, "noContextMenu");
      p(Nt, "stopEvent");
      p(v6, "deprecated");
      j0 = class {
        static {
          p(this, "PDFDateString");
        }
        static #e;
        static toDateObject(e) {
          if (e instanceof Date) return e;
          if (!e || typeof e != "string") return null;
          this.#e ||= new RegExp("^D:(\\d{4})(\\d{2})?(\\d{2})?(\\d{2})?(\\d{2})?(\\d{2})?([Z|+|-])?(\\d{2})?'?(\\d{2})?'?");
          const n = this.#e.exec(e);
          if (!n) return null;
          const s = parseInt(n[1], 10);
          let i = parseInt(n[2], 10);
          i = i >= 1 && i <= 12 ? i - 1 : 0;
          let a = parseInt(n[3], 10);
          a = a >= 1 && a <= 31 ? a : 1;
          let r = parseInt(n[4], 10);
          r = r >= 0 && r <= 23 ? r : 0;
          let o = parseInt(n[5], 10);
          o = o >= 0 && o <= 59 ? o : 0;
          let l = parseInt(n[6], 10);
          l = l >= 0 && l <= 59 ? l : 0;
          const f = n[7] || "Z";
          let c = parseInt(n[8], 10);
          c = c >= 0 && c <= 23 ? c : 0;
          let h = parseInt(n[9], 10) || 0;
          return h = h >= 0 && h <= 59 ? h : 0, f === "-" ? (r += c, o += h) : f === "+" && (r -= c, o -= h), new Date(Date.UTC(s, i, a, r, o, l));
        }
      };
      p(pp, "getXfaPageViewport");
      p(ur, "getRGB");
      p(q6, "getColorValues");
      p(zt, "getCurrentTransform");
      p(si, "getCurrentTransformInverse");
      p(Ki, "setLayerDimensions");
      Ws = class _Ws {
        static {
          p(this, "OutputScale");
        }
        constructor() {
          const { pixelRatio: e } = _Ws;
          this.sx = e, this.sy = e;
        }
        get scaled() {
          return this.sx !== 1 || this.sy !== 1;
        }
        get symmetric() {
          return this.sx === this.sy;
        }
        limitCanvas(e, n, s, i, a = -1) {
          let r = 1 / 0, o = 1 / 0, l = 1 / 0;
          s = _Ws.capPixels(s, a), s > 0 && (r = Math.sqrt(s / (e * n))), i !== -1 && (o = i / e, l = i / n);
          const f = Math.min(r, o, l);
          return this.sx > f || this.sy > f ? (this.sx = f, this.sy = f, true) : false;
        }
        static get pixelRatio() {
          return globalThis.devicePixelRatio || 1;
        }
        static capPixels(e, n) {
          if (n >= 0) {
            const s = Math.ceil(window.screen.availWidth * window.screen.availHeight * this.pixelRatio ** 2 * (1 + n / 100));
            return e > 0 ? Math.min(e, s) : s;
          }
          return e;
        }
      };
      v0 = ["image/apng", "image/avif", "image/bmp", "image/gif", "image/jpeg", "image/png", "image/svg+xml", "image/webp", "image/x-icon"];
      A6 = class {
        static {
          p(this, "ColorScheme");
        }
        static get isDarkMode() {
          return st(this, "isDarkMode", !!window?.matchMedia?.("(prefers-color-scheme: dark)").matches);
        }
      };
      mp = class {
        static {
          p(this, "CSSConstants");
        }
        static get commentForegroundColor() {
          const e = document.createElement("span");
          e.classList.add("comment", "sidebar");
          const { style: n } = e;
          n.width = n.height = "0", n.display = "none", n.color = "var(--comment-fg-color)", document.body.append(e);
          const { color: s } = window.getComputedStyle(e);
          return e.remove(), st(this, "commentForegroundColor", ur(s));
        }
      };
      p(gp, "applyOpacity");
      p(bp, "RGBToHSL");
      p(sh, "HSLToRGB");
      p(wp, "computeLuminance");
      p(xp, "contrastRatio");
      kp = /* @__PURE__ */ new Map();
      p(yp, "findContrastColor");
      p(ih, "renderRichText");
      p(jp, "makePathFromDrawOPS");
      Jo = class _Jo {
        static {
          p(this, "EditorToolbar");
        }
        #e = null;
        #t = null;
        #n;
        #s = null;
        #i = null;
        #a = null;
        #r = null;
        #o = null;
        static #l = null;
        constructor(e) {
          this.#n = e, _Jo.#l ||= Object.freeze({ freetext: "pdfjs-editor-remove-freetext-button", highlight: "pdfjs-editor-remove-highlight-button", ink: "pdfjs-editor-remove-ink-button", stamp: "pdfjs-editor-remove-stamp-button", signature: "pdfjs-editor-remove-signature-button" });
        }
        render() {
          const e = this.#e = document.createElement("div");
          e.classList.add("editToolbar", "hidden"), e.setAttribute("role", "toolbar");
          const n = this.#n._uiManager._signal;
          n instanceof AbortSignal && !n.aborted && (e.addEventListener("contextmenu", ms, { signal: n }), e.addEventListener("pointerdown", _Jo.#f, { signal: n }));
          const s = this.#s = document.createElement("div");
          s.className = "buttons", e.append(s);
          const i = this.#n.toolbarPosition;
          if (i) {
            const { style: a } = e, r = this.#n._uiManager.direction === "ltr" ? 1 - i[0] : i[0];
            a.insetInlineEnd = `${100 * r}%`, a.top = `calc(${100 * i[1]}% + var(--editor-toolbar-vert-offset))`;
          }
          return e;
        }
        get div() {
          return this.#e;
        }
        static #f(e) {
          e.stopPropagation();
        }
        #u(e) {
          this.#n._focusEventsAllowed = false, Nt(e);
        }
        #c(e) {
          this.#n._focusEventsAllowed = true, Nt(e);
        }
        #d(e) {
          const n = this.#n._uiManager._signal;
          return !(n instanceof AbortSignal) || n.aborted ? false : (e.addEventListener("focusin", this.#u.bind(this), { capture: true, signal: n }), e.addEventListener("focusout", this.#c.bind(this), { capture: true, signal: n }), e.addEventListener("contextmenu", ms, { signal: n }), true);
        }
        hide() {
          this.#e.classList.add("hidden"), this.#t?.hideDropdown();
        }
        show() {
          this.#e.classList.remove("hidden"), this.#i?.shown(), this.#a?.shown();
        }
        addDeleteButton() {
          const { editorType: e, _uiManager: n } = this.#n, s = document.createElement("button");
          s.classList.add("basic", "deleteButton"), s.tabIndex = 0, s.setAttribute("data-l10n-id", _Jo.#l[e]), this.#d(s) && s.addEventListener("click", (i) => {
            n.delete();
          }, { signal: n._signal }), this.#s.append(s);
        }
        get #g() {
          const e = document.createElement("div");
          return e.className = "divider", e;
        }
        async addAltText(e) {
          const n = await e.render();
          this.#d(n), this.#s.append(n, this.#g), this.#i = e;
        }
        addComment(e, n = null) {
          if (this.#a) return;
          const s = e.renderForToolbar();
          if (!s) return;
          this.#d(s);
          const i = this.#r = this.#g;
          n ? (this.#s.insertBefore(s, n), this.#s.insertBefore(i, n)) : this.#s.append(s, i), this.#a = e, e.toolbar = this;
        }
        addColorPicker(e) {
          if (this.#t) return;
          this.#t = e;
          const n = e.renderButton();
          this.#d(n), this.#s.append(n, this.#g);
        }
        async addEditSignatureButton(e) {
          const n = this.#o = await e.renderEditButton(this.#n);
          this.#d(n), this.#s.append(n, this.#g);
        }
        removeButton(e) {
          e === "comment" && (this.#a?.removeToolbarCommentButton(), this.#a = null, this.#r?.remove(), this.#r = null);
        }
        async addButton(e, n) {
          switch (e) {
            case "colorPicker":
              n && this.addColorPicker(n);
              break;
            case "altText":
              n && await this.addAltText(n);
              break;
            case "editSignature":
              n && await this.addEditSignatureButton(n);
              break;
            case "delete":
              this.addDeleteButton();
              break;
            case "comment":
              n && this.addComment(n);
              break;
          }
        }
        async addButtonBefore(e, n, s) {
          if (!n && e === "comment") return;
          const i = this.#s.querySelector(s);
          i && e === "comment" && this.addComment(n, i);
        }
        updateEditSignatureButton(e) {
          this.#o && (this.#o.title = e);
        }
        remove() {
          this.#e.remove(), this.#t?.destroy(), this.#t = null;
        }
      };
      S6 = class {
        static {
          p(this, "FloatingToolbar");
        }
        #e = null;
        #t = null;
        #n;
        constructor(e) {
          this.#n = e;
        }
        #s() {
          const e = this.#t = document.createElement("div");
          e.className = "editToolbar", e.setAttribute("role", "toolbar");
          const n = this.#n._signal;
          n instanceof AbortSignal && !n.aborted && e.addEventListener("contextmenu", ms, { signal: n });
          const s = this.#e = document.createElement("div");
          return s.className = "buttons", e.append(s), this.#n.hasCommentManager() && this.#a("commentButton", "pdfjs-comment-floating-button", "pdfjs-comment-floating-button-label", () => {
            this.#n.commentSelection("floating_button");
          }), this.#a("highlightButton", "pdfjs-highlight-floating-button1", "pdfjs-highlight-floating-button-label", () => {
            this.#n.highlightSelection("floating_button");
          }), e;
        }
        #i(e, n) {
          let s = 0, i = 0;
          for (const a of e) {
            const r = a.y + a.height;
            if (r < s) continue;
            const o = a.x + (n ? a.width : 0);
            if (r > s) {
              i = o, s = r;
              continue;
            }
            n ? o > i && (i = o) : o < i && (i = o);
          }
          return [n ? 1 - i : i, s];
        }
        show(e, n, s) {
          const [i, a] = this.#i(n, s), { style: r } = this.#t ||= this.#s();
          e.append(this.#t), r.insetInlineEnd = `${100 * i}%`, r.top = `calc(${100 * a}% + var(--editor-toolbar-vert-offset))`;
        }
        hide() {
          this.#t.remove();
        }
        #a(e, n, s, i) {
          const a = document.createElement("button");
          a.classList.add("basic", e), a.tabIndex = 0, a.setAttribute("data-l10n-id", n);
          const r = document.createElement("span");
          a.append(r), r.className = "visuallyHidden", r.setAttribute("data-l10n-id", s);
          const o = this.#n._signal;
          o instanceof AbortSignal && !o.aborted && (a.addEventListener("contextmenu", ms, { signal: o }), a.addEventListener("click", i, { signal: o })), this.#e.append(a);
        }
      };
      p(vp, "bindEvents");
      St = class _St {
        static {
          p(this, "CurrentPointers");
        }
        static #e = NaN;
        static #t = null;
        static #n = NaN;
        static #s = null;
        static initializeAndAddPointerId(e) {
          (_St.#t ||= /* @__PURE__ */ new Set()).add(e);
        }
        static setPointer(e, n) {
          _St.#e ||= n, _St.#s ??= e;
        }
        static setTimeStamp(e) {
          _St.#n = e;
        }
        static isSamePointerId(e) {
          return _St.#e === e;
        }
        static isSamePointerIdOrRemove(e) {
          return _St.#e === e ? true : (_St.#t?.delete(e), false);
        }
        static isSamePointerType(e) {
          return _St.#s === e;
        }
        static isInitializedAndDifferentPointerType(e) {
          return _St.#s !== null && !_St.isSamePointerType(e);
        }
        static isSameTimeStamp(e) {
          return _St.#n === e;
        }
        static isUsingMultiplePointers() {
          return _St.#t?.size >= 1;
        }
        static clearPointerType() {
          _St.#s = null;
        }
        static clearPointerIds() {
          _St.#e = NaN, _St.#t = null;
        }
        static clearTimeStamp() {
          _St.#n = NaN;
        }
      };
      C6 = class {
        static {
          p(this, "IdManager");
        }
        #e = 0;
        get id() {
          return `${Io}${this.#e++}`;
        }
      };
      qh = class _qh {
        static {
          p(this, "ImageManager");
        }
        #e = th();
        #t = 0;
        #n = null;
        static get _isSVGFittingCanvas() {
          const e = 'data:image/svg+xml;charset=UTF-8,<svg viewBox="0 0 1 1" width="1" height="1" xmlns="http://www.w3.org/2000/svg"><rect width="1" height="1" style="fill:red;"/></svg>', s = new OffscreenCanvas(1, 3).getContext("2d", { willReadFrequently: true }), i = new Image();
          i.src = e;
          const a = i.decode().then(() => (s.drawImage(i, 0, 0, 1, 1, 0, 0, 1, 3), new Uint32Array(s.getImageData(0, 0, 1, 1).data.buffer)[0] === 0));
          return st(this, "_isSVGFittingCanvas", a);
        }
        async #s(e, n) {
          this.#n ||= /* @__PURE__ */ new Map();
          let s = this.#n.get(e);
          if (s === null) return null;
          if (s?.bitmap) return s.refCounter += 1, s;
          try {
            s ||= { bitmap: null, id: `image_${this.#e}_${this.#t++}`, refCounter: 0, isSvg: false };
            let i;
            if (typeof n == "string" ? (s.url = n, i = await x0(n, "blob")) : n instanceof File ? i = s.file = n : n instanceof Blob && (i = n), i.type === "image/svg+xml") {
              const a = _qh._isSVGFittingCanvas, r = new FileReader(), o = new Image(), l = new Promise((f, c) => {
                o.onload = () => {
                  s.bitmap = o, s.isSvg = true, f();
                }, r.onload = async () => {
                  const h = s.svgUrl = r.result;
                  o.src = await a ? `${h}#svgView(preserveAspectRatio(none))` : h;
                }, o.onerror = r.onerror = c;
              });
              r.readAsDataURL(i), await l;
            } else s.bitmap = await createImageBitmap(i);
            s.refCounter = 1;
          } catch (i) {
            at(i), s = null;
          }
          return this.#n.set(e, s), s && this.#n.set(s.id, s), s;
        }
        async getFromFile(e) {
          const { lastModified: n, name: s, size: i, type: a } = e;
          return this.#s(`${n}_${s}_${i}_${a}`, e);
        }
        async getFromUrl(e) {
          return this.#s(e, e);
        }
        async getFromBlob(e, n) {
          const s = await n;
          return this.#s(e, s);
        }
        async getFromId(e) {
          this.#n ||= /* @__PURE__ */ new Map();
          const n = this.#n.get(e);
          if (!n) return null;
          if (n.bitmap) return n.refCounter += 1, n;
          if (n.file) return this.getFromFile(n.file);
          if (n.blobPromise) {
            const { blobPromise: s } = n;
            return delete n.blobPromise, this.getFromBlob(n.id, s);
          }
          return this.getFromUrl(n.url);
        }
        getFromCanvas(e, n) {
          this.#n ||= /* @__PURE__ */ new Map();
          let s = this.#n.get(e);
          if (s?.bitmap) return s.refCounter += 1, s;
          const i = new OffscreenCanvas(n.width, n.height);
          return i.getContext("2d").drawImage(n, 0, 0), s = { bitmap: i.transferToImageBitmap(), id: `image_${this.#e}_${this.#t++}`, refCounter: 1, isSvg: false }, this.#n.set(e, s), this.#n.set(s.id, s), s;
        }
        getSvgUrl(e) {
          const n = this.#n.get(e);
          return n?.isSvg ? n.svgUrl : null;
        }
        deleteId(e) {
          this.#n ||= /* @__PURE__ */ new Map();
          const n = this.#n.get(e);
          if (!n || (n.refCounter -= 1, n.refCounter !== 0)) return;
          const { bitmap: s } = n;
          if (!n.url && !n.file) {
            const i = new OffscreenCanvas(s.width, s.height);
            i.getContext("bitmaprenderer").transferFromImageBitmap(s), n.blobPromise = i.convertToBlob();
          }
          s.close?.(), n.bitmap = null;
        }
        isValidId(e) {
          return e.startsWith(`image_${this.#e}_`);
        }
      };
      I6 = class {
        static {
          p(this, "CommandManager");
        }
        #e = [];
        #t = false;
        #n;
        #s = -1;
        constructor(e = 128) {
          this.#n = e;
        }
        add({ cmd: e, undo: n, post: s, mustExec: i, type: a = NaN, overwriteIfSameType: r = false, keepUndo: o = false }) {
          if (i && e(), this.#t) return;
          const l = { cmd: e, undo: n, post: s, type: a };
          if (this.#s === -1) {
            this.#e.length > 0 && (this.#e.length = 0), this.#s = 0, this.#e.push(l);
            return;
          }
          if (r && this.#e[this.#s].type === a) {
            o && (l.undo = this.#e[this.#s].undo), this.#e[this.#s] = l;
            return;
          }
          const f = this.#s + 1;
          f === this.#n ? this.#e.splice(0, 1) : (this.#s = f, f < this.#e.length && this.#e.splice(f)), this.#e.push(l);
        }
        undo() {
          if (this.#s === -1) return;
          this.#t = true;
          const { undo: e, post: n } = this.#e[this.#s];
          e(), n?.(), this.#t = false, this.#s -= 1;
        }
        redo() {
          if (this.#s < this.#e.length - 1) {
            this.#s += 1, this.#t = true;
            const { cmd: e, post: n } = this.#e[this.#s];
            e(), n?.(), this.#t = false;
          }
        }
        hasSomethingToUndo() {
          return this.#s !== -1;
        }
        hasSomethingToRedo() {
          return this.#s < this.#e.length - 1;
        }
        cleanType(e) {
          if (this.#s !== -1) {
            for (let n = this.#s; n >= 0; n--) if (this.#e[n].type !== e) {
              this.#e.splice(n + 1, this.#s - n), this.#s = n;
              return;
            }
            this.#e.length = 0, this.#s = -1;
          }
        }
        destroy() {
          this.#e = null;
        }
      };
      Po = class {
        static {
          p(this, "KeyboardManager");
        }
        constructor(e) {
          this.buffer = [], this.callbacks = /* @__PURE__ */ new Map(), this.allKeys = /* @__PURE__ */ new Set();
          const { isMac: n } = rn.platform;
          for (const [s, i, a = {}] of e) for (const r of s) {
            const o = r.startsWith("mac+");
            n && o ? (this.callbacks.set(r.slice(4), { callback: i, options: a }), this.allKeys.add(r.split("+").at(-1))) : !n && !o && (this.callbacks.set(r, { callback: i, options: a }), this.allKeys.add(r.split("+").at(-1)));
          }
        }
        #e(e) {
          e.altKey && this.buffer.push("alt"), e.ctrlKey && this.buffer.push("ctrl"), e.metaKey && this.buffer.push("meta"), e.shiftKey && this.buffer.push("shift"), this.buffer.push(e.key);
          const n = this.buffer.join("+");
          return this.buffer.length = 0, n;
        }
        exec(e, n) {
          if (!this.allKeys.has(n.key)) return;
          const s = this.callbacks.get(this.#e(n));
          if (!s) return;
          const { callback: i, options: { bubbles: a = false, args: r = [], checker: o = null } } = s;
          o && !o(e, n) || (i.bind(e, ...r, n)(), a || Nt(n));
        }
      };
      Ah = class _Ah {
        static {
          p(this, "ColorManager");
        }
        static _colorsMapping = /* @__PURE__ */ new Map([["CanvasText", [0, 0, 0]], ["Canvas", [255, 255, 255]]]);
        get _colors() {
          const e = /* @__PURE__ */ new Map([["CanvasText", null], ["Canvas", null]]);
          return q6(e), st(this, "_colors", e);
        }
        convert(e) {
          const n = ur(e);
          if (!window.matchMedia("(forced-colors: active)").matches) return n;
          for (const [s, i] of this._colors) if (i.every((a, r) => a === n[r])) return _Ah._colorsMapping.get(s);
          return n;
        }
        getHexCode(e) {
          const n = this._colors.get(e);
          return n ? Ie.makeHexColor(...n) : e;
        }
      };
      Si = class _Si {
        static {
          p(this, "AnnotationEditorUIManager");
        }
        #e = new AbortController();
        #t = null;
        #n = null;
        #s = /* @__PURE__ */ new Map();
        #i = /* @__PURE__ */ new Map();
        #a = null;
        #r = null;
        #o = null;
        #l = null;
        #f = new I6();
        #u = null;
        #c = null;
        #d = null;
        #g = 0;
        #m = /* @__PURE__ */ new Set();
        #h = null;
        #p = null;
        #b = /* @__PURE__ */ new Set();
        _editorUndoBar = null;
        #y = false;
        #x = false;
        #v = false;
        #C = null;
        #w = null;
        #q = null;
        #j = null;
        #S = false;
        #T = null;
        #E = new C6();
        #I = false;
        #R = false;
        #F = false;
        #B = null;
        #_ = null;
        #M = null;
        #H = null;
        #z = null;
        #A = et.NONE;
        #k = /* @__PURE__ */ new Set();
        #D = null;
        #O = null;
        #G = null;
        #X = null;
        #V = null;
        #K = { isEditing: false, isEmpty: true, hasSomethingToUndo: false, hasSomethingToRedo: false, hasSelectedEditor: false, hasSelectedText: false };
        #L = [0, 0];
        #W = null;
        #$ = null;
        #Z = null;
        #ee = null;
        #N = null;
        static TRANSLATE_SMALL = 1;
        static TRANSLATE_BIG = 10;
        static get _keyboardManager() {
          const e = _Si.prototype, n = p((r) => r.#$.contains(document.activeElement) && document.activeElement.tagName !== "BUTTON" && r.hasSomethingToControl(), "arrowChecker"), s = p((r, { target: o }) => {
            if (o instanceof HTMLInputElement) {
              const { type: l } = o;
              return l !== "text" && l !== "number";
            }
            return true;
          }, "textInputChecker"), i = this.TRANSLATE_SMALL, a = this.TRANSLATE_BIG;
          return st(this, "_keyboardManager", new Po([[["ctrl+a", "mac+meta+a"], e.selectAll, { checker: s }], [["ctrl+z", "mac+meta+z"], e.undo, { checker: s }], [["ctrl+y", "ctrl+shift+z", "mac+meta+shift+z", "ctrl+shift+Z", "mac+meta+shift+Z"], e.redo, { checker: s }], [["Backspace", "alt+Backspace", "ctrl+Backspace", "shift+Backspace", "mac+Backspace", "mac+alt+Backspace", "mac+ctrl+Backspace", "Delete", "ctrl+Delete", "shift+Delete", "mac+Delete"], e.delete, { checker: s }], [["Enter", "mac+Enter"], e.addNewEditorFromKeyboard, { checker: p((r, { target: o }) => !(o instanceof HTMLButtonElement) && r.#$.contains(o) && !r.isEnterHandled, "checker") }], [[" ", "mac+ "], e.addNewEditorFromKeyboard, { checker: p((r, { target: o }) => !(o instanceof HTMLButtonElement) && r.#$.contains(document.activeElement), "checker") }], [["Escape", "mac+Escape"], e.unselectAll], [["ArrowLeft", "mac+ArrowLeft"], e.translateSelectedEditors, { args: [-i, 0], checker: n }], [["ctrl+ArrowLeft", "mac+shift+ArrowLeft"], e.translateSelectedEditors, { args: [-a, 0], checker: n }], [["ArrowRight", "mac+ArrowRight"], e.translateSelectedEditors, { args: [i, 0], checker: n }], [["ctrl+ArrowRight", "mac+shift+ArrowRight"], e.translateSelectedEditors, { args: [a, 0], checker: n }], [["ArrowUp", "mac+ArrowUp"], e.translateSelectedEditors, { args: [0, -i], checker: n }], [["ctrl+ArrowUp", "mac+shift+ArrowUp"], e.translateSelectedEditors, { args: [0, -a], checker: n }], [["ArrowDown", "mac+ArrowDown"], e.translateSelectedEditors, { args: [0, i], checker: n }], [["ctrl+ArrowDown", "mac+shift+ArrowDown"], e.translateSelectedEditors, { args: [0, a], checker: n }]]));
        }
        constructor(e, n, s, i, a, r, o, l, f, c, h, u, d, m, g, b) {
          const w = this._signal = this.#e.signal;
          this.#$ = e, this.#Z = n, this.#ee = s, this.#r = i, this.#u = a, this.#O = r, this.#V = l, this._eventBus = o, o._on("editingaction", this.onEditingAction.bind(this), { signal: w }), o._on("pagechanging", this.onPageChanging.bind(this), { signal: w }), o._on("scalechanging", this.onScaleChanging.bind(this), { signal: w }), o._on("rotationchanging", this.onRotationChanging.bind(this), { signal: w }), o._on("setpreference", this.onSetPreference.bind(this), { signal: w }), o._on("switchannotationeditorparams", (x) => this.updateParams(x.type, x.value), { signal: w }), window.addEventListener("pointerdown", () => {
            this.#R = true;
          }, { capture: true, signal: w }), window.addEventListener("pointerup", () => {
            this.#R = false;
          }, { capture: true, signal: w }), window.addEventListener("beforeunload", this.#ae.bind(this), { capture: true, signal: w }), this.#le(), this.#pe(), this.#ne(), this.#o = l.annotationStorage, this.#C = l.filterFactory, this.#G = f, this.#j = c || null, this.#y = h, this.#x = u, this.#v = d, this.#z = m || null, this.viewParameters = { realScale: Ea.PDF_TO_CSS_UNITS, rotation: 0 }, this.isShiftKeyDown = false, this._editorUndoBar = g || null, this._supportsPinchToZoom = b !== false, a?.setSidebarUiManager(this);
        }
        destroy() {
          this.#N?.resolve(), this.#N = null, this.#e?.abort(), this.#e = null, this._signal = null;
          for (const e of this.#i.values()) e.destroy();
          this.#i.clear(), this.#s.clear(), this.#b.clear(), this.#H?.clear(), this.#t = null, this.#k.clear(), this.#f.destroy(), this.#r?.destroy(), this.#u?.destroy(), this.#O?.destroy(), this.#T?.hide(), this.#T = null, this.#M?.destroy(), this.#M = null, this.#n = null, this.#w && (clearTimeout(this.#w), this.#w = null), this.#W && (clearTimeout(this.#W), this.#W = null), this._editorUndoBar?.destroy(), this.#V = null;
        }
        combinedSignal(e) {
          return AbortSignal.any([this._signal, e.signal]);
        }
        get mlManager() {
          return this.#z;
        }
        get useNewAltTextFlow() {
          return this.#x;
        }
        get useNewAltTextWhenAddingImage() {
          return this.#v;
        }
        get hcmFilter() {
          return st(this, "hcmFilter", this.#G ? this.#C.addHCMFilter(this.#G.foreground, this.#G.background) : "none");
        }
        get direction() {
          return st(this, "direction", getComputedStyle(this.#$).direction);
        }
        get _highlightColors() {
          return st(this, "_highlightColors", this.#j ? new Map(this.#j.split(",").map((e) => (e = e.split("=").map((n) => n.trim()), e[1] = e[1].toUpperCase(), e))) : null);
        }
        get highlightColors() {
          const { _highlightColors: e } = this;
          if (!e) return st(this, "highlightColors", null);
          const n = /* @__PURE__ */ new Map(), s = !!this.#G;
          for (const [i, a] of e) {
            const r = i.endsWith("_HCM");
            if (s && r) {
              n.set(i.replace("_HCM", ""), a);
              continue;
            }
            !s && !r && n.set(i, a);
          }
          return st(this, "highlightColors", n);
        }
        get highlightColorNames() {
          return st(this, "highlightColorNames", this.highlightColors ? new Map(Array.from(this.highlightColors, (e) => e.reverse())) : null);
        }
        getNonHCMColor(e) {
          if (!this._highlightColors) return e;
          const n = this.highlightColorNames.get(e);
          return this._highlightColors.get(n) || e;
        }
        getNonHCMColorName(e) {
          return this.highlightColorNames.get(e) || e;
        }
        setCurrentDrawingSession(e) {
          e ? (this.unselectAll(), this.disableUserSelect(true)) : this.disableUserSelect(false), this.#d = e;
        }
        setMainHighlightColorPicker(e) {
          this.#M = e;
        }
        editAltText(e, n = false) {
          this.#r?.editAltText(this, e, n);
        }
        hasCommentManager() {
          return !!this.#u;
        }
        editComment(e, n, s, i) {
          this.#u?.showDialog(this, e, n, s, i);
        }
        selectComment(e, n) {
          this.#i.get(e)?.getEditorByUID(n)?.toggleComment(true, true);
        }
        updateComment(e) {
          this.#u?.updateComment(e.getData());
        }
        updatePopupColor(e) {
          this.#u?.updatePopupColor(e);
        }
        removeComment(e) {
          this.#u?.removeComments([e.uid]);
        }
        deleteComment(e, n) {
          const s = p(() => {
            e.comment = n;
          }, "undo"), i = p(() => {
            this._editorUndoBar?.show(s, "comment"), this.toggleComment(null), e.comment = null;
          }, "cmd");
          this.addCommands({ cmd: i, undo: s, mustExec: true });
        }
        toggleComment(e, n, s = void 0) {
          this.#u?.toggleCommentPopup(e, n, s);
        }
        makeCommentColor(e, n) {
          return e && this.#u?.makeCommentColor(e, n) || null;
        }
        getCommentDialogElement() {
          return this.#u?.dialogElement || null;
        }
        async waitForEditorsRendered(e) {
          if (this.#i.has(e - 1)) return;
          const { resolve: n, promise: s } = Promise.withResolvers(), i = p((a) => {
            a.pageNumber === e && (this._eventBus._off("editorsrendered", i), n());
          }, "onEditorsRendered");
          this._eventBus.on("editorsrendered", i), await s;
        }
        getSignature(e) {
          this.#O?.getSignature({ uiManager: this, editor: e });
        }
        get signatureManager() {
          return this.#O;
        }
        switchToMode(e, n) {
          this._eventBus.on("annotationeditormodechanged", n, { once: true, signal: this._signal }), this._eventBus.dispatch("showannotationeditorui", { source: this, mode: e });
        }
        setPreference(e, n) {
          this._eventBus.dispatch("setpreference", { source: this, name: e, value: n });
        }
        onSetPreference({ name: e, value: n }) {
          e === "enableNewAltTextWhenAddingImage" && (this.#v = n);
        }
        onPageChanging({ pageNumber: e }) {
          this.#g = e - 1;
        }
        deletePage(e) {
          for (const n of this.getEditors(e)) n.remove();
          this.#i.delete(e), this.#g === e && (this.#g = 0);
        }
        focusMainContainer() {
          this.#$.focus();
        }
        findParent(e, n) {
          for (const s of this.#i.values()) {
            const { x: i, y: a, width: r, height: o } = s.div.getBoundingClientRect();
            if (e >= i && e <= i + r && n >= a && n <= a + o) return s;
          }
          return null;
        }
        disableUserSelect(e = false) {
          this.#Z.classList.toggle("noUserSelect", e);
        }
        addShouldRescale(e) {
          this.#b.add(e);
        }
        removeShouldRescale(e) {
          this.#b.delete(e);
        }
        onScaleChanging({ scale: e }) {
          this.commitOrRemove(), this.viewParameters.realScale = e * Ea.PDF_TO_CSS_UNITS;
          for (const n of this.#b) n.onScaleChanging();
          this.#d?.onScaleChanging();
        }
        onRotationChanging({ pagesRotation: e }) {
          this.commitOrRemove(), this.viewParameters.rotation = e;
        }
        #J({ anchorNode: e }) {
          return e.nodeType === Node.TEXT_NODE ? e.parentElement : e;
        }
        #te(e) {
          const { currentLayer: n } = this;
          if (n.hasTextLayer(e)) return n;
          for (const s of this.#i.values()) if (s.hasTextLayer(e)) return s;
          return null;
        }
        highlightSelection(e = "", n = false) {
          const s = document.getSelection();
          if (!s || s.isCollapsed) return;
          const { anchorNode: i, anchorOffset: a, focusNode: r, focusOffset: o } = s, l = s.toString(), c = this.#J(s).closest(".textLayer"), h = this.getSelectionBoxes(c);
          if (!h) return;
          s.empty();
          const u = this.#te(c), d = this.#A === et.NONE, m = p(() => {
            const g = u?.createAndAddNewEditor({ x: 0, y: 0 }, false, { methodOfCreation: e, boxes: h, anchorNode: i, anchorOffset: a, focusNode: r, focusOffset: o, text: l });
            d && this.showAllEditors("highlight", true, true), n && g?.editComment();
          }, "callback");
          if (d) {
            this.switchToMode(et.HIGHLIGHT, m);
            return;
          }
          m();
        }
        commentSelection(e = "") {
          this.highlightSelection(e, true);
        }
        #ae(e) {
          this.commitOrRemove(), this.currentLayer?.endDrawingSession(false);
        }
        #re() {
          const e = document.getSelection();
          if (!e || e.isCollapsed) return;
          const s = this.#J(e).closest(".textLayer"), i = this.getSelectionBoxes(s);
          i && (this.#T ||= new S6(this), this.#T.show(s, i, this.direction === "ltr"));
        }
        getAndRemoveDataFromAnnotationStorage(e) {
          if (!this.#o) return null;
          const n = `${Io}${e}`, s = this.#o.getRawValue(n);
          return s && this.#o.remove(n), s;
        }
        addToAnnotationStorage(e) {
          !e.isEmpty() && this.#o && !this.#o.has(e.id) && this.#o.setValue(e.id, e);
        }
        a11yAlert(e, n = null) {
          const s = this.#ee;
          s && (s.setAttribute("data-l10n-id", e), n ? s.setAttribute("data-l10n-args", JSON.stringify(n)) : s.removeAttribute("data-l10n-args"));
        }
        #oe() {
          const e = document.getSelection();
          if (!e || e.isCollapsed) {
            this.#D && (this.#T?.hide(), this.#D = null, this.#P({ hasSelectedText: false }));
            return;
          }
          const { anchorNode: n } = e;
          if (n === this.#D) return;
          const i = this.#J(e).closest(".textLayer");
          if (!i) {
            this.#D && (this.#T?.hide(), this.#D = null, this.#P({ hasSelectedText: false }));
            return;
          }
          if (this.#T?.hide(), this.#D = n, this.#P({ hasSelectedText: true }), !(this.#A !== et.HIGHLIGHT && this.#A !== et.NONE) && (this.#A === et.HIGHLIGHT && this.showAllEditors("highlight", true, true), this.#S = this.isShiftKeyDown, !this.isShiftKeyDown)) {
            const a = this.#A === et.HIGHLIGHT ? this.#te(i) : null;
            if (a?.toggleDrawing(), this.#R) {
              const r = new AbortController(), o = this.combinedSignal(r), l = p((f) => {
                f.type === "pointerup" && f.button !== 0 || (r.abort(), a?.toggleDrawing(true), f.type === "pointerup" && this.#Y("main_toolbar"));
              }, "pointerup");
              window.addEventListener("pointerup", l, { signal: o }), window.addEventListener("blur", l, { signal: o });
            } else a?.toggleDrawing(true), this.#Y("main_toolbar");
          }
        }
        #Y(e = "") {
          this.#A === et.HIGHLIGHT ? this.highlightSelection(e) : this.#y && this.#re();
        }
        #le() {
          document.addEventListener("selectionchange", this.#oe.bind(this), { signal: this._signal });
        }
        #fe() {
          if (this.#q) return;
          this.#q = new AbortController();
          const e = this.combinedSignal(this.#q);
          window.addEventListener("focus", this.focus.bind(this), { signal: e }), window.addEventListener("blur", this.blur.bind(this), { signal: e });
        }
        #ce() {
          this.#q?.abort(), this.#q = null;
        }
        blur() {
          if (this.isShiftKeyDown = false, this.#S && (this.#S = false, this.#Y("main_toolbar")), !this.hasSelection) return;
          const { activeElement: e } = document;
          for (const n of this.#k) if (n.div.contains(e)) {
            this.#_ = [n, e], n._focusEventsAllowed = false;
            break;
          }
        }
        focus() {
          if (!this.#_) return;
          const [e, n] = this.#_;
          this.#_ = null, n.addEventListener("focusin", () => {
            e._focusEventsAllowed = true;
          }, { once: true, signal: this._signal }), n.focus();
        }
        #ne() {
          if (this.#B) return;
          this.#B = new AbortController();
          const e = this.combinedSignal(this.#B);
          window.addEventListener("keydown", this.keydown.bind(this), { signal: e }), window.addEventListener("keyup", this.keyup.bind(this), { signal: e });
        }
        #he() {
          this.#B?.abort(), this.#B = null;
        }
        #ue() {
          if (this.#c) return;
          this.#c = new AbortController();
          const e = this.combinedSignal(this.#c);
          document.addEventListener("copy", this.copy.bind(this), { signal: e }), document.addEventListener("cut", this.cut.bind(this), { signal: e }), document.addEventListener("paste", this.paste.bind(this), { signal: e });
        }
        #de() {
          this.#c?.abort(), this.#c = null;
        }
        #pe() {
          const e = this._signal;
          document.addEventListener("dragover", this.dragOver.bind(this), { signal: e }), document.addEventListener("drop", this.drop.bind(this), { signal: e });
        }
        addEditListeners() {
          this.#ne(), this.setEditingState(true);
        }
        removeEditListeners() {
          this.#he(), this.setEditingState(false);
        }
        dragOver(e) {
          for (const { type: n } of e.dataTransfer.items) for (const s of this.#p) if (s.isHandlingMimeForPasting(n)) {
            e.dataTransfer.dropEffect = "copy", e.preventDefault();
            return;
          }
        }
        drop(e) {
          for (const n of e.dataTransfer.items) for (const s of this.#p) if (s.isHandlingMimeForPasting(n.type)) {
            s.paste(n, this.currentLayer), e.preventDefault();
            return;
          }
        }
        copy(e) {
          if (e.preventDefault(), this.#t?.commitOrRemove(), !this.hasSelection) return;
          const n = [];
          for (const s of this.#k) {
            const i = s.serialize(true);
            i && n.push(i);
          }
          n.length !== 0 && e.clipboardData.setData("application/pdfjs", JSON.stringify(n));
        }
        cut(e) {
          this.copy(e), this.delete();
        }
        async paste(e) {
          e.preventDefault();
          const { clipboardData: n } = e;
          for (const a of n.items) for (const r of this.#p) if (r.isHandlingMimeForPasting(a.type)) {
            r.paste(a, this.currentLayer);
            return;
          }
          let s = n.getData("application/pdfjs");
          if (!s) return;
          try {
            s = JSON.parse(s);
          } catch (a) {
            at(`paste: "${a.message}".`);
            return;
          }
          if (!Array.isArray(s)) return;
          this.unselectAll();
          const i = this.currentLayer;
          try {
            const a = [];
            for (const l of s) {
              const f = await i.deserialize(l);
              if (!f) return;
              a.push(f);
            }
            const r = p(() => {
              for (const l of a) this.#se(l);
              this.#ie(a);
            }, "cmd"), o = p(() => {
              for (const l of a) l.remove();
            }, "undo");
            this.addCommands({ cmd: r, undo: o, mustExec: true });
          } catch (a) {
            at(`paste: "${a.message}".`);
          }
        }
        keydown(e) {
          !this.isShiftKeyDown && e.key === "Shift" && (this.isShiftKeyDown = true), this.#A !== et.NONE && !this.isEditorHandlingKeyboard && _Si._keyboardManager.exec(this, e);
        }
        keyup(e) {
          this.isShiftKeyDown && e.key === "Shift" && (this.isShiftKeyDown = false, this.#S && (this.#S = false, this.#Y("main_toolbar")));
        }
        onEditingAction({ name: e }) {
          switch (e) {
            case "undo":
            case "redo":
            case "delete":
            case "selectAll":
              this[e]();
              break;
            case "highlightSelection":
              this.highlightSelection("context_menu");
              break;
            case "commentSelection":
              this.commentSelection("context_menu");
              break;
          }
        }
        updatePageIndex(e, n) {
          for (const i of this.getEditors(e)) i.pageIndex = n;
          const s = this.#a.get(e);
          s && (s.pageIndex = n, this.#i.set(n, s), this.#I ? s.enable() : s.disable());
        }
        startUpdatePages() {
          this.#a = new Map(this.#i), this.#i.clear();
        }
        endUpdatePages() {
          this.#a = null;
        }
        clonePage(e, n) {
          for (const s of this.getEditors(e)) {
            const i = s.serialize(s.mode !== et.HIGHLIGHT);
            i && (i.pageIndex = n, i.id = this.getId(), i.isClone = true, delete i.popupRef, this.#o.setValue(i.id, i));
          }
        }
        findClonesForPage(e) {
          const n = [], { pageIndex: s } = e;
          for (const [i, a] of this.#o) a.pageIndex === s && a.isClone && (this.#o.remove(i), n.push(e.deserialize(a).then((r) => {
            r && (r.isClone = true, e.addOrRebuild(r));
          })));
          return Promise.all(n);
        }
        #P(e) {
          Object.entries(e).some(([s, i]) => this.#K[s] !== i) && (this._eventBus.dispatch("editingstateschanged", { source: this, details: Object.assign(this.#K, e) }), this.#A === et.HIGHLIGHT && e.hasSelectedEditor === false && this.#U([[gt.HIGHLIGHT_FREE, true]]));
        }
        #U(e) {
          this._eventBus.dispatch("annotationeditorparamschanged", { source: this, details: e });
        }
        setEditingState(e) {
          e ? (this.#fe(), this.#ue(), this.#P({ isEditing: this.#A !== et.NONE, isEmpty: this.#Q(), hasSomethingToUndo: this.#f.hasSomethingToUndo(), hasSomethingToRedo: this.#f.hasSomethingToRedo(), hasSelectedEditor: false })) : (this.#ce(), this.#de(), this.#P({ isEditing: false }), this.disableUserSelect(false));
        }
        registerEditorTypes(e) {
          if (!this.#p) {
            this.#p = e;
            for (const n of this.#p) this.#U(n.defaultPropertiesToUpdate);
          }
        }
        getId() {
          return this.#E.id;
        }
        get currentLayer() {
          return this.#i.get(this.#g);
        }
        getLayer(e) {
          return this.#i.get(e);
        }
        get currentPageIndex() {
          return this.#g;
        }
        addLayer(e) {
          this.#i.set(e.pageIndex, e), this.#I ? e.enable() : e.disable();
        }
        removeLayer(e) {
          this.#i.delete(e.pageIndex);
        }
        async updateMode(e, n = null, s = false, i = false, a = false, r = false) {
          if (this.#A !== e && !(this.#N && (await this.#N.promise, !this.#N))) {
            if (this.#N = Promise.withResolvers(), this.#d?.commitOrRemove(), this.#A === et.POPUP && this.#u?.hideSidebar(), this.#u?.destroyPopup(), this.#A = e, e === et.NONE) {
              this.setEditingState(false), this.#ge();
              for (const o of this.#s.values()) o.hideStandaloneCommentButton();
              this._editorUndoBar?.hide(), this.toggleComment(null), this.#N.resolve();
              return;
            }
            for (const o of this.#s.values()) o.addStandaloneCommentButton();
            e === et.SIGNATURE && await this.#O?.loadSignatures(), s && St.clearPointerType(), this.setEditingState(true), await this.#me(), this.unselectAll();
            for (const o of this.#i.values()) o.updateMode(e);
            if (e === et.POPUP) {
              this.#n ||= await this.#V.getAnnotationsByType(new Set(this.#p.map((f) => f._editorType)));
              const o = /* @__PURE__ */ new Set(), l = [];
              for (const f of this.#s.values()) {
                const { annotationElementId: c, hasComment: h, deleted: u } = f;
                c && o.add(c), h && !u && l.push(f.getData());
              }
              for (const f of this.#n) {
                const { id: c, popupRef: h, contentsObj: u } = f;
                h && u?.str && !o.has(c) && !this.#m.has(c) && l.push(f);
              }
              this.#u?.showSidebar(l);
            }
            if (!n) {
              i && this.addNewEditorFromKeyboard(), this.#N.resolve();
              return;
            }
            for (const o of this.#s.values()) o.uid === n ? (this.setSelected(o), r ? o.editComment() : a ? o.enterInEditMode() : o.focus()) : o.unselect();
            this.#N.resolve();
          }
        }
        addNewEditorFromKeyboard() {
          this.currentLayer.canCreateNewEmptyEditor() && this.currentLayer.addNewEditor();
        }
        updateToolbar(e) {
          e.mode !== this.#A && this._eventBus.dispatch("switchannotationeditormode", { source: this, ...e });
        }
        updateParams(e, n) {
          if (this.#p) {
            switch (e) {
              case gt.CREATE:
                this.currentLayer.addNewEditor(n);
                return;
              case gt.HIGHLIGHT_SHOW_ALL:
                this._eventBus.dispatch("reporttelemetry", { source: this, details: { type: "editing", data: { type: "highlight", action: "toggle_visibility" } } }), (this.#X ||= /* @__PURE__ */ new Map()).set(e, n), this.showAllEditors("highlight", n);
                break;
            }
            if (this.hasSelection) for (const s of this.#k) s.updateParams(e, n);
            else for (const s of this.#p) s.updateDefaultParams(e, n);
          }
        }
        showAllEditors(e, n, s = false) {
          for (const a of this.#s.values()) a.editorType === e && a.show(n);
          (this.#X?.get(gt.HIGHLIGHT_SHOW_ALL) ?? true) !== n && this.#U([[gt.HIGHLIGHT_SHOW_ALL, n]]);
        }
        enableWaiting(e = false) {
          if (this.#F !== e) {
            this.#F = e;
            for (const n of this.#i.values()) e ? n.disableClick() : n.enableClick(), n.div.classList.toggle("waiting", e);
          }
        }
        async #me() {
          if (!this.#I) {
            this.#I = true;
            const e = [];
            for (const n of this.#i.values()) e.push(n.enable());
            await Promise.all(e);
            for (const n of this.#s.values()) n.enable();
          }
        }
        #ge() {
          if (this.unselectAll(), this.#I) {
            this.#I = false;
            for (const e of this.#i.values()) e.disable();
            for (const e of this.#s.values()) e.disable();
          }
        }
        *getEditors(e) {
          for (const n of this.#s.values()) n.pageIndex === e && (yield n);
        }
        getEditor(e) {
          return this.#s.get(e);
        }
        addEditor(e) {
          this.#s.set(e.id, e);
        }
        removeEditor(e) {
          e.div.contains(document.activeElement) && (this.#w && clearTimeout(this.#w), this.#w = setTimeout(() => {
            this.focusMainContainer(), this.#w = null;
          }, 0)), this.#s.delete(e.id), e.annotationElementId && this.#H?.delete(e.annotationElementId), this.unselect(e), (!e.annotationElementId || !this.#m.has(e.annotationElementId)) && this.#o?.remove(e.id);
        }
        addDeletedAnnotationElement(e) {
          this.#m.add(e.annotationElementId), this.addChangedExistingAnnotation(e), e.deleted = true;
        }
        isDeletedAnnotationElement(e) {
          return this.#m.has(e);
        }
        removeDeletedAnnotationElement(e) {
          this.#m.delete(e.annotationElementId), this.removeChangedExistingAnnotation(e), e.deleted = false;
        }
        #se(e) {
          const n = this.#i.get(e.pageIndex);
          n ? n.addOrRebuild(e) : (this.addEditor(e), this.addToAnnotationStorage(e));
        }
        setActiveEditor(e) {
          this.#t !== e && (this.#t = e, e && this.#U(e.propertiesToUpdate));
        }
        get #be() {
          let e = null;
          for (e of this.#k) ;
          return e;
        }
        updateUI(e) {
          this.#be === e && this.#U(e.propertiesToUpdate);
        }
        updateUIForDefaultProperties(e) {
          this.#U(e.defaultPropertiesToUpdate);
        }
        toggleSelected(e) {
          if (this.#k.has(e)) {
            this.#k.delete(e), e.unselect(), this.#P({ hasSelectedEditor: this.hasSelection });
            return;
          }
          this.#k.add(e), e.select(), this.#U(e.propertiesToUpdate), this.#P({ hasSelectedEditor: true });
        }
        setSelected(e) {
          this.updateToolbar({ mode: e.mode, editId: e.uid }), this.#d?.commitOrRemove();
          for (const n of this.#k) n !== e && n.unselect();
          this.#u?.destroyPopup(), this.#k.clear(), this.#k.add(e), e.select(), this.#U(e.propertiesToUpdate), this.#P({ hasSelectedEditor: true });
        }
        isSelected(e) {
          return this.#k.has(e);
        }
        get firstSelectedEditor() {
          return this.#k.values().next().value;
        }
        unselect(e) {
          e.unselect(), this.#k.delete(e), this.#P({ hasSelectedEditor: this.hasSelection });
        }
        get hasSelection() {
          return this.#k.size !== 0;
        }
        get isEnterHandled() {
          return this.#k.size === 1 && this.firstSelectedEditor.isEnterHandled;
        }
        undo() {
          this.#f.undo(), this.#P({ hasSomethingToUndo: this.#f.hasSomethingToUndo(), hasSomethingToRedo: true, isEmpty: this.#Q() }), this._editorUndoBar?.hide();
        }
        redo() {
          this.#f.redo(), this.#P({ hasSomethingToUndo: true, hasSomethingToRedo: this.#f.hasSomethingToRedo(), isEmpty: this.#Q() });
        }
        addCommands(e) {
          this.#f.add(e), this.#P({ hasSomethingToUndo: true, hasSomethingToRedo: false, isEmpty: this.#Q() });
        }
        cleanUndoStack(e) {
          this.#f.cleanType(e);
        }
        #Q() {
          if (this.#s.size === 0) return true;
          if (this.#s.size === 1) for (const e of this.#s.values()) return e.isEmpty();
          return false;
        }
        delete() {
          this.commitOrRemove();
          const e = this.currentLayer?.endDrawingSession(true);
          if (!this.hasSelection && !e) return;
          const n = e ? [e] : [...this.#k], s = p(() => {
            this._editorUndoBar?.show(i, n.length === 1 ? n[0].editorType : n.length);
            for (const a of n) a.remove();
          }, "cmd"), i = p(() => {
            for (const a of n) this.#se(a);
          }, "undo");
          this.addCommands({ cmd: s, undo: i, mustExec: true });
        }
        commitOrRemove() {
          this.#t?.commitOrRemove();
        }
        hasSomethingToControl() {
          return this.#t || this.hasSelection;
        }
        #ie(e) {
          for (const n of this.#k) n.unselect();
          this.#k.clear();
          for (const n of e) n.isEmpty() || (this.#k.add(n), n.select());
          this.#P({ hasSelectedEditor: this.hasSelection });
        }
        selectAll() {
          for (const e of this.#k) e.commit();
          this.#ie(this.#s.values());
        }
        unselectAll() {
          if (!(this.#t && (this.#t.commitOrRemove(), this.#A !== et.NONE)) && !this.#d?.commitOrRemove() && (this.#u?.destroyPopup(), !!this.hasSelection)) {
            for (const e of this.#k) e.unselect();
            this.#k.clear(), this.#P({ hasSelectedEditor: false });
          }
        }
        translateSelectedEditors(e, n, s = false) {
          if (s || this.commitOrRemove(), !this.hasSelection) return;
          this.#L[0] += e, this.#L[1] += n;
          const [i, a] = this.#L, r = [...this.#k], o = 1e3;
          this.#W && clearTimeout(this.#W), this.#W = setTimeout(() => {
            this.#W = null, this.#L[0] = this.#L[1] = 0, this.addCommands({ cmd: p(() => {
              for (const l of r) this.#s.has(l.id) && (l.translateInPage(i, a), l.translationDone());
            }, "cmd"), undo: p(() => {
              for (const l of r) this.#s.has(l.id) && (l.translateInPage(-i, -a), l.translationDone());
            }, "undo"), mustExec: false });
          }, o);
          for (const l of r) l.translateInPage(e, n), l.translationDone();
        }
        setUpDragSession() {
          if (this.hasSelection) {
            this.disableUserSelect(true), this.#h = /* @__PURE__ */ new Map();
            for (const e of this.#k) this.#h.set(e, { savedX: e.x, savedY: e.y, savedPageIndex: e.pageIndex, newX: 0, newY: 0, newPageIndex: -1 });
          }
        }
        endDragSession() {
          if (!this.#h) return false;
          this.disableUserSelect(false);
          const e = this.#h;
          this.#h = null;
          let n = false;
          for (const [{ x: i, y: a, pageIndex: r }, o] of e) o.newX = i, o.newY = a, o.newPageIndex = r, n ||= i !== o.savedX || a !== o.savedY || r !== o.savedPageIndex;
          if (!n) return false;
          const s = p((i, a, r, o) => {
            if (this.#s.has(i.id)) {
              const l = this.#i.get(o);
              l ? i._setParentAndPosition(l, a, r) : (i.pageIndex = o, i.x = a, i.y = r);
            }
          }, "move");
          return this.addCommands({ cmd: p(() => {
            for (const [i, { newX: a, newY: r, newPageIndex: o }] of e) s(i, a, r, o);
          }, "cmd"), undo: p(() => {
            for (const [i, { savedX: a, savedY: r, savedPageIndex: o }] of e) s(i, a, r, o);
          }, "undo"), mustExec: true }), true;
        }
        dragSelectedEditors(e, n) {
          if (this.#h) for (const s of this.#h.keys()) s.drag(e, n);
        }
        rebuild(e) {
          if (e.parent === null) {
            const n = this.getLayer(e.pageIndex);
            n ? (n.changeParent(e), n.addOrRebuild(e)) : (this.addEditor(e), this.addToAnnotationStorage(e), e.rebuild());
          } else e.parent.addOrRebuild(e);
        }
        get isEditorHandlingKeyboard() {
          return this.getActive()?.shouldGetKeyboardEvents() || this.#k.size === 1 && this.firstSelectedEditor.shouldGetKeyboardEvents();
        }
        isActive(e) {
          return this.#t === e;
        }
        getActive() {
          return this.#t;
        }
        getMode() {
          return this.#A;
        }
        isEditingMode() {
          return this.#A !== et.NONE;
        }
        get imageManager() {
          return st(this, "imageManager", new qh());
        }
        getSelectionBoxes(e) {
          if (!e) return null;
          const n = document.getSelection();
          for (let f = 0, c = n.rangeCount; f < c; f++) if (!e.contains(n.getRangeAt(f).commonAncestorContainer)) return null;
          const { x: s, y: i, width: a, height: r } = e.getBoundingClientRect();
          let o;
          switch (e.getAttribute("data-main-rotation")) {
            case "90":
              o = p((f, c, h, u) => ({ x: (c - i) / r, y: 1 - (f + h - s) / a, width: u / r, height: h / a }), "rotator");
              break;
            case "180":
              o = p((f, c, h, u) => ({ x: 1 - (f + h - s) / a, y: 1 - (c + u - i) / r, width: h / a, height: u / r }), "rotator");
              break;
            case "270":
              o = p((f, c, h, u) => ({ x: 1 - (c + u - i) / r, y: (f - s) / a, width: u / r, height: h / a }), "rotator");
              break;
            default:
              o = p((f, c, h, u) => ({ x: (f - s) / a, y: (c - i) / r, width: h / a, height: u / r }), "rotator");
              break;
          }
          const l = [];
          for (let f = 0, c = n.rangeCount; f < c; f++) {
            const h = n.getRangeAt(f);
            if (!h.collapsed) for (const { x: u, y: d, width: m, height: g } of h.getClientRects()) m === 0 || g === 0 || l.push(o(u, d, m, g));
          }
          return l.length === 0 ? null : l;
        }
        addChangedExistingAnnotation({ annotationElementId: e, id: n }) {
          (this.#l ||= /* @__PURE__ */ new Map()).set(e, n);
        }
        removeChangedExistingAnnotation({ annotationElementId: e }) {
          this.#l?.delete(e);
        }
        renderAnnotationElement(e) {
          const n = this.#l?.get(e.data.id);
          if (!n) return;
          const s = this.#o.getRawValue(n);
          s && (this.#A === et.NONE && !s.hasBeenModified || s.renderAnnotationElement(e));
        }
        setMissingCanvas(e, n, s) {
          const i = this.#H?.get(e);
          i && (i.setCanvas(n, s), this.#H.delete(e));
        }
        addMissingCanvas(e, n) {
          (this.#H ||= /* @__PURE__ */ new Map()).set(e, n);
        }
      };
      oi = class _oi {
        static {
          p(this, "AltText");
        }
        #e = null;
        #t = false;
        #n = null;
        #s = null;
        #i = null;
        #a = null;
        #r = false;
        #o = null;
        #l = null;
        #f = null;
        #u = null;
        #c = false;
        static #d = null;
        static _l10n = null;
        constructor(e) {
          this.#l = e, this.#c = e._uiManager.useNewAltTextFlow, _oi.#d ||= Object.freeze({ added: "pdfjs-editor-new-alt-text-added-button", "added-label": "pdfjs-editor-new-alt-text-added-button-label", missing: "pdfjs-editor-new-alt-text-missing-button", "missing-label": "pdfjs-editor-new-alt-text-missing-button-label", review: "pdfjs-editor-new-alt-text-to-review-button", "review-label": "pdfjs-editor-new-alt-text-to-review-button-label" });
        }
        static initialize(e) {
          _oi._l10n ??= e;
        }
        async render() {
          const e = this.#n = document.createElement("button");
          e.className = "altText", e.tabIndex = "0";
          const n = this.#s = document.createElement("span");
          e.append(n), this.#c ? (e.classList.add("new"), e.setAttribute("data-l10n-id", _oi.#d.missing), n.setAttribute("data-l10n-id", _oi.#d["missing-label"])) : (e.setAttribute("data-l10n-id", "pdfjs-editor-alt-text-button"), n.setAttribute("data-l10n-id", "pdfjs-editor-alt-text-button-label"));
          const s = this.#l._uiManager._signal;
          e.addEventListener("contextmenu", ms, { signal: s }), e.addEventListener("pointerdown", (a) => a.stopPropagation(), { signal: s });
          const i = p((a) => {
            a.preventDefault(), this.#l._uiManager.editAltText(this.#l), this.#c && this.#l._reportTelemetry({ action: "pdfjs.image.alt_text.image_status_label_clicked", data: { label: this.#g } });
          }, "onClick");
          return e.addEventListener("click", i, { capture: true, signal: s }), e.addEventListener("keydown", (a) => {
            a.target === e && a.key === "Enter" && (this.#r = true, i(a));
          }, { signal: s }), await this.#m(), e;
        }
        get #g() {
          return this.#e && "added" || this.#e === null && this.guessedText && "review" || "missing";
        }
        finish() {
          this.#n && (this.#n.focus({ focusVisible: this.#r }), this.#r = false);
        }
        isEmpty() {
          return this.#c ? this.#e === null : !this.#e && !this.#t;
        }
        hasData() {
          return this.#c ? this.#e !== null || !!this.#f : this.isEmpty();
        }
        get guessedText() {
          return this.#f;
        }
        async setGuessedText(e) {
          this.#e === null && (this.#f = e, this.#u = await _oi._l10n.get("pdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer", { generatedAltText: e }), this.#m());
        }
        toggleAltTextBadge(e = false) {
          if (!this.#c || this.#e) {
            this.#o?.remove(), this.#o = null;
            return;
          }
          if (!this.#o) {
            const n = this.#o = document.createElement("div");
            n.className = "noAltTextBadge", this.#l.div.append(n);
          }
          this.#o.classList.toggle("hidden", !e);
        }
        serialize(e) {
          let n = this.#e;
          return !e && this.#f === n && (n = this.#u), { altText: n, decorative: this.#t, guessedText: this.#f, textWithDisclaimer: this.#u };
        }
        get data() {
          return { altText: this.#e, decorative: this.#t };
        }
        set data({ altText: e, decorative: n, guessedText: s, textWithDisclaimer: i, cancel: a = false }) {
          s && (this.#f = s, this.#u = i), !(this.#e === e && this.#t === n) && (a || (this.#e = e, this.#t = n), this.#m());
        }
        toggle(e = false) {
          this.#n && (!e && this.#a && (clearTimeout(this.#a), this.#a = null), this.#n.disabled = !e);
        }
        shown() {
          this.#l._reportTelemetry({ action: "pdfjs.image.alt_text.image_status_label_displayed", data: { label: this.#g } });
        }
        destroy() {
          this.#n?.remove(), this.#n = null, this.#s = null, this.#i = null, this.#o?.remove(), this.#o = null;
        }
        async #m() {
          const e = this.#n;
          if (!e) return;
          if (this.#c) {
            if (e.classList.toggle("done", !!this.#e), e.setAttribute("data-l10n-id", _oi.#d[this.#g]), this.#s?.setAttribute("data-l10n-id", _oi.#d[`${this.#g}-label`]), !this.#e) {
              this.#i?.remove();
              return;
            }
          } else {
            if (!this.#e && !this.#t) {
              e.classList.remove("done"), this.#i?.remove();
              return;
            }
            e.classList.add("done"), e.setAttribute("data-l10n-id", "pdfjs-editor-alt-text-edit-button");
          }
          let n = this.#i;
          if (!n) {
            this.#i = n = document.createElement("span"), n.className = "tooltip", n.setAttribute("role", "tooltip"), n.id = `alt-text-tooltip-${this.#l.id}`;
            const i = 100, a = this.#l._uiManager._signal;
            a.addEventListener("abort", () => {
              clearTimeout(this.#a), this.#a = null;
            }, { once: true }), e.addEventListener("mouseenter", () => {
              this.#a = setTimeout(() => {
                this.#a = null, this.#i.classList.add("show"), this.#l._reportTelemetry({ action: "alt_text_tooltip" });
              }, i);
            }, { signal: a }), e.addEventListener("mouseleave", () => {
              this.#a && (clearTimeout(this.#a), this.#a = null), this.#i?.classList.remove("show");
            }, { signal: a });
          }
          this.#t ? n.setAttribute("data-l10n-id", "pdfjs-editor-alt-text-decorative-tooltip") : (n.removeAttribute("data-l10n-id"), n.textContent = this.#e), n.parentNode || e.append(n), this.#l.getElementForAltText()?.setAttribute("aria-describedby", n.id);
        }
      };
      q0 = class {
        static {
          p(this, "Comment");
        }
        #e = null;
        #t = null;
        #n = false;
        #s = null;
        #i = null;
        #a = null;
        #r = null;
        #o = null;
        #l = false;
        #f = null;
        constructor(e) {
          this.#s = e;
        }
        renderForToolbar() {
          const e = this.#t = document.createElement("button");
          return e.className = "comment", this.#u(e, false);
        }
        renderForStandalone() {
          const e = this.#e = document.createElement("button");
          e.className = "annotationCommentButton";
          const n = this.#s.commentButtonPosition;
          if (n) {
            const { style: s } = e;
            s.insetInlineEnd = `calc(${100 * (this.#s._uiManager.direction === "ltr" ? 1 - n[0] : n[0])}% - var(--comment-button-dim))`, s.top = `calc(${100 * n[1]}% - var(--comment-button-dim))`;
            const i = this.#s.commentButtonColor;
            i && (s.backgroundColor = i);
          }
          return this.#u(e, true);
        }
        focusButton() {
          setTimeout(() => {
            (this.#e ?? this.#t)?.focus();
          }, 0);
        }
        onUpdatedColor() {
          if (!this.#e) return;
          const e = this.#s.commentButtonColor;
          e && (this.#e.style.backgroundColor = e), this.#s._uiManager.updatePopupColor(this.#s);
        }
        get commentButtonWidth() {
          return (this.#e?.getBoundingClientRect().width ?? 0) / this.#s.parent.boundingClientRect.width;
        }
        get commentPopupPositionInLayer() {
          if (this.#f) return this.#f;
          if (!this.#e) return null;
          const { x: e, y: n, height: s } = this.#e.getBoundingClientRect(), { x: i, y: a, width: r, height: o } = this.#s.parent.boundingClientRect;
          return [(e - i) / r, (n + s - a) / o];
        }
        set commentPopupPositionInLayer(e) {
          this.#f = e;
        }
        hasDefaultPopupPosition() {
          return this.#f === null;
        }
        removeStandaloneCommentButton() {
          this.#e?.remove(), this.#e = null;
        }
        removeToolbarCommentButton() {
          this.#t?.remove(), this.#t = null;
        }
        setCommentButtonStates({ selected: e, hasPopup: n }) {
          this.#e && (this.#e.classList.toggle("selected", e), this.#e.ariaExpanded = n);
        }
        #u(e, n) {
          if (!this.#s._uiManager.hasCommentManager()) return null;
          e.tabIndex = "0", e.ariaHasPopup = "dialog", n ? (e.ariaControls = "commentPopup", e.setAttribute("data-l10n-id", "pdfjs-show-comment-button")) : (e.ariaControlsElements = [this.#s._uiManager.getCommentDialogElement()], e.setAttribute("data-l10n-id", "pdfjs-editor-add-comment-button"));
          const s = this.#s._uiManager._signal;
          if (!(s instanceof AbortSignal) || s.aborted) return e;
          e.addEventListener("contextmenu", ms, { signal: s }), n && (e.addEventListener("focusin", (a) => {
            this.#s._focusEventsAllowed = false, Nt(a);
          }, { capture: true, signal: s }), e.addEventListener("focusout", (a) => {
            this.#s._focusEventsAllowed = true, Nt(a);
          }, { capture: true, signal: s })), e.addEventListener("pointerdown", (a) => a.stopPropagation(), { signal: s });
          const i = p((a) => {
            a.preventDefault(), e === this.#t ? this.edit() : this.#s.toggleComment(true);
          }, "onClick");
          return e.addEventListener("click", i, { capture: true, signal: s }), e.addEventListener("keydown", (a) => {
            a.target === e && a.key === "Enter" && (this.#n = true, i(a));
          }, { signal: s }), e.addEventListener("pointerenter", () => {
            this.#s.toggleComment(false, true);
          }, { signal: s }), e.addEventListener("pointerleave", () => {
            this.#s.toggleComment(false, false);
          }, { signal: s }), e;
        }
        edit(e) {
          const n = this.commentPopupPositionInLayer;
          let s, i;
          if (n) [s, i] = n;
          else {
            [s, i] = this.#s.commentButtonPosition;
            const { width: c, height: h, x: u, y: d } = this.#s;
            s = u + s * c, i = d + i * h;
          }
          const a = this.#s.parent.boundingClientRect, { x: r, y: o, width: l, height: f } = a;
          this.#s._uiManager.editComment(this.#s, r + s * l, o + i * f, { ...e, parentDimensions: a });
        }
        finish() {
          this.#t && (this.#t.focus({ focusVisible: this.#n }), this.#n = false);
        }
        isDeleted() {
          return this.#l || this.#r === "";
        }
        isEmpty() {
          return this.#r === null;
        }
        hasBeenEdited() {
          return this.isDeleted() || this.#r !== this.#i;
        }
        serialize() {
          return this.data;
        }
        get data() {
          return { text: this.#r, richText: this.#a, date: this.#o, deleted: this.isDeleted() };
        }
        set data(e) {
          if (e !== this.#r && (this.#a = null), e === null) {
            this.#r = "", this.#l = true;
            return;
          }
          this.#r = e, this.#o = /* @__PURE__ */ new Date(), this.#l = false;
        }
        restoreData({ text: e, richText: n, date: s }) {
          this.#r = e, this.#a = n, this.#o = s, this.#l = false;
        }
        setInitialText(e, n = null) {
          this.#i = e, this.data = e, this.#o = null, this.#a = n;
        }
        shown() {
        }
        destroy() {
          this.#t?.remove(), this.#t = null, this.#e?.remove(), this.#e = null, this.#r = "", this.#a = null, this.#o = null, this.#s = null, this.#n = false, this.#l = false;
        }
      };
      Zo = class _Zo {
        static {
          p(this, "TouchManager");
        }
        #e;
        #t = false;
        #n = null;
        #s;
        #i;
        #a;
        #r;
        #o = null;
        #l;
        #f = null;
        #u;
        #c = null;
        constructor({ container: e, isPinchingDisabled: n = null, isPinchingStopped: s = null, onPinchStart: i = null, onPinching: a = null, onPinchEnd: r = null, signal: o }) {
          this.#e = e, this.#n = s, this.#s = n, this.#i = i, this.#a = a, this.#r = r, this.#u = new AbortController(), this.#l = AbortSignal.any([o, this.#u.signal]), e.addEventListener("touchstart", this.#d.bind(this), { passive: false, signal: this.#l });
        }
        get MIN_TOUCH_DISTANCE_TO_PINCH() {
          return 35 / Ws.pixelRatio;
        }
        #d(e) {
          if (this.#s?.()) return;
          if (e.touches.length === 1) {
            if (this.#o) return;
            const i = this.#o = new AbortController(), a = AbortSignal.any([this.#l, i.signal]), r = this.#e, o = { capture: true, signal: a, passive: false }, l = p((f) => {
              f.pointerType === "touch" && (this.#o?.abort(), this.#o = null);
            }, "cancelPointerDown");
            r.addEventListener("pointerdown", (f) => {
              f.pointerType === "touch" && (Nt(f), l(f));
            }, o), r.addEventListener("pointerup", l, o), r.addEventListener("pointercancel", l, o);
            return;
          }
          if (!this.#c) {
            this.#c = new AbortController();
            const i = AbortSignal.any([this.#l, this.#c.signal]), a = this.#e, r = { signal: i, capture: false, passive: false };
            a.addEventListener("touchmove", this.#g.bind(this), r);
            const o = this.#m.bind(this);
            a.addEventListener("touchend", o, r), a.addEventListener("touchcancel", o, r), r.capture = true, a.addEventListener("pointerdown", Nt, r), a.addEventListener("pointermove", Nt, r), a.addEventListener("pointercancel", Nt, r), a.addEventListener("pointerup", Nt, r), this.#i?.();
          }
          if (Nt(e), e.touches.length !== 2 || this.#n?.()) {
            this.#f = null;
            return;
          }
          let [n, s] = e.touches;
          n.identifier > s.identifier && ([n, s] = [s, n]), this.#f = { touch0X: n.screenX, touch0Y: n.screenY, touch1X: s.screenX, touch1Y: s.screenY };
        }
        #g(e) {
          if (!this.#f || e.touches.length !== 2) return;
          Nt(e);
          let [n, s] = e.touches;
          n.identifier > s.identifier && ([n, s] = [s, n]);
          const { screenX: i, screenY: a } = n, { screenX: r, screenY: o } = s, l = this.#f, { touch0X: f, touch0Y: c, touch1X: h, touch1Y: u } = l, d = h - f, m = u - c, g = r - i, b = o - a, w = Math.hypot(g, b) || 1, x = Math.hypot(d, m) || 1;
          if (!this.#t && Math.abs(x - w) <= _Zo.MIN_TOUCH_DISTANCE_TO_PINCH) return;
          if (l.touch0X = i, l.touch0Y = a, l.touch1X = r, l.touch1Y = o, !this.#t) {
            this.#t = true;
            return;
          }
          const y = [(i + r) / 2, (a + o) / 2];
          this.#a?.(y, x, w);
        }
        #m(e) {
          e.touches.length >= 2 || (this.#c && (this.#c.abort(), this.#c = null, this.#r?.()), this.#f && (Nt(e), this.#f = null, this.#t = false));
        }
        destroy() {
          this.#u?.abort(), this.#u = null, this.#o?.abort(), this.#o = null;
        }
      };
      We = class _We {
        static {
          p(this, "AnnotationEditor");
        }
        #e = null;
        #t = null;
        #n = null;
        #s = null;
        #i = null;
        #a = false;
        #r = null;
        #o = "";
        #l = null;
        #f = null;
        #u = null;
        #c = null;
        #d = null;
        #g = "";
        #m = false;
        #h = null;
        #p = false;
        #b = false;
        #y = false;
        #x = null;
        #v = 0;
        #C = 0;
        #w = null;
        #q = null;
        isSelected = false;
        _isCopy = false;
        _editToolbar = null;
        _initialOptions = /* @__PURE__ */ Object.create(null);
        _initialData = null;
        _isVisible = true;
        _uiManager = null;
        _focusEventsAllowed = true;
        static _l10n = null;
        static _l10nResizer = null;
        #j = false;
        #S = _We._zIndex++;
        static _borderLineWidth = -1;
        static _colorManager = new Ah();
        static _zIndex = 1;
        static _telemetryTimeout = 1e3;
        static get _resizerKeyboardManager() {
          const e = _We.prototype._resizeWithKeyboard, n = Si.TRANSLATE_SMALL, s = Si.TRANSLATE_BIG;
          return st(this, "_resizerKeyboardManager", new Po([[["ArrowLeft", "mac+ArrowLeft"], e, { args: [-n, 0] }], [["ctrl+ArrowLeft", "mac+shift+ArrowLeft"], e, { args: [-s, 0] }], [["ArrowRight", "mac+ArrowRight"], e, { args: [n, 0] }], [["ctrl+ArrowRight", "mac+shift+ArrowRight"], e, { args: [s, 0] }], [["ArrowUp", "mac+ArrowUp"], e, { args: [0, -n] }], [["ctrl+ArrowUp", "mac+shift+ArrowUp"], e, { args: [0, -s] }], [["ArrowDown", "mac+ArrowDown"], e, { args: [0, n] }], [["ctrl+ArrowDown", "mac+shift+ArrowDown"], e, { args: [0, s] }], [["Escape", "mac+Escape"], _We.prototype._stopResizingWithKeyboard]]));
        }
        constructor(e) {
          this.parent = e.parent, this.id = e.id, this.width = this.height = null, this.pageIndex = e.parent.pageIndex, this.name = e.name, this.div = null, this._uiManager = e.uiManager, this.annotationElementId = null, this._willKeepAspectRatio = false, this._initialOptions.isCentered = e.isCentered, this._structTreeParentId = null, this.annotationElementId = e.annotationElementId || null, this.creationDate = e.creationDate || /* @__PURE__ */ new Date(), this.modificationDate = e.modificationDate || null, this.canAddComment = true;
          const { rotation: n, rawDims: { pageWidth: s, pageHeight: i, pageX: a, pageY: r } } = this.parent.viewport;
          this.rotation = n, this.pageRotation = (360 + n - this._uiManager.viewParameters.rotation) % 360, this.pageDimensions = [s, i], this.pageTranslation = [a, r];
          const [o, l] = this.parentDimensions;
          this.x = e.x / o, this.y = e.y / l, this.isAttachedToDOM = false, this.deleted = false;
        }
        updatePageIndex(e) {
          this.pageIndex = e;
        }
        get editorType() {
          return Object.getPrototypeOf(this).constructor._type;
        }
        get mode() {
          return Object.getPrototypeOf(this).constructor._editorType;
        }
        static get isDrawer() {
          return false;
        }
        static get _defaultLineColor() {
          return st(this, "_defaultLineColor", this._colorManager.getHexCode("CanvasText"));
        }
        static deleteAnnotationElement(e) {
          const n = new T6({ id: e._uiManager.getId(), parent: e.parent, uiManager: e._uiManager });
          n.annotationElementId = e.annotationElementId, n.deleted = true, n._uiManager.addToAnnotationStorage(n);
        }
        static initialize(e, n) {
          if (_We._l10n ??= e, _We._l10nResizer ||= Object.freeze({ topLeft: "pdfjs-editor-resizer-top-left", topMiddle: "pdfjs-editor-resizer-top-middle", topRight: "pdfjs-editor-resizer-top-right", middleRight: "pdfjs-editor-resizer-middle-right", bottomRight: "pdfjs-editor-resizer-bottom-right", bottomMiddle: "pdfjs-editor-resizer-bottom-middle", bottomLeft: "pdfjs-editor-resizer-bottom-left", middleLeft: "pdfjs-editor-resizer-middle-left" }), _We._borderLineWidth !== -1) return;
          const s = getComputedStyle(document.documentElement);
          _We._borderLineWidth = parseFloat(s.getPropertyValue("--outline-width")) || 0;
        }
        static updateDefaultParams(e, n) {
        }
        static get defaultPropertiesToUpdate() {
          return [];
        }
        static isHandlingMimeForPasting(e) {
          return false;
        }
        static paste(e, n) {
          It("Not implemented");
        }
        get propertiesToUpdate() {
          return [];
        }
        get _isDraggable() {
          return this.#j;
        }
        set _isDraggable(e) {
          this.#j = e, this.div?.classList.toggle("draggable", e);
        }
        get uid() {
          return this.annotationElementId || this.id;
        }
        get isEnterHandled() {
          return true;
        }
        center() {
          const [e, n] = this.pageDimensions;
          switch (this.parentRotation) {
            case 90:
              this.x -= this.height * n / (e * 2), this.y += this.width * e / (n * 2);
              break;
            case 180:
              this.x += this.width / 2, this.y += this.height / 2;
              break;
            case 270:
              this.x += this.height * n / (e * 2), this.y -= this.width * e / (n * 2);
              break;
            default:
              this.x -= this.width / 2, this.y -= this.height / 2;
              break;
          }
          this.fixAndSetPosition();
        }
        addCommands(e) {
          this._uiManager.addCommands(e);
        }
        get currentLayer() {
          return this._uiManager.currentLayer;
        }
        setInBackground() {
          this.div.style.zIndex = 0;
        }
        setInForeground() {
          this.div.style.zIndex = this.#S;
        }
        setParent(e) {
          e !== null ? (this.pageIndex = e.pageIndex, this.pageDimensions = e.pageDimensions) : (this.#L(), this.#c?.remove(), this.#c = null), this.parent = e;
        }
        focusin(e) {
          this._focusEventsAllowed && (this.#m ? this.#m = false : this.parent.setSelected(this));
        }
        focusout(e) {
          !this._focusEventsAllowed || !this.isAttachedToDOM || e.relatedTarget?.closest(`#${this.id}`) || (e.preventDefault(), this.parent?.isMultipleSelection || this.commitOrRemove());
        }
        commitOrRemove() {
          this.isEmpty() ? this.remove() : this.commit();
        }
        commit() {
          this.isInEditMode() && this.addToAnnotationStorage();
        }
        addToAnnotationStorage() {
          this._uiManager.addToAnnotationStorage(this);
        }
        setAt(e, n, s, i) {
          const [a, r] = this.parentDimensions;
          [s, i] = this.screenToPageTranslation(s, i), this.x = (e + s) / a, this.y = (n + i) / r, this.fixAndSetPosition();
        }
        _moveAfterPaste(e, n) {
          if (this.isClone) {
            delete this.isClone;
            return;
          }
          const [s, i] = this.parentDimensions;
          this.setAt(e * s, n * i, this.width * s, this.height * i), this._onTranslated();
        }
        #T([e, n], s, i) {
          [s, i] = this.screenToPageTranslation(s, i), this.x += s / e, this.y += i / n, this._onTranslating(this.x, this.y), this.fixAndSetPosition();
        }
        translate(e, n) {
          this.#T(this.parentDimensions, e, n);
        }
        translateInPage(e, n) {
          this.#h ||= [this.x, this.y, this.width, this.height], this.#T(this.pageDimensions, e, n), this.div.scrollIntoView({ block: "nearest" });
        }
        translationDone() {
          this._onTranslated(this.x, this.y);
        }
        drag(e, n) {
          this.#h ||= [this.x, this.y, this.width, this.height];
          const { div: s, parentDimensions: [i, a] } = this;
          if (this.x += e / i, this.y += n / a, this.parent && (this.x < 0 || this.x > 1 || this.y < 0 || this.y > 1)) {
            const { x: h, y: u } = this.div.getBoundingClientRect();
            this.parent.findNewParent(this, h, u) && (this.x -= Math.floor(this.x), this.y -= Math.floor(this.y));
          }
          let { x: r, y: o } = this;
          const [l, f] = this.getBaseTranslation();
          r += l, o += f;
          const { style: c } = s;
          c.left = `${(100 * r).toFixed(2)}%`, c.top = `${(100 * o).toFixed(2)}%`, this._onTranslating(r, o), s.scrollIntoView({ block: "nearest" });
        }
        _onTranslating(e, n) {
        }
        _onTranslated(e, n) {
        }
        get _hasBeenMoved() {
          return !!this.#h && (this.#h[0] !== this.x || this.#h[1] !== this.y);
        }
        get _hasBeenResized() {
          return !!this.#h && (this.#h[2] !== this.width || this.#h[3] !== this.height);
        }
        getBaseTranslation() {
          const [e, n] = this.parentDimensions, { _borderLineWidth: s } = _We, i = s / e, a = s / n;
          switch (this.rotation) {
            case 90:
              return [-i, a];
            case 180:
              return [i, a];
            case 270:
              return [i, -a];
            default:
              return [-i, -a];
          }
        }
        get _mustFixPosition() {
          return true;
        }
        fixAndSetPosition(e = this.rotation) {
          const { div: { style: n }, pageDimensions: [s, i] } = this;
          let { x: a, y: r, width: o, height: l } = this;
          if (o *= s, l *= i, a *= s, r *= i, this._mustFixPosition) switch (e) {
            case 0:
              a = hn(a, 0, s - o), r = hn(r, 0, i - l);
              break;
            case 90:
              a = hn(a, 0, s - l), r = hn(r, o, i);
              break;
            case 180:
              a = hn(a, o, s), r = hn(r, l, i);
              break;
            case 270:
              a = hn(a, l, s), r = hn(r, 0, i - o);
              break;
          }
          this.x = a /= s, this.y = r /= i;
          const [f, c] = this.getBaseTranslation();
          a += f, r += c, n.left = `${(100 * a).toFixed(2)}%`, n.top = `${(100 * r).toFixed(2)}%`, this.moveInDOM();
        }
        static #E(e, n, s) {
          switch (s) {
            case 90:
              return [n, -e];
            case 180:
              return [-e, -n];
            case 270:
              return [-n, e];
            default:
              return [e, n];
          }
        }
        screenToPageTranslation(e, n) {
          return _We.#E(e, n, this.parentRotation);
        }
        pageTranslationToScreen(e, n) {
          return _We.#E(e, n, 360 - this.parentRotation);
        }
        #I(e) {
          switch (e) {
            case 90: {
              const [n, s] = this.pageDimensions;
              return [0, -n / s, s / n, 0];
            }
            case 180:
              return [-1, 0, 0, -1];
            case 270: {
              const [n, s] = this.pageDimensions;
              return [0, n / s, -s / n, 0];
            }
            default:
              return [1, 0, 0, 1];
          }
        }
        get parentScale() {
          return this._uiManager.viewParameters.realScale;
        }
        get parentRotation() {
          return (this._uiManager.viewParameters.rotation + this.pageRotation) % 360;
        }
        get parentDimensions() {
          const { parentScale: e, pageDimensions: [n, s] } = this;
          return [n * e, s * e];
        }
        setDims() {
          const { div: { style: e }, width: n, height: s } = this;
          e.width = `${(100 * n).toFixed(2)}%`, e.height = `${(100 * s).toFixed(2)}%`;
        }
        getInitialTranslation() {
          return [0, 0];
        }
        #R() {
          if (this.#l) return;
          this.#l = document.createElement("div"), this.#l.classList.add("resizers");
          const e = this._willKeepAspectRatio ? ["topLeft", "topRight", "bottomRight", "bottomLeft"] : ["topLeft", "topMiddle", "topRight", "middleRight", "bottomRight", "bottomMiddle", "bottomLeft", "middleLeft"], n = this._uiManager._signal;
          for (const s of e) {
            const i = document.createElement("div");
            this.#l.append(i), i.classList.add("resizer", s), i.setAttribute("data-resizer-name", s), i.addEventListener("pointerdown", this.#F.bind(this, s), { signal: n }), i.addEventListener("contextmenu", ms, { signal: n }), i.tabIndex = -1;
          }
          this.div.prepend(this.#l);
        }
        #F(e, n) {
          n.preventDefault();
          const { isMac: s } = rn.platform;
          if (n.button !== 0 || n.ctrlKey && s) return;
          this.#n?.toggle(false);
          const i = this._isDraggable;
          this._isDraggable = false, this.#f = [n.screenX, n.screenY];
          const a = new AbortController(), r = this._uiManager.combinedSignal(a);
          this.parent.togglePointerEvents(false), window.addEventListener("pointermove", this.#M.bind(this, e), { passive: true, capture: true, signal: r }), window.addEventListener("touchmove", Nt, { passive: false, signal: r }), window.addEventListener("contextmenu", ms, { signal: r }), this.#u = { savedX: this.x, savedY: this.y, savedWidth: this.width, savedHeight: this.height };
          const o = this.parent.div.style.cursor, l = this.div.style.cursor;
          this.div.style.cursor = this.parent.div.style.cursor = window.getComputedStyle(n.target).cursor;
          const f = p(() => {
            a.abort(), this.parent.togglePointerEvents(true), this.#n?.toggle(true), this._isDraggable = i, this.parent.div.style.cursor = o, this.div.style.cursor = l, this.#_();
          }, "pointerUpCallback");
          window.addEventListener("pointerup", f, { signal: r }), window.addEventListener("blur", f, { signal: r });
        }
        #B(e, n, s, i) {
          this.width = s, this.height = i, this.x = e, this.y = n, this.setDims(), this.fixAndSetPosition(), this._onResized();
        }
        _onResized() {
        }
        #_() {
          if (!this.#u) return;
          const { savedX: e, savedY: n, savedWidth: s, savedHeight: i } = this.#u;
          this.#u = null;
          const a = this.x, r = this.y, o = this.width, l = this.height;
          a === e && r === n && o === s && l === i || this.addCommands({ cmd: this.#B.bind(this, a, r, o, l), undo: this.#B.bind(this, e, n, s, i), mustExec: true });
        }
        static _round(e) {
          return Math.round(e * 1e4) / 1e4;
        }
        #M(e, n) {
          const [s, i] = this.parentDimensions, a = this.x, r = this.y, o = this.width, l = this.height, f = _We.MIN_SIZE / s, c = _We.MIN_SIZE / i, h = this.#I(this.rotation), u = p((z, O) => [h[0] * z + h[2] * O, h[1] * z + h[3] * O], "transf"), d = this.#I(360 - this.rotation), m = p((z, O) => [d[0] * z + d[2] * O, d[1] * z + d[3] * O], "invTransf");
          let g, b, w = false, x = false;
          switch (e) {
            case "topLeft":
              w = true, g = p((z, O) => [0, 0], "getPoint"), b = p((z, O) => [z, O], "getOpposite");
              break;
            case "topMiddle":
              g = p((z, O) => [z / 2, 0], "getPoint"), b = p((z, O) => [z / 2, O], "getOpposite");
              break;
            case "topRight":
              w = true, g = p((z, O) => [z, 0], "getPoint"), b = p((z, O) => [0, O], "getOpposite");
              break;
            case "middleRight":
              x = true, g = p((z, O) => [z, O / 2], "getPoint"), b = p((z, O) => [0, O / 2], "getOpposite");
              break;
            case "bottomRight":
              w = true, g = p((z, O) => [z, O], "getPoint"), b = p((z, O) => [0, 0], "getOpposite");
              break;
            case "bottomMiddle":
              g = p((z, O) => [z / 2, O], "getPoint"), b = p((z, O) => [z / 2, 0], "getOpposite");
              break;
            case "bottomLeft":
              w = true, g = p((z, O) => [0, O], "getPoint"), b = p((z, O) => [z, 0], "getOpposite");
              break;
            case "middleLeft":
              x = true, g = p((z, O) => [0, O / 2], "getPoint"), b = p((z, O) => [z, O / 2], "getOpposite");
              break;
          }
          const y = g(o, l), j = b(o, l);
          let v = u(...j);
          const q = _We._round(a + v[0]), A = _We._round(r + v[1]);
          let C = 1, S = 1, I, T;
          if (n.fromKeyboard) ({ deltaX: I, deltaY: T } = n);
          else {
            const { screenX: z, screenY: O } = n, [N, oe] = this.#f;
            [I, T] = this.screenToPageTranslation(z - N, O - oe), this.#f[0] = z, this.#f[1] = O;
          }
          if ([I, T] = m(I / s, T / i), w) {
            const z = Math.hypot(o, l);
            C = S = Math.max(Math.min(Math.hypot(j[0] - y[0] - I, j[1] - y[1] - T) / z, 1 / o, 1 / l), f / o, c / l);
          } else x ? C = hn(Math.abs(j[0] - y[0] - I), f, 1) / o : S = hn(Math.abs(j[1] - y[1] - T), c, 1) / l;
          const P = _We._round(o * C), H = _We._round(l * S);
          v = u(...b(P, H));
          const G = q - v[0], Z = A - v[1];
          this.#h ||= [this.x, this.y, this.width, this.height], this.width = P, this.height = H, this.x = G, this.y = Z, this.setDims(), this.fixAndSetPosition(), this._onResizing();
        }
        _onResizing() {
        }
        altTextFinish() {
          this.#n?.finish();
        }
        get toolbarButtons() {
          return null;
        }
        async addEditToolbar() {
          if (this._editToolbar || this.#b) return this._editToolbar;
          this._editToolbar = new Jo(this), this.div.append(this._editToolbar.render());
          const { toolbarButtons: e } = this;
          if (e) for (const [n, s] of e) await this._editToolbar.addButton(n, s);
          return this.hasComment || this._editToolbar.addButton("comment", this.addCommentButton()), this._editToolbar.addButton("delete"), this._editToolbar;
        }
        addCommentButtonInToolbar() {
          this._editToolbar?.addButtonBefore("comment", this.addCommentButton(), ".deleteButton");
        }
        removeCommentButtonFromToolbar() {
          this._editToolbar?.removeButton("comment");
        }
        removeEditToolbar() {
          this._editToolbar?.remove(), this._editToolbar = null, this.#n?.destroy();
        }
        addContainer(e) {
          const n = this._editToolbar?.div;
          n ? n.before(e) : this.div.append(e);
        }
        getClientDimensions() {
          return this.div.getBoundingClientRect();
        }
        createAltText() {
          return this.#n || (oi.initialize(_We._l10n), this.#n = new oi(this), this.#e && (this.#n.data = this.#e, this.#e = null)), this.#n;
        }
        get altTextData() {
          return this.#n?.data;
        }
        set altTextData(e) {
          this.#n && (this.#n.data = e);
        }
        get guessedAltText() {
          return this.#n?.guessedText;
        }
        async setGuessedAltText(e) {
          await this.#n?.setGuessedText(e);
        }
        serializeAltText(e) {
          return this.#n?.serialize(e);
        }
        hasAltText() {
          return !!this.#n && !this.#n.isEmpty();
        }
        hasAltTextData() {
          return this.#n?.hasData() ?? false;
        }
        focusCommentButton() {
          this.#s?.focusButton();
        }
        addCommentButton() {
          return this.canAddComment ? this.#s ||= new q0(this) : null;
        }
        addStandaloneCommentButton() {
          if (this._uiManager.hasCommentManager()) {
            if (this.#i) {
              this._uiManager.isEditingMode() && this.#i.classList.remove("hidden");
              return;
            }
            this.hasComment && (this.#i = this.#s.renderForStandalone(), this.div.append(this.#i));
          }
        }
        removeStandaloneCommentButton() {
          this.#s.removeStandaloneCommentButton(), this.#i = null;
        }
        hideStandaloneCommentButton() {
          this.#i?.classList.add("hidden");
        }
        get comment() {
          if (!this.#s) return null;
          const { data: { richText: e, text: n, date: s, deleted: i } } = this.#s;
          return { text: n, richText: e, date: s, deleted: i, color: this.getNonHCMColor(), opacity: this.opacity ?? 1 };
        }
        set comment(e) {
          this.#s ||= new q0(this), typeof e == "object" && e !== null ? this.#s.restoreData(e) : this.#s.data = e, this.hasComment ? (this.removeCommentButtonFromToolbar(), this.addStandaloneCommentButton(), this._uiManager.updateComment(this)) : (this.addCommentButtonInToolbar(), this.removeStandaloneCommentButton(), this._uiManager.removeComment(this));
        }
        setCommentData({ comment: e, popupRef: n, richText: s }) {
          if (!n || (this.#s ||= new q0(this), this.#s.setInitialText(e, s), !this.annotationElementId)) return;
          const i = this._uiManager.getAndRemoveDataFromAnnotationStorage(this.annotationElementId);
          i && this.updateFromAnnotationLayer(i);
        }
        get hasEditedComment() {
          return this.#s?.hasBeenEdited();
        }
        get hasDeletedComment() {
          return this.#s?.isDeleted();
        }
        get hasComment() {
          return !!this.#s && !this.#s.isEmpty() && !this.#s.isDeleted();
        }
        async editComment(e) {
          this.#s ||= new q0(this), this.#s.edit(e);
        }
        toggleComment(e, n = void 0) {
          this.hasComment && this._uiManager.toggleComment(this, e, n);
        }
        setSelectedCommentButton(e) {
          this.#s.setSelectedButton(e);
        }
        addComment(e) {
          if (this.hasEditedComment) {
            const [, , , i] = e.rect, [a] = this.pageDimensions, [r] = this.pageTranslation, o = r + a + 1, l = i - 100, f = o + 180;
            e.popup = { contents: this.comment.text, deleted: this.comment.deleted, rect: [o, l, f, i] };
          }
        }
        updateFromAnnotationLayer({ popup: { contents: e, deleted: n } }) {
          this.#s.data = n ? null : e;
        }
        get parentBoundingClientRect() {
          return this.parent.boundingClientRect;
        }
        render() {
          const e = this.div = document.createElement("div");
          e.setAttribute("data-editor-rotation", (360 - this.rotation) % 360), e.className = this.name, e.setAttribute("id", this.id), e.tabIndex = this.#a ? -1 : 0, e.setAttribute("role", "application"), this.defaultL10nId && e.setAttribute("data-l10n-id", this.defaultL10nId), this._isVisible || e.classList.add("hidden"), this.setInForeground(), this.#O();
          const [n, s] = this.parentDimensions;
          this.parentRotation % 180 !== 0 && (e.style.maxWidth = `${(100 * s / n).toFixed(2)}%`, e.style.maxHeight = `${(100 * n / s).toFixed(2)}%`);
          const [i, a] = this.getInitialTranslation();
          return this.translate(i, a), vp(this, e, ["keydown", "pointerdown", "dblclick"]), this.isResizable && this._uiManager._supportsPinchToZoom && (this.#q ||= new Zo({ container: e, isPinchingDisabled: p(() => !this.isSelected, "isPinchingDisabled"), onPinchStart: this.#H.bind(this), onPinching: this.#z.bind(this), onPinchEnd: this.#A.bind(this), signal: this._uiManager._signal })), this.addStandaloneCommentButton(), this._uiManager._editorUndoBar?.hide(), e;
        }
        #H() {
          this.#u = { savedX: this.x, savedY: this.y, savedWidth: this.width, savedHeight: this.height }, this.#n?.toggle(false), this.parent.togglePointerEvents(false);
        }
        #z(e, n, s) {
          let a = 0.7 * (s / n) + 1 - 0.7;
          if (a === 1) return;
          const r = this.#I(this.rotation), o = p((q, A) => [r[0] * q + r[2] * A, r[1] * q + r[3] * A], "transf"), [l, f] = this.parentDimensions, c = this.x, h = this.y, u = this.width, d = this.height, m = _We.MIN_SIZE / l, g = _We.MIN_SIZE / f;
          a = Math.max(Math.min(a, 1 / u, 1 / d), m / u, g / d);
          const b = _We._round(u * a), w = _We._round(d * a);
          if (b === u && w === d) return;
          this.#h ||= [c, h, u, d];
          const x = o(u / 2, d / 2), y = _We._round(c + x[0]), j = _We._round(h + x[1]), v = o(b / 2, w / 2);
          this.x = y - v[0], this.y = j - v[1], this.width = b, this.height = w, this.setDims(), this.fixAndSetPosition(), this._onResizing();
        }
        #A() {
          this.#n?.toggle(true), this.parent.togglePointerEvents(true), this.#_();
        }
        pointerdown(e) {
          const { isMac: n } = rn.platform;
          if (e.button !== 0 || e.ctrlKey && n) {
            e.preventDefault();
            return;
          }
          if (this.#m = true, this._isDraggable) {
            this.#D(e);
            return;
          }
          this.#k(e);
        }
        #k(e) {
          const { isMac: n } = rn.platform;
          e.ctrlKey && !n || e.shiftKey || e.metaKey && n ? this.parent.toggleSelected(this) : this.parent.setSelected(this);
        }
        #D(e) {
          const { isSelected: n } = this;
          this._uiManager.setUpDragSession();
          let s = false;
          const i = new AbortController(), a = this._uiManager.combinedSignal(i), r = { capture: true, passive: false, signal: a }, o = p((f) => {
            i.abort(), this.#r = null, this.#m = false, this._uiManager.endDragSession() || this.#k(f), s && this._onStopDragging();
          }, "cancelDrag");
          n && (this.#v = e.clientX, this.#C = e.clientY, this.#r = e.pointerId, this.#o = e.pointerType, window.addEventListener("pointermove", (f) => {
            s || (s = true, this._uiManager.toggleComment(this, true, false), this._onStartDragging());
            const { clientX: c, clientY: h, pointerId: u } = f;
            if (u !== this.#r) {
              Nt(f);
              return;
            }
            const [d, m] = this.screenToPageTranslation(c - this.#v, h - this.#C);
            this.#v = c, this.#C = h, this._uiManager.dragSelectedEditors(d, m);
          }, r), window.addEventListener("touchmove", Nt, r), window.addEventListener("pointerdown", (f) => {
            f.pointerType === this.#o && (this.#q || f.isPrimary) && o(f), Nt(f);
          }, r));
          const l = p((f) => {
            if (!this.#r || this.#r === f.pointerId) {
              o(f);
              return;
            }
            Nt(f);
          }, "pointerUpCallback");
          window.addEventListener("pointerup", l, { signal: a }), window.addEventListener("blur", l, { signal: a });
        }
        _onStartDragging() {
        }
        _onStopDragging() {
        }
        moveInDOM() {
          this.#x && clearTimeout(this.#x), this.#x = setTimeout(() => {
            this.#x = null, this.parent?.moveEditorInDOM(this);
          }, 0);
        }
        _setParentAndPosition(e, n, s) {
          e.changeParent(this), this.x = n, this.y = s, this.fixAndSetPosition(), this._onTranslated();
        }
        getRect(e, n, s = this.rotation) {
          const i = this.parentScale, [a, r] = this.pageDimensions, [o, l] = this.pageTranslation, f = e / i, c = n / i, h = this.x * a, u = this.y * r, d = this.width * a, m = this.height * r;
          switch (s) {
            case 0:
              return [h + f + o, r - u - c - m + l, h + f + d + o, r - u - c + l];
            case 90:
              return [h + c + o, r - u + f + l, h + c + m + o, r - u + f + d + l];
            case 180:
              return [h - f - d + o, r - u + c + l, h - f + o, r - u + c + m + l];
            case 270:
              return [h - c - m + o, r - u - f - d + l, h - c + o, r - u - f + l];
            default:
              throw new Error("Invalid rotation");
          }
        }
        getRectInCurrentCoords(e, n) {
          const [s, i, a, r] = e, o = a - s, l = r - i;
          switch (this.rotation) {
            case 0:
              return [s, n - r, o, l];
            case 90:
              return [s, n - i, l, o];
            case 180:
              return [a, n - i, o, l];
            case 270:
              return [a, n - r, l, o];
            default:
              throw new Error("Invalid rotation");
          }
        }
        getPDFRect() {
          return this.getRect(0, 0);
        }
        getNonHCMColor() {
          return this.color && _We._colorManager.convert(this._uiManager.getNonHCMColor(this.color));
        }
        onUpdatedColor() {
          this.#s?.onUpdatedColor();
        }
        getData() {
          const { comment: { text: e, color: n, date: s, opacity: i, deleted: a, richText: r }, uid: o, pageIndex: l, creationDate: f, modificationDate: c } = this;
          return { id: o, pageIndex: l, rect: this.getPDFRect(), richText: r, contentsObj: { str: e }, creationDate: f, modificationDate: s || c, popupRef: !a, color: n, opacity: i };
        }
        onceAdded(e) {
        }
        isEmpty() {
          return false;
        }
        enableEditMode() {
          return this.isInEditMode() ? false : (this.parent.setEditingState(false), this.#b = true, true);
        }
        disableEditMode() {
          return this.isInEditMode() ? (this.parent.setEditingState(true), this.#b = false, true) : false;
        }
        isInEditMode() {
          return this.#b;
        }
        shouldGetKeyboardEvents() {
          return this.#y;
        }
        needsToBeRebuilt() {
          return this.div && !this.isAttachedToDOM;
        }
        get isOnScreen() {
          const { top: e, left: n, bottom: s, right: i } = this.getClientDimensions(), { innerHeight: a, innerWidth: r } = window;
          return n < r && i > 0 && e < a && s > 0;
        }
        #O() {
          if (this.#d || !this.div) return;
          this.#d = new AbortController();
          const e = this._uiManager.combinedSignal(this.#d);
          this.div.addEventListener("focusin", this.focusin.bind(this), { signal: e }), this.div.addEventListener("focusout", this.focusout.bind(this), { signal: e });
        }
        rebuild() {
          this.#O();
        }
        rotate(e) {
        }
        resize() {
        }
        serializeDeleted() {
          return { id: this.annotationElementId, deleted: true, pageIndex: this.pageIndex, popupRef: this._initialData?.popupRef || "" };
        }
        serialize(e = false, n = null) {
          return { annotationType: this.mode, pageIndex: this.pageIndex, rect: this.getPDFRect(), rotation: this.rotation, structTreeParentId: this._structTreeParentId, popupRef: this._initialData?.popupRef || "" };
        }
        static async deserialize(e, n, s) {
          const i = new this.prototype.constructor({ parent: n, id: s.getId(), uiManager: s, annotationElementId: e.annotationElementId, creationDate: e.creationDate, modificationDate: e.modificationDate });
          i.rotation = e.rotation, i.#e = e.accessibilityData, i._isCopy = e.isCopy || false;
          const [a, r] = i.pageDimensions, [o, l, f, c] = i.getRectInCurrentCoords(e.rect, r);
          return i.x = o / a, i.y = l / r, i.width = f / a, i.height = c / r, i;
        }
        get hasBeenModified() {
          return !!this.annotationElementId && (this.deleted || this.serialize() !== null);
        }
        remove() {
          if (this.#d?.abort(), this.#d = null, this.isEmpty() || this.commit(), this.parent ? this.parent.remove(this) : this._uiManager.removeEditor(this), this.hideCommentPopup(), this.#x && (clearTimeout(this.#x), this.#x = null), this.#L(), this.removeEditToolbar(), this.#w) {
            for (const e of this.#w.values()) clearTimeout(e);
            this.#w = null;
          }
          this.parent = null, this.#q?.destroy(), this.#q = null, this.#c?.remove(), this.#c = null;
        }
        get isResizable() {
          return false;
        }
        makeResizable() {
          this.isResizable && (this.#R(), this.#l.classList.remove("hidden"));
        }
        get toolbarPosition() {
          return null;
        }
        get commentButtonPosition() {
          return this._uiManager.direction === "ltr" ? [1, 0] : [0, 0];
        }
        get commentButtonPositionInPage() {
          const { commentButtonPosition: [e, n] } = this, [s, i, a, r] = this.getPDFRect();
          return [_We._round(s + (a - s) * e), _We._round(i + (r - i) * (1 - n))];
        }
        get commentButtonColor() {
          return this._uiManager.makeCommentColor(this.getNonHCMColor(), this.opacity);
        }
        get commentPopupPosition() {
          return this.#s.commentPopupPositionInLayer;
        }
        set commentPopupPosition(e) {
          this.#s.commentPopupPositionInLayer = e;
        }
        hasDefaultPopupPosition() {
          return this.#s.hasDefaultPopupPosition();
        }
        get commentButtonWidth() {
          return this.#s.commentButtonWidth;
        }
        get elementBeforePopup() {
          return this.div;
        }
        setCommentButtonStates(e) {
          this.#s?.setCommentButtonStates(e);
        }
        keydown(e) {
          if (!this.isResizable || e.target !== this.div || e.key !== "Enter") return;
          this._uiManager.setSelected(this), this.#u = { savedX: this.x, savedY: this.y, savedWidth: this.width, savedHeight: this.height };
          const n = this.#l.children;
          if (!this.#t) {
            this.#t = Array.from(n);
            const r = this.#G.bind(this), o = this.#X.bind(this), l = this._uiManager._signal;
            for (const f of this.#t) {
              const c = f.getAttribute("data-resizer-name");
              f.setAttribute("role", "spinbutton"), f.addEventListener("keydown", r, { signal: l }), f.addEventListener("blur", o, { signal: l }), f.addEventListener("focus", this.#V.bind(this, c), { signal: l }), f.setAttribute("data-l10n-id", _We._l10nResizer[c]);
            }
          }
          const s = this.#t[0];
          let i = 0;
          for (const r of n) {
            if (r === s) break;
            i++;
          }
          const a = (360 - this.rotation + this.parentRotation) % 360 / 90 * (this.#t.length / 4);
          if (a !== i) {
            if (a < i) for (let o = 0; o < i - a; o++) this.#l.append(this.#l.firstElementChild);
            else if (a > i) for (let o = 0; o < a - i; o++) this.#l.firstElementChild.before(this.#l.lastElementChild);
            let r = 0;
            for (const o of n) {
              const f = this.#t[r++].getAttribute("data-resizer-name");
              o.setAttribute("data-l10n-id", _We._l10nResizer[f]);
            }
          }
          this.#K(0), this.#y = true, this.#l.firstElementChild.focus({ focusVisible: true }), e.preventDefault(), e.stopImmediatePropagation();
        }
        #G(e) {
          _We._resizerKeyboardManager.exec(this, e);
        }
        #X(e) {
          this.#y && e.relatedTarget?.parentNode !== this.#l && this.#L();
        }
        #V(e) {
          this.#g = this.#y ? e : "";
        }
        #K(e) {
          if (this.#t) for (const n of this.#t) n.tabIndex = e;
        }
        _resizeWithKeyboard(e, n) {
          this.#y && this.#M(this.#g, { deltaX: e, deltaY: n, fromKeyboard: true });
        }
        #L() {
          this.#y = false, this.#K(-1), this.#_();
        }
        _stopResizingWithKeyboard() {
          this.#L(), this.div.focus();
        }
        select() {
          if (this.isSelected && this._editToolbar) {
            this._editToolbar.show();
            return;
          }
          if (this.isSelected = true, this.makeResizable(), this.div?.classList.add("selectedEditor"), !this._editToolbar) {
            this.addEditToolbar().then(() => {
              this.div?.classList.contains("selectedEditor") && this._editToolbar?.show();
            });
            return;
          }
          this._editToolbar?.show(), this.#n?.toggleAltTextBadge(false);
        }
        focus() {
          this.div && !this.div.contains(document.activeElement) && setTimeout(() => this.div?.focus({ preventScroll: true }), 0);
        }
        unselect() {
          this.isSelected && (this.isSelected = false, this.#l?.classList.add("hidden"), this.div?.classList.remove("selectedEditor"), this.div?.contains(document.activeElement) && this._uiManager.currentLayer.div.focus({ preventScroll: true }), this._editToolbar?.hide(), this.#n?.toggleAltTextBadge(true), this.hideCommentPopup());
        }
        hideCommentPopup() {
          this.hasComment && this._uiManager.toggleComment(null);
        }
        updateParams(e, n) {
        }
        disableEditing() {
        }
        enableEditing() {
        }
        get canChangeContent() {
          return false;
        }
        enterInEditMode() {
          this.canChangeContent && (this.enableEditMode(), this.div.focus());
        }
        dblclick(e) {
          e.target.nodeName !== "BUTTON" && (this.enterInEditMode(), this.parent.updateToolbar({ mode: this.constructor._editorType, editId: this.uid }));
        }
        getElementForAltText() {
          return this.div;
        }
        get contentDiv() {
          return this.div;
        }
        get isEditing() {
          return this.#p;
        }
        set isEditing(e) {
          this.#p = e, this.parent && (e ? (this.parent.setSelected(this), this.parent.setActiveEditor(this)) : this.parent.setActiveEditor(null));
        }
        static get MIN_SIZE() {
          return 16;
        }
        static canCreateNewEmptyEditor() {
          return true;
        }
        get telemetryInitialData() {
          return { action: "added" };
        }
        get telemetryFinalData() {
          return null;
        }
        _reportTelemetry(e, n = false) {
          if (n) {
            this.#w ||= /* @__PURE__ */ new Map();
            const { action: s } = e;
            let i = this.#w.get(s);
            i && clearTimeout(i), i = setTimeout(() => {
              this._reportTelemetry(e), this.#w.delete(s), this.#w.size === 0 && (this.#w = null);
            }, _We._telemetryTimeout), this.#w.set(s, i);
            return;
          }
          e.type ||= this.editorType, this._uiManager._eventBus.dispatch("reporttelemetry", { source: this, details: { type: "editing", data: e } });
        }
        show(e = this._isVisible) {
          this.div.classList.toggle("hidden", !e), this._isVisible = e;
        }
        enable() {
          this.div && (this.div.tabIndex = 0), this.#a = false;
        }
        disable() {
          this.div && (this.div.tabIndex = -1), this.#a = true;
        }
        updateFakeAnnotationElement(e) {
          if (!this.#c && !this.deleted) {
            this.#c = e.addFakeAnnotation(this);
            return;
          }
          if (this.deleted) {
            this.#c.remove(), this.#c = null;
            return;
          }
          (this.hasEditedComment || this._hasBeenMoved || this._hasBeenResized) && this.#c.updateEdited({ rect: this.getPDFRect(), popup: this.comment });
        }
        renderAnnotationElement(e) {
          if (this.deleted) return e.hide(), null;
          let n = e.container.querySelector(".annotationContent");
          if (!n) n = document.createElement("div"), n.classList.add("annotationContent", this.editorType), e.container.prepend(n);
          else if (n.nodeName === "CANVAS") {
            const s = n;
            n = document.createElement("div"), n.classList.add("annotationContent", this.editorType), s.before(n);
          }
          return n;
        }
        resetAnnotationElement(e) {
          const { firstElementChild: n } = e.container;
          n?.nodeName === "DIV" && n.classList.contains("annotationContent") && n.remove();
        }
      };
      T6 = class extends We {
        static {
          p(this, "FakeEditor");
        }
        constructor(e) {
          super(e), this.annotationElementId = e.annotationElementId, this.deleted = true;
        }
        serialize() {
          return this.serializeDeleted();
        }
      };
      qp = 3285377520;
      Es = 4294901760;
      ii = 65535;
      Ap = class {
        static {
          p(this, "MurmurHash3_64");
        }
        constructor(e) {
          this.h1 = e ? e & 4294967295 : qp, this.h2 = e ? e & 4294967295 : qp;
        }
        update(e) {
          let n, s;
          if (typeof e == "string") {
            n = new Uint8Array(e.length * 2), s = 0;
            for (let g = 0, b = e.length; g < b; g++) {
              const w = e.charCodeAt(g);
              w <= 255 ? n[s++] = w : (n[s++] = w >>> 8, n[s++] = w & 255);
            }
          } else if (ArrayBuffer.isView(e)) n = e.slice(), s = n.byteLength;
          else throw new Error("Invalid data format, must be a string or TypedArray.");
          const i = s >> 2, a = s - i * 4, r = new Uint32Array(n.buffer, 0, i);
          let o = 0, l = 0, f = this.h1, c = this.h2;
          const h = 3432918353, u = 461845907, d = h & ii, m = u & ii;
          for (let g = 0; g < i; g++) g & 1 ? (o = r[g], o = o * h & Es | o * d & ii, o = o << 15 | o >>> 17, o = o * u & Es | o * m & ii, f ^= o, f = f << 13 | f >>> 19, f = f * 5 + 3864292196) : (l = r[g], l = l * h & Es | l * d & ii, l = l << 15 | l >>> 17, l = l * u & Es | l * m & ii, c ^= l, c = c << 13 | c >>> 19, c = c * 5 + 3864292196);
          switch (o = 0, a) {
            case 3:
              o ^= n[i * 4 + 2] << 16;
            case 2:
              o ^= n[i * 4 + 1] << 8;
            case 1:
              o ^= n[i * 4], o = o * h & Es | o * d & ii, o = o << 15 | o >>> 17, o = o * u & Es | o * m & ii, i & 1 ? f ^= o : c ^= o;
          }
          this.h1 = f, this.h2 = c;
        }
        hexdigest() {
          let e = this.h1, n = this.h2;
          return e ^= n >>> 1, e = e * 3981806797 & Es | e * 36045 & ii, n = n * 4283543511 & Es | ((n << 16 | e >>> 16) * 2950163797 & Es) >>> 16, e ^= n >>> 1, e = e * 444984403 & Es | e * 60499 & ii, n = n * 3301882366 & Es | ((n << 16 | e >>> 16) * 3120437893 & Es) >>> 16, e ^= n >>> 1, (e >>> 0).toString(16).padStart(8, "0") + (n >>> 0).toString(16).padStart(8, "0");
        }
      };
      Do = Object.freeze({ map: null, hash: "", transfer: void 0 });
      ah = class {
        static {
          p(this, "AnnotationStorage");
        }
        #e = false;
        #t = null;
        #n = null;
        #s = /* @__PURE__ */ new Map();
        onSetModified = null;
        onResetModified = null;
        onAnnotationEditor = null;
        getValue(e, n) {
          const s = this.#s.get(e);
          return s === void 0 ? n : Object.assign(n, s);
        }
        getRawValue(e) {
          return this.#s.get(e);
        }
        remove(e) {
          const n = this.#s.get(e);
          n !== void 0 && (n instanceof We && this.#n.delete(n.annotationElementId), this.#s.delete(e), this.#s.size === 0 && this.resetModified(), !this.#s.values().some((s) => s instanceof We) && this.onAnnotationEditor?.(null));
        }
        setValue(e, n) {
          const s = this.#s.get(e);
          let i = false;
          if (s !== void 0) for (const [a, r] of Object.entries(n)) s[a] !== r && (i = true, s[a] = r);
          else i = true, this.#s.set(e, n);
          i && this.#i(), n instanceof We && ((this.#n ||= /* @__PURE__ */ new Map()).set(n.annotationElementId, n), this.onAnnotationEditor?.(n.constructor._type));
        }
        has(e) {
          return this.#s.has(e);
        }
        get size() {
          return this.#s.size;
        }
        #i() {
          this.#e || (this.#e = true, this.onSetModified?.());
        }
        resetModified() {
          this.#e && (this.#e = false, this.onResetModified?.());
        }
        get print() {
          return new Sp(this);
        }
        get serializable() {
          if (this.#s.size === 0) return Do;
          const e = /* @__PURE__ */ new Map(), n = new Ap(), s = [], i = /* @__PURE__ */ Object.create(null);
          let a = false;
          for (const [r, o] of this.#s) {
            const l = o instanceof We ? o.serialize(false, i) : o;
            o.page && (o.pageIndex = o.page._pageIndex, delete o.page), l && (e.set(r, l), n.update(`${r}:${JSON.stringify(l)}`), a ||= !!l.bitmap);
          }
          if (a) for (const r of e.values()) r.bitmap && s.push(r.bitmap);
          return e.size > 0 ? { map: e, hash: n.hexdigest(), transfer: s } : Do;
        }
        get editorStats() {
          let e = null;
          const n = /* @__PURE__ */ new Map();
          let s = 0, i = 0;
          for (const a of this.#s.values()) {
            if (!(a instanceof We)) {
              a.popup && (a.popup.deleted ? i += 1 : s += 1);
              continue;
            }
            a.isCommentDeleted ? i += 1 : a.hasEditedComment && (s += 1);
            const r = a.telemetryFinalData;
            if (!r) continue;
            const { type: o } = r;
            n.has(o) || n.set(o, Object.getPrototypeOf(a).constructor), e ||= /* @__PURE__ */ Object.create(null);
            const l = e[o] ||= /* @__PURE__ */ new Map();
            for (const [f, c] of Object.entries(r)) {
              if (f === "type") continue;
              const h = l.getOrInsertComputed(f, b0);
              h.set(c, (h.get(c) ?? 0) + 1);
            }
          }
          if ((i > 0 || s > 0) && (e ||= /* @__PURE__ */ Object.create(null), e.comments = { deleted: i, edited: s }), !e) return null;
          for (const [a, r] of n) e[a] = r.computeTelemetryFinalData(e[a]);
          return e;
        }
        resetModifiedIds() {
          this.#t = null;
        }
        updateEditor(e, n) {
          const s = this.#n?.get(e);
          return s ? (s.updateFromAnnotationLayer(n), true) : false;
        }
        getEditor(e) {
          return this.#n?.get(e) || null;
        }
        get modifiedIds() {
          if (this.#t) return this.#t;
          const e = [];
          if (this.#n) for (const n of this.#n.values()) n.serialize() && e.push(n.annotationElementId);
          return this.#t = { ids: new Set(e), hash: e.join(",") };
        }
        [Symbol.iterator]() {
          return this.#s.entries();
        }
      };
      Sp = class extends ah {
        static {
          p(this, "PrintAnnotationStorage");
        }
        #e = Do;
        constructor(e) {
          super();
          const { serializable: n } = e;
          if (n === Do) return;
          const { map: s, hash: i, transfer: a } = n, r = structuredClone(s, a ? { transfer: a } : null);
          this.#e = { map: r, hash: i, transfer: [] };
        }
        get print() {
          It("Should not call PrintAnnotationStorage.print");
        }
        get serializable() {
          return this.#e;
        }
        get modifiedIds() {
          return st(this, "modifiedIds", { ids: /* @__PURE__ */ new Set(), hash: "" });
        }
      };
      dr = "__forcedDependency";
      ({ floor: Cp, ceil: Ip } = Math);
      p(Tp, "expandBBox");
      rh = new Uint32Array(new Uint8Array([255, 255, 0, 0]).buffer)[0];
      E6 = class {
        static {
          p(this, "BBoxReader");
        }
        #e;
        #t;
        constructor(e, n) {
          this.#e = e, this.#t = n;
        }
        get length() {
          return this.#e.length;
        }
        isEmpty(e) {
          return this.#e[e] === rh;
        }
        minX(e) {
          return this.#t[e * 4 + 0] / 256;
        }
        minY(e) {
          return this.#t[e * 4 + 1] / 256;
        }
        maxX(e) {
          return (this.#t[e * 4 + 2] + 1) / 256;
        }
        maxY(e) {
          return (this.#t[e * 4 + 3] + 1) / 256;
        }
      };
      Ep = p((t, e) => t?.getOrInsertComputed(e, () => ({ dependencies: /* @__PURE__ */ new Set(), isRenderingOperation: false })), "ensureDebugMetadata");
      F6 = class {
        static {
          p(this, "CanvasBBoxTracker");
        }
        #e = [[1, 0, 0, 1, 0, 0]];
        #t = [-1 / 0, -1 / 0, 1 / 0, 1 / 0];
        #n = new Float64Array([1 / 0, 1 / 0, -1 / 0, -1 / 0]);
        _pendingBBoxIdx = -1;
        #s;
        #i;
        #a;
        #r;
        _savesStack = [];
        _markedContentStack = [];
        constructor(e, n) {
          this.#s = e.width, this.#i = e.height, this.#o(n);
        }
        growOperationsCount(e) {
          e >= this.#r.length && this.#o(e, this.#r);
        }
        #o(e, n) {
          const s = new ArrayBuffer(e * 4);
          this.#a = new Uint8ClampedArray(s), this.#r = new Uint32Array(s), n && n.length > 0 ? (this.#r.set(n), this.#r.fill(rh, n.length)) : this.#r.fill(rh);
        }
        get clipBox() {
          return this.#t;
        }
        save(e) {
          return this.#t = { __proto__: this.#t }, this._savesStack.push(e), this;
        }
        restore(e, n) {
          const s = Object.getPrototypeOf(this.#t);
          if (s === null) return this;
          this.#t = s;
          const i = this._savesStack.pop();
          return i !== void 0 && (n?.(i, e), this.#r[e] = this.#r[i]), this;
        }
        recordOpenMarker(e) {
          return this._savesStack.push(e), this;
        }
        getOpenMarker() {
          return this._savesStack.length === 0 ? null : this._savesStack.at(-1);
        }
        recordCloseMarker(e, n) {
          const s = this._savesStack.pop();
          return s !== void 0 && (n?.(s, e), this.#r[e] = this.#r[s]), this;
        }
        beginMarkedContent(e) {
          return this._markedContentStack.push(e), this;
        }
        endMarkedContent(e, n) {
          const s = this._markedContentStack.pop();
          return s !== void 0 && (n?.(s, e), this.#r[e] = this.#r[s]), this;
        }
        pushBaseTransform(e) {
          return this.#e.push(Ie.multiplyByDOMMatrix(this.#e.at(-1), e.getTransform())), this;
        }
        popBaseTransform() {
          return this.#e.length > 1 && this.#e.pop(), this;
        }
        resetBBox(e) {
          return this._pendingBBoxIdx !== e && (this._pendingBBoxIdx = e, this.#n[0] = 1 / 0, this.#n[1] = 1 / 0, this.#n[2] = -1 / 0, this.#n[3] = -1 / 0), this;
        }
        recordClipBox(e, n, s, i, a, r) {
          const o = Ie.multiplyByDOMMatrix(this.#e.at(-1), n.getTransform()), l = [1 / 0, 1 / 0, -1 / 0, -1 / 0];
          Ie.axialAlignedBoundingBox([s, a, i, r], o, l);
          const f = Ie.intersect(this.#t, l);
          return f ? (this.#t[0] = f[0], this.#t[1] = f[1], this.#t[2] = f[2], this.#t[3] = f[3]) : (this.#t[0] = this.#t[1] = 1 / 0, this.#t[2] = this.#t[3] = -1 / 0), this;
        }
        recordBBox(e, n, s, i, a, r) {
          const o = this.#t;
          if (o[0] === 1 / 0) return this;
          const l = Ie.multiplyByDOMMatrix(this.#e.at(-1), n.getTransform());
          if (o[0] === -1 / 0) return Ie.axialAlignedBoundingBox([s, a, i, r], l, this.#n), this;
          const f = [1 / 0, 1 / 0, -1 / 0, -1 / 0];
          return Ie.axialAlignedBoundingBox([s, a, i, r], l, f), this.#n[0] = Math.min(this.#n[0], Math.max(f[0], o[0])), this.#n[1] = Math.min(this.#n[1], Math.max(f[1], o[1])), this.#n[2] = Math.max(this.#n[2], Math.min(f[2], o[2])), this.#n[3] = Math.max(this.#n[3], Math.min(f[3], o[3])), this;
        }
        recordFullPageBBox(e) {
          return this.#n[0] = Math.max(0, this.#t[0]), this.#n[1] = Math.max(0, this.#t[1]), this.#n[2] = Math.min(this.#s, this.#t[2]), this.#n[3] = Math.min(this.#i, this.#t[3]), this;
        }
        recordOperation(e, n = false, s) {
          if (this._pendingBBoxIdx !== e) return this;
          const i = Cp(this.#n[0] * 256 / this.#s), a = Cp(this.#n[1] * 256 / this.#i), r = Ip(this.#n[2] * 256 / this.#s), o = Ip(this.#n[3] * 256 / this.#i);
          if (Tp(this.#a, e, i, a, r, o), s) for (const l of s) for (const f of l) f !== e && Tp(this.#a, f, i, a, r, o);
          return n || (this._pendingBBoxIdx = -1), this;
        }
        bboxToClipBoxDropOperation(e) {
          return this._pendingBBoxIdx === e && (this._pendingBBoxIdx = -1, this.#t[0] = Math.max(this.#t[0], this.#n[0]), this.#t[1] = Math.max(this.#t[1], this.#n[1]), this.#t[2] = Math.min(this.#t[2], this.#n[2]), this.#t[3] = Math.min(this.#t[3], this.#n[3])), this;
        }
        take() {
          return new E6(this.#r, this.#a);
        }
        takeDebugMetadata() {
          throw new Error("Unreachable");
        }
        recordSimpleData(e, n) {
          return this;
        }
        recordIncrementalData(e, n) {
          return this;
        }
        resetIncrementalData(e, n) {
          return this;
        }
        recordNamedData(e, n) {
          return this;
        }
        recordSimpleDataFromNamed(e, n, s) {
          return this;
        }
        recordFutureForcedDependency(e, n) {
          return this;
        }
        inheritSimpleDataAsFutureForcedDependencies(e) {
          return this;
        }
        inheritPendingDependenciesAsFutureForcedDependencies() {
          return this;
        }
        recordCharacterBBox(e, n, s, i = 1, a = 0, r = 0, o) {
          return this;
        }
        getSimpleIndex(e) {
        }
        recordDependencies(e, n) {
          return this;
        }
        recordNamedDependency(e, n) {
          return this;
        }
        recordShowTextOperation(e, n = false) {
          return this;
        }
      };
      B6 = class {
        static {
          p(this, "CanvasDependencyTracker");
        }
        #e = { __proto__: null };
        #t = { __proto__: null, transform: [], moveText: [], sameLineText: [], [dr]: [] };
        #n = /* @__PURE__ */ new Map();
        #s = /* @__PURE__ */ new Set();
        #i = /* @__PURE__ */ new Map();
        #a;
        #r;
        #o;
        constructor(e, n = false) {
          this.#o = e, n && (this.#a = /* @__PURE__ */ new Map(), this.#r = (s, i) => {
            Ep(this.#a, i).dependencies.add(s);
          });
        }
        get clipBox() {
          return this.#o.clipBox;
        }
        growOperationsCount(e) {
          this.#o.growOperationsCount(e);
        }
        save(e) {
          return this.#e = { __proto__: this.#e }, this.#t = { __proto__: this.#t, transform: { __proto__: this.#t.transform }, moveText: { __proto__: this.#t.moveText }, sameLineText: { __proto__: this.#t.sameLineText }, [dr]: { __proto__: this.#t[dr] } }, this.#o.save(e), this;
        }
        restore(e) {
          this.#o.restore(e, this.#r);
          const n = Object.getPrototypeOf(this.#e);
          return n === null ? this : (this.#e = n, this.#t = Object.getPrototypeOf(this.#t), this);
        }
        recordOpenMarker(e) {
          return this.#o.recordOpenMarker(e, this.#r), this;
        }
        getOpenMarker() {
          return this.#o.getOpenMarker();
        }
        recordCloseMarker(e) {
          return this.#o.recordCloseMarker(e, this.#r), this;
        }
        beginMarkedContent(e) {
          return this.#o.beginMarkedContent(e), this;
        }
        endMarkedContent(e) {
          return this.#o.endMarkedContent(e, this.#r), this;
        }
        pushBaseTransform(e) {
          return this.#o.pushBaseTransform(e), this;
        }
        popBaseTransform() {
          return this.#o.popBaseTransform(), this;
        }
        recordSimpleData(e, n) {
          return this.#e[e] = n, this;
        }
        recordIncrementalData(e, n) {
          return this.#t[e].push(n), this;
        }
        resetIncrementalData(e, n) {
          return this.#t[e].length = 0, this;
        }
        recordNamedData(e, n) {
          return this.#n.set(e, n), this;
        }
        recordSimpleDataFromNamed(e, n, s) {
          this.#e[e] = this.#n.get(n) ?? s;
        }
        recordFutureForcedDependency(e, n) {
          return this.recordIncrementalData(dr, n), this;
        }
        inheritSimpleDataAsFutureForcedDependencies(e) {
          for (const n of e) n in this.#e && this.recordFutureForcedDependency(n, this.#e[n]);
          return this;
        }
        inheritPendingDependenciesAsFutureForcedDependencies() {
          for (const e of this.#s) this.recordFutureForcedDependency(dr, e);
          return this;
        }
        resetBBox(e) {
          return this.#o.resetBBox(e), this;
        }
        recordClipBox(e, n, s, i, a, r) {
          return this.#o.recordClipBox(e, n, s, i, a, r), this;
        }
        recordBBox(e, n, s, i, a, r) {
          return this.#o.recordBBox(e, n, s, i, a, r), this;
        }
        recordCharacterBBox(e, n, s, i = 1, a = 0, r = 0, o) {
          const l = s.bbox;
          let f, c;
          if (l && (f = l[2] !== l[0] && l[3] !== l[1] && this.#i.get(s), f !== false && (c = [0, 0, 0, 0], Ie.axialAlignedBoundingBox(l, s.fontMatrix, c), (i !== 1 || a !== 0 || r !== 0) && Ie.scaleMinMax([i, 0, 0, -i, a, r], c), f))) return this.recordBBox(e, n, c[0], c[2], c[1], c[3]);
          if (!o) return this.recordFullPageBBox(e);
          const h = o();
          return l && c && f === void 0 && (f = c[0] <= a - h.actualBoundingBoxLeft && c[2] >= a + h.actualBoundingBoxRight && c[1] <= r - h.actualBoundingBoxAscent && c[3] >= r + h.actualBoundingBoxDescent, this.#i.set(s, f), f) ? this.recordBBox(e, n, c[0], c[2], c[1], c[3]) : this.recordBBox(e, n, a - h.actualBoundingBoxLeft, a + h.actualBoundingBoxRight, r - h.actualBoundingBoxAscent, r + h.actualBoundingBoxDescent);
        }
        recordFullPageBBox(e) {
          return this.#o.recordFullPageBBox(e), this;
        }
        getSimpleIndex(e) {
          return this.#e[e];
        }
        recordDependencies(e, n) {
          const s = this.#s, i = this.#e, a = this.#t;
          for (const r of n) r in this.#e ? s.add(i[r]) : r in a && a[r].forEach(s.add, s);
          return this;
        }
        recordNamedDependency(e, n) {
          return this.#n.has(n) && this.#s.add(this.#n.get(n)), this;
        }
        recordOperation(e, n = false) {
          if (this.recordDependencies(e, [dr]), this.#a) {
            const i = Ep(this.#a, e), { dependencies: a } = i;
            this.#s.forEach(a.add, a), this.#o._savesStack.forEach(a.add, a), this.#o._markedContentStack.forEach(a.add, a), a.delete(e), i.isRenderingOperation = true;
          }
          const s = !n && e === this.#o._pendingBBoxIdx;
          return this.#o.recordOperation(e, n, [this.#s, this.#o._savesStack, this.#o._markedContentStack]), s && this.#s.clear(), this;
        }
        recordShowTextOperation(e, n = false) {
          const s = Array.from(this.#s);
          this.recordOperation(e, n), this.recordIncrementalData("sameLineText", e);
          for (const i of s) this.recordIncrementalData("sameLineText", i);
          return this;
        }
        bboxToClipBoxDropOperation(e, n = false) {
          const s = !n && e === this.#o._pendingBBoxIdx;
          return this.#o.bboxToClipBoxDropOperation(e), s && this.#s.clear(), this;
        }
        take() {
          return this.#i.clear(), this.#o.take();
        }
        takeDebugMetadata() {
          return this.#a;
        }
      };
      Q0 = class _Q0 {
        static {
          p(this, "CanvasNestedDependencyTracker");
        }
        #e;
        #t;
        #n;
        #s = 0;
        #i = 0;
        constructor(e, n, s) {
          if (e instanceof _Q0 && e.#n === !!s) return e;
          this.#e = e, this.#t = n, this.#n = !!s;
        }
        get clipBox() {
          return this.#e.clipBox;
        }
        growOperationsCount() {
          throw new Error("Unreachable");
        }
        save(e) {
          return this.#i++, this.#e.save(this.#t), this;
        }
        restore(e) {
          return this.#i > 0 && (this.#e.restore(this.#t), this.#i--), this;
        }
        recordOpenMarker(e) {
          return this.#s++, this;
        }
        getOpenMarker() {
          return this.#s > 0 ? this.#t : this.#e.getOpenMarker();
        }
        recordCloseMarker(e) {
          return this.#s--, this;
        }
        beginMarkedContent(e) {
          return this;
        }
        endMarkedContent(e) {
          return this;
        }
        pushBaseTransform(e) {
          return this.#e.pushBaseTransform(e), this;
        }
        popBaseTransform() {
          return this.#e.popBaseTransform(), this;
        }
        recordSimpleData(e, n) {
          return this.#e.recordSimpleData(e, this.#t), this;
        }
        recordIncrementalData(e, n) {
          return this.#e.recordIncrementalData(e, this.#t), this;
        }
        resetIncrementalData(e, n) {
          return this.#e.resetIncrementalData(e, this.#t), this;
        }
        recordNamedData(e, n) {
          return this;
        }
        recordSimpleDataFromNamed(e, n, s) {
          return this.#e.recordSimpleDataFromNamed(e, n, this.#t), this;
        }
        recordFutureForcedDependency(e, n) {
          return this.#e.recordFutureForcedDependency(e, this.#t), this;
        }
        inheritSimpleDataAsFutureForcedDependencies(e) {
          return this.#e.inheritSimpleDataAsFutureForcedDependencies(e), this;
        }
        inheritPendingDependenciesAsFutureForcedDependencies() {
          return this.#e.inheritPendingDependenciesAsFutureForcedDependencies(), this;
        }
        resetBBox(e) {
          return this.#n || this.#e.resetBBox(this.#t), this;
        }
        recordClipBox(e, n, s, i, a, r) {
          return this.#n || this.#e.recordClipBox(this.#t, n, s, i, a, r), this;
        }
        recordBBox(e, n, s, i, a, r) {
          return this.#n || this.#e.recordBBox(this.#t, n, s, i, a, r), this;
        }
        recordCharacterBBox(e, n, s, i, a, r, o) {
          return this.#n || this.#e.recordCharacterBBox(this.#t, n, s, i, a, r, o), this;
        }
        recordFullPageBBox(e) {
          return this.#n || this.#e.recordFullPageBBox(this.#t), this;
        }
        getSimpleIndex(e) {
          return this.#e.getSimpleIndex(e);
        }
        recordDependencies(e, n) {
          return this.#e.recordDependencies(this.#t, n), this;
        }
        recordNamedDependency(e, n) {
          return this.#e.recordNamedDependency(this.#t, n), this;
        }
        recordOperation(e) {
          return this.#e.recordOperation(this.#t, true), this;
        }
        recordShowTextOperation(e) {
          return this.#e.recordShowTextOperation(this.#t, true), this;
        }
        bboxToClipBoxDropOperation(e) {
          return this.#n || this.#e.bboxToClipBoxDropOperation(this.#t, true), this;
        }
        take() {
          throw new Error("Unreachable");
        }
        takeDebugMetadata() {
          throw new Error("Unreachable");
        }
      };
      Fs = { stroke: ["path", "transform", "filter", "strokeColor", "strokeAlpha", "lineWidth", "lineCap", "lineJoin", "miterLimit", "dash"], fill: ["path", "transform", "filter", "fillColor", "fillAlpha", "globalCompositeOperation", "SMask"], imageXObject: ["transform", "SMask", "filter", "fillAlpha", "strokeAlpha", "globalCompositeOperation"], rawFillPath: ["filter", "fillColor", "fillAlpha"], showText: ["transform", "leading", "charSpacing", "wordSpacing", "hScale", "textRise", "moveText", "textMatrix", "font", "fontObj", "filter", "fillColor", "textRenderingMode", "SMask", "fillAlpha", "strokeAlpha", "globalCompositeOperation", "sameLineText"], transform: ["transform"], transformAndFill: ["transform", "fillColor"] };
      J0 = class _J0 {
        static {
          p(this, "CanvasImagesTracker");
        }
        #e;
        #t;
        #n = 4;
        #s = 0;
        #i = new _J0.#a(this.#n * 6);
        static #a = rn.isFloat16ArraySupported ? Float16Array : Float32Array;
        constructor(e) {
          this.#e = e.width, this.#t = e.height;
        }
        record(e, n, s, i) {
          if (this.#s === this.#n) {
            this.#n *= 2;
            const o = new _J0.#a(this.#n * 6);
            o.set(this.#i), this.#i = o;
          }
          const a = Ie.domMatrixToTransform(e.getTransform());
          let r;
          if (i[0] !== 1 / 0) {
            const o = [1 / 0, 1 / 0, -1 / 0, -1 / 0];
            Ie.axialAlignedBoundingBox([0, -s, n, 0], a, o);
            const l = Ie.intersect(i, o);
            if (!l) return;
            const [f, c, h, u] = l;
            if (f !== o[0] || c !== o[1] || h !== o[2] || u !== o[3]) {
              const d = Math.atan2(a[1], a[0]), m = Math.abs(Math.sin(d)), g = Math.abs(Math.cos(d));
              if (m < 1e-6 || g < 1e-6 || Math.abs(m - g) < 1e-6) r = [f, c, f, u, h, c];
              else {
                const b = h - f, w = u - c, x = m * m, y = g * g, j = g * m, v = y - x, q = (w * y - b * j) / v, A = (w * j - b * x) / v;
                r = [f + A, c, f, c + q, h, u - q];
              }
            }
          }
          r || (r = [0, -s, 0, 0, n, -s], Ie.applyTransform(r, a, 0), Ie.applyTransform(r, a, 2), Ie.applyTransform(r, a, 4)), r[0] /= this.#e, r[1] /= this.#t, r[2] /= this.#e, r[3] /= this.#t, r[4] /= this.#e, r[5] /= this.#t, this.#i.set(r, this.#s * 6), this.#s++;
        }
        take() {
          return this.#i.subarray(0, this.#s * 6);
        }
      };
      R6 = class {
        static {
          p(this, "FontLoader");
        }
        #e = /* @__PURE__ */ new Set();
        constructor({ ownerDocument: e = globalThis.document, styleElement: n = null }) {
          this._document = e, this.nativeFontFaces = /* @__PURE__ */ new Set(), this.styleElement = null, this.loadingRequests = [], this.loadTestFontId = 0;
        }
        addNativeFontFace(e) {
          this.nativeFontFaces.add(e), this._document.fonts.add(e);
        }
        removeNativeFontFace(e) {
          this.nativeFontFaces.delete(e), this._document.fonts.delete(e);
        }
        insertRule(e) {
          this.styleElement || (this.styleElement = this._document.createElement("style"), this._document.documentElement.getElementsByTagName("head")[0].append(this.styleElement));
          const n = this.styleElement.sheet;
          n.insertRule(e, n.cssRules.length);
        }
        clear() {
          for (const e of this.nativeFontFaces) this._document.fonts.delete(e);
          this.nativeFontFaces.clear(), this.#e.clear(), this.styleElement && (this.styleElement.remove(), this.styleElement = null);
        }
        async loadSystemFont({ systemFontInfo: e, disableFontFace: n, _inspectFont: s }) {
          if (!(!e || this.#e.has(e.loadedName))) {
            if (Lt(!n, "loadSystemFont shouldn't be called when `disableFontFace` is set."), this.isFontLoadingAPISupported) {
              const { loadedName: i, src: a, style: r } = e, o = new FontFace(i, a, r);
              this.addNativeFontFace(o);
              try {
                await o.load(), this.#e.add(i), s?.(e);
              } catch {
                at(`Cannot load system font: ${e.baseFontName}, installing it could help to improve PDF rendering.`), this.removeNativeFontFace(o);
              }
              return;
            }
            It("Not implemented: loadSystemFont without the Font Loading API.");
          }
        }
        async bind(e) {
          if (e.attached || e.missingFile && !e.systemFontInfo) return;
          if (e.attached = true, e.systemFontInfo) {
            await this.loadSystemFont(e);
            return;
          }
          if (this.isFontLoadingAPISupported) {
            const s = e.createNativeFontFace();
            if (s) {
              this.addNativeFontFace(s);
              try {
                await s.loaded;
              } catch (i) {
                throw at(`Failed to load font '${s.family}': '${i}'.`), e.disableFontFace = true, i;
              }
            }
            return;
          }
          const n = e.createFontFaceRule();
          if (n) {
            if (this.insertRule(n), this.isSyncFontLoadingSupported) return;
            await new Promise((s) => {
              const i = this._queueLoadingCallback(s);
              this._prepareFontLoadEvent(e, i);
            });
          }
        }
        get isFontLoadingAPISupported() {
          const e = !!this._document?.fonts;
          return st(this, "isFontLoadingAPISupported", e);
        }
        get isSyncFontLoadingSupported() {
          return st(this, "isSyncFontLoadingSupported", Ts || rn.platform.isFirefox);
        }
        _queueLoadingCallback(e) {
          function n() {
            for (Lt(!i.done, "completeRequest() cannot be called twice."), i.done = true; s.length > 0 && s[0].done; ) {
              const a = s.shift();
              setTimeout(a.callback, 0);
            }
          }
          p(n, "completeRequest");
          const { loadingRequests: s } = this, i = { done: false, complete: n, callback: e };
          return s.push(i), i;
        }
        get _loadTestFont() {
          const e = atob("T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQAFQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAAALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgAAAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACMAooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4DIP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAAAAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUAAQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgABAAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABYAAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAAAC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAAAAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQACAQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTjFQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==");
          return st(this, "_loadTestFont", e);
        }
        _prepareFontLoadEvent(e, n) {
          function s(j, v) {
            return j.charCodeAt(v) << 24 | j.charCodeAt(v + 1) << 16 | j.charCodeAt(v + 2) << 8 | j.charCodeAt(v + 3) & 255;
          }
          p(s, "int32");
          function i(j, v, q, A) {
            const C = j.substring(0, v), S = j.substring(v + q);
            return C + A + S;
          }
          p(i, "spliceString");
          let a, r;
          const o = this._document.createElement("canvas");
          o.width = 1, o.height = 1;
          const l = o.getContext("2d");
          let f = 0;
          function c(j, v) {
            if (++f > 30) {
              at("Load test font never loaded."), v();
              return;
            }
            if (l.font = "30px " + j, l.fillText(".", 0, 20), l.getImageData(0, 0, 1, 1).data[3] > 0) {
              v();
              return;
            }
            setTimeout(c.bind(null, j, v));
          }
          p(c, "isFontReady");
          const h = `lt${Date.now()}${this.loadTestFontId++}`;
          let u = this._loadTestFont;
          u = i(u, 976, h.length, h);
          const m = 16, g = 1482184792;
          let b = s(u, m);
          for (a = 0, r = h.length - 3; a < r; a += 4) b = b - g + s(h, a) | 0;
          a < h.length && (b = b - g + s(h + "XXX", a) | 0), u = i(u, m, 4, w6(b));
          const w = `url(data:font/opentype;base64,${btoa(u)});`, x = `@font-face {font-family:"${h}";src:${w}}`;
          this.insertRule(x);
          const y = this._document.createElement("div");
          y.style.visibility = "hidden", y.style.width = y.style.height = "10px", y.style.position = "absolute", y.style.top = y.style.left = "0px";
          for (const j of [e.loadedName, h]) {
            const v = this._document.createElement("span");
            v.textContent = "Hi", v.style.fontFamily = j, y.append(v);
          }
          this._document.body.append(y), c(h, () => {
            y.remove(), n.complete();
          });
        }
      };
      _6 = class {
        static {
          p(this, "FontFaceObject");
        }
        compiledGlyphs = /* @__PURE__ */ Object.create(null);
        #e;
        constructor(e, n = null, s, i) {
          this.#e = e, this._inspectFont = n, s && (this.charProcOperatorList = s), i && Object.assign(this, i);
        }
        createNativeFontFace() {
          if (!this.data || this.disableFontFace) return null;
          let e;
          if (!this.cssFontInfo) e = new FontFace(this.loadedName, this.data, {});
          else {
            const n = { weight: this.cssFontInfo.fontWeight };
            this.cssFontInfo.italicAngle && (n.style = `oblique ${this.cssFontInfo.italicAngle}deg`), e = new FontFace(this.cssFontInfo.fontFamily, this.data, n);
          }
          return this._inspectFont?.(this), e;
        }
        createFontFaceRule() {
          if (!this.data || this.disableFontFace) return null;
          const e = `url(data:${this.mimetype};base64,${this.data.toBase64()});`;
          let n;
          if (!this.cssFontInfo) n = `@font-face {font-family:"${this.loadedName}";src:${e}}`;
          else {
            let s = `font-weight: ${this.cssFontInfo.fontWeight};`;
            this.cssFontInfo.italicAngle && (s += `font-style: oblique ${this.cssFontInfo.italicAngle}deg;`), n = `@font-face {font-family:"${this.cssFontInfo.fontFamily}";${s}src:${e}}`;
          }
          return this._inspectFont?.(this, e), n;
        }
        getPathGenerator(e, n) {
          if (this.compiledGlyphs[n] !== void 0) return this.compiledGlyphs[n];
          const s = this.loadedName + "_path_" + n;
          let i;
          try {
            i = e.get(s);
          } catch (r) {
            at(`getPathGenerator - ignoring character: "${r}".`);
          }
          const a = jp(i?.path);
          return this.fontExtraProperties || e.delete(s), this.compiledGlyphs[n] = a;
        }
        get black() {
          return this.#e.black;
        }
        get bold() {
          return this.#e.bold;
        }
        get disableFontFace() {
          return this.#e.disableFontFace;
        }
        set disableFontFace(e) {
          st(this, "disableFontFace", !!e);
        }
        get fontExtraProperties() {
          return this.#e.fontExtraProperties;
        }
        get isInvalidPDFjsFont() {
          return this.#e.isInvalidPDFjsFont;
        }
        get isType3Font() {
          return this.#e.isType3Font;
        }
        get italic() {
          return this.#e.italic;
        }
        get missingFile() {
          return this.#e.missingFile;
        }
        get remeasure() {
          return this.#e.remeasure;
        }
        get vertical() {
          return this.#e.vertical;
        }
        get ascent() {
          return this.#e.ascent;
        }
        get defaultWidth() {
          return this.#e.defaultWidth;
        }
        get descent() {
          return this.#e.descent;
        }
        get bbox() {
          return this.#e.bbox;
        }
        get fontMatrix() {
          return this.#e.fontMatrix;
        }
        get fallbackName() {
          return this.#e.fallbackName;
        }
        get loadedName() {
          return this.#e.loadedName;
        }
        get mimetype() {
          return this.#e.mimetype;
        }
        get name() {
          return this.#e.name;
        }
        get data() {
          return this.#e.data;
        }
        clearData() {
          this.#e.clearData();
        }
        get cssFontInfo() {
          return this.#e.cssFontInfo;
        }
        get systemFontInfo() {
          return this.#e.systemFontInfo;
        }
        get defaultVMetrics() {
          return this.#e.defaultVMetrics;
        }
      };
      P6 = class {
        static {
          p(this, "CSS_FONT_INFO");
        }
        static strings = ["fontFamily", "fontWeight", "italicAngle"];
      };
      D6 = class {
        static {
          p(this, "SYSTEM_FONT_INFO");
        }
        static strings = ["css", "loadedName", "baseFontName", "src"];
      };
      Us = class {
        static {
          p(this, "FONT_INFO");
        }
        static bools = ["black", "bold", "disableFontFace", "fontExtraProperties", "isInvalidPDFjsFont", "isType3Font", "italic", "missingFile", "remeasure", "vertical"];
        static numbers = ["ascent", "defaultWidth", "descent"];
        static strings = ["fallbackName", "loadedName", "mimetype", "name"];
        static OFFSET_NUMBERS = Math.ceil(this.bools.length * 2 / 8);
        static OFFSET_BBOX = this.OFFSET_NUMBERS + this.numbers.length * 8;
        static OFFSET_FONT_MATRIX = this.OFFSET_BBOX + 1 + 8;
        static OFFSET_DEFAULT_VMETRICS = this.OFFSET_FONT_MATRIX + 1 + 48;
        static OFFSET_STRINGS = this.OFFSET_DEFAULT_VMETRICS + 1 + 6;
      };
      Xi = class {
        static {
          p(this, "PATTERN_INFO");
        }
        static KIND = 0;
        static HAS_BBOX = 1;
        static HAS_BACKGROUND = 2;
        static SHADING_TYPE = 3;
        static N_COORD = 4;
        static N_COLOR = 8;
        static N_STOP = 12;
        static N_FIGURES = 16;
      };
      M6 = class {
        static {
          p(this, "CssFontInfo");
        }
        #e;
        #t = new TextDecoder();
        #n;
        constructor(e) {
          this.#e = e, this.#n = new DataView(e);
        }
        #s(e) {
          Lt(e < P6.strings.length, "Invalid string index");
          let n = 0;
          for (let i = 0; i < e; i++) n += this.#n.getUint32(n) + 4;
          const s = this.#n.getUint32(n);
          return this.#t.decode(new Uint8Array(this.#e, n + 4, s));
        }
        get fontFamily() {
          return this.#s(0);
        }
        get fontWeight() {
          return this.#s(1);
        }
        get italicAngle() {
          return this.#s(2);
        }
      };
      H6 = class {
        static {
          p(this, "SystemFontInfo");
        }
        #e;
        #t = new TextDecoder();
        #n;
        constructor(e) {
          this.#e = e, this.#n = new DataView(e);
        }
        get guessFallback() {
          return this.#n.getUint8(0) !== 0;
        }
        #s(e) {
          Lt(e < D6.strings.length, "Invalid string index");
          let n = 5;
          for (let i = 0; i < e; i++) n += this.#n.getUint32(n) + 4;
          const s = this.#n.getUint32(n);
          return this.#t.decode(new Uint8Array(this.#e, n + 4, s));
        }
        get css() {
          return this.#s(0);
        }
        get loadedName() {
          return this.#s(1);
        }
        get baseFontName() {
          return this.#s(2);
        }
        get src() {
          return this.#s(3);
        }
        get style() {
          let e = 1;
          e += 4 + this.#n.getUint32(e);
          const n = this.#n.getUint32(e), s = this.#t.decode(new Uint8Array(this.#e, e + 4, n));
          e += 4 + n;
          const i = this.#n.getUint32(e), a = this.#t.decode(new Uint8Array(this.#e, e + 4, i));
          return { style: s, weight: a };
        }
      };
      O6 = class {
        static {
          p(this, "FontInfo");
        }
        #e;
        #t = new TextDecoder();
        #n;
        constructor({ buffer: e, extra: n }) {
          this.#e = e, this.#n = new DataView(e), n && Object.assign(this, n);
        }
        #s(e) {
          Lt(e < Us.bools.length, "Invalid boolean index");
          const n = Math.floor(e / 4), s = e * 2 % 8, i = this.#n.getUint8(n) >> s & 3;
          return i === 0 ? void 0 : i === 2;
        }
        get black() {
          return this.#s(0);
        }
        get bold() {
          return this.#s(1);
        }
        get disableFontFace() {
          return this.#s(2);
        }
        get fontExtraProperties() {
          return this.#s(3);
        }
        get isInvalidPDFjsFont() {
          return this.#s(4);
        }
        get isType3Font() {
          return this.#s(5);
        }
        get italic() {
          return this.#s(6);
        }
        get missingFile() {
          return this.#s(7);
        }
        get remeasure() {
          return this.#s(8);
        }
        get vertical() {
          return this.#s(9);
        }
        #i(e) {
          return Lt(e < Us.numbers.length, "Invalid number index"), this.#n.getFloat64(Us.OFFSET_NUMBERS + e * 8);
        }
        get ascent() {
          return this.#i(0);
        }
        get defaultWidth() {
          return this.#i(1);
        }
        get descent() {
          return this.#i(2);
        }
        #a(e, n, s, i) {
          const a = this.#n.getUint8(e);
          if (a === 0) return;
          Lt(a === n, "Invalid array length."), e += 1;
          const r = new Array(a);
          for (let o = 0; o < a; o++) r[o] = this.#n[s](e, true), e += i;
          return r;
        }
        get bbox() {
          return this.#a(Us.OFFSET_BBOX, 4, "getInt16", 2);
        }
        get fontMatrix() {
          return this.#a(Us.OFFSET_FONT_MATRIX, 6, "getFloat64", 8);
        }
        get defaultVMetrics() {
          return this.#a(Us.OFFSET_DEFAULT_VMETRICS, 3, "getInt16", 2);
        }
        #r(e) {
          Lt(e < Us.strings.length, "Invalid string index");
          let n = Us.OFFSET_STRINGS + 4;
          for (let i = 0; i < e; i++) n += this.#n.getUint32(n) + 4;
          const s = this.#n.getUint32(n);
          return this.#t.decode(new Uint8Array(this.#e, n + 4, s));
        }
        get fallbackName() {
          return this.#r(0);
        }
        get loadedName() {
          return this.#r(1);
        }
        get mimetype() {
          return this.#r(2);
        }
        get name() {
          return this.#r(3);
        }
        #o() {
          let e = Us.OFFSET_STRINGS;
          const n = this.#n.getUint32(e);
          e += 4 + n;
          const s = this.#n.getUint32(e);
          e += 4 + s;
          const i = this.#n.getUint32(e);
          e += 4 + i;
          const a = this.#n.getUint32(e);
          return { offset: e, length: a };
        }
        get data() {
          const { offset: e, length: n } = this.#o();
          return n === 0 ? void 0 : new Uint8Array(this.#e, e + 4, n);
        }
        clearData() {
          const { offset: e, length: n } = this.#o();
          n !== 0 && (this.#n.setUint32(e, 0), this.#e = new Uint8Array(this.#e, 0, e + 4).slice().buffer, this.#n = new DataView(this.#e));
        }
        get cssFontInfo() {
          let e = Us.OFFSET_STRINGS;
          const n = this.#n.getUint32(e);
          e += 4 + n;
          const s = this.#n.getUint32(e);
          e += 4 + s;
          const i = this.#n.getUint32(e);
          if (i === 0) return null;
          const a = new Uint8Array(i);
          return a.set(new Uint8Array(this.#e, e + 4, i)), new M6(a.buffer);
        }
        get systemFontInfo() {
          let e = Us.OFFSET_STRINGS;
          const n = this.#n.getUint32(e);
          e += 4 + n;
          const s = this.#n.getUint32(e);
          if (s === 0) return null;
          const i = new Uint8Array(s);
          return i.set(new Uint8Array(this.#e, e + 4, s)), new H6(i.buffer);
        }
      };
      L6 = class {
        static {
          p(this, "PatternInfo");
        }
        constructor(e) {
          this.buffer = e, this.view = new DataView(e), this.data = new Uint8Array(e);
        }
        getIR() {
          const e = this.view, n = this.data[Xi.KIND], s = !!this.data[Xi.HAS_BBOX], i = !!this.data[Xi.HAS_BACKGROUND], a = e.getUint32(Xi.N_COORD, true), r = e.getUint32(Xi.N_COLOR, true), o = e.getUint32(Xi.N_STOP, true), l = e.getUint32(Xi.N_FIGURES, true);
          let f = 20;
          const c = new Float32Array(this.buffer, f, a * 2);
          f += a * 8;
          const h = new Uint8Array(this.buffer, f, r * 3);
          f += r * 3;
          const u = [];
          for (let b = 0; b < o; ++b) {
            const w = e.getFloat32(f, true);
            f += 4;
            const x = e.getUint32(f, true);
            f += 4, u.push([w, `#${x.toString(16).padStart(6, "0")}`]);
          }
          let d = null;
          if (s) {
            d = [];
            for (let b = 0; b < 4; ++b) d.push(e.getFloat32(f, true)), f += 4;
          }
          let m = null;
          i && (m = new Uint8Array(this.buffer, f, 3), f += 3);
          const g = [];
          for (let b = 0; b < l; ++b) {
            const w = e.getUint8(f);
            f += 1, f = Math.ceil(f / 4) * 4;
            const x = e.getUint32(f, true);
            f += 4;
            const y = new Int32Array(this.buffer, f, x);
            f += x * 4;
            const j = e.getUint32(f, true);
            f += 4;
            const v = new Int32Array(this.buffer, f, j);
            f += j * 4;
            const q = { type: w, coords: y, colors: v };
            w === Ia.LATTICE && (q.verticesPerRow = e.getUint32(f, true), f += 4), g.push(q);
          }
          if (n === 1) return ["RadialAxial", "axial", d, u, Array.from(c.slice(0, 2)), Array.from(c.slice(2, 4)), null, null];
          if (n === 2) return ["RadialAxial", "radial", d, u, [c[0], c[1]], [c[3], c[4]], c[2], c[5]];
          if (n === 3) {
            const b = this.data[Xi.SHADING_TYPE];
            let w = null;
            if (c.length > 0) {
              w = [1 / 0, 1 / 0, -1 / 0, -1 / 0];
              for (let x = 0, y = c.length; x < y; x += 2) Ie.pointBoundingBox(c[x], c[x + 1], w);
            }
            return ["Mesh", b, c, h, g, w, d, m];
          }
          throw new Error(`Unsupported pattern kind: ${n}`);
        }
      };
      N6 = class {
        static {
          p(this, "FontPathInfo");
        }
        #e;
        constructor(e) {
          this.#e = e;
        }
        get path() {
          return rn.isFloat16ArraySupported ? new Float16Array(this.#e) : new Float32Array(this.#e);
        }
      };
      p(z6, "getUrlProp");
      p(U6, "getDataProp");
      p(A0, "getFactoryUrlProp");
      oh = p((t) => typeof t == "object" && Number.isInteger(t?.num) && t.num >= 0 && Number.isInteger(t?.gen) && t.gen >= 0, "isRefProxy");
      G6 = p((t) => typeof t == "object" && typeof t?.name == "string", "isNameProxy");
      Fp = j6.bind(null, oh, G6);
      W6 = class {
        static {
          p(this, "LoopbackPort");
        }
        #e = /* @__PURE__ */ new Map();
        #t = Promise.resolve();
        postMessage(e, n) {
          const s = { data: structuredClone(e, n ? { transfer: n } : null) };
          this.#t.then(() => {
            for (const [i] of this.#e) i.call(this, s);
          });
        }
        addEventListener(e, n, s = null) {
          let i = null;
          if (s?.signal instanceof AbortSignal) {
            const { signal: a } = s;
            if (a.aborted) {
              at("LoopbackPort - cannot use an `aborted` signal.");
              return;
            }
            const r = p(() => this.removeEventListener(e, n), "onAbort");
            i = p(() => a.removeEventListener("abort", r), "rmAbort"), a.addEventListener("abort", r);
          }
          this.#e.set(n, i);
        }
        removeEventListener(e, n) {
          this.#e.get(n)?.(), this.#e.delete(n);
        }
        terminate() {
          for (const [, e] of this.#e) e?.();
          this.#e.clear();
        }
      };
      S0 = { DATA: 1, ERROR: 2 };
      on = { CANCEL: 1, CANCEL_COMPLETE: 2, CLOSE: 3, ENQUEUE: 4, ERROR: 5, PULL: 6, PULL_COMPLETE: 7, START_COMPLETE: 8 };
      p(Bp, "onFn");
      p(es, "wrapReason");
      Mo = class {
        static {
          p(this, "MessageHandler");
        }
        #e = new AbortController();
        constructor(e, n, s) {
          this.sourceName = e, this.targetName = n, this.comObj = s, this.callbackId = 1, this.streamId = 1, this.streamSinks = /* @__PURE__ */ Object.create(null), this.streamControllers = /* @__PURE__ */ Object.create(null), this.callbackCapabilities = /* @__PURE__ */ Object.create(null), this.actionHandler = /* @__PURE__ */ Object.create(null), s.addEventListener("message", this.#t.bind(this), { signal: this.#e.signal });
        }
        #t({ data: e }) {
          if (e.targetName !== this.sourceName) return;
          if (e.stream) {
            this.#s(e);
            return;
          }
          if (e.callback) {
            const s = e.callbackId, i = this.callbackCapabilities[s];
            if (!i) throw new Error(`Cannot resolve callback ${s}`);
            if (delete this.callbackCapabilities[s], e.callback === S0.DATA) i.resolve(e.data);
            else if (e.callback === S0.ERROR) i.reject(es(e.reason));
            else throw new Error("Unexpected callback case");
            return;
          }
          const n = this.actionHandler[e.action];
          if (!n) throw new Error(`Unknown action from worker: ${e.action}`);
          if (e.callbackId) {
            const s = this.sourceName, i = e.sourceName, a = this.comObj;
            Promise.try(n, e.data).then(function(r) {
              a.postMessage({ sourceName: s, targetName: i, callback: S0.DATA, callbackId: e.callbackId, data: r });
            }, function(r) {
              a.postMessage({ sourceName: s, targetName: i, callback: S0.ERROR, callbackId: e.callbackId, reason: es(r) });
            });
            return;
          }
          if (e.streamId) {
            this.#n(e);
            return;
          }
          n(e.data);
        }
        on(e, n) {
          const s = this.actionHandler;
          if (s[e]) throw new Error(`There is already an actionName called "${e}"`);
          s[e] = n;
        }
        send(e, n, s) {
          this.comObj.postMessage({ sourceName: this.sourceName, targetName: this.targetName, action: e, data: n }, s);
        }
        sendWithPromise(e, n, s) {
          const i = this.callbackId++, a = Promise.withResolvers();
          this.callbackCapabilities[i] = a;
          try {
            this.comObj.postMessage({ sourceName: this.sourceName, targetName: this.targetName, action: e, callbackId: i, data: n }, s);
          } catch (r) {
            a.reject(r);
          }
          return a.promise;
        }
        sendWithStream(e, n, s, i) {
          const a = this.streamId++, r = this.sourceName, o = this.targetName, l = this.comObj;
          return new ReadableStream({ start: p((f) => {
            const c = Promise.withResolvers();
            return this.streamControllers[a] = { controller: f, startCall: c, pullCall: null, cancelCall: null, isClosed: false }, l.postMessage({ sourceName: r, targetName: o, action: e, streamId: a, data: n, desiredSize: f.desiredSize }, i), c.promise;
          }, "start"), pull: p((f) => {
            const c = Promise.withResolvers();
            return this.streamControllers[a].pullCall = c, l.postMessage({ sourceName: r, targetName: o, stream: on.PULL, streamId: a, desiredSize: f.desiredSize }), c.promise;
          }, "pull"), cancel: p((f) => {
            Lt(f instanceof Error, "cancel must have a valid reason");
            const c = Promise.withResolvers();
            return this.streamControllers[a].cancelCall = c, this.streamControllers[a].isClosed = true, l.postMessage({ sourceName: r, targetName: o, stream: on.CANCEL, streamId: a, reason: es(f) }), c.promise;
          }, "cancel") }, s);
        }
        #n(e) {
          const n = e.streamId, s = this.sourceName, i = e.sourceName, a = this.comObj, r = this, o = this.actionHandler[e.action], l = { enqueue(f, c = 1, h) {
            if (this.isCancelled) return;
            const u = this.desiredSize;
            this.desiredSize -= c, u > 0 && this.desiredSize <= 0 && (this.sinkCapability = Promise.withResolvers(), this.ready = this.sinkCapability.promise), a.postMessage({ sourceName: s, targetName: i, stream: on.ENQUEUE, streamId: n, chunk: f }, h);
          }, close() {
            this.isCancelled || (this.isCancelled = true, a.postMessage({ sourceName: s, targetName: i, stream: on.CLOSE, streamId: n }), delete r.streamSinks[n]);
          }, error(f) {
            Lt(f instanceof Error, "error must have a valid reason"), !this.isCancelled && (this.isCancelled = true, a.postMessage({ sourceName: s, targetName: i, stream: on.ERROR, streamId: n, reason: es(f) }));
          }, sinkCapability: Promise.withResolvers(), onPull: null, onCancel: null, isCancelled: false, desiredSize: e.desiredSize, ready: null };
          l.sinkCapability.resolve(), l.ready = l.sinkCapability.promise, this.streamSinks[n] = l, Promise.try(o, e.data, l).then(function() {
            a.postMessage({ sourceName: s, targetName: i, stream: on.START_COMPLETE, streamId: n, success: true });
          }, function(f) {
            a.postMessage({ sourceName: s, targetName: i, stream: on.START_COMPLETE, streamId: n, reason: es(f) });
          });
        }
        #s(e) {
          const n = e.streamId, s = this.sourceName, i = e.sourceName, a = this.comObj, r = this.streamControllers[n], o = this.streamSinks[n];
          switch (e.stream) {
            case on.START_COMPLETE:
              e.success ? r.startCall.resolve() : r.startCall.reject(es(e.reason));
              break;
            case on.PULL_COMPLETE:
              e.success ? r.pullCall.resolve() : r.pullCall.reject(es(e.reason));
              break;
            case on.PULL:
              if (!o) {
                a.postMessage({ sourceName: s, targetName: i, stream: on.PULL_COMPLETE, streamId: n, success: true });
                break;
              }
              o.desiredSize <= 0 && e.desiredSize > 0 && o.sinkCapability.resolve(), o.desiredSize = e.desiredSize, Promise.try(o.onPull || Bp).then(function() {
                a.postMessage({ sourceName: s, targetName: i, stream: on.PULL_COMPLETE, streamId: n, success: true });
              }, function(f) {
                a.postMessage({ sourceName: s, targetName: i, stream: on.PULL_COMPLETE, streamId: n, reason: es(f) });
              });
              break;
            case on.ENQUEUE:
              if (Lt(r, "enqueue should have stream controller"), r.isClosed) break;
              r.controller.enqueue(e.chunk);
              break;
            case on.CLOSE:
              if (Lt(r, "close should have stream controller"), r.isClosed) break;
              r.isClosed = true, r.controller.close(), this.#i(r, n);
              break;
            case on.ERROR:
              Lt(r, "error should have stream controller"), r.controller.error(es(e.reason)), this.#i(r, n);
              break;
            case on.CANCEL_COMPLETE:
              e.success ? r.cancelCall.resolve() : r.cancelCall.reject(es(e.reason)), this.#i(r, n);
              break;
            case on.CANCEL:
              if (!o) break;
              const l = es(e.reason);
              Promise.try(o.onCancel || Bp, l).then(function() {
                a.postMessage({ sourceName: s, targetName: i, stream: on.CANCEL_COMPLETE, streamId: n, success: true });
              }, function(f) {
                a.postMessage({ sourceName: s, targetName: i, stream: on.CANCEL_COMPLETE, streamId: n, reason: es(f) });
              }), o.sinkCapability.reject(l), o.isCancelled = true, delete this.streamSinks[n];
              break;
            default:
              throw new Error("Unexpected stream case");
          }
        }
        async #i(e, n) {
          await Promise.allSettled([e.startCall?.promise, e.pullCall?.promise, e.cancelCall?.promise]), delete this.streamControllers[n];
        }
        destroy() {
          this.#e?.abort(), this.#e = null;
        }
      };
      Rp = class {
        static {
          p(this, "BaseBinaryDataFactory");
        }
        #e = Object.freeze({ cMapUrl: "CMap", standardFontDataUrl: "font", wasmUrl: "wasm" });
        constructor({ cMapUrl: e = null, standardFontDataUrl: n = null, wasmUrl: s = null }) {
          this.cMapUrl = e, this.standardFontDataUrl = n, this.wasmUrl = s;
        }
        async fetch({ kind: e, filename: n }) {
          switch (e) {
            case "cMapUrl":
            case "standardFontDataUrl":
            case "wasmUrl":
              break;
            default:
              It(`Not implemented: ${e}`);
          }
          const s = this[e];
          if (!s) throw new Error(`Ensure that the \`${e}\` API parameter is provided.`);
          const i = `${s}${n}`;
          return this._fetch(i, e).catch((a) => {
            throw new Error(`Unable to load ${this.#e[e]} data at: ${i}`);
          });
        }
        async _fetch(e, n) {
          It("Abstract method `_fetch` called.");
        }
      };
      _p = class extends Rp {
        static {
          p(this, "DOMBinaryDataFactory");
        }
        async _fetch(e, n) {
          const s = n === "cMapUrl" && !e.endsWith(".bcmap") ? "text" : "bytes", i = await x0(e, s);
          return i instanceof Uint8Array ? i : m0(i);
        }
      };
      Pp = class {
        static {
          p(this, "BaseCanvasFactory");
        }
        #e = false;
        constructor({ enableHWA: e = false }) {
          this.#e = e;
        }
        create(e, n) {
          if (e <= 0 || n <= 0) throw new Error("Invalid canvas size");
          const s = this._createCanvas(e, n);
          return { canvas: s, context: s.getContext("2d", { willReadFrequently: !this.#e }) };
        }
        reset({ canvas: e }, n, s) {
          if (!e) throw new Error("Canvas is not specified");
          if (n <= 0 || s <= 0) throw new Error("Invalid canvas size");
          e.width = n, e.height = s;
        }
        destroy(e) {
          const { canvas: n } = e;
          if (!n) throw new Error("Canvas is not specified");
          n.width = n.height = 0, e.canvas = null, e.context = null;
        }
        _createCanvas(e, n) {
          It("Abstract method `_createCanvas` called.");
        }
      };
      $6 = class extends Pp {
        static {
          p(this, "DOMCanvasFactory");
        }
        constructor({ ownerDocument: e = globalThis.document, enableHWA: n = false }) {
          super({ enableHWA: n }), this._document = e;
        }
        _createCanvas(e, n) {
          const s = this._document.createElement("canvas");
          return s.width = e, s.height = n, s;
        }
      };
      Dp = class {
        static {
          p(this, "BaseFilterFactory");
        }
        addFilter(e) {
          return "none";
        }
        addHCMFilter(e, n) {
          return "none";
        }
        addAlphaFilter(e) {
          return "none";
        }
        addLuminosityFilter(e) {
          return "none";
        }
        addHighlightHCMFilter(e, n, s, i, a) {
          return "none";
        }
        destroy(e = false) {
        }
      };
      V6 = class extends Dp {
        static {
          p(this, "DOMFilterFactory");
        }
        #e;
        #t;
        #n;
        #s;
        #i;
        #a;
        #r = 0;
        constructor({ docId: e, ownerDocument: n = globalThis.document }) {
          super(), this.#s = e, this.#i = n;
        }
        get #o() {
          return this.#t ||= /* @__PURE__ */ new Map();
        }
        get #l() {
          return this.#a ||= /* @__PURE__ */ new Map();
        }
        get #f() {
          if (!this.#n) {
            const e = this.#i.createElement("div"), { style: n } = e;
            n.visibility = "hidden", n.contain = "strict", n.width = n.height = 0, n.position = "absolute", n.top = n.left = 0, n.zIndex = -1;
            const s = this.#i.createElementNS(Ai, "svg");
            s.setAttribute("width", 0), s.setAttribute("height", 0), this.#n = this.#i.createElementNS(Ai, "defs"), e.append(s), s.append(this.#n), this.#i.body.append(e);
          }
          return this.#n;
        }
        #u(e) {
          if (e.length === 1) {
            const l = e[0], f = new Array(256);
            for (let h = 0; h < 256; h++) f[h] = l[h] / 255;
            const c = f.join(",");
            return [c, c, c];
          }
          const [n, s, i] = e, a = new Array(256), r = new Array(256), o = new Array(256);
          for (let l = 0; l < 256; l++) a[l] = n[l] / 255, r[l] = s[l] / 255, o[l] = i[l] / 255;
          return [a.join(","), r.join(","), o.join(",")];
        }
        #c(e) {
          if (this.#e === void 0) {
            this.#e = "";
            const n = this.#i.URL;
            n !== this.#i.baseURI && (Ro(n) ? at('#createUrl: ignore "data:"-URL for performance reasons.') : this.#e = Yc(n, ""));
          }
          return `url(${this.#e}#${e})`;
        }
        addFilter(e) {
          if (!e) return "none";
          let n = this.#o.get(e);
          if (n) return n;
          const [s, i, a] = this.#u(e), r = e.length === 1 ? s : `${s}${i}${a}`;
          if (n = this.#o.get(r), n) return this.#o.set(e, n), n;
          const o = `g_${this.#s}_transfer_map_${this.#r++}`, l = this.#c(o);
          this.#o.set(e, l), this.#o.set(r, l);
          const f = this.#m(o);
          return this.#p(s, i, a, f), l;
        }
        addHCMFilter(e, n) {
          const s = `${e}-${n}`, i = "base";
          let a = this.#l.get(i);
          if (a?.key === s || (a ? (a.filter?.remove(), a.key = s, a.url = "none", a.filter = null) : (a = { key: s, url: "none", filter: null }, this.#l.set(i, a)), !e || !n)) return a.url;
          const r = this.#y(e);
          e = Ie.makeHexColor(...r);
          const o = this.#y(n);
          if (n = Ie.makeHexColor(...o), this.#f.style.color = "", e === "#000000" && n === "#ffffff" || e === n) return a.url;
          const l = new Array(256);
          for (let d = 0; d <= 255; d++) {
            const m = d / 255;
            l[d] = m <= 0.03928 ? m / 12.92 : ((m + 0.055) / 1.055) ** 2.4;
          }
          const f = l.join(","), c = `g_${this.#s}_hcm_filter`, h = a.filter = this.#m(c);
          this.#p(f, f, f, h), this.#g(h);
          const u = p((d, m) => {
            const g = r[d] / 255, b = o[d] / 255, w = new Array(m + 1);
            for (let x = 0; x <= m; x++) w[x] = g + x / m * (b - g);
            return w.join(",");
          }, "getSteps");
          return this.#p(u(0, 5), u(1, 5), u(2, 5), h), a.url = this.#c(c), a.url;
        }
        addAlphaFilter(e) {
          let n = this.#o.get(e);
          if (n) return n;
          const [s] = this.#u([e]), i = `alpha_${s}`;
          if (n = this.#o.get(i), n) return this.#o.set(e, n), n;
          const a = `g_${this.#s}_alpha_map_${this.#r++}`, r = this.#c(a);
          this.#o.set(e, r), this.#o.set(i, r);
          const o = this.#m(a);
          return this.#b(s, o), r;
        }
        addLuminosityFilter(e) {
          let n = this.#o.get(e || "luminosity");
          if (n) return n;
          let s, i;
          if (e ? ([s] = this.#u([e]), i = `luminosity_${s}`) : i = "luminosity", n = this.#o.get(i), n) return this.#o.set(e, n), n;
          const a = `g_${this.#s}_luminosity_map_${this.#r++}`, r = this.#c(a);
          this.#o.set(e, r), this.#o.set(i, r);
          const o = this.#m(a);
          return this.#d(o), e && this.#b(s, o), r;
        }
        addHighlightHCMFilter(e, n, s, i, a) {
          const r = `${n}-${s}-${i}-${a}`;
          let o = this.#l.get(e);
          if (o?.key === r || (o ? (o.filter?.remove(), o.key = r, o.url = "none", o.filter = null) : (o = { key: r, url: "none", filter: null }, this.#l.set(e, o)), !n || !s)) return o.url;
          const [l, f] = [n, s].map(this.#y.bind(this));
          let c = Math.round(0.2126 * l[0] + 0.7152 * l[1] + 0.0722 * l[2]), h = Math.round(0.2126 * f[0] + 0.7152 * f[1] + 0.0722 * f[2]), [u, d] = [i, a].map(this.#y.bind(this));
          h < c && ([c, h, u, d] = [h, c, d, u]), this.#f.style.color = "";
          const m = p((w, x, y) => {
            const j = new Array(256), v = (h - c) / y, q = w / 255, A = (x - w) / (255 * y);
            let C = 0;
            for (let S = 0; S <= y; S++) {
              const I = Math.round(c + S * v), T = q + S * A;
              for (let P = C; P <= I; P++) j[P] = T;
              C = I + 1;
            }
            for (let S = C; S < 256; S++) j[S] = j[C - 1];
            return j.join(",");
          }, "getSteps"), g = `g_${this.#s}_hcm_${e}_filter`, b = o.filter = this.#m(g);
          return this.#g(b), this.#p(m(u[0], d[0], 5), m(u[1], d[1], 5), m(u[2], d[2], 5), b), o.url = this.#c(g), o.url;
        }
        destroy(e = false) {
          e && this.#a?.size || (this.#n?.parentNode.parentNode.remove(), this.#n = null, this.#t?.clear(), this.#t = null, this.#a?.clear(), this.#a = null, this.#r = 0);
        }
        #d(e) {
          const n = this.#i.createElementNS(Ai, "feColorMatrix");
          n.setAttribute("type", "matrix"), n.setAttribute("values", "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0.59 0.11 0 0"), e.append(n);
        }
        #g(e) {
          const n = this.#i.createElementNS(Ai, "feColorMatrix");
          n.setAttribute("type", "matrix"), n.setAttribute("values", "0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0"), e.append(n);
        }
        #m(e) {
          const n = this.#i.createElementNS(Ai, "filter");
          return n.setAttribute("color-interpolation-filters", "sRGB"), n.setAttribute("id", e), this.#f.append(n), n;
        }
        #h(e, n, s) {
          const i = this.#i.createElementNS(Ai, n);
          i.setAttribute("type", "discrete"), i.setAttribute("tableValues", s), e.append(i);
        }
        #p(e, n, s, i) {
          const a = this.#i.createElementNS(Ai, "feComponentTransfer");
          i.append(a), this.#h(a, "feFuncR", e), this.#h(a, "feFuncG", n), this.#h(a, "feFuncB", s);
        }
        #b(e, n) {
          const s = this.#i.createElementNS(Ai, "feComponentTransfer");
          n.append(s), this.#h(s, "feFuncA", e);
        }
        #y(e) {
          return this.#f.style.color = e, ur(getComputedStyle(this.#f).getPropertyValue("color"));
        }
      };
      p(K6, "node_utils_fetchData");
      X6 = class extends Dp {
        static {
          p(this, "NodeFilterFactory");
        }
      };
      Y6 = class extends Pp {
        static {
          p(this, "NodeCanvasFactory");
        }
        _createCanvas(e, n) {
          return process.getBuiltinModule("module").createRequire(import_meta.url), new Proxy({}, { get(i, a) {
            return () => {
              throw new Error("@napi-rs/canvas is not available in this environment");
            };
          } }).createCanvas(e, n);
        }
      };
      Q6 = class extends Rp {
        static {
          p(this, "NodeBinaryDataFactory");
        }
        async _fetch(e, n) {
          return K6(e);
        }
      };
      J6 = `
struct Uniforms {
  offsetX      : f32,
  offsetY      : f32,
  scaleX       : f32,
  scaleY       : f32,
  paddedWidth  : f32,
  paddedHeight : f32,
  borderSize   : f32,
  _pad         : f32,
};

@group(0) @binding(0) var<uniform> u : Uniforms;

struct VertexInput {
  @location(0) position : vec2<f32>,
  @location(1) color    : vec4<f32>,
};

struct VertexOutput {
  @builtin(position) position : vec4<f32>,
  @location(0)       color    : vec3<f32>,
};

@vertex
fn vs_main(in : VertexInput) -> VertexOutput {
  var out : VertexOutput;
  let cx = (in.position.x + u.offsetX) * u.scaleX;
  let cy = (in.position.y + u.offsetY) * u.scaleY;
  out.position = vec4<f32>(
    ((cx + u.borderSize) / u.paddedWidth) * 2.0 - 1.0,
    1.0 - ((cy + u.borderSize) / u.paddedHeight) * 2.0,
    0.0,
    1.0
  );
  out.color = in.color.rgb;
  return out;
}

@fragment
fn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {
  return vec4<f32>(in.color, 1.0);
}
`;
      Z6 = class {
        static {
          p(this, "WebGPUMesh");
        }
        #e = null;
        #t = null;
        #n = null;
        #s = null;
        async #i() {
          if (!globalThis.navigator?.gpu) return false;
          try {
            const e = await navigator.gpu.requestAdapter();
            if (!e) return false;
            this.#s = navigator.gpu.getPreferredCanvasFormat();
            const n = this.#t = await e.requestDevice(), s = n.createShaderModule({ code: J6 });
            return this.#n = n.createRenderPipeline({ layout: "auto", vertex: { module: s, entryPoint: "vs_main", buffers: [{ arrayStride: 8, attributes: [{ shaderLocation: 0, offset: 0, format: "float32x2" }] }, { arrayStride: 4, attributes: [{ shaderLocation: 1, offset: 0, format: "unorm8x4" }] }] }, fragment: { module: s, entryPoint: "fs_main", targets: [{ format: this.#s }] }, primitive: { topology: "triangle-list" } }), true;
          } catch {
            return false;
          }
        }
        init() {
          this.#e === null && (this.#e = this.#i());
        }
        get isReady() {
          return this.#t !== null;
        }
        #a(e, n) {
          const { coords: s, colors: i } = n;
          let a = 0;
          for (const h of e) {
            const u = h.coords;
            if (h.type === Ia.TRIANGLES) a += u.length;
            else if (h.type === Ia.LATTICE) {
              const d = h.verticesPerRow;
              a += (Math.floor(u.length / d) - 1) * (d - 1) * 6;
            }
          }
          const r = new Float32Array(a * 2), o = new Uint8Array(a * 4);
          let l = 0, f = 0;
          const c = p((h, u) => {
            r[l++] = s[h * 2], r[l++] = s[h * 2 + 1], o[f++] = i[u * 4], o[f++] = i[u * 4 + 1], o[f++] = i[u * 4 + 2], f++;
          }, "addVertex");
          for (const h of e) {
            const u = h.coords, d = h.colors;
            if (h.type === Ia.TRIANGLES) for (let m = 0, g = u.length; m < g; m += 3) c(u[m], d[m]), c(u[m + 1], d[m + 1]), c(u[m + 2], d[m + 2]);
            else if (h.type === Ia.LATTICE) {
              const m = h.verticesPerRow, g = Math.floor(u.length / m) - 1, b = m - 1;
              for (let w = 0; w < g; w++) {
                let x = w * m;
                for (let y = 0; y < b; y++, x++) c(u[x], d[x]), c(u[x + 1], d[x + 1]), c(u[x + m], d[x + m]), c(u[x + m + 1], d[x + m + 1]), c(u[x + 1], d[x + 1]), c(u[x + m], d[x + m]);
              }
            }
          }
          return { posData: r, colData: o, vertexCount: a };
        }
        draw(e, n, s, i, a, r) {
          const o = this.#t, { offsetX: l, offsetY: f, scaleX: c, scaleY: h } = n, { posData: u, colData: d, vertexCount: m } = this.#a(e, n), g = o.createBuffer({ size: Math.max(u.byteLength, 4), usage: GPUBufferUsage.VERTEX | GPUBufferUsage.COPY_DST });
          u.byteLength > 0 && o.queue.writeBuffer(g, 0, u);
          const b = o.createBuffer({ size: Math.max(d.byteLength, 4), usage: GPUBufferUsage.VERTEX | GPUBufferUsage.COPY_DST });
          d.byteLength > 0 && o.queue.writeBuffer(b, 0, d);
          const w = o.createBuffer({ size: 32, usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST });
          o.queue.writeBuffer(w, 0, new Float32Array([l, f, c, h, i, a, r, 0]));
          const x = o.createBindGroup({ layout: this.#n.getBindGroupLayout(0), entries: [{ binding: 0, resource: { buffer: w } }] }), y = new OffscreenCanvas(i, a), j = y.getContext("webgpu");
          j.configure({ device: o, format: this.#s, alphaMode: s ? "opaque" : "premultiplied" });
          const v = s ? { r: s[0] / 255, g: s[1] / 255, b: s[2] / 255, a: 1 } : { r: 0, g: 0, b: 0, a: 0 }, q = o.createCommandEncoder(), A = q.beginRenderPass({ colorAttachments: [{ view: j.getCurrentTexture().createView(), clearValue: v, loadOp: "clear", storeOp: "store" }] });
          return m > 0 && (A.setPipeline(this.#n), A.setBindGroup(0, x), A.setVertexBuffer(0, g), A.setVertexBuffer(1, b), A.draw(m)), A.end(), o.queue.submit([q.finish()]), g.destroy(), b.destroy(), w.destroy(), y.transferToImageBitmap();
        }
      };
      lh = new Z6();
      p(ek, "initWebGPUMesh");
      p(tk, "isWebGPUMeshReady");
      p(nk, "drawMeshWithGPU");
      Fn = { FILL: "Fill", STROKE: "Stroke", SHADING: "Shading" };
      p(C0, "applyBoundingBox");
      fh = class {
        static {
          p(this, "BaseShadingPattern");
        }
        isModifyingCurrentTransform() {
          return false;
        }
        getPattern() {
          It("Abstract method `getPattern` called.");
        }
      };
      sk = class extends fh {
        static {
          p(this, "RadialAxialShadingPattern");
        }
        constructor(e) {
          super(), this._type = e[1], this._bbox = e[2], this._colorStops = e[3], this._p0 = e[4], this._p1 = e[5], this._r0 = e[6], this._r1 = e[7], this.matrix = null;
        }
        isOriginBased() {
          return this._p0[0] === 0 && this._p0[1] === 0 && (!this.isRadial() || this._p1[0] === 0 && this._p1[1] === 0);
        }
        isRadial() {
          return this._type === "radial";
        }
        _isCircleCenterOutside() {
          return !this.isRadial() || this._r0 > this._r1 ? false : Math.hypot(this._p0[0] - this._p1[0], this._p0[1] - this._p1[1]) > this._r1;
        }
        _createGradient(e, n = null) {
          let s, i = this._p0, a = this._p1;
          if (n && (i = i.slice(), a = a.slice(), Ie.applyTransform(i, n), Ie.applyTransform(a, n)), this._type === "axial") s = e.createLinearGradient(i[0], i[1], a[0], a[1]);
          else if (this._type === "radial") {
            let r = this._r0, o = this._r1;
            if (n) {
              const l = new Float32Array(2);
              Ie.singularValueDecompose2dScale(n, l), r *= l[0], o *= l[0];
            }
            s = e.createRadialGradient(i[0], i[1], r, a[0], a[1], o);
          }
          for (const r of this._colorStops) s.addColorStop(r[0], r[1]);
          return s;
        }
        _createReversedGradient(e, n = null) {
          let s = this._p1, i = this._p0;
          n && (s = s.slice(), i = i.slice(), Ie.applyTransform(s, n), Ie.applyTransform(i, n));
          let a = this._r1, r = this._r0;
          if (n) {
            const f = new Float32Array(2);
            Ie.singularValueDecompose2dScale(n, f), a *= f[0], r *= f[0];
          }
          const o = e.createRadialGradient(s[0], s[1], a, i[0], i[1], r), l = this._colorStops.map(([f, c]) => [1 - f, c]).reverse();
          for (const [f, c] of l) o.addColorStop(f, c);
          return o;
        }
        getPattern(e, n, s, i) {
          let a;
          if (i === Fn.STROKE || i === Fn.FILL) {
            if (this.isOriginBased()) {
              let u = Ie.transform(s, n.baseTransform);
              this.matrix && (u = Ie.transform(u, this.matrix));
              const d = 1e-3, m = Math.hypot(u[0], u[1]), g = Math.hypot(u[2], u[3]), b = (u[0] * u[2] + u[1] * u[3]) / (m * g);
              if (Math.abs(b) < d) if (this.isRadial()) {
                if (Math.abs(m - g) < d) return this._createGradient(e, u);
              } else return this._createGradient(e, u);
            }
            const r = n.current.getClippedPathBoundingBox(i, zt(e)) || [0, 0, 0, 0], o = Math.ceil(r[2] - r[0]) || 1, l = Math.ceil(r[3] - r[1]) || 1, f = n.canvasFactory.create(o, l), c = f.context;
            c.clearRect(0, 0, c.canvas.width, c.canvas.height), c.beginPath(), c.rect(0, 0, c.canvas.width, c.canvas.height), c.translate(-r[0], -r[1]), s = Ie.transform(s, [1, 0, 0, 1, r[0], r[1]]), c.transform(...n.baseTransform), this.matrix && c.transform(...this.matrix), C0(c, this._bbox), this._isCircleCenterOutside() && (c.fillStyle = this._createReversedGradient(c), c.fill()), c.fillStyle = this._createGradient(c), c.fill(), a = e.createPattern(f.canvas, "no-repeat"), n.canvasFactory.destroy(f);
            const h = new DOMMatrix(s);
            a.setTransform(h);
          } else this._isCircleCenterOutside() && (e.save(), C0(e, this._bbox), e.fillStyle = this._createReversedGradient(e), e.fillRect(-1e10, -1e10, 2e10, 2e10), e.restore()), C0(e, this._bbox), a = this._createGradient(e);
          return a;
        }
      };
      p(ch, "drawTriangle");
      p(ik, "drawFigure");
      ak = class extends fh {
        static {
          p(this, "MeshShadingPattern");
        }
        constructor(e) {
          super(), this._coords = e[2], this._colors = e[3], this._figures = e[4], this._bounds = e[5], this._bbox = e[6], this._background = e[7], this.matrix = null;
        }
        _createMeshCanvas(e, n, s) {
          const o = Math.floor(this._bounds[0]), l = Math.floor(this._bounds[1]), f = Math.ceil(this._bounds[2]) - o, c = Math.ceil(this._bounds[3]) - l, h = Math.min(Math.ceil(Math.abs(f * e[0] * 1.1)), 3e3) || 1, u = Math.min(Math.ceil(Math.abs(c * e[1] * 1.1)), 3e3) || 1, d = f ? f / h : 1, m = c ? c / u : 1, g = { coords: this._coords, colors: this._colors, offsetX: -o, offsetY: -l, scaleX: 1 / d, scaleY: 1 / m }, b = h + 4, w = u + 4, x = s.create(b, w);
          if (tk()) x.context.drawImage(nk(this._figures, g, n, b, w, 2), 0, 0);
          else {
            const y = x.context.createImageData(h, u);
            if (n) {
              const j = y.data;
              for (let v = 0, q = j.length; v < q; v += 4) j[v] = n[0], j[v + 1] = n[1], j[v + 2] = n[2], j[v + 3] = 255;
            }
            for (const j of this._figures) ik(y, j, g);
            x.context.putImageData(y, 2, 2);
          }
          return { canvas: x.canvas, offsetX: o - 2 * d, offsetY: l - 2 * m, scaleX: d, scaleY: m };
        }
        isModifyingCurrentTransform() {
          return true;
        }
        getPattern(e, n, s, i) {
          C0(e, this._bbox);
          const a = new Float32Array(2);
          if (i === Fn.SHADING) Ie.singularValueDecompose2dScale(zt(e), a);
          else if (this.matrix) {
            Ie.singularValueDecompose2dScale(this.matrix, a);
            const [l, f] = a;
            Ie.singularValueDecompose2dScale(n.baseTransform, a), a[0] *= l, a[1] *= f;
          } else Ie.singularValueDecompose2dScale(n.baseTransform, a);
          const r = this._createMeshCanvas(a, i === Fn.SHADING ? null : this._background, n.canvasFactory);
          i !== Fn.SHADING && (e.setTransform(...n.baseTransform), this.matrix && e.transform(...this.matrix)), e.translate(r.offsetX, r.offsetY), e.scale(r.scaleX, r.scaleY);
          const o = e.createPattern(r.canvas, "no-repeat");
          return n.canvasFactory.destroy(r), o;
        }
      };
      rk = class extends fh {
        static {
          p(this, "DummyShadingPattern");
        }
        getPattern() {
          return "hotpink";
        }
      };
      p(ok, "getShadingPattern");
      Mp = { COLORED: 1, UNCOLORED: 2 };
      Sh = class _Sh {
        static {
          p(this, "TilingPattern");
        }
        static MAX_PATTERN_SIZE = 3e3;
        constructor(e, n, s, i) {
          this.color = e[1], this.operatorList = e[2], this.matrix = e[3], this.bbox = e[4], this.xstep = e[5], this.ystep = e[6], this.paintType = e[7], this.tilingType = e[8], this.ctx = n, this.canvasGraphicsFactory = s, this.baseTransform = i;
        }
        createPatternCanvas(e, n) {
          const { bbox: s, operatorList: i, paintType: a, tilingType: r, color: o, canvasGraphicsFactory: l } = this;
          let { xstep: f, ystep: c } = this;
          f = Math.abs(f), c = Math.abs(c), d0("TilingType: " + r);
          const h = s[0], u = s[1], d = s[2], m = s[3], g = d - h, b = m - u, w = new Float32Array(2);
          Ie.singularValueDecompose2dScale(this.matrix, w);
          const [x, y] = w;
          Ie.singularValueDecompose2dScale(this.baseTransform, w);
          const j = x * w[0], v = y * w[1];
          let q = g, A = b, C = false, S = false;
          const I = Math.ceil(f * j), T = Math.ceil(c * v), P = Math.ceil(g * j), H = Math.ceil(b * v);
          I >= P ? q = f : C = true, T >= H ? A = c : S = true;
          const G = this.getSizeAndScale(q, this.ctx.canvas.width, j), Z = this.getSizeAndScale(A, this.ctx.canvas.height, v), z = e.canvasFactory.create(G.size, Z.size), O = z.context, N = l.createCanvasGraphics(O, n);
          if (N.groupLevel = e.groupLevel, this.setFillAndStrokeStyleToContext(N, a, o), O.translate(-G.scale * h, -Z.scale * u), N.transform(0, G.scale, 0, 0, Z.scale, 0, 0), O.save(), N.dependencyTracker?.save(), this.clipBbox(N, h, u, d, m), N.baseTransform = zt(N.ctx), N.executeOperatorList(i), N.endDrawing(), N.dependencyTracker?.restore(), O.restore(), C || S) {
            const oe = z.canvas;
            C && (q = f), S && (A = c);
            const je = this.getSizeAndScale(q, this.ctx.canvas.width, j), Y = this.getSizeAndScale(A, this.ctx.canvas.height, v), ye = je.size, qe = Y.size, W = e.canvasFactory.create(ye, qe), K = W.context, M = C ? Math.floor(g / f) : 0, L = S ? Math.floor(b / c) : 0;
            for (let J = 0; J <= M; J++) for (let ce = 0; ce <= L; ce++) K.drawImage(oe, ye * J, qe * ce, ye, qe, 0, 0, ye, qe);
            return e.canvasFactory.destroy(z), { canvas: W.canvas, canvasEntry: W, scaleX: je.scale, scaleY: Y.scale, offsetX: h, offsetY: u };
          }
          return { canvas: z.canvas, canvasEntry: z, scaleX: G.scale, scaleY: Z.scale, offsetX: h, offsetY: u };
        }
        getSizeAndScale(e, n, s) {
          const i = Math.max(_Sh.MAX_PATTERN_SIZE, n);
          let a = Math.ceil(e * s);
          return a >= i ? a = i : s = a / e, { scale: s, size: a };
        }
        clipBbox(e, n, s, i, a) {
          const r = i - n, o = a - s;
          e.ctx.rect(n, s, r, o), Ie.axialAlignedBoundingBox([n, s, i, a], zt(e.ctx), e.current.minMax), e.clip(), e.endPath();
        }
        setFillAndStrokeStyleToContext(e, n, s) {
          const i = e.ctx, a = e.current;
          switch (n) {
            case Mp.COLORED:
              const { fillStyle: r, strokeStyle: o } = this.ctx;
              i.fillStyle = a.fillColor = r, i.strokeStyle = a.strokeColor = o;
              break;
            case Mp.UNCOLORED:
              i.fillStyle = i.strokeStyle = s, a.fillColor = a.strokeColor = s;
              break;
            default:
              throw new g6(`Unsupported paint type: ${n}`);
          }
        }
        isModifyingCurrentTransform() {
          return false;
        }
        getPattern(e, n, s, i, a) {
          let r = s;
          i !== Fn.SHADING && (r = Ie.transform(r, n.baseTransform), this.matrix && (r = Ie.transform(r, this.matrix)));
          const o = this.createPatternCanvas(n, a);
          let l = new DOMMatrix(r);
          l = l.translate(o.offsetX, o.offsetY), l = l.scale(1 / o.scaleX, 1 / o.scaleY);
          const f = e.createPattern(o.canvas, "repeat");
          return n.canvasFactory.destroy(o.canvasEntry), f.setTransform(l), f;
        }
      };
      p(lk, "convertBlackAndWhiteToRGBA");
      Hp = 16;
      Op = 100;
      fk = 15;
      Lp = 10;
      ts = 16;
      hh = new DOMMatrix();
      gs = new Float32Array(2);
      pr = new Float32Array([1 / 0, 1 / 0, -1 / 0, -1 / 0]);
      p(ck, "mirrorContextOperations");
      p(I0, "drawImageAtIntegerCoords");
      Np = class {
        static {
          p(this, "CanvasExtraState");
        }
        alphaIsShape = false;
        fontSize = 0;
        fontSizeScale = 1;
        textMatrix = null;
        textMatrixScale = 1;
        fontMatrix = Vc;
        leading = 0;
        x = 0;
        y = 0;
        lineX = 0;
        lineY = 0;
        charSpacing = 0;
        wordSpacing = 0;
        textHScale = 1;
        textRenderingMode = cn.FILL;
        textRise = 0;
        fillColor = "#000000";
        strokeColor = "#000000";
        patternFill = false;
        patternStroke = false;
        fillAlpha = 1;
        strokeAlpha = 1;
        lineWidth = 1;
        activeSMask = null;
        transferMaps = "none";
        minMax = pr.slice();
        constructor(e, n) {
          this.clipBox = new Float32Array([0, 0, e, n]);
        }
        clone() {
          const e = Object.create(this);
          return e.clipBox = this.clipBox.slice(), e.minMax = this.minMax.slice(), e;
        }
        getPathBoundingBox(e = Fn.FILL, n = null) {
          const s = this.minMax.slice();
          if (e === Fn.STROKE) {
            n || It("Stroke bounding box must include transform."), Ie.singularValueDecompose2dScale(n, gs);
            const i = gs[0] * this.lineWidth / 2, a = gs[1] * this.lineWidth / 2;
            s[0] -= i, s[1] -= a, s[2] += i, s[3] += a;
          }
          return s;
        }
        updateClipFromPath() {
          const e = Ie.intersect(this.clipBox, this.getPathBoundingBox());
          this.startNewPathAndClipBox(e || [0, 0, 0, 0]);
        }
        isEmptyClip() {
          return this.minMax[0] === 1 / 0;
        }
        startNewPathAndClipBox(e) {
          this.clipBox.set(e, 0), this.minMax.set(pr, 0);
        }
        getClippedPathBoundingBox(e = Fn.FILL, n = null) {
          return Ie.intersect(this.clipBox, this.getPathBoundingBox(e, n));
        }
      };
      p(zp, "putBinaryImageData");
      p(Up, "putBinaryImageMask");
      p(Ho, "copyCtxState");
      p(T0, "resetCtxToDefault");
      p(Gp, "getImageSmoothingEnabled");
      hk = ["butt", "round", "square"];
      uk = ["miter", "round", "bevel"];
      dk = {};
      Wp = {};
      jr = class _jr {
        static {
          p(this, "CanvasGraphics");
        }
        constructor(e, n, s, i, a, { optionalContentConfig: r, markedContentStack: o = null }, l, f, c, h) {
          this.ctx = e, this.current = new Np(this.ctx.canvas.width, this.ctx.canvas.height), this.stateStack = [], this.pendingClip = null, this.pendingEOFill = false, this.commonObjs = n, this.objs = s, this.canvasFactory = i, this.filterFactory = a, this.groupStack = [], this.baseTransform = null, this.baseTransformStack = [], this.groupLevel = 0, this.smaskStack = [], this.smaskCounter = 0, this.tempSMask = null, this.smaskGroupCanvases = [], this.suspendedCtx = null, this.contentVisible = true, this.markedContentStack = o || [], this.optionalContentConfig = r, this.cachedPatterns = /* @__PURE__ */ new Map(), this.annotationCanvasMap = l, this.viewportScale = 1, this.outputScaleX = 1, this.outputScaleY = 1, this.pageColors = f, this._cachedScaleForStroking = [-1, 0], this._cachedGetSinglePixelWidth = null, this._cachedBitmapsMap = /* @__PURE__ */ new Map(), this.dependencyTracker = c ?? null, this.imagesTracker = h ?? null;
        }
        getObject(e, n, s = null) {
          return typeof n == "string" ? (this.dependencyTracker?.recordNamedDependency(e, n), n.startsWith("g_") ? this.commonObjs.get(n) : this.objs.get(n)) : s;
        }
        beginDrawing({ transform: e, viewport: n, transparency: s = false, background: i = null }) {
          const a = this.ctx.canvas.width, r = this.ctx.canvas.height, o = this.ctx.fillStyle;
          if (this.ctx.fillStyle = i || "#ffffff", this.ctx.fillRect(0, 0, a, r), this.ctx.fillStyle = o, s) {
            const l = this.transparentCanvasEntry = this.canvasFactory.create(a, r);
            this.compositeCtx = this.ctx, { canvas: this.transparentCanvas, context: this.ctx } = l, this.ctx.save(), this.ctx.transform(...zt(this.compositeCtx));
          }
          this.ctx.save(), T0(this.ctx), e && (this.ctx.transform(...e), this.outputScaleX = e[0], this.outputScaleY = e[0]), this.ctx.transform(...n.transform), this.viewportScale = n.scale, this.baseTransform = zt(this.ctx);
        }
        executeOperatorList(e, n, s, i, a) {
          const r = e.argsArray, o = e.fnArray;
          let l = n || 0;
          const f = r.length;
          if (f === l) return l;
          const c = f - l > Lp && typeof s == "function", h = c ? Date.now() + fk : 0;
          let u = 0;
          const d = this.commonObjs, m = this.objs;
          let g, b;
          for (; ; ) {
            if (i !== void 0) {
              if (l === i.nextBreakPoint) return i.breakIt(l, s), l;
              if (i.shouldSkip(l)) {
                if (++l === f) return l;
                continue;
              }
            }
            if (!a || a(l)) if (g = o[l], b = r[l] ?? null, g !== cr.dependency) b === null ? this[g](l) : this[g](l, ...b);
            else for (const w of b) {
              this.dependencyTracker?.recordNamedData(w, l);
              const x = w.startsWith("g_") ? d : m;
              if (!x.has(w)) return x.get(w, s), l;
            }
            if (l++, l === f) return l;
            if (c && ++u > Lp) {
              if (Date.now() > h) return s(), l;
              u = 0;
            }
          }
        }
        #e() {
          for (; this.stateStack.length || this.inSMaskMode; ) this.restore();
          this.current.activeSMask = null, this.ctx.restore(), this.transparentCanvas && (this.ctx = this.compositeCtx, this.ctx.save(), this.ctx.setTransform(1, 0, 0, 1, 0, 0), this.ctx.drawImage(this.transparentCanvas, 0, 0), this.ctx.restore(), this.canvasFactory.destroy(this.transparentCanvasEntry), this.transparentCanvas = null, this.transparentCanvasEntry = null);
        }
        endDrawing() {
          this.#e();
          for (const e of this.smaskGroupCanvases) this.canvasFactory.destroy(e);
          this.smaskGroupCanvases.length = 0, this.tempSMask = null, this.smaskStack.length = 0, this.cachedPatterns.clear();
          for (const e of this._cachedBitmapsMap.values()) {
            for (const n of e.values()) typeof HTMLCanvasElement < "u" && n instanceof HTMLCanvasElement && (n.width = n.height = 0);
            e.clear();
          }
          this._cachedBitmapsMap.clear(), this.#t();
        }
        #t() {
          if (this.pageColors) {
            const e = this.filterFactory.addHCMFilter(this.pageColors.foreground, this.pageColors.background);
            if (e !== "none") {
              const n = this.ctx.filter;
              this.ctx.filter = e, this.ctx.drawImage(this.ctx.canvas, 0, 0), this.ctx.filter = n;
            }
          }
        }
        _scaleImage(e, n) {
          const s = e.width ?? e.displayWidth, i = e.height ?? e.displayHeight, a = Math.max(Math.hypot(n[0], n[1]), 1), r = Math.max(Math.hypot(n[2], n[3]), 1), o = [];
          let l = a, f = r, c = s, h = i;
          for (; l > 2 && c > 1 || f > 2 && h > 1; ) {
            let w = c, x = h;
            l > 2 && c > 1 && (w = c >= 16384 ? Math.floor(c / 2) - 1 || 1 : Math.ceil(c / 2), l /= c / w), f > 2 && h > 1 && (x = h >= 16384 ? Math.floor(h / 2) - 1 || 1 : Math.ceil(h) / 2, f /= h / x), o.push({ newWidth: w, newHeight: x }), c = w, h = x;
          }
          if (o.length === 0) return { img: e, paintWidth: s, paintHeight: i, tmpCanvas: null };
          if (o.length === 1) {
            const { newWidth: w, newHeight: x } = o[0], y = this.canvasFactory.create(w, x);
            return y.context.drawImage(e, 0, 0, s, i, 0, 0, w, x), { img: y.canvas, paintWidth: w, paintHeight: x, tmpCanvas: y };
          }
          let u = this.canvasFactory.create(1, 1), d = this.canvasFactory.create(1, 1), m = s, g = i, b = e;
          for (const { newWidth: w, newHeight: x } of o) this.canvasFactory.reset(d, w, x), d.context.drawImage(b, 0, 0, m, g, 0, 0, w, x), [u, d] = [d, u], b = u.canvas, m = w, g = x;
          return this.canvasFactory.destroy(d), { img: u.canvas, paintWidth: m, paintHeight: g, tmpCanvas: u };
        }
        _createMaskCanvas(e, n) {
          const s = this.ctx, { width: i, height: a } = n, r = this.current.fillColor, o = this.current.patternFill, l = zt(s);
          let f, c, h, u;
          if ((n.bitmap || n.data) && n.count > 1) {
            const T = n.bitmap || n.data.buffer;
            c = JSON.stringify(o ? l : [l.slice(0, 4), r]), f = this._cachedBitmapsMap.getOrInsertComputed(T, b0);
            const P = f.get(c);
            if (P && !o) {
              const H = Math.round(Math.min(l[0], l[2]) + l[4]), G = Math.round(Math.min(l[1], l[3]) + l[5]);
              return this.dependencyTracker?.recordDependencies(e, Fs.transformAndFill), { canvas: P, offsetX: H, offsetY: G };
            }
            h = P;
          }
          h || (u = this.canvasFactory.create(i, a), Up(u.context, n));
          let d = Ie.transform(l, [1 / i, 0, 0, -1 / a, 0, 0]);
          d = Ie.transform(d, [1, 0, 0, 1, 0, -a]);
          const m = pr.slice();
          Ie.axialAlignedBoundingBox([0, 0, i, a], d, m);
          const [g, b, w, x] = m, y = Math.round(w - g) || 1, j = Math.round(x - b) || 1, v = this.canvasFactory.create(y, j), q = v.context, A = g, C = b;
          q.translate(-A, -C), q.transform(...d);
          let S = null;
          if (!h) {
            const T = this._scaleImage(u.canvas, si(q));
            h = T.img, S = T.tmpCanvas, h !== u.canvas && (this.canvasFactory.destroy(u), u = null), f && o && (f.set(c, h), S = null, u = null);
          }
          q.imageSmoothingEnabled = Gp(zt(q), n.interpolate), I0(q, h, 0, 0, h.width, h.height, 0, 0, i, a), S && this.canvasFactory.destroy(S), u && this.canvasFactory.destroy(u), q.globalCompositeOperation = "source-in";
          const I = Ie.transform(si(q), [1, 0, 0, 1, -A, -C]);
          return q.fillStyle = o ? r.getPattern(s, this, I, Fn.FILL, e) : r, q.fillRect(0, 0, i, a), f && !o && f.set(c, v.canvas), this.dependencyTracker?.recordDependencies(e, Fs.transformAndFill), { canvas: v.canvas, canvasEntry: f && !o ? null : v, offsetX: Math.round(A), offsetY: Math.round(C) };
        }
        setLineWidth(e, n) {
          this.dependencyTracker?.recordSimpleData("lineWidth", e), n !== this.current.lineWidth && (this._cachedScaleForStroking[0] = -1), this.current.lineWidth = n, this.ctx.lineWidth = n;
        }
        setLineCap(e, n) {
          this.dependencyTracker?.recordSimpleData("lineCap", e), this.ctx.lineCap = hk[n];
        }
        setLineJoin(e, n) {
          this.dependencyTracker?.recordSimpleData("lineJoin", e), this.ctx.lineJoin = uk[n];
        }
        setMiterLimit(e, n) {
          this.dependencyTracker?.recordSimpleData("miterLimit", e), this.ctx.miterLimit = n;
        }
        setDash(e, n, s) {
          this.dependencyTracker?.recordSimpleData("dash", e);
          const i = this.ctx;
          i.setLineDash !== void 0 && (i.setLineDash(n), i.lineDashOffset = s);
        }
        setRenderingIntent(e, n) {
        }
        setFlatness(e, n) {
        }
        setGState(e, n) {
          for (const [s, i] of n) switch (s) {
            case "LW":
              this.setLineWidth(e, i);
              break;
            case "LC":
              this.setLineCap(e, i);
              break;
            case "LJ":
              this.setLineJoin(e, i);
              break;
            case "ML":
              this.setMiterLimit(e, i);
              break;
            case "D":
              this.setDash(e, i[0], i[1]);
              break;
            case "RI":
              this.setRenderingIntent(e, i);
              break;
            case "FL":
              this.setFlatness(e, i);
              break;
            case "Font":
              this.setFont(e, i[0], i[1]);
              break;
            case "CA":
              this.dependencyTracker?.recordSimpleData("strokeAlpha", e), this.current.strokeAlpha = i;
              break;
            case "ca":
              this.dependencyTracker?.recordSimpleData("fillAlpha", e), this.ctx.globalAlpha = this.current.fillAlpha = i;
              break;
            case "BM":
              this.dependencyTracker?.recordSimpleData("globalCompositeOperation", e), this.ctx.globalCompositeOperation = i;
              break;
            case "SMask":
              this.dependencyTracker?.recordSimpleData("SMask", e), this.current.activeSMask = i ? this.tempSMask : null, this.tempSMask = null, this.checkSMaskState();
              break;
            case "TR":
              this.dependencyTracker?.recordSimpleData("filter", e), this.ctx.filter = this.current.transferMaps = this.filterFactory.addFilter(i);
              break;
          }
        }
        get inSMaskMode() {
          return !!this.suspendedCtx;
        }
        checkSMaskState() {
          const e = this.inSMaskMode;
          this.current.activeSMask && !e ? this.beginSMaskMode() : !this.current.activeSMask && e && this.endSMaskMode();
        }
        beginSMaskMode(e) {
          if (this.inSMaskMode) throw new Error("beginSMaskMode called while already in smask mode");
          const n = this.ctx.canvas.width, s = this.ctx.canvas.height, i = this.canvasFactory.create(n, s);
          this.smaskScratchCanvas = i, this.suspendedCtx = this.ctx;
          const a = this.ctx = i.context;
          a.setTransform(this.suspendedCtx.getTransform()), Ho(this.suspendedCtx, a), ck(a, this.suspendedCtx), this.setGState(e, [["BM", "source-over"]]);
        }
        endSMaskMode() {
          if (!this.inSMaskMode) throw new Error("endSMaskMode called while not in smask mode");
          this.ctx._removeMirroring(), Ho(this.ctx, this.suspendedCtx), this.ctx = this.suspendedCtx, this.suspendedCtx = null, this.canvasFactory.destroy(this.smaskScratchCanvas), this.smaskScratchCanvas = null;
        }
        compose(e) {
          if (!this.current.activeSMask) return;
          e ? (e[0] = Math.floor(e[0]), e[1] = Math.floor(e[1]), e[2] = Math.ceil(e[2]), e[3] = Math.ceil(e[3])) : e = [0, 0, this.ctx.canvas.width, this.ctx.canvas.height];
          const n = this.current.activeSMask, s = this.suspendedCtx;
          this.composeSMask(s, n, this.ctx, e), this.ctx.save(), this.ctx.setTransform(1, 0, 0, 1, 0, 0), this.ctx.clearRect(0, 0, this.ctx.canvas.width, this.ctx.canvas.height), this.ctx.restore();
        }
        composeSMask(e, n, s, i) {
          const a = i[0], r = i[1], o = i[2] - a, l = i[3] - r;
          o === 0 || l === 0 || (this.genericComposeSMask(n.context, s, o, l, n.subtype, n.backdrop, n.transferMap, a, r, n.offsetX, n.offsetY), e.save(), e.globalAlpha = 1, e.globalCompositeOperation = "source-over", e.setTransform(1, 0, 0, 1, 0, 0), e.drawImage(s.canvas, 0, 0), e.restore());
        }
        genericComposeSMask(e, n, s, i, a, r, o, l, f, c, h) {
          let u = e.canvas, d = l - c, m = f - h, g = null;
          if (r) if (d < 0 || m < 0 || d + s > u.width || m + i > u.height) {
            g = this.canvasFactory.create(s, i);
            const w = g.context;
            w.drawImage(u, -d, -m), w.globalCompositeOperation = "destination-atop", w.fillStyle = r, w.fillRect(0, 0, s, i), w.globalCompositeOperation = "source-over", u = g.canvas, d = m = 0;
          } else {
            e.save(), e.globalAlpha = 1, e.setTransform(1, 0, 0, 1, 0, 0);
            const w = new Path2D();
            w.rect(d, m, s, i), e.clip(w), e.globalCompositeOperation = "destination-atop", e.fillStyle = r, e.fillRect(d, m, s, i), e.restore();
          }
          n.save(), n.globalAlpha = 1, n.setTransform(1, 0, 0, 1, 0, 0), a === "Alpha" && o ? n.filter = this.filterFactory.addAlphaFilter(o) : a === "Luminosity" && (n.filter = this.filterFactory.addLuminosityFilter(o));
          const b = new Path2D();
          b.rect(l, f, s, i), n.clip(b), n.globalCompositeOperation = "destination-in", n.drawImage(u, d, m, s, i, l, f, s, i), n.restore(), g && this.canvasFactory.destroy(g);
        }
        save(e) {
          this.inSMaskMode && Ho(this.ctx, this.suspendedCtx), this.ctx.save();
          const n = this.current;
          this.stateStack.push(n), this.current = n.clone(), this.dependencyTracker?.save(e);
        }
        restore(e) {
          if (this.dependencyTracker?.restore(e), this.stateStack.length === 0) {
            this.inSMaskMode && this.endSMaskMode();
            return;
          }
          this.current = this.stateStack.pop(), this.ctx.restore(), this.inSMaskMode && Ho(this.suspendedCtx, this.ctx), this.checkSMaskState(), this.pendingClip = null, this._cachedScaleForStroking[0] = -1, this._cachedGetSinglePixelWidth = null;
        }
        transform(e, n, s, i, a, r, o) {
          this.dependencyTracker?.recordIncrementalData("transform", e), this.ctx.transform(n, s, i, a, r, o), this._cachedScaleForStroking[0] = -1, this._cachedGetSinglePixelWidth = null;
        }
        constructPath(e, n, s, i) {
          let [a] = s;
          if (!i) {
            a ||= s[0] = new Path2D(), this[n](e, a);
            return;
          }
          if (this.dependencyTracker !== null) {
            const r = n === cr.stroke ? this.current.lineWidth / 2 : 0;
            this.dependencyTracker.resetBBox(e).recordBBox(e, this.ctx, i[0] - r, i[2] + r, i[1] - r, i[3] + r).recordDependencies(e, ["transform"]);
          }
          a instanceof Path2D || (a = s[0] = jp(a)), Ie.axialAlignedBoundingBox(i, zt(this.ctx), this.current.minMax), this[n](e, a), this._pathStartIdx = e;
        }
        closePath(e) {
          this.ctx.closePath();
        }
        stroke(e, n, s = true) {
          const i = this.ctx, a = this.current.strokeColor;
          if (i.globalAlpha = this.current.strokeAlpha, this.contentVisible) if (typeof a == "object" && a?.getPattern) {
            const r = a.isModifyingCurrentTransform() ? i.getTransform() : null;
            if (i.save(), i.strokeStyle = a.getPattern(i, this, si(i), Fn.STROKE, e), r) {
              const o = new Path2D();
              o.addPath(n, i.getTransform().invertSelf().multiplySelf(r)), n = o;
            }
            this.rescaleAndStroke(n, false), i.restore();
          } else this.rescaleAndStroke(n, true);
          this.dependencyTracker?.recordDependencies(e, Fs.stroke), s && this.consumePath(e, n, this.current.getClippedPathBoundingBox(Fn.STROKE, zt(this.ctx))), i.globalAlpha = this.current.fillAlpha;
        }
        closeStroke(e, n) {
          this.stroke(e, n);
        }
        fill(e, n, s = true) {
          const i = this.ctx, a = this.current.fillColor, r = this.current.patternFill;
          let o = false;
          if (r) {
            const f = a.isModifyingCurrentTransform() ? i.getTransform() : null;
            if (this.dependencyTracker?.save(e), i.save(), i.fillStyle = a.getPattern(i, this, si(i), Fn.FILL, e), f) {
              const c = new Path2D();
              c.addPath(n, i.getTransform().invertSelf().multiplySelf(f)), n = c;
            }
            o = true;
          }
          const l = this.current.getClippedPathBoundingBox();
          this.contentVisible && l !== null && (this.pendingEOFill ? (i.fill(n, "evenodd"), this.pendingEOFill = false) : i.fill(n)), this.dependencyTracker?.recordDependencies(e, Fs.fill), o && (i.restore(), this.dependencyTracker?.restore(e)), s && this.consumePath(e, n, l);
        }
        eoFill(e, n) {
          this.pendingEOFill = true, this.fill(e, n);
        }
        fillStroke(e, n) {
          this.fill(e, n, false), this.stroke(e, n, false), this.consumePath(e, n);
        }
        eoFillStroke(e, n) {
          this.pendingEOFill = true, this.fillStroke(e, n);
        }
        closeFillStroke(e, n) {
          this.fillStroke(e, n);
        }
        closeEOFillStroke(e, n) {
          this.pendingEOFill = true, this.fillStroke(e, n);
        }
        endPath(e, n) {
          this.consumePath(e, n);
        }
        rawFillPath(e, n) {
          this.ctx.fill(n), this.dependencyTracker?.recordDependencies(e, Fs.rawFillPath).recordOperation(e);
        }
        clip(e) {
          this.dependencyTracker?.recordFutureForcedDependency("clipMode", e), this.pendingClip = dk;
        }
        eoClip(e) {
          this.dependencyTracker?.recordFutureForcedDependency("clipMode", e), this.pendingClip = Wp;
        }
        beginText(e) {
          this.current.textMatrix = null, this.current.textMatrixScale = 1, this.current.x = this.current.lineX = 0, this.current.y = this.current.lineY = 0, this.dependencyTracker?.recordOpenMarker(e).resetIncrementalData("sameLineText").resetIncrementalData("moveText", e);
        }
        endText(e) {
          const n = this.pendingTextPaths, s = this.ctx;
          if (this.dependencyTracker) {
            const { dependencyTracker: i } = this;
            n !== void 0 && i.recordFutureForcedDependency("textClip", i.getOpenMarker()).recordFutureForcedDependency("textClip", e), i.recordCloseMarker(e);
          }
          if (n !== void 0) {
            const i = new Path2D(), a = s.getTransform().invertSelf();
            for (const { transform: r, x: o, y: l, fontSize: f, path: c } of n) c && i.addPath(c, new DOMMatrix(r).preMultiplySelf(a).translate(o, l).scale(f, -f));
            s.clip(i);
          }
          delete this.pendingTextPaths;
        }
        setCharSpacing(e, n) {
          this.dependencyTracker?.recordSimpleData("charSpacing", e), this.current.charSpacing = n;
        }
        setWordSpacing(e, n) {
          this.dependencyTracker?.recordSimpleData("wordSpacing", e), this.current.wordSpacing = n;
        }
        setHScale(e, n) {
          this.dependencyTracker?.recordSimpleData("hScale", e), this.current.textHScale = n / 100;
        }
        setLeading(e, n) {
          this.dependencyTracker?.recordSimpleData("leading", e), this.current.leading = -n;
        }
        setFont(e, n, s) {
          this.dependencyTracker?.recordSimpleData("font", e).recordSimpleDataFromNamed("fontObj", n, e);
          const i = this.commonObjs.get(n), a = this.current;
          if (!i) throw new Error(`Can't find font for ${n}`);
          if (a.fontMatrix = i.fontMatrix || Vc, (a.fontMatrix[0] === 0 || a.fontMatrix[3] === 0) && at("Invalid font matrix for font " + n), s < 0 ? (s = -s, a.fontDirection = -1) : a.fontDirection = 1, this.current.font = i, this.current.fontSize = s, i.isType3Font) return;
          const r = i.loadedName || "sans-serif", o = i.systemFontInfo?.css || `"${r}", ${i.fallbackName}`;
          let l = "normal";
          i.black ? l = "900" : i.bold && (l = "bold");
          const f = i.italic ? "italic" : "normal";
          let c = s;
          s < Hp ? c = Hp : s > Op && (c = Op), this.current.fontSizeScale = s / c, this.ctx.font = `${f} ${l} ${c}px ${o}`;
        }
        setTextRenderingMode(e, n) {
          this.dependencyTracker?.recordSimpleData("textRenderingMode", e), this.current.textRenderingMode = n;
        }
        setTextRise(e, n) {
          this.dependencyTracker?.recordSimpleData("textRise", e), this.current.textRise = n;
        }
        moveText(e, n, s) {
          this.dependencyTracker?.resetIncrementalData("sameLineText").recordIncrementalData("moveText", e), this.current.x = this.current.lineX += n, this.current.y = this.current.lineY += s;
        }
        setLeadingMoveText(e, n, s) {
          this.setLeading(e, -s), this.moveText(e, n, s);
        }
        setTextMatrix(e, n) {
          this.dependencyTracker?.resetIncrementalData("sameLineText").recordSimpleData("textMatrix", e);
          const { current: s } = this;
          s.textMatrix = n, s.textMatrixScale = Math.hypot(n[0], n[1]), s.x = s.lineX = 0, s.y = s.lineY = 0;
        }
        nextLine(e) {
          this.moveText(e, 0, this.current.leading), this.dependencyTracker?.recordIncrementalData("moveText", this.dependencyTracker.getSimpleIndex("leading") ?? e);
        }
        #n(e, n, s) {
          const i = new Path2D();
          return i.addPath(e, new DOMMatrix(s).invertSelf().multiplySelf(n)), i;
        }
        paintChar(e, n, s, i, a, r) {
          const o = this.ctx, l = this.current, f = l.font, c = l.textRenderingMode, h = l.fontSize / l.fontSizeScale, u = c & cn.FILL_STROKE_MASK, d = !!(c & cn.ADD_TO_PATH_FLAG), m = l.patternFill && !f.missingFile, g = l.patternStroke && !f.missingFile;
          let b;
          if ((f.disableFontFace || d || m || g) && !f.missingFile && (b = f.getPathGenerator(this.commonObjs, n)), b && (f.disableFontFace || m || g)) {
            o.save(), o.translate(s, i), o.scale(h, -h), this.dependencyTracker?.recordCharacterBBox(e, o, f);
            let w;
            if (u === cn.FILL || u === cn.FILL_STROKE) if (a) {
              w = o.getTransform(), o.setTransform(...a);
              const x = this.#n(b, w, a);
              o.fill(x);
            } else o.fill(b);
            if (u === cn.STROKE || u === cn.FILL_STROKE) if (r) {
              w ||= o.getTransform(), o.setTransform(...r);
              const { a: x, b: y, c: j, d: v } = w, q = Ie.inverseTransform(r), A = Ie.transform([x, y, j, v, 0, 0], q);
              Ie.singularValueDecompose2dScale(A, gs), o.lineWidth *= Math.max(gs[0], gs[1]) / h, o.stroke(this.#n(b, w, r));
            } else o.lineWidth /= h, o.stroke(b);
            o.restore();
          } else (u === cn.FILL || u === cn.FILL_STROKE) && (o.fillText(n, s, i), this.dependencyTracker?.recordCharacterBBox(e, o, f, h, s, i, () => o.measureText(n))), (u === cn.STROKE || u === cn.FILL_STROKE) && (this.dependencyTracker && this.dependencyTracker?.recordCharacterBBox(e, o, f, h, s, i, () => o.measureText(n)).recordDependencies(e, Fs.stroke), o.strokeText(n, s, i));
          d && ((this.pendingTextPaths ||= []).push({ transform: zt(o), x: s, y: i, fontSize: h, path: b }), this.dependencyTracker?.recordCharacterBBox(e, o, f, h, s, i));
        }
        get isFontSubpixelAAEnabled() {
          const e = this.canvasFactory.create(10, 10), n = e.context;
          n.scale(1.5, 1), n.fillText("I", 0, 10);
          const s = n.getImageData(0, 0, 10, 10).data;
          this.canvasFactory.destroy(e);
          let i = false;
          for (let a = 3; a < s.length; a += 4) if (s[a] > 0 && s[a] < 255) {
            i = true;
            break;
          }
          return st(this, "isFontSubpixelAAEnabled", i);
        }
        showText(e, n) {
          this.dependencyTracker && (this.dependencyTracker.recordDependencies(e, Fs.showText).resetBBox(e), this.current.textRenderingMode & cn.ADD_TO_PATH_FLAG && this.dependencyTracker.recordFutureForcedDependency("textClip", e).inheritPendingDependenciesAsFutureForcedDependencies());
          const s = this.current, i = s.font;
          if (i.isType3Font) {
            this.showType3Text(e, n), this.dependencyTracker?.recordShowTextOperation(e);
            return;
          }
          const a = s.fontSize;
          if (a === 0) {
            this.dependencyTracker?.recordOperation(e);
            return;
          }
          const r = this.ctx, o = s.fontSizeScale, l = s.charSpacing, f = s.wordSpacing, c = s.fontDirection, h = s.textHScale * c, u = n.length, d = i.vertical, m = d ? 1 : -1, g = i.defaultVMetrics, b = a * s.fontMatrix[0], w = s.textRenderingMode === cn.FILL && !i.disableFontFace && !s.patternFill;
          r.save(), s.textMatrix && r.transform(...s.textMatrix), r.translate(s.x, s.y + s.textRise), c > 0 ? r.scale(h, -1) : r.scale(h, 1);
          let x, y;
          const j = s.textRenderingMode & cn.FILL_STROKE_MASK, v = j === cn.FILL || j === cn.FILL_STROKE, q = j === cn.STROKE || j === cn.FILL_STROKE;
          if (v && s.patternFill) {
            r.save();
            const T = s.fillColor.getPattern(r, this, si(r), Fn.FILL, e);
            x = zt(r), r.restore(), r.fillStyle = T;
          }
          if (q && s.patternStroke) {
            r.save();
            const T = s.strokeColor.getPattern(r, this, si(r), Fn.STROKE, e);
            y = zt(r), r.restore(), r.strokeStyle = T;
          }
          let A = s.lineWidth;
          const C = s.textMatrixScale;
          if (C === 0 || A === 0 ? q && (A = this.getSinglePixelWidth()) : A /= C, o !== 1 && (r.scale(o, o), A /= o), r.lineWidth = A, i.isInvalidPDFjsFont) {
            const T = [];
            let P = 0;
            for (const G of n) T.push(G.unicode), P += G.width;
            const H = T.join("");
            if (r.fillText(H, 0, 0), this.dependencyTracker !== null) {
              const G = r.measureText(H);
              this.dependencyTracker.recordBBox(e, this.ctx, -G.actualBoundingBoxLeft, G.actualBoundingBoxRight, -G.actualBoundingBoxAscent, G.actualBoundingBoxDescent).recordShowTextOperation(e);
            }
            s.x += P * b * h, r.restore(), this.compose();
            return;
          }
          let S = 0, I;
          for (I = 0; I < u; ++I) {
            const T = n[I];
            if (typeof T == "number") {
              S += m * T * a / 1e3;
              continue;
            }
            let P = false;
            const H = (T.isSpace ? f : 0) + l, G = T.fontChar, Z = T.accent;
            let z, O, N = T.width;
            if (d) {
              const Y = T.vmetric || g, ye = -(T.vmetric ? Y[1] : N * 0.5) * b, qe = Y[2] * b;
              N = Y ? -Y[0] : N, z = ye / o, O = (S + qe) / o;
            } else z = S / o, O = 0;
            let oe;
            if (i.remeasure && N > 0) {
              oe = r.measureText(G);
              const Y = oe.width * 1e3 / a * o;
              if (N < Y && this.isFontSubpixelAAEnabled) {
                const ye = N / Y;
                P = true, r.save(), r.scale(ye, 1), z /= ye;
              } else N !== Y && (z += (N - Y) / 2e3 * a / o);
            }
            if (this.contentVisible && (T.isInFont || i.missingFile)) {
              if (w && !Z) r.fillText(G, z, O), this.dependencyTracker?.recordCharacterBBox(e, r, oe ? { bbox: null } : i, a / o, z, O, () => oe ?? r.measureText(G));
              else if (this.paintChar(e, G, z, O, x, y), Z) {
                const Y = z + a * Z.offset.x / o, ye = O - a * Z.offset.y / o;
                this.paintChar(e, Z.fontChar, Y, ye, x, y);
              }
            }
            const je = d ? N * b - H * c : N * b + H * c;
            S += je, P && r.restore();
          }
          d ? s.y -= S : s.x += S * h, r.restore(), this.compose(), this.dependencyTracker?.recordShowTextOperation(e);
        }
        showType3Text(e, n) {
          const s = this.ctx, i = this.current, a = i.font, r = i.fontSize, o = i.fontDirection, l = a.vertical ? 1 : -1, f = i.charSpacing, c = i.wordSpacing, h = i.textHScale * o, u = i.fontMatrix || Vc, d = n.length, m = i.textRenderingMode === cn.INVISIBLE;
          let g, b, w, x;
          if (m || r === 0) return;
          this._cachedScaleForStroking[0] = -1, this._cachedGetSinglePixelWidth = null, s.save(), i.textMatrix && s.transform(...i.textMatrix), s.translate(i.x, i.y + i.textRise), s.scale(h, o);
          const y = this.dependencyTracker;
          for (this.dependencyTracker = y ? new Q0(y, e) : null, g = 0; g < d; ++g) {
            if (b = n[g], typeof b == "number") {
              x = l * b * r / 1e3, this.ctx.translate(x, 0), i.x += x * h;
              continue;
            }
            const j = (b.isSpace ? c : 0) + f, v = a.charProcOperatorList[b.operatorListId];
            v ? this.contentVisible && (this.save(), s.scale(r, r), s.transform(...u), this.executeOperatorList(v), this.restore()) : at(`Type3 character "${b.operatorListId}" is not available.`);
            const q = [b.width, 0];
            Ie.applyTransform(q, u), w = q[0] * r + j, s.translate(w, 0), i.x += w * h;
          }
          s.restore(), y && (this.dependencyTracker = y);
        }
        setCharWidth(e, n, s) {
        }
        setCharWidthAndBounds(e, n, s, i, a, r, o) {
          const l = new Path2D();
          l.rect(i, a, r - i, o - a), this.ctx.clip(l), this.dependencyTracker?.recordBBox(e, this.ctx, i, r, a, o).recordClipBox(e, this.ctx, i, r, a, o), this.endPath(e);
        }
        getColorN_Pattern(e, n) {
          let s;
          if (n[0] === "TilingPattern") {
            const i = this.baseTransform || zt(this.ctx), a = { createCanvasGraphics: p((r, o) => new _jr(r, this.commonObjs, this.objs, this.canvasFactory, this.filterFactory, { optionalContentConfig: this.optionalContentConfig, markedContentStack: this.markedContentStack }, void 0, void 0, this.dependencyTracker ? new Q0(this.dependencyTracker, o, true) : null), "createCanvasGraphics") };
            s = new Sh(n, this.ctx, a, i);
          } else s = this._getPattern(e, n[1], n[2]);
          return s;
        }
        setStrokeColorN(e, ...n) {
          this.dependencyTracker?.recordSimpleData("strokeColor", e), this.current.strokeColor = this.getColorN_Pattern(e, n), this.current.patternStroke = true;
        }
        setFillColorN(e, ...n) {
          this.dependencyTracker?.recordSimpleData("fillColor", e), this.current.fillColor = this.getColorN_Pattern(e, n), this.current.patternFill = true;
        }
        setStrokeRGBColor(e, n) {
          this.dependencyTracker?.recordSimpleData("strokeColor", e), this.ctx.strokeStyle = this.current.strokeColor = n, this.current.patternStroke = false;
        }
        setStrokeTransparent(e) {
          this.dependencyTracker?.recordSimpleData("strokeColor", e), this.ctx.strokeStyle = this.current.strokeColor = "transparent", this.current.patternStroke = false;
        }
        setFillRGBColor(e, n) {
          this.dependencyTracker?.recordSimpleData("fillColor", e), this.ctx.fillStyle = this.current.fillColor = n, this.current.patternFill = false;
        }
        setFillTransparent(e) {
          this.dependencyTracker?.recordSimpleData("fillColor", e), this.ctx.fillStyle = this.current.fillColor = "transparent", this.current.patternFill = false;
        }
        _getPattern(e, n, s = null) {
          let i;
          return this.cachedPatterns.has(n) ? i = this.cachedPatterns.get(n) : (i = ok(this.getObject(e, n)), this.cachedPatterns.set(n, i)), s && (i.matrix = s), i;
        }
        shadingFill(e, n) {
          if (!this.contentVisible) return;
          const s = this.ctx;
          this.save(e);
          const i = this._getPattern(e, n);
          s.fillStyle = i.getPattern(s, this, si(s), Fn.SHADING, e);
          const a = si(s);
          if (a) {
            const { width: r, height: o } = s.canvas, l = pr.slice();
            Ie.axialAlignedBoundingBox([0, 0, r, o], a, l);
            const [f, c, h, u] = l;
            this.ctx.fillRect(f, c, h - f, u - c);
          } else this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);
          this.dependencyTracker?.resetBBox(e).recordFullPageBBox(e).recordDependencies(e, Fs.transform).recordDependencies(e, Fs.fill).recordOperation(e), this.compose(this.current.getClippedPathBoundingBox()), this.restore(e);
        }
        beginInlineImage() {
          It("Should not call beginInlineImage");
        }
        beginImageData() {
          It("Should not call beginImageData");
        }
        paintFormXObjectBegin(e, n, s) {
          if (this.contentVisible && (this.save(e), this.baseTransformStack.push(this.baseTransform), n && this.transform(e, ...n), this.baseTransform = zt(this.ctx), s)) {
            Ie.axialAlignedBoundingBox(s, this.baseTransform, this.current.minMax);
            const [i, a, r, o] = s, l = new Path2D();
            l.rect(i, a, r - i, o - a), this.ctx.clip(l), this.dependencyTracker?.recordClipBox(e, this.ctx, i, r, a, o), this.endPath(e);
          }
        }
        paintFormXObjectEnd(e) {
          this.contentVisible && (this.restore(e), this.baseTransform = this.baseTransformStack.pop());
        }
        beginGroup(e, n) {
          if (!this.contentVisible) return;
          this.save(e), this.inSMaskMode && (this.endSMaskMode(), this.current.activeSMask = null);
          const s = this.ctx;
          n.isolated || d0("TODO: Support non-isolated groups."), n.knockout && at("Knockout groups not supported.");
          const i = zt(s);
          n.matrix && s.transform(...n.matrix);
          const a = [0, 0, s.canvas.width, s.canvas.height];
          let r;
          n.bbox ? (r = pr.slice(), Ie.axialAlignedBoundingBox(n.bbox, zt(s), r), r = Ie.intersect(r, a) || [0, 0, 0, 0]) : r = a;
          const o = Math.floor(r[0]), l = Math.floor(r[1]), f = Math.max(Math.ceil(r[2]) - o, 1), c = Math.max(Math.ceil(r[3]) - l, 1);
          this.current.startNewPathAndClipBox([0, 0, f, c]), n.smask && this.smaskCounter++;
          const h = this.canvasFactory.create(f, c);
          n.smask && this.smaskGroupCanvases.push(h);
          const u = h.context;
          if (u.translate(-o, -l), u.transform(...i), n.bbox) {
            let d = new Path2D();
            const [m, g, b, w] = n.bbox;
            if (d.rect(m, g, b - m, w - g), n.matrix) {
              const x = new Path2D();
              x.addPath(d, new DOMMatrix(n.matrix)), d = x;
            }
            u.clip(d);
          }
          n.smask && this.smaskStack.push({ canvas: h.canvas, context: u, offsetX: o, offsetY: l, subtype: n.smask.subtype, backdrop: n.smask.backdrop, transferMap: n.smask.transferMap || null, startTransformInverse: null }), (!n.smask || this.dependencyTracker) && (s.setTransform(1, 0, 0, 1, 0, 0), s.translate(o, l), s.save()), Ho(s, u), this.ctx = u, this.dependencyTracker?.inheritSimpleDataAsFutureForcedDependencies(["fillAlpha", "strokeAlpha", "globalCompositeOperation"]).pushBaseTransform(s), this.setGState(e, [["BM", "source-over"], ["ca", 1], ["CA", 1], ["TR", null]]), this.groupStack.push(s), this.groupLevel++;
        }
        endGroup(e, n) {
          if (!this.contentVisible) return;
          this.groupLevel--;
          const s = this.ctx, i = this.groupStack.pop();
          if (this.ctx = i, this.ctx.imageSmoothingEnabled = false, this.dependencyTracker?.popBaseTransform(), n.smask) this.tempSMask = this.smaskStack.pop(), this.restore(e), this.dependencyTracker && this.ctx.restore();
          else {
            this.ctx.restore();
            const a = zt(this.ctx);
            this.restore(e), this.ctx.save(), this.ctx.setTransform(...a);
            const r = pr.slice();
            Ie.axialAlignedBoundingBox([0, 0, s.canvas.width, s.canvas.height], a, r), this.ctx.drawImage(s.canvas, 0, 0), this.ctx.restore(), this.canvasFactory.destroy({ canvas: s.canvas, context: s }), this.compose(r);
          }
        }
        beginAnnotation(e, n, s, i, a, r) {
          if (this.#e(), T0(this.ctx), this.ctx.save(), this.save(e), this.baseTransform && this.ctx.setTransform(...this.baseTransform), s) {
            const o = s[2] - s[0], l = s[3] - s[1];
            if (r && this.annotationCanvasMap) {
              i = i.slice(), i[4] -= s[0], i[5] -= s[1], s = s.slice(), s[0] = s[1] = 0, s[2] = o, s[3] = l, Ie.singularValueDecompose2dScale(zt(this.ctx), gs);
              const { viewportScale: f } = this, c = Math.ceil(o * this.outputScaleX * f), h = Math.ceil(l * this.outputScaleY * f);
              this.annotationCanvas = this.canvasFactory.create(c, h);
              const { canvas: u, context: d } = this.annotationCanvas;
              this.annotationCanvasMap.set(n, u), this.annotationCanvas.savedCtx = this.ctx, this.ctx = d, this.ctx.save(), this.ctx.setTransform(gs[0], 0, 0, -gs[1], 0, l * gs[1]), T0(this.ctx);
            } else {
              T0(this.ctx), this.endPath(e);
              const f = new Path2D();
              f.rect(s[0], s[1], o, l), this.ctx.clip(f);
            }
          }
          this.current = new Np(this.ctx.canvas.width, this.ctx.canvas.height), this.transform(e, ...i), this.transform(e, ...a);
        }
        endAnnotation(e) {
          this.annotationCanvas && (this.ctx.restore(), this.#t(), this.ctx = this.annotationCanvas.savedCtx, delete this.annotationCanvas.savedCtx, delete this.annotationCanvas);
        }
        paintImageMaskXObject(e, n) {
          if (!this.contentVisible) return;
          const s = n.count;
          n = this.getObject(e, n.data, n), n.count = s;
          const i = this.ctx, a = this._createMaskCanvas(e, n), r = a.canvas;
          i.save(), i.setTransform(1, 0, 0, 1, 0, 0), i.drawImage(r, a.offsetX, a.offsetY), this.dependencyTracker?.resetBBox(e).recordBBox(e, this.ctx, a.offsetX, a.offsetX + r.width, a.offsetY, a.offsetY + r.height).recordOperation(e), i.restore(), a.canvasEntry && this.canvasFactory.destroy(a.canvasEntry), this.compose();
        }
        paintImageMaskXObjectRepeat(e, n, s, i = 0, a = 0, r, o) {
          if (!this.contentVisible) return;
          n = this.getObject(e, n.data, n);
          const l = this.ctx;
          l.save();
          const f = zt(l);
          l.transform(s, i, a, r, 0, 0);
          const c = this._createMaskCanvas(e, n);
          l.setTransform(1, 0, 0, 1, c.offsetX - f[4], c.offsetY - f[5]), this.dependencyTracker?.resetBBox(e);
          for (let h = 0, u = o.length; h < u; h += 2) {
            const d = Ie.transform(f, [s, i, a, r, o[h], o[h + 1]]);
            l.drawImage(c.canvas, d[4], d[5]), this.dependencyTracker?.recordBBox(e, this.ctx, d[4], d[4] + c.canvas.width, d[5], d[5] + c.canvas.height);
          }
          l.restore(), c.canvasEntry && this.canvasFactory.destroy(c.canvasEntry), this.compose(), this.dependencyTracker?.recordOperation(e);
        }
        paintImageMaskXObjectGroup(e, n) {
          if (!this.contentVisible) return;
          const s = this.ctx, i = this.current.fillColor, a = this.current.patternFill;
          this.dependencyTracker?.resetBBox(e).recordDependencies(e, Fs.transformAndFill);
          for (const r of n) {
            const { data: o, width: l, height: f, transform: c } = r, h = this.canvasFactory.create(l, f), u = h.context;
            u.save();
            const d = this.getObject(e, o, r);
            Up(u, d), u.globalCompositeOperation = "source-in", u.fillStyle = a ? i.getPattern(u, this, si(s), Fn.FILL, e) : i, u.fillRect(0, 0, l, f), u.restore(), s.save(), s.transform(...c), s.scale(1, -1), I0(s, h.canvas, 0, 0, l, f, 0, -1, 1, 1), this.canvasFactory.destroy(h), this.dependencyTracker?.recordBBox(e, s, 0, l, 0, f), s.restore();
          }
          this.compose(), this.dependencyTracker?.recordOperation(e);
        }
        paintImageXObject(e, n) {
          if (!this.contentVisible) return;
          const s = this.getObject(e, n);
          if (!s) {
            at("Dependent image isn't ready yet");
            return;
          }
          this.paintInlineImageXObject(e, s);
        }
        paintImageXObjectRepeat(e, n, s, i, a) {
          if (!this.contentVisible) return;
          const r = this.getObject(e, n);
          if (!r) {
            at("Dependent image isn't ready yet");
            return;
          }
          const o = r.width, l = r.height, f = [];
          for (let c = 0, h = a.length; c < h; c += 2) f.push({ transform: [s, 0, 0, i, a[c], a[c + 1]], x: 0, y: 0, w: o, h: l });
          this.paintInlineImageXObjectGroup(e, r, f);
        }
        applyTransferMapsToCanvas(e) {
          return this.current.transferMaps !== "none" && (e.filter = this.current.transferMaps, e.drawImage(e.canvas, 0, 0), e.filter = "none"), e.canvas;
        }
        applyTransferMapsToBitmap(e) {
          if (this.current.transferMaps === "none") return { img: e.bitmap, canvasEntry: null };
          const { bitmap: n, width: s, height: i } = e, a = this.canvasFactory.create(s, i), r = a.context;
          return r.filter = this.current.transferMaps, r.drawImage(n, 0, 0), r.filter = "none", { img: a.canvas, canvasEntry: a };
        }
        paintInlineImageXObject(e, n) {
          if (!this.contentVisible) return;
          const s = n.width, i = n.height, a = this.ctx;
          this.save(e);
          const { filter: r } = a;
          r !== "none" && r !== "" && (a.filter = "none"), a.scale(1 / s, -1 / i);
          let o, l = null;
          if (n.bitmap) {
            const c = this.applyTransferMapsToBitmap(n);
            o = c.img, l = c.canvasEntry;
          } else if (typeof HTMLElement == "function" && n instanceof HTMLElement || !n.data) o = n;
          else {
            const c = this.canvasFactory.create(s, i);
            zp(c.context, n), o = this.applyTransferMapsToCanvas(c.context), l = c;
          }
          const f = this._scaleImage(o, si(a));
          a.imageSmoothingEnabled = Gp(zt(a), n.interpolate), this.dependencyTracker && (this.dependencyTracker.resetBBox(e).recordBBox(e, a, 0, s, -i, 0).recordDependencies(e, Fs.imageXObject).recordOperation(e), this.imagesTracker?.record(a, s, i, this.dependencyTracker.clipBox)), I0(a, f.img, 0, 0, f.paintWidth, f.paintHeight, 0, -i, s, i), f.tmpCanvas && this.canvasFactory.destroy(f.tmpCanvas), l && this.canvasFactory.destroy(l), this.compose(), this.restore(e);
        }
        paintInlineImageXObjectGroup(e, n, s) {
          if (!this.contentVisible) return;
          const i = this.ctx;
          let a, r = null;
          if (n.bitmap) a = n.bitmap;
          else {
            const o = n.width, l = n.height, f = this.canvasFactory.create(o, l);
            zp(f.context, n), a = this.applyTransferMapsToCanvas(f.context), r = f;
          }
          this.dependencyTracker?.resetBBox(e);
          for (const o of s) i.save(), i.transform(...o.transform), i.scale(1, -1), I0(i, a, o.x, o.y, o.w, o.h, 0, -1, 1, 1), this.dependencyTracker?.recordBBox(e, i, 0, 1, -1, 0), i.restore();
          r && this.canvasFactory.destroy(r), this.dependencyTracker?.recordOperation(e), this.compose();
        }
        paintSolidColorImageMask(e) {
          this.contentVisible && (this.dependencyTracker?.resetBBox(e).recordBBox(e, this.ctx, 0, 1, 0, 1).recordDependencies(e, Fs.fill).recordOperation(e), this.ctx.fillRect(0, 0, 1, 1), this.compose());
        }
        markPoint(e, n) {
        }
        markPointProps(e, n, s) {
        }
        beginMarkedContent(e, n) {
          this.dependencyTracker?.beginMarkedContent(e), this.markedContentStack.push({ visible: true });
        }
        beginMarkedContentProps(e, n, s) {
          this.dependencyTracker?.beginMarkedContent(e), n === "OC" ? this.markedContentStack.push({ visible: this.optionalContentConfig.isVisible(s) }) : this.markedContentStack.push({ visible: true }), this.contentVisible = this.isContentVisible();
        }
        endMarkedContent(e) {
          this.dependencyTracker?.endMarkedContent(e), this.markedContentStack.pop(), this.contentVisible = this.isContentVisible();
        }
        beginCompat(e) {
        }
        endCompat(e) {
        }
        consumePath(e, n, s) {
          const i = this.current.isEmptyClip();
          this.pendingClip && this.current.updateClipFromPath(), this.pendingClip || this.compose(s);
          const a = this.ctx;
          this.pendingClip ? (i || (this.pendingClip === Wp ? a.clip(n, "evenodd") : a.clip(n)), this.pendingClip = null, this.dependencyTracker?.bboxToClipBoxDropOperation(e).recordFutureForcedDependency("clipPath", e)) : this.dependencyTracker?.recordOperation(e), this.current.startNewPathAndClipBox(this.current.clipBox);
        }
        getSinglePixelWidth() {
          if (!this._cachedGetSinglePixelWidth) {
            const e = zt(this.ctx);
            if (e[1] === 0 && e[2] === 0) this._cachedGetSinglePixelWidth = 1 / Math.min(Math.abs(e[0]), Math.abs(e[3]));
            else {
              const n = Math.abs(e[0] * e[3] - e[2] * e[1]), s = Math.hypot(e[0], e[2]), i = Math.hypot(e[1], e[3]);
              this._cachedGetSinglePixelWidth = Math.max(s, i) / n;
            }
          }
          return this._cachedGetSinglePixelWidth;
        }
        getScaleForStroking() {
          if (this._cachedScaleForStroking[0] === -1) {
            const { lineWidth: e } = this.current, { a: n, b: s, c: i, d: a } = this.ctx.getTransform();
            let r, o;
            if (s === 0 && i === 0) {
              const l = Math.abs(n), f = Math.abs(a);
              if (l === f) if (e === 0) r = o = 1 / l;
              else {
                const c = l * e;
                r = o = c < 1 ? 1 / c : 1;
              }
              else if (e === 0) r = 1 / l, o = 1 / f;
              else {
                const c = l * e, h = f * e;
                r = c < 1 ? 1 / c : 1, o = h < 1 ? 1 / h : 1;
              }
            } else {
              const l = Math.abs(n * a - s * i), f = Math.hypot(n, s), c = Math.hypot(i, a);
              if (e === 0) r = c / l, o = f / l;
              else {
                const h = e * l;
                r = c > h ? c / h : 1, o = f > h ? f / h : 1;
              }
            }
            this._cachedScaleForStroking[0] = r, this._cachedScaleForStroking[1] = o;
          }
          return this._cachedScaleForStroking;
        }
        rescaleAndStroke(e, n) {
          const { ctx: s, current: { lineWidth: i } } = this, [a, r] = this.getScaleForStroking();
          if (a === r) {
            s.lineWidth = (i || 1) * a, s.stroke(e);
            return;
          }
          const o = s.getLineDash();
          n && s.save(), s.scale(a, r), hh.a = 1 / a, hh.d = 1 / r;
          const l = new Path2D();
          if (l.addPath(e, hh), o.length > 0) {
            const f = Math.max(a, r);
            s.setLineDash(o.map((c) => c / f)), s.lineDashOffset /= f;
          }
          s.lineWidth = i || 1, s.stroke(l), n && s.restore();
        }
        isContentVisible() {
          for (let e = this.markedContentStack.length - 1; e >= 0; e--) if (!this.markedContentStack[e].visible) return false;
          return true;
        }
      };
      for (const t in cr) jr.prototype[t] !== void 0 && (jr.prototype[cr[t]] = jr.prototype[t]);
      E0 = class {
        static {
          p(this, "BasePDFStream");
        }
        #e = null;
        #t = null;
        _fullReader = null;
        _rangeReaders = /* @__PURE__ */ new Set();
        _source = null;
        constructor(e, n, s) {
          this._source = e, this.#e = n, this.#t = s;
        }
        get _progressiveDataLength() {
          return this._fullReader?._loaded ?? 0;
        }
        getFullReader() {
          return Lt(!this._fullReader, "BasePDFStream.getFullReader can only be called once."), this._fullReader = new this.#e(this);
        }
        getRangeReader(e, n) {
          if (n <= this._progressiveDataLength) return null;
          const s = new this.#t(this, e, n);
          return this._rangeReaders.add(s), s;
        }
        cancelAllRequests(e) {
          this._fullReader?.cancel(e);
          for (const n of new Set(this._rangeReaders)) n.cancel(e);
        }
      };
      F0 = class {
        static {
          p(this, "BasePDFStreamReader");
        }
        onProgress = null;
        _contentLength = 0;
        _filename = null;
        _headersCapability = Promise.withResolvers();
        _isRangeSupported = false;
        _isStreamingSupported = false;
        _loaded = 0;
        _stream = null;
        constructor(e) {
          this._stream = e;
        }
        _callOnProgress() {
          this.onProgress?.({ loaded: this._loaded, total: this._contentLength });
        }
        get headersReady() {
          return this._headersCapability.promise;
        }
        get filename() {
          return this._filename;
        }
        get contentLength() {
          return this._contentLength;
        }
        get isRangeSupported() {
          return this._isRangeSupported;
        }
        get isStreamingSupported() {
          return this._isStreamingSupported;
        }
        async read() {
          It("Abstract method `read` called");
        }
        cancel(e) {
          It("Abstract method `cancel` called");
        }
      };
      B0 = class {
        static {
          p(this, "BasePDFStreamRangeReader");
        }
        _stream = null;
        constructor(e, n, s) {
          this._stream = e;
        }
        async read() {
          It("Abstract method `read` called");
        }
        cancel(e) {
          It("Abstract method `cancel` called");
        }
      };
      p(pk, "getFilenameFromContentDispositionHeader");
      p($p, "createHeaders");
      p(R0, "getResponseOrigin");
      p(Vp, "validateRangeRequestCapabilities");
      p(Kp, "extractFilenameFromHeader");
      p(_0, "createResponseError");
      p(Xp, "ensureResponseOrigin");
      p(Yp, "fetchUrl");
      p(Qp, "ensureResponseStatus");
      p(P0, "getArrayBuffer");
      mk = class extends E0 {
        static {
          p(this, "PDFFetchStream");
        }
        _responseOrigin = null;
        constructor(e) {
          super(e, gk, bk);
          const { httpHeaders: n, url: s } = e;
          Lt(/https?:/.test(s.protocol), "PDFFetchStream only supports http(s):// URLs."), this.headers = $p(true, n);
        }
      };
      gk = class extends F0 {
        static {
          p(this, "PDFFetchStreamReader");
        }
        _abortController = new AbortController();
        _reader = null;
        constructor(e) {
          super(e);
          const { disableRange: n, disableStream: s, rangeChunkSize: i, url: a, withCredentials: r } = e._source;
          this._isStreamingSupported = !s;
          const o = new Headers(e.headers);
          Yp(a, o, r, this._abortController).then((l) => {
            e._responseOrigin = R0(l.url), Qp(l.status, a), this._reader = l.body.getReader();
            const f = l.headers, { contentLength: c, isRangeSupported: h } = Vp({ responseHeaders: f, isHttp: true, rangeChunkSize: i, disableRange: n });
            this._contentLength = c, this._isRangeSupported = h, this._filename = Kp(f), !this._isStreamingSupported && this._isRangeSupported && this.cancel(new qi("Streaming is disabled.")), this._headersCapability.resolve();
          }).catch(this._headersCapability.reject);
        }
        async read() {
          await this._headersCapability.promise;
          const { value: e, done: n } = await this._reader.read();
          return n ? { value: e, done: n } : (this._loaded += e.byteLength, this._callOnProgress(), { value: P0(e), done: false });
        }
        cancel(e) {
          this._reader?.cancel(e), this._abortController.abort();
        }
      };
      bk = class extends B0 {
        static {
          p(this, "PDFFetchStreamRangeReader");
        }
        _abortController = new AbortController();
        _readCapability = Promise.withResolvers();
        _reader = null;
        constructor(e, n, s) {
          super(e, n, s);
          const { url: i, withCredentials: a } = e._source, r = new Headers(e.headers);
          r.append("Range", `bytes=${n}-${s - 1}`), Yp(i, r, a, this._abortController).then((o) => {
            const l = R0(o.url);
            Xp(l, e._responseOrigin), Qp(o.status, i), this._reader = o.body.getReader(), this._readCapability.resolve();
          }).catch(this._readCapability.reject);
        }
        async read() {
          await this._readCapability.promise;
          const { value: e, done: n } = await this._reader.read();
          return n ? { value: e, done: n } : { value: P0(e), done: false };
        }
        cancel(e) {
          this._reader?.cancel(e), this._abortController.abort();
        }
      };
      p(Jp, "transport_stream_getArrayBuffer");
      p(D0, "endRequests");
      wk = class extends E0 {
        static {
          p(this, "PDFDataTransportStream");
        }
        _progressiveDone = false;
        _queuedChunks = [];
        constructor(e) {
          super(e, xk, kk);
          const { pdfDataRangeTransport: n } = e, { initialData: s, progressiveDone: i } = n;
          if (s?.length > 0) {
            const a = Jp(s);
            this._queuedChunks.push(a);
          }
          this._progressiveDone = i, n.addRangeListener((a, r) => {
            this.#e(a, r);
          }), n.addProgressiveReadListener((a) => {
            this.#e(void 0, a);
          }), n.addProgressiveDoneListener(() => {
            this._fullReader?.progressiveDone(), this._progressiveDone = true;
          }), n.transportReady();
        }
        #e(e, n) {
          const s = Jp(n);
          if (e === void 0) this._fullReader ? this._fullReader._enqueue(s) : this._queuedChunks.push(s);
          else {
            const i = this._rangeReaders.keys().find((a) => a._begin === e);
            Lt(i, "#onReceiveData - no `PDFDataTransportStreamRangeReader` instance found."), i._enqueue(s);
          }
        }
        getFullReader() {
          const e = super.getFullReader();
          return this._queuedChunks = null, e;
        }
        getRangeReader(e, n) {
          const s = super.getRangeReader(e, n);
          return s && (s.onDone = () => this._rangeReaders.delete(s), this._source.pdfDataRangeTransport.requestDataRange(e, n)), s;
        }
        cancelAllRequests(e) {
          super.cancelAllRequests(e), this._source.pdfDataRangeTransport.abort();
        }
      };
      xk = class extends F0 {
        static {
          p(this, "PDFDataTransportStreamReader");
        }
        #e = D0.bind(this);
        _done = false;
        _queuedChunks = null;
        _requests = [];
        constructor(e) {
          super(e);
          const { pdfDataRangeTransport: n, disableRange: s, disableStream: i } = e._source, { length: a, contentDispositionFilename: r } = n;
          this._queuedChunks = e._queuedChunks || [];
          for (const l of this._queuedChunks) this._loaded += l.byteLength;
          this._done = e._progressiveDone, this._contentLength = a, this._isStreamingSupported = !i, this._isRangeSupported = !s, y0(r) && (this._filename = r), this._headersCapability.resolve();
          const o = this._loaded;
          Promise.resolve().then(() => {
            o > 0 && this._loaded === o && this._callOnProgress();
          });
        }
        _enqueue(e) {
          this._done || (this._requests.length > 0 ? this._requests.shift().resolve({ value: e, done: false }) : this._queuedChunks.push(e), this._loaded += e.byteLength, this._callOnProgress());
        }
        async read() {
          if (this._queuedChunks.length > 0) return { value: this._queuedChunks.shift(), done: false };
          if (this._done) return { value: void 0, done: true };
          const e = Promise.withResolvers();
          return this._requests.push(e), e.promise;
        }
        cancel(e) {
          this._done = true, this.#e();
        }
        progressiveDone() {
          this._done ||= true, this._queuedChunks.length === 0 && this.#e();
        }
      };
      kk = class extends B0 {
        static {
          p(this, "PDFDataTransportStreamRangeReader");
        }
        #e = D0.bind(this);
        onDone = null;
        _begin = -1;
        _done = false;
        _queuedChunk = null;
        _requests = [];
        constructor(e, n, s) {
          super(e, n, s), this._begin = n;
        }
        _enqueue(e) {
          this._done || (this._requests.length === 0 ? this._queuedChunk = e : (this._requests.shift().resolve({ value: e, done: false }), this.#e()), this._done = true, this.onDone?.());
        }
        async read() {
          if (this._queuedChunk) {
            const n = this._queuedChunk;
            return this._queuedChunk = null, { value: n, done: false };
          }
          if (this._done) return { value: void 0, done: true };
          const e = Promise.withResolvers();
          return this._requests.push(e), e.promise;
        }
        cancel(e) {
          this._done = true, this.#e(), this.onDone?.();
        }
      };
      uh = 200;
      Zp = 206;
      p(yk, "network_getArrayBuffer");
      jk = class extends E0 {
        static {
          p(this, "PDFNetworkStream");
        }
        #e = /* @__PURE__ */ new WeakMap();
        _responseOrigin = null;
        constructor(e) {
          super(e, vk, qk);
          const { httpHeaders: n, url: s } = e;
          this.url = s, this.isHttp = /https?:/.test(s.protocol), this.headers = $p(this.isHttp, n);
        }
        _request(e) {
          const n = new XMLHttpRequest(), s = { validateStatus: null, onHeadersReceived: e.onHeadersReceived, onDone: e.onDone, onError: e.onError, onProgress: e.onProgress };
          this.#e.set(n, s), n.open("GET", this.url), n.withCredentials = this._source.withCredentials;
          for (const [i, a] of this.headers) n.setRequestHeader(i, a);
          return this.isHttp && "begin" in e && "end" in e ? (n.setRequestHeader("Range", `bytes=${e.begin}-${e.end - 1}`), s.validateStatus = (i) => i === Zp || i === uh) : s.validateStatus = (i) => i === uh, n.responseType = "arraybuffer", Lt(e.onError, "Expected `onError` callback to be provided."), n.onerror = () => e.onError(n.status), n.onreadystatechange = this.#n.bind(this, n), n.onprogress = this.#t.bind(this, n), n.send(null), n;
        }
        #t(e, n) {
          this.#e.get(e)?.onProgress?.(n);
        }
        #n(e, n) {
          const s = this.#e.get(e);
          if (!s || (e.readyState >= 2 && s.onHeadersReceived && (s.onHeadersReceived(), delete s.onHeadersReceived), e.readyState !== 4) || !this.#e.has(e)) return;
          if (this.#e.delete(e), e.status === 0 && this.isHttp) {
            s.onError(e.status);
            return;
          }
          const i = e.status || uh;
          if (!s.validateStatus(i)) {
            s.onError(e.status);
            return;
          }
          const a = yk(e.response);
          if (i === Zp) {
            const r = e.getResponseHeader("Content-Range");
            /bytes (\d+)-(\d+)\/(\d+)/.test(r) ? s.onDone(a) : (at('Missing or invalid "Content-Range" header.'), s.onError(0));
          } else a ? s.onDone(a) : s.onError(e.status);
        }
        _abortRequest(e) {
          this.#e.has(e) && (this.#e.delete(e), e.abort());
        }
        getRangeReader(e, n) {
          const s = super.getRangeReader(e, n);
          return s && (s.onClosed = () => this._rangeReaders.delete(s)), s;
        }
      };
      vk = class extends F0 {
        static {
          p(this, "PDFNetworkStreamReader");
        }
        #e = D0.bind(this);
        _cachedChunks = [];
        _done = false;
        _requests = [];
        _storedError = null;
        constructor(e) {
          super(e), this._fullRequestXhr = e._request({ onHeadersReceived: this.#t.bind(this), onDone: this.#n.bind(this), onError: this.#s.bind(this), onProgress: this.#i.bind(this) });
        }
        #t() {
          const e = this._stream, { disableRange: n, rangeChunkSize: s } = e._source, i = this._fullRequestXhr;
          e._responseOrigin = R0(i.responseURL);
          const a = i.getAllResponseHeaders(), r = new Headers(a ? a.trimStart().replace(/[^\S ]+$/, "").split(/[\r\n]+/).map((f) => {
            const [c, ...h] = f.split(": ");
            return [c, h.join(": ")];
          }) : []), { contentLength: o, isRangeSupported: l } = Vp({ responseHeaders: r, isHttp: e.isHttp, rangeChunkSize: s, disableRange: n });
          this._contentLength = o, this._isRangeSupported = l, this._filename = Kp(r), this._isRangeSupported && e._abortRequest(i), this._headersCapability.resolve();
        }
        #n(e) {
          this._requests.length > 0 ? this._requests.shift().resolve({ value: e, done: false }) : this._cachedChunks.push(e), this._done = true, this._cachedChunks.length === 0 && this.#e();
        }
        #s(e) {
          this._storedError = _0(e, this._stream.url), this._headersCapability.reject(this._storedError);
          for (const n of this._requests) n.reject(this._storedError);
          this._requests.length = 0, this._cachedChunks.length = 0;
        }
        #i(e) {
          this.onProgress?.({ loaded: e.loaded, total: e.lengthComputable ? e.total : this._contentLength });
        }
        async read() {
          if (await this._headersCapability.promise, this._storedError) throw this._storedError;
          if (this._cachedChunks.length > 0) return { value: this._cachedChunks.shift(), done: false };
          if (this._done) return { value: void 0, done: true };
          const e = Promise.withResolvers();
          return this._requests.push(e), e.promise;
        }
        cancel(e) {
          this._done = true, this._headersCapability.reject(e), this.#e(), this._stream._abortRequest(this._fullRequestXhr), this._fullRequestXhr = null;
        }
      };
      qk = class extends B0 {
        static {
          p(this, "PDFNetworkStreamRangeReader");
        }
        #e = D0.bind(this);
        onClosed = null;
        _done = false;
        _queuedChunk = null;
        _requests = [];
        _storedError = null;
        constructor(e, n, s) {
          super(e, n, s), this._requestXhr = e._request({ begin: n, end: s, onHeadersReceived: this.#t.bind(this), onDone: this.#n.bind(this), onError: this.#s.bind(this), onProgress: null });
        }
        #t() {
          const e = R0(this._requestXhr?.responseURL);
          try {
            Xp(e, this._stream._responseOrigin);
          } catch (n) {
            this._storedError = n, this.#s(0);
          }
        }
        #n(e) {
          this._requests.length > 0 ? this._requests.shift().resolve({ value: e, done: false }) : this._queuedChunk = e, this._done = true, this.#e(), this.onClosed?.();
        }
        #s(e) {
          this._storedError ??= _0(e, this._stream.url);
          for (const n of this._requests) n.reject(this._storedError);
          this._requests.length = 0, this._queuedChunk = null;
        }
        async read() {
          if (this._storedError) throw this._storedError;
          if (this._queuedChunk !== null) {
            const n = this._queuedChunk;
            return this._queuedChunk = null, { value: n, done: false };
          }
          if (this._done) return { value: void 0, done: true };
          const e = Promise.withResolvers();
          return this._requests.push(e), e.promise;
        }
        cancel(e) {
          this._done = true, this.#e(), this._stream._abortRequest(this._requestXhr), this.onClosed?.();
        }
      };
      p(em, "getReadableStream");
      Ak = class extends E0 {
        static {
          p(this, "PDFNodeStream");
        }
        constructor(e) {
          super(e, Sk, Ck);
          const { url: n } = e;
          Lt(n.protocol === "file:", "PDFNodeStream only supports file:// URLs.");
        }
      };
      Sk = class extends F0 {
        static {
          p(this, "PDFNodeStreamReader");
        }
        _reader = null;
        constructor(e) {
          super(e);
          const { disableRange: n, disableStream: s, rangeChunkSize: i, url: a } = e._source;
          this._isStreamingSupported = !s;
          const r = process.getBuiltinModule("fs");
          r.promises.lstat(a).then((o) => {
            const l = r.createReadStream(a), f = em(l);
            this._reader = f.getReader();
            const { size: c } = o;
            this._contentLength = c, this._isRangeSupported = !n && c > 2 * i, !this._isStreamingSupported && this._isRangeSupported && this.cancel(new qi("Streaming is disabled.")), this._headersCapability.resolve();
          }).catch((o) => {
            o.code === "ENOENT" && (o = _0(0, a)), this._headersCapability.reject(o);
          });
        }
        async read() {
          await this._headersCapability.promise;
          const { value: e, done: n } = await this._reader.read();
          return n ? { value: e, done: n } : (this._loaded += e.byteLength, this._callOnProgress(), { value: P0(e), done: false });
        }
        cancel(e) {
          this._reader?.cancel(e);
        }
      };
      Ck = class extends B0 {
        static {
          p(this, "PDFNodeStreamRangeReader");
        }
        _readCapability = Promise.withResolvers();
        _reader = null;
        constructor(e, n, s) {
          super(e, n, s);
          const { url: i } = e._source, a = process.getBuiltinModule("fs");
          try {
            const r = a.createReadStream(i, { start: n, end: s - 1 }), o = em(r);
            this._reader = o.getReader(), this._readCapability.resolve();
          } catch (r) {
            this._readCapability.reject(r);
          }
        }
        async read() {
          await this._readCapability.promise;
          const { value: e, done: n } = await this._reader.read();
          return n ? { value: e, done: n } : { value: P0(e), done: false };
        }
        cancel(e) {
          this._reader?.cancel(e);
        }
      };
      p(Ik, "getNetworkStream");
      mr = class {
        static {
          p(this, "GlobalWorkerOptions");
        }
        static #e = null;
        static #t = "";
        static get workerPort() {
          return this.#e;
        }
        static set workerPort(e) {
          if (!(typeof Worker < "u" && e instanceof Worker) && e !== null) throw new Error("Invalid `workerPort` type.");
          this.#e = e;
        }
        static get workerSrc() {
          return this.#t;
        }
        static set workerSrc(e) {
          if (typeof e != "string") throw new Error("Invalid `workerSrc` type.");
          this.#t = e;
        }
      };
      Tk = class {
        static {
          p(this, "Metadata");
        }
        #e;
        #t;
        constructor({ parsedData: e, rawData: n }) {
          this.#e = e, this.#t = n;
        }
        getRaw() {
          return this.#t;
        }
        get(e) {
          return this.#e.get(e) ?? null;
        }
        [Symbol.iterator]() {
          return this.#e.entries();
        }
      };
      gr = /* @__PURE__ */ Symbol("INTERNAL");
      Ek = class {
        static {
          p(this, "OptionalContentGroup");
        }
        #e = false;
        #t = false;
        #n = false;
        #s = true;
        constructor(e, { name: n, intent: s, usage: i, rbGroups: a }) {
          this.#e = !!(e & ps.DISPLAY), this.#t = !!(e & ps.PRINT), this.name = n, this.intent = s, this.usage = i, this.rbGroups = a;
        }
        get visible() {
          if (this.#n) return this.#s;
          if (!this.#s) return false;
          const { print: e, view: n } = this.usage;
          return this.#e ? n?.viewState !== "OFF" : this.#t ? e?.printState !== "OFF" : true;
        }
        _setVisible(e, n, s = false) {
          e !== gr && It("Internal method `_setVisible` called."), this.#n = s, this.#s = n;
        }
      };
      Fk = class {
        static {
          p(this, "OptionalContentConfig");
        }
        #e = null;
        #t = /* @__PURE__ */ new Map();
        #n = null;
        #s = null;
        constructor(e, n = ps.DISPLAY) {
          if (this.renderingIntent = n, this.name = null, this.creator = null, e !== null) {
            this.name = e.name, this.creator = e.creator, this.#s = e.order;
            for (const s of e.groups) this.#t.set(s.id, new Ek(n, s));
            if (e.baseState === "OFF") for (const s of this.#t.values()) s._setVisible(gr, false);
            for (const s of e.on) this.#t.get(s)._setVisible(gr, true);
            for (const s of e.off) this.#t.get(s)._setVisible(gr, false);
            this.#n = this.getHash();
          }
        }
        #i(e) {
          const n = e.length;
          if (n < 2) return true;
          const s = e[0];
          for (let i = 1; i < n; i++) {
            const a = e[i];
            let r;
            if (Array.isArray(a)) r = this.#i(a);
            else if (this.#t.has(a)) r = this.#t.get(a).visible;
            else return at(`Optional content group not found: ${a}`), true;
            switch (s) {
              case "And":
                if (!r) return false;
                break;
              case "Or":
                if (r) return true;
                break;
              case "Not":
                return !r;
              default:
                return true;
            }
          }
          return s === "And";
        }
        isVisible(e) {
          if (this.#t.size === 0) return true;
          if (!e) return d0("Optional content group not defined."), true;
          if (e.type === "OCG") return this.#t.has(e.id) ? this.#t.get(e.id).visible : (at(`Optional content group not found: ${e.id}`), true);
          if (e.type === "OCMD") {
            if (e.expression) return this.#i(e.expression);
            if (!e.policy || e.policy === "AnyOn") {
              for (const n of e.ids) {
                if (!this.#t.has(n)) return at(`Optional content group not found: ${n}`), true;
                if (this.#t.get(n).visible) return true;
              }
              return false;
            } else if (e.policy === "AllOn") {
              for (const n of e.ids) {
                if (!this.#t.has(n)) return at(`Optional content group not found: ${n}`), true;
                if (!this.#t.get(n).visible) return false;
              }
              return true;
            } else if (e.policy === "AnyOff") {
              for (const n of e.ids) {
                if (!this.#t.has(n)) return at(`Optional content group not found: ${n}`), true;
                if (!this.#t.get(n).visible) return true;
              }
              return false;
            } else if (e.policy === "AllOff") {
              for (const n of e.ids) {
                if (!this.#t.has(n)) return at(`Optional content group not found: ${n}`), true;
                if (this.#t.get(n).visible) return false;
              }
              return true;
            }
            return at(`Unknown optional content policy ${e.policy}.`), true;
          }
          return at(`Unknown group type ${e.type}.`), true;
        }
        setVisibility(e, n = true, s = true) {
          const i = this.#t.get(e);
          if (!i) {
            at(`Optional content group not found: ${e}`);
            return;
          }
          if (s && n && i.rbGroups.length) for (const a of i.rbGroups) for (const r of a) r !== e && this.#t.get(r)?._setVisible(gr, false, true);
          i._setVisible(gr, !!n, true), this.#e = null;
        }
        setOCGState({ state: e, preserveRB: n }) {
          let s;
          for (const i of e) {
            switch (i) {
              case "ON":
              case "OFF":
              case "Toggle":
                s = i;
                continue;
            }
            const a = this.#t.get(i);
            if (a) switch (s) {
              case "ON":
                this.setVisibility(i, true, n);
                break;
              case "OFF":
                this.setVisibility(i, false, n);
                break;
              case "Toggle":
                this.setVisibility(i, !a.visible, n);
                break;
            }
          }
          this.#e = null;
        }
        get hasInitialVisibility() {
          return this.#n === null || this.getHash() === this.#n;
        }
        getOrder() {
          return this.#t.size ? this.#s ? this.#s.slice() : [...this.#t.keys()] : null;
        }
        getGroup(e) {
          return this.#t.get(e) || null;
        }
        getHash() {
          if (this.#e !== null) return this.#e;
          const e = new Ap();
          for (const [n, s] of this.#t) e.update(`${n}:${s.visible}`);
          return this.#e = e.hexdigest();
        }
        [Symbol.iterator]() {
          return this.#t.entries();
        }
      };
      Bk = class {
        static {
          p(this, "PagesMapper");
        }
        #e = null;
        #t = null;
        #n = 0;
        #s = null;
        #i = null;
        get pagesNumber() {
          return this.#n;
        }
        set pagesNumber(e) {
          this.#n !== e && (this.#n = e, this.#e = null, this.#t = null);
        }
        #a() {
          if (this.#e) return;
          const e = this.#n, n = this.#e = new Uint32Array(e);
          for (let s = 0; s < e; s++) n[s] = s + 1;
          this.#t = new Int32Array(n);
        }
        #r() {
          const e = /* @__PURE__ */ new Map(), n = this.#e;
          for (let s = 0, i = this.#n; s < i; s++) {
            const a = n[s], r = e.get(a);
            r ? r.push(s + 1) : e.set(a, [s + 1]);
          }
          return e;
        }
        movePages(e, n, s) {
          this.#a();
          const i = this.#e, a = this.#r(), r = n.length, o = new Uint32Array(r);
          let l = 0;
          for (let u = 0; u < r; u++) {
            const d = n[u] - 1;
            o[u] = i[d], d < s && l++;
          }
          const f = this.#n, c = f - r, h = hn(s - l, 0, c);
          for (let u = 0, d = 0; u < f; u++) e.has(u + 1) || (i[d++] = i[u]);
          i.copyWithin(h + r, h, c), i.set(o, h), this.#o(a), i.every((u, d) => u === d + 1) && (this.#e = null);
        }
        deletePages(e) {
          this.#a();
          const n = this.#e, s = this.#r();
          this.#i = { pageNumberToId: n.slice(), pagesNumber: this.#n, prevPageNumbers: this.#t.slice() };
          const i = this.#n - e.length;
          this.#n = i;
          const a = this.#e = new Uint32Array(i);
          this.#t = new Int32Array(i);
          let r = 0, o = 0;
          for (const l of e) {
            const f = l - 1;
            f !== r && (a.set(n.subarray(r, f), o), o += f - r), r = f + 1;
          }
          r < n.length && a.set(n.subarray(r), o), this.#o(s, new Set(e));
        }
        cancelDelete() {
          this.#i && (this.#e = this.#i.pageNumberToId, this.#n = this.#i.pagesNumber, this.#t = this.#i.prevPageNumbers, this.#i = null);
        }
        cleanSavedData() {
          this.#i = null;
        }
        copyPages(e) {
          this.#a(), this.#s = { pageNumbers: e, pageIds: e.map((n) => this.#e[n - 1]) };
        }
        cancelCopy() {
          this.#s = null;
        }
        pastePages(e) {
          this.#a();
          const n = this.#e, s = this.#r(), { pageNumbers: i, pageIds: a } = this.#s, r = this.#n + i.length;
          this.#n = r;
          const o = this.#e = new Uint32Array(r);
          this.#t = new Int32Array(r), o.set(n.subarray(0, e), 0), o.set(a, e), o.set(n.subarray(e), e + i.length), this.#o(s, null, e, i), this.#s = null;
        }
        #o(e, n = null, s = -1, i = null) {
          const a = this.#t, r = this.#e, o = s + (i?.length ?? 0), l = /* @__PURE__ */ new Map();
          for (let f = 0, c = this.#n; f < c; f++) {
            if (f >= s && f < o) {
              a[f] = -i[f - s];
              continue;
            }
            const h = r[f], u = e.get(h);
            let d = l.get(h) || 0;
            if (n && u) for (; d < u.length && n.has(u[d]); ) d++;
            a[f] = u?.[d], l.set(h, d + 1);
          }
        }
        hasBeenAltered() {
          return this.#e !== null;
        }
        getPageMappingForSaving(e = null) {
          e ??= this.#r();
          let n = 0;
          for (const i of e.values()) n = Math.max(n, i.length);
          const s = new Array(n);
          for (let i = 0; i < n; i++) s[i] = { document: null, pageIndices: [], includePages: [] };
          for (const [i, a] of e) for (let r = 0, o = a.length; r < o; r++) s[r].includePages.push([i - 1, a[r] - 1]);
          for (const { includePages: i, pageIndices: a } of s) {
            i.sort((r, o) => r[0] - o[0]);
            for (let r = 0, o = i.length; r < o; r++) a.push(i[r][1]), i[r] = i[r][0];
          }
          return s;
        }
        extractPages(e) {
          e = Array.from(e).sort((s, i) => s - i);
          const n = /* @__PURE__ */ new Map();
          for (let s = 0, i = e.length; s < i; s++) {
            const a = this.getPageId(e[s]);
            n.getOrInsertComputed(a, g0).push(s + 1);
          }
          return this.getPageMappingForSaving(n);
        }
        getPrevPageNumber(e) {
          return this.#t?.[e - 1] ?? 0;
        }
        getPageNumber(e) {
          if (!this.#e) return e;
          const n = this.#e;
          for (let s = 0, i = this.#n; s < i; s++) if (n[s] === e) return s + 1;
          return 0;
        }
        getPageId(e) {
          return this.#e?.[e - 1] ?? e;
        }
        getMapping() {
          return this.#e?.subarray(0, this.pagesNumber);
        }
      };
      br = /* @__PURE__ */ Symbol("INITIAL_DATA");
      tm = p(() => ({ ...Promise.withResolvers(), data: br }), "dataObj");
      nm = class {
        static {
          p(this, "PDFObjects");
        }
        #e = /* @__PURE__ */ new Map();
        get(e, n = null) {
          if (n) {
            const i = this.#e.getOrInsertComputed(e, tm);
            return i.promise.then(() => n(i.data)), null;
          }
          const s = this.#e.get(e);
          if (!s || s.data === br) throw new Error(`Requesting object that isn't resolved yet ${e}.`);
          return s.data;
        }
        has(e) {
          const n = this.#e.get(e);
          return !!n && n.data !== br;
        }
        delete(e) {
          const n = this.#e.get(e);
          return !n || n.data === br ? false : (this.#e.delete(e), true);
        }
        resolve(e, n = null) {
          const s = this.#e.getOrInsertComputed(e, tm);
          if (s.data !== br) throw new Error(`Object already resolved ${e}.`);
          s.data = n, s.resolve();
        }
        clear() {
          for (const { data: e } of this.#e.values()) e?.bitmap?.close();
          this.#e.clear();
        }
        *[Symbol.iterator]() {
          for (const [e, { data: n }] of this.#e) n !== br && (yield [e, n]);
        }
      };
      Rk = 1e5;
      sm = 30;
      ss = class _ss {
        static {
          p(this, "TextLayer");
        }
        #e = Promise.withResolvers();
        #t = null;
        #n = false;
        #s = !!globalThis.FontInspector?.enabled;
        #i = null;
        #a = null;
        #r = null;
        #o = 0;
        #l = 0;
        #f = null;
        #u = null;
        #c = 0;
        #d = 0;
        #g = /* @__PURE__ */ Object.create(null);
        #m = [];
        #h = null;
        #p = [];
        #b = /* @__PURE__ */ new WeakMap();
        #y = null;
        static #x = /* @__PURE__ */ new Map();
        static #v = /* @__PURE__ */ new Map();
        static #C = /* @__PURE__ */ new WeakMap();
        static #w = null;
        static #q = /* @__PURE__ */ new Set();
        constructor({ textContentSource: e, images: n, container: s, viewport: i }) {
          if (e instanceof ReadableStream) this.#h = e;
          else if (typeof e == "object") this.#h = new ReadableStream({ start(f) {
            f.enqueue(e), f.close();
          } });
          else throw new Error('No "textContentSource" parameter specified.');
          this.#t = this.#u = s, this.#i = n, this.#d = i.scale * Ws.pixelRatio, this.#c = i.rotation, this.#r = { div: null, properties: null, ctx: null };
          const { pageWidth: a, pageHeight: r, pageX: o, pageY: l } = i.rawDims;
          this.#y = [1, 0, 0, -1, -o, l + r], this.#l = a, this.#o = r, _ss.#R(), s.style.setProperty("--min-font-size", _ss.#w), Ki(s, i), this.#e.promise.finally(() => {
            _ss.#q.delete(this), this.#r = null, this.#g = null;
          }).catch(() => {
          });
        }
        static get fontFamilyMap() {
          const { isWindows: e, isFirefox: n } = rn.platform;
          return st(this, "fontFamilyMap", /* @__PURE__ */ new Map([["sans-serif", `${e && n ? "Calibri, " : ""}sans-serif`], ["monospace", `${e && n ? "Lucida Console, " : ""}monospace`]]));
        }
        render() {
          this.#i && this.#t.append(this.#i.render());
          const e = p(() => {
            this.#f.read().then(({ value: n, done: s }) => {
              if (s) {
                this.#e.resolve();
                return;
              }
              this.#a ??= n.lang, Object.assign(this.#g, n.styles), this.#j(n.items), e();
            }, this.#e.reject);
          }, "pump");
          return this.#f = this.#h.getReader(), _ss.#q.add(this), e(), this.#e.promise;
        }
        update({ viewport: e, onBefore: n = null }) {
          const s = e.scale * Ws.pixelRatio, i = e.rotation;
          if (i !== this.#c && (n?.(), this.#c = i, Ki(this.#u, { rotation: i })), s !== this.#d) {
            n?.(), this.#d = s;
            const a = { div: null, properties: null, ctx: _ss.#E(this.#a) };
            for (const r of this.#p) a.properties = this.#b.get(r), a.div = r, this.#T(a);
          }
        }
        cancel() {
          const e = new qi("TextLayer task cancelled.");
          this.#f?.cancel(e).catch(() => {
          }), this.#f = null, this.#e.reject(e);
        }
        get textDivs() {
          return this.#p;
        }
        get textContentItemsStr() {
          return this.#m;
        }
        #j(e) {
          if (this.#n) return;
          this.#r.ctx ??= _ss.#E(this.#a);
          const n = this.#p, s = this.#m;
          for (const i of e) {
            if (n.length > Rk) {
              at("Ignoring additional textDivs for performance reasons."), this.#n = true;
              return;
            }
            if (i.str === void 0) {
              if (i.type === "beginMarkedContentProps" || i.type === "beginMarkedContent") {
                const a = this.#t;
                this.#t = document.createElement("span"), this.#t.classList.add("markedContent"), i.id && this.#t.setAttribute("id", `${i.id}`), i.tag === "Artifact" && (this.#t.ariaHidden = true), a.append(this.#t);
              } else i.type === "endMarkedContent" && (this.#t = this.#t.parentNode);
              continue;
            }
            s.push(i.str), this.#S(i);
          }
        }
        #S(e) {
          const n = document.createElement("span"), s = { angle: 0, canvasWidth: 0, hasText: e.str !== "", hasEOL: e.hasEOL, fontSize: 0 };
          this.#p.push(n);
          const i = Ie.transform(this.#y, e.transform);
          let a = Math.atan2(i[1], i[0]);
          const r = this.#g[e.fontName];
          r.vertical && (a += Math.PI / 2);
          let o = this.#s && r.fontSubstitution || r.fontFamily;
          o = _ss.fontFamilyMap.get(o) || o;
          const l = Math.hypot(i[2], i[3]), f = l * _ss.#F(o, r, this.#a);
          let c, h;
          a === 0 ? (c = i[4], h = i[5] - f) : (c = i[4] + f * Math.sin(a), h = i[5] - f * Math.cos(a));
          const u = n.style;
          u.left = `${(100 * c / this.#l).toFixed(2)}%`, u.top = `${(100 * h / this.#o).toFixed(2)}%`, u.setProperty("--font-height", `${l.toFixed(2)}px`), u.fontFamily = o, s.fontSize = l, n.setAttribute("role", "presentation"), n.textContent = e.str, n.dir = e.dir, this.#s && (n.dataset.fontName = r.fontSubstitutionLoadedName || e.fontName), a !== 0 && (s.angle = a * (180 / Math.PI));
          let d = false;
          if (e.str.length > 1) d = true;
          else if (e.str !== " " && e.transform[0] !== e.transform[3]) {
            const m = Math.abs(e.transform[0]), g = Math.abs(e.transform[3]);
            m !== g && Math.max(m, g) / Math.min(m, g) > 1.5 && (d = true);
          }
          if (d && (s.canvasWidth = r.vertical ? e.height : e.width), this.#b.set(n, s), this.#r.div = n, this.#r.properties = s, this.#T(this.#r), s.hasText && this.#t.append(n), s.hasEOL) {
            const m = document.createElement("br");
            m.setAttribute("role", "presentation"), this.#t.append(m);
          }
        }
        #T(e) {
          const { div: n, properties: s, ctx: i } = e, { style: a } = n;
          if (s.canvasWidth !== 0 && s.hasText) {
            const { fontFamily: r } = a, { canvasWidth: o, fontSize: l } = s;
            _ss.#I(i, l * this.#d, r);
            const { width: f } = i.measureText(n.textContent);
            f > 0 && a.setProperty("--scale-x", o * this.#d / f);
          }
          s.angle !== 0 && a.setProperty("--rotate", `${s.angle}deg`);
        }
        static cleanup() {
          if (!(this.#q.size > 0)) {
            this.#x.clear();
            for (const { canvas: e } of this.#v.values()) e.remove();
            this.#v.clear();
          }
        }
        static #E(e = null) {
          let n = this.#v.get(e ||= "");
          if (!n) {
            const s = document.createElement("canvas");
            s.className = "hiddenCanvasElement", s.lang = e, document.body.append(s), n = s.getContext("2d", { alpha: false, willReadFrequently: true }), this.#v.set(e, n), this.#C.set(n, { size: 0, family: "" });
          }
          return n;
        }
        static #I(e, n, s) {
          const i = this.#C.get(e);
          n === i.size && s === i.family || (e.font = `${n}px ${s}`, i.size = n, i.family = s);
        }
        static #R() {
          if (this.#w !== null) return;
          const e = document.createElement("div");
          e.style.opacity = 0, e.style.lineHeight = 1, e.style.fontSize = "1px", e.style.position = "absolute", e.textContent = "X", document.body.append(e), this.#w = e.getBoundingClientRect().height, e.remove();
        }
        static #F(e, n, s) {
          const i = this.#x.get(e);
          if (i) return i;
          const a = this.#E(s);
          a.canvas.width = a.canvas.height = sm, this.#I(a, sm, e);
          const r = a.measureText(""), o = r.fontBoundingBoxAscent, l = Math.abs(r.fontBoundingBoxDescent);
          a.canvas.width = a.canvas.height = 0;
          let f = 0.8;
          return o ? f = o / (o + l) : (rn.platform.isFirefox && at("Enable the `dom.textMetrics.fontBoundingBox.enabled` preference in `about:config` to improve TextLayer rendering."), n.ascent ? f = n.ascent : n.descent && (f = 1 + n.descent)), this.#x.set(e, f), f;
        }
      };
      _k = 100;
      p(im, "getDocument");
      Ch = class _Ch {
        static {
          p(this, "PDFDocumentLoadingTask");
        }
        static #e = 0;
        _capability = Promise.withResolvers();
        _transport = null;
        _worker = null;
        docId = `d${_Ch.#e++}`;
        destroyed = false;
        onPassword = null;
        onProgress = null;
        get promise() {
          return this._capability.promise;
        }
        async destroy() {
          this.destroyed = true;
          try {
            this._worker?.port && (this._worker._pendingDestroy = true), await this._transport?.destroy();
          } catch (e) {
            throw this._worker?.port && delete this._worker._pendingDestroy, e;
          }
          this._transport = null, this._worker?.destroy(), this._worker = null;
        }
        async getData() {
          return this._transport.getData();
        }
      };
      dh = class {
        static {
          p(this, "PDFDataRangeTransport");
        }
        #e = Promise.withResolvers();
        #t = [];
        #n = [];
        #s = [];
        constructor(e, n, s = false, i = null) {
          this.length = e, this.initialData = n, this.progressiveDone = s, this.contentDispositionFilename = i, Object.defineProperty(this, "onDataProgress", { value: p(() => {
            v6("`PDFDataRangeTransport.prototype.onDataProgress` - method was removed, since loading progress is now reported automatically through the `PDFDataTransportStream` class (and related code).");
          }, "value") });
        }
        addRangeListener(e) {
          this.#s.push(e);
        }
        addProgressiveReadListener(e) {
          this.#n.push(e);
        }
        addProgressiveDoneListener(e) {
          this.#t.push(e);
        }
        onDataRange(e, n) {
          for (const s of this.#s) s(e, n);
        }
        onDataProgressiveRead(e) {
          this.#e.promise.then(() => {
            for (const n of this.#n) n(e);
          });
        }
        onDataProgressiveDone() {
          this.#e.promise.then(() => {
            for (const e of this.#t) e();
          });
        }
        transportReady() {
          this.#e.resolve();
        }
        requestDataRange(e, n) {
          It("Abstract method PDFDataRangeTransport.requestDataRange");
        }
        abort() {
        }
      };
      Pk = class {
        static {
          p(this, "PDFDocumentProxy");
        }
        constructor(e, n) {
          this._pdfInfo = e, this._transport = n;
        }
        get pagesMapper() {
          return this._transport.pagesMapper;
        }
        get annotationStorage() {
          return this._transport.annotationStorage;
        }
        get canvasFactory() {
          return this._transport.canvasFactory;
        }
        get filterFactory() {
          return this._transport.filterFactory;
        }
        get numPages() {
          return this._pdfInfo.numPages;
        }
        get fingerprints() {
          return this._pdfInfo.fingerprints;
        }
        get isPureXfa() {
          return st(this, "isPureXfa", !!this._transport._htmlForXfa);
        }
        get allXfaHtml() {
          return this._transport._htmlForXfa;
        }
        getPage(e) {
          return this._transport.getPage(e);
        }
        getPageIndex(e) {
          return this._transport.getPageIndex(e);
        }
        getDestinations() {
          return this._transport.getDestinations();
        }
        getDestination(e) {
          return this._transport.getDestination(e);
        }
        getPageLabels() {
          return this._transport.getPageLabels();
        }
        getPageLayout() {
          return this._transport.getPageLayout();
        }
        getPageMode() {
          return this._transport.getPageMode();
        }
        getViewerPreferences() {
          return this._transport.getViewerPreferences();
        }
        getOpenAction() {
          return this._transport.getOpenAction();
        }
        getAttachments() {
          return this._transport.getAttachments();
        }
        getAnnotationsByType(e, n) {
          return this._transport.getAnnotationsByType(e, n);
        }
        getJSActions() {
          return this._transport.getDocJSActions();
        }
        getOutline() {
          return this._transport.getOutline();
        }
        getOptionalContentConfig({ intent: e = "display" } = {}) {
          const { renderingIntent: n } = this._transport.getRenderingIntent(e);
          return this._transport.getOptionalContentConfig(n);
        }
        getPermissions() {
          return this._transport.getPermissions();
        }
        getMetadata() {
          return this._transport.getMetadata();
        }
        getMarkInfo() {
          return this._transport.getMarkInfo();
        }
        getData() {
          return this._transport.getData();
        }
        saveDocument() {
          return this._transport.saveDocument();
        }
        extractPages(e) {
          return this._transport.extractPages(e);
        }
        getDownloadInfo() {
          return this._transport.downloadInfoCapability.promise;
        }
        getRawData(e) {
          return this._transport.getRawData(e);
        }
        cleanup(e = false) {
          return this._transport.startCleanup(e || this.isPureXfa);
        }
        destroy() {
          return this.loadingTask.destroy();
        }
        cachedPageNumber(e) {
          return this._transport.cachedPageNumber(e);
        }
        get loadingParams() {
          return this._transport.loadingParams;
        }
        get loadingTask() {
          return this._transport.loadingTask;
        }
        getFieldObjects() {
          return this._transport.getFieldObjects();
        }
        hasJSActions() {
          return this._transport.hasJSActions();
        }
        getCalculationOrderIds() {
          return this._transport.getCalculationOrderIds();
        }
      };
      Ih = class _Ih {
        static {
          p(this, "PDFPageProxy");
        }
        #e = false;
        #t = null;
        constructor(e, n, s, i, a = false) {
          this._pageIndex = e, this._pageInfo = n, this._transport = s, this._stats = a ? new dp() : null, this._pdfBug = a, this.commonObjs = s.commonObjs, this.objs = new nm(), this._intentStates = /* @__PURE__ */ new Map(), this.destroyed = false, this.recordedBBoxes = null, this.#t = i, this.imageCoordinates = null;
        }
        clone(e) {
          const n = new _Ih(e, this._pageInfo, this._transport, this.#t, this._pdfBug);
          return n.clonedFromIndex = this.clonedFromIndex ?? this._pageIndex, this._transport.updatePage(n), n;
        }
        get pageNumber() {
          return this._pageIndex + 1;
        }
        set pageNumber(e) {
          this._pageIndex = e - 1, this._transport.updatePage(this);
        }
        get rotate() {
          return this._pageInfo.rotate;
        }
        get ref() {
          return this._pageInfo.ref;
        }
        get userUnit() {
          return this._pageInfo.userUnit;
        }
        get view() {
          return this._pageInfo.view;
        }
        getViewport({ scale: e, rotation: n = this.rotate, offsetX: s = 0, offsetY: i = 0, dontFlip: a = false } = {}) {
          return new Qo({ viewBox: this.view, userUnit: this.userUnit, scale: e, rotation: n, offsetX: s, offsetY: i, dontFlip: a });
        }
        getAnnotations({ intent: e = "display" } = {}) {
          const { renderingIntent: n } = this._transport.getRenderingIntent(e);
          return this._transport.getAnnotations(this._pageIndex, n);
        }
        getJSActions() {
          return this._transport.getPageJSActions(this._pageIndex);
        }
        get filterFactory() {
          return this._transport.filterFactory;
        }
        get isPureXfa() {
          return st(this, "isPureXfa", !!this._transport._htmlForXfa);
        }
        async getXfa() {
          return this._transport._htmlForXfa?.children[this._pageIndex] || null;
        }
        render({ canvasContext: e, canvas: n = e.canvas, viewport: s, intent: i = "display", annotationMode: a = vi.ENABLE, transform: r = null, background: o = null, optionalContentConfigPromise: l = null, annotationCanvasMap: f = null, pageColors: c = null, printAnnotationStorage: h = null, isEditing: u = false, recordImages: d = false, recordOperations: m = false, operationsFilter: g = null }) {
          this._stats?.time("Overall");
          const b = this._transport.getRenderingIntent(i, a, h, u), { renderingIntent: w, cacheKey: x } = b;
          this.#e = false, l ||= this._transport.getOptionalContentConfig(w);
          const y = this._intentStates.getOrInsertComputed(x, w0);
          y.streamReaderCancelTimeout && (clearTimeout(y.streamReaderCancelTimeout), y.streamReaderCancelTimeout = null);
          const j = !!(w & ps.PRINT);
          y.displayReadyCapability || (y.displayReadyCapability = Promise.withResolvers(), y.operatorList = { fnArray: [], argsArray: [], lastChunk: false, separateAnnots: null }, this._stats?.time("Page Request"), this._pumpOperatorList(b));
          const v = !!(this._pdfBug && globalThis.StepperManager?.enabled), q = !!n && !this.recordedBBoxes && (m || v), A = !!n && !this.imageCoordinates && d, C = p((H) => {
            if (y.renderTasks.delete(T), q) {
              const G = T.gfx?.dependencyTracker.take();
              G && (T.stepper?.setOperatorBBoxes(G, T.gfx.dependencyTracker.takeDebugMetadata()), m && (this.recordedBBoxes = G));
            }
            A && !H && (this.imageCoordinates = T.gfx?.imagesTracker.take()), j && (this.#e = true), this.#n(), H ? (T.capability.reject(H), this._abortOperatorList({ intentState: y, reason: H instanceof Error ? H : new Error(H) })) : T.capability.resolve(), this._stats && (this._stats.timeEnd("Rendering"), this._stats.timeEnd("Overall"), globalThis.Stats?.enabled && globalThis.Stats.add(this.pageNumber, this._stats));
          }, "complete");
          let S = null, I = null;
          (q || A) && (I = new F6(n, y.operatorList.length)), q && (S = new B6(I, v));
          const T = new vr({ callback: C, params: { canvas: n, canvasContext: e, dependencyTracker: S ?? I, imagesTracker: A ? new J0(n) : null, viewport: s, transform: r, background: o }, objs: this.objs, commonObjs: this.commonObjs, annotationCanvasMap: f, operatorList: y.operatorList, pageIndex: this._pageIndex, canvasFactory: this._transport.canvasFactory, filterFactory: this._transport.filterFactory, useRequestAnimationFrame: !j, pdfBug: this._pdfBug, pageColors: c, enableHWA: this._transport.enableHWA, operationsFilter: g });
          (y.renderTasks ||= /* @__PURE__ */ new Set()).add(T);
          const P = T.task;
          return Promise.all([y.displayReadyCapability.promise, l]).then(([H, G]) => {
            if (this.destroyed) {
              C();
              return;
            }
            if (this._stats?.time("Rendering"), !(G.renderingIntent & w)) throw new Error("Must use the same `intent`-argument when calling the `PDFPageProxy.render` and `PDFDocumentProxy.getOptionalContentConfig` methods.");
            T.initializeGraphics({ transparency: H, optionalContentConfig: G }), T.operatorListChanged();
          }).catch(C), P;
        }
        getOperatorList({ intent: e = "display", annotationMode: n = vi.ENABLE, printAnnotationStorage: s = null, isEditing: i = false } = {}) {
          function a() {
            o.operatorList.lastChunk && (o.opListReadCapability.resolve(o.operatorList), o.renderTasks.delete(l));
          }
          p(a, "operatorListChanged");
          const r = this._transport.getRenderingIntent(e, n, s, i, true), o = this._intentStates.getOrInsertComputed(r.cacheKey, w0);
          let l;
          return o.opListReadCapability || (l = /* @__PURE__ */ Object.create(null), l.operatorListChanged = a, o.opListReadCapability = Promise.withResolvers(), (o.renderTasks ||= /* @__PURE__ */ new Set()).add(l), o.operatorList = { fnArray: [], argsArray: [], lastChunk: false, separateAnnots: null }, this._stats?.time("Page Request"), this._pumpOperatorList(r)), o.opListReadCapability.promise;
        }
        streamTextContent({ includeMarkedContent: e = false, disableNormalization: n = false } = {}) {
          return this._transport.messageHandler.sendWithStream("GetTextContent", { pageId: this.#t.getPageId(this._pageIndex + 1) - 1, pageIndex: this._pageIndex, includeMarkedContent: e === true, disableNormalization: n === true }, { highWaterMark: 100, size(i) {
            return i.items.length;
          } });
        }
        async getTextContent(e = {}) {
          if (this._transport._htmlForXfa) return this.getXfa().then((i) => Yo.textContent(i));
          const n = this.streamTextContent(e), s = { items: [], styles: /* @__PURE__ */ Object.create(null), lang: null };
          for await (const i of n) s.lang ??= i.lang, Object.assign(s.styles, i.styles), s.items.push(...i.items);
          return s;
        }
        getStructTree() {
          return this._transport.getStructTree(this._pageIndex);
        }
        _destroy() {
          this.destroyed = true;
          const e = [];
          for (const n of this._intentStates.values()) if (this._abortOperatorList({ intentState: n, reason: new Error("Page was destroyed."), force: true }), !n.opListReadCapability) for (const s of n.renderTasks) e.push(s.completed), s.cancel();
          return this.objs.clear(), this.#e = false, Promise.all(e);
        }
        cleanup(e = false) {
          this.#e = true;
          const n = this.#n();
          return e && n && (this._stats &&= new dp()), n;
        }
        #n() {
          if (!this.#e || this.destroyed) return false;
          for (const { renderTasks: e, operatorList: n } of this._intentStates.values()) if (e.size > 0 || !n.lastChunk) return false;
          return this._intentStates.clear(), this.objs.clear(), this.#e = false, true;
        }
        _startRenderPage(e, n) {
          const s = this._intentStates.get(n);
          s && (this._stats?.timeEnd("Page Request"), s.displayReadyCapability?.resolve(e));
        }
        _renderPageChunk(e, n) {
          for (let s = 0, i = e.length; s < i; s++) n.operatorList.fnArray.push(e.fnArray[s]), n.operatorList.argsArray.push(e.argsArray[s]);
          n.operatorList.lastChunk = e.lastChunk, n.operatorList.separateAnnots = e.separateAnnots;
          for (const s of n.renderTasks) s.operatorListChanged();
          e.lastChunk && this.#n();
        }
        _pumpOperatorList({ renderingIntent: e, cacheKey: n, annotationStorageSerializable: s, modifiedIds: i }) {
          const { map: a, transfer: r } = s, l = this._transport.messageHandler.sendWithStream("GetOperatorList", { pageId: this.#t.getPageId(this._pageIndex + 1) - 1, pageIndex: this._pageIndex, intent: e, cacheKey: n, annotationStorage: a, modifiedIds: i }, void 0, r).getReader(), f = this._intentStates.get(n);
          f.streamReader = l;
          const c = p(() => {
            l.read().then(({ value: h, done: u }) => {
              if (u) {
                f.streamReader = null;
                return;
              }
              this._transport.destroyed || (this._renderPageChunk(h, f), c());
            }, (h) => {
              if (f.streamReader = null, !this._transport.destroyed) {
                if (f.operatorList) {
                  f.operatorList.lastChunk = true;
                  for (const u of f.renderTasks) u.operatorListChanged();
                  this.#n();
                }
                if (f.displayReadyCapability) f.displayReadyCapability.reject(h);
                else if (f.opListReadCapability) f.opListReadCapability.reject(h);
                else throw h;
              }
            });
          }, "pump");
          c();
        }
        _abortOperatorList({ intentState: e, reason: n, force: s = false }) {
          if (e.streamReader) {
            if (e.streamReaderCancelTimeout && (clearTimeout(e.streamReaderCancelTimeout), e.streamReaderCancelTimeout = null), !s) {
              if (e.renderTasks.size > 0) return;
              if (n instanceof k0) {
                let i = _k;
                n.extraDelay > 0 && n.extraDelay < 1e3 && (i += n.extraDelay), e.streamReaderCancelTimeout = setTimeout(() => {
                  e.streamReaderCancelTimeout = null, this._abortOperatorList({ intentState: e, reason: n, force: true });
                }, i);
                return;
              }
            }
            if (e.streamReader.cancel(new qi(n.message)).catch(() => {
            }), e.streamReader = null, !this._transport.destroyed) {
              for (const [i, a] of this._intentStates) if (a === e) {
                this._intentStates.delete(i);
                break;
              }
              this.cleanup();
            }
          }
        }
        get stats() {
          return this._stats;
        }
      };
      yn = class _yn {
        static {
          p(this, "PDFWorker");
        }
        #e = Promise.withResolvers();
        #t = null;
        #n = null;
        #s = null;
        static #i = 0;
        static #a = true;
        static #r = /* @__PURE__ */ new WeakMap();
        static {
          Ts && (this.#a = true, mr.workerSrc ||= "./pdf.worker.mjs"), this._isSameOrigin = (e, n) => {
            const s = URL.parse(e);
            if (!s?.origin || s.origin === "null") return false;
            const i = new URL(n, s);
            return s.origin === i.origin;
          }, this._createCDNWrapper = (e) => {
            const n = `await import("${e}");`;
            return URL.createObjectURL(new Blob([n], { type: "text/javascript" }));
          };
        }
        constructor({ name: e = null, port: n = null, verbosity: s = p6() } = {}) {
          if (this.name = e, this.destroyed = false, this.verbosity = s, n) {
            if (_yn.#r.has(n)) throw new Error("Cannot use more than one PDFWorker per port.");
            _yn.#r.set(n, this), this.#l(n);
          } else this.#f();
        }
        get promise() {
          return this.#e.promise;
        }
        #o() {
          this.#e.resolve(), this.#t.send("configure", { verbosity: this.verbosity });
        }
        get port() {
          return this.#n;
        }
        get messageHandler() {
          return this.#t;
        }
        #l(e) {
          this.#n = e, this.#t = new Mo("main", "worker", e), this.#t.on("ready", () => {
          }), this.#o();
        }
        #f() {
          if (_yn.#a || _yn.#c) {
            this.#u();
            return;
          }
          let { workerSrc: e } = _yn;
          try {
            _yn._isSameOrigin(window.location, e) || (e = _yn._createCDNWrapper(new URL(e, window.location).href));
            const n = new Worker(e, { type: "module" }), s = new Mo("main", "worker", n), i = p(() => {
              a.abort(), s.destroy(), n.terminate(), this.destroyed ? this.#e.reject(new Error("Worker was destroyed")) : this.#u();
            }, "terminateEarly"), a = new AbortController();
            n.addEventListener("error", () => {
              this.#s || i();
            }, { signal: a.signal }), s.on("test", (o) => {
              if (a.abort(), this.destroyed || !o) {
                i();
                return;
              }
              this.#t = s, this.#n = n, this.#s = n, this.#o();
            }), s.on("ready", (o) => {
              if (a.abort(), this.destroyed) {
                i();
                return;
              }
              try {
                r();
              } catch {
                this.#u();
              }
            });
            const r = p(() => {
              const o = new Uint8Array();
              s.send("test", o, [o.buffer]);
            }, "sendTest");
            r();
            return;
          } catch {
            d0("The worker has been disabled.");
          }
          this.#u();
        }
        #u() {
          _yn.#a || (at("Setting up fake worker."), _yn.#a = true), _yn._setupFakeWorkerGlobal.then((e) => {
            if (this.destroyed) {
              this.#e.reject(new Error("Worker was destroyed"));
              return;
            }
            const n = new W6();
            this.#n = n;
            const s = `fake${_yn.#i++}`, i = new Mo(s + "_worker", s, n);
            e.setup(i, n), this.#t = new Mo(s, s + "_worker", n), this.#o();
          }).catch((e) => {
            this.#e.reject(new Error(`Setting up fake worker failed: "${e.message}".`));
          });
        }
        destroy() {
          this.destroyed = true, this.#s?.terminate(), this.#s = null, _yn.#r.delete(this.#n), this.#n = null, this.#t?.destroy(), this.#t = null;
        }
        static create(e) {
          const n = this.#r.get(e?.port);
          if (n) {
            if (n._pendingDestroy) throw new Error("PDFWorker.create - the worker is being destroyed.\nPlease remember to await `PDFDocumentLoadingTask.destroy()`-calls.");
            return n;
          }
          return new _yn(e);
        }
        static get workerSrc() {
          if (mr.workerSrc) return mr.workerSrc;
          throw new Error('No "GlobalWorkerOptions.workerSrc" specified.');
        }
        static get #c() {
          try {
            return globalThis.pdfjsWorker?.WorkerMessageHandler || null;
          } catch {
            return null;
          }
        }
        static get _setupFakeWorkerGlobal() {
          return st(this, "_setupFakeWorkerGlobal", p(async () => this.#c ? this.#c : __pdfjsWorker__.WorkerMessageHandler, "loader")());
        }
      };
      Dk = class {
        static {
          p(this, "WorkerTransport");
        }
        downloadInfoCapability = Promise.withResolvers();
        #e = null;
        #t = /* @__PURE__ */ new Map();
        #n = null;
        #s = /* @__PURE__ */ new Map();
        #i = /* @__PURE__ */ new Map();
        #a = /* @__PURE__ */ new Map();
        #r = null;
        constructor(e, n, s, i, a, r) {
          this.messageHandler = e, this.loadingTask = n, this.#n = s, this.commonObjs = new nm(), this.fontLoader = new R6({ ownerDocument: i.ownerDocument, styleElement: i.styleElement }), this.enableHWA = i.enableHWA, this.loadingParams = i.loadingParams, this._params = i, this.canvasFactory = a.canvasFactory, this.filterFactory = a.filterFactory, this.binaryDataFactory = a.binaryDataFactory, this.pagesMapper = r, this.destroyed = false, this.destroyCapability = null, this.setupMessageHandler();
        }
        updatePage(e) {
          const { _pageIndex: n } = e;
          this.#s.set(n, e), this.#i.set(n, Promise.resolve(e));
        }
        #o(e, n = null) {
          return this.#t.getOrInsertComputed(e, () => this.messageHandler.sendWithPromise(e, n));
        }
        #l({ loaded: e, total: n }) {
          this.loadingTask.onProgress?.({ loaded: e, total: n, percent: n ? hn(Math.round(e / n * 100), 0, 100) : NaN });
        }
        get annotationStorage() {
          return st(this, "annotationStorage", new ah());
        }
        getRenderingIntent(e, n = vi.ENABLE, s = null, i = false, a = false) {
          let r = ps.DISPLAY, o = Do;
          switch (e) {
            case "any":
              r = ps.ANY;
              break;
            case "display":
              break;
            case "print":
              r = ps.PRINT;
              break;
            default:
              at(`getRenderingIntent - invalid intent: ${e}`);
          }
          const l = r & ps.PRINT && s instanceof Sp ? s : this.annotationStorage;
          switch (n) {
            case vi.DISABLE:
              r += ps.ANNOTATIONS_DISABLE;
              break;
            case vi.ENABLE:
              break;
            case vi.ENABLE_FORMS:
              r += ps.ANNOTATIONS_FORMS;
              break;
            case vi.ENABLE_STORAGE:
              r += ps.ANNOTATIONS_STORAGE, o = l.serializable;
              break;
            default:
              at(`getRenderingIntent - invalid annotationMode: ${n}`);
          }
          i && (r += ps.IS_EDITING), a && (r += ps.OPLIST);
          const { ids: f, hash: c } = l.modifiedIds, h = [r, o.hash, c];
          return { renderingIntent: r, cacheKey: h.join("_"), annotationStorageSerializable: o, modifiedIds: f };
        }
        destroy() {
          if (this.destroyCapability) return this.destroyCapability.promise;
          this.destroyed = true, this.destroyCapability = Promise.withResolvers(), this.#r?.reject(new Error("Worker was destroyed during onPassword callback"));
          const e = [];
          for (const s of this.#s.values()) e.push(s._destroy());
          this.#s.clear(), this.#i.clear(), this.#a.clear(), this.hasOwnProperty("annotationStorage") && this.annotationStorage.resetModified();
          const n = this.messageHandler.sendWithPromise("Terminate", null);
          return e.push(n), Promise.all(e).then(() => {
            this.commonObjs.clear(), this.fontLoader.clear(), this.#t.clear(), this.filterFactory.destroy(), ss.cleanup(), this.#n?.cancelAllRequests(new qi("Worker was terminated.")), this.messageHandler?.destroy(), this.messageHandler = null, this.destroyCapability.resolve();
          }, this.destroyCapability.reject), this.destroyCapability.promise;
        }
        setupMessageHandler() {
          const { messageHandler: e, loadingTask: n } = this;
          e.on("GetReader", (s, i) => {
            Lt(this.#n, "GetReader - no `BasePDFStream` instance available."), this.#e = this.#n.getFullReader(), this.#e.onProgress = (a) => this.#l(a), i.onPull = () => {
              this.#e.read().then(function({ value: a, done: r }) {
                if (r) {
                  i.close();
                  return;
                }
                Lt(a instanceof ArrayBuffer, "GetReader - expected an ArrayBuffer."), i.enqueue(new Uint8Array(a), 1, [a]);
              }).catch((a) => {
                i.error(a);
              });
            }, i.onCancel = (a) => {
              this.#e.cancel(a), i.ready.catch((r) => {
                if (!this.destroyed) throw r;
              });
            };
          }), e.on("ReaderHeadersReady", async (s) => {
            await this.#e.headersReady;
            const { isStreamingSupported: i, isRangeSupported: a, contentLength: r } = this.#e;
            return i && a && (this.#e.onProgress = null), { isStreamingSupported: i, isRangeSupported: a, contentLength: r };
          }), e.on("GetRangeReader", (s, i) => {
            Lt(this.#n, "GetRangeReader - no `BasePDFStream` instance available.");
            const a = this.#n.getRangeReader(s.begin, s.end);
            if (!a) {
              i.close();
              return;
            }
            i.onPull = () => {
              a.read().then(function({ value: r, done: o }) {
                if (o) {
                  i.close();
                  return;
                }
                Lt(r instanceof ArrayBuffer, "GetRangeReader - expected an ArrayBuffer."), i.enqueue(new Uint8Array(r), 1, [r]);
              }).catch((r) => {
                i.error(r);
              });
            }, i.onCancel = (r) => {
              a.cancel(r), i.ready.catch((o) => {
                if (!this.destroyed) throw o;
              });
            };
          }), e.on("GetDoc", ({ pdfInfo: s }) => {
            this.pagesMapper.pagesNumber = s.numPages, this._numPages = s.numPages, this._htmlForXfa = s.htmlForXfa, delete s.htmlForXfa, n._capability.resolve(new Pk(s, this));
          }), e.on("DocException", (s) => {
            n._capability.reject(es(s));
          }), e.on("PasswordRequest", (s) => {
            this.#r = Promise.withResolvers();
            try {
              if (!n.onPassword) throw es(s);
              const i = p((a) => {
                a instanceof Error ? this.#r.reject(a) : this.#r.resolve({ password: a });
              }, "updatePassword");
              n.onPassword(i, s.code);
            } catch (i) {
              this.#r.reject(i);
            }
            return this.#r.promise;
          }), e.on("DataLoaded", (s) => {
            this.#l({ loaded: s.length, total: s.length }), this.downloadInfoCapability.resolve(s);
          }), e.on("StartRenderPage", (s) => {
            if (this.destroyed) return;
            this.#s.get(s.pageIndex)._startRenderPage(s.transparency, s.cacheKey);
          }), e.on("commonobj", ([s, i, a]) => {
            if (this.destroyed || this.commonObjs.has(s)) return null;
            switch (i) {
              case "Font":
                if ("error" in a) {
                  const h = a.error;
                  at(`Error during font loading: ${h}`), this.commonObjs.resolve(s, h);
                  break;
                }
                const r = new O6(a), o = this._params.pdfBug && globalThis.FontInspector?.enabled ? (h, u) => globalThis.FontInspector.fontAdded(h, u) : null, l = new _6(r, o, a.charProcOperatorList, a.extra);
                this.fontLoader.bind(l).catch(() => e.sendWithPromise("FontFallback", { id: s })).finally(() => {
                  l.fontExtraProperties || l.clearData(), this.commonObjs.resolve(s, l);
                });
                break;
              case "CopyLocalImage":
                const { imageRef: f } = a;
                Lt(f, "The imageRef must be defined.");
                for (const h of this.#s.values()) for (const [, u] of h.objs) if (u?.ref === f) return u.dataLen ? (this.commonObjs.resolve(s, structuredClone(u)), u.dataLen) : null;
                break;
              case "FontPath":
                this.commonObjs.resolve(s, new N6(a));
                break;
              case "Image":
                this.commonObjs.resolve(s, a);
                break;
              case "Pattern":
                const c = new L6(a);
                this.commonObjs.resolve(s, c.getIR());
                break;
              default:
                throw new Error(`Got unknown common object type ${i}`);
            }
            return null;
          }), e.on("obj", ([s, i, a, r]) => {
            if (this.destroyed) return;
            const o = this.#s.get(i);
            if (!o.objs.has(s)) {
              if (o._intentStates.size === 0) {
                r?.bitmap?.close();
                return;
              }
              switch (a) {
                case "Image":
                case "Pattern":
                  o.objs.resolve(s, r);
                  break;
                default:
                  throw new Error(`Got unknown object type ${a}`);
              }
            }
          }), e.on("DocProgress", (s) => {
            this.destroyed || this.#l(s);
          }), e.on("PrepareWebGPU", () => {
            this.destroyed || ek();
          }), e.on("FetchBinaryData", async (s) => {
            if (this.destroyed) throw new Error("Worker was destroyed.");
            if (!this.binaryDataFactory) throw new Error("`BinaryDataFactory` not initialized, see the `useWorkerFetch` parameter.");
            return this.binaryDataFactory.fetch(s);
          });
        }
        getData() {
          return this.messageHandler.sendWithPromise("GetData", null);
        }
        saveDocument() {
          this.annotationStorage.size <= 0 && at("saveDocument called while `annotationStorage` is empty, please use the getData-method instead.");
          const { map: e, transfer: n } = this.annotationStorage.serializable;
          return this.messageHandler.sendWithPromise("SaveDocument", { isPureXfa: !!this._htmlForXfa, numPages: this._numPages, annotationStorage: e, filename: this.#e?.filename ?? null }, n).finally(() => {
            this.annotationStorage.resetModified();
          });
        }
        extractPages(e) {
          const n = { pageInfos: e };
          let s;
          if (this.annotationStorage.size > 0) {
            const { map: i, transfer: a } = this.annotationStorage.serializable;
            n.annotationStorage = i, s = a;
          }
          return this.messageHandler.sendWithPromise("ExtractPages", n, s).finally(() => {
            this.annotationStorage.resetModified();
          });
        }
        getPage(e) {
          if (!Number.isInteger(e) || e <= 0 || e > this.pagesMapper.pagesNumber) return Promise.reject(new Error("Invalid page request."));
          const n = e - 1, s = this.pagesMapper.getPageId(e) - 1, i = this.#i.get(n);
          if (i) return i;
          const a = this.messageHandler.sendWithPromise("GetPage", { pageIndex: s }).then((r) => {
            if (this.destroyed) throw new Error("Transport destroyed");
            r.refStr && this.#a.set(r.refStr, s);
            const o = new Ih(n, r, this, this.pagesMapper, this._params.pdfBug);
            return this.#s.set(n, o), o;
          });
          return this.#i.set(n, a), a;
        }
        async getPageIndex(e) {
          if (!oh(e)) throw new Error("Invalid pageIndex request.");
          const n = await this.messageHandler.sendWithPromise("GetPageIndex", { num: e.num, gen: e.gen }), s = this.pagesMapper.getPageNumber(n + 1);
          if (s === 0) throw new Error("GetPageIndex: page has been removed.");
          return s - 1;
        }
        getAnnotations(e, n) {
          return this.messageHandler.sendWithPromise("GetAnnotations", { pageIndex: this.pagesMapper.getPageId(e + 1) - 1, intent: n });
        }
        getFieldObjects() {
          return this.#o("GetFieldObjects");
        }
        hasJSActions() {
          return this.#o("HasJSActions");
        }
        getCalculationOrderIds() {
          return this.messageHandler.sendWithPromise("GetCalculationOrderIds", null);
        }
        getDestinations() {
          return this.messageHandler.sendWithPromise("GetDestinations", null);
        }
        getDestination(e) {
          return typeof e != "string" ? Promise.reject(new Error("Invalid destination request.")) : this.messageHandler.sendWithPromise("GetDestination", { id: e });
        }
        getPageLabels() {
          return this.messageHandler.sendWithPromise("GetPageLabels", null);
        }
        getPageLayout() {
          return this.messageHandler.sendWithPromise("GetPageLayout", null);
        }
        getPageMode() {
          return this.messageHandler.sendWithPromise("GetPageMode", null);
        }
        getViewerPreferences() {
          return this.messageHandler.sendWithPromise("GetViewerPreferences", null);
        }
        getOpenAction() {
          return this.messageHandler.sendWithPromise("GetOpenAction", null);
        }
        getAttachments() {
          return this.messageHandler.sendWithPromise("GetAttachments", null);
        }
        getAnnotationsByType(e, n) {
          return this.messageHandler.sendWithPromise("GetAnnotationsByType", { types: e, pageIndexesToSkip: n });
        }
        getDocJSActions() {
          return this.#o("GetDocJSActions");
        }
        getPageJSActions(e) {
          return this.messageHandler.sendWithPromise("GetPageJSActions", { pageIndex: this.pagesMapper.getPageId(e + 1) - 1 });
        }
        getStructTree(e) {
          return this.messageHandler.sendWithPromise("GetStructTree", { pageIndex: this.pagesMapper.getPageId(e + 1) - 1 });
        }
        getOutline() {
          return this.messageHandler.sendWithPromise("GetOutline", null);
        }
        getOptionalContentConfig(e) {
          return this.#o("GetOptionalContentConfig").then((n) => new Fk(n, e));
        }
        getPermissions() {
          return this.messageHandler.sendWithPromise("GetPermissions", null);
        }
        getMetadata() {
          const e = "GetMetadata";
          return this.#t.getOrInsertComputed(e, () => this.messageHandler.sendWithPromise(e, null).then((n) => ({ info: n[0], metadata: n[1] ? new Tk(n[1]) : null, contentDispositionFilename: this.#e?.filename ?? null, contentLength: this.#e?.contentLength ?? null, hasStructTree: n[2] })));
        }
        getMarkInfo() {
          return this.messageHandler.sendWithPromise("GetMarkInfo", null);
        }
        getRawData(e) {
          return this.messageHandler.sendWithPromise("GetRawData", e);
        }
        async startCleanup(e = false) {
          if (!this.destroyed) {
            await this.messageHandler.sendWithPromise("Cleanup", null);
            for (const n of this.#s.values()) if (!n.cleanup()) throw new Error(`startCleanup: Page ${n.pageNumber} is currently rendering.`);
            this.commonObjs.clear(), e || this.fontLoader.clear(), this.#t.clear(), this.filterFactory.destroy(true), ss.cleanup();
          }
        }
        cachedPageNumber(e) {
          if (!oh(e)) return null;
          const n = e.gen === 0 ? `${e.num}R` : `${e.num}R${e.gen}`, s = this.#a.get(n);
          if (s >= 0) {
            const i = this.pagesMapper.getPageNumber(s + 1);
            if (i !== 0) return i;
          }
          return null;
        }
      };
      Mk = class {
        static {
          p(this, "RenderTask");
        }
        _internalRenderTask = null;
        onContinue = null;
        onError = null;
        constructor(e) {
          this._internalRenderTask = e;
        }
        get promise() {
          return this._internalRenderTask.capability.promise;
        }
        cancel(e = 0) {
          this._internalRenderTask.cancel(null, e);
        }
        get separateAnnots() {
          const { separateAnnots: e } = this._internalRenderTask.operatorList;
          if (!e) return false;
          const { annotationCanvasMap: n } = this._internalRenderTask;
          return e.form || e.canvas && n?.size > 0;
        }
        get imageCoordinates() {
          return this._internalRenderTask.imageCoordinates || null;
        }
      };
      vr = class _vr {
        static {
          p(this, "InternalRenderTask");
        }
        #e = null;
        static #t = /* @__PURE__ */ new WeakSet();
        constructor({ callback: e, params: n, objs: s, commonObjs: i, annotationCanvasMap: a, operatorList: r, pageIndex: o, canvasFactory: l, filterFactory: f, useRequestAnimationFrame: c = false, pdfBug: h = false, pageColors: u = null, enableHWA: d = false, operationsFilter: m = null }) {
          this.callback = e, this.params = n, this.objs = s, this.commonObjs = i, this.annotationCanvasMap = a, this.operatorListIdx = null, this.operatorList = r, this._pageIndex = o, this.canvasFactory = l, this.filterFactory = f, this._pdfBug = h, this.pageColors = u, this.running = false, this.graphicsReadyCallback = null, this.graphicsReady = false, this._useRequestAnimationFrame = c === true && typeof window < "u", this.cancelled = false, this.capability = Promise.withResolvers(), this.task = new Mk(this), this._cancelBound = this.cancel.bind(this), this._continueBound = this._continue.bind(this), this._scheduleNextBound = this._scheduleNext.bind(this), this._nextBound = this._next.bind(this), this._canvas = n.canvas, this._canvasContext = n.canvas ? null : n.canvasContext, this._enableHWA = d, this._dependencyTracker = n.dependencyTracker, this._imagesTracker = n.imagesTracker, this._operationsFilter = m;
        }
        get completed() {
          return this.capability.promise.catch(function() {
          });
        }
        initializeGraphics({ transparency: e = false, optionalContentConfig: n }) {
          if (this.cancelled) return;
          if (this._canvas) {
            if (_vr.#t.has(this._canvas)) throw new Error("Cannot use the same canvas during multiple render() operations. Use different canvas or ensure previous operations were cancelled or completed.");
            _vr.#t.add(this._canvas);
          }
          this._pdfBug && globalThis.StepperManager?.enabled && (this.stepper = globalThis.StepperManager.create(this._pageIndex), this.stepper.init(this.operatorList), this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint());
          const { viewport: s, transform: i, background: a, dependencyTracker: r, imagesTracker: o } = this.params, l = this._canvasContext || this._canvas.getContext("2d", { alpha: false, willReadFrequently: !this._enableHWA });
          this.gfx = new jr(l, this.commonObjs, this.objs, this.canvasFactory, this.filterFactory, { optionalContentConfig: n }, this.annotationCanvasMap, this.pageColors, r, o), this.gfx.beginDrawing({ transform: i, viewport: s, transparency: e, background: a }), this.operatorListIdx = 0, this.graphicsReady = true, this.graphicsReadyCallback?.();
        }
        cancel(e = null, n = 0) {
          this.running = false, this.cancelled = true, this.gfx?.endDrawing(), this.#e && (window.cancelAnimationFrame(this.#e), this.#e = null), _vr.#t.delete(this._canvas), e ||= new k0(`Rendering cancelled, page ${this._pageIndex + 1}`, n), this.callback(e), this.task.onError?.(e);
        }
        operatorListChanged() {
          if (!this.graphicsReady) {
            this.graphicsReadyCallback ||= this._continueBound;
            return;
          }
          this.gfx.dependencyTracker?.growOperationsCount(this.operatorList.fnArray.length), this.stepper?.updateOperatorList(this.operatorList), !this.running && this._continue();
        }
        _continue() {
          this.running = true, !this.cancelled && (this.task.onContinue ? this.task.onContinue(this._scheduleNextBound) : this._scheduleNext());
        }
        _scheduleNext() {
          this._useRequestAnimationFrame ? this.#e = window.requestAnimationFrame(() => {
            this.#e = null, this._nextBound().catch(this._cancelBound);
          }) : Promise.resolve().then(this._nextBound).catch(this._cancelBound);
        }
        async _next() {
          this.cancelled || (this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper, this._operationsFilter), this.operatorListIdx === this.operatorList.argsArray.length && (this.running = false, this.operatorList.lastChunk && (this.gfx.endDrawing(), _vr.#t.delete(this._canvas), this.callback())));
        }
      };
      am = "5.6.205";
      rm = "ada343803";
      bs = class _bs {
        static {
          p(this, "ColorPicker");
        }
        #e = null;
        #t = null;
        #n;
        #s = null;
        #i = false;
        #a = false;
        #r = null;
        #o;
        #l = null;
        #f = null;
        static #u = null;
        static get _keyboardManager() {
          return st(this, "_keyboardManager", new Po([[["Escape", "mac+Escape"], _bs.prototype._hideDropdownFromKeyboard], [[" ", "mac+ "], _bs.prototype._colorSelectFromKeyboard], [["ArrowDown", "ArrowRight", "mac+ArrowDown", "mac+ArrowRight"], _bs.prototype._moveToNext], [["ArrowUp", "ArrowLeft", "mac+ArrowUp", "mac+ArrowLeft"], _bs.prototype._moveToPrevious], [["Home", "mac+Home"], _bs.prototype._moveToBeginning], [["End", "mac+End"], _bs.prototype._moveToEnd]]));
        }
        constructor({ editor: e = null, uiManager: n = null }) {
          e ? (this.#a = false, this.#r = e) : this.#a = true, this.#f = e?._uiManager || n, this.#o = this.#f._eventBus, this.#n = e?.color?.toUpperCase() || this.#f?.highlightColors.values().next().value || "#FFFF98", _bs.#u ||= Object.freeze({ blue: "pdfjs-editor-colorpicker-blue", green: "pdfjs-editor-colorpicker-green", pink: "pdfjs-editor-colorpicker-pink", red: "pdfjs-editor-colorpicker-red", yellow: "pdfjs-editor-colorpicker-yellow" });
        }
        renderButton() {
          const e = this.#e = document.createElement("button");
          e.className = "colorPicker", e.tabIndex = "0", e.setAttribute("data-l10n-id", "pdfjs-editor-colorpicker-button"), e.ariaHasPopup = "true", this.#r && (e.ariaControls = `${this.#r.id}_colorpicker_dropdown`);
          const n = this.#f._signal;
          e.addEventListener("click", this.#m.bind(this), { signal: n }), e.addEventListener("keydown", this.#g.bind(this), { signal: n });
          const s = this.#t = document.createElement("span");
          return s.className = "swatch", s.ariaHidden = "true", s.style.backgroundColor = this.#n, e.append(s), e;
        }
        renderMainDropdown() {
          const e = this.#s = this.#c();
          return e.ariaOrientation = "horizontal", e.ariaLabelledBy = "highlightColorPickerLabel", e;
        }
        #c() {
          const e = document.createElement("div"), n = this.#f._signal;
          e.addEventListener("contextmenu", ms, { signal: n }), e.className = "dropdown", e.role = "listbox", e.ariaMultiSelectable = "false", e.ariaOrientation = "vertical", e.setAttribute("data-l10n-id", "pdfjs-editor-colorpicker-dropdown"), this.#r && (e.id = `${this.#r.id}_colorpicker_dropdown`);
          for (const [s, i] of this.#f.highlightColors) {
            const a = document.createElement("button");
            a.tabIndex = "0", a.role = "option", a.setAttribute("data-color", i), a.title = s, a.setAttribute("data-l10n-id", _bs.#u[s]);
            const r = document.createElement("span");
            a.append(r), r.className = "swatch", r.style.backgroundColor = i, a.ariaSelected = i === this.#n, a.addEventListener("click", this.#d.bind(this, i), { signal: n }), e.append(a);
          }
          return e.addEventListener("keydown", this.#g.bind(this), { signal: n }), e;
        }
        #d(e, n) {
          n.stopPropagation(), this.#o.dispatch("switchannotationeditorparams", { source: this, type: gt.HIGHLIGHT_COLOR, value: e }), this.updateColor(e);
        }
        _colorSelectFromKeyboard(e) {
          if (e.target === this.#e) {
            this.#m(e);
            return;
          }
          const n = e.target.getAttribute("data-color");
          n && this.#d(n, e);
        }
        _moveToNext(e) {
          if (!this.#p) {
            this.#m(e);
            return;
          }
          if (e.target === this.#e) {
            this.#s.firstElementChild?.focus();
            return;
          }
          e.target.nextSibling?.focus();
        }
        _moveToPrevious(e) {
          if (e.target === this.#s?.firstElementChild || e.target === this.#e) {
            this.#p && this._hideDropdownFromKeyboard();
            return;
          }
          this.#p || this.#m(e), e.target.previousSibling?.focus();
        }
        _moveToBeginning(e) {
          if (!this.#p) {
            this.#m(e);
            return;
          }
          this.#s.firstElementChild?.focus();
        }
        _moveToEnd(e) {
          if (!this.#p) {
            this.#m(e);
            return;
          }
          this.#s.lastElementChild?.focus();
        }
        #g(e) {
          _bs._keyboardManager.exec(this, e);
        }
        #m(e) {
          if (this.#p) {
            this.hideDropdown();
            return;
          }
          if (this.#i = e.detail === 0, this.#l || (this.#l = new AbortController(), window.addEventListener("pointerdown", this.#h.bind(this), { signal: this.#f.combinedSignal(this.#l) })), this.#e.ariaExpanded = "true", this.#s) {
            this.#s.classList.remove("hidden");
            return;
          }
          const n = this.#s = this.#c();
          this.#e.append(n);
        }
        #h(e) {
          this.#s?.contains(e.target) || this.hideDropdown();
        }
        hideDropdown() {
          this.#s?.classList.add("hidden"), this.#e.ariaExpanded = "false", this.#l?.abort(), this.#l = null;
        }
        get #p() {
          return this.#s && !this.#s.classList.contains("hidden");
        }
        _hideDropdownFromKeyboard() {
          if (!this.#a) {
            if (!this.#p) {
              this.#r?.unselect();
              return;
            }
            this.hideDropdown(), this.#e.focus({ preventScroll: true, focusVisible: this.#i });
          }
        }
        updateColor(e) {
          if (this.#t && (this.#t.style.backgroundColor = e), !this.#s) return;
          const n = this.#f.highlightColors.values();
          for (const s of this.#s.children) s.ariaSelected = n.next().value === e.toUpperCase();
        }
        destroy() {
          this.#e?.remove(), this.#e = null, this.#t = null, this.#s?.remove(), this.#s = null;
        }
      };
      sl = class _sl {
        static {
          p(this, "BasicColorPicker");
        }
        #e = null;
        #t = null;
        #n = null;
        static #s = null;
        constructor(e) {
          this.#t = e, this.#n = e._uiManager, _sl.#s ||= Object.freeze({ freetext: "pdfjs-editor-color-picker-free-text-input", ink: "pdfjs-editor-color-picker-ink-input" });
        }
        renderButton() {
          if (this.#e) return this.#e;
          const { editorType: e, colorType: n, color: s } = this.#t, i = this.#e = document.createElement("input");
          return i.type = "color", i.value = s || "#000000", i.className = "basicColorPicker", i.tabIndex = 0, i.setAttribute("data-l10n-id", _sl.#s[e]), i.addEventListener("input", () => {
            this.#n.updateParams(n, i.value);
          }, { signal: this.#n._signal }), i;
        }
        update(e) {
          this.#e && (this.#e.value = e);
        }
        destroy() {
          this.#e?.remove(), this.#e = null;
        }
        hideDropdown() {
        }
      };
      p(om, "makeColorComp");
      p(Oo, "scaleAndClamp");
      lm = class {
        static {
          p(this, "ColorConverters");
        }
        static CMYK_G([e, n, s, i]) {
          return ["G", 1 - Math.min(1, 0.3 * e + 0.59 * s + 0.11 * n + i)];
        }
        static G_CMYK([e]) {
          return ["CMYK", 0, 0, 0, 1 - e];
        }
        static G_RGB([e]) {
          return ["RGB", e, e, e];
        }
        static G_rgb([e]) {
          return e = Oo(e), [e, e, e];
        }
        static G_HTML([e]) {
          const n = om(e);
          return `#${n}${n}${n}`;
        }
        static RGB_G([e, n, s]) {
          return ["G", 0.3 * e + 0.59 * n + 0.11 * s];
        }
        static RGB_rgb(e) {
          return e.map(Oo);
        }
        static RGB_HTML(e) {
          return `#${e.map(om).join("")}`;
        }
        static T_HTML() {
          return "#00000000";
        }
        static T_rgb() {
          return [null];
        }
        static CMYK_RGB([e, n, s, i]) {
          return ["RGB", 1 - Math.min(1, e + i), 1 - Math.min(1, s + i), 1 - Math.min(1, n + i)];
        }
        static CMYK_rgb([e, n, s, i]) {
          return [Oo(1 - Math.min(1, e + i)), Oo(1 - Math.min(1, s + i)), Oo(1 - Math.min(1, n + i))];
        }
        static CMYK_HTML(e) {
          const n = this.CMYK_RGB(e).slice(1);
          return this.RGB_HTML(n);
        }
        static RGB_CMYK([e, n, s]) {
          const i = 1 - e, a = 1 - n, r = 1 - s, o = Math.min(i, a, r);
          return ["CMYK", i, a, r, o];
        }
      };
      Hk = class {
        static {
          p(this, "BaseSVGFactory");
        }
        create(e, n, s = false) {
          if (e <= 0 || n <= 0) throw new Error("Invalid SVG dimensions");
          const i = this._createSVG("svg:svg");
          return i.setAttribute("version", "1.1"), s || (i.setAttribute("width", `${e}px`), i.setAttribute("height", `${n}px`)), i.setAttribute("preserveAspectRatio", "none"), i.setAttribute("viewBox", `0 0 ${e} ${n}`), i;
        }
        createElement(e) {
          if (typeof e != "string") throw new Error("Invalid SVG element type");
          return this._createSVG(e);
        }
        _createSVG(e) {
          It("Abstract method `_createSVG` called.");
        }
      };
      Lo = class extends Hk {
        static {
          p(this, "DOMSVGFactory");
        }
        _createSVG(e) {
          return document.createElementNS(Ai, e);
        }
      };
      Ok = 9;
      Fa = /* @__PURE__ */ new WeakSet();
      Lk = (/* @__PURE__ */ new Date()).getTimezoneOffset() * 60 * 1e3;
      ph = class {
        static {
          p(this, "AnnotationElementFactory");
        }
        static create(e) {
          switch (e.data.annotationType) {
            case Yt.LINK:
              return new mh(e);
            case Yt.TEXT:
              return new zk(e);
            case Yt.WIDGET:
              switch (e.data.fieldType) {
                case "Tx":
                  return new Uk(e);
                case "Btn":
                  return e.data.radioButton ? new fm(e) : e.data.checkBox ? new Wk(e) : new $k(e);
                case "Ch":
                  return new Vk(e);
                case "Sig":
                  return new Gk(e);
              }
              return new Ba(e);
            case Yt.POPUP:
              return new gh(e);
            case Yt.FREETEXT:
              return new cm(e);
            case Yt.LINE:
              return new Xk(e);
            case Yt.SQUARE:
              return new Yk(e);
            case Yt.CIRCLE:
              return new Qk(e);
            case Yt.POLYLINE:
              return new hm(e);
            case Yt.CARET:
              return new Zk(e);
            case Yt.INK:
              return new bh(e);
            case Yt.POLYGON:
              return new Jk(e);
            case Yt.HIGHLIGHT:
              return new um(e);
            case Yt.UNDERLINE:
              return new ey(e);
            case Yt.SQUIGGLY:
              return new ty(e);
            case Yt.STRIKEOUT:
              return new ny(e);
            case Yt.STAMP:
              return new dm(e);
            case Yt.FILEATTACHMENT:
              return new sy(e);
            default:
              return new Ut(e);
          }
        }
      };
      Ut = class _Ut {
        static {
          p(this, "AnnotationElement");
        }
        #e = null;
        #t = false;
        #n = null;
        constructor(e, { isRenderable: n = false, ignoreBorder: s = false, createQuadrilaterals: i = false } = {}) {
          this.isRenderable = n, this.data = e.data, this.layer = e.layer, this.linkService = e.linkService, this.downloadManager = e.downloadManager, this.imageResourcesPath = e.imageResourcesPath, this.renderForms = e.renderForms, this.svgFactory = e.svgFactory, this.annotationStorage = e.annotationStorage, this.enableComment = e.enableComment, this.enableScripting = e.enableScripting, this.hasJSActions = e.hasJSActions, this._fieldObjects = e.fieldObjects, this.parent = e.parent, this.hasOwnCommentButton = false, n && (this.contentElement = this.container = this._createContainer(s)), i && this._createQuadrilaterals();
        }
        static _hasPopupData({ contentsObj: e, richText: n }) {
          return !!(e?.str || n?.str);
        }
        get _isEditable() {
          return this.data.isEditable;
        }
        get hasPopupData() {
          return _Ut._hasPopupData(this.data) || this.enableComment && !!this.commentText;
        }
        get commentData() {
          const { data: e } = this, n = this.annotationStorage?.getEditor(e.id);
          return n ? n.getData() : e;
        }
        get hasCommentButton() {
          return this.enableComment && this.hasPopupElement;
        }
        get commentButtonPosition() {
          const e = this.annotationStorage?.getEditor(this.data.id);
          if (e) return e.commentButtonPositionInPage;
          const { quadPoints: n, inkLists: s, rect: i } = this.data;
          let a = -1 / 0, r = -1 / 0;
          if (n?.length >= 8) {
            for (let o = 0; o < n.length; o += 8) n[o + 1] > r ? (r = n[o + 1], a = n[o + 2]) : n[o + 1] === r && (a = Math.max(a, n[o + 2]));
            return [a, r];
          }
          if (s?.length >= 1) {
            for (const o of s) for (let l = 0, f = o.length; l < f; l += 2) o[l + 1] > r ? (r = o[l + 1], a = o[l]) : o[l + 1] === r && (a = Math.max(a, o[l]));
            if (a !== 1 / 0) return [a, r];
          }
          return i ? [i[2], i[3]] : null;
        }
        _normalizePoint(e) {
          const { page: { view: n }, viewport: { rawDims: { pageWidth: s, pageHeight: i, pageX: a, pageY: r } } } = this.parent;
          return e[1] = n[3] - e[1] + n[1], e[0] = 100 * (e[0] - a) / s, e[1] = 100 * (e[1] - r) / i, e;
        }
        get commentText() {
          const { data: e } = this;
          return this.annotationStorage.getRawValue(`${Io}${e.id}`)?.popup?.contents || e.contentsObj?.str || "";
        }
        set commentText(e) {
          const { data: n } = this, s = { deleted: !e, contents: e || "" };
          this.annotationStorage.updateEditor(n.id, { popup: s }) || this.annotationStorage.setValue(`${Io}${n.id}`, { id: n.id, annotationType: n.annotationType, page: this.parent.page, popup: s, popupRef: n.popupRef, modificationDate: /* @__PURE__ */ new Date() }), e || this.removePopup();
        }
        removePopup() {
          (this.#n?.popup || this.popup)?.remove(), this.#n = this.popup = null;
        }
        updateEdited(e) {
          if (!this.container) return;
          e.rect && (this.#e ||= { rect: this.data.rect.slice(0) });
          const { rect: n, popup: s } = e;
          n && this.#s(n);
          let i = this.#n?.popup || this.popup;
          !i && s?.text && (this._createPopup(s), i = this.#n.popup), i && (i.updateEdited(e), s?.deleted && (i.remove(), this.#n = null, this.popup = null));
        }
        resetEdited() {
          this.#e && (this.#s(this.#e.rect), this.#n?.popup.resetEdited(), this.#e = null);
        }
        #s(e) {
          const { container: { style: n }, data: { rect: s, rotation: i }, parent: { viewport: { rawDims: { pageWidth: a, pageHeight: r, pageX: o, pageY: l } } } } = this;
          s?.splice(0, 4, ...e), n.left = `${100 * (e[0] - o) / a}%`, n.top = `${100 * (r - e[3] + l) / r}%`, i === 0 ? (n.width = `${100 * (e[2] - e[0]) / a}%`, n.height = `${100 * (e[3] - e[1]) / r}%`) : this.setRotation(i);
        }
        _createContainer(e) {
          const { data: n, parent: { page: s, viewport: i } } = this, a = document.createElement("section");
          a.setAttribute("data-annotation-id", n.id), !(this instanceof Ba) && !(this instanceof mh) && (a.tabIndex = 0);
          const { style: r } = a;
          if (r.zIndex = this.parent.zIndex, this.parent.zIndex += 2, n.alternativeText && (a.title = n.alternativeText), n.noRotate && a.classList.add("norotate"), !n.rect || this instanceof gh) {
            const { rotation: g } = n;
            return !n.hasOwnCanvas && g !== 0 && this.setRotation(g, a), a;
          }
          const { width: o, height: l } = this;
          if (!e && n.borderStyle.width > 0) {
            r.borderWidth = `${n.borderStyle.width}px`;
            const g = n.borderStyle.horizontalCornerRadius, b = n.borderStyle.verticalCornerRadius;
            if (g > 0 || b > 0) {
              const x = `calc(${g}px * var(--total-scale-factor)) / calc(${b}px * var(--total-scale-factor))`;
              r.borderRadius = x;
            } else if (this instanceof fm) {
              const x = `calc(${o}px * var(--total-scale-factor)) / calc(${l}px * var(--total-scale-factor))`;
              r.borderRadius = x;
            }
            switch (n.borderStyle.style) {
              case fr.SOLID:
                r.borderStyle = "solid";
                break;
              case fr.DASHED:
                r.borderStyle = "dashed";
                break;
              case fr.BEVELED:
                at("Unimplemented border style: beveled");
                break;
              case fr.INSET:
                at("Unimplemented border style: inset");
                break;
              case fr.UNDERLINE:
                r.borderBottomStyle = "solid";
                break;
            }
            const w = n.borderColor || null;
            w ? (this.#t = true, r.borderColor = Ie.makeHexColor(w[0] | 0, w[1] | 0, w[2] | 0)) : r.borderWidth = 0;
          }
          const f = Ie.normalizeRect([n.rect[0], s.view[3] - n.rect[1] + s.view[1], n.rect[2], s.view[3] - n.rect[3] + s.view[1]]), { pageWidth: c, pageHeight: h, pageX: u, pageY: d } = i.rawDims;
          r.left = `${100 * (f[0] - u) / c}%`, r.top = `${100 * (f[1] - d) / h}%`;
          const { rotation: m } = n;
          return n.hasOwnCanvas || m === 0 ? (r.width = `${100 * o / c}%`, r.height = `${100 * l / h}%`) : this.setRotation(m, a), a;
        }
        setRotation(e, n = this.container) {
          if (!this.data.rect) return;
          const { pageWidth: s, pageHeight: i } = this.parent.viewport.rawDims;
          let { width: a, height: r } = this;
          e % 180 !== 0 && ([a, r] = [r, a]), n.style.width = `${100 * a / s}%`, n.style.height = `${100 * r / i}%`, n.setAttribute("data-main-rotation", (360 - e) % 360);
        }
        get _commonActions() {
          const e = p((n, s, i) => {
            const a = i.detail[n], r = a[0], o = a.slice(1);
            i.target.style[s] = lm[`${r}_HTML`](o), this.annotationStorage.setValue(this.data.id, { [s]: lm[`${r}_rgb`](o) });
          }, "setColor");
          return st(this, "_commonActions", { display: p((n) => {
            const { display: s } = n.detail, i = s % 2 === 1;
            this.container.style.visibility = i ? "hidden" : "visible", this.annotationStorage.setValue(this.data.id, { noView: i, noPrint: s === 1 || s === 2 });
          }, "display"), print: p((n) => {
            this.annotationStorage.setValue(this.data.id, { noPrint: !n.detail.print });
          }, "print"), hidden: p((n) => {
            const { hidden: s } = n.detail;
            this.container.style.visibility = s ? "hidden" : "visible", this.annotationStorage.setValue(this.data.id, { noPrint: s, noView: s });
          }, "hidden"), focus: p((n) => {
            setTimeout(() => n.target.focus({ preventScroll: false }), 0);
          }, "focus"), userName: p((n) => {
            n.target.title = n.detail.userName;
          }, "userName"), readonly: p((n) => {
            n.target.disabled = n.detail.readonly;
          }, "readonly"), required: p((n) => {
            this._setRequired(n.target, n.detail.required);
          }, "required"), bgColor: p((n) => {
            e("bgColor", "backgroundColor", n);
          }, "bgColor"), fillColor: p((n) => {
            e("fillColor", "backgroundColor", n);
          }, "fillColor"), fgColor: p((n) => {
            e("fgColor", "color", n);
          }, "fgColor"), textColor: p((n) => {
            e("textColor", "color", n);
          }, "textColor"), borderColor: p((n) => {
            e("borderColor", "borderColor", n);
          }, "borderColor"), strokeColor: p((n) => {
            e("strokeColor", "borderColor", n);
          }, "strokeColor"), rotation: p((n) => {
            const s = n.detail.rotation;
            this.setRotation(s), this.annotationStorage.setValue(this.data.id, { rotation: s });
          }, "rotation") });
        }
        _dispatchEventFromSandbox(e, n) {
          const s = this._commonActions;
          for (const i of Object.keys(n.detail)) (e[i] || s[i])?.(n);
        }
        _setDefaultPropertiesFromJS(e) {
          if (!this.enableScripting) return;
          const n = this.annotationStorage.getRawValue(this.data.id);
          if (!n) return;
          const s = this._commonActions;
          for (const [i, a] of Object.entries(n)) {
            const r = s[i];
            if (r) {
              const o = { detail: { [i]: a }, target: e };
              r(o), delete n[i];
            }
          }
        }
        _createQuadrilaterals() {
          if (!this.container) return;
          const { quadPoints: e } = this.data;
          if (!e) return;
          const [n, s, i, a] = this.data.rect.map((g) => Math.fround(g));
          if (e.length === 8) {
            const [g, b, w, x] = e.subarray(2, 6);
            if (i === g && a === b && n === w && s === x) return;
          }
          const { style: r } = this.container;
          let o;
          if (this.#t) {
            const { borderColor: g, borderWidth: b } = r;
            r.borderWidth = 0, o = ["url('data:image/svg+xml;utf8,", '<svg xmlns="http://www.w3.org/2000/svg"', ' preserveAspectRatio="none" viewBox="0 0 1 1">', `<g fill="transparent" stroke="${g}" stroke-width="${b}">`], this.container.classList.add("hasBorder");
          }
          const l = i - n, f = a - s, { svgFactory: c } = this, h = c.createElement("svg");
          h.classList.add("quadrilateralsContainer"), h.setAttribute("width", 0), h.setAttribute("height", 0), h.role = "none";
          const u = c.createElement("defs");
          h.append(u);
          const d = c.createElement("clipPath"), m = `clippath_${this.data.id}`;
          d.setAttribute("id", m), d.setAttribute("clipPathUnits", "objectBoundingBox"), u.append(d);
          for (let g = 2, b = e.length; g < b; g += 8) {
            const w = e[g], x = e[g + 1], y = e[g + 2], j = e[g + 3], v = c.createElement("rect"), q = (y - n) / l, A = (a - x) / f, C = (w - y) / l, S = (x - j) / f;
            v.setAttribute("x", q), v.setAttribute("y", A), v.setAttribute("width", C), v.setAttribute("height", S), d.append(v), o?.push(`<rect vector-effect="non-scaling-stroke" x="${q}" y="${A}" width="${C}" height="${S}"/>`);
          }
          this.#t && (o.push("</g></svg>')"), r.backgroundImage = o.join("")), this.container.append(h), this.container.style.clipPath = `url(#${m})`;
        }
        _createPopup(e = null) {
          const { data: n } = this;
          let s, i;
          e ? (s = { str: e.text }, i = e.date) : (s = n.contentsObj, i = n.modificationDate), this.#n = new gh({ data: { color: n.color, titleObj: n.titleObj, modificationDate: i, contentsObj: s, richText: n.richText, parentRect: n.rect, borderStyle: 0, id: `popup_${n.id}`, rotation: n.rotation, noRotate: true }, linkService: this.linkService, parent: this.parent, elements: [this] });
        }
        get hasPopupElement() {
          return !!(this.#n || this.popup || this.data.popupRef);
        }
        get extraPopupElement() {
          return this.#n;
        }
        render() {
          It("Abstract method `AnnotationElement.render` called");
        }
        _getElementsByName(e, n = null) {
          const s = [];
          if (this._fieldObjects) {
            const i = this._fieldObjects[e];
            if (i) for (const { page: a, id: r, exportValues: o } of i) {
              if (a === -1 || r === n) continue;
              const l = typeof o == "string" ? o : null, f = document.querySelector(`[data-element-id="${r}"]`);
              if (f && !Fa.has(f)) {
                at(`_getElementsByName - element not allowed: ${r}`);
                continue;
              }
              s.push({ id: r, exportValue: l, domElement: f });
            }
            return s;
          }
          for (const i of document.getElementsByName(e)) {
            const { exportValue: a } = i, r = i.getAttribute("data-element-id");
            r !== n && Fa.has(i) && s.push({ id: r, exportValue: a, domElement: i });
          }
          return s;
        }
        show() {
          this.container && (this.container.hidden = false), this.popup?.maybeShow();
        }
        hide() {
          this.container && (this.container.hidden = true), this.popup?.forceHide();
        }
        getElementsToTriggerPopup() {
          return this.container;
        }
        addHighlightArea() {
          const e = this.getElementsToTriggerPopup();
          if (Array.isArray(e)) for (const n of e) n.classList.add("highlightArea");
          else e.classList.add("highlightArea");
        }
        _editOnDoubleClick() {
          if (!this._isEditable) return;
          const { annotationEditorType: e, data: { id: n } } = this;
          this.container.addEventListener("dblclick", () => {
            this.linkService.eventBus?.dispatch("switchannotationeditormode", { source: this, mode: e, editId: n, mustEnterInEditMode: true });
          });
        }
        get width() {
          return this.data.rect[2] - this.data.rect[0];
        }
        get height() {
          return this.data.rect[3] - this.data.rect[1];
        }
      };
      Nk = class extends Ut {
        static {
          p(this, "EditorAnnotationElement");
        }
        constructor(e) {
          super(e, { isRenderable: true, ignoreBorder: true }), this.editor = e.editor;
        }
        render() {
          return this.container.className = "editorAnnotation", this.container;
        }
        createOrUpdatePopup() {
          const { editor: e } = this;
          e.hasComment && this._createPopup(e.comment);
        }
        get hasCommentButton() {
          return this.enableComment && this.editor.hasComment;
        }
        get commentButtonPosition() {
          return this.editor.commentButtonPositionInPage;
        }
        get commentText() {
          return this.editor.comment.text;
        }
        set commentText(e) {
          this.editor.comment = e, e || this.removePopup();
        }
        get commentData() {
          return this.editor.getData();
        }
        remove() {
          this.parent.removeAnnotation(this.data.id), this.container.remove(), this.container = null, this.removePopup();
        }
      };
      mh = class extends Ut {
        static {
          p(this, "LinkAnnotationElement");
        }
        constructor(e, n = null) {
          super(e, { isRenderable: true, ignoreBorder: !!n?.ignoreBorder, createQuadrilaterals: true }), this.isTooltipOnly = e.data.isTooltipOnly;
        }
        render() {
          const { data: e, linkService: n } = this, s = document.createElement("a");
          s.setAttribute("data-element-id", e.id);
          let i = false;
          return e.url ? (n.addLinkAttributes(s, e.url, e.newWindow), i = true) : e.action ? (this._bindNamedAction(s, e.action, e.overlaidText), i = true) : e.attachment ? (this.#t(s, e.attachment, e.overlaidText, e.attachmentDest), i = true) : e.setOCGState ? (this.#n(s, e.setOCGState, e.overlaidText), i = true) : e.dest ? (this._bindLink(s, e.dest, e.overlaidText), i = true) : (e.actions && (e.actions.Action || e.actions["Mouse Up"] || e.actions["Mouse Down"]) && this.enableScripting && this.hasJSActions && (this._bindJSAction(s, e), i = true), e.resetForm ? (this._bindResetFormAction(s, e.resetForm), i = true) : this.isTooltipOnly && !i && (this._bindLink(s, ""), i = true)), this.container.classList.add("linkAnnotation"), i && (this.contentElement = s, this.container.append(s)), this.container;
        }
        #e() {
          this.container.setAttribute("data-internal-link", "");
        }
        _bindLink(e, n, s = "") {
          e.href = this.linkService.getDestinationHash(n), e.onclick = () => (n && this.linkService.goToDestination(n), false), (n || n === "") && this.#e(), s && (e.title = s);
        }
        _bindNamedAction(e, n, s = "") {
          e.href = this.linkService.getAnchorUrl(""), e.onclick = () => (this.linkService.executeNamedAction(n), false), s && (e.title = s), this.#e();
        }
        #t(e, n, s = "", i = null) {
          e.href = this.linkService.getAnchorUrl(""), n.description ? e.title = n.description : s && (e.title = s), e.onclick = () => (this.downloadManager?.openOrDownloadData(n.content, n.filename, i), false), this.#e();
        }
        #n(e, n, s = "") {
          e.href = this.linkService.getAnchorUrl(""), e.onclick = () => (this.linkService.executeSetOCGState(n), false), s && (e.title = s), this.#e();
        }
        _bindJSAction(e, n) {
          e.href = this.linkService.getAnchorUrl("");
          const s = /* @__PURE__ */ new Map([["Action", "onclick"], ["Mouse Up", "onmouseup"], ["Mouse Down", "onmousedown"]]);
          for (const i of Object.keys(n.actions)) {
            const a = s.get(i);
            a && (e[a] = () => (this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { source: this, detail: { id: n.id, name: i } }), false));
          }
          n.overlaidText && (e.title = n.overlaidText), e.onclick || (e.onclick = () => false), this.#e();
        }
        _bindResetFormAction(e, n) {
          const s = e.onclick;
          if (s || (e.href = this.linkService.getAnchorUrl("")), this.#e(), !this._fieldObjects) {
            at('_bindResetFormAction - "resetForm" action not supported, ensure that the `fieldObjects` parameter is provided.'), s || (e.onclick = () => false);
            return;
          }
          e.onclick = () => {
            s?.();
            const { fields: i, refs: a, include: r } = n, o = [];
            if (i.length !== 0 || a.length !== 0) {
              const c = new Set(a);
              for (const h of i) {
                const u = this._fieldObjects[h] || [];
                for (const { id: d } of u) c.add(d);
              }
              for (const h of Object.values(this._fieldObjects)) for (const u of h) c.has(u.id) === r && o.push(u);
            } else for (const c of Object.values(this._fieldObjects)) o.push(...c);
            const l = this.annotationStorage, f = [];
            for (const c of o) {
              const { id: h } = c;
              switch (f.push(h), c.type) {
                case "text": {
                  const d = c.defaultValue || "";
                  l.setValue(h, { value: d });
                  break;
                }
                case "checkbox":
                case "radiobutton": {
                  const d = c.defaultValue === c.exportValues;
                  l.setValue(h, { value: d });
                  break;
                }
                case "combobox":
                case "listbox": {
                  const d = c.defaultValue || "";
                  l.setValue(h, { value: d });
                  break;
                }
                default:
                  continue;
              }
              const u = document.querySelector(`[data-element-id="${h}"]`);
              if (u) {
                if (!Fa.has(u)) {
                  at(`_bindResetFormAction - element not allowed: ${h}`);
                  continue;
                }
              } else continue;
              u.dispatchEvent(new Event("resetform"));
            }
            return this.enableScripting && this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { source: this, detail: { id: "app", ids: f, name: "ResetForm" } }), false;
          };
        }
      };
      zk = class extends Ut {
        static {
          p(this, "TextAnnotationElement");
        }
        constructor(e) {
          super(e, { isRenderable: true });
        }
        render() {
          this.container.classList.add("textAnnotation");
          const e = document.createElement("img");
          return e.src = this.imageResourcesPath + "annotation-" + this.data.name.toLowerCase() + ".svg", e.setAttribute("data-l10n-id", "pdfjs-text-annotation-type"), e.setAttribute("data-l10n-args", JSON.stringify({ type: this.data.name })), !this.data.popupRef && this.hasPopupData && (this.hasOwnCommentButton = true, this._createPopup()), this.container.append(e), this.container;
        }
      };
      Ba = class extends Ut {
        static {
          p(this, "WidgetAnnotationElement");
        }
        render() {
          return this.container;
        }
        showElementAndHideCanvas(e) {
          this.data.hasOwnCanvas && (e.previousSibling?.nodeName === "CANVAS" && (e.previousSibling.hidden = true), e.hidden = false);
        }
        _getKeyModifier(e) {
          return rn.platform.isMac ? e.metaKey : e.ctrlKey;
        }
        _setEventListener(e, n, s, i, a) {
          s.includes("mouse") ? e.addEventListener(s, (r) => {
            this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { source: this, detail: { id: this.data.id, name: i, value: a(r), shift: r.shiftKey, modifier: this._getKeyModifier(r) } });
          }) : e.addEventListener(s, (r) => {
            if (s === "blur") {
              if (!n.focused || !r.relatedTarget) return;
              n.focused = false;
            } else if (s === "focus") {
              if (n.focused) return;
              n.focused = true;
            }
            a && this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { source: this, detail: { id: this.data.id, name: i, value: a(r) } });
          });
        }
        _setEventListeners(e, n, s, i) {
          for (const [a, r] of s) (r === "Action" || this.data.actions?.[r]) && ((r === "Focus" || r === "Blur") && (n ||= { focused: false }), this._setEventListener(e, n, a, r, i), r === "Focus" && !this.data.actions?.Blur ? this._setEventListener(e, n, "blur", "Blur", null) : r === "Blur" && !this.data.actions?.Focus && this._setEventListener(e, n, "focus", "Focus", null));
        }
        _setBackgroundColor(e) {
          const n = this.data.backgroundColor || null;
          e.style.backgroundColor = n === null ? "transparent" : Ie.makeHexColor(n[0], n[1], n[2]);
        }
        _setTextStyle(e) {
          const n = ["left", "center", "right"], { fontColor: s } = this.data.defaultAppearanceData, i = this.data.defaultAppearanceData.fontSize || Ok, a = e.style;
          let r;
          const o = 2, l = p((f) => Math.round(10 * f) / 10, "roundToOneDecimal");
          if (this.data.multiLine) {
            const f = Math.abs(this.data.rect[3] - this.data.rect[1] - o), c = Math.round(f / (Kc * i)) || 1, h = f / c;
            r = Math.min(i, l(h / Kc));
          } else {
            const f = Math.abs(this.data.rect[3] - this.data.rect[1] - o);
            r = Math.min(i, l(f / Kc));
          }
          a.fontSize = `calc(${r}px * var(--total-scale-factor))`, a.color = Ie.makeHexColor(s[0], s[1], s[2]), this.data.textAlignment !== null && (a.textAlign = n[this.data.textAlignment]);
        }
        _setRequired(e, n) {
          n ? e.setAttribute("required", true) : e.removeAttribute("required"), e.setAttribute("aria-required", n);
        }
      };
      Uk = class extends Ba {
        static {
          p(this, "TextWidgetAnnotationElement");
        }
        constructor(e) {
          const n = e.renderForms || e.data.hasOwnCanvas || !e.data.hasAppearance && !!e.data.fieldValue;
          super(e, { isRenderable: n });
        }
        setPropertyOnSiblings(e, n, s, i) {
          const a = this.annotationStorage;
          for (const r of this._getElementsByName(e.name, e.id)) r.domElement && (r.domElement[n] = s), a.setValue(r.id, { [i]: s });
        }
        render() {
          const e = this.annotationStorage, n = this.data.id;
          this.container.classList.add("textWidgetAnnotation");
          let s = null;
          if (this.renderForms) {
            const i = e.getValue(n, { value: this.data.fieldValue });
            let a = i.value || "";
            const r = e.getValue(n, { charLimit: this.data.maxLen }).charLimit;
            r && a.length > r && (a = a.slice(0, r));
            let o = i.formattedValue || this.data.textContent?.join(`
`) || null;
            o && this.data.comb && (o = o.replaceAll(/\s+/g, ""));
            const l = { userValue: a, formattedValue: o, lastCommittedValue: null, commitKey: 1, focused: false };
            this.data.multiLine ? (s = document.createElement("textarea"), s.textContent = o ?? a, this.data.doNotScroll && (s.style.overflowY = "hidden")) : (s = document.createElement("input"), s.type = this.data.password ? "password" : "text", s.setAttribute("value", o ?? a), this.data.doNotScroll && (s.style.overflowX = "hidden")), this.data.hasOwnCanvas && (s.hidden = true), Fa.add(s), this.contentElement = s, s.setAttribute("data-element-id", n), s.disabled = this.data.readOnly, s.name = this.data.fieldName, s.tabIndex = 0;
            const { datetimeFormat: f, datetimeType: c, timeStep: h } = this.data, u = !!c && this.enableScripting;
            f && (s.title = f), this._setRequired(s, this.data.required), r && (s.maxLength = r), s.addEventListener("input", (m) => {
              e.setValue(n, { value: m.target.value }), this.setPropertyOnSiblings(s, "value", m.target.value, "value"), l.formattedValue = null;
            }), s.addEventListener("resetform", (m) => {
              const g = this.data.defaultFieldValue ?? "";
              s.value = l.userValue = g, l.formattedValue = null;
            });
            let d = p((m) => {
              const { formattedValue: g } = l;
              g != null && (m.target.value = g), m.target.scrollLeft = 0;
            }, "blurListener");
            if (this.enableScripting && this.hasJSActions) {
              s.addEventListener("focus", (g) => {
                if (l.focused) return;
                const { target: b } = g;
                if (u && (b.type = c, h && (b.step = h)), l.userValue) {
                  const w = l.userValue;
                  if (u) if (c === "time") {
                    const x = new Date(w), y = [x.getHours(), x.getMinutes(), x.getSeconds()];
                    b.value = y.map((j) => j.toString().padStart(2, "0")).join(":");
                  } else b.value = new Date(w - Lk).toISOString().split(c === "date" ? "T" : ".", 1)[0];
                  else b.value = w;
                }
                l.lastCommittedValue = b.value, l.commitKey = 1, this.data.actions?.Focus || (l.focused = true);
              }), s.addEventListener("updatefromsandbox", (g) => {
                this.showElementAndHideCanvas(g.target);
                const b = { value(w) {
                  l.userValue = w.detail.value ?? "", u || e.setValue(n, { value: l.userValue.toString() }), w.target.value = l.userValue;
                }, formattedValue(w) {
                  const { formattedValue: x } = w.detail;
                  l.formattedValue = x, x != null && w.target !== document.activeElement && (w.target.value = x);
                  const y = { formattedValue: x };
                  u && (y.value = x), e.setValue(n, y);
                }, selRange(w) {
                  w.target.setSelectionRange(...w.detail.selRange);
                }, charLimit: p((w) => {
                  const { charLimit: x } = w.detail, { target: y } = w;
                  if (x === 0) {
                    y.removeAttribute("maxLength");
                    return;
                  }
                  y.setAttribute("maxLength", x);
                  let j = l.userValue;
                  !j || j.length <= x || (j = j.slice(0, x), y.value = l.userValue = j, e.setValue(n, { value: j }), this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { source: this, detail: { id: n, name: "Keystroke", value: j, willCommit: true, commitKey: 1, selStart: y.selectionStart, selEnd: y.selectionEnd } }));
                }, "charLimit") };
                this._dispatchEventFromSandbox(b, g);
              }), s.addEventListener("keydown", (g) => {
                l.commitKey = 1;
                let b = -1;
                if (g.key === "Escape" ? b = 0 : g.key === "Enter" && !this.data.multiLine ? b = 2 : g.key === "Tab" && (l.commitKey = 3), b === -1) return;
                const { value: w } = g.target;
                l.lastCommittedValue !== w && (l.lastCommittedValue = w, l.userValue = w, this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { source: this, detail: { id: n, name: "Keystroke", value: w, willCommit: true, commitKey: b, selStart: g.target.selectionStart, selEnd: g.target.selectionEnd } }));
              });
              const m = d;
              d = null, s.addEventListener("blur", (g) => {
                if (!l.focused || !g.relatedTarget) return;
                this.data.actions?.Blur || (l.focused = false);
                const { target: b } = g;
                let { value: w } = b;
                if (u) {
                  if (w && c === "time") {
                    const x = w.split(":").map((y) => parseInt(y, 10));
                    w = new Date(2e3, 0, 1, x[0], x[1], x[2] || 0).valueOf(), b.step = "";
                  } else w.includes("T") || (w = `${w}T00:00`), w = new Date(w).valueOf();
                  b.type = "text";
                }
                l.userValue = w, l.lastCommittedValue !== w && this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { source: this, detail: { id: n, name: "Keystroke", value: w, willCommit: true, commitKey: l.commitKey, selStart: g.target.selectionStart, selEnd: g.target.selectionEnd } }), m(g);
              }), this.data.actions?.Keystroke && s.addEventListener("beforeinput", (g) => {
                l.lastCommittedValue = null;
                const { data: b, target: w } = g, { value: x, selectionStart: y, selectionEnd: j } = w;
                let v = y, q = j;
                switch (g.inputType) {
                  case "deleteWordBackward": {
                    const A = x.substring(0, y).match(/\w*[^\w]*$/);
                    A && (v -= A[0].length);
                    break;
                  }
                  case "deleteWordForward": {
                    const A = x.substring(y).match(/^[^\w]*\w*/);
                    A && (q += A[0].length);
                    break;
                  }
                  case "deleteContentBackward":
                    y === j && (v -= 1);
                    break;
                  case "deleteContentForward":
                    y === j && (q += 1);
                    break;
                }
                g.preventDefault(), this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { source: this, detail: { id: n, name: "Keystroke", value: x, change: b || "", willCommit: false, selStart: v, selEnd: q } });
              }), this._setEventListeners(s, l, [["focus", "Focus"], ["blur", "Blur"], ["mousedown", "Mouse Down"], ["mouseenter", "Mouse Enter"], ["mouseleave", "Mouse Exit"], ["mouseup", "Mouse Up"]], (g) => g.target.value);
            }
            if (d && s.addEventListener("blur", d), this.data.comb) {
              const g = (this.data.rect[2] - this.data.rect[0]) / r;
              s.classList.add("comb"), s.style.letterSpacing = `calc(${g}px * var(--total-scale-factor) - 1ch)`;
            }
          } else s = document.createElement("div"), s.textContent = this.data.fieldValue, s.style.verticalAlign = "middle", s.style.display = "table-cell", this.data.hasOwnCanvas && (s.hidden = true);
          return this._setTextStyle(s), this._setBackgroundColor(s), this._setDefaultPropertiesFromJS(s), this.container.append(s), this.container;
        }
      };
      Gk = class extends Ba {
        static {
          p(this, "SignatureWidgetAnnotationElement");
        }
        constructor(e) {
          super(e, { isRenderable: !!e.data.hasOwnCanvas });
        }
      };
      Wk = class extends Ba {
        static {
          p(this, "CheckboxWidgetAnnotationElement");
        }
        constructor(e) {
          super(e, { isRenderable: e.renderForms });
        }
        render() {
          const e = this.annotationStorage, n = this.data, s = n.id;
          let i = e.getValue(s, { value: n.exportValue === n.fieldValue }).value;
          typeof i == "string" && (i = i !== "Off", e.setValue(s, { value: i })), this.container.classList.add("buttonWidgetAnnotation", "checkBox");
          const a = document.createElement("input");
          return Fa.add(a), a.setAttribute("data-element-id", s), a.disabled = n.readOnly, this._setRequired(a, this.data.required), a.type = "checkbox", a.name = n.fieldName, i && a.setAttribute("checked", true), a.setAttribute("exportValue", n.exportValue), a.tabIndex = 0, a.addEventListener("change", (r) => {
            const { name: o, checked: l } = r.target;
            for (const f of this._getElementsByName(o, s)) {
              const c = l && f.exportValue === n.exportValue;
              f.domElement && (f.domElement.checked = c), e.setValue(f.id, { value: c });
            }
            e.setValue(s, { value: l });
          }), a.addEventListener("resetform", (r) => {
            const o = n.defaultFieldValue || "Off";
            r.target.checked = o === n.exportValue;
          }), this.enableScripting && this.hasJSActions && (a.addEventListener("updatefromsandbox", (r) => {
            const o = { value(l) {
              l.target.checked = l.detail.value !== "Off", e.setValue(s, { value: l.target.checked });
            } };
            this._dispatchEventFromSandbox(o, r);
          }), this._setEventListeners(a, null, [["change", "Validate"], ["change", "Action"], ["focus", "Focus"], ["blur", "Blur"], ["mousedown", "Mouse Down"], ["mouseenter", "Mouse Enter"], ["mouseleave", "Mouse Exit"], ["mouseup", "Mouse Up"]], (r) => r.target.checked)), this._setBackgroundColor(a), this._setDefaultPropertiesFromJS(a), this.container.append(a), this.container;
        }
      };
      fm = class extends Ba {
        static {
          p(this, "RadioButtonWidgetAnnotationElement");
        }
        constructor(e) {
          super(e, { isRenderable: e.renderForms });
        }
        render() {
          this.container.classList.add("buttonWidgetAnnotation", "radioButton");
          const e = this.annotationStorage, n = this.data, s = n.id;
          let i = e.getValue(s, { value: n.fieldValue === n.buttonValue }).value;
          if (typeof i == "string" && (i = i !== n.buttonValue, e.setValue(s, { value: i })), i) for (const r of this._getElementsByName(n.fieldName, s)) e.setValue(r.id, { value: false });
          const a = document.createElement("input");
          if (Fa.add(a), a.setAttribute("data-element-id", s), a.disabled = n.readOnly, this._setRequired(a, this.data.required), a.type = "radio", a.name = n.fieldName, i && a.setAttribute("checked", true), a.tabIndex = 0, a.addEventListener("change", (r) => {
            const { name: o, checked: l } = r.target;
            for (const f of this._getElementsByName(o, s)) e.setValue(f.id, { value: false });
            e.setValue(s, { value: l });
          }), a.addEventListener("resetform", (r) => {
            const o = n.defaultFieldValue;
            r.target.checked = o != null && o === n.buttonValue;
          }), this.enableScripting && this.hasJSActions) {
            const r = n.buttonValue;
            a.addEventListener("updatefromsandbox", (o) => {
              const l = { value: p((f) => {
                const c = r === f.detail.value;
                for (const h of this._getElementsByName(f.target.name)) {
                  const u = c && h.id === s;
                  h.domElement && (h.domElement.checked = u), e.setValue(h.id, { value: u });
                }
              }, "value") };
              this._dispatchEventFromSandbox(l, o);
            }), this._setEventListeners(a, null, [["change", "Validate"], ["change", "Action"], ["focus", "Focus"], ["blur", "Blur"], ["mousedown", "Mouse Down"], ["mouseenter", "Mouse Enter"], ["mouseleave", "Mouse Exit"], ["mouseup", "Mouse Up"]], (o) => o.target.checked);
          }
          return this._setBackgroundColor(a), this._setDefaultPropertiesFromJS(a), this.container.append(a), this.container;
        }
      };
      $k = class extends mh {
        static {
          p(this, "PushButtonWidgetAnnotationElement");
        }
        constructor(e) {
          super(e, { ignoreBorder: e.data.hasAppearance });
        }
        render() {
          const e = super.render();
          e.classList.add("buttonWidgetAnnotation", "pushButton");
          const n = e.lastChild;
          return this.enableScripting && this.hasJSActions && n && (this._setDefaultPropertiesFromJS(n), n.addEventListener("updatefromsandbox", (s) => {
            this._dispatchEventFromSandbox({}, s);
          })), e;
        }
      };
      Vk = class extends Ba {
        static {
          p(this, "ChoiceWidgetAnnotationElement");
        }
        constructor(e) {
          super(e, { isRenderable: e.renderForms });
        }
        render() {
          this.container.classList.add("choiceWidgetAnnotation");
          const e = this.annotationStorage, n = this.data.id, s = e.getValue(n, { value: this.data.fieldValue }), i = document.createElement("select");
          Fa.add(i), i.setAttribute("data-element-id", n), i.disabled = this.data.readOnly, this._setRequired(i, this.data.required), i.name = this.data.fieldName, i.tabIndex = 0;
          let a = this.data.combo && this.data.options.length > 0;
          this.data.combo || (i.size = this.data.options.length, this.data.multiSelect && (i.multiple = true)), i.addEventListener("resetform", (h) => {
            const u = this.data.defaultFieldValue;
            for (const d of i.options) d.selected = d.value === u;
          });
          const r = p((h, u) => {
            const d = u.replaceAll(" ", "\xA0");
            h.textContent = d, d !== u && h.setAttribute("display-value", u);
          }, "fixDisplayValue");
          for (const h of this.data.options) {
            const u = document.createElement("option");
            r(u, h.displayValue), u.value = h.exportValue, s.value.includes(h.exportValue) && (u.setAttribute("selected", true), a = false), i.append(u);
          }
          let o = null;
          if (a) {
            const h = document.createElement("option");
            h.value = " ", h.setAttribute("hidden", true), h.setAttribute("selected", true), i.prepend(h), o = p(() => {
              h.remove(), i.removeEventListener("input", o), o = null;
            }, "removeEmptyEntry"), i.addEventListener("input", o);
          }
          const l = p((h) => {
            const u = h ? "value" : "textContent", { options: d, multiple: m } = i;
            return m ? Array.prototype.filter.call(d, (g) => g.selected).map((g) => g[u]) : d.selectedIndex === -1 ? null : d[d.selectedIndex][u];
          }, "getValue");
          let f = l(false);
          const c = p((h) => {
            const u = h.target.options;
            return Array.prototype.map.call(u, (d) => ({ displayValue: d.getAttribute("display-value") || d.textContent, exportValue: d.value }));
          }, "getItems");
          return this.enableScripting && this.hasJSActions ? (i.addEventListener("updatefromsandbox", (h) => {
            const u = { value(d) {
              o?.();
              const m = d.detail.value, g = new Set(Array.isArray(m) ? m : [m]);
              for (const b of i.options) b.selected = g.has(b.value);
              e.setValue(n, { value: l(true) }), f = l(false);
            }, multipleSelection(d) {
              i.multiple = true;
            }, remove(d) {
              const m = i.options, g = d.detail.remove;
              m[g].selected = false, i.remove(g), m.length > 0 && Array.prototype.findIndex.call(m, (w) => w.selected) === -1 && (m[0].selected = true), e.setValue(n, { value: l(true), items: c(d) }), f = l(false);
            }, clear(d) {
              for (; i.length !== 0; ) i.remove(0);
              e.setValue(n, { value: null, items: [] }), f = l(false);
            }, insert(d) {
              const { index: m, displayValue: g, exportValue: b } = d.detail.insert, w = i.children[m], x = document.createElement("option");
              r(x, g), x.value = b, w ? w.before(x) : i.append(x), e.setValue(n, { value: l(true), items: c(d) }), f = l(false);
            }, items(d) {
              const { items: m } = d.detail;
              for (; i.length !== 0; ) i.remove(0);
              for (const g of m) {
                const { displayValue: b, exportValue: w } = g, x = document.createElement("option");
                r(x, b), x.value = w, i.append(x);
              }
              i.options.length > 0 && (i.options[0].selected = true), e.setValue(n, { value: l(true), items: c(d) }), f = l(false);
            }, indices(d) {
              const m = new Set(d.detail.indices);
              for (const g of d.target.options) g.selected = m.has(g.index);
              e.setValue(n, { value: l(true) }), f = l(false);
            }, editable(d) {
              d.target.disabled = !d.detail.editable;
            } };
            this._dispatchEventFromSandbox(u, h);
          }), i.addEventListener("input", (h) => {
            const u = l(true), d = l(false);
            e.setValue(n, { value: u }), h.preventDefault(), this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { source: this, detail: { id: n, name: "Keystroke", value: f, change: d, changeEx: u, willCommit: false, commitKey: 1, keyDown: false } });
          }), this._setEventListeners(i, null, [["focus", "Focus"], ["blur", "Blur"], ["mousedown", "Mouse Down"], ["mouseenter", "Mouse Enter"], ["mouseleave", "Mouse Exit"], ["mouseup", "Mouse Up"], ["input", "Action"], ["input", "Validate"]], (h) => h.target.value)) : i.addEventListener("input", function(h) {
            e.setValue(n, { value: l(true) });
          }), this.data.combo && this._setTextStyle(i), this._setBackgroundColor(i), this._setDefaultPropertiesFromJS(i), this.container.append(i), this.container;
        }
      };
      gh = class extends Ut {
        static {
          p(this, "PopupAnnotationElement");
        }
        constructor(e) {
          const { data: n, elements: s, parent: i } = e, a = !!i._commentManager;
          if (super(e, { isRenderable: !a && Ut._hasPopupData(n) }), this.elements = s, a && Ut._hasPopupData(n)) {
            const r = this.popup = this.#e();
            for (const o of s) o.popup = r;
          } else this.popup = null;
        }
        #e() {
          return new Kk({ container: this.container, color: this.data.color, titleObj: this.data.titleObj, modificationDate: this.data.modificationDate || this.data.creationDate, contentsObj: this.data.contentsObj, richText: this.data.richText, rect: this.data.rect, parentRect: this.data.parentRect || null, parent: this.parent, elements: this.elements, open: this.data.open, commentManager: this.parent._commentManager });
        }
        render() {
          const { container: e } = this;
          e.classList.add("popupAnnotation"), e.role = "comment";
          const n = this.popup = this.#e(), s = [];
          for (const i of this.elements) i.popup = n, i.container.ariaHasPopup = "dialog", s.push(i.data.id), i.addHighlightArea();
          return this.container.setAttribute("aria-controls", s.map((i) => `${hr}${i}`).join(",")), this.container;
        }
      };
      Kk = class {
        static {
          p(this, "PopupElement");
        }
        #e = null;
        #t = this.#H.bind(this);
        #n = this.#D.bind(this);
        #s = this.#k.bind(this);
        #i = this.#A.bind(this);
        #a = null;
        #r = null;
        #o = null;
        #l = null;
        #f = null;
        #u = null;
        #c = null;
        #d = false;
        #g = null;
        #m = null;
        #h = null;
        #p = null;
        #b = null;
        #y = null;
        #x = null;
        #v = null;
        #C = null;
        #w = null;
        #q = false;
        #j = null;
        #S = null;
        constructor({ container: e, color: n, elements: s, titleObj: i, modificationDate: a, contentsObj: r, richText: o, parent: l, rect: f, parentRect: c, open: h, commentManager: u = null }) {
          this.#r = e, this.#C = i, this.#o = r, this.#v = o, this.#u = l, this.#a = n, this.#x = f, this.#c = c, this.#f = s, this.#e = u, this.#j = s[0], this.#l = j0.toDateObject(a), this.trigger = s.flatMap((d) => d.getElementsToTriggerPopup()), u || (this.#T(), this.#r.hidden = true, h && this.#A());
        }
        #T() {
          if (this.#m) return;
          this.#m = new AbortController();
          const { signal: e } = this.#m;
          for (const n of this.trigger) n.addEventListener("click", this.#i, { signal: e }), n.addEventListener("pointerenter", this.#s, { signal: e }), n.addEventListener("pointerleave", this.#n, { signal: e }), n.classList.add("popupTriggerArea");
          for (const n of this.#f) n.container?.addEventListener("keydown", this.#t, { signal: e });
        }
        #E() {
          const e = this.#f.find((n) => n.hasCommentButton);
          e && (this.#b = e._normalizePoint(e.commentButtonPosition));
        }
        renderCommentButton() {
          if (this.#p) {
            this.#p.parentNode || this.#j.container.after(this.#p);
            return;
          }
          if (this.#b || this.#E(), !this.#b) return;
          const { signal: e } = this.#m = new AbortController(), n = this.#j.hasOwnCommentButton, s = p(() => {
            this.#e.toggleCommentPopup(this, true, void 0, !n);
          }, "togglePopup"), i = p(() => {
            this.#e.toggleCommentPopup(this, false, true, !n);
          }, "showPopup"), a = p(() => {
            this.#e.toggleCommentPopup(this, false, false);
          }, "hidePopup");
          if (n) {
            this.#p = this.#j.container;
            for (const r of this.trigger) r.ariaHasPopup = "dialog", r.ariaControls = "commentPopup", r.addEventListener("keydown", this.#t, { signal: e }), r.addEventListener("click", s, { signal: e }), r.addEventListener("pointerenter", i, { signal: e }), r.addEventListener("pointerleave", a, { signal: e }), r.classList.add("popupTriggerArea");
          } else {
            const r = this.#p = document.createElement("button");
            r.className = "annotationCommentButton";
            const o = this.#j.container;
            r.style.zIndex = o.style.zIndex + 1, r.tabIndex = 0, r.ariaHasPopup = "dialog", r.ariaControls = "commentPopup", r.setAttribute("data-l10n-id", "pdfjs-show-comment-button"), this.#R(), this.#I(), r.addEventListener("keydown", this.#t, { signal: e }), r.addEventListener("click", s, { signal: e }), r.addEventListener("pointerenter", i, { signal: e }), r.addEventListener("pointerleave", a, { signal: e }), o.after(r);
          }
        }
        #I() {
          if (this.#j.extraPopupElement && !this.#j.editor) return;
          this.#p || this.renderCommentButton();
          const [e, n] = this.#b, { style: s } = this.#p;
          s.left = `calc(${e}%)`, s.top = `calc(${n}% - var(--comment-button-dim))`;
        }
        #R() {
          this.#j.extraPopupElement || (this.#p || this.renderCommentButton(), this.#p.style.backgroundColor = this.commentButtonColor || "");
        }
        get commentButtonColor() {
          const { color: e, opacity: n } = this.#j.commentData;
          return e ? this.#u._commentManager.makeCommentColor(e, n) : null;
        }
        focusCommentButton() {
          setTimeout(() => {
            this.#p?.focus();
          }, 0);
        }
        getData() {
          const { richText: e, color: n, opacity: s, creationDate: i, modificationDate: a } = this.#j.commentData;
          return { contentsObj: { str: this.comment }, richText: e, color: n, opacity: s, creationDate: i, modificationDate: a };
        }
        get elementBeforePopup() {
          return this.#p;
        }
        get comment() {
          return this.#S ||= this.#j.commentText, this.#S;
        }
        set comment(e) {
          e !== this.comment && (this.#j.commentText = this.#S = e);
        }
        focus() {
          this.#j.container?.focus();
        }
        get parentBoundingClientRect() {
          return this.#j.layer.getBoundingClientRect();
        }
        setCommentButtonStates({ selected: e, hasPopup: n }) {
          this.#p && (this.#p.classList.toggle("selected", e), this.#p.ariaExpanded = n);
        }
        setSelectedCommentButton(e) {
          this.#p.classList.toggle("selected", e);
        }
        get commentPopupPosition() {
          if (this.#y) return this.#y;
          const { x: e, y: n, height: s } = this.#p.getBoundingClientRect(), { x: i, y: a, width: r, height: o } = this.#j.layer.getBoundingClientRect();
          return [(e - i) / r, (n + s - a) / o];
        }
        set commentPopupPosition(e) {
          this.#y = e;
        }
        hasDefaultPopupPosition() {
          return this.#y === null;
        }
        get commentButtonPosition() {
          return this.#b;
        }
        get commentButtonWidth() {
          return this.#p.getBoundingClientRect().width / this.parentBoundingClientRect.width;
        }
        editComment(e) {
          const [n, s] = this.#y || this.commentButtonPosition.map((f) => f / 100), i = this.parentBoundingClientRect, { x: a, y: r, width: o, height: l } = i;
          this.#e.showDialog(null, this, a + n * o, r + s * l, { ...e, parentDimensions: i });
        }
        render() {
          if (this.#g) return;
          const e = this.#g = document.createElement("div");
          if (e.className = "popup", this.#a) {
            const s = e.style.outlineColor = Ie.makeHexColor(...this.#a);
            e.style.backgroundColor = `color-mix(in srgb, ${s} 30%, white)`;
          }
          const n = document.createElement("span");
          if (n.className = "header", this.#C?.str) {
            const s = document.createElement("span");
            s.className = "title", n.append(s), { dir: s.dir, str: s.textContent } = this.#C;
          }
          if (e.append(n), this.#l) {
            const s = document.createElement("time");
            s.className = "popupDate", s.setAttribute("data-l10n-id", "pdfjs-annotation-date-time-string"), s.setAttribute("data-l10n-args", JSON.stringify({ dateObj: this.#l.valueOf() })), s.dateTime = this.#l.toISOString(), n.append(s);
          }
          ih({ html: this.#F || this.#o.str, dir: this.#o?.dir, className: "popupContent" }, e), this.#r.append(e);
        }
        get #F() {
          const e = this.#v, n = this.#o;
          return e?.str && (!n?.str || n.str === e.str) && this.#v.html || null;
        }
        get #B() {
          return this.#F?.attributes?.style?.fontSize || 0;
        }
        get #_() {
          return this.#F?.attributes?.style?.color || null;
        }
        #M(e) {
          const n = [], s = { str: e, html: { name: "div", attributes: { dir: "auto" }, children: [{ name: "p", children: n }] } }, i = { style: { color: this.#_, fontSize: this.#B ? `calc(${this.#B}px * var(--total-scale-factor))` : "" } };
          for (const a of e.split(`
`)) n.push({ name: "span", value: a, attributes: i });
          return s;
        }
        #H(e) {
          e.altKey || e.shiftKey || e.ctrlKey || e.metaKey || (e.key === "Enter" || e.key === "Escape" && this.#d) && this.#A();
        }
        updateEdited({ rect: e, popup: n, deleted: s }) {
          if (this.#e) {
            s ? (this.remove(), this.#S = null) : n && (n.deleted ? this.remove() : (this.#R(), this.#S = n.text)), e && (this.#b = null, this.#E(), this.#I());
            return;
          }
          if (s || n?.deleted) {
            this.remove();
            return;
          }
          this.#T(), this.#w ||= { contentsObj: this.#o, richText: this.#v }, e && (this.#h = null), n && n.text && (this.#v = this.#M(n.text), this.#l = j0.toDateObject(n.date), this.#o = null), this.#g?.remove(), this.#g = null;
        }
        resetEdited() {
          this.#w && ({ contentsObj: this.#o, richText: this.#v } = this.#w, this.#w = null, this.#g?.remove(), this.#g = null, this.#h = null);
        }
        remove() {
          if (this.#m?.abort(), this.#m = null, this.#g?.remove(), this.#g = null, this.#q = false, this.#d = false, this.#p?.remove(), this.#p = null, this.trigger) for (const e of this.trigger) e.classList.remove("popupTriggerArea");
        }
        #z() {
          if (this.#h !== null) return;
          const { page: { view: e }, viewport: { rawDims: { pageWidth: n, pageHeight: s, pageX: i, pageY: a } } } = this.#u;
          let r = !!this.#c, o = r ? this.#c : this.#x;
          for (const m of this.#f) if (!o || Ie.intersect(m.data.rect, o) !== null) {
            o = m.data.rect, r = true;
            break;
          }
          const l = Ie.normalizeRect([o[0], e[3] - o[1] + e[1], o[2], e[3] - o[3] + e[1]]), c = r ? o[2] - o[0] + 5 : 0, h = l[0] + c, u = l[1];
          this.#h = [100 * (h - i) / n, 100 * (u - a) / s];
          const { style: d } = this.#r;
          d.left = `${this.#h[0]}%`, d.top = `${this.#h[1]}%`;
        }
        #A() {
          if (this.#e) {
            this.#e.toggleCommentPopup(this, false);
            return;
          }
          this.#d = !this.#d, this.#d ? (this.#k(), this.#r.addEventListener("click", this.#i), this.#r.addEventListener("keydown", this.#t)) : (this.#D(), this.#r.removeEventListener("click", this.#i), this.#r.removeEventListener("keydown", this.#t));
        }
        #k() {
          this.#g || this.render(), this.isVisible ? this.#d && this.#r.classList.add("focused") : (this.#z(), this.#r.hidden = false, this.#r.style.zIndex = parseInt(this.#r.style.zIndex) + 1e3);
        }
        #D() {
          this.#r.classList.remove("focused"), !(this.#d || !this.isVisible) && (this.#r.hidden = true, this.#r.style.zIndex = parseInt(this.#r.style.zIndex) - 1e3);
        }
        forceHide() {
          this.#q = this.isVisible, this.#q && (this.#r.hidden = true);
        }
        maybeShow() {
          this.#e || (this.#T(), this.#q && (this.#g || this.#k(), this.#q = false, this.#r.hidden = false));
        }
        get isVisible() {
          return this.#e ? false : this.#r.hidden === false;
        }
      };
      cm = class extends Ut {
        static {
          p(this, "FreeTextAnnotationElement");
        }
        constructor(e) {
          super(e, { isRenderable: true, ignoreBorder: true }), this.textContent = e.data.textContent, this.textPosition = e.data.textPosition, this.annotationEditorType = et.FREETEXT;
        }
        render() {
          if (this.container.classList.add("freeTextAnnotation"), this.textContent) {
            const e = this.contentElement = document.createElement("div");
            e.classList.add("annotationTextContent"), e.setAttribute("role", "comment");
            for (const n of this.textContent) {
              const s = document.createElement("span");
              s.textContent = n, e.append(s);
            }
            this.container.append(e);
          }
          return !this.data.popupRef && this.hasPopupData && (this.hasOwnCommentButton = true, this._createPopup()), this._editOnDoubleClick(), this.container;
        }
      };
      Xk = class extends Ut {
        static {
          p(this, "LineAnnotationElement");
        }
        #e = null;
        constructor(e) {
          super(e, { isRenderable: true, ignoreBorder: true });
        }
        render() {
          this.container.classList.add("lineAnnotation");
          const { data: e, width: n, height: s } = this, i = this.svgFactory.create(n, s, true), a = this.#e = this.svgFactory.createElement("svg:line");
          return a.setAttribute("x1", e.rect[2] - e.lineCoordinates[0]), a.setAttribute("y1", e.rect[3] - e.lineCoordinates[1]), a.setAttribute("x2", e.rect[2] - e.lineCoordinates[2]), a.setAttribute("y2", e.rect[3] - e.lineCoordinates[3]), a.setAttribute("stroke-width", e.borderStyle.width || 1), a.setAttribute("stroke", "transparent"), a.setAttribute("fill", "transparent"), i.append(a), this.container.append(i), !e.popupRef && this.hasPopupData && (this.hasOwnCommentButton = true, this._createPopup()), this.container;
        }
        getElementsToTriggerPopup() {
          return this.#e;
        }
        addHighlightArea() {
          this.container.classList.add("highlightArea");
        }
      };
      Yk = class extends Ut {
        static {
          p(this, "SquareAnnotationElement");
        }
        #e = null;
        constructor(e) {
          super(e, { isRenderable: true, ignoreBorder: true });
        }
        render() {
          this.container.classList.add("squareAnnotation");
          const { data: e, width: n, height: s } = this, i = this.svgFactory.create(n, s, true), a = e.borderStyle.width, r = this.#e = this.svgFactory.createElement("svg:rect");
          return r.setAttribute("x", a / 2), r.setAttribute("y", a / 2), r.setAttribute("width", n - a), r.setAttribute("height", s - a), r.setAttribute("stroke-width", a || 1), r.setAttribute("stroke", "transparent"), r.setAttribute("fill", "transparent"), i.append(r), this.container.append(i), !e.popupRef && this.hasPopupData && (this.hasOwnCommentButton = true, this._createPopup()), this.container;
        }
        getElementsToTriggerPopup() {
          return this.#e;
        }
        addHighlightArea() {
          this.container.classList.add("highlightArea");
        }
      };
      Qk = class extends Ut {
        static {
          p(this, "CircleAnnotationElement");
        }
        #e = null;
        constructor(e) {
          super(e, { isRenderable: true, ignoreBorder: true });
        }
        render() {
          this.container.classList.add("circleAnnotation");
          const { data: e, width: n, height: s } = this, i = this.svgFactory.create(n, s, true), a = e.borderStyle.width, r = this.#e = this.svgFactory.createElement("svg:ellipse");
          return r.setAttribute("cx", n / 2), r.setAttribute("cy", s / 2), r.setAttribute("rx", n / 2 - a / 2), r.setAttribute("ry", s / 2 - a / 2), r.setAttribute("stroke-width", a || 1), r.setAttribute("stroke", "transparent"), r.setAttribute("fill", "transparent"), i.append(r), this.container.append(i), !e.popupRef && this.hasPopupData && (this.hasOwnCommentButton = true, this._createPopup()), this.container;
        }
        getElementsToTriggerPopup() {
          return this.#e;
        }
        addHighlightArea() {
          this.container.classList.add("highlightArea");
        }
      };
      hm = class extends Ut {
        static {
          p(this, "PolylineAnnotationElement");
        }
        #e = null;
        constructor(e) {
          super(e, { isRenderable: true, ignoreBorder: true }), this.containerClassName = "polylineAnnotation", this.svgElementName = "svg:polyline";
        }
        render() {
          this.container.classList.add(this.containerClassName);
          const { data: { rect: e, vertices: n, borderStyle: s, popupRef: i }, width: a, height: r } = this;
          if (!n) return this.container;
          const o = this.svgFactory.create(a, r, true);
          let l = [];
          for (let c = 0, h = n.length; c < h; c += 2) {
            const u = n[c] - e[0], d = e[3] - n[c + 1];
            l.push(`${u},${d}`);
          }
          l = l.join(" ");
          const f = this.#e = this.svgFactory.createElement(this.svgElementName);
          return f.setAttribute("points", l), f.setAttribute("stroke-width", s.width || 1), f.setAttribute("stroke", "transparent"), f.setAttribute("fill", "transparent"), o.append(f), this.container.append(o), !i && this.hasPopupData && (this.hasOwnCommentButton = true, this._createPopup()), this.container;
        }
        getElementsToTriggerPopup() {
          return this.#e;
        }
        addHighlightArea() {
          this.container.classList.add("highlightArea");
        }
      };
      Jk = class extends hm {
        static {
          p(this, "PolygonAnnotationElement");
        }
        constructor(e) {
          super(e), this.containerClassName = "polygonAnnotation", this.svgElementName = "svg:polygon";
        }
      };
      Zk = class extends Ut {
        static {
          p(this, "CaretAnnotationElement");
        }
        constructor(e) {
          super(e, { isRenderable: true, ignoreBorder: true });
        }
        render() {
          return this.container.classList.add("caretAnnotation"), !this.data.popupRef && this.hasPopupData && (this.hasOwnCommentButton = true, this._createPopup()), this.container;
        }
      };
      bh = class extends Ut {
        static {
          p(this, "InkAnnotationElement");
        }
        #e = null;
        #t = [];
        constructor(e) {
          super(e, { isRenderable: true, ignoreBorder: true }), this.containerClassName = "inkAnnotation", this.svgElementName = "svg:polyline", this.annotationEditorType = this.data.it === "InkHighlight" ? et.HIGHLIGHT : et.INK;
        }
        #n(e, n) {
          switch (e) {
            case 90:
              return { transform: `rotate(90) translate(${-n[0]},${n[1]}) scale(1,-1)`, width: n[3] - n[1], height: n[2] - n[0] };
            case 180:
              return { transform: `rotate(180) translate(${-n[2]},${n[1]}) scale(1,-1)`, width: n[2] - n[0], height: n[3] - n[1] };
            case 270:
              return { transform: `rotate(270) translate(${-n[2]},${n[3]}) scale(1,-1)`, width: n[3] - n[1], height: n[2] - n[0] };
            default:
              return { transform: `translate(${-n[0]},${n[3]}) scale(1,-1)`, width: n[2] - n[0], height: n[3] - n[1] };
          }
        }
        render() {
          this.container.classList.add(this.containerClassName);
          const { data: { rect: e, rotation: n, inkLists: s, borderStyle: i, popupRef: a } } = this, { transform: r, width: o, height: l } = this.#n(n, e), f = this.svgFactory.create(o, l, true), c = this.#e = this.svgFactory.createElement("svg:g");
          f.append(c), c.setAttribute("stroke-width", i.width || 1), c.setAttribute("stroke-linecap", "round"), c.setAttribute("stroke-linejoin", "round"), c.setAttribute("stroke-miterlimit", 10), c.setAttribute("stroke", "transparent"), c.setAttribute("fill", "transparent"), c.setAttribute("transform", r);
          for (let h = 0, u = s.length; h < u; h++) {
            const d = this.svgFactory.createElement(this.svgElementName);
            this.#t.push(d), d.setAttribute("points", s[h].join(",")), c.append(d);
          }
          return !a && this.hasPopupData && (this.hasOwnCommentButton = true, this._createPopup()), this.container.append(f), this._editOnDoubleClick(), this.container;
        }
        updateEdited(e) {
          super.updateEdited(e);
          const { thickness: n, points: s, rect: i } = e, a = this.#e;
          if (n >= 0 && a.setAttribute("stroke-width", n || 1), s) for (let r = 0, o = this.#t.length; r < o; r++) this.#t[r].setAttribute("points", s[r].join(","));
          if (i) {
            const { transform: r, width: o, height: l } = this.#n(this.data.rotation, i);
            a.parentElement.setAttribute("viewBox", `0 0 ${o} ${l}`), a.setAttribute("transform", r);
          }
        }
        getElementsToTriggerPopup() {
          return this.#t;
        }
        addHighlightArea() {
          this.container.classList.add("highlightArea");
        }
      };
      um = class extends Ut {
        static {
          p(this, "HighlightAnnotationElement");
        }
        constructor(e) {
          super(e, { isRenderable: true, ignoreBorder: true, createQuadrilaterals: true }), this.annotationEditorType = et.HIGHLIGHT;
        }
        render() {
          const { data: { overlaidText: e, popupRef: n } } = this;
          if (!n && this.hasPopupData && (this.hasOwnCommentButton = true, this._createPopup()), this.container.classList.add("highlightAnnotation"), this._editOnDoubleClick(), e) {
            const s = document.createElement("mark");
            s.classList.add("overlaidText"), s.textContent = e, this.container.append(s);
          }
          return this.container;
        }
      };
      ey = class extends Ut {
        static {
          p(this, "UnderlineAnnotationElement");
        }
        constructor(e) {
          super(e, { isRenderable: true, ignoreBorder: true, createQuadrilaterals: true });
        }
        render() {
          const { data: { overlaidText: e, popupRef: n } } = this;
          if (!n && this.hasPopupData && (this.hasOwnCommentButton = true, this._createPopup()), this.container.classList.add("underlineAnnotation"), e) {
            const s = document.createElement("u");
            s.classList.add("overlaidText"), s.textContent = e, this.container.append(s);
          }
          return this.container;
        }
      };
      ty = class extends Ut {
        static {
          p(this, "SquigglyAnnotationElement");
        }
        constructor(e) {
          super(e, { isRenderable: true, ignoreBorder: true, createQuadrilaterals: true });
        }
        render() {
          const { data: { overlaidText: e, popupRef: n } } = this;
          if (!n && this.hasPopupData && (this.hasOwnCommentButton = true, this._createPopup()), this.container.classList.add("squigglyAnnotation"), e) {
            const s = document.createElement("u");
            s.classList.add("overlaidText"), s.textContent = e, this.container.append(s);
          }
          return this.container;
        }
      };
      ny = class extends Ut {
        static {
          p(this, "StrikeOutAnnotationElement");
        }
        constructor(e) {
          super(e, { isRenderable: true, ignoreBorder: true, createQuadrilaterals: true });
        }
        render() {
          const { data: { overlaidText: e, popupRef: n } } = this;
          if (!n && this.hasPopupData && (this.hasOwnCommentButton = true, this._createPopup()), this.container.classList.add("strikeoutAnnotation"), e) {
            const s = document.createElement("s");
            s.classList.add("overlaidText"), s.textContent = e, this.container.append(s);
          }
          return this.container;
        }
      };
      dm = class extends Ut {
        static {
          p(this, "StampAnnotationElement");
        }
        constructor(e) {
          super(e, { isRenderable: true, ignoreBorder: true }), this.annotationEditorType = et.STAMP;
        }
        render() {
          return this.container.classList.add("stampAnnotation"), this.container.setAttribute("role", "img"), !this.data.popupRef && this.hasPopupData && (this.hasOwnCommentButton = true, this._createPopup()), this._editOnDoubleClick(), this.container;
        }
      };
      sy = class extends Ut {
        static {
          p(this, "FileAttachmentAnnotationElement");
        }
        #e = null;
        constructor(e) {
          super(e, { isRenderable: true });
          const { file: n } = this.data;
          this.filename = n.filename, this.content = n.content, this.linkService.eventBus?.dispatch("fileattachmentannotation", { source: this, ...n });
        }
        render() {
          this.container.classList.add("fileAttachmentAnnotation");
          const { container: e, data: n } = this;
          let s;
          n.hasAppearance || n.fillAlpha === 0 ? s = document.createElement("div") : (s = document.createElement("img"), s.src = `${this.imageResourcesPath}annotation-${/paperclip/i.test(n.name) ? "paperclip" : "pushpin"}.svg`, n.fillAlpha && n.fillAlpha < 1 && (s.style = `filter: opacity(${Math.round(n.fillAlpha * 100)}%);`)), s.addEventListener("dblclick", this.#t.bind(this)), this.#e = s;
          const { isMac: i } = rn.platform;
          return e.addEventListener("keydown", (a) => {
            a.key === "Enter" && (i ? a.metaKey : a.ctrlKey) && this.#t();
          }), !n.popupRef && this.hasPopupData ? (this.hasOwnCommentButton = true, this._createPopup()) : s.classList.add("popupTriggerArea"), e.append(s), e;
        }
        getElementsToTriggerPopup() {
          return this.#e;
        }
        addHighlightArea() {
          this.container.classList.add("highlightArea");
        }
        #t() {
          this.downloadManager?.openOrDownloadData(this.content, this.filename);
        }
      };
      Z0 = class _Z0 {
        static {
          p(this, "AnnotationLayer");
        }
        #e = null;
        #t = null;
        #n = null;
        #s = /* @__PURE__ */ new Map();
        #i = null;
        #a = null;
        #r = [];
        #o = false;
        constructor({ div: e, accessibilityManager: n, annotationCanvasMap: s, annotationEditorUIManager: i, page: a, viewport: r, structTreeLayer: o, commentManager: l, linkService: f, annotationStorage: c }) {
          this.div = e, this.#e = n, this.#t = s, this.#i = o || null, this.#a = f || null, this.#n = c || new ah(), this.page = a, this.viewport = r, this.zIndex = 0, this._annotationEditorUIManager = i, this._commentManager = l || null;
        }
        hasEditableAnnotations() {
          return this.#s.size > 0;
        }
        async render(e) {
          const { annotations: n } = e, s = this.div;
          Ki(s, this.viewport);
          const i = /* @__PURE__ */ new Map(), a = [], r = { data: null, layer: s, linkService: this.#a, downloadManager: e.downloadManager, imageResourcesPath: e.imageResourcesPath || "", renderForms: e.renderForms !== false, svgFactory: new Lo(), annotationStorage: this.#n, enableComment: e.enableComment === true, enableScripting: e.enableScripting === true, hasJSActions: e.hasJSActions, fieldObjects: e.fieldObjects, parent: this, elements: null };
          for (const o of n) {
            if (o.noHTML) continue;
            const l = o.annotationType === Yt.POPUP;
            if (l) {
              const h = i.get(o.id);
              if (!h) continue;
              if (!this._commentManager) {
                a.push(o);
                continue;
              }
              r.elements = h;
            } else if (o.rect[2] === o.rect[0] || o.rect[3] === o.rect[1]) continue;
            r.data = o;
            const f = ph.create(r);
            if (!f.isRenderable) continue;
            l || (this.#r.push(f), o.popupRef && i.getOrInsertComputed(o.popupRef, g0).push(f));
            const c = f.render();
            o.hidden && (c.style.visibility = "hidden"), f._isEditable && (this.#s.set(f.data.id, f), this._annotationEditorUIManager?.renderAnnotationElement(f));
          }
          await this.#l();
          for (const o of a) {
            const l = r.elements = i.get(o.id);
            r.data = o;
            const f = ph.create(r);
            if (!f.isRenderable) continue;
            const c = f.render();
            f.contentElement.id = `${hr}${o.id}`, o.hidden && (c.style.visibility = "hidden"), l.at(-1).container.after(c);
          }
          this.#f();
        }
        async #l() {
          if (this.#r.length === 0) return;
          this.div.replaceChildren();
          const e = [];
          if (!this.#o) {
            this.#o = true;
            for (const { contentElement: s, data: { id: i } } of this.#r) {
              const a = s.id = `${hr}${i}`;
              e.push(this.#i?.getAriaAttributes(a).then((r) => {
                if (r) for (const [o, l] of r) s.setAttribute(o, l);
              }));
            }
          }
          this.#r.sort(({ data: { rect: [s, i, a, r] } }, { data: { rect: [o, l, f, c] } }) => {
            if (s === a && i === r) return 1;
            if (o === f && l === c) return -1;
            const h = r, u = i, d = (i + r) / 2, m = c, g = l, b = (l + c) / 2;
            if (d >= m && b <= u) return -1;
            if (b >= h && d <= g) return 1;
            const w = (s + a) / 2, x = (o + f) / 2;
            return w - x;
          });
          const n = document.createDocumentFragment();
          for (const s of this.#r) n.append(s.container), this._commentManager ? (s.extraPopupElement?.popup || s.popup)?.renderCommentButton() : s.extraPopupElement && n.append(s.extraPopupElement.render());
          if (this.div.append(n), await Promise.all(e), this.#e) for (const s of this.#r) this.#e.addPointerInTextLayer(s.contentElement, false);
        }
        async addLinkAnnotations(e) {
          const n = { data: null, layer: this.div, linkService: this.#a, svgFactory: new Lo(), parent: this };
          for (const s of e) {
            s.borderStyle ||= _Z0._defaultBorderStyle, n.data = s;
            const i = ph.create(n);
            i.isRenderable && (i.render(), i.contentElement.id = `${hr}${s.id}`, this.#r.push(i));
          }
          await this.#l();
        }
        update({ viewport: e }) {
          const n = this.div;
          this.viewport = e, Ki(n, { rotation: e.rotation }), this.#f(), n.hidden = false;
        }
        #f() {
          if (!this.#t) return;
          const e = this.div;
          for (const [n, s] of this.#t) {
            const i = e.querySelector(`[data-annotation-id="${n}"]`);
            if (!i) continue;
            s.className = "annotationContent";
            const { firstChild: a } = i;
            a ? a.nodeName === "CANVAS" ? a.replaceWith(s) : a.classList.contains("annotationContent") ? a.after(s) : a.before(s) : i.append(s);
            const r = this.#s.get(n);
            r && (r._hasNoCanvas ? (this._annotationEditorUIManager?.setMissingCanvas(n, i.id, s), r._hasNoCanvas = false) : r.canvas = s);
          }
          this.#t.clear();
        }
        getEditableAnnotations() {
          return this.#s.values();
        }
        getEditableAnnotation(e) {
          return this.#s.get(e);
        }
        addFakeAnnotation(e) {
          const { div: n } = this, { id: s, rotation: i } = e, a = new Nk({ data: { id: s, rect: e.getPDFRect(), rotation: i }, editor: e, layer: n, parent: this, enableComment: !!this._commentManager, linkService: this.#a, annotationStorage: this.#n });
          return a.render(), a.contentElement.id = `${hr}${s}`, a.createOrUpdatePopup(), this.#r.push(a), a;
        }
        removeAnnotation(e) {
          const n = this.#r.findIndex((i) => i.data.id === e);
          if (n < 0) return;
          const [s] = this.#r.splice(n, 1);
          this.#e?.removePointerInTextLayer(s.contentElement);
        }
        updateFakeAnnotations(e) {
          if (e.length !== 0) {
            for (const n of e) n.updateFakeAnnotationElement(this);
            this.#l();
          }
        }
        togglePointerEvents(e = false) {
          this.div.classList.toggle("disabled", !e);
        }
        static get _defaultBorderStyle() {
          return st(this, "_defaultBorderStyle", Object.freeze({ width: 1, rawWidth: 1, style: fr.SOLID, dashArray: [3], horizontalCornerRadius: 0, verticalCornerRadius: 0 }));
        }
      };
      M0 = /\r\n?|\n/g;
      bn = class _bn extends We {
        static {
          p(this, "FreeTextEditor");
        }
        #e = "";
        #t = `${this.id}-editor`;
        #n = null;
        #s;
        _colorPicker = null;
        static _freeTextDefaultContent = "";
        static _internalPadding = 0;
        static _defaultColor = null;
        static _defaultFontSize = 10;
        static get _keyboardManager() {
          const e = _bn.prototype, n = p((a) => a.isEmpty(), "arrowChecker"), s = Si.TRANSLATE_SMALL, i = Si.TRANSLATE_BIG;
          return st(this, "_keyboardManager", new Po([[["ctrl+s", "mac+meta+s", "ctrl+p", "mac+meta+p"], e.commitOrRemove, { bubbles: true }], [["ctrl+Enter", "mac+meta+Enter", "Escape", "mac+Escape"], e.commitOrRemove], [["ArrowLeft", "mac+ArrowLeft"], e._translateEmpty, { args: [-s, 0], checker: n }], [["ctrl+ArrowLeft", "mac+shift+ArrowLeft"], e._translateEmpty, { args: [-i, 0], checker: n }], [["ArrowRight", "mac+ArrowRight"], e._translateEmpty, { args: [s, 0], checker: n }], [["ctrl+ArrowRight", "mac+shift+ArrowRight"], e._translateEmpty, { args: [i, 0], checker: n }], [["ArrowUp", "mac+ArrowUp"], e._translateEmpty, { args: [0, -s], checker: n }], [["ctrl+ArrowUp", "mac+shift+ArrowUp"], e._translateEmpty, { args: [0, -i], checker: n }], [["ArrowDown", "mac+ArrowDown"], e._translateEmpty, { args: [0, s], checker: n }], [["ctrl+ArrowDown", "mac+shift+ArrowDown"], e._translateEmpty, { args: [0, i], checker: n }]]));
        }
        static _type = "freetext";
        static _editorType = et.FREETEXT;
        constructor(e) {
          super({ ...e, name: "freeTextEditor" }), this.color = e.color || _bn._defaultColor || We._defaultLineColor, this.#s = e.fontSize || _bn._defaultFontSize, this.annotationElementId || this._uiManager.a11yAlert("pdfjs-editor-freetext-added-alert"), this.canAddComment = false;
        }
        static initialize(e, n) {
          We.initialize(e, n);
          const s = getComputedStyle(document.documentElement);
          this._internalPadding = parseFloat(s.getPropertyValue("--freetext-padding"));
        }
        static updateDefaultParams(e, n) {
          switch (e) {
            case gt.FREETEXT_SIZE:
              _bn._defaultFontSize = n;
              break;
            case gt.FREETEXT_COLOR:
              _bn._defaultColor = n;
              break;
          }
        }
        updateParams(e, n) {
          switch (e) {
            case gt.FREETEXT_SIZE:
              this.#i(n);
              break;
            case gt.FREETEXT_COLOR:
              this.#a(n);
              break;
          }
        }
        static get defaultPropertiesToUpdate() {
          return [[gt.FREETEXT_SIZE, _bn._defaultFontSize], [gt.FREETEXT_COLOR, _bn._defaultColor || We._defaultLineColor]];
        }
        get propertiesToUpdate() {
          return [[gt.FREETEXT_SIZE, this.#s], [gt.FREETEXT_COLOR, this.color]];
        }
        get toolbarButtons() {
          return this._colorPicker ||= new sl(this), [["colorPicker", this._colorPicker]];
        }
        get colorType() {
          return gt.FREETEXT_COLOR;
        }
        #i(e) {
          const n = p((i) => {
            this.editorDiv.style.fontSize = `calc(${i}px * var(--total-scale-factor))`, this.translate(0, -(i - this.#s) * this.parentScale), this.#s = i, this.#o();
          }, "setFontsize"), s = this.#s;
          this.addCommands({ cmd: n.bind(this, e), undo: n.bind(this, s), post: this._uiManager.updateUI.bind(this._uiManager, this), mustExec: true, type: gt.FREETEXT_SIZE, overwriteIfSameType: true, keepUndo: true });
        }
        onUpdatedColor() {
          this.editorDiv.style.color = this.color, this._colorPicker?.update(this.color), super.onUpdatedColor();
        }
        #a(e) {
          const n = p((i) => {
            this.color = i, this.onUpdatedColor();
          }, "setColor"), s = this.color;
          this.addCommands({ cmd: n.bind(this, e), undo: n.bind(this, s), post: this._uiManager.updateUI.bind(this._uiManager, this), mustExec: true, type: gt.FREETEXT_COLOR, overwriteIfSameType: true, keepUndo: true });
        }
        _translateEmpty(e, n) {
          this._uiManager.translateSelectedEditors(e, n, true);
        }
        getInitialTranslation() {
          const e = this.parentScale;
          return [-_bn._internalPadding * e, -(_bn._internalPadding + this.#s) * e];
        }
        rebuild() {
          this.parent && (super.rebuild(), this.div !== null && (this.isAttachedToDOM || this.parent.add(this)));
        }
        enableEditMode() {
          if (!super.enableEditMode()) return false;
          this.overlayDiv.classList.remove("enabled"), this.editorDiv.contentEditable = true, this._isDraggable = false, this.div.removeAttribute("aria-activedescendant"), this.#n = new AbortController();
          const e = this._uiManager.combinedSignal(this.#n);
          return this.editorDiv.addEventListener("keydown", this.editorDivKeydown.bind(this), { signal: e }), this.editorDiv.addEventListener("focus", this.editorDivFocus.bind(this), { signal: e }), this.editorDiv.addEventListener("blur", this.editorDivBlur.bind(this), { signal: e }), this.editorDiv.addEventListener("input", this.editorDivInput.bind(this), { signal: e }), this.editorDiv.addEventListener("paste", this.editorDivPaste.bind(this), { signal: e }), true;
        }
        disableEditMode() {
          return super.disableEditMode() ? (this.overlayDiv.classList.add("enabled"), this.editorDiv.contentEditable = false, this.div.setAttribute("aria-activedescendant", this.#t), this._isDraggable = true, this.#n?.abort(), this.#n = null, this.div.focus({ preventScroll: true }), this.isEditing = false, this.parent.div.classList.add("freetextEditing"), true) : false;
        }
        focusin(e) {
          this._focusEventsAllowed && (super.focusin(e), e.target !== this.editorDiv && this.editorDiv.focus());
        }
        onceAdded(e) {
          this.width || (this.enableEditMode(), e && this.editorDiv.focus(), this._initialOptions?.isCentered && this.center(), this._initialOptions = null);
        }
        isEmpty() {
          return !this.editorDiv || this.editorDiv.innerText.trim() === "";
        }
        remove() {
          this.isEditing = false, this.parent && (this.parent.setEditingState(true), this.parent.div.classList.add("freetextEditing")), super.remove();
        }
        #r() {
          const e = [];
          this.editorDiv.normalize();
          let n = null;
          for (const s of this.editorDiv.childNodes) n?.nodeType === Node.TEXT_NODE && s.nodeName === "BR" || (e.push(_bn.#l(s)), n = s);
          return e.join(`
`);
        }
        #o() {
          const [e, n] = this.parentDimensions;
          let s;
          if (this.isAttachedToDOM) s = this.div.getBoundingClientRect();
          else {
            const { currentLayer: i, div: a } = this, r = a.style.display, o = a.classList.contains("hidden");
            a.classList.remove("hidden"), a.style.display = "hidden", i.div.append(this.div), s = a.getBoundingClientRect(), a.remove(), a.style.display = r, a.classList.toggle("hidden", o);
          }
          this.rotation % 180 === this.parentRotation % 180 ? (this.width = s.width / e, this.height = s.height / n) : (this.width = s.height / e, this.height = s.width / n), this.fixAndSetPosition();
        }
        commit() {
          if (!this.isInEditMode()) return;
          super.commit(), this.disableEditMode();
          const e = this.#e, n = this.#e = this.#r().trimEnd();
          if (e === n) return;
          const s = p((i) => {
            if (this.#e = i, !i) {
              this.remove();
              return;
            }
            this.#f(), this._uiManager.rebuild(this), this.#o();
          }, "setText");
          this.addCommands({ cmd: p(() => {
            s(n);
          }, "cmd"), undo: p(() => {
            s(e);
          }, "undo"), mustExec: false }), this.#o();
        }
        shouldGetKeyboardEvents() {
          return this.isInEditMode();
        }
        enterInEditMode() {
          this.enableEditMode(), this.editorDiv.focus();
        }
        keydown(e) {
          e.target === this.div && e.key === "Enter" && (this.enterInEditMode(), e.preventDefault());
        }
        editorDivKeydown(e) {
          _bn._keyboardManager.exec(this, e);
        }
        editorDivFocus(e) {
          this.isEditing = true;
        }
        editorDivBlur(e) {
          this.isEditing = false;
        }
        editorDivInput(e) {
          this.parent.div.classList.toggle("freetextEditing", this.isEmpty());
        }
        disableEditing() {
          this.editorDiv.setAttribute("role", "comment"), this.editorDiv.removeAttribute("aria-multiline");
        }
        enableEditing() {
          this.editorDiv.setAttribute("role", "textbox"), this.editorDiv.setAttribute("aria-multiline", true);
        }
        get canChangeContent() {
          return true;
        }
        render() {
          if (this.div) return this.div;
          let e, n;
          (this._isCopy || this.annotationElementId) && (e = this.x, n = this.y), super.render(), this.editorDiv = document.createElement("div"), this.editorDiv.className = "internal", this.editorDiv.setAttribute("id", this.#t), this.editorDiv.setAttribute("data-l10n-id", "pdfjs-free-text2"), this.editorDiv.setAttribute("data-l10n-attrs", "default-content"), this.enableEditing(), this.editorDiv.contentEditable = true;
          const { style: s } = this.editorDiv;
          if (s.fontSize = `calc(${this.#s}px * var(--total-scale-factor))`, s.color = this.color, this.div.append(this.editorDiv), this.overlayDiv = document.createElement("div"), this.overlayDiv.classList.add("overlay", "enabled"), this.div.append(this.overlayDiv), this._isCopy || this.annotationElementId) {
            const [i, a] = this.parentDimensions;
            if (this.annotationElementId) {
              const { position: r } = this._initialData;
              let [o, l] = this.getInitialTranslation();
              [o, l] = this.pageTranslationToScreen(o, l);
              const [f, c] = this.pageDimensions, [h, u] = this.pageTranslation;
              let d, m;
              switch (this.rotation) {
                case 0:
                  d = e + (r[0] - h) / f, m = n + this.height - (r[1] - u) / c;
                  break;
                case 90:
                  d = e + (r[0] - h) / f, m = n - (r[1] - u) / c, [o, l] = [l, -o];
                  break;
                case 180:
                  d = e - this.width + (r[0] - h) / f, m = n - (r[1] - u) / c, [o, l] = [-o, -l];
                  break;
                case 270:
                  d = e + (r[0] - h - this.height * c) / f, m = n + (r[1] - u - this.width * f) / c, [o, l] = [-l, o];
                  break;
              }
              this.setAt(d * i, m * a, o, l);
            } else this._moveAfterPaste(e, n);
            this.#f(), this._isDraggable = true, this.editorDiv.contentEditable = false;
          } else this._isDraggable = false, this.editorDiv.contentEditable = true;
          return this.div;
        }
        static #l(e) {
          return (e.nodeType === Node.TEXT_NODE ? e.nodeValue : e.innerText).replaceAll(M0, "");
        }
        editorDivPaste(e) {
          const n = e.clipboardData || window.clipboardData, { types: s } = n;
          if (s.length === 1 && s[0] === "text/plain") return;
          e.preventDefault();
          const i = _bn.#c(n.getData("text") || "").replaceAll(M0, `
`);
          if (!i) return;
          const a = window.getSelection();
          if (!a.rangeCount) return;
          this.editorDiv.normalize(), a.deleteFromDocument();
          const r = a.getRangeAt(0);
          if (!i.includes(`
`)) {
            r.insertNode(document.createTextNode(i)), this.editorDiv.normalize(), a.collapseToStart();
            return;
          }
          const { startContainer: o, startOffset: l } = r, f = [], c = [];
          if (o.nodeType === Node.TEXT_NODE) {
            const d = o.parentElement;
            if (c.push(o.nodeValue.slice(l).replaceAll(M0, "")), d !== this.editorDiv) {
              let m = f;
              for (const g of this.editorDiv.childNodes) {
                if (g === d) {
                  m = c;
                  continue;
                }
                m.push(_bn.#l(g));
              }
            }
            f.push(o.nodeValue.slice(0, l).replaceAll(M0, ""));
          } else if (o === this.editorDiv) {
            let d = f, m = 0;
            for (const g of this.editorDiv.childNodes) m++ === l && (d = c), d.push(_bn.#l(g));
          }
          this.#e = `${f.join(`
`)}${i}${c.join(`
`)}`, this.#f();
          const h = new Range();
          let u = Math.sumPrecise(f.map((d) => d.length));
          for (const { firstChild: d } of this.editorDiv.childNodes) if (d.nodeType === Node.TEXT_NODE) {
            const m = d.nodeValue.length;
            if (u <= m) {
              h.setStart(d, u), h.setEnd(d, u);
              break;
            }
            u -= m;
          }
          a.removeAllRanges(), a.addRange(h);
        }
        #f() {
          if (this.editorDiv.replaceChildren(), !!this.#e) for (const e of this.#e.split(`
`)) {
            const n = document.createElement("div");
            n.append(e ? document.createTextNode(e) : document.createElement("br")), this.editorDiv.append(n);
          }
        }
        #u() {
          return this.#e.replaceAll("\xA0", " ");
        }
        static #c(e) {
          return e.replaceAll(" ", "\xA0");
        }
        get contentDiv() {
          return this.editorDiv;
        }
        getPDFRect() {
          const e = _bn._internalPadding * this.parentScale;
          return this.getRect(e, e);
        }
        static async deserialize(e, n, s) {
          let i = null;
          if (e instanceof cm) {
            const { data: { defaultAppearanceData: { fontSize: r, fontColor: o }, rect: l, rotation: f, id: c, popupRef: h, richText: u, contentsObj: d, creationDate: m, modificationDate: g }, textContent: b, textPosition: w, parent: { page: { pageNumber: x } } } = e;
            if (!b || b.length === 0) return null;
            i = e = { annotationType: et.FREETEXT, color: Array.from(o), fontSize: r, value: b.join(`
`), position: w, pageIndex: x - 1, rect: l.slice(0), rotation: f, annotationElementId: c, id: c, deleted: false, popupRef: h, comment: d?.str || null, richText: u, creationDate: m, modificationDate: g };
          }
          const a = await super.deserialize(e, n, s);
          return a.#s = e.fontSize, a.color = Ie.makeHexColor(...e.color), a.#e = _bn.#c(e.value), a._initialData = i, e.comment && a.setCommentData(e), a;
        }
        serialize(e = false) {
          if (this.isEmpty()) return null;
          if (this.deleted) return this.serializeDeleted();
          const n = We._colorManager.convert(this.isAttachedToDOM ? getComputedStyle(this.editorDiv).color : this.color), s = Object.assign(super.serialize(e), { color: n, fontSize: this.#s, value: this.#u() });
          return this.addComment(s), e ? (s.isCopy = true, s) : this.annotationElementId && !this.#d(s) ? null : (s.id = this.annotationElementId, s);
        }
        #d(e) {
          const { value: n, fontSize: s, color: i, pageIndex: a } = this._initialData;
          return this.hasEditedComment || this._hasBeenMoved || e.value !== n || e.fontSize !== s || e.color.some((r, o) => r !== i[o]) || e.pageIndex !== a;
        }
        renderAnnotationElement(e) {
          const n = super.renderAnnotationElement(e);
          if (!n) return null;
          const { style: s } = n;
          s.fontSize = `calc(${this.#s}px * var(--total-scale-factor))`, s.color = this.color, n.replaceChildren();
          for (const i of this.#e.split(`
`)) {
            const a = document.createElement("div");
            a.append(i ? document.createTextNode(i) : document.createElement("br")), n.append(a);
          }
          return e.updateEdited({ rect: this.getPDFRect(), popup: this._uiManager.hasCommentManager() || this.hasEditedComment ? this.comment : { text: this.#e } }), n;
        }
        resetAnnotationElement(e) {
          super.resetAnnotationElement(e), e.resetEdited();
        }
      };
      Be = class {
        static {
          p(this, "Outline");
        }
        static PRECISION = 1e-4;
        toSVGPath() {
          It("Abstract method `toSVGPath` must be implemented.");
        }
        get box() {
          It("Abstract getter `box` must be implemented.");
        }
        serialize(e, n) {
          It("Abstract method `serialize` must be implemented.");
        }
        static _rescale(e, n, s, i, a, r) {
          r ||= new Float32Array(e.length);
          for (let o = 0, l = e.length; o < l; o += 2) r[o] = n + e[o] * i, r[o + 1] = s + e[o + 1] * a;
          return r;
        }
        static _rescaleAndSwap(e, n, s, i, a, r) {
          r ||= new Float32Array(e.length);
          for (let o = 0, l = e.length; o < l; o += 2) r[o] = n + e[o + 1] * i, r[o + 1] = s + e[o] * a;
          return r;
        }
        static _translate(e, n, s, i) {
          i ||= new Float32Array(e.length);
          for (let a = 0, r = e.length; a < r; a += 2) i[a] = n + e[a], i[a + 1] = s + e[a + 1];
          return i;
        }
        static svgRound(e) {
          return Math.round(e * 1e4);
        }
        static _normalizePoint(e, n, s, i, a) {
          switch (a) {
            case 90:
              return [1 - n / s, e / i];
            case 180:
              return [1 - e / s, 1 - n / i];
            case 270:
              return [n / s, 1 - e / i];
            default:
              return [e / s, n / i];
          }
        }
        static _normalizePagePoint(e, n, s) {
          switch (s) {
            case 90:
              return [1 - n, e];
            case 180:
              return [1 - e, 1 - n];
            case 270:
              return [n, 1 - e];
            default:
              return [e, n];
          }
        }
        static createBezierPoints(e, n, s, i, a, r) {
          return [(e + 5 * s) / 6, (n + 5 * i) / 6, (5 * s + a) / 6, (5 * i + r) / 6, (s + a) / 2, (i + r) / 2];
        }
      };
      _a = class __a {
        static {
          p(this, "FreeDrawOutliner");
        }
        #e;
        #t = [];
        #n;
        #s;
        #i = [];
        #a = new Float32Array(18);
        #r;
        #o;
        #l;
        #f;
        #u;
        #c;
        #d = [];
        static #g = 8;
        static #m = 2;
        static #h = __a.#g + __a.#m;
        constructor({ x: e, y: n }, s, i, a, r, o = 0) {
          this.#e = s, this.#c = a * i, this.#s = r, this.#a.set([NaN, NaN, NaN, NaN, e, n], 6), this.#n = o, this.#f = __a.#g * i, this.#l = __a.#h * i, this.#u = i, this.#d.push(e, n);
        }
        isEmpty() {
          return isNaN(this.#a[8]);
        }
        #p() {
          const e = this.#a.subarray(4, 6), n = this.#a.subarray(16, 18), [s, i, a, r] = this.#e;
          return [(this.#r + (e[0] - n[0]) / 2 - s) / a, (this.#o + (e[1] - n[1]) / 2 - i) / r, (this.#r + (n[0] - e[0]) / 2 - s) / a, (this.#o + (n[1] - e[1]) / 2 - i) / r];
        }
        add({ x: e, y: n }) {
          this.#r = e, this.#o = n;
          const [s, i, a, r] = this.#e;
          let [o, l, f, c] = this.#a.subarray(8, 12);
          const h = e - f, u = n - c, d = Math.hypot(h, u);
          if (d < this.#l) return false;
          const m = d - this.#f, g = m / d, b = g * h, w = g * u;
          let x = o, y = l;
          o = f, l = c, f += b, c += w, this.#d?.push(e, n);
          const j = -w / m, v = b / m, q = j * this.#c, A = v * this.#c;
          return this.#a.set(this.#a.subarray(2, 8), 0), this.#a.set([f + q, c + A], 4), this.#a.set(this.#a.subarray(14, 18), 12), this.#a.set([f - q, c - A], 16), isNaN(this.#a[6]) ? (this.#i.length === 0 && (this.#a.set([o + q, l + A], 2), this.#i.push(NaN, NaN, NaN, NaN, (o + q - s) / a, (l + A - i) / r), this.#a.set([o - q, l - A], 14), this.#t.push(NaN, NaN, NaN, NaN, (o - q - s) / a, (l - A - i) / r)), this.#a.set([x, y, o, l, f, c], 6), !this.isEmpty()) : (this.#a.set([x, y, o, l, f, c], 6), Math.abs(Math.atan2(y - l, x - o) - Math.atan2(w, b)) < Math.PI / 2 ? ([o, l, f, c] = this.#a.subarray(2, 6), this.#i.push(NaN, NaN, NaN, NaN, ((o + f) / 2 - s) / a, ((l + c) / 2 - i) / r), [o, l, x, y] = this.#a.subarray(14, 18), this.#t.push(NaN, NaN, NaN, NaN, ((x + o) / 2 - s) / a, ((y + l) / 2 - i) / r), true) : ([x, y, o, l, f, c] = this.#a.subarray(0, 6), this.#i.push(((x + 5 * o) / 6 - s) / a, ((y + 5 * l) / 6 - i) / r, ((5 * o + f) / 6 - s) / a, ((5 * l + c) / 6 - i) / r, ((o + f) / 2 - s) / a, ((l + c) / 2 - i) / r), [f, c, o, l, x, y] = this.#a.subarray(12, 18), this.#t.push(((x + 5 * o) / 6 - s) / a, ((y + 5 * l) / 6 - i) / r, ((5 * o + f) / 6 - s) / a, ((5 * l + c) / 6 - i) / r, ((o + f) / 2 - s) / a, ((l + c) / 2 - i) / r), true));
        }
        toSVGPath() {
          if (this.isEmpty()) return "";
          const e = this.#i, n = this.#t;
          if (isNaN(this.#a[6]) && !this.isEmpty()) return this.#b();
          const s = [];
          s.push(`M${e[4]} ${e[5]}`);
          for (let i = 6; i < e.length; i += 6) isNaN(e[i]) ? s.push(`L${e[i + 4]} ${e[i + 5]}`) : s.push(`C${e[i]} ${e[i + 1]} ${e[i + 2]} ${e[i + 3]} ${e[i + 4]} ${e[i + 5]}`);
          this.#x(s);
          for (let i = n.length - 6; i >= 6; i -= 6) isNaN(n[i]) ? s.push(`L${n[i + 4]} ${n[i + 5]}`) : s.push(`C${n[i]} ${n[i + 1]} ${n[i + 2]} ${n[i + 3]} ${n[i + 4]} ${n[i + 5]}`);
          return this.#y(s), s.join(" ");
        }
        #b() {
          const [e, n, s, i] = this.#e, [a, r, o, l] = this.#p();
          return `M${(this.#a[2] - e) / s} ${(this.#a[3] - n) / i} L${(this.#a[4] - e) / s} ${(this.#a[5] - n) / i} L${a} ${r} L${o} ${l} L${(this.#a[16] - e) / s} ${(this.#a[17] - n) / i} L${(this.#a[14] - e) / s} ${(this.#a[15] - n) / i} Z`;
        }
        #y(e) {
          const n = this.#t;
          e.push(`L${n[4]} ${n[5]} Z`);
        }
        #x(e) {
          const [n, s, i, a] = this.#e, r = this.#a.subarray(4, 6), o = this.#a.subarray(16, 18), [l, f, c, h] = this.#p();
          e.push(`L${(r[0] - n) / i} ${(r[1] - s) / a} L${l} ${f} L${c} ${h} L${(o[0] - n) / i} ${(o[1] - s) / a}`);
        }
        newFreeDrawOutline(e, n, s, i, a, r) {
          return new pm(e, n, s, i, a, r);
        }
        getOutlines() {
          const e = this.#i, n = this.#t, s = this.#a, [i, a, r, o] = this.#e, l = new Float32Array((this.#d?.length ?? 0) + 2);
          for (let h = 0, u = l.length - 2; h < u; h += 2) l[h] = (this.#d[h] - i) / r, l[h + 1] = (this.#d[h + 1] - a) / o;
          if (l[l.length - 2] = (this.#r - i) / r, l[l.length - 1] = (this.#o - a) / o, isNaN(s[6]) && !this.isEmpty()) return this.#v(l);
          const f = new Float32Array(this.#i.length + 24 + this.#t.length);
          let c = e.length;
          for (let h = 0; h < c; h += 2) {
            if (isNaN(e[h])) {
              f[h] = f[h + 1] = NaN;
              continue;
            }
            f[h] = e[h], f[h + 1] = e[h + 1];
          }
          c = this.#w(f, c);
          for (let h = n.length - 6; h >= 6; h -= 6) for (let u = 0; u < 6; u += 2) {
            if (isNaN(n[h + u])) {
              f[c] = f[c + 1] = NaN, c += 2;
              continue;
            }
            f[c] = n[h + u], f[c + 1] = n[h + u + 1], c += 2;
          }
          return this.#C(f, c), this.newFreeDrawOutline(f, l, this.#e, this.#u, this.#n, this.#s);
        }
        #v(e) {
          const n = this.#a, [s, i, a, r] = this.#e, [o, l, f, c] = this.#p(), h = new Float32Array(36);
          return h.set([NaN, NaN, NaN, NaN, (n[2] - s) / a, (n[3] - i) / r, NaN, NaN, NaN, NaN, (n[4] - s) / a, (n[5] - i) / r, NaN, NaN, NaN, NaN, o, l, NaN, NaN, NaN, NaN, f, c, NaN, NaN, NaN, NaN, (n[16] - s) / a, (n[17] - i) / r, NaN, NaN, NaN, NaN, (n[14] - s) / a, (n[15] - i) / r], 0), this.newFreeDrawOutline(h, e, this.#e, this.#u, this.#n, this.#s);
        }
        #C(e, n) {
          const s = this.#t;
          return e.set([NaN, NaN, NaN, NaN, s[4], s[5]], n), n += 6;
        }
        #w(e, n) {
          const s = this.#a.subarray(4, 6), i = this.#a.subarray(16, 18), [a, r, o, l] = this.#e, [f, c, h, u] = this.#p();
          return e.set([NaN, NaN, NaN, NaN, (s[0] - a) / o, (s[1] - r) / l, NaN, NaN, NaN, NaN, f, c, NaN, NaN, NaN, NaN, h, u, NaN, NaN, NaN, NaN, (i[0] - a) / o, (i[1] - r) / l], n), n += 24;
        }
      };
      pm = class extends Be {
        static {
          p(this, "FreeDrawOutline");
        }
        #e;
        #t = new Float32Array(4);
        #n;
        #s;
        #i;
        #a;
        #r;
        constructor(e, n, s, i, a, r) {
          super(), this.#r = e, this.#i = n, this.#e = s, this.#a = i, this.#n = a, this.#s = r, this.firstPoint = [NaN, NaN], this.lastPoint = [NaN, NaN], this.#o(r);
          const [o, l, f, c] = this.#t;
          for (let h = 0, u = e.length; h < u; h += 2) e[h] = (e[h] - o) / f, e[h + 1] = (e[h + 1] - l) / c;
          for (let h = 0, u = n.length; h < u; h += 2) n[h] = (n[h] - o) / f, n[h + 1] = (n[h + 1] - l) / c;
        }
        toSVGPath() {
          const e = [`M${this.#r[4]} ${this.#r[5]}`];
          for (let n = 6, s = this.#r.length; n < s; n += 6) {
            if (isNaN(this.#r[n])) {
              e.push(`L${this.#r[n + 4]} ${this.#r[n + 5]}`);
              continue;
            }
            e.push(`C${this.#r[n]} ${this.#r[n + 1]} ${this.#r[n + 2]} ${this.#r[n + 3]} ${this.#r[n + 4]} ${this.#r[n + 5]}`);
          }
          return e.push("Z"), e.join(" ");
        }
        serialize([e, n, s, i], a) {
          const r = s - e, o = i - n;
          let l, f;
          switch (a) {
            case 0:
              l = Be._rescale(this.#r, e, i, r, -o), f = Be._rescale(this.#i, e, i, r, -o);
              break;
            case 90:
              l = Be._rescaleAndSwap(this.#r, e, n, r, o), f = Be._rescaleAndSwap(this.#i, e, n, r, o);
              break;
            case 180:
              l = Be._rescale(this.#r, s, n, -r, o), f = Be._rescale(this.#i, s, n, -r, o);
              break;
            case 270:
              l = Be._rescaleAndSwap(this.#r, s, i, -r, -o), f = Be._rescaleAndSwap(this.#i, s, i, -r, -o);
              break;
          }
          return { outline: Array.from(l), points: [Array.from(f)] };
        }
        #o(e) {
          const n = this.#r;
          let s = n[4], i = n[5];
          const a = [s, i, s, i];
          let r = s, o = i, l = s, f = i;
          const c = e ? Math.max : Math.min, h = new Float32Array(4);
          for (let d = 6, m = n.length; d < m; d += 6) {
            const g = n[d + 4], b = n[d + 5];
            isNaN(n[d]) ? (Ie.pointBoundingBox(g, b, a), o > b ? (r = g, o = b) : o === b && (r = c(r, g)), f < b ? (l = g, f = b) : f === b && (l = c(l, g))) : (h[0] = h[1] = 1 / 0, h[2] = h[3] = -1 / 0, Ie.bezierBoundingBox(s, i, ...n.slice(d, d + 6), h), Ie.rectBoundingBox(h[0], h[1], h[2], h[3], a), o > h[1] ? (r = h[0], o = h[1]) : o === h[1] && (r = c(r, h[0])), f < h[3] ? (l = h[2], f = h[3]) : f === h[3] && (l = c(l, h[2]))), s = g, i = b;
          }
          const u = this.#t;
          u[0] = a[0] - this.#n, u[1] = a[1] - this.#n, u[2] = a[2] - a[0] + 2 * this.#n, u[3] = a[3] - a[1] + 2 * this.#n, this.firstPoint = [r, o], this.lastPoint = [l, f];
        }
        get box() {
          return this.#t;
        }
        newOutliner(e, n, s, i, a, r = 0) {
          return new _a(e, n, s, i, a, r);
        }
        getNewOutline(e, n) {
          const [s, i, a, r] = this.#t, [o, l, f, c] = this.#e, h = a * f, u = r * c, d = s * f + o, m = i * c + l, g = this.newOutliner({ x: this.#i[0] * h + d, y: this.#i[1] * u + m }, this.#e, this.#a, e, this.#s, n ?? this.#n);
          for (let b = 2; b < this.#i.length; b += 2) g.add({ x: this.#i[b] * h + d, y: this.#i[b + 1] * u + m });
          return g.getOutlines();
        }
      };
      wh = class {
        static {
          p(this, "HighlightOutliner");
        }
        #e;
        #t;
        #n;
        #s = [];
        #i = [];
        constructor(e, n = 0, s = 0, i = true) {
          const a = [1 / 0, 1 / 0, -1 / 0, -1 / 0], r = 10 ** -4;
          for (const { x: g, y: b, width: w, height: x } of e) {
            const y = Math.floor((g - n) / r) * r, j = Math.ceil((g + w + n) / r) * r, v = Math.floor((b - n) / r) * r, q = Math.ceil((b + x + n) / r) * r, A = [y, v, q, true], C = [j, v, q, false];
            this.#s.push(A, C), Ie.rectBoundingBox(y, v, j, q, a);
          }
          const o = a[2] - a[0] + 2 * s, l = a[3] - a[1] + 2 * s, f = a[0] - s, c = a[1] - s;
          let h = i ? -1 / 0 : 1 / 0, u = 1 / 0;
          const d = this.#s.at(i ? -1 : -2), m = [d[0], d[2]];
          for (const g of this.#s) {
            const [b, w, x, y] = g;
            !y && i ? w < u ? (u = w, h = b) : w === u && (h = Math.max(h, b)) : y && !i && (w < u ? (u = w, h = b) : w === u && (h = Math.min(h, b))), g[0] = (b - f) / o, g[1] = (w - c) / l, g[2] = (x - c) / l;
          }
          this.#e = new Float32Array([f, c, o, l]), this.#t = [h, u], this.#n = m;
        }
        getOutlines() {
          this.#s.sort((n, s) => n[0] - s[0] || n[1] - s[1] || n[2] - s[2]);
          const e = [];
          for (const n of this.#s) n[3] ? (e.push(...this.#f(n)), this.#o(n)) : (this.#l(n), e.push(...this.#f(n)));
          return this.#a(e);
        }
        #a(e) {
          const n = [], s = /* @__PURE__ */ new Set();
          for (const r of e) {
            const [o, l, f] = r;
            n.push([o, l, r], [o, f, r]);
          }
          n.sort((r, o) => r[1] - o[1] || r[0] - o[0]);
          for (let r = 0, o = n.length; r < o; r += 2) {
            const l = n[r][2], f = n[r + 1][2];
            l.push(f), f.push(l), s.add(l), s.add(f);
          }
          const i = [];
          let a;
          for (; s.size > 0; ) {
            const r = s.values().next().value;
            let [o, l, f, c, h] = r;
            s.delete(r);
            let u = o, d = l;
            for (a = [o, f], i.push(a); ; ) {
              let m;
              if (s.has(c)) m = c;
              else if (s.has(h)) m = h;
              else break;
              s.delete(m), [o, l, f, c, h] = m, u !== o && (a.push(u, d, o, d === l ? l : f), u = o), d = d === l ? f : l;
            }
            a.push(u, d);
          }
          return new iy(i, this.#e, this.#t, this.#n);
        }
        #r(e) {
          const n = this.#i;
          let s = 0, i = n.length - 1;
          for (; s <= i; ) {
            const a = s + i >> 1, r = n[a][0];
            if (r === e) return a;
            r < e ? s = a + 1 : i = a - 1;
          }
          return i + 1;
        }
        #o([, e, n]) {
          const s = this.#r(e);
          this.#i.splice(s, 0, [e, n]);
        }
        #l([, e, n]) {
          const s = this.#r(e);
          for (let i = s; i < this.#i.length; i++) {
            const [a, r] = this.#i[i];
            if (a !== e) break;
            if (a === e && r === n) {
              this.#i.splice(i, 1);
              return;
            }
          }
          for (let i = s - 1; i >= 0; i--) {
            const [a, r] = this.#i[i];
            if (a !== e) break;
            if (a === e && r === n) {
              this.#i.splice(i, 1);
              return;
            }
          }
        }
        #f(e) {
          const [n, s, i] = e, a = [[n, s, i]], r = this.#r(i);
          for (let o = 0; o < r; o++) {
            const [l, f] = this.#i[o];
            for (let c = 0, h = a.length; c < h; c++) {
              const [, u, d] = a[c];
              if (!(f <= u || d <= l)) {
                if (u >= l) {
                  if (d > f) a[c][1] = f;
                  else {
                    if (h === 1) return [];
                    a.splice(c, 1), c--, h--;
                  }
                  continue;
                }
                a[c][2] = l, d > f && a.push([n, f, d]);
              }
            }
          }
          return a;
        }
      };
      iy = class extends Be {
        static {
          p(this, "HighlightOutline");
        }
        #e;
        #t;
        constructor(e, n, s, i) {
          super(), this.#t = e, this.#e = n, this.firstPoint = s, this.lastPoint = i;
        }
        toSVGPath() {
          const e = [];
          for (const n of this.#t) {
            let [s, i] = n;
            e.push(`M${s} ${i}`);
            for (let a = 2; a < n.length; a += 2) {
              const r = n[a], o = n[a + 1];
              r === s ? (e.push(`V${o}`), i = o) : o === i && (e.push(`H${r}`), s = r);
            }
            e.push("Z");
          }
          return e.join(" ");
        }
        serialize([e, n, s, i], a) {
          const r = [], o = s - e, l = i - n;
          for (const f of this.#t) {
            const c = new Array(f.length);
            for (let h = 0; h < f.length; h += 2) c[h] = e + f[h] * o, c[h + 1] = i - f[h + 1] * l;
            r.push(c);
          }
          return r;
        }
        get box() {
          return this.#e;
        }
        get classNamesForOutlining() {
          return ["highlightOutline"];
        }
      };
      xh = class extends _a {
        static {
          p(this, "FreeHighlightOutliner");
        }
        newFreeDrawOutline(e, n, s, i, a, r) {
          return new ay(e, n, s, i, a, r);
        }
      };
      ay = class extends pm {
        static {
          p(this, "FreeHighlightOutline");
        }
        newOutliner(e, n, s, i, a, r = 0) {
          return new xh(e, n, s, i, a, r);
        }
      };
      Jt = class _Jt extends We {
        static {
          p(this, "HighlightEditor");
        }
        #e = null;
        #t = 0;
        #n;
        #s = null;
        #i = null;
        #a = null;
        #r = null;
        #o = 0;
        #l = null;
        #f = null;
        #u = null;
        #c = false;
        #d = null;
        #g = null;
        #m = null;
        #h = "";
        #p;
        #b = "";
        static _defaultColor = null;
        static _defaultOpacity = 1;
        static _defaultThickness = 12;
        static _type = "highlight";
        static _editorType = et.HIGHLIGHT;
        static _freeHighlightId = -1;
        static _freeHighlight = null;
        static _freeHighlightClipId = "";
        static get _keyboardManager() {
          const e = _Jt.prototype;
          return st(this, "_keyboardManager", new Po([[["ArrowLeft", "mac+ArrowLeft"], e._moveCaret, { args: [0] }], [["ArrowRight", "mac+ArrowRight"], e._moveCaret, { args: [1] }], [["ArrowUp", "mac+ArrowUp"], e._moveCaret, { args: [2] }], [["ArrowDown", "mac+ArrowDown"], e._moveCaret, { args: [3] }]]));
        }
        constructor(e) {
          super({ ...e, name: "highlightEditor" }), this.color = e.color || _Jt._defaultColor, this.#p = e.thickness || _Jt._defaultThickness, this.opacity = e.opacity || _Jt._defaultOpacity, this.#n = e.boxes || null, this.#b = e.methodOfCreation || "", this.#h = e.text || "", this._isDraggable = false, this.defaultL10nId = "pdfjs-editor-highlight-editor", e.highlightId > -1 ? (this.#c = true, this.#x(e), this.#j()) : this.#n && (this.#e = e.anchorNode, this.#t = e.anchorOffset, this.#r = e.focusNode, this.#o = e.focusOffset, this.#y(), this.#j(), this.rotate(this.rotation)), this.annotationElementId || this._uiManager.a11yAlert("pdfjs-editor-highlight-added-alert");
        }
        get telemetryInitialData() {
          return { action: "added", type: this.#c ? "free_highlight" : "highlight", color: this._uiManager.getNonHCMColorName(this.color), thickness: this.#p, methodOfCreation: this.#b };
        }
        get telemetryFinalData() {
          return { type: "highlight", color: this._uiManager.getNonHCMColorName(this.color) };
        }
        static computeTelemetryFinalData(e) {
          return { numberOfColors: e.get("color").size };
        }
        #y() {
          const e = new wh(this.#n, 1e-3);
          this.#f = e.getOutlines(), [this.x, this.y, this.width, this.height] = this.#f.box;
          const n = new wh(this.#n, 25e-4, 1e-3, this._uiManager.direction === "ltr");
          this.#a = n.getOutlines();
          const { firstPoint: s } = this.#f;
          this.#d = [(s[0] - this.x) / this.width, (s[1] - this.y) / this.height];
          const { lastPoint: i } = this.#a;
          this.#g = [(i[0] - this.x) / this.width, (i[1] - this.y) / this.height];
        }
        #x({ highlightOutlines: e, highlightId: n, clipPathId: s }) {
          this.#f = e;
          const i = 1.5;
          if (this.#a = e.getNewOutline(this.#p / 2 + i, 25e-4), n >= 0) this.#u = n, this.#s = s, this.parent.drawLayer.finalizeDraw(n, { bbox: e.box, path: { d: e.toSVGPath() } }), this.#m = this.parent.drawLayer.drawOutline({ rootClass: { highlightOutline: true, free: true }, bbox: this.#a.box, path: { d: this.#a.toSVGPath() } }, true);
          else if (this.parent) {
            const h = this.parent.viewport.rotation;
            this.parent.drawLayer.updateProperties(this.#u, { bbox: _Jt.#S(this.#f.box, (h - this.rotation + 360) % 360), path: { d: e.toSVGPath() } }), this.parent.drawLayer.updateProperties(this.#m, { bbox: _Jt.#S(this.#a.box, h), path: { d: this.#a.toSVGPath() } });
          }
          const [a, r, o, l] = e.box;
          switch (this.rotation) {
            case 0:
              this.x = a, this.y = r, this.width = o, this.height = l;
              break;
            case 90: {
              const [h, u] = this.parentDimensions;
              this.x = r, this.y = 1 - a, this.width = o * u / h, this.height = l * h / u;
              break;
            }
            case 180:
              this.x = 1 - a, this.y = 1 - r, this.width = o, this.height = l;
              break;
            case 270: {
              const [h, u] = this.parentDimensions;
              this.x = 1 - r, this.y = a, this.width = o * u / h, this.height = l * h / u;
              break;
            }
          }
          const { firstPoint: f } = e;
          this.#d = [(f[0] - a) / o, (f[1] - r) / l];
          const { lastPoint: c } = this.#a;
          this.#g = [(c[0] - a) / o, (c[1] - r) / l];
        }
        static initialize(e, n) {
          We.initialize(e, n), _Jt._defaultColor ||= n.highlightColors?.values().next().value || "#fff066";
        }
        static updateDefaultParams(e, n) {
          switch (e) {
            case gt.HIGHLIGHT_COLOR:
              _Jt._defaultColor = n;
              break;
            case gt.HIGHLIGHT_THICKNESS:
              _Jt._defaultThickness = n;
              break;
          }
        }
        translateInPage(e, n) {
        }
        get toolbarPosition() {
          return this.#g;
        }
        get commentButtonPosition() {
          return this.#d;
        }
        updateParams(e, n) {
          switch (e) {
            case gt.HIGHLIGHT_COLOR:
              this.#v(n);
              break;
            case gt.HIGHLIGHT_THICKNESS:
              this.#C(n);
              break;
          }
        }
        static get defaultPropertiesToUpdate() {
          return [[gt.HIGHLIGHT_COLOR, _Jt._defaultColor], [gt.HIGHLIGHT_THICKNESS, _Jt._defaultThickness]];
        }
        get propertiesToUpdate() {
          return [[gt.HIGHLIGHT_COLOR, this.color || _Jt._defaultColor], [gt.HIGHLIGHT_THICKNESS, this.#p || _Jt._defaultThickness], [gt.HIGHLIGHT_FREE, this.#c]];
        }
        onUpdatedColor() {
          this.parent?.drawLayer.updateProperties(this.#u, { root: { fill: this.color, "fill-opacity": this.opacity } }), this.#i?.updateColor(this.color), super.onUpdatedColor();
        }
        #v(e) {
          const n = p((a, r) => {
            this.color = a, this.opacity = r, this.onUpdatedColor();
          }, "setColorAndOpacity"), s = this.color, i = this.opacity;
          this.addCommands({ cmd: n.bind(this, e, _Jt._defaultOpacity), undo: n.bind(this, s, i), post: this._uiManager.updateUI.bind(this._uiManager, this), mustExec: true, type: gt.HIGHLIGHT_COLOR, overwriteIfSameType: true, keepUndo: true }), this._reportTelemetry({ action: "color_changed", color: this._uiManager.getNonHCMColorName(e) }, true);
        }
        #C(e) {
          const n = this.#p, s = p((i) => {
            this.#p = i, this.#w(i);
          }, "setThickness");
          this.addCommands({ cmd: s.bind(this, e), undo: s.bind(this, n), post: this._uiManager.updateUI.bind(this._uiManager, this), mustExec: true, type: gt.INK_THICKNESS, overwriteIfSameType: true, keepUndo: true }), this._reportTelemetry({ action: "thickness_changed", thickness: e }, true);
        }
        get toolbarButtons() {
          return this._uiManager.highlightColors ? [["colorPicker", this.#i = new bs({ editor: this })]] : super.toolbarButtons;
        }
        disableEditing() {
          super.disableEditing(), this.div.classList.toggle("disabled", true);
        }
        enableEditing() {
          super.enableEditing(), this.div.classList.toggle("disabled", false);
        }
        fixAndSetPosition() {
          return super.fixAndSetPosition(this.#I());
        }
        getBaseTranslation() {
          return [0, 0];
        }
        getRect(e, n) {
          return super.getRect(e, n, this.#I());
        }
        onceAdded(e) {
          this.annotationElementId || this.parent.addUndoableEditor(this), e && this.div.focus();
        }
        remove() {
          this.#q(), this._reportTelemetry({ action: "deleted" }), super.remove();
        }
        rebuild() {
          this.parent && (super.rebuild(), this.div !== null && (this.#j(), this.isAttachedToDOM || this.parent.add(this)));
        }
        setParent(e) {
          let n = false;
          this.parent && !e ? this.#q() : e && (this.#j(e), n = !this.parent && this.div?.classList.contains("selectedEditor")), super.setParent(e), this.show(this._isVisible), n && this.select();
        }
        #w(e) {
          this.#c && (this.#x({ highlightOutlines: this.#f.getNewOutline(e / 2) }), this.fixAndSetPosition(), this.setDims());
        }
        #q() {
          this.#u === null || !this.parent || (this.parent.drawLayer.remove(this.#u), this.#u = null, this.parent.drawLayer.remove(this.#m), this.#m = null);
        }
        #j(e = this.parent) {
          this.#u === null && ({ id: this.#u, clipPathId: this.#s } = e.drawLayer.draw({ bbox: this.#f.box, root: { viewBox: "0 0 1 1", fill: this.color, "fill-opacity": this.opacity }, rootClass: { highlight: true, free: this.#c }, path: { d: this.#f.toSVGPath() } }, false, true), this.#m = e.drawLayer.drawOutline({ rootClass: { highlightOutline: true, free: this.#c }, bbox: this.#a.box, path: { d: this.#a.toSVGPath() } }, this.#c), this.#l && (this.#l.style.clipPath = this.#s));
        }
        static #S([e, n, s, i], a) {
          switch (a) {
            case 90:
              return [1 - n - i, e, i, s];
            case 180:
              return [1 - e - s, 1 - n - i, s, i];
            case 270:
              return [n, 1 - e - s, i, s];
          }
          return [e, n, s, i];
        }
        rotate(e) {
          const { drawLayer: n } = this.parent;
          let s;
          this.#c ? (e = (e - this.rotation + 360) % 360, s = _Jt.#S(this.#f.box, e)) : s = _Jt.#S([this.x, this.y, this.width, this.height], e), n.updateProperties(this.#u, { bbox: s, root: { "data-main-rotation": e } }), n.updateProperties(this.#m, { bbox: _Jt.#S(this.#a.box, e), root: { "data-main-rotation": e } });
        }
        render() {
          if (this.div) return this.div;
          const e = super.render();
          this.#h && (e.setAttribute("aria-label", this.#h), e.setAttribute("role", "mark")), this.#c ? e.classList.add("free") : this.div.addEventListener("keydown", this.#T.bind(this), { signal: this._uiManager._signal });
          const n = this.#l = document.createElement("div");
          return e.append(n), n.setAttribute("aria-hidden", "true"), n.className = "internal", n.style.clipPath = this.#s, this.setDims(), vp(this, this.#l, ["pointerover", "pointerleave"]), this.enableEditing(), e;
        }
        pointerover() {
          this.isSelected || this.parent?.drawLayer.updateProperties(this.#m, { rootClass: { hovered: true } });
        }
        pointerleave() {
          this.isSelected || this.parent?.drawLayer.updateProperties(this.#m, { rootClass: { hovered: false } });
        }
        #T(e) {
          _Jt._keyboardManager.exec(this, e);
        }
        _moveCaret(e) {
          switch (this.parent.unselect(this), e) {
            case 0:
            case 2:
              this.#E(true);
              break;
            case 1:
            case 3:
              this.#E(false);
              break;
          }
        }
        #E(e) {
          if (!this.#e) return;
          const n = window.getSelection();
          e ? n.setPosition(this.#e, this.#t) : n.setPosition(this.#r, this.#o);
        }
        select() {
          super.select(), this.#m && this.parent?.drawLayer.updateProperties(this.#m, { rootClass: { hovered: false, selected: true } });
        }
        unselect() {
          super.unselect(), this.#m && (this.parent?.drawLayer.updateProperties(this.#m, { rootClass: { selected: false } }), this.#c || this.#E(false));
        }
        get _mustFixPosition() {
          return !this.#c;
        }
        show(e = this._isVisible) {
          super.show(e), this.parent && (this.parent.drawLayer.updateProperties(this.#u, { rootClass: { hidden: !e } }), this.parent.drawLayer.updateProperties(this.#m, { rootClass: { hidden: !e } }));
        }
        #I() {
          return this.#c ? this.rotation : 0;
        }
        #R() {
          if (this.#c) return null;
          const [e, n] = this.pageDimensions, [s, i] = this.pageTranslation, a = this.#n, r = new Float32Array(a.length * 8);
          let o = 0;
          for (const { x: l, y: f, width: c, height: h } of a) {
            const u = l * e + s, d = (1 - f) * n + i;
            r[o] = r[o + 4] = u, r[o + 1] = r[o + 3] = d, r[o + 2] = r[o + 6] = u + c * e, r[o + 5] = r[o + 7] = d - h * n, o += 8;
          }
          return r;
        }
        #F(e) {
          return this.#f.serialize(e, this.#I());
        }
        static startHighlighting(e, n, { target: s, x: i, y: a }) {
          const { x: r, y: o, width: l, height: f } = s.getBoundingClientRect(), c = new AbortController(), h = e.combinedSignal(c), u = p((d) => {
            c.abort(), this.#_(e, d);
          }, "pointerUpCallback");
          window.addEventListener("blur", u, { signal: h }), window.addEventListener("pointerup", u, { signal: h }), window.addEventListener("pointerdown", Nt, { capture: true, passive: false, signal: h }), window.addEventListener("contextmenu", ms, { signal: h }), s.addEventListener("pointermove", this.#B.bind(this, e), { signal: h }), this._freeHighlight = new xh({ x: i, y: a }, [r, o, l, f], e.scale, this._defaultThickness / 2, n, 1e-3), { id: this._freeHighlightId, clipPathId: this._freeHighlightClipId } = e.drawLayer.draw({ bbox: [0, 0, 1, 1], root: { viewBox: "0 0 1 1", fill: this._defaultColor, "fill-opacity": this._defaultOpacity }, rootClass: { highlight: true, free: true }, path: { d: this._freeHighlight.toSVGPath() } }, true, true);
        }
        static #B(e, n) {
          this._freeHighlight.add(n) && e.drawLayer.updateProperties(this._freeHighlightId, { path: { d: this._freeHighlight.toSVGPath() } });
        }
        static #_(e, n) {
          this._freeHighlight.isEmpty() ? e.drawLayer.remove(this._freeHighlightId) : e.createAndAddNewEditor(n, false, { highlightId: this._freeHighlightId, highlightOutlines: this._freeHighlight.getOutlines(), clipPathId: this._freeHighlightClipId, methodOfCreation: "main_toolbar" }), this._freeHighlightId = -1, this._freeHighlight = null, this._freeHighlightClipId = "";
        }
        static async deserialize(e, n, s) {
          let i = null;
          if (e instanceof um) {
            const { data: { quadPoints: g, rect: b, rotation: w, id: x, color: y, opacity: j, popupRef: v, richText: q, contentsObj: A, creationDate: C, modificationDate: S }, parent: { page: { pageNumber: I } } } = e;
            i = e = { annotationType: et.HIGHLIGHT, color: Array.from(y), opacity: j, quadPoints: g, boxes: null, pageIndex: I - 1, rect: b.slice(0), rotation: w, annotationElementId: x, id: x, deleted: false, popupRef: v, richText: q, comment: A?.str || null, creationDate: C, modificationDate: S };
          } else if (e instanceof bh) {
            const { data: { inkLists: g, rect: b, rotation: w, id: x, color: y, borderStyle: { rawWidth: j }, popupRef: v, richText: q, contentsObj: A, creationDate: C, modificationDate: S }, parent: { page: { pageNumber: I } } } = e;
            i = e = { annotationType: et.HIGHLIGHT, color: Array.from(y), thickness: j, inkLists: g, boxes: null, pageIndex: I - 1, rect: b.slice(0), rotation: w, annotationElementId: x, id: x, deleted: false, popupRef: v, richText: q, comment: A?.str || null, creationDate: C, modificationDate: S };
          }
          const { color: a, quadPoints: r, inkLists: o, outlines: l, opacity: f } = e, c = await super.deserialize(e, n, s);
          c.color = Ie.makeHexColor(...a), c.opacity = f || 1, o && (c.#p = e.thickness), c._initialData = i, e.comment && c.setCommentData(e);
          const [h, u] = c.pageDimensions, [d, m] = c.pageTranslation;
          if (r) {
            const g = c.#n = [];
            for (let b = 0; b < r.length; b += 8) g.push({ x: (r[b] - d) / h, y: 1 - (r[b + 1] - m) / u, width: (r[b + 2] - r[b]) / h, height: (r[b + 1] - r[b + 5]) / u });
            c.#y(), c.#j(), c.rotate(c.rotation);
          } else if (o || l) {
            c.#c = true;
            const g = (o || l.points)[0], b = { x: g[0] - d, y: u - (g[1] - m) }, w = new xh(b, [0, 0, h, u], 1, c.#p / 2, true, 1e-3);
            for (let j = 0, v = g.length; j < v; j += 2) b.x = g[j] - d, b.y = u - (g[j + 1] - m), w.add(b);
            const { id: x, clipPathId: y } = n.drawLayer.draw({ bbox: [0, 0, 1, 1], root: { viewBox: "0 0 1 1", fill: c.color, "fill-opacity": c._defaultOpacity }, rootClass: { highlight: true, free: true }, path: { d: w.toSVGPath() } }, true, true);
            c.#x({ highlightOutlines: w.getOutlines(), highlightId: x, clipPathId: y }), c.#j(), c.rotate(c.parentRotation);
          }
          return c;
        }
        serialize(e = false) {
          if (this.isEmpty() || e) return null;
          if (this.deleted) return this.serializeDeleted();
          const n = We._colorManager.convert(this._uiManager.getNonHCMColor(this.color)), s = super.serialize(e);
          return Object.assign(s, { color: n, opacity: this.opacity, thickness: this.#p, quadPoints: this.#R(), outlines: this.#F(s.rect) }), this.addComment(s), this.annotationElementId && !this.#M(s) ? null : (s.id = this.annotationElementId, s);
        }
        #M(e) {
          const { color: n } = this._initialData;
          return this.hasEditedComment || e.color.some((s, i) => s !== n[i]);
        }
        renderAnnotationElement(e) {
          return this.deleted ? (e.hide(), null) : (e.updateEdited({ rect: this.getPDFRect(), popup: this.comment }), null);
        }
        static canCreateNewEmptyEditor() {
          return false;
        }
      };
      mm = class {
        static {
          p(this, "DrawingOptions");
        }
        #e = /* @__PURE__ */ Object.create(null);
        updateProperty(e, n) {
          this[e] = n, this.updateSVGProperty(e, n);
        }
        updateProperties(e) {
          if (e) for (const [n, s] of Object.entries(e)) n.startsWith("_") || this.updateProperty(n, s);
        }
        updateSVGProperty(e, n) {
          this.#e[e] = n;
        }
        toSVGProperties() {
          const e = this.#e;
          return this.#e = /* @__PURE__ */ Object.create(null), { root: e };
        }
        reset() {
          this.#e = /* @__PURE__ */ Object.create(null);
        }
        updateAll(e = this) {
          this.updateProperties(e);
        }
        clone() {
          It("Not implemented");
        }
      };
      At = class _At extends We {
        static {
          p(this, "DrawingEditor");
        }
        #e = null;
        #t;
        _colorPicker = null;
        _drawId = null;
        static _currentDrawId = -1;
        static _currentParent = null;
        static #n = null;
        static #s = null;
        static #i = null;
        static _INNER_MARGIN = 3;
        constructor(e) {
          super(e), this.#t = e.mustBeCommitted || false, this._addOutlines(e);
        }
        onUpdatedColor() {
          this._colorPicker?.update(this.color), super.onUpdatedColor();
        }
        _addOutlines(e) {
          e.drawOutlines && (this.#a(e), this.#l());
        }
        #a({ drawOutlines: e, drawId: n, drawingOptions: s }) {
          this.#e = e, this._drawingOptions ||= s, this.annotationElementId || this._uiManager.a11yAlert(`pdfjs-editor-${this.editorType}-added-alert`), n >= 0 ? (this._drawId = n, this.parent.drawLayer.finalizeDraw(n, e.defaultProperties)) : this._drawId = this.#r(e, this.parent), this.#c(e.box);
        }
        #r(e, n) {
          const { id: s } = n.drawLayer.draw(_At._mergeSVGProperties(this._drawingOptions.toSVGProperties(), e.defaultSVGProperties), false, false);
          return s;
        }
        static _mergeSVGProperties(e, n) {
          const s = new Set(Object.keys(e));
          for (const [i, a] of Object.entries(n)) s.has(i) ? Object.assign(e[i], a) : e[i] = a;
          return e;
        }
        static getDefaultDrawingOptions(e) {
          It("Not implemented");
        }
        static get typesMap() {
          It("Not implemented");
        }
        static get isDrawer() {
          return true;
        }
        static get supportMultipleDrawings() {
          return false;
        }
        static updateDefaultParams(e, n) {
          const s = this.typesMap.get(e);
          s && this._defaultDrawingOptions.updateProperty(s, n), this._currentParent && (_At.#n.updateProperty(s, n), this._currentParent.drawLayer.updateProperties(this._currentDrawId, this._defaultDrawingOptions.toSVGProperties()));
        }
        updateParams(e, n) {
          const s = this.constructor.typesMap.get(e);
          s && this._updateProperty(e, s, n);
        }
        static get defaultPropertiesToUpdate() {
          const e = [], n = this._defaultDrawingOptions;
          for (const [s, i] of this.typesMap) e.push([s, n[i]]);
          return e;
        }
        get propertiesToUpdate() {
          const e = [], { _drawingOptions: n } = this;
          for (const [s, i] of this.constructor.typesMap) e.push([s, n[i]]);
          return e;
        }
        _updateProperty(e, n, s) {
          const i = this._drawingOptions, a = i[n], r = p((o) => {
            i.updateProperty(n, o);
            const l = this.#e.updateProperty(n, o);
            l && this.#c(l), this.parent?.drawLayer.updateProperties(this._drawId, i.toSVGProperties()), e === this.colorType && this.onUpdatedColor();
          }, "setter");
          this.addCommands({ cmd: r.bind(this, s), undo: r.bind(this, a), post: this._uiManager.updateUI.bind(this._uiManager, this), mustExec: true, type: e, overwriteIfSameType: true, keepUndo: true });
        }
        _onResizing() {
          this.parent?.drawLayer.updateProperties(this._drawId, _At._mergeSVGProperties(this.#e.getPathResizingSVGProperties(this.#u()), { bbox: this.#d() }));
        }
        _onResized() {
          this.parent?.drawLayer.updateProperties(this._drawId, _At._mergeSVGProperties(this.#e.getPathResizedSVGProperties(this.#u()), { bbox: this.#d() }));
        }
        _onTranslating(e, n) {
          this.parent?.drawLayer.updateProperties(this._drawId, { bbox: this.#d() });
        }
        _onTranslated() {
          this.parent?.drawLayer.updateProperties(this._drawId, _At._mergeSVGProperties(this.#e.getPathTranslatedSVGProperties(this.#u(), this.parentDimensions), { bbox: this.#d() }));
        }
        _onStartDragging() {
          this.parent?.drawLayer.updateProperties(this._drawId, { rootClass: { moving: true } });
        }
        _onStopDragging() {
          this.parent?.drawLayer.updateProperties(this._drawId, { rootClass: { moving: false } });
        }
        commit() {
          super.commit(), this.disableEditMode(), this.disableEditing();
        }
        disableEditing() {
          super.disableEditing(), this.div.classList.toggle("disabled", true);
        }
        enableEditing() {
          super.enableEditing(), this.div.classList.toggle("disabled", false);
        }
        getBaseTranslation() {
          return [0, 0];
        }
        get isResizable() {
          return true;
        }
        onceAdded(e) {
          this.annotationElementId || this.parent.addUndoableEditor(this), this._isDraggable = true, this.#t && (this.#t = false, this.commit(), this.parent.setSelected(this), e && this.isOnScreen && this.div.focus());
        }
        remove() {
          this.#o(), super.remove();
        }
        rebuild() {
          this.parent && (super.rebuild(), this.div !== null && (this.#l(), this.#c(this.#e.box), this.isAttachedToDOM || this.parent.add(this)));
        }
        setParent(e) {
          let n = false;
          this.parent && !e ? (this._uiManager.removeShouldRescale(this), this.#o()) : e && (this._uiManager.addShouldRescale(this), this.#l(e), n = !this.parent && this.div?.classList.contains("selectedEditor")), super.setParent(e), n && this.select();
        }
        #o() {
          this._drawId === null || !this.parent || (this.parent.drawLayer.remove(this._drawId), this._drawId = null, this._drawingOptions.reset());
        }
        #l(e = this.parent) {
          if (!(this._drawId !== null && this.parent === e)) {
            if (this._drawId !== null) {
              this.parent.drawLayer.updateParent(this._drawId, e.drawLayer);
              return;
            }
            this._drawingOptions.updateAll(), this._drawId = this.#r(this.#e, e);
          }
        }
        #f([e, n, s, i]) {
          const { parentDimensions: [a, r], rotation: o } = this;
          switch (o) {
            case 90:
              return [n, 1 - e, s * (r / a), i * (a / r)];
            case 180:
              return [1 - e, 1 - n, s, i];
            case 270:
              return [1 - n, e, s * (r / a), i * (a / r)];
            default:
              return [e, n, s, i];
          }
        }
        #u() {
          const { x: e, y: n, width: s, height: i, parentDimensions: [a, r], rotation: o } = this;
          switch (o) {
            case 90:
              return [1 - n, e, s * (a / r), i * (r / a)];
            case 180:
              return [1 - e, 1 - n, s, i];
            case 270:
              return [n, 1 - e, s * (a / r), i * (r / a)];
            default:
              return [e, n, s, i];
          }
        }
        #c(e) {
          [this.x, this.y, this.width, this.height] = this.#f(e), this.div && (this.fixAndSetPosition(), this.setDims()), this._onResized();
        }
        #d() {
          const { x: e, y: n, width: s, height: i, rotation: a, parentRotation: r, parentDimensions: [o, l] } = this;
          switch ((a * 4 + r) / 90) {
            case 1:
              return [1 - n - i, e, i, s];
            case 2:
              return [1 - e - s, 1 - n - i, s, i];
            case 3:
              return [n, 1 - e - s, i, s];
            case 4:
              return [e, n - s * (o / l), i * (l / o), s * (o / l)];
            case 5:
              return [1 - n, e, s * (o / l), i * (l / o)];
            case 6:
              return [1 - e - i * (l / o), 1 - n, i * (l / o), s * (o / l)];
            case 7:
              return [n - s * (o / l), 1 - e - i * (l / o), s * (o / l), i * (l / o)];
            case 8:
              return [e - s, n - i, s, i];
            case 9:
              return [1 - n, e - s, i, s];
            case 10:
              return [1 - e, 1 - n, s, i];
            case 11:
              return [n - i, 1 - e, i, s];
            case 12:
              return [e - i * (l / o), n, i * (l / o), s * (o / l)];
            case 13:
              return [1 - n - s * (o / l), e - i * (l / o), s * (o / l), i * (l / o)];
            case 14:
              return [1 - e, 1 - n - s * (o / l), i * (l / o), s * (o / l)];
            case 15:
              return [n, 1 - e, s * (o / l), i * (l / o)];
            default:
              return [e, n, s, i];
          }
        }
        rotate() {
          this.parent && this.parent.drawLayer.updateProperties(this._drawId, _At._mergeSVGProperties({ bbox: this.#d() }, this.#e.updateRotation((this.parentRotation - this.rotation + 360) % 360)));
        }
        onScaleChanging() {
          this.parent && this.#c(this.#e.updateParentDimensions(this.parentDimensions, this.parent.scale));
        }
        static onScaleChangingWhenDrawing() {
        }
        render() {
          if (this.div) return this.div;
          let e, n;
          this._isCopy && (e = this.x, n = this.y);
          const s = super.render();
          s.classList.add("draw");
          const i = document.createElement("div");
          return s.append(i), i.setAttribute("aria-hidden", "true"), i.className = "internal", this.setDims(), this._uiManager.addShouldRescale(this), this.disableEditing(), this._isCopy && this._moveAfterPaste(e, n), s;
        }
        static createDrawerInstance(e, n, s, i, a) {
          It("Not implemented");
        }
        static startDrawing(e, n, s, i) {
          const { target: a, offsetX: r, offsetY: o, pointerId: l, pointerType: f } = i;
          if (St.isInitializedAndDifferentPointerType(f)) return;
          const { viewport: { rotation: c } } = e, { width: h, height: u } = a.getBoundingClientRect(), d = _At.#s = new AbortController(), m = e.combinedSignal(d);
          if (St.setPointer(f, l), window.addEventListener("pointerup", (g) => {
            St.isSamePointerIdOrRemove(g.pointerId) && this._endDraw(g);
          }, { signal: m }), window.addEventListener("pointercancel", (g) => {
            St.isSamePointerIdOrRemove(g.pointerId) && this._currentParent.endDrawingSession();
          }, { signal: m }), window.addEventListener("pointerdown", (g) => {
            St.isSamePointerType(g.pointerType) && (St.initializeAndAddPointerId(g.pointerId), _At.#n.isCancellable() && (_At.#n.removeLastElement(), _At.#n.isEmpty() ? this._currentParent.endDrawingSession(true) : this._endDraw(null)));
          }, { capture: true, passive: false, signal: m }), window.addEventListener("contextmenu", ms, { signal: m }), a.addEventListener("pointermove", this._drawMove.bind(this), { signal: m }), a.addEventListener("touchmove", (g) => {
            St.isSameTimeStamp(g.timeStamp) && Nt(g);
          }, { signal: m }), e.toggleDrawing(), n._editorUndoBar?.hide(), _At.#n) {
            e.drawLayer.updateProperties(this._currentDrawId, _At.#n.startNew(r, o, h, u, c));
            return;
          }
          n.updateUIForDefaultProperties(this), _At.#n = this.createDrawerInstance(r, o, h, u, c), _At.#i = this.getDefaultDrawingOptions(), this._currentParent = e, { id: this._currentDrawId } = e.drawLayer.draw(this._mergeSVGProperties(_At.#i.toSVGProperties(), _At.#n.defaultSVGProperties), true, false);
        }
        static _drawMove(e) {
          if (St.isSameTimeStamp(e.timeStamp), !_At.#n) return;
          const { offsetX: n, offsetY: s, pointerId: i } = e;
          if (St.isSamePointerId(i)) {
            if (St.isUsingMultiplePointers()) {
              this._endDraw(e);
              return;
            }
            this._currentParent.drawLayer.updateProperties(this._currentDrawId, _At.#n.add(n, s)), St.setTimeStamp(e.timeStamp), Nt(e);
          }
        }
        static _cleanup(e) {
          e && (this._currentDrawId = -1, this._currentParent = null, _At.#n = null, _At.#i = null, St.clearTimeStamp()), _At.#s && (_At.#s.abort(), _At.#s = null, St.clearPointerIds());
        }
        static _endDraw(e) {
          const n = this._currentParent;
          if (n) {
            if (n.toggleDrawing(true), this._cleanup(false), e?.target === n.div && n.drawLayer.updateProperties(this._currentDrawId, _At.#n.end(e.offsetX, e.offsetY)), this.supportMultipleDrawings) {
              const s = _At.#n, i = this._currentDrawId, a = s.getLastElement();
              n.addCommands({ cmd: p(() => {
                n.drawLayer.updateProperties(i, s.setLastElement(a));
              }, "cmd"), undo: p(() => {
                n.drawLayer.updateProperties(i, s.removeLastElement());
              }, "undo"), mustExec: false, type: gt.DRAW_STEP });
              return;
            }
            this.endDrawing(false);
          }
        }
        static endDrawing(e) {
          const n = this._currentParent;
          if (!n) return null;
          if (n.toggleDrawing(true), n.cleanUndoStack(gt.DRAW_STEP), !_At.#n.isEmpty()) {
            const { pageDimensions: [s, i], scale: a } = n, r = n.createAndAddNewEditor({ offsetX: 0, offsetY: 0 }, false, { drawId: this._currentDrawId, drawOutlines: _At.#n.getOutlines(s * a, i * a, a, this._INNER_MARGIN), drawingOptions: _At.#i, mustBeCommitted: !e });
            return this._cleanup(true), r;
          }
          return n.drawLayer.remove(this._currentDrawId), this._cleanup(true), null;
        }
        createDrawingOptions(e) {
        }
        static deserializeDraw(e, n, s, i, a, r) {
          It("Not implemented");
        }
        static async deserialize(e, n, s) {
          const { rawDims: { pageWidth: i, pageHeight: a, pageX: r, pageY: o } } = n.viewport, l = this.deserializeDraw(r, o, i, a, this._INNER_MARGIN, e), f = await super.deserialize(e, n, s);
          return f.createDrawingOptions(e), f.#a({ drawOutlines: l }), f.#l(), f.onScaleChanging(), f.rotate(), f;
        }
        serializeDraw(e) {
          const [n, s] = this.pageTranslation, [i, a] = this.pageDimensions;
          return this.#e.serialize([n, s, i, a], e);
        }
        renderAnnotationElement(e) {
          return e.updateEdited({ rect: this.getPDFRect() }), null;
        }
        static canCreateNewEmptyEditor() {
          return false;
        }
      };
      ry = class {
        static {
          p(this, "InkDrawOutliner");
        }
        #e = new Float64Array(6);
        #t;
        #n;
        #s;
        #i;
        #a;
        #r = "";
        #o = 0;
        #l = new No();
        #f;
        #u;
        constructor(e, n, s, i, a, r) {
          this.#f = s, this.#u = i, this.#s = a, this.#i = r, [e, n] = this.#c(e, n);
          const o = this.#t = [NaN, NaN, NaN, NaN, e, n];
          this.#a = [e, n], this.#n = [{ line: o, points: this.#a }], this.#e.set(o, 0);
        }
        updateProperty(e, n) {
          e === "stroke-width" && (this.#i = n);
        }
        #c(e, n) {
          return Be._normalizePoint(e, n, this.#f, this.#u, this.#s);
        }
        isEmpty() {
          return !this.#n || this.#n.length === 0;
        }
        isCancellable() {
          return this.#a.length <= 10;
        }
        add(e, n) {
          [e, n] = this.#c(e, n);
          const [s, i, a, r] = this.#e.subarray(2, 6), o = e - a, l = n - r;
          return Math.hypot(this.#f * o, this.#u * l) <= 2 ? null : (this.#a.push(e, n), isNaN(s) ? (this.#e.set([a, r, e, n], 2), this.#t.push(NaN, NaN, NaN, NaN, e, n), { path: { d: this.toSVGPath() } }) : (isNaN(this.#e[0]) && this.#t.splice(6, 6), this.#e.set([s, i, a, r, e, n], 0), this.#t.push(...Be.createBezierPoints(s, i, a, r, e, n)), { path: { d: this.toSVGPath() } }));
        }
        end(e, n) {
          const s = this.add(e, n);
          return s || (this.#a.length === 2 ? { path: { d: this.toSVGPath() } } : null);
        }
        startNew(e, n, s, i, a) {
          this.#f = s, this.#u = i, this.#s = a, [e, n] = this.#c(e, n);
          const r = this.#t = [NaN, NaN, NaN, NaN, e, n];
          this.#a = [e, n];
          const o = this.#n.at(-1);
          return o && (o.line = new Float32Array(o.line), o.points = new Float32Array(o.points)), this.#n.push({ line: r, points: this.#a }), this.#e.set(r, 0), this.#o = 0, this.toSVGPath(), null;
        }
        getLastElement() {
          return this.#n.at(-1);
        }
        setLastElement(e) {
          return this.#n ? (this.#n.push(e), this.#t = e.line, this.#a = e.points, this.#o = 0, { path: { d: this.toSVGPath() } }) : this.#l.setLastElement(e);
        }
        removeLastElement() {
          if (!this.#n) return this.#l.removeLastElement();
          this.#n.pop(), this.#r = "";
          for (let e = 0, n = this.#n.length; e < n; e++) {
            const { line: s, points: i } = this.#n[e];
            this.#t = s, this.#a = i, this.#o = 0, this.toSVGPath();
          }
          return { path: { d: this.#r } };
        }
        toSVGPath() {
          const e = Be.svgRound(this.#t[4]), n = Be.svgRound(this.#t[5]);
          if (this.#a.length === 2) return this.#r = `${this.#r} M ${e} ${n} Z`, this.#r;
          if (this.#a.length <= 6) {
            const i = this.#r.lastIndexOf("M");
            this.#r = `${this.#r.slice(0, i)} M ${e} ${n}`, this.#o = 6;
          }
          if (this.#a.length === 4) {
            const i = Be.svgRound(this.#t[10]), a = Be.svgRound(this.#t[11]);
            return this.#r = `${this.#r} L ${i} ${a}`, this.#o = 12, this.#r;
          }
          const s = [];
          this.#o === 0 && (s.push(`M ${e} ${n}`), this.#o = 6);
          for (let i = this.#o, a = this.#t.length; i < a; i += 6) {
            const [r, o, l, f, c, h] = this.#t.slice(i, i + 6).map(Be.svgRound);
            s.push(`C${r} ${o} ${l} ${f} ${c} ${h}`);
          }
          return this.#r += s.join(" "), this.#o = this.#t.length, this.#r;
        }
        getOutlines(e, n, s, i) {
          const a = this.#n.at(-1);
          return a.line = new Float32Array(a.line), a.points = new Float32Array(a.points), this.#l.build(this.#n, e, n, s, this.#s, this.#i, i), this.#e = null, this.#t = null, this.#n = null, this.#r = null, this.#l;
        }
        get defaultSVGProperties() {
          return { root: { viewBox: "0 0 10000 10000" }, rootClass: { draw: true }, bbox: [0, 0, 1, 1] };
        }
      };
      No = class extends Be {
        static {
          p(this, "InkDrawOutline");
        }
        #e;
        #t = 0;
        #n;
        #s;
        #i;
        #a;
        #r;
        #o;
        #l;
        build(e, n, s, i, a, r, o) {
          this.#i = n, this.#a = s, this.#r = i, this.#o = a, this.#l = r, this.#n = o ?? 0, this.#s = e, this.#c();
        }
        get thickness() {
          return this.#l;
        }
        setLastElement(e) {
          return this.#s.push(e), { path: { d: this.toSVGPath() } };
        }
        removeLastElement() {
          return this.#s.pop(), { path: { d: this.toSVGPath() } };
        }
        toSVGPath() {
          const e = [];
          for (const { line: n } of this.#s) {
            if (e.push(`M${Be.svgRound(n[4])} ${Be.svgRound(n[5])}`), n.length === 6) {
              e.push("Z");
              continue;
            }
            if (n.length === 12 && isNaN(n[6])) {
              e.push(`L${Be.svgRound(n[10])} ${Be.svgRound(n[11])}`);
              continue;
            }
            for (let s = 6, i = n.length; s < i; s += 6) {
              const [a, r, o, l, f, c] = n.subarray(s, s + 6).map(Be.svgRound);
              e.push(`C${a} ${r} ${o} ${l} ${f} ${c}`);
            }
          }
          return e.join("");
        }
        serialize([e, n, s, i], a) {
          const r = [], o = [], [l, f, c, h] = this.#u();
          let u, d, m, g, b, w, x, y, j;
          switch (this.#o) {
            case 0:
              j = Be._rescale, u = e, d = n + i, m = s, g = -i, b = e + l * s, w = n + (1 - f - h) * i, x = e + (l + c) * s, y = n + (1 - f) * i;
              break;
            case 90:
              j = Be._rescaleAndSwap, u = e, d = n, m = s, g = i, b = e + f * s, w = n + l * i, x = e + (f + h) * s, y = n + (l + c) * i;
              break;
            case 180:
              j = Be._rescale, u = e + s, d = n, m = -s, g = i, b = e + (1 - l - c) * s, w = n + f * i, x = e + (1 - l) * s, y = n + (f + h) * i;
              break;
            case 270:
              j = Be._rescaleAndSwap, u = e + s, d = n + i, m = -s, g = -i, b = e + (1 - f - h) * s, w = n + (1 - l - c) * i, x = e + (1 - f) * s, y = n + (1 - l) * i;
              break;
          }
          for (const { line: v, points: q } of this.#s) r.push(j(v, u, d, m, g, a ? new Array(v.length) : null)), o.push(j(q, u, d, m, g, a ? new Array(q.length) : null));
          return { lines: r, points: o, rect: [b, w, x, y] };
        }
        static deserialize(e, n, s, i, a, { paths: { lines: r, points: o }, rotation: l, thickness: f }) {
          const c = [];
          let h, u, d, m, g;
          switch (l) {
            case 0:
              g = Be._rescale, h = -e / s, u = n / i + 1, d = 1 / s, m = -1 / i;
              break;
            case 90:
              g = Be._rescaleAndSwap, h = -n / i, u = -e / s, d = 1 / i, m = 1 / s;
              break;
            case 180:
              g = Be._rescale, h = e / s + 1, u = -n / i, d = -1 / s, m = 1 / i;
              break;
            case 270:
              g = Be._rescaleAndSwap, h = n / i + 1, u = e / s + 1, d = -1 / i, m = -1 / s;
              break;
          }
          if (!r) {
            r = [];
            for (const w of o) {
              const x = w.length;
              if (x === 2) {
                r.push(new Float32Array([NaN, NaN, NaN, NaN, w[0], w[1]]));
                continue;
              }
              if (x === 4) {
                r.push(new Float32Array([NaN, NaN, NaN, NaN, w[0], w[1], NaN, NaN, NaN, NaN, w[2], w[3]]));
                continue;
              }
              const y = new Float32Array(3 * (x - 2));
              r.push(y);
              let [j, v, q, A] = w.subarray(0, 4);
              y.set([NaN, NaN, NaN, NaN, j, v], 0);
              for (let C = 4; C < x; C += 2) {
                const S = w[C], I = w[C + 1];
                y.set(Be.createBezierPoints(j, v, q, A, S, I), (C - 2) * 3), [j, v, q, A] = [q, A, S, I];
              }
            }
          }
          for (let w = 0, x = r.length; w < x; w++) c.push({ line: g(r[w].map((y) => y ?? NaN), h, u, d, m), points: g(o[w].map((y) => y ?? NaN), h, u, d, m) });
          const b = new this.prototype.constructor();
          return b.build(c, s, i, 1, l, f, a), b;
        }
        #f(e = this.#l) {
          const n = this.#n + e / 2 * this.#r;
          return this.#o % 180 === 0 ? [n / this.#i, n / this.#a] : [n / this.#a, n / this.#i];
        }
        #u() {
          const [e, n, s, i] = this.#e, [a, r] = this.#f(0);
          return [e + a, n + r, s - 2 * a, i - 2 * r];
        }
        #c() {
          const e = this.#e = new Float32Array([1 / 0, 1 / 0, -1 / 0, -1 / 0]);
          for (const { line: i } of this.#s) {
            if (i.length <= 12) {
              for (let o = 4, l = i.length; o < l; o += 6) Ie.pointBoundingBox(i[o], i[o + 1], e);
              continue;
            }
            let a = i[4], r = i[5];
            for (let o = 6, l = i.length; o < l; o += 6) {
              const [f, c, h, u, d, m] = i.subarray(o, o + 6);
              Ie.bezierBoundingBox(a, r, f, c, h, u, d, m, e), a = d, r = m;
            }
          }
          const [n, s] = this.#f();
          e[0] = hn(e[0] - n, 0, 1), e[1] = hn(e[1] - s, 0, 1), e[2] = hn(e[2] + n, 0, 1), e[3] = hn(e[3] + s, 0, 1), e[2] -= e[0], e[3] -= e[1];
        }
        get box() {
          return this.#e;
        }
        updateProperty(e, n) {
          return e === "stroke-width" ? this.#d(n) : null;
        }
        #d(e) {
          const [n, s] = this.#f();
          this.#l = e;
          const [i, a] = this.#f(), [r, o] = [i - n, a - s], l = this.#e;
          return l[0] -= r, l[1] -= o, l[2] += 2 * r, l[3] += 2 * o, l;
        }
        updateParentDimensions([e, n], s) {
          const [i, a] = this.#f();
          this.#i = e, this.#a = n, this.#r = s;
          const [r, o] = this.#f(), l = r - i, f = o - a, c = this.#e;
          return c[0] -= l, c[1] -= f, c[2] += 2 * l, c[3] += 2 * f, c;
        }
        updateRotation(e) {
          return this.#t = e, { path: { transform: this.rotationTransform } };
        }
        get viewBox() {
          return this.#e.map(Be.svgRound).join(" ");
        }
        get defaultProperties() {
          const [e, n] = this.#e;
          return { root: { viewBox: this.viewBox }, path: { "transform-origin": `${Be.svgRound(e)} ${Be.svgRound(n)}` } };
        }
        get rotationTransform() {
          const [, , e, n] = this.#e;
          let s = 0, i = 0, a = 0, r = 0, o = 0, l = 0;
          switch (this.#t) {
            case 90:
              i = n / e, a = -e / n, o = e;
              break;
            case 180:
              s = -1, r = -1, o = e, l = n;
              break;
            case 270:
              i = -n / e, a = e / n, l = n;
              break;
            default:
              return "";
          }
          return `matrix(${s} ${i} ${a} ${r} ${Be.svgRound(o)} ${Be.svgRound(l)})`;
        }
        getPathResizingSVGProperties([e, n, s, i]) {
          const [a, r] = this.#f(), [o, l, f, c] = this.#e;
          if (Math.abs(f - a) <= Be.PRECISION || Math.abs(c - r) <= Be.PRECISION) {
            const g = e + s / 2 - (o + f / 2), b = n + i / 2 - (l + c / 2);
            return { path: { "transform-origin": `${Be.svgRound(e)} ${Be.svgRound(n)}`, transform: `${this.rotationTransform} translate(${g} ${b})` } };
          }
          const h = (s - 2 * a) / (f - 2 * a), u = (i - 2 * r) / (c - 2 * r), d = f / s, m = c / i;
          return { path: { "transform-origin": `${Be.svgRound(o)} ${Be.svgRound(l)}`, transform: `${this.rotationTransform} scale(${d} ${m}) translate(${Be.svgRound(a)} ${Be.svgRound(r)}) scale(${h} ${u}) translate(${Be.svgRound(-a)} ${Be.svgRound(-r)})` } };
        }
        getPathResizedSVGProperties([e, n, s, i]) {
          const [a, r] = this.#f(), o = this.#e, [l, f, c, h] = o;
          if (o[0] = e, o[1] = n, o[2] = s, o[3] = i, Math.abs(c - a) <= Be.PRECISION || Math.abs(h - r) <= Be.PRECISION) {
            const b = e + s / 2 - (l + c / 2), w = n + i / 2 - (f + h / 2);
            for (const { line: x, points: y } of this.#s) Be._translate(x, b, w, x), Be._translate(y, b, w, y);
            return { root: { viewBox: this.viewBox }, path: { "transform-origin": `${Be.svgRound(e)} ${Be.svgRound(n)}`, transform: this.rotationTransform || null, d: this.toSVGPath() } };
          }
          const u = (s - 2 * a) / (c - 2 * a), d = (i - 2 * r) / (h - 2 * r), m = -u * (l + a) + e + a, g = -d * (f + r) + n + r;
          if (u !== 1 || d !== 1 || m !== 0 || g !== 0) for (const { line: b, points: w } of this.#s) Be._rescale(b, m, g, u, d, b), Be._rescale(w, m, g, u, d, w);
          return { root: { viewBox: this.viewBox }, path: { "transform-origin": `${Be.svgRound(e)} ${Be.svgRound(n)}`, transform: this.rotationTransform || null, d: this.toSVGPath() } };
        }
        getPathTranslatedSVGProperties([e, n], s) {
          const [i, a] = s, r = this.#e, o = e - r[0], l = n - r[1];
          if (this.#i === i && this.#a === a) for (const { line: f, points: c } of this.#s) Be._translate(f, o, l, f), Be._translate(c, o, l, c);
          else {
            const f = this.#i / i, c = this.#a / a;
            this.#i = i, this.#a = a;
            for (const { line: h, points: u } of this.#s) Be._rescale(h, o, l, f, c, h), Be._rescale(u, o, l, f, c, u);
            r[2] *= f, r[3] *= c;
          }
          return r[0] = e, r[1] = n, { root: { viewBox: this.viewBox }, path: { d: this.toSVGPath(), "transform-origin": `${Be.svgRound(e)} ${Be.svgRound(n)}` } };
        }
        get defaultSVGProperties() {
          const e = this.#e;
          return { root: { viewBox: this.viewBox }, rootClass: { draw: true }, path: { d: this.toSVGPath(), "transform-origin": `${Be.svgRound(e[0])} ${Be.svgRound(e[1])}`, transform: this.rotationTransform || null }, bbox: e };
        }
      };
      ef = class _ef extends mm {
        static {
          p(this, "InkDrawingOptions");
        }
        constructor(e) {
          super(), this._viewParameters = e, super.updateProperties({ fill: "none", stroke: We._defaultLineColor, "stroke-opacity": 1, "stroke-width": 1, "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-miterlimit": 10 });
        }
        updateSVGProperty(e, n) {
          e === "stroke-width" && (n ??= this["stroke-width"], n *= this._viewParameters.realScale), super.updateSVGProperty(e, n);
        }
        clone() {
          const e = new _ef(this._viewParameters);
          return e.updateAll(this), e;
        }
      };
      Th = class _Th extends At {
        static {
          p(this, "InkEditor");
        }
        static _type = "ink";
        static _editorType = et.INK;
        static _defaultDrawingOptions = null;
        constructor(e) {
          super({ ...e, name: "inkEditor" }), this._willKeepAspectRatio = true, this.defaultL10nId = "pdfjs-editor-ink-editor";
        }
        static initialize(e, n) {
          We.initialize(e, n), this._defaultDrawingOptions = new ef(n.viewParameters);
        }
        static getDefaultDrawingOptions(e) {
          const n = this._defaultDrawingOptions.clone();
          return n.updateProperties(e), n;
        }
        static get supportMultipleDrawings() {
          return true;
        }
        static get typesMap() {
          return st(this, "typesMap", /* @__PURE__ */ new Map([[gt.INK_THICKNESS, "stroke-width"], [gt.INK_COLOR, "stroke"], [gt.INK_OPACITY, "stroke-opacity"]]));
        }
        static createDrawerInstance(e, n, s, i, a) {
          return new ry(e, n, s, i, a, this._defaultDrawingOptions["stroke-width"]);
        }
        static deserializeDraw(e, n, s, i, a, r) {
          return No.deserialize(e, n, s, i, a, r);
        }
        static async deserialize(e, n, s) {
          let i = null;
          if (e instanceof bh) {
            const { data: { inkLists: r, rect: o, rotation: l, id: f, color: c, opacity: h, borderStyle: { rawWidth: u }, popupRef: d, richText: m, contentsObj: g, creationDate: b, modificationDate: w }, parent: { page: { pageNumber: x } } } = e;
            i = e = { annotationType: et.INK, color: Array.from(c), thickness: u, opacity: h, paths: { points: r }, boxes: null, pageIndex: x - 1, rect: o.slice(0), rotation: l, annotationElementId: f, id: f, deleted: false, popupRef: d, richText: m, comment: g?.str || null, creationDate: b, modificationDate: w };
          }
          const a = await super.deserialize(e, n, s);
          return a._initialData = i, e.comment && a.setCommentData(e), a;
        }
        get toolbarButtons() {
          return this._colorPicker ||= new sl(this), [["colorPicker", this._colorPicker]];
        }
        get colorType() {
          return gt.INK_COLOR;
        }
        get color() {
          return this._drawingOptions.stroke;
        }
        get opacity() {
          return this._drawingOptions["stroke-opacity"];
        }
        onScaleChanging() {
          if (!this.parent) return;
          super.onScaleChanging();
          const { _drawId: e, _drawingOptions: n, parent: s } = this;
          n.updateSVGProperty("stroke-width"), s.drawLayer.updateProperties(e, n.toSVGProperties());
        }
        static onScaleChangingWhenDrawing() {
          const e = this._currentParent;
          e && (super.onScaleChangingWhenDrawing(), this._defaultDrawingOptions.updateSVGProperty("stroke-width"), e.drawLayer.updateProperties(this._currentDrawId, this._defaultDrawingOptions.toSVGProperties()));
        }
        createDrawingOptions({ color: e, thickness: n, opacity: s }) {
          this._drawingOptions = _Th.getDefaultDrawingOptions({ stroke: Ie.makeHexColor(...e), "stroke-width": n, "stroke-opacity": s });
        }
        serialize(e = false) {
          if (this.isEmpty()) return null;
          if (this.deleted) return this.serializeDeleted();
          const { lines: n, points: s } = this.serializeDraw(e), { _drawingOptions: { stroke: i, "stroke-opacity": a, "stroke-width": r } } = this, o = Object.assign(super.serialize(e), { color: We._colorManager.convert(i), opacity: a, thickness: r, paths: { lines: n, points: s } });
          return this.addComment(o), e ? (o.isCopy = true, o) : this.annotationElementId && !this.#e(o) ? null : (o.id = this.annotationElementId, o);
        }
        #e(e) {
          const { color: n, thickness: s, opacity: i, pageIndex: a } = this._initialData;
          return this.hasEditedComment || this._hasBeenMoved || this._hasBeenResized || e.color.some((r, o) => r !== n[o]) || e.thickness !== s || e.opacity !== i || e.pageIndex !== a;
        }
        renderAnnotationElement(e) {
          if (this.deleted) return e.hide(), null;
          const { points: n, rect: s } = this.serializeDraw(false);
          return e.updateEdited({ rect: s, thickness: this._drawingOptions["stroke-width"], points: n, popup: this.comment }), null;
        }
      };
      kh = class extends No {
        static {
          p(this, "ContourDrawOutline");
        }
        toSVGPath() {
          let e = super.toSVGPath();
          return e.endsWith("Z") || (e += "Z"), e;
        }
      };
      H0 = 8;
      zo = 3;
      Ra = class {
        static {
          p(this, "SignatureExtractor");
        }
        static #e = { maxDim: 512, sigmaSFactor: 0.02, sigmaR: 25, kernelSize: 16 };
        static #t(e, n, s, i) {
          return s -= e, i -= n, s === 0 ? i > 0 ? 0 : 4 : s === 1 ? i + 6 : 2 - i;
        }
        static #n = new Int32Array([0, 1, -1, 1, -1, 0, -1, -1, 0, -1, 1, -1, 1, 0, 1, 1]);
        static #s(e, n, s, i, a, r, o) {
          const l = this.#t(s, i, a, r);
          for (let f = 0; f < 8; f++) {
            const c = (-f + l - o + 16) % 8, h = this.#n[2 * c], u = this.#n[2 * c + 1];
            if (e[(s + h) * n + (i + u)] !== 0) return c;
          }
          return -1;
        }
        static #i(e, n, s, i, a, r, o) {
          const l = this.#t(s, i, a, r);
          for (let f = 0; f < 8; f++) {
            const c = (f + l + o + 16) % 8, h = this.#n[2 * c], u = this.#n[2 * c + 1];
            if (e[(s + h) * n + (i + u)] !== 0) return c;
          }
          return -1;
        }
        static #a(e, n, s, i) {
          const a = e.length, r = new Int32Array(a);
          for (let c = 0; c < a; c++) r[c] = e[c] <= i ? 1 : 0;
          for (let c = 1; c < s - 1; c++) r[c * n] = r[c * n + n - 1] = 0;
          for (let c = 0; c < n; c++) r[c] = r[n * s - 1 - c] = 0;
          let o = 1, l;
          const f = [];
          for (let c = 1; c < s - 1; c++) {
            l = 1;
            for (let h = 1; h < n - 1; h++) {
              const u = c * n + h, d = r[u];
              if (d === 0) continue;
              let m = c, g = h;
              if (d === 1 && r[u - 1] === 0) o += 1, g -= 1;
              else if (d >= 1 && r[u + 1] === 0) o += 1, g += 1, d > 1 && (l = d);
              else {
                d !== 1 && (l = Math.abs(d));
                continue;
              }
              const b = [h, c], w = g === h + 1, x = { isHole: w, points: b, id: o, parent: 0 };
              f.push(x);
              let y;
              for (const T of f) if (T.id === l) {
                y = T;
                break;
              }
              y ? y.isHole ? x.parent = w ? y.parent : l : x.parent = w ? l : y.parent : x.parent = w ? l : 0;
              const j = this.#s(r, n, c, h, m, g, 0);
              if (j === -1) {
                r[u] = -o, r[u] !== 1 && (l = Math.abs(r[u]));
                continue;
              }
              let v = this.#n[2 * j], q = this.#n[2 * j + 1];
              const A = c + v, C = h + q;
              m = A, g = C;
              let S = c, I = h;
              for (; ; ) {
                const T = this.#i(r, n, S, I, m, g, 1);
                v = this.#n[2 * T], q = this.#n[2 * T + 1];
                const P = S + v, H = I + q;
                b.push(H, P);
                const G = S * n + I;
                if (r[G + 1] === 0 ? r[G] = -o : r[G] === 1 && (r[G] = o), P === c && H === h && S === A && I === C) {
                  r[u] !== 1 && (l = Math.abs(r[u]));
                  break;
                } else m = S, g = I, S = P, I = H;
              }
            }
          }
          return f;
        }
        static #r(e, n, s, i) {
          if (s - n <= 4) {
            for (let A = n; A < s - 2; A += 2) i.push(e[A], e[A + 1]);
            return;
          }
          const a = e[n], r = e[n + 1], o = e[s - 4] - a, l = e[s - 3] - r, f = Math.hypot(o, l), c = o / f, h = l / f, u = c * r - h * a, d = l / o, m = 1 / f, g = Math.atan(d), b = Math.cos(g), w = Math.sin(g), x = m * (Math.abs(b) + Math.abs(w)), y = m * (1 - x + x ** 2), j = Math.max(Math.atan(Math.abs(w + b) * y), Math.atan(Math.abs(w - b) * y));
          let v = 0, q = n;
          for (let A = n + 2; A < s - 2; A += 2) {
            const C = Math.abs(u - c * e[A + 1] + h * e[A]);
            C > v && (q = A, v = C);
          }
          v > (f * j) ** 2 ? (this.#r(e, n, q + 2, i), this.#r(e, q, s, i)) : i.push(a, r);
        }
        static #o(e) {
          const n = [], s = e.length;
          return this.#r(e, 0, s, n), n.push(e[s - 2], e[s - 1]), n.length <= 4 ? null : n;
        }
        static #l(e, n, s, i, a, r) {
          const o = new Float32Array(r ** 2), l = -2 * i ** 2, f = r >> 1;
          for (let g = 0; g < r; g++) {
            const b = (g - f) ** 2;
            for (let w = 0; w < r; w++) o[g * r + w] = Math.exp((b + (w - f) ** 2) / l);
          }
          const c = new Float32Array(256), h = -2 * a ** 2;
          for (let g = 0; g < 256; g++) c[g] = Math.exp(g ** 2 / h);
          const u = e.length, d = new Uint8Array(u), m = new Uint32Array(256);
          for (let g = 0; g < s; g++) for (let b = 0; b < n; b++) {
            const w = g * n + b, x = e[w];
            let y = 0, j = 0;
            for (let q = 0; q < r; q++) {
              const A = g + q - f;
              if (!(A < 0 || A >= s)) for (let C = 0; C < r; C++) {
                const S = b + C - f;
                if (S < 0 || S >= n) continue;
                const I = e[A * n + S], T = o[q * r + C] * c[Math.abs(I - x)];
                y += I * T, j += T;
              }
            }
            const v = d[w] = Math.round(y / j);
            m[v]++;
          }
          return [d, m];
        }
        static #f(e) {
          const n = new Uint32Array(256);
          for (const s of e) n[s]++;
          return n;
        }
        static #u(e) {
          const n = e.length, s = new Uint8ClampedArray(n >> 2);
          let i = -1 / 0, a = 1 / 0;
          for (let o = 0, l = s.length; o < l; o++) {
            const f = s[o] = e[o << 2];
            i = Math.max(i, f), a = Math.min(a, f);
          }
          const r = 255 / (i - a);
          for (let o = 0, l = s.length; o < l; o++) s[o] = (s[o] - a) * r;
          return s;
        }
        static #c(e) {
          let n, s = -1 / 0, i = -1 / 0;
          const a = e.findIndex((l) => l !== 0);
          let r = a, o = a;
          for (n = a; n < 256; n++) {
            const l = e[n];
            l > s && (n - r > i && (i = n - r, o = n - 1), s = l, r = n);
          }
          for (n = o - 1; n >= 0 && !(e[n] > e[n + 1]); n--) ;
          return n;
        }
        static #d(e) {
          const n = e, { width: s, height: i } = e, { maxDim: a } = this.#e;
          let r = s, o = i;
          if (s > a || i > a) {
            let u = s, d = i, m = Math.log2(Math.max(s, i) / a);
            const g = Math.floor(m);
            m = m === g ? g - 1 : g;
            for (let w = 0; w < m; w++) {
              r = Math.ceil(u / 2), o = Math.ceil(d / 2);
              const x = new OffscreenCanvas(r, o);
              x.getContext("2d").drawImage(e, 0, 0, u, d, 0, 0, r, o), u = r, d = o, e !== n && e.close(), e = x.transferToImageBitmap();
            }
            const b = Math.min(a / r, a / o);
            r = Math.round(r * b), o = Math.round(o * b);
          }
          const f = new OffscreenCanvas(r, o).getContext("2d", { willReadFrequently: true });
          f.fillStyle = "white", f.fillRect(0, 0, r, o), f.filter = "grayscale(1)", f.drawImage(e, 0, 0, e.width, e.height, 0, 0, r, o);
          const c = f.getImageData(0, 0, r, o).data;
          return [this.#u(c), r, o];
        }
        static extractContoursFromText(e, { fontFamily: n, fontStyle: s, fontWeight: i }, a, r, o, l) {
          let f = new OffscreenCanvas(1, 1), c = f.getContext("2d", { alpha: false });
          const h = 200, u = c.font = `${s} ${i} ${h}px ${n}`, { actualBoundingBoxLeft: d, actualBoundingBoxRight: m, actualBoundingBoxAscent: g, actualBoundingBoxDescent: b, fontBoundingBoxAscent: w, fontBoundingBoxDescent: x, width: y } = c.measureText(e), j = 1.5, v = Math.ceil(Math.max(Math.abs(d) + Math.abs(m) || 0, y) * j), q = Math.ceil(Math.max(Math.abs(g) + Math.abs(b) || h, Math.abs(w) + Math.abs(x) || h) * j);
          f = new OffscreenCanvas(v, q), c = f.getContext("2d", { alpha: true, willReadFrequently: true }), c.font = u, c.filter = "grayscale(1)", c.fillStyle = "white", c.fillRect(0, 0, v, q), c.fillStyle = "black", c.fillText(e, v * (j - 1) / 2, q * (3 - j) / 2);
          const A = this.#u(c.getImageData(0, 0, v, q).data), C = this.#f(A), S = this.#c(C), I = this.#a(A, v, q, S);
          return this.processDrawnLines({ lines: { curves: I, width: v, height: q }, pageWidth: a, pageHeight: r, rotation: o, innerMargin: l, mustSmooth: true, areContours: true });
        }
        static process(e, n, s, i, a) {
          const [r, o, l] = this.#d(e), [f, c] = this.#l(r, o, l, Math.hypot(o, l) * this.#e.sigmaSFactor, this.#e.sigmaR, this.#e.kernelSize), h = this.#c(c), u = this.#a(f, o, l, h);
          return this.processDrawnLines({ lines: { curves: u, width: o, height: l }, pageWidth: n, pageHeight: s, rotation: i, innerMargin: a, mustSmooth: true, areContours: true });
        }
        static processDrawnLines({ lines: e, pageWidth: n, pageHeight: s, rotation: i, innerMargin: a, mustSmooth: r, areContours: o }) {
          i % 180 !== 0 && ([n, s] = [s, n]);
          const { curves: l, width: f, height: c } = e, h = e.thickness ?? 0, u = [], d = Math.min(n / f, s / c), m = d / n, g = d / s, b = [];
          for (const { points: x } of l) {
            const y = r ? this.#o(x) : x;
            if (!y) continue;
            b.push(y);
            const j = y.length, v = new Float32Array(j), q = new Float32Array(3 * (j === 2 ? 2 : j - 2));
            if (u.push({ line: q, points: v }), j === 2) {
              v[0] = y[0] * m, v[1] = y[1] * g, q.set([NaN, NaN, NaN, NaN, v[0], v[1]], 0);
              continue;
            }
            let [A, C, S, I] = y;
            A *= m, C *= g, S *= m, I *= g, v.set([A, C, S, I], 0), q.set([NaN, NaN, NaN, NaN, A, C], 0);
            for (let T = 4; T < j; T += 2) {
              const P = v[T] = y[T] * m, H = v[T + 1] = y[T + 1] * g;
              q.set(Be.createBezierPoints(A, C, S, I, P, H), (T - 2) * 3), [A, C, S, I] = [S, I, P, H];
            }
          }
          if (u.length === 0) return null;
          const w = o ? new kh() : new No();
          return w.build(u, n, s, 1, i, o ? 0 : h, a), { outline: w, newCurves: b, areContours: o, thickness: h, width: f, height: c };
        }
        static async compressSignature({ outlines: e, areContours: n, thickness: s, width: i, height: a }) {
          let r = 1 / 0, o = -1 / 0, l = 0;
          for (const x of e) {
            l += x.length;
            for (let y = 2, j = x.length; y < j; y++) {
              const v = x[y] - x[y - 2];
              r = Math.min(r, v), o = Math.max(o, v);
            }
          }
          let f;
          r >= -128 && o <= 127 ? f = Int8Array : r >= -32768 && o <= 32767 ? f = Int16Array : f = Int32Array;
          const c = e.length, h = H0 + zo * c, u = new Uint32Array(h);
          let d = 0;
          u[d++] = h * Uint32Array.BYTES_PER_ELEMENT + (l - 2 * c) * f.BYTES_PER_ELEMENT, u[d++] = 0, u[d++] = i, u[d++] = a, u[d++] = n ? 0 : 1, u[d++] = Math.max(0, Math.floor(s ?? 0)), u[d++] = c, u[d++] = f.BYTES_PER_ELEMENT;
          for (const x of e) u[d++] = x.length - 2, u[d++] = x[0], u[d++] = x[1];
          const m = new CompressionStream("deflate-raw"), g = m.writable.getWriter();
          await g.ready, g.write(u);
          const b = f.prototype.constructor;
          for (const x of e) {
            const y = new b(x.length - 2);
            for (let j = 2, v = x.length; j < v; j++) y[j - 2] = x[j] - x[j - 2];
            g.write(y);
          }
          return g.close(), (await new Response(m.readable).bytes()).toBase64();
        }
        static async decompressSignature(e) {
          try {
            const n = Uint8Array.fromBase64(e), { readable: s, writable: i } = new DecompressionStream("deflate-raw"), a = i.getWriter();
            await a.ready, a.write(n).then(async () => {
              await a.ready, await a.close();
            }).catch(() => {
            });
            let r = null, o = 0;
            for await (const y of s) r ||= new Uint8Array(new Uint32Array(y.buffer, 0, 4)[0]), r.set(y, o), o += y.length;
            const l = new Uint32Array(r.buffer, 0, r.length >> 2), f = l[1];
            if (f !== 0) throw new Error(`Invalid version: ${f}`);
            const c = l[2], h = l[3], u = l[4] === 0, d = l[5], m = l[6], g = l[7], b = [], w = (H0 + zo * m) * Uint32Array.BYTES_PER_ELEMENT;
            let x;
            switch (g) {
              case Int8Array.BYTES_PER_ELEMENT:
                x = new Int8Array(r.buffer, w);
                break;
              case Int16Array.BYTES_PER_ELEMENT:
                x = new Int16Array(r.buffer, w);
                break;
              case Int32Array.BYTES_PER_ELEMENT:
                x = new Int32Array(r.buffer, w);
                break;
            }
            o = 0;
            for (let y = 0; y < m; y++) {
              const j = l[zo * y + H0], v = new Float32Array(j + 2);
              b.push(v);
              for (let q = 0; q < zo - 1; q++) v[q] = l[zo * y + H0 + q + 1];
              for (let q = 0; q < j; q++) v[q + 2] = v[q] + x[o++];
            }
            return { areContours: u, thickness: d, outlines: b, width: c, height: h };
          } catch (n) {
            return at(`decompressSignature: ${n}`), null;
          }
        }
      };
      Eh = class _Eh extends mm {
        static {
          p(this, "SignatureOptions");
        }
        constructor() {
          super(), super.updateProperties({ fill: We._defaultLineColor, "stroke-width": 0 });
        }
        clone() {
          const e = new _Eh();
          return e.updateAll(this), e;
        }
      };
      Fh = class _Fh extends ef {
        static {
          p(this, "DrawnSignatureOptions");
        }
        constructor(e) {
          super(e), super.updateProperties({ stroke: We._defaultLineColor, "stroke-width": 1 });
        }
        clone() {
          const e = new _Fh(this._viewParameters);
          return e.updateAll(this), e;
        }
      };
      ai = class _ai extends At {
        static {
          p(this, "SignatureEditor");
        }
        #e = false;
        #t = null;
        #n = null;
        #s = null;
        static _type = "signature";
        static _editorType = et.SIGNATURE;
        static _defaultDrawingOptions = null;
        constructor(e) {
          super({ ...e, mustBeCommitted: true, name: "signatureEditor" }), this._willKeepAspectRatio = true, this.#n = e.signatureData || null, this.#t = null, this.defaultL10nId = "pdfjs-editor-signature-editor1";
        }
        static initialize(e, n) {
          We.initialize(e, n), this._defaultDrawingOptions = new Eh(), this._defaultDrawnSignatureOptions = new Fh(n.viewParameters);
        }
        static getDefaultDrawingOptions(e) {
          const n = this._defaultDrawingOptions.clone();
          return n.updateProperties(e), n;
        }
        static get supportMultipleDrawings() {
          return false;
        }
        static get typesMap() {
          return st(this, "typesMap", /* @__PURE__ */ new Map());
        }
        static get isDrawer() {
          return false;
        }
        get telemetryFinalData() {
          return { type: "signature", hasDescription: !!this.#t };
        }
        static computeTelemetryFinalData(e) {
          const n = e.get("hasDescription");
          return { hasAltText: n.get(true) ?? 0, hasNoAltText: n.get(false) ?? 0 };
        }
        get isResizable() {
          return true;
        }
        onScaleChanging() {
          this._drawId !== null && super.onScaleChanging();
        }
        render() {
          if (this.div) return this.div;
          let e, n;
          const { _isCopy: s } = this;
          if (s && (this._isCopy = false, e = this.x, n = this.y), super.render(), this._drawId === null) if (this.#n) {
            const { lines: i, mustSmooth: a, areContours: r, description: o, uuid: l, heightInPage: f } = this.#n, { rawDims: { pageWidth: c, pageHeight: h }, rotation: u } = this.parent.viewport, d = Ra.processDrawnLines({ lines: i, pageWidth: c, pageHeight: h, rotation: u, innerMargin: _ai._INNER_MARGIN, mustSmooth: a, areContours: r });
            this.addSignature(d, f, o, l);
          } else this.div.setAttribute("data-l10n-args", JSON.stringify({ description: "" })), this.div.hidden = true, this._uiManager.getSignature(this);
          else this.div.setAttribute("data-l10n-args", JSON.stringify({ description: this.#t || "" }));
          return s && (this._isCopy = true, this._moveAfterPaste(e, n)), this.div;
        }
        setUuid(e) {
          this.#s = e, this.addEditToolbar();
        }
        getUuid() {
          return this.#s;
        }
        get description() {
          return this.#t;
        }
        set description(e) {
          this.#t = e, this.div && (this.div.setAttribute("data-l10n-args", JSON.stringify({ description: e })), super.addEditToolbar().then((n) => {
            n?.updateEditSignatureButton(e);
          }));
        }
        getSignaturePreview() {
          const { newCurves: e, areContours: n, thickness: s, width: i, height: a } = this.#n, r = Math.max(i, a), o = Ra.processDrawnLines({ lines: { curves: e.map((l) => ({ points: l })), thickness: s, width: i, height: a }, pageWidth: r, pageHeight: r, rotation: 0, innerMargin: 0, mustSmooth: false, areContours: n });
          return { areContours: n, outline: o.outline };
        }
        get toolbarButtons() {
          return this._uiManager.signatureManager ? [["editSignature", this._uiManager.signatureManager]] : super.toolbarButtons;
        }
        addSignature(e, n, s, i) {
          const { x: a, y: r } = this, { outline: o } = this.#n = e;
          this.#e = o instanceof kh, this.description = s;
          let l;
          this.#e ? l = _ai.getDefaultDrawingOptions() : (l = _ai._defaultDrawnSignatureOptions.clone(), l.updateProperties({ "stroke-width": o.thickness })), this._addOutlines({ drawOutlines: o, drawingOptions: l });
          const [, f] = this.pageDimensions;
          let c = n / f;
          c = c >= 1 ? 0.5 : c, this.width *= c / this.height, this.width >= 1 && (c *= 0.9 / this.width, this.width = 0.9), this.height = c, this.setDims(), this.x = a, this.y = r, this.center(), this._onResized(), this.onScaleChanging(), this.rotate(), this._uiManager.addToAnnotationStorage(this), this.setUuid(i), this._reportTelemetry({ action: "pdfjs.signature.inserted", data: { hasBeenSaved: !!i, hasDescription: !!s } }), this.div.hidden = false;
        }
        getFromImage(e) {
          const { rawDims: { pageWidth: n, pageHeight: s }, rotation: i } = this.parent.viewport;
          return Ra.process(e, n, s, i, _ai._INNER_MARGIN);
        }
        getFromText(e, n) {
          const { rawDims: { pageWidth: s, pageHeight: i }, rotation: a } = this.parent.viewport;
          return Ra.extractContoursFromText(e, n, s, i, a, _ai._INNER_MARGIN);
        }
        getDrawnSignature(e) {
          const { rawDims: { pageWidth: n, pageHeight: s }, rotation: i } = this.parent.viewport;
          return Ra.processDrawnLines({ lines: e, pageWidth: n, pageHeight: s, rotation: i, innerMargin: _ai._INNER_MARGIN, mustSmooth: false, areContours: false });
        }
        createDrawingOptions({ areContours: e, thickness: n }) {
          e ? this._drawingOptions = _ai.getDefaultDrawingOptions() : (this._drawingOptions = _ai._defaultDrawnSignatureOptions.clone(), this._drawingOptions.updateProperties({ "stroke-width": n }));
        }
        serialize(e = false) {
          if (this.isEmpty()) return null;
          const { lines: n, points: s } = this.serializeDraw(e), { _drawingOptions: { "stroke-width": i } } = this, a = Object.assign(super.serialize(e), { isSignature: true, areContours: this.#e, color: [0, 0, 0], thickness: this.#e ? 0 : i });
          return this.addComment(a), e ? (a.paths = { lines: n, points: s }, a.uuid = this.#s, a.isCopy = true) : a.lines = n, this.#t && (a.accessibilityData = { type: "Figure", alt: this.#t }), a;
        }
        static deserializeDraw(e, n, s, i, a, r) {
          return r.areContours ? kh.deserialize(e, n, s, i, a, r) : No.deserialize(e, n, s, i, a, r);
        }
        static async deserialize(e, n, s) {
          const i = await super.deserialize(e, n, s);
          return i.#e = e.areContours, i.description = e.accessibilityData?.alt || "", i.#s = e.uuid, i;
        }
      };
      oy = class extends We {
        static {
          p(this, "StampEditor");
        }
        #e = null;
        #t = null;
        #n = null;
        #s = null;
        #i = null;
        #a = "";
        #r = null;
        #o = false;
        #l = null;
        #f = false;
        #u = false;
        static _type = "stamp";
        static _editorType = et.STAMP;
        constructor(e) {
          super({ ...e, name: "stampEditor" }), this.#s = e.bitmapUrl, this.#i = e.bitmapFile, this.defaultL10nId = "pdfjs-editor-stamp-editor";
        }
        static initialize(e, n) {
          We.initialize(e, n);
        }
        static isHandlingMimeForPasting(e) {
          return v0.includes(e);
        }
        static paste(e, n) {
          n.pasteEditor({ mode: et.STAMP }, { bitmapFile: e.getAsFile() });
        }
        altTextFinish() {
          this._uiManager.useNewAltTextFlow && (this.div.hidden = false), super.altTextFinish();
        }
        get telemetryFinalData() {
          return { type: "stamp", hasAltText: !!this.altTextData?.altText };
        }
        static computeTelemetryFinalData(e) {
          const n = e.get("hasAltText");
          return { hasAltText: n.get(true) ?? 0, hasNoAltText: n.get(false) ?? 0 };
        }
        #c(e, n = false) {
          if (!e) {
            this.remove();
            return;
          }
          this.#e = e.bitmap, n || (this.#t = e.id, this.#f = e.isSvg), e.file && (this.#a = e.file.name), this.#m();
        }
        #d() {
          if (this.#n = null, this._uiManager.enableWaiting(false), !!this.#r) {
            if (this._uiManager.useNewAltTextWhenAddingImage && this._uiManager.useNewAltTextFlow && this.#e) {
              this.addEditToolbar().then(() => {
                this._editToolbar.hide(), this._uiManager.editAltText(this, true);
              });
              return;
            }
            if (!this._uiManager.useNewAltTextWhenAddingImage && this._uiManager.useNewAltTextFlow && this.#e) {
              this._reportTelemetry({ action: "pdfjs.image.image_added", data: { alt_text_modal: false, alt_text_type: "empty" } });
              try {
                this.mlGuessAltText();
              } catch {
              }
            }
            this.div.focus();
          }
        }
        async mlGuessAltText(e = null, n = true) {
          if (this.hasAltTextData()) return null;
          const { mlManager: s } = this._uiManager;
          if (!s) throw new Error("No ML.");
          if (!await s.isEnabledFor("altText")) throw new Error("ML isn't enabled for alt text.");
          const { data: i, width: a, height: r } = e || this.copyCanvas(null, null, true).imageData, o = await s.guess({ name: "altText", request: { data: i, width: a, height: r, channels: i.length / (a * r) } });
          if (!o) throw new Error("No response from the AI service.");
          if (o.error) throw new Error("Error from the AI service.");
          if (o.cancel) return null;
          if (!o.output) throw new Error("No valid response from the AI service.");
          const l = o.output;
          return await this.setGuessedAltText(l), n && !this.hasAltTextData() && (this.altTextData = { alt: l, decorative: false }), l;
        }
        #g() {
          if (this.#t) {
            this._uiManager.enableWaiting(true), this._uiManager.imageManager.getFromId(this.#t).then((s) => this.#c(s, true)).finally(() => this.#d());
            return;
          }
          if (this.#s) {
            const s = this.#s;
            this.#s = null, this._uiManager.enableWaiting(true), this.#n = this._uiManager.imageManager.getFromUrl(s).then((i) => this.#c(i)).finally(() => this.#d());
            return;
          }
          if (this.#i) {
            const s = this.#i;
            this.#i = null, this._uiManager.enableWaiting(true), this.#n = this._uiManager.imageManager.getFromFile(s).then((i) => this.#c(i)).finally(() => this.#d());
            return;
          }
          const e = document.createElement("input");
          e.type = "file", e.accept = v0.join(",");
          const n = this._uiManager._signal;
          this.#n = new Promise((s) => {
            e.addEventListener("change", async () => {
              if (!e.files || e.files.length === 0) this.remove();
              else {
                this._uiManager.enableWaiting(true);
                const i = await this._uiManager.imageManager.getFromFile(e.files[0]);
                this._reportTelemetry({ action: "pdfjs.image.image_selected", data: { alt_text_modal: this._uiManager.useNewAltTextFlow } }), this.#c(i);
              }
              s();
            }, { signal: n }), e.addEventListener("cancel", () => {
              this.remove(), s();
            }, { signal: n });
          }).finally(() => this.#d()), e.click();
        }
        remove() {
          this.#t && (this.#e = null, this._uiManager.imageManager.deleteId(this.#t), this.#r?.remove(), this.#r = null, this.#l && (clearTimeout(this.#l), this.#l = null)), super.remove();
        }
        rebuild() {
          if (!this.parent) {
            this.#t && this.#g();
            return;
          }
          super.rebuild(), this.div !== null && (this.#t && this.#r === null && this.#g(), this.isAttachedToDOM || this.parent.add(this));
        }
        onceAdded(e) {
          this._isDraggable = true, e && this.div.focus();
        }
        isEmpty() {
          return !(this.#n || this.#e || this.#s || this.#i || this.#t || this.#o);
        }
        get toolbarButtons() {
          return [["altText", this.createAltText()]];
        }
        get isResizable() {
          return true;
        }
        render() {
          if (this.div) return this.div;
          let e, n;
          return this._isCopy && (e = this.x, n = this.y), super.render(), this.div.hidden = true, this.createAltText(), this.#o || (this.#e ? this.#m() : this.#g()), this._isCopy && this._moveAfterPaste(e, n), this._uiManager.addShouldRescale(this), this.div;
        }
        setCanvas(e, n) {
          const { id: s, bitmap: i } = this._uiManager.imageManager.getFromCanvas(e, n);
          n.remove(), s && this._uiManager.imageManager.isValidId(s) && (this.#t = s, i && (this.#e = i), this.#o = false, this.#m());
        }
        _onResized() {
          this.onScaleChanging();
        }
        onScaleChanging() {
          if (!this.parent) return;
          this.#l !== null && clearTimeout(this.#l);
          const e = 200;
          this.#l = setTimeout(() => {
            this.#l = null, this.#p();
          }, e);
        }
        #m() {
          const { div: e } = this;
          let { width: n, height: s } = this.#e;
          const [i, a] = this.pageDimensions, r = 0.75;
          if (this.width) n = this.width * i, s = this.height * a;
          else if (n > r * i || s > r * a) {
            const l = Math.min(r * i / n, r * a / s);
            n *= l, s *= l;
          }
          this._uiManager.enableWaiting(false);
          const o = this.#r = document.createElement("canvas");
          o.setAttribute("role", "img"), this.addContainer(o), this.width = n / i, this.height = s / a, this.setDims(), this._initialOptions?.isCentered ? this.center() : this.fixAndSetPosition(), this._initialOptions = null, (!this._uiManager.useNewAltTextWhenAddingImage || !this._uiManager.useNewAltTextFlow || this.annotationElementId) && (e.hidden = false), this.#p(), this.#u || (this.parent.addUndoableEditor(this), this.#u = true), this._reportTelemetry({ action: "inserted_image" }), this.#a && this.div.setAttribute("aria-description", this.#a), this.annotationElementId || this._uiManager.a11yAlert("pdfjs-editor-stamp-added-alert");
        }
        copyCanvas(e, n, s = false) {
          e || (e = 224);
          const { width: i, height: a } = this.#e, r = new Ws();
          let o = this.#e, l = i, f = a, c = null;
          if (n) {
            if (i > n || a > n) {
              const q = Math.min(n / i, n / a);
              l = Math.floor(i * q), f = Math.floor(a * q);
            }
            c = document.createElement("canvas");
            const u = c.width = Math.ceil(l * r.sx), d = c.height = Math.ceil(f * r.sy);
            this.#f || (o = this.#h(u, d));
            const m = c.getContext("2d");
            m.filter = this._uiManager.hcmFilter;
            let g = "white", b = "#cfcfd8";
            this._uiManager.hcmFilter !== "none" ? b = "black" : A6.isDarkMode && (g = "#8f8f9d", b = "#42414d");
            const w = 15, x = w * r.sx, y = w * r.sy, j = new OffscreenCanvas(x * 2, y * 2), v = j.getContext("2d");
            v.fillStyle = g, v.fillRect(0, 0, x * 2, y * 2), v.fillStyle = b, v.fillRect(0, 0, x, y), v.fillRect(x, y, x, y), m.fillStyle = m.createPattern(j, "repeat"), m.fillRect(0, 0, u, d), m.drawImage(o, 0, 0, o.width, o.height, 0, 0, u, d);
          }
          let h = null;
          if (s) {
            let u, d;
            if (r.symmetric && o.width < e && o.height < e) u = o.width, d = o.height;
            else if (o = this.#e, i > e || a > e) {
              const b = Math.min(e / i, e / a);
              u = Math.floor(i * b), d = Math.floor(a * b), this.#f || (o = this.#h(u, d));
            }
            const g = new OffscreenCanvas(u, d).getContext("2d", { willReadFrequently: true });
            g.drawImage(o, 0, 0, o.width, o.height, 0, 0, u, d), h = { width: u, height: d, data: g.getImageData(0, 0, u, d).data };
          }
          return { canvas: c, width: l, height: f, imageData: h };
        }
        #h(e, n) {
          const { width: s, height: i } = this.#e;
          let a = s, r = i, o = this.#e;
          for (; a > 2 * e || r > 2 * n; ) {
            const l = a, f = r;
            a > 2 * e && (a = a >= 16384 ? Math.floor(a / 2) - 1 : Math.ceil(a / 2)), r > 2 * n && (r = r >= 16384 ? Math.floor(r / 2) - 1 : Math.ceil(r / 2));
            const c = new OffscreenCanvas(a, r);
            c.getContext("2d").drawImage(o, 0, 0, l, f, 0, 0, a, r), o = c.transferToImageBitmap();
          }
          return o;
        }
        #p() {
          const [e, n] = this.parentDimensions, { width: s, height: i } = this, a = new Ws(), r = Math.ceil(s * e * a.sx), o = Math.ceil(i * n * a.sy), l = this.#r;
          if (!l || l.width === r && l.height === o) return;
          l.width = r, l.height = o;
          const f = this.#f ? this.#e : this.#h(r, o), c = l.getContext("2d");
          c.filter = this._uiManager.hcmFilter, c.drawImage(f, 0, 0, f.width, f.height, 0, 0, r, o);
        }
        #b(e) {
          if (e) {
            if (this.#f) {
              const i = this._uiManager.imageManager.getSvgUrl(this.#t);
              if (i) return i;
            }
            const n = document.createElement("canvas");
            return { width: n.width, height: n.height } = this.#e, n.getContext("2d").drawImage(this.#e, 0, 0), n.toDataURL();
          }
          if (this.#f) {
            const [n, s] = this.pageDimensions, i = Math.round(this.width * n * Ea.PDF_TO_CSS_UNITS), a = Math.round(this.height * s * Ea.PDF_TO_CSS_UNITS), r = new OffscreenCanvas(i, a);
            return r.getContext("2d").drawImage(this.#e, 0, 0, this.#e.width, this.#e.height, 0, 0, i, a), r.transferToImageBitmap();
          }
          return structuredClone(this.#e);
        }
        static async deserialize(e, n, s) {
          let i = null, a = false;
          if (e instanceof dm) {
            const { data: { rect: g, rotation: b, id: w, structParent: x, popupRef: y, richText: j, contentsObj: v, creationDate: q, modificationDate: A }, container: C, parent: { page: { pageNumber: S } }, canvas: I } = e;
            let T, P;
            I ? (delete e.canvas, { id: T, bitmap: P } = s.imageManager.getFromCanvas(C.id, I), I.remove()) : (a = true, e._hasNoCanvas = true);
            const H = (await n._structTree.getAriaAttributes(`${hr}${w}`))?.get("aria-label") || "";
            i = e = { annotationType: et.STAMP, bitmapId: T, bitmap: P, pageIndex: S - 1, rect: g.slice(0), rotation: b, annotationElementId: w, id: w, deleted: false, accessibilityData: { decorative: false, altText: H }, isSvg: false, structParent: x, popupRef: y, richText: j, comment: v?.str || null, creationDate: q, modificationDate: A };
          }
          const r = await super.deserialize(e, n, s), { rect: o, bitmap: l, bitmapUrl: f, bitmapId: c, isSvg: h, accessibilityData: u } = e;
          a ? (s.addMissingCanvas(e.id, r), r.#o = true) : c && s.imageManager.isValidId(c) ? (r.#t = c, l && (r.#e = l)) : r.#s = f, r.#f = h;
          const [d, m] = r.pageDimensions;
          return r.width = (o[2] - o[0]) / d, r.height = (o[3] - o[1]) / m, u && (r.altTextData = u), r._initialData = i, e.comment && r.setCommentData(e), r.#u = !!i, r;
        }
        serialize(e = false, n = null) {
          if (this.isEmpty()) return null;
          if (this.deleted) return this.serializeDeleted();
          const s = Object.assign(super.serialize(e), { bitmapId: this.#t, isSvg: this.#f });
          if (this.addComment(s), e) return s.bitmapUrl = this.#b(true), s.accessibilityData = this.serializeAltText(true), s.isCopy = true, s;
          const { decorative: i, altText: a } = this.serializeAltText(false);
          if (!i && a && (s.accessibilityData = { type: "Figure", alt: a }), this.annotationElementId) {
            const o = this.#y(s);
            return o.isSame ? null : (o.isSameAltText ? delete s.accessibilityData : s.accessibilityData.structParent = this._initialData.structParent ?? -1, s.id = this.annotationElementId, delete s.bitmapId, s);
          }
          if (n === null) return s;
          n.stamps ||= /* @__PURE__ */ new Map();
          const r = this.#f ? (s.rect[2] - s.rect[0]) * (s.rect[3] - s.rect[1]) : null;
          if (!n.stamps.has(this.#t)) n.stamps.set(this.#t, { area: r, serialized: s }), s.bitmap = this.#b(false);
          else if (this.#f) {
            const o = n.stamps.get(this.#t);
            r > o.area && (o.area = r, o.serialized.bitmap.close(), o.serialized.bitmap = this.#b(false));
          }
          return s;
        }
        #y(e) {
          const { pageIndex: n, accessibilityData: { altText: s } } = this._initialData, i = e.pageIndex === n, a = (e.accessibilityData?.alt || "") === s;
          return { isSame: !this.hasEditedComment && !this._hasBeenMoved && !this._hasBeenResized && i && a, isSameAltText: a };
        }
        renderAnnotationElement(e) {
          return this.deleted ? (e.hide(), null) : (e.updateEdited({ rect: this.getPDFRect(), popup: this.comment }), null);
        }
      };
      li = class _li {
        static {
          p(this, "AnnotationEditorLayer");
        }
        #e;
        #t = false;
        #n = null;
        #s = null;
        #i = null;
        #a = /* @__PURE__ */ new Map();
        #r = false;
        #o = false;
        #l = false;
        #f = null;
        #u = null;
        #c = null;
        #d = null;
        #g = null;
        #m = -1;
        #h;
        static _initialized = false;
        static #p = new Map([bn, Th, oy, Jt, ai].map((e) => [e._editorType, e]));
        constructor({ uiManager: e, pageIndex: n, div: s, structTreeLayer: i, accessibilityManager: a, annotationLayer: r, drawLayer: o, textLayer: l, viewport: f, l10n: c }) {
          const h = [..._li.#p.values()];
          if (!_li._initialized) {
            _li._initialized = true;
            for (const u of h) u.initialize(c, e);
          }
          e.registerEditorTypes(h), this.#h = e, this.pageIndex = n, this.div = s, this.#e = a, this.#n = r, this.viewport = f, this.#c = l, this.drawLayer = o, this._structTree = i, this.#h.addLayer(this);
        }
        get isEmpty() {
          return this.#a.size === 0;
        }
        get isInvisible() {
          return this.isEmpty && this.#h.getMode() === et.NONE;
        }
        updateToolbar(e) {
          this.#h.updateToolbar(e);
        }
        updateMode(e = this.#h.getMode()) {
          switch (this.#w(), e) {
            case et.NONE:
              this.div.classList.toggle("nonEditing", true), this.disableTextSelection(), this.togglePointerEvents(false), this.toggleAnnotationLayerPointerEvents(true), this.disableClick();
              return;
            case et.INK:
              this.disableTextSelection(), this.togglePointerEvents(true), this.enableClick();
              break;
            case et.HIGHLIGHT:
              this.enableTextSelection(), this.togglePointerEvents(false), this.disableClick();
              break;
            default:
              this.disableTextSelection(), this.togglePointerEvents(true), this.enableClick();
          }
          this.toggleAnnotationLayerPointerEvents(false);
          const { classList: n } = this.div;
          if (n.toggle("nonEditing", false), e === et.POPUP) n.toggle("commentEditing", true);
          else {
            n.toggle("commentEditing", false);
            for (const s of _li.#p.values()) n.toggle(`${s._type}Editing`, e === s._editorType);
          }
          this.div.hidden = false;
        }
        hasTextLayer(e) {
          return e === this.#c?.div;
        }
        setEditingState(e) {
          this.#h.setEditingState(e);
        }
        addCommands(e) {
          this.#h.addCommands(e);
        }
        cleanUndoStack(e) {
          this.#h.cleanUndoStack(e);
        }
        toggleDrawing(e = false) {
          this.div.classList.toggle("drawing", !e);
        }
        togglePointerEvents(e = false) {
          this.div.classList.toggle("disabled", !e);
        }
        toggleAnnotationLayerPointerEvents(e = false) {
          this.#n?.togglePointerEvents(e);
        }
        get #b() {
          return this.#a.size !== 0 ? this.#a.values() : this.#h.getEditors(this.pageIndex);
        }
        async enable() {
          this.#l = true, this.div.tabIndex = 0, this.togglePointerEvents(true), this.div.classList.toggle("nonEditing", false), this.#g?.abort(), this.#g = null;
          const e = /* @__PURE__ */ new Set();
          for (const s of this.#b) s.enableEditing(), s.show(true), s.annotationElementId && (this.#h.removeChangedExistingAnnotation(s), e.add(s.annotationElementId));
          const n = this.#n;
          if (n) for (const s of n.getEditableAnnotations()) {
            if (s.hide(), this.#h.isDeletedAnnotationElement(s.data.id) || e.has(s.data.id)) continue;
            const i = await this.deserialize(s);
            i && (this.addOrRebuild(i), i.enableEditing());
          }
          this.#l = false, this.#h._eventBus.dispatch("editorsrendered", { source: this, pageNumber: this.pageIndex + 1 });
        }
        disable() {
          if (this.#o = true, this.div.tabIndex = -1, this.togglePointerEvents(false), this.div.classList.toggle("nonEditing", true), this.#c && !this.#g) {
            this.#g = new AbortController();
            const i = this.#h.combinedSignal(this.#g);
            this.#c.div.addEventListener("pointerdown", (a) => {
              const { clientX: o, clientY: l, timeStamp: f } = a, c = this.#m;
              if (f - c > 500) {
                this.#m = f;
                return;
              }
              this.#m = -1;
              const { classList: h } = this.div;
              h.toggle("getElements", true);
              const u = document.elementsFromPoint(o, l);
              if (h.toggle("getElements", false), !this.div.contains(u[0])) return;
              let d;
              const m = new RegExp(`^${Io}[0-9]+$`);
              for (const b of u) if (m.test(b.id)) {
                d = b.id;
                break;
              }
              if (!d) return;
              const g = this.#a.get(d);
              g?.annotationElementId === null && (a.stopPropagation(), a.preventDefault(), g.dblclick(a));
            }, { signal: i, capture: true });
          }
          const e = this.#n, n = [];
          if (e) {
            const i = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Map();
            for (const r of this.#b) {
              if (r.disableEditing(), !r.annotationElementId) {
                n.push(r);
                continue;
              }
              if (r.serialize() !== null) {
                i.set(r.annotationElementId, r);
                continue;
              } else a.set(r.annotationElementId, r);
              this.getEditableAnnotation(r.annotationElementId)?.show(), r.remove();
            }
            for (const r of e.getEditableAnnotations()) {
              const { id: o } = r.data;
              if (this.#h.isDeletedAnnotationElement(o)) {
                r.updateEdited({ deleted: true });
                continue;
              }
              let l = a.get(o);
              if (l) {
                l.resetAnnotationElement(r), l.show(false), r.show();
                continue;
              }
              l = i.get(o), l && (this.#h.addChangedExistingAnnotation(l), l.renderAnnotationElement(r) && l.show(false)), r.show();
            }
          }
          this.#w(), this.isEmpty && (this.div.hidden = true);
          const { classList: s } = this.div;
          for (const i of _li.#p.values()) s.remove(`${i._type}Editing`);
          this.disableTextSelection(), this.toggleAnnotationLayerPointerEvents(true), e?.updateFakeAnnotations(n), this.#o = false;
        }
        getEditableAnnotation(e) {
          return this.#n?.getEditableAnnotation(e) || null;
        }
        setActiveEditor(e) {
          this.#h.getActive() !== e && this.#h.setActiveEditor(e);
        }
        enableTextSelection() {
          if (this.div.tabIndex = -1, this.#c?.div && !this.#d) {
            this.#d = new AbortController();
            const e = this.#h.combinedSignal(this.#d);
            this.#c.div.addEventListener("pointerdown", this.#y.bind(this), { signal: e }), this.#c.div.classList.add("highlighting");
          }
        }
        disableTextSelection() {
          this.div.tabIndex = 0, this.#c?.div && this.#d && (this.#d.abort(), this.#d = null, this.#c.div.classList.remove("highlighting"));
        }
        #y(e) {
          this.#h.unselectAll();
          const { target: n } = e;
          if (n === this.#c.div || (n.getAttribute("role") === "img" || n.classList.contains("endOfContent")) && this.#c.div.contains(n)) {
            const { isMac: s } = rn.platform;
            if (e.button !== 0 || e.ctrlKey && s) return;
            this.#h.showAllEditors("highlight", true, true), this.#c.div.classList.add("free"), this.toggleDrawing(), Jt.startHighlighting(this, this.#h.direction === "ltr", { target: this.#c.div, x: e.x, y: e.y }), this.#c.div.addEventListener("pointerup", () => {
              this.#c.div.classList.remove("free"), this.toggleDrawing(true);
            }, { once: true, signal: this.#h._signal }), e.preventDefault();
          }
        }
        enableClick() {
          if (this.#s) return;
          this.#s = new AbortController();
          const e = this.#h.combinedSignal(this.#s);
          this.div.addEventListener("pointerdown", this.pointerdown.bind(this), { signal: e });
          const n = this.pointerup.bind(this);
          this.div.addEventListener("pointerup", n, { signal: e }), this.div.addEventListener("pointercancel", n, { signal: e });
        }
        disableClick() {
          this.#s?.abort(), this.#s = null;
        }
        attach(e) {
          this.#a.set(e.id, e);
          const { annotationElementId: n } = e;
          n && this.#h.isDeletedAnnotationElement(n) && this.#h.removeDeletedAnnotationElement(e);
        }
        detach(e) {
          this.#a.delete(e.id), this.#e?.removePointerInTextLayer(e.contentDiv), !this.#o && e.annotationElementId && this.#h.addDeletedAnnotationElement(e);
        }
        remove(e) {
          this.detach(e), this.#h.removeEditor(e), e.div.remove(), e.isAttachedToDOM = false;
        }
        changeParent(e) {
          e.parent !== this && (e.parent && e.annotationElementId && (this.#h.addDeletedAnnotationElement(e), We.deleteAnnotationElement(e), e.annotationElementId = null), this.attach(e), e.parent?.detach(e), e.setParent(this), e.div && e.isAttachedToDOM && (e.div.remove(), this.div.append(e.div)));
        }
        add(e) {
          if (!(e.parent === this && e.isAttachedToDOM)) {
            if (this.changeParent(e), this.#h.addEditor(e), this.attach(e), !e.isAttachedToDOM) {
              const n = e.render();
              this.div.append(n), e.isAttachedToDOM = true;
            }
            e.fixAndSetPosition(), e.onceAdded(!this.#l), this.#h.addToAnnotationStorage(e), e._reportTelemetry(e.telemetryInitialData);
          }
        }
        moveEditorInDOM(e) {
          if (!e.isAttachedToDOM) return;
          const { activeElement: n } = document;
          e.div.contains(n) && !this.#i && (e._focusEventsAllowed = false, this.#i = setTimeout(() => {
            this.#i = null, e.div.contains(document.activeElement) ? e._focusEventsAllowed = true : (e.div.addEventListener("focusin", () => {
              e._focusEventsAllowed = true;
            }, { once: true, signal: this.#h._signal }), n.focus());
          }, 0)), e._structTreeParentId = this.#e?.moveElementInDOM(this.div, e.div, e.contentDiv, true);
        }
        addOrRebuild(e) {
          e.needsToBeRebuilt() ? (e.parent ||= this, e.rebuild(), e.show()) : this.add(e);
        }
        addUndoableEditor(e) {
          const n = p(() => e._uiManager.rebuild(e), "cmd"), s = p(() => {
            e.remove();
          }, "undo");
          this.addCommands({ cmd: n, undo: s, mustExec: false });
        }
        getEditorByUID(e) {
          for (const n of this.#a.values()) if (n.uid === e) return n;
          return null;
        }
        get #x() {
          return _li.#p.get(this.#h.getMode());
        }
        combinedSignal(e) {
          return this.#h.combinedSignal(e);
        }
        #v(e) {
          const n = this.#x;
          return n ? new n.prototype.constructor(e) : null;
        }
        canCreateNewEmptyEditor() {
          return this.#x?.canCreateNewEmptyEditor();
        }
        async pasteEditor(e, n) {
          this.updateToolbar(e), await this.#h.updateMode(e.mode);
          const { offsetX: s, offsetY: i } = this.#C(), a = this.#h.getId(), r = this.#v({ parent: this, id: a, x: s, y: i, uiManager: this.#h, isCentered: true, ...n });
          r && this.add(r);
        }
        async deserialize(e) {
          return await _li.#p.get(e.annotationType ?? e.annotationEditorType)?.deserialize(e, this, this.#h) || null;
        }
        createAndAddNewEditor(e, n, s = {}) {
          const i = this.#h.getId(), a = this.#v({ parent: this, id: i, x: e.offsetX, y: e.offsetY, uiManager: this.#h, isCentered: n, ...s });
          return a && this.add(a), a;
        }
        get boundingClientRect() {
          return this.div.getBoundingClientRect();
        }
        #C() {
          const { x: e, y: n, width: s, height: i } = this.boundingClientRect, a = Math.max(0, e), r = Math.max(0, n), o = Math.min(window.innerWidth, e + s), l = Math.min(window.innerHeight, n + i), f = (a + o) / 2 - e, c = (r + l) / 2 - n, [h, u] = this.viewport.rotation % 180 === 0 ? [f, c] : [c, f];
          return { offsetX: h, offsetY: u };
        }
        addNewEditor(e = {}) {
          this.createAndAddNewEditor(this.#C(), true, e);
        }
        setSelected(e) {
          this.#h.setSelected(e);
        }
        toggleSelected(e) {
          this.#h.toggleSelected(e);
        }
        unselect(e) {
          this.#h.unselect(e);
        }
        pointerup(e) {
          const { isMac: n } = rn.platform;
          if (e.button !== 0 || e.ctrlKey && n || e.target !== this.div || !this.#r || (this.#r = false, this.#x?.isDrawer && this.#x.supportMultipleDrawings)) return;
          if (!this.#t) {
            this.#t = true;
            return;
          }
          const s = this.#h.getMode();
          if (s === et.STAMP || s === et.POPUP || s === et.SIGNATURE) {
            this.#h.unselectAll();
            return;
          }
          this.createAndAddNewEditor(e, false);
        }
        pointerdown(e) {
          if (this.#h.getMode() === et.HIGHLIGHT && this.enableTextSelection(), this.#r) {
            this.#r = false;
            return;
          }
          const { isMac: n } = rn.platform;
          if (e.button !== 0 || e.ctrlKey && n || e.target !== this.div) return;
          if (this.#r = true, this.#x?.isDrawer) {
            this.startDrawingSession(e);
            return;
          }
          const s = this.#h.getActive();
          this.#t = !s || s.isEmpty();
        }
        startDrawingSession(e) {
          if (this.div.focus({ preventScroll: true }), this.#f) {
            this.#x.startDrawing(this, this.#h, false, e);
            return;
          }
          this.#h.setCurrentDrawingSession(this), this.#f = new AbortController();
          const n = this.#h.combinedSignal(this.#f);
          this.div.addEventListener("blur", ({ relatedTarget: s }) => {
            s && !this.div.contains(s) && (this.#u = null, this.commitOrRemove());
          }, { signal: n }), this.#x.startDrawing(this, this.#h, false, e);
        }
        pause(e) {
          if (e) {
            const { activeElement: n } = document;
            this.div.contains(n) && (this.#u = n);
            return;
          }
          this.#u && setTimeout(() => {
            this.#u?.focus(), this.#u = null;
          }, 0);
        }
        endDrawingSession(e = false) {
          return this.#f ? (this.#h.setCurrentDrawingSession(null), this.#f.abort(), this.#f = null, this.#u = null, this.#x.endDrawing(e)) : null;
        }
        findNewParent(e, n, s) {
          const i = this.#h.findParent(n, s);
          return i === null || i === this ? false : (i.changeParent(e), true);
        }
        commitOrRemove() {
          return this.#f ? (this.endDrawingSession(), true) : false;
        }
        onScaleChanging() {
          this.#f && this.#x.onScaleChangingWhenDrawing(this);
        }
        destroy() {
          this.commitOrRemove(), this.#h.getActive()?.parent === this && (this.#h.commitOrRemove(), this.#h.setActiveEditor(null)), this.#i && (clearTimeout(this.#i), this.#i = null);
          for (const e of this.#a.values()) this.#e?.removePointerInTextLayer(e.contentDiv), e.setParent(null), e.isAttachedToDOM = false, e.div.remove();
          this.div = null, this.#a.clear(), this.#h.removeLayer(this);
        }
        #w() {
          for (const e of this.#a.values()) e.isEmpty() && e.remove();
        }
        async render({ viewport: e }) {
          this.viewport = e, Ki(this.div, e);
          for (const n of this.#h.getEditors(this.pageIndex)) this.add(n), n.rebuild();
          await this.#h.findClonesForPage(this), this.div.hidden = this.isEmpty, this.updateMode();
        }
        update({ viewport: e }) {
          this.#h.commitOrRemove(), this.#w();
          const n = this.viewport.rotation, s = e.rotation;
          if (this.viewport = e, Ki(this.div, { rotation: s }), n !== s) for (const i of this.#a.values()) i.rotate(s);
        }
        get pageDimensions() {
          const { pageWidth: e, pageHeight: n } = this.viewport.rawDims;
          return [e, n];
        }
        get scale() {
          return this.#h.viewParameters.realScale;
        }
      };
      xn = class _xn {
        static {
          p(this, "DrawLayer");
        }
        #e = null;
        #t = /* @__PURE__ */ new Map();
        #n = /* @__PURE__ */ new Map();
        static #s = 0;
        setParent(e) {
          if (!this.#e) {
            this.#e = e;
            return;
          }
          if (this.#e !== e) {
            if (this.#t.size > 0) for (const n of this.#t.values()) n.remove(), e.append(n);
            this.#e = e;
          }
        }
        static get _svgFactory() {
          return st(this, "_svgFactory", new Lo());
        }
        static #i(e, [n, s, i, a]) {
          const { style: r } = e;
          r.top = `${100 * s}%`, r.left = `${100 * n}%`, r.width = `${100 * i}%`, r.height = `${100 * a}%`;
        }
        #a() {
          const e = _xn._svgFactory.create(1, 1, true);
          return this.#e.append(e), e.setAttribute("aria-hidden", true), e;
        }
        #r(e, n) {
          const s = _xn._svgFactory.createElement("clipPath");
          e.append(s);
          const i = `clip_${n}`;
          s.setAttribute("id", i), s.setAttribute("clipPathUnits", "objectBoundingBox");
          const a = _xn._svgFactory.createElement("use");
          return s.append(a), a.setAttribute("href", `#${n}`), a.classList.add("clip"), i;
        }
        #o(e, n) {
          for (const [s, i] of Object.entries(n)) i === null ? e.removeAttribute(s) : e.setAttribute(s, i);
        }
        draw(e, n = false, s = false) {
          const i = _xn.#s++, a = this.#a(), r = _xn._svgFactory.createElement("defs");
          a.append(r);
          const o = _xn._svgFactory.createElement("path");
          r.append(o);
          const l = `path_${i}`;
          o.setAttribute("id", l), o.setAttribute("vector-effect", "non-scaling-stroke"), n && this.#n.set(i, o);
          const f = s ? this.#r(r, l) : null, c = _xn._svgFactory.createElement("use");
          return a.append(c), c.setAttribute("href", `#${l}`), this.updateProperties(a, e), this.#t.set(i, a), { id: i, clipPathId: `url(#${f})` };
        }
        drawOutline(e, n) {
          const s = _xn.#s++, i = this.#a(), a = _xn._svgFactory.createElement("defs");
          i.append(a);
          const r = _xn._svgFactory.createElement("path");
          a.append(r);
          const o = `path_${s}`;
          r.setAttribute("id", o), r.setAttribute("vector-effect", "non-scaling-stroke");
          let l;
          if (n) {
            const h = _xn._svgFactory.createElement("mask");
            a.append(h), l = `mask_${s}`, h.setAttribute("id", l), h.setAttribute("maskUnits", "objectBoundingBox");
            const u = _xn._svgFactory.createElement("rect");
            h.append(u), u.setAttribute("width", "1"), u.setAttribute("height", "1"), u.setAttribute("fill", "white");
            const d = _xn._svgFactory.createElement("use");
            h.append(d), d.setAttribute("href", `#${o}`), d.setAttribute("stroke", "none"), d.setAttribute("fill", "black"), d.setAttribute("fill-rule", "nonzero"), d.classList.add("mask");
          }
          const f = _xn._svgFactory.createElement("use");
          i.append(f), f.setAttribute("href", `#${o}`), l && f.setAttribute("mask", `url(#${l})`);
          const c = f.cloneNode();
          return i.append(c), f.classList.add("mainOutline"), c.classList.add("secondaryOutline"), this.updateProperties(i, e), this.#t.set(s, i), s;
        }
        finalizeDraw(e, n) {
          this.#n.delete(e), this.updateProperties(e, n);
        }
        updateProperties(e, n) {
          if (!n) return;
          const { root: s, bbox: i, rootClass: a, path: r } = n, o = typeof e == "number" ? this.#t.get(e) : e;
          if (o) {
            if (s && this.#o(o, s), i && _xn.#i(o, i), a) {
              const { classList: l } = o;
              for (const [f, c] of Object.entries(a)) l.toggle(f, c);
            }
            if (r) {
              const f = o.firstElementChild.firstElementChild;
              this.#o(f, r);
            }
          }
        }
        updateParent(e, n) {
          if (n === this) return;
          const s = this.#t.get(e);
          s && (n.#e.append(s), this.#t.delete(e), n.#t.set(e, s));
        }
        remove(e) {
          this.#n.delete(e), this.#e !== null && (this.#t.get(e).remove(), this.#t.delete(e));
        }
        destroy() {
          this.#e = null;
          for (const e of this.#t.values()) e.remove();
          this.#t.clear(), this.#n.clear();
        }
      };
      p(O0, "percentage");
      il = class _il {
        static {
          p(this, "TextLayerImages");
        }
        #e = [];
        #t = /* @__PURE__ */ new Map();
        #n = null;
        #s = 0;
        #i = 0;
        #a = 0;
        static #r = null;
        constructor(e, n, s, i) {
          this.#s = e, this.#e = n, this.#i = s.rawDims.pageWidth, this.#a = s.rawDims.pageHeight, this.#n = i;
        }
        render() {
          const e = document.createElement("div");
          e.className = "textLayerImages";
          for (let n = 0; n < this.#e.length; n += 6) {
            const s = this.#o(this.#e.subarray(n, n + 6));
            s && e.append(s);
          }
          return e.addEventListener("contextmenu", (n) => {
            if (!(n.target instanceof HTMLCanvasElement)) return;
            const s = n.target, i = this.#t.get(s);
            if (!i) return;
            const a = _il.#r?.deref();
            if (a === s) return;
            a && (a.width = 0, a.height = 0), _il.#r = new WeakRef(s);
            const { inverseTransform: r, x1: o, y1: l, width: f, height: c } = i, h = this.#n(), u = Math.ceil(o * h.width), d = Math.ceil(l * h.height), m = Math.floor((o + f / this.#i) * h.width), g = Math.floor((l + c / this.#a) * h.height);
            s.width = m - u, s.height = g - d;
            const b = s.getContext("2d");
            b.setTransform(...r), b.translate(-u, -d), b.drawImage(h, 0, 0);
          }), e;
        }
        #o([e, n, s, i, a, r]) {
          const o = Math.hypot((a - e) * this.#i, (r - n) * this.#a), l = Math.hypot((s - e) * this.#i, (i - n) * this.#a);
          if (o < this.#s || l < this.#s) return null;
          const f = [(a - e) * this.#i / o, (r - n) * this.#a / o, (s - e) * this.#i / l, (i - n) * this.#a / l, 0, 0], c = Ie.inverseTransform(f), h = document.createElement("canvas");
          return h.className = "textLayerImagePlaceholder", h.width = 0, h.height = 0, Object.assign(h.style, { opacity: 0, position: "absolute", left: O0(e), top: O0(n), width: O0(o / this.#i), height: O0(l / this.#a), transformOrigin: "0% 0%", transform: `matrix(${f.join(",")})` }), this.#t.set(h, { inverseTransform: c, width: o, height: l, x1: e, y1: n }), h;
        }
      };
      globalThis._pdfjsTestingUtils = { HighlightOutliner: wh }, globalThis.pdfjsLib = { AbortException: qi, AnnotationEditorLayer: li, AnnotationEditorParamsType: gt, AnnotationEditorType: et, AnnotationEditorUIManager: Si, AnnotationLayer: Z0, AnnotationMode: vi, AnnotationType: Yt, applyOpacity: gp, build: rm, ColorPicker: bs, createValidAbsoluteUrl: Xc, CSSConstants: mp, DOMSVGFactory: Lo, DrawLayer: xn, FeatureTest: rn, fetchData: x0, findContrastColor: yp, getDocument: im, getFilenameFromUrl: hp, getPdfFilenameFromUrl: up, getRGB: ur, getUuid: th, getXfaPageViewport: pp, GlobalWorkerOptions: mr, ImageKind: To, InvalidPDFException: p0, isDataScheme: Ro, isPdfFile: y0, isValidExplicitDest: Fp, makeArr: g0, makeMap: b0, makeObj: w0, MathClamp: hn, noContextMenu: ms, normalizeUnicode: cp, OPS: cr, OutputScale: Ws, PasswordResponses: op, PDFDataRangeTransport: dh, PDFDateString: j0, PDFWorker: yn, PermissionFlag: rp, PixelsPerInch: Ea, RenderingCancelledException: k0, renderRichText: ih, ResponseException: Bo, setLayerDimensions: Ki, shadow: st, SignatureExtractor: Ra, stopEvent: Nt, SupportedImageMimeTypes: v0, TextLayer: ss, TextLayerImages: il, TouchManager: Zo, updateUrlHash: Yc, Util: Ie, VerbosityLevel: Eo, version: am, XfaLayer: nh };
    }
  });

  // node_modules/unpdf/dist/index.mjs
  function polyfillDOMMatrix() {
    if (typeof globalThis.DOMMatrix !== "undefined")
      return;
    globalThis.DOMMatrix = class DOMMatrix {
      a;
      b;
      c;
      d;
      e;
      f;
      constructor(init) {
        if (Array.isArray(init) && init.length === 6) {
          this.a = init[0];
          this.b = init[1];
          this.c = init[2];
          this.d = init[3];
          this.e = init[4];
          this.f = init[5];
        } else {
          this.a = 1;
          this.b = 0;
          this.c = 0;
          this.d = 1;
          this.e = 0;
          this.f = 0;
        }
      }
      translateSelf(tx2, ty2 = 0) {
        this.e = this.a * tx2 + this.c * ty2 + this.e;
        this.f = this.b * tx2 + this.d * ty2 + this.f;
        return this;
      }
      scaleSelf(sx2, sy2 = sx2) {
        this.a *= sx2;
        this.b *= sx2;
        this.c *= sy2;
        this.d *= sy2;
        return this;
      }
    };
  }
  function stubBrowserGlobals() {
    polyfillDOMMatrix();
  }
  async function getDocumentProxy(data, options = {}) {
    const { getDocument } = await getResolvedPDFJS();
    let nodeDefaults = {};
    if (isNode) {
      try {
        const base = import_meta2.resolve("pdfjs-dist/package.json");
        nodeDefaults = {
          disableFontFace: true,
          standardFontDataUrl: new URL("./standard_fonts/", base).href
        };
      } catch {
      }
    }
    const pdf = await getDocument({
      data,
      isEvalSupported: false,
      // See: https://github.com/mozilla/pdf.js/issues/4244#issuecomment-1479534301
      useSystemFonts: true,
      ...nodeDefaults,
      ...options
    }).promise;
    return pdf;
  }
  async function getResolvedPDFJS() {
    if (!resolvedModule) {
      await resolvePDFJSImport();
    }
    return resolvedModule;
  }
  async function resolvePDFJSImport(pdfjsResolver, { reload = false } = {}) {
    if (resolvedModule && !reload) {
      return;
    }
    stubBrowserGlobals();
    if (pdfjsResolver) {
      try {
        resolvedModule = await interopDefault(pdfjsResolver());
        return;
      } catch (error) {
        throw new Error(`PDF.js could not be resolved: ${error}`);
      }
    }
    try {
      resolvedModule = await Promise.resolve().then(() => (init_pdfjs(), pdfjs_exports));
    } catch (error) {
      throw new Error(`Serverless PDF.js bundle could not be resolved: ${error}`);
    }
  }
  function isPDFDocumentProxy(data) {
    return typeof data === "object" && data !== null && "_pdfInfo" in data;
  }
  async function interopDefault(m) {
    const resolved = await m;
    return resolved.default || resolved;
  }
  async function extractText$1(data, options = {}) {
    const { mergePages = false } = options;
    const pdf = isPDFDocumentProxy(data) ? data : await getDocumentProxy(data);
    const texts = await Promise.all(
      Array.from({ length: pdf.numPages }, (_10, i) => getPageText(pdf, i + 1))
    );
    return {
      totalPages: pdf.numPages,
      text: mergePages ? texts.join("\n").replace(/\s+/g, " ") : texts
    };
  }
  async function getPageText(document2, pageNumber) {
    const page = await document2.getPage(pageNumber);
    const content = await page.getTextContent();
    return content.items.filter((item) => item.str != null).map((item) => item.str + (item.hasEOL ? "\n" : "")).join("");
  }
  var import_meta2, resolvedModule, isNode, extractText;
  var init_dist = __esm({
    "node_modules/unpdf/dist/index.mjs"() {
      import_meta2 = {};
      isNode = globalThis.process?.release?.name === "node";
      extractText = async (...args) => {
        await resolvePDFJSImport();
        return await extractText$1(...args);
      };
    }
  });

  // scripts/ordinais.js
  var ordinais;
  var init_ordinais = __esm({
    "scripts/ordinais.js"() {
      ordinais = {
        1: ["primeiro", "primeira"],
        2: ["segundo", "segunda"],
        3: ["terceiro", "terceira"],
        4: ["quarto", "quarta"],
        5: ["quinto", "quinta"],
        6: ["sexto", "sexta"],
        7: ["s\xE9timo", "s\xE9tima"],
        8: ["oitavo", "oitava"],
        9: ["nono", "nona"],
        10: ["d\xE9cimo", "d\xE9cima"],
        11: ["d\xE9cimo primeiro", "d\xE9cima primeira"],
        12: ["d\xE9cimo segundo", "d\xE9cima segunda"],
        13: ["d\xE9cimo terceiro", "d\xE9cima terceira"],
        14: ["d\xE9cimo quarto", "d\xE9cima quarta"],
        15: ["d\xE9cimo quinto", "d\xE9cima quinta"],
        16: ["d\xE9cimo sexto", "d\xE9cima sexta"],
        17: ["d\xE9cimo s\xE9timo", "d\xE9cima s\xE9tima"],
        18: ["d\xE9cimo oitavo", "d\xE9cima oitava"],
        19: ["d\xE9cimo nono", "d\xE9cima nona"],
        20: ["vig\xE9simo", "vig\xE9sima"],
        21: ["vig\xE9simo primeiro", "vig\xE9sima primeira"],
        22: ["vig\xE9simo segundo", "vig\xE9sima segunda"],
        23: ["vig\xE9simo terceiro", "vig\xE9sima terceira"],
        24: ["vig\xE9simo quarto", "vig\xE9sima quarta"],
        25: ["vig\xE9simo quinto", "vig\xE9sima quinta"],
        26: ["vig\xE9simo sexto", "vig\xE9sima sexta"],
        27: ["vig\xE9simo s\xE9timo", "vig\xE9sima s\xE9tima"],
        28: ["vig\xE9simo oitavo", "vig\xE9sima oitava"],
        29: ["vig\xE9simo nono", "vig\xE9sima nona"],
        30: ["trig\xE9simo", "trig\xE9sima"],
        31: ["trig\xE9simo primeiro", "trig\xE9sima primeira"],
        32: ["trig\xE9simo segundo", "trig\xE9sima segunda"],
        33: ["trig\xE9simo terceiro", "trig\xE9sima terceira"],
        34: ["trig\xE9simo quarto", "trig\xE9sima quarta"],
        35: ["trig\xE9simo quinto", "trig\xE9sima quinta"],
        36: ["trig\xE9simo sexto", "trig\xE9sima sexta"],
        37: ["trig\xE9simo s\xE9timo", "trig\xE9sima s\xE9tima"],
        38: ["trig\xE9simo oitavo", "trig\xE9sima oitava"],
        39: ["trig\xE9simo nono", "trig\xE9sima nona"],
        40: ["quadrag\xE9simo", "quadrag\xE9sima"],
        41: ["quadrag\xE9simo primeiro", "quadrag\xE9sima primeira"],
        42: ["quadrag\xE9simo segundo", "quadrag\xE9sima segunda"],
        43: ["quadrag\xE9simo terceiro", "quadrag\xE9sima terceira"],
        44: ["quadrag\xE9simo quarto", "quadrag\xE9sima quarta"],
        45: ["quadrag\xE9simo quinto", "quadrag\xE9sima quinta"],
        46: ["quadrag\xE9simo sexto", "quadrag\xE9sima sexta"],
        47: ["quadrag\xE9simo s\xE9timo", "quadrag\xE9sima s\xE9tima"],
        48: ["quadrag\xE9simo oitavo", "quadrag\xE9sima oitava"],
        49: ["quadrag\xE9simo nono", "quadrag\xE9sima nona"],
        50: ["quinquag\xE9simo", "quinquag\xE9sima"],
        51: ["quinquag\xE9simo primeiro", "quinquag\xE9sima primeira"],
        52: ["quinquag\xE9simo segundo", "quinquag\xE9sima segunda"],
        53: ["quinquag\xE9simo terceiro", "quinquag\xE9sima terceira"],
        54: ["quinquag\xE9simo quarto", "quinquag\xE9sima quarta"],
        55: ["quinquag\xE9simo quinto", "quinquag\xE9sima quinta"],
        56: ["quinquag\xE9simo sexto", "quinquag\xE9sima sexta"],
        57: ["quinquag\xE9simo s\xE9timo", "quinquag\xE9sima s\xE9tima"],
        58: ["quinquag\xE9simo oitavo", "quinquag\xE9sima oitava"],
        59: ["quinquag\xE9simo nono", "quinquag\xE9sima nona"],
        60: ["sexag\xE9simo", "sexag\xE9sima"],
        61: ["sexag\xE9simo primeiro", "sexag\xE9sima primeira"],
        62: ["sexag\xE9simo segundo", "sexag\xE9sima segunda"],
        63: ["sexag\xE9simo terceiro", "sexag\xE9sima terceira"],
        64: ["sexag\xE9simo quarto", "sexag\xE9sima quarta"],
        65: ["sexag\xE9simo quinto", "sexag\xE9sima quinta"],
        66: ["sexag\xE9simo sexto", "sexag\xE9sima sexta"],
        67: ["sexag\xE9simo s\xE9timo", "sexag\xE9sima s\xE9tima"],
        68: ["sexag\xE9simo oitavo", "sexag\xE9sima oitava"],
        69: ["sexag\xE9simo nono", "sexag\xE9sima nona"],
        70: ["septuag\xE9simo", "septuag\xE9sima"],
        71: ["septuag\xE9simo primeiro", "septuag\xE9sima primeira"],
        72: ["septuag\xE9simo segundo", "septuag\xE9sima segunda"],
        73: ["septuag\xE9simo terceiro", "septuag\xE9sima terceira"],
        74: ["septuag\xE9simo quarto", "septuag\xE9sima quarta"],
        75: ["septuag\xE9simo quinto", "septuag\xE9sima quinta"],
        76: ["septuag\xE9simo sexto", "septuag\xE9sima sexta"],
        77: ["septuag\xE9simo s\xE9timo", "septuag\xE9sima s\xE9tima"],
        78: ["septuag\xE9simo oitavo", "septuag\xE9sima oitava"],
        79: ["septuag\xE9simo nono", "septuag\xE9sima nona"],
        80: ["octog\xE9simo", "octog\xE9sima"],
        81: ["octog\xE9simo primeiro", "octog\xE9sima primeira"],
        82: ["octog\xE9simo segundo", "octog\xE9sima segunda"],
        83: ["octog\xE9simo terceiro", "octog\xE9sima terceira"],
        84: ["octog\xE9simo quarto", "octog\xE9sima quarta"],
        85: ["octog\xE9simo quinto", "octog\xE9sima quinta"],
        86: ["octog\xE9simo sexto", "octog\xE9sima sexta"],
        87: ["octog\xE9simo s\xE9timo", "octog\xE9sima s\xE9tima"],
        88: ["octog\xE9simo oitavo", "octog\xE9sima oitava"],
        89: ["octog\xE9simo nono", "octog\xE9sima nona"],
        90: ["nonag\xE9simo", "nonag\xE9sima"],
        91: ["nonag\xE9simo primeiro", "nonag\xE9sima primeira"],
        92: ["nonag\xE9simo segundo", "nonag\xE9sima segunda"],
        93: ["nonag\xE9simo terceiro", "nonag\xE9sima terceira"],
        94: ["nonag\xE9simo quarto", "nonag\xE9sima quarta"],
        95: ["nonag\xE9simo quinto", "nonag\xE9sima quinta"],
        96: ["nonag\xE9simo sexto", "nonag\xE9sima sexta"],
        97: ["nonag\xE9simo s\xE9timo", "nonag\xE9sima s\xE9tima"],
        98: ["nonag\xE9simo oitavo", "nonag\xE9sima oitava"],
        99: ["nonag\xE9simo nono", "nonag\xE9sima nona"],
        100: ["cent\xE9simo", "cent\xE9sima"]
      };
    }
  });

  // scripts/abreviacoes.js
  var abreviacoes;
  var init_abreviacoes = __esm({
    "scripts/abreviacoes.js"() {
      abreviacoes = [
        [/\—/gi, "\n "],
        [/\*/gi, " "],
        [/-\n/gi, ""],
        [/\n/gi, " "],
        [/•/gi, "; "],
        [/\b\:/gi, ". "],
        [/\bex\./gi, "exemplo"],
        [/\bEx\./gi, "Exemplo"],
        [/\bex\./gi, "exemplo"],
        [/\bEx\./gi, "Exemplo"],
        [/\bexs\./gi, "exemplos"],
        [/\bExs\./gi, "Exemplos"],
        [/\bexs\./gi, "exemplos"],
        [/\bExs\./gi, "Exemplos"],
        [/\bDr\./gi, "Doutor"],
        [/\bDra\./gi, "Doutora"],
        [/\bSr\./gi, "Senhor"],
        [/\bSra\./gi, "Senhora"],
        [/\bSrs\./gi, "Senhores"],
        [/\bSrta\./gi, "Senhorita"],
        [/\bProf\./gi, "Professor"],
        [/\bProfa\./gi, "Professora"],
        [/\bEng\./gi, "Engenheiro"],
        [/\bArq\./gi, "Arquiteto"],
        [/\bAdv\./gi, "Advogado"],
        [/\bCel\./gi, "Coronel"],
        [/\bGen\./gi, "General"],
        [/\bCap\./gi, "Capit\xE3o"],
        [/\bTen\./gi, "Tenente"],
        [/\bMaj\./gi, "Major"],
        [/\bMin\./gi, "Ministro"],
        [/\bDep\./gi, "Deputado"],
        [/\bDepª\./gi, "Deputada"],
        [/\bSen\./gi, "Senador"],
        [/\bGov\./gi, "Governador"],
        [/\bPres\./gi, "Presidente"],
        [/\bExmo\./gi, "Excelent\xEDssimo"],
        [/\bExma\./gi, "Excelent\xEDssima"],
        [/\bIlmo\./gi, "Ilustr\xEDssimo"],
        [/\bArt\./gi, "Artigo"],
        [/\bArts\./gi, "Artigos"],
        [/\bCap\./gi, "Cap\xEDtulo"],
        [/\bVol\./gi, "Volume"],
        [/\bPág\./gi, "P\xE1gina"],
        [/\bPgs\./gi, "P\xE1ginas"],
        [/\bEd\./gi, "Edi\xE7\xE3o"],
        [/\bEds\./gi, "Edi\xE7\xF5es"],
        [/\bAv\./gi, "Avenida"],
        [/\bR\./gi, "Rua"],
        [/\bRod\./gi, "Rodovia"],
        [/\bEst\./gi, "Estrada"],
        [/\bNº\b/gi, "N\xFAmero"],
        [/\bN°\b/gi, "N\xFAmero"],
        [/\bnº\b/gi, "n\xFAmero"],
        [/\betc\./gi, "etcetera"],
        [/\bObs\./gi, "Observa\xE7\xE3o"],
        [/\bRef\./gi, "Refer\xEAncia"],
        [/\bResp\./gi, "Respons\xE1vel"],
        [/\bDepto\./gi, "Departamento"],
        [/\bAdm\./gi, "Administra\xE7\xE3o"],
        [/\bEmp\./gi, "Empresa"],
        [/\bTel\./gi, "Telefone"],
        [/\bCEP\b/g, "CEP"],
        [/\bCPF\b/g, "C P F"],
        [/\bCNPJ\b/g, "C N P J"],
        [/\bRG\b/g, "R G"],
        [/\bCNH\b/g, "C N H"],
        [/\bHTML\b/g, "H T M L"],
        [/\bCSS\b/g, "C S S"],
        [/\bJS\b/g, "J S"],
        [/\bAPI\b/g, "A P I"],
        [/\bSQL\b/g, "S Q L"],
        [/\bPDF\b/g, "P D F"],
        [/\bUSB\b/g, "U S B"],
        [/\bWi-?Fi\b/gi, "Uai Fai"],
        [/\bwww\./gi, "www ponto "],
        [/\.com\b/gi, " ponto com"],
        [/\.com\.br\b/gi, " ponto com ponto br"]
      ];
    }
  });

  // scripts/speaker.js
  async function speak(text) {
    if ("speechSynthesis" in window) {
      cancelSpeak();
      for (const [regex, substituicao] of abreviacoes) {
        text = text.replace(regex, substituicao);
      }
      text = text.replace(
        /(?<!\d)(10|[1-9])(?:\s*\.?\s*)([ºoªa])(?!\d)/gi,
        (_10, numero, genero) => {
          const feminino = genero === "\xAA" || genero.toLowerCase() === "a";
          return ordinais[numero][feminino ? 1 : 0];
        }
      );
      const result = await chrome.storage.local.get(["voz"]);
      const utterance = new SpeechSynthesisUtterance(capitalizeSentences(text));
      utterance.lang = "pt-BR";
      utterance.rate = 1.6;
      utterance.pitch = 1.25;
      if (result.voz) {
        utterance.voice = speechSynthesis.getVoices()[result.voz];
      }
      speechSynthesis.speak(utterance);
    } else {
      console.info("Desculpe, seu navegador n\xE3o suporta a API Web Speech.");
    }
  }
  function cancelSpeak() {
    if ("speechSynthesis" in window) {
      speechSynthesis.cancel();
    } else {
      console.info("Desculpe, seu navegador n\xE3o suporta a API Web Speech.");
    }
  }
  function capitalizeSentences(texto) {
    return texto.replace(
      /(^|[.!?]\s+)([a-zà-ÿ])/gi,
      (_10, inicio, letra) => inicio + letra.toUpperCase()
    );
  }
  var init_speaker = __esm({
    "scripts/speaker.js"() {
      init_ordinais();
      init_abreviacoes();
    }
  });

  // scripts/content.js
  var require_content = __commonJS({
    "scripts/content.js"() {
      init_dist();
      init_speaker();
      var fileFieldId = "file-field";
      var playButtonId = "ouvir-pdf";
      var pauseButtonId = "pausar-pdf";
      var stopButtonId = "parar-de-ouvir";
      var livroId = "livro";
      var deId = "de";
      var ateId = "ate";
      var styleNode = document.createElement("style");
      styleNode.textContent = `/* Remove as setas no Chrome, Safari e Edge */
input.leitorPDF::-webkit-outer-spin-button,
input.leitorPDF::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Remove as setas no Firefox */
input.leitorPDF[type=number] {
    -moz-appearance: textfield;
}`;
      document.body.appendChild(styleNode);
      async function lerPDF(url, from, to2) {
        const input = document.getElementById(fileFieldId);
        let file = input.files[0];
        let fileBytes;
        if (window.location.protocol == "file:" && file && !decodeURI(window.location.href).endsWith(file.name)) {
          alert("Para uma boa leitura, lembre-se de selecionar o mesmo .pdf que est\xE1 aberto no navegador.");
        }
        try {
          if (window.location.protocol == "file:") {
            fileBytes = await file.arrayBuffer();
          }
          const buffer = window.location.protocol != "file:" ? await fetch(url).then((res) => res.arrayBuffer()) : fileBytes;
          if (!buffer) {
            return;
          }
          const pdf = await getDocumentProxy(new Uint8Array(buffer));
          let mergePages = true;
          if (!from && !to2) {
            mergePages = true;
          } else {
            mergePages = false;
          }
          const { totalPages, text } = await extractText(pdf, { mergePages });
          let finalText = text;
          if (from || to2) {
            finalText = "";
            for (let i = from ? parseInt(from) : 0; i <= (to2 ? parseInt(to2) : text.length); i++) {
              finalText += text[i - 1] + "\n";
            }
          }
          speak(finalText);
        } catch (e) {
          alert("Primeiro selecione o .pdf no campo 'Escolher arquivo'.");
          document.getElementById(playButtonId).style.display = "block";
          document.getElementById(pauseButtonId).style.display = "none";
          return;
        }
      }
      var ehPDF = window.location.href.substring(window.location.href.length - 4) == ".pdf";
      var currentTab = {};
      window.addEventListener("load", async () => {
        if (!chrome.storage) {
          return;
        }
        const result = await chrome.storage.local.get(["insp_visual_ligado"]);
        if (ehPDF && result.insp_visual_ligado) {
          buildLeitorDePDF();
        }
        currentTab = await chrome.storage.local.get(["tabId"]);
        window.focus();
        window.addEventListener("keydown", eventos);
      });
      chrome.runtime.onMessage.addListener(async (request, sender, sendResponse) => {
        sendResponse({ status: "success" });
        if (request.action === "ocultar") {
          ocultarLeitorDePDF();
        }
        if (request.action === "exibir") {
          exibirLeitorDePDF();
        }
        return true;
      });
      async function eventos(event) {
        if (event && event.keyCode == 79 && event.altKey && event.shiftKey) {
          const hideState = await chrome.storage.local.get(["leitor_pdf_ocultar"]);
          if (hideState.leitor_pdf_ocultar) {
            chrome.storage.local.set({ leitor_pdf_ocultar: false });
            exibirLeitorDePDF();
          } else {
            chrome.storage.local.set({ leitor_pdf_ocultar: true });
            chrome.storage.local.set({ leitor_pdf_bloqueado: false });
            localStorage.setItem("leitor_pdf_bloqueado", false);
            ocultarLeitorDePDF();
            chrome.runtime.sendMessage({
              action: "ocultar",
              dados: { targetElementId: (event || window.event).target.id }
            }, (resposta) => {
            });
          }
        }
      }
      function ocultarLeitorDePDF() {
        if (ehPDF) {
          const fileField = document.getElementById(fileFieldId);
          const playButton = document.getElementById(playButtonId);
          const pauseButton = document.getElementById(pauseButtonId);
          const stopButton = document.getElementById(stopButtonId);
          const livro = document.getElementById(livroId);
          const de2 = document.getElementById(deId);
          const ate = document.getElementById(ateId);
          if (fileField) {
            fileField.style.display = "none";
          }
          if (playButton) {
            playButton.style.display = "none";
          }
          if (pauseButton) {
            pauseButton.style.display = "none";
          }
          if (stopButton) {
            stopButton.style.display = "none";
          }
          if (livro) {
            livro.style.display = "none";
          }
          if (de2) {
            de2.style.display = "none";
          }
          if (ate) {
            ate.style.display = "none";
          }
        }
      }
      async function exibirLeitorDePDF() {
        const result = await chrome.storage.local.get(["insp_visual_ligado"]);
        if (ehPDF && result.insp_visual_ligado) {
          if (!document.getElementById(playButtonId)) {
            buildLeitorDePDF();
          }
          const fileField = document.getElementById(fileFieldId);
          const playButton = document.getElementById(playButtonId);
          const pauseButton = document.getElementById(pauseButtonId);
          const stopButton = document.getElementById(stopButtonId);
          const livro = document.getElementById(livroId);
          const de2 = document.getElementById(deId);
          const ate = document.getElementById(ateId);
          if (fileField && window.location.protocol == "file:") {
            fileField.style.display = "block";
          }
          if (playButton && "speechSynthesis" in window && !speechSynthesis.paused) {
            playButton.style.display = "block";
          }
          if (pauseButton && "speechSynthesis" in window && speechSynthesis.paused) {
            pauseButton.style.display = "block";
          }
          if (stopButton) {
            stopButton.style.display = "block";
          }
          if (livro) {
            livro.style.display = "block";
          }
          if (de2) {
            de2.style.display = "block";
          }
          if (ate) {
            ate.style.display = "block";
          }
        }
      }
      function buildLeitorDePDF() {
        window.onmousemove = null;
        window.focus();
        const livroStyles = {
          width: "108px",
          height: "66px",
          backgroundImage: `url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 108 66'%3E%3Cpath d='M2 6 Q28 1 54 9 Q80 1 106 6 V58 Q80 53 54 64 Q28 53 2 58 Z' fill='white' stroke='%23666' stroke-width='1.5'/%3E%3Cline x1='54' y1='9' x2='54' y2='64' stroke='%23666' stroke-width='1.5'/%3E%3C/svg%3E")`,
          backgroundRepeat: "no-repeat",
          backgroundSize: "contain",
          backgroundPosition: "center",
          position: "fixed",
          bottom: "68px",
          right: "8px",
          zIndex: "99999998"
        };
        const deStyles = {
          position: "absolute",
          left: "8px",
          top: "20px",
          width: "32px",
          textAlign: "center",
          borderRadius: "50%",
          zIndex: "99999999",
          cursor: "pointer"
        };
        const ateStyles = {
          position: "absolute",
          left: "60px",
          top: "20px",
          width: "32px",
          textAlign: "center",
          borderRadius: "50%",
          zIndex: "99999999",
          cursor: "pointer"
        };
        const playStyles = {
          width: "60px",
          height: "60px",
          backgroundColor: "darkgreen",
          color: "forestgreen",
          position: "fixed",
          borderRadius: "50%",
          bottom: "0px",
          right: "0px",
          marginRight: "8px",
          marginBottom: "8px",
          outline: "outset",
          zIndex: "99999999",
          cursor: "pointer"
        };
        const pauseStyles = {
          width: "60px",
          height: "60px",
          backgroundColor: "orange",
          color: "darkorange",
          position: "fixed",
          borderRadius: "50%",
          bottom: "0px",
          right: "0px",
          marginRight: "8px",
          marginBottom: "8px",
          outline: "outset",
          display: "none",
          zIndex: "99999998",
          cursor: "pointer"
        };
        const stopStyles = {
          width: "48px",
          height: "48px",
          backgroundColor: "darkred",
          color: "red",
          position: "fixed",
          borderRadius: "50%",
          bottom: "0px",
          right: "72px",
          marginRight: "8px",
          marginBottom: "8px",
          outline: "outset",
          zIndex: "99999999",
          cursor: "pointer"
        };
        const fileStyles = {
          position: "fixed",
          bottom: "142px",
          right: "-156px",
          color: "transparent",
          zIndex: "99999999",
          cursor: "pointer"
        };
        const playButton = document.createElement("div");
        const pauseButton = document.createElement("div");
        const stopButton = document.createElement("div");
        const livro = document.createElement("div");
        const de2 = document.createElement("input");
        const ate = document.createElement("input");
        const fileField = document.createElement("input");
        playButton.id = playButtonId;
        playButton.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg"
width="60"
height="60"
viewBox="0 0 24 24"
fill="currentColor">
<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10
    10-4.48 10-10S17.52 2 12 2zm-2 14V8l6 4-6 4z"/>
</svg>`;
        Object.assign(playButton.style, playStyles);
        document.body.appendChild(playButton);
        const playButtonElement = document.getElementById(playButton.id);
        pauseButton.id = pauseButtonId;
        pauseButton.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg"
width="60"
height="60"
viewBox="0 0 24 24"
fill="currentColor">
<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-4 5h3v10H8zm5 0h3v10h-3z"/>
</svg>`;
        Object.assign(pauseButton.style, pauseStyles);
        document.body.appendChild(pauseButton);
        const pauseButtonElement = document.getElementById(pauseButton.id);
        stopButton.id = stopButtonId;
        stopButton.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg"
width="48"
height="48"
viewBox="0 0 24 24"
fill="currentColor">
<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-4 6h8v8H8z"/>
</svg>`;
        Object.assign(stopButton.style, stopStyles);
        document.body.appendChild(stopButton);
        livro.id = livroId;
        Object.assign(livro.style, livroStyles);
        document.body.appendChild(stopButton);
        de2.id = deId;
        de2.type = "number";
        de2.classList.add("leitorPDF");
        Object.assign(de2.style, deStyles);
        ate.id = ateId;
        ate.type = "number";
        ate.classList.add("leitorPDF");
        Object.assign(ate.style, ateStyles);
        livro.appendChild(de2);
        livro.appendChild(ate);
        document.body.appendChild(livro);
        fileField.id = fileFieldId;
        fileField.type = "file";
        fileField.accept = "application/pdf";
        fileField.innerHTML = `<label for="${fileFieldId}"></label>`;
        Object.assign(fileField.style, fileStyles);
        if (!window.location.href.startsWith("file:")) {
          fileField.style.display = "none";
        }
        document.body.appendChild(fileField);
        playButtonElement.addEventListener("click", (event) => {
          playButtonElement.style.display = "none";
          pauseButtonElement.style.display = "block";
          if (window.speechSynthesis.paused) {
            window.speechSynthesis.resume();
            return;
          }
          const deElement = document.getElementById(deId);
          const ateElement = document.getElementById(ateId);
          lerPDF(window.location.href, deElement.value, ateElement.value);
        });
        pauseButtonElement.addEventListener("click", (event) => {
          pauseButtonElement.style.display = "none";
          playButtonElement.style.display = "block";
          window.speechSynthesis.pause();
        });
        document.getElementById(stopButtonId).addEventListener("click", (event) => {
          pauseButtonElement.style.display = "none";
          playButtonElement.style.display = "block";
          cancelSpeak();
        });
      }
    }
  });
  require_content();
})();
/*! Bundled license information:

unpdf/dist/index.mjs:
  (**
   * Derived from the PDF.js project by the Mozilla Foundation.
   * @see https://github.com/mozilla/pdf.js/blob/b8de9a372f9bbf7e33adb362eeae5ef1919dba73/src/display/canvas_factory.js#L18
   * @license Apache-2.0
   *)
*/
//# sourceMappingURL=content.js.map
